软件开发的生命周期模型的选择与软件质量的关系

软件开发生命周期是指软件产品从考虑其概念开始到该软件产品交付使用为止的整个时期。一般包括:概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装阶段,以及交付阶段。这些阶段可以有重叠,执行时也可以有迭代。软件开发过程是把用户的要求转变成软件产品的过程叫做软件开发过程。是人们用于开发和维护软件及其相关产品(项目计划、设计文件、编程代码、测试、用户手册)的一系列活动、方法、实践和改造。

软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。

软件质量不仅仅是狭义上的软件没有缺陷,还应该包括:

1. 不断改进、提高内部顾客和外部顾客满意度;

2. 缩短产品开发周期与投放市场时间;

3. 降低质量成本等。

4. 影响软件质量的主要因素 

影响软件质量的主要因素可以分成几类:正确性、健壮性、效率、完整性(安全性)、可用性、风险、可理解性、可维修性、灵活性(适应性)、可测试性、可移植性、可再用性、互运行性。

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

1.1、 瀑布模型

瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品。

优点:

   a.强调开发的阶段性; 
   b.强调早期计划及需求调查; 
   c.强调产品测试。 

缺点:

   a.依赖于早期进行的唯一一次需求调查,不能适应需求的变化; 
   b.由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; 
   c.风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会。 

1.2、快速原型模型

快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。快速原型的本质是“快速”,开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用作是获知用户的真正需求,一旦需求确定了,原型系统将被抛弃。

     快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建一个可在计算机上运行的原型系统,让用户试用原型系统并收集用户反馈意见的办法,获取用户的真实需求。

1.3.、增量模型

增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。

优点:

    1.能在较短的时间内向用户提交可完成部分工作的产品。 

    2.逐步增加产品功能可以使用户有充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 

     增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。

1.4、螺旋模型

螺旋模型的基本思想就是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作每个阶段之前都增加了风险分析过程的快速原型模型。

     螺旋模型主要适用于内部开发的大规模软件项目。如果进行风险分析的费用接近整个项目的经费预算,则风险分析是不可行的。事实上项目越大,风险也越大,因此进行风险分析的必要性也越大。此外只有内部开发的项目,才能在风险过大时方便中止项目。

     螺旋模型的主要优势在于,它是风险驱动,但是,这也可能是它的一个弱点。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识,否则将出现真正的风:当项目实际上正在走向灾难时,开发人员可能还认为一切正常。

      风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。

1.5、构件组装模型

面向对象的技术为软件工程的基于构件的过程模型提供了技术框架。面向对象模型强调了类的创建、类的封装了的数据、操纵该数据的算法。一般来讲经过合适的设计和实现,面向对象的类可以在不同的应用及基于计算机的系统的体系结构中复用。基于构件的开发模型融合了螺旋模型的许多特征,它本质上是演化形的,要求软件创建的迭代方法。然而基于构件的开发模型是利用预先包装好的软件构件(有时成为类)来构造应用。

缺点:

   1、过分依赖于构件,构件库的质量影响着产品质量。

  优点:

   1、构件可复用。提高了开发效率。

2、采用了面向对象的技术。

你可能感兴趣的:(QA)