您的位置:首页 > 其它

【软件工程】软件的生命周期和软件开发模型

2016-11-04 22:45 218 查看

软件生命周期

       软件生命周期是人们在研究软件开发过程时所发现的一种规律性的事实。如同人的一生要经历婴儿期、少年期、青年期、老年期直至死亡这样一个全过程一样,一个软件产品也要经历计划、分析、设计、编程、测试、维护直至被淘汰这样一个全过程。软件的这一全过程被称为软件生命周期。

      不过,目前软件的生命周期中各阶段的划分标准不太统一,名称也不一致,但总体上还是包括了计划、分析、设计、编程、测试和维护等阶段。

软件开发模型

瀑布模型

       瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入到下一个阶段,整个模型就像一个飞流直下的瀑布。

       优点:开发人员采用规范的方法;严格规定了各阶段需要提交的文档,以及每个阶段的评审。

       缺点:过于理想化,缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达的需求,直到软件开发完成后才发现与用户需求有很大的距离,此时必须付出高额的代价才能纠正这一偏差。



快速原型模型

       是指先建立起来一个可以在计算机上运行的程序,通过实际操作了解目标系统的概貌。然后给用户看,用户提出意见,再次修改,再次请用户试用......,一旦用户认为这个原型系统确实能够满足他们的需求,开发人员便开始据此写软件需求说明,并根据这份文档开发出可以满足用户真实需求的软件产品,抛弃原型产品。

       原型化方法采用动态定义需求的方法,在一定程度上解决了用户不能准确说明需求的问题。它适用于需求不够明确的项目。要求:具有广泛技能高水平的原型化人员是原型实施的重要保证。衡量原型化人员能力的标准是他是否能够从用户的模糊描述中快速获取实际的需求。

演化模型

       演化模型也是一种原型化开发方法,但与快速原型模型略有不同。在快速原型模型中,原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃。而演化模型的开发过程则是从初始模型逐步演化为最终软件产品的渐进过程。也就是说,快速原型模型是一种“抛弃式”的原型化方法,而演化模型则是一种“渐进式”的原型化方法。

增量模型

       增量模型是第3种原型化开发方法,但它既非“抛弃式”的,也非“渐进式”的,而是“递增式”的。增量模型把软件产品划分为一系列的增量构件,分别进行设计、编程、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。如何将一个完整软件产品分解成增量构件,因软件产品特点和开发人员的习惯而异,但使用增量模型的软件体系结构必须是开放的,且加入新构件的过程必须简单方便。



螺旋模型

        螺旋模型综合了瀑布模型和演化模型的优点,同时还增加了风险分析。螺旋模型包含了4个方面的活动:制定计划,风险分析,实施工程,客户评估。这4项活动恰好可以放在一个直角坐标系的4个象限,而开发过程恰好像一条螺旋线。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,而每转一圈都要对风险进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束为止。



喷泉模型

       喷泉模型主要用于采用面向对象技术的软件开发项目。该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限,允许各开发活动交叉、迭代地进行。由于对象概念的引入,表达分析,设计,实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。


 

基于构件的模型

       构件是一个具有可重用价值的、功能相对独立的软件单元。基于构件的软件开发模型是利用模块化方法,将整个系统模块儿化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。由需求分析和定义、体系结构设计、构件库建立、应用软件构建、测试和发布五个部分组成。

快速应用开发模型

       快速应用开发模型是一个增量型的软件开发过程模型,它强调极短的开发周期。通过大量使用可复用构件,采用基于构件的建造方法赢得快速开发。

UP(Unified Process)

       统一软件开发过程,基于构件开发,构件之间通过定义良好的接口相互联系。是一个通用的过程框架,可以应付种类广泛的软件系统、不同的应用领域、不同的组织类型、不同的性能水平和不同的项目规模。UP中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否满足。

XP方法

       即极限编程,是敏捷方法中的一种。其他敏捷方法还有:自适应开发,水晶开发,特性驱动开发等。它们相对不太重视文档。在XP方法中,提出了4大价值观:沟通、简单、反馈、勇气。5大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作。12个最佳实践:最佳游戏,小型发布,隐喻,简单设计,测试先行,重构,结对编程,集体代码所有制,持续集成,每周工作40小时,现场客户,编码标准。

总结

       有时候看书,觉得很没意思,所以看不下去,当试着去敲出来的时候,心情会慢慢的平复,会理解的更好,也更加清楚自己不会的在那里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: