软件工程——软件生命周期和软件开发模式
软件生存周期一般划分为:制定计划,需求分析,设计,编码实现,测试,运行维护等几阶段,称为软件的生命周期。用不同的方式将软件生命周期中的所有活动组织起来形成一定的结构框架来指导软件开发,从而形成不同的软件开发模型,常见的模型有如下几种:
1.瀑布模型。
瀑布模型是一种最朴素的开发模型,他严格遵循软件生命周期各阶段的固定顺序,计划,分析,设计,编程,测试和维护,上一阶段完成后才能进入下一阶段,整个模型就像一个飞流直下的瀑布。
瀑布模型过于理想化,而且缺乏灵活性,无法再开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。使用该模型,很可能直到软件开发完成之后才发现他与用户需求有很大距离,此时必须支付高额代价才能纠正这一偏差。
2. V模型。
V模型是瀑布模型的变形,与传统的瀑布模型相比,该模型更加强调测试过程应如何与分析设计等过程相关联。如图:V模型中顶点左侧和右侧之间的连线表示如果在测试和确认过程中发现问题,那么左侧的过程要重新执行。
3.快速原型模型。
快速原型模型的第一步是快速建立一个能反映用户主要需求的软件模型。让用户在计算机上使用它,通过实际操作了解目标系统概貌。开发人员按照用户提出的意见快速地修改原型系统,然后再次请用户试用。一旦用户认为这个原型系统确实能满足他们的需求,开发人员便可据此书写软件需求说明,并根据这份文档开发可以满足用户需求的软件产品。
4.增量模型。
增量模型也是一种原型化开发方法,采用瀑布模型或者快速原型模型开发软件时,目标是一次就能把一个满足所有需求的产品提交给用户,而增量模型则反其道而行,它分批逐步向用户提交产品,整个软件产品被分解为许多个增量构件,开发人员一个构件一个构件地向用户提交产品。
5. 螺旋模型。
螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析,弥补了两者的不足,螺旋模型包涵了四个方面的活动:制定计划,风险分析,实施工程,客户评估。分别为直角坐标系的四个象限,开发过程恰好是一条螺旋线。
6.喷泉模型。
喷泉模型主要用于描述面向对象的开发过程。喷泉一词体现了面向对象开发过程的迭代和无间隙特征。