【软件工程笔记2】——软件过程

     软件工程过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。


目录

一、软件开发

二、软件维护

三、过程模型

一、软件开发

概要设计:把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,美国模块都和某些需求相对应。又称为初步设计、逻辑设计、高层设计或总体设计。

详细设计:对每个模块要完成的工作进行具体的描述,为源程序编写打下基础。

编码和单元测试:写出正确的容易理解、容易维护的程序模块。

综合测试:通过各种类型的测试(及相应的调试)使软件达到预定的要求。

二、软件维护

通过各种必要的维护活动使系统持久地满足用户的需要:

改正性维护:诊断和改正正在使用过程中发现的软件错误

适应性维护:修改软件以适应环境的变化

完善性维护:根据用户的要求改进或扩充软件使它更完善

预防性维护:修改软件为将来的维护活动预先做准备

三、过程模型

  • 生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。
  • 在实际从事软件开发工作,软件规模、种类、开发环境及开发时使用的技术方法等因素,影响阶段的划分。

3.1 瀑布模型

【软件工程笔记2】——软件过程

 

 瀑布模型的特点

1.阶段间具有顺序性和依赖性

    必须等前一阶段的工作完成后,才能开始后一阶段的工作;前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果

2.推迟实现的观点

    对于规模较大的软件项目来说,往往编码开始的越早,最终完成开发所需时间越长。因为前面阶段的工作没做或做的不扎实,过早地考虑进行程序实现,往往导致大量返工,有时甚至发生无法弥补的问题。瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。清楚的区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想。

3.质量保证的观点

    为了保证所开发的软件的质量,在瀑布模型的每一个阶段都应坚持两个重要做法:每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务;每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。传统的瀑布模型过于理想化,实际的瀑布模型是带”反馈环”的。

优点:

强制规范

严格规定提交文档

各阶段质量保证

缺点:

早期需求不稳定性

各阶段依赖

无法并行开发

3.2 原始化模型

    原型是一个部分开发的产品,用于加强对系统的理解,有助于明确需求和选择可行的设计策略。原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。它允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。

优点:

克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险

适合预先不能确切定义需求的软件系统的开发

缺点:

所选用的开发技术和工具不一定符合主流的发展;快速建立起来的系统结构加上连续的修改可能会导致产品质量低下

使用前提是要有一个展示性的产品原型,一定程度上可能会限制开发人员的创新

3.3 增量模型

【软件工程笔记2】——软件过程

 

   增量模型也称渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。把软件产品分解成增量构件时,唯一必须遵守的约束条件是,当把新构件集成到现有构件中时,所形成的产品必须是可测试的。瀑布模型或快速原型模型目标是一次就把一个满足所有需求的产品提交给用户。增量模型把整个软件产品分解成许多个增量构件,分批地逐步向用户提交产品。

特点:

  • 增增量模型把瀑布模型的顺序特征与快速原型法的迭代特征相结合,将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量。
  • 风险更大的增量模型:确定用户需求后就着手拟定第一个构件的规格说明文档,完成后规格说明组转向第二个构件的规格说明文档,同时设计组开始涉及第一个构件。使用该方法将不同的构件并行构建,可能加快工程进度,但将冒构建无法集成到一起的风险
  • 增量模型也称渐增模型。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。把软件产品分解成增量构件时,唯一必须遵守的约束条件是,当把新构件集成到现有构件中时,所形成的产品必须是可测试的。瀑布模型或快速原型模型目标是一次就把一个满足所有需求的产品提交给用户。增量模型把整个软件产品分解成许多个增量构件,分批地逐步向用户提交产品。

3.4 迭代模型

   迭代模型是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。即所有功能一起开发,从粗到细,逐步求精。迭代模型适用于需求不甚明确、难度比较大的软件开发。

【软件工程笔记2】——软件过程

 

迭代模型的选择使用条件

  • 在项目开发早期需求可能有所变化。
  • 分析设计人员对应用领域很熟悉。
  • 高风险项目。
  • 用户可不同程度地参与整个项目的开发过程。
  • 使用面向对象的语言或统一建模语言(Unified Modeling Language,UML)。
  • 使用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,如Rose(Rose是非常受欢迎的物件软体开发工具。)。
  • 具有高素质的项目管理者和软件研发团队。

迭代模型的优点
与传统的瀑布模型相比较,迭代过程具有以下优点:

  • 降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
  • 降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
  • 加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
  • 由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。

来源:Zoveyaaa

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月26日
下一篇 2022年8月26日

相关推荐