一、软件生存周期模型的概念
模型是为了理解事务而对事物做出的一种抽象,它忽略了不必要的细节,是事务的一种抽象形式、一个规划、一个程序。
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
二、目前有若干种软件生存周期模型
瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型、基于知识的模型和统一过程模型等。
1、瀑布模型
(1)定义:是将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型,规定将各个阶段有前至后、相互衔接的固定次序。
(2)模型表示:
(3)特点:以文档作为驱动、适合于需求很明确的软件项目开发的模型。强调了每个阶段的严格性,尤其是开发前期的良好需求说明,以每一步的正确性和完整性来保证最终系统的质量。
瀑布模型以里程碑开发原则为基础,提供各阶段的检查点,确保用户需求,满足预算和时间限制。
瀑布模型是一种整体开发模型,适合于功能和性能明确、完整、无重大变化的软件开发。
瀑布模型是将软件生存周期各个活动规定为自上向下,按照线性顺序连接的若干阶段的模型。该模型支持结构化的设计方法,但它是一种理想的线性开发模式,缺乏灵活性,无法解决软件需求不明确或不准确的问题。
2、增量模型
(1)定义:软件以逐步开发模式,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。
(2)特点:a、是一种非整体开发模型,适合于软件需求不明确、设计方案有一定风险的软件项目。
b、软件在该模型中是“逐渐”开发出来的。该模型有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。
3、螺旋模型
(1)定义:将瀑布模型与增量模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。
(2)模型表示:
(3)特点:A、是一种风险驱动的模型。适合于大型软件的开发,它吸收了软件工程“演化”的概念,使得开发人员和用户对每个螺旋周期出现的风险都有所了解,从而做出相应的反映。
B、包括需求定义、风险分析、工程实现及用户评估四个阶段,螺旋模型由上述四个阶段组成的迭代模型,迭代的结果必须尽快收敛到客户允许的或可接受的目标范围内。
(4)螺旋周期
1)用户概念
2)软件需求
3)软件设计
4)软件实现
(5)螺旋周期的步骤
1)确定目标、方案和限制条件
2)评估方案、标识风险和解决风险
3)开发确认产品
4)计划下一周期工作
4、喷泉模型
(1)概念:是一种以用户需求为动力,以对象作为驱动的模型。它适合于面向对象的开发方法。克服了瀑布模型不支持重用的和多项开发活动集成的局限性。使开发过程具有迭代性和无间隙性。
(2)模型表示:
(3)特点:
1)喷泉模型规定软件开发过程有4个阶段,即分析、系统设计、软件设计和实现。
2)喷泉模型的各阶段相互重叠,它反映了软件过程并行性的特点。
3)喷泉模型以分析为基础,资源消耗呈塔型,在分析阶段消耗的资源最多。
4)喷泉模型反映了软件过程迭代的自然特性,从高层返回底层无资源消耗。
5)喷泉模型强调增量开发,它依据分析一点,设计一点的原则,并不要求一个阶段的彻底完成,整个过程是一个迭代的逐步提炼的过程。
6)喷泉模型是对象驱动的过程,对象是所有活动作用的实体,也是项目管理的基本内容。
7)喷泉模型在实现时,由于活动不同,可分为系统实现和对象实现,这既反映了全系统的开发过程,也反映了对象族的开发和重用过程。
5、基于知识的模型
基于知识的模型又称智能模型,它把瀑布模型和专家系统结合在一起。该模型在开发的各个阶段都利用相应的专家系统来帮助软件人员完成开发工作,使维护在系统需求说明阶段开始。该模型还处于研究实验阶段,还未达到实用阶段。
6、变换模型
这是一种适合于形式化开发方法的模型。从软件需求形式化说明开始,经过一系列变换,最终得到系统的目标程序。
三、软件开发方法
软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。软件开发的目标是在规定的投资和时间内,开发出符合用 户需求的高质量的软件。为了达到此目的,需要成功的开发方法。下面介绍几种常用的软件开发方法。
1.结构化方法
结构化方法由结构化分析、结构化设计、结构化程序设计构成。它是一种面向数据流的开发方法。该方法采用自顶向下、逐步求精的指导思想,应用较广,技术成熟。
结构化分析是根据分解与抽象的原则,按照系统中数据处理的流程,用数据流图来建立系统的功能模型,从而完成需求分析工作。
结构化设计是根据模块独立性准则、软件结构准则将数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系统的概要设计。
结构程序设计是根据结构程序设计原理,将每个模块的功能用相应的标准控制结构表示出来,从面实现详细设计。
结构化方法不适应规模大的项目,对于特别复杂的项目,该方法难于解决软件重用问题,难于适应需求变化的问题,难于彻底解决维护问题。
2.Jackson方法
这是一种面向数据结构的开发方法。JSP方法是以数据结构为驱动的,适合于小规模的项目。
3.维也纳开发方法(VDM)
这是一种形式化的开发方法,软件的需求用严格的形式语言描述,然后把描述模型逐步变换成目标系统。
4.面向对象的开发方法
面向对象的开发方法完全不同于传统开发方法,它是90年代的主流开发方法。
面向对象开发方法包括面向对象分析、面向对象设计、面向对象实现。面向对象开发方法有Booch方法、Coad方法和OMT方法等。为了统一各种面向对象方法的术语、概念和模型,1997年推出了统一建模语言,即UML(UnifiedModelingLanguage)语言。它是面向对象的标准建模语言,通过统一的语义和符号表示,使各种方法的建模过程和表示统一起来,将成为面向对象建模的工业标准。