01、软件项目的生存周期
软件生存周期是指一个软件从定义、开发、使用和维护,直到最终被废弃所经历的漫长时期。软件工程采用的生命周期方法是从时间角度对软件开发和维护的复杂问题进行分解,通常软件生存周期至少包括以下5个阶段。
问题定义阶段
要求系统分析员与用户进行交流,弄清“用户需要计算机解决什么问题”,然后提出关于“系统目标与范围的说明”,提交用户审查和确认。
可行性研究阶段
从经济、技术、法律及软件开发风险等方面分析确定系统是否值得开发,及时停止不值得开发的项目,避免人力、物力和时间的浪费。
① 技术可行性: 主要解决的问题是通过使用现有的技术能否实现这个系统。
② 经济可行性: 主要解决的问题是这个系统的经济效益能否超过它的开发成本。
③ 操作可行性:主要解决的问题是系统的操作方式在这个用户组织内能否可行。
④ 法律可行性: 主要确定本项目法律上有无纠纷等。
需求分析阶段
需求分析的主要任务是要项目开发人员清楚用户对软件系统的全部需求,并用“需求规格说明书”的形式准确地表达出来。
开发阶段
开发阶段由软件设计、实现和测试3个阶段组成。
① 软件设计:软件设计的主要任务是将需求分析转换为软件的表现形式。
概要设计: 确定系统设计方案、软件的体系结构和软件的模块结构。
详细设计: 确定软件系统模块结构中的每个模块完整而详细的算法和数据。
② 实现: 根据选定的程序设计语言完成源程序的编码。
编码的主要任务是由程序员依据模块设计说明书,用选定的程序设计语言对模块算法进行描述,即转换成计算机可接受的程序代码,形成可执行的源程序。
③ 测试:对编码后的源代码进行测试。
通过各种类型的测试,找出软件设计中的错误并改正错误,确保软件的质量。典型的测试方法有针对软件功能的黑盒测试和针对软件源码的白盒测试。
维护阶段
在软件运行期间,通过各种必要的维护措施使系统改正错误或修改扩充功能使软件适应环境变化,以延长软件的使用寿命和提高软件的效益。软件维护有以下4种类型。
① 改正性维护: 诊断和改正在使用过程中发现的软件错误;
② 适应性维护:修改软件以适应环境的变化;
③ 完善性维护:根据用户的要求改进或扩展软件,使之更完善;
④ 预防性维护: 修改软件,为将来的维护做准备。