软件工程【第2章】- 软件生存周期、过程
1.软件生存周期
定义:一个软件项目从问题提出直到软件不用为止。
分为:计划、开发、维护
软件生存周期的主要活动:
需求分析:
软件分析
软件设计:
编码:
软件测试:
运行维护:
2.软件过程
定义:围绕软件开发所进行的一系列活动
过程模型:
把软件生存周期中软件开发活动的有序流程用一个合理的框架来规范描述
软件过程模型是一种软件过程的抽象表示法,它从一个特定的角度表现一个开发过程。
传统的过程模型:
瀑布模型:(前一阶段的活动没有结束,下一阶段的活动就不能进行)
特点:
阶段的顺序性和依赖性
推迟实现的观点
质量保证的观点
问题:
不适合需求模糊的系统
开发初始阶段很难彻底
快速原型模型:
先建立符合用户需求的原型,然后将原型反复改进,直至建立完全符合要求的新系统。
特点:
“逼真”的原型可以使用户迅速作出反馈
循环回溯和迭代:非线性模型
使用快速开发工具
问题:
舍不得抛弃,影响软件质量
软件演化模型:
增量模型:
增量:
小而可用的软件
第一个增量通常是软件的核心
特点:
在前面增量的基础上开发后面的增量
每个增量的开发可用瀑布或快速原型模型
每个增量开发的顺序性和总体的迭代相结合
螺旋模型:
螺旋模型与增量模型的不同点和相同点:
螺旋模型是瀑布模型的顺序特征与快速原型法的迭代特征相结合的产物。
1.两者迭代层级不同:
增量模型在活动级迭代
螺旋模型在过程级迭代
2.两者需求分析的时间不同:
增量模型常常是先做总体需求分析和设计,然后再编码和测试中逐个增量开发
螺旋模型在开发周期内采用简化瀑布模型或快速模型
3.两者提交软件的方式不同:
增量开发在上次增量的基础上提交新的一部分软件
螺旋模型每次迭代都是提交一个新的完整的软件版本
4.两者减少风险的方式不同:
增量开发通过避免使用未成熟的技术和经常的客户反馈等方法减少风险
螺旋模型直接增加了风险识别、风险分析、风险控制、计划性较强
构件集成模型:
构件:
在某个领域内具有通用性,可以复用的软件部件
将可以复用的构件存储起来,形成构件库
特点:
面向对象、基于构件库、融合螺旋模型特征、支持软件开发的迭代方法、软件复用