软件开发术语
⼀、结构化程序设计
  结构化程序设计是以模块功能和详细处理过程设计为主的⼀种传统的程序设计思想,通常采⽤⾃顶向下、逐步求精的⽅式进⾏。在结构化程序设计中,任何程序都可以由顺序、选择、循环三种基本结构构成。结构化程序采⽤模块化设计思想来实现,基本思路是把程序要解决的总⽬标分解为若⼲个简单的⼩⽬标来处理,再进⼀步分解为具体的任务项来实现,在模块化的程序设计中,应尽量做到模块之间的⾼内聚、低耦合。 
⼆、⾯向对象的基本概念
  (1)对象:是要研究的任何事务,可以是⾃然界的任何事物。对像由数据和作⽤于数据的操作构成⼀个独⽴整体,从程序设计者来看,对象是⼀个程序模块,从⽤户来看,对象可以提供⽤户所希望的⾏为。
  (2)类:类是⼀组有相同数据和相同操作对象的定义,⼀个类包含的⽅法和数据描述⼀组对象的共同属性和⾏为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。⾯向对象的程序设计语⾔通过类库来代替传统的函数库。
  (3)消息和⽅法:对象之间进⾏通信的机制叫作消息。
  (4)软件复⽤
  软件复⽤是指在两次或多次不同的软件开发过程中重复使⽤相同或相拟软件元素的过程,软件元素包括程序代码、测试⽤例、设计⽂档、设计过程、需求分析⽂档甚⾄领域知识。
  根据复⽤跨越的问题领域,软件复⽤可分为垂直式复⽤和⽔平式复⽤。
  垂直式复⽤:指在⼀类具有较多公共性的应⽤领域之间进⾏软件重⽤,⼤多数软件组织采⽤这种重⽤形式。
  ⽔平式复⽤:重⽤不同应⽤领域中的软件元素,例如数据结构、分类算法、⼈机界⾯构件等,标准函数库属于⽔平式重⽤。
三、⾯向对象的主要特征
  (1)继承性
  继承性是⼦类⾃动共享⽗类的数据结构和⽅法的⼀种机制。在类层次中,若⼦类只继承⼀个⽗类的数据结构和⽅法,则称为单重继承,若⼦类继承多个⽗类的结构和⽅法,则称为多重继承。
  (2)多态性
  多态性是指相同的操作、函数或过程可作⽤于多种不同类型的对象上,对象收到同⼀个消息可以产⽣不同的结果,这种现象称为多态性。
  (3)封装性
  封装是⼀种信息隐蔽技术,是对象的⼀种重要特性。封装使数据和加⼯数据的⽅法变为⼀个整体以实现独⽴性很强的模块,⽤户只能见到对象的外部特性,对象的内部特性对⽤户是隐蔽的。
四、⾯向对象的开发⽅法
  ⾯向对象的开发⽅法主要有Booch⽅法、Coad⽅法和OMT⽅法。
  4.1 Booch⽅法
  (1)类图:描述类与类之间的关系。
  (2)对象图:描述实例和对象间传递的消息。
  (3)模块图:描述构件。
  (4)进程图:描述进程分配处理器的情况。
  Booch⽅法也可以划分为静态模型和动态模块,其中静态模型表⽰系统的构与和结构;动态模型表⽰系统执⾏的⾏为,动态模型⼜包含时序图和状态转换图。
  (1)时序图:描述对象图中不同对象之间的动态交互关系。
  (2)状态图:描述⼀个类的状态变化。
  4.2 Coad⽅法
  Coad⽅法是多年来开发⼤系统的经验与⾯向对象概念的有机结合,在对象、结构、属性和操作的认定⽅⾯提出了⼀套系统的原
则。Coad⽅法可分为⾯向对象分析(OOA)和⾯向对象设计(OOD)两部分。在OOA中建⽴概念模型,由类与对象、属性、服务、结构和主题五个分析层次组成。
  ⾯向对象设计就是根据已建⽴的分析模型,运⽤⾯向对象技术进⾏系统软件设计,它将OOA模型直接变成OOD模型。
  4.3 OMT⽅法
  OMT⽅法认为开发⼯作的基础是对真实世界的对象建模,然后围绕这些对象使⽤分析模型来进⾏独⽴于语⾔的设计。
五、UML
  UML标准建模语⾔主要是因为它与程序设计语⾔⽆关,UML提供了多种类型的模型描述图,常⽤的UML图包括⽤例图、类图、序列图、状态图、活动图、组件图和部署图。
  (1)⽤例图
  描述了系统提供的⼀个功能单元,以⼀种可视化的⽅式理解系统的功能需求。
  (2)类图
  表⽰不同的实体如何彼此相关,它显⽰了系统的静态结构。
  (3)序列图
  显⽰具体⽤例的详细流程,并且显⽰了流程中不同对象之间的调⽤关系。
  (4)状态图
  表⽰类所处的不同状态和类的状态转换信息。
  (5)活动图
  活动图表⽰在处理某个活动时,两个或多个类对象之间的过程控制流。
  (6)组件图
  提供系统的物理视图,显⽰系统中的软件对其他软件的依赖关系。
  (7)部署部
  表⽰软件系统如何部署到硬件环境中。
六、软件开发模型
  是指软件开发的全部过程‘、活动和任务的结构框架,其主要过程包括需求、设计、编码、测试及维护阶段等环节,软件开发模型使开发⼈员能清晰、直观地表达软件开发的全过程,明确了解完成的主要活动和任务。软件开发过程中,常⽤的软件开发模型可以概括为以下六类。
  (1)瀑布模型
  最早出现的软件开发模型,它将软件⽣命周期分为制订计划、需求分析、软件设计、程序编写、软件测试和运⾏维护六个基本活动,并规定了它们⾃上⽽下、相互衔接的固定次序。由于模型的线性过程太过理想化,已不适合现代的软件开发模式。
  (2)快速原型模型
  ⾸先建⽴⼀个快速原型,以实现客户与系统的交互,⽤户通过对原型进⾏评价,进⼀步细化软件的开发需求,从⽽开发出令客户满意的软件产品。
  (3)增量模型
  ⼜称演化模型,认为软件开发是通过⼀系统的增量构件来设计、实现、集成和测试的,每⼀个构件由多种相互作⽤的模块构成。
  (4)螺旋模型
  结合了瀑布模型和快速原型的特点,特别适合于⼤型复杂的系统。
  (5)喷泉模型
  也称为⾯向对象的⽣存期模型,相对传统的结构化⽣存期⽽⾔,其增量和迭代更多。
  (6)RUP模型
  软件统⼀过程RUP也是具有迭代特点的模型,RUP强调采⽤螺旋和增量的⽅式来开发软件。
  依据时间顺序,RUP⽣命周期分为四个阶段,初始阶段、细化阶段、构建阶段、交付阶段。
七、软件开发⽅法
  软件开发⽅法是在软件系统开发过程中使⽤的⽅法。与软件开发模型不同的是,开发模型强调规划,即规划软件开发的流程;⽽软件开发开发⽅法强调软件系统的具体实现。
  1、结构化⽅法
  结构化⽅法把系统开发分为若⼲阶段,相邻两阶段中,前阶段是后阶段的⼯作前提。
  结构化⽅法的基本思想是⾃顶向下,逐层分解,把⼀个⼤问题分解成若⼲个⼩问题,每个⼩问题再分解成若⼲个更⼩的问题。经过逐层分解,每个最低层的问题都是⾜够简单、容易解决的。结构化⽅法分析模型的核⼼是数据字典,围绕这个核⼼,有三个层次的模型,分别是数据模型、功能模型和⾏为模型(也称为状态模型)。在实际⼯作中,⼀般使⽤E-R图表⽰数据模型,⽤DFD表⽰功能模型,⽤状态转换图表⽰⾏为模型。
  2、原型法(⼜称快速原型法)
  原型法获取基本的需求,快速构建原型,通过⽤户试⽤、补充、修改,构成新系统。重复这⼀过程,形成最终系统。原型法⽤于解决需求不明确的情况。
  原型还可以分为演化式原型和抛弃式原型。
  (1)演化式原型:从⽬标系统的部分基本需求出发,通过修改和完善功能的过程演化成最终的⽬标系统。
软件开发编程语言有哪些  (2)抛弃式原型:在真正捕获⽤户的需求后就放弃不⽤的原型。
  3、⾯对对象⽅法
  把⾯向对象思想应⽤到软件开发中,简称OO⽅法。⽅法分为分析、设计、实现三个阶段。
  4、Jackson⽅法
  是⼀种⾯向数据结构的软件设计⽅法,是⾯向数据流的分析⽅法。
  5、敏捷开发⽅法
  其最基本的特征是轻量和简单、增量、协作、直接、适应性强。更适应互联⽹软件需求模糊、快速变更的特点。
⼋、CMM模型
  能⼒成熟度模型CMM是对软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
  CMM是⼀种⽤于评价软件承包能⼒并帮助其改善软件质量的⽅法,侧重于软件开发过程的管理及⼯程能⼒的提⾼与评估,CMM分为五个等级,⼀级为初始级;⼆级为可重复级;三级为已定义级;四级为已管理级;五级为优化级。
九、软件测试
  软件测试是软件开发过程中的⼀个重要环节,主要⽬的是检验软件是否符合需求,测试的对象不仅有程序部分,还有软件开发过程中各阶段产⽣的⽂档,如需求规格说明、概要设计⽂档等。
  软件测试⼀般分为动态测试和静态测试两个⼤类,动态测试通过运⾏程序发现错误,包括边界值分析、逻辑覆盖、基本路径等⽅法,静态测试采⽤⼈⼯和计算机辅助静态分析的⼿段对程序进⾏检测,包括桌⾯检查、代码审查、代码⾛查等⽅法。
  根据动态测试在软件开发过程中所处的阶段和作⽤,可以分为单元测试、集成测试、系统测试、验收测试和回归测试。
  单元测试:对软件中的基本组成单位进⾏的测试。
  集成测试:系统的各个部件的联合测试,组件是多个单元的集成聚合。集成测试的组装策略可以分为⼀次性组装和增量式组装(包括⾃顶向下、⾃底向上及混合式)两个。
  系统测试:将系统中的软件与各种依赖的资源结合起来,在系统实际运⾏环境下进⾏测试。
  验收测试:系统开发⽣命周期⽅法的⼀个重要阶段,也是部署软件之前的最后⼀个测试。⼀般有三种策略:正式验收、⾮正式验收、Alpha测试、Best测试。
  (1)正式验收:是⼀项管理严格的过程,它通常是系统测试的延续。
  (2)⾮正式验收:⾮正式验收测试中,执⾏测试的过程的限制不如正式验收测试中那样严格。
  (3)Alpha测试:由最终⽤户或其他⼈员来完成,不能由程序员或测试员完成。
  (4)Best测试:由软件的多个⽤户在⼀个或多个⽤户的实际使⽤环境下进⾏测试,开发者通常不在测试现场,不能由程序员或测试员完成。
  (5)回归测试:在发⽣修改之后,重新测试之前的测试,以保证修改的正确性。
  (6)⽩盒测试:⼜称结构测试或逻辑驱动测试。它把测试对象看作⼀个能打开、可以看见内部结构的盒⼦。(主要⽅法有逻辑驱动、基路测试等)
  (7)⿊盒测试:⼜称功能测试或数据驱动测试。它把测试对象看作⼀个不能打开的盒⼦,因此不考虑软件内部的运作原理。
  软件测试驱动模型V模型
  V模型中,需求分析通过验收测试;概要设计需要通过系统测试;详细设计需要通过集成测试;编码需要通过单元测试。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。