软件生命包括了3个时期:软件定义期,软件开发期,软件维护期。
1 软件定义期:
主要由软件系统需求分析人员和用户交流合作,针对有待开发的软件系统进行分析、规划和规格描述。通常需要分阶段得进行以下工作。
1) 任务立项与可行性分析
必须确定待开发软件系统的总目标,给出它的功能、性能、约束、接口以及可靠性等方面的要求;由软件分析员和用户合作,探讨解决问题的可靠性方案,针对每个方案,从技术,经济,法律和用户操作方面,研究完成该项软件任务的可行性,并对资源(计算机硬件、软件、人力等)、成本、可取得的效益、开发的进度做出估算。
2) 软件需求分析
软件需求分析是软件定义期需要达到的目标,要求以用户需求为基本依据,从功能、性能、数据、操作等多个方面,对软件系统给出完整、准确、具体的描述,用于确定软件规格。对用户的要求进行分析,明确目标系统的功能需求和非功能需求,并建立模型,从功能、数据、行为等方面描述系统的特性,细化系统的各种需求细节。需求分析是从软件定义到软件开发最关键的步骤。
2 软件开发期:
这个时期需要分阶段地完成以下工作。
1) 概要设计
概要设计师针对软件系统的结构设计,用于从总体上对软件的构造、接口、全局数据结构和数据环境等给出设计说明。概要设计主要体现在模块的构成与模块的接口两个方面。 结构化设计中的函数、过程,面向对象设计中的类、对象,都是模块。概要设计时并不需要说明模块的内部细节,但是需要全面的有关他们的构造的定义,包括功能特征、数据特征和接口等。
2) 详细设计
详细设计以概要设计为依据,用于确定软件结构中每个模块的内部细节,为编写程序提供最直接的依据。
3) 编码实现和单元测试
4) 系统集成测试
所谓集成测试也就是依据概要设计中的软件结构,把经过测试的模块,按照某种选定的基础策略,例如渐增基础策略,将系统组装起来。
5) 软件发布与实施
来自《软件工程》 清华大学出版社 韩利凯主编