定义
软件过程模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件开发模型。
软件过程模型是对软件开发实际过程的抽象和简化。
典型的软件开发模型
1.瀑布模型
可行性研究:
一般应包括以下7个方面:
1. 投资必要性
主要根据市场调查及预测的结果,以及有关的产业政策等因素,论证项目投资建设的必要性。
2. 技术可行性
主要从项目实施的技术角度,合理设计技术方案,并进行比选和评价。
3. 财务可行性
主要从项目及投资者的角度,设计合理财务方案,从企业理财的角度进行资本预算,评价项目的财务盈利能力,进行投资决策,并从融资主体(企业)的角度评价股东投资收益、现金流量计划及债务清偿能力。
4. 组织可行性
制定合理的项目实施进度计划、设计合理组织机构、选择经验丰富的管理人员、建立良好的协作关系、制定合适的培训计划等,保证项目顺利执行。
5. 经济可行性
主要是从资源配置的角度衡量项目的价值,评价项目在实现区域经济发展目标、有效配置经济资源、增加供应、创造就业、改善环境、提高人民生活等方面的效益。
6. 社会可行性
主要分析项目对社会的影响,包括政治体制、方针政策、经济结构、法律道德、宗教民族、妇女儿童及社会稳定性等。
7. 风险因素及对策
主要是对项目的市场风险、技术风险、财务风险、组织风险、法律风险、经济及社会风险等因素进行评价,制定规避风险的对策,为项目全过程的风险管理提供依据。
瀑布模型在软件开发的前期起到重要作用,但逐渐暴露出其缺陷,即将充满回溯的软件开发过程硬性分割为几个阶段,无法解决软件需求不明确或者变动的问题。
一般结构化方法采用。
2.增量模型![](https://img-blog.csdnimg.cn/a0b3ecea89514de5bbd9d93e5ebcb91f.jpeg)
增量模型是一种非整体开发的模型。是一种进化式的开发过程。
也就是说增量模型将软件系统分成若干个小的部分,每个部分作为增量,每个增量都要进行开发、测试和交付。在每个增量完成后,它们都需要集成到系统中,形成一个完整的软件系统。
根据增量的方式和形式的不同,分为:
1.基于瀑布模型的渐增模型
2.基于原型的快速原型模型
增量模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。
与瀑布模型的区别:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。
而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段的细节,从而能较早的产生工作软件。
3.螺旋模型
对大型软件,需要多个原型描述系统的生存期,螺旋模型将瀑布模型与原型化模型结合起来,并加入了风险分析。
螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:
- 第一,确定目标、方案和限制条件;
- 第二,评估方案、标识风险和解决风险;
- 第三,开发确认产品;
- 第四,计划下一周期工作。
4.喷泉模型
该模型是由B.H.Sollers和J.M.Edwards于1990年提出。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。适宜面向对象的方法。
其特点如下:
1. 开发过程有分析、系统设计、软件设计和实现4个阶段。
2. 各阶段相互重叠,它反映了软件过程并行性的特点。
3. 以分析为基础,资源消耗成塔型。
4. 反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。
5. 强调增量开发,整个过程是一个迭代的逐步提炼的过程。
喷泉模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的,体现了面向对象方法的迭代和无间隙特性。
迭代:是指开发活动需要多次重复。软件的某个部分常常被重复修改多次,相关对象在每次迭代中随之加入渐进的软件成分。
无间隙:是指开发活动之间不存在明显的边界。如分析和设计活动之间没有明显的界限,由于引入了对象的概念,表达分析、设计、实现等活动只用对象、类和他们之间的关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。正是因为喷泉模型的各个阶段没有明显的界限,开发人员可以同步进行开发。
其优点是可以提高软件项目开发效率,节省开发时间。