软件工程的生命周期:问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试
一、问题定义
关键任务:要解决的问题是什么?
问题定义报告(文档):通过对客户的访问调查,系统分析员扼要地写出关于问题性质、目标工程和工程规模的书面报告。通过对客户的访问调查,系统分析员扼要地写出关于问题性质、目标工程和工程规模的书面报告。
二、可行性研究
关键任务:回答问题是:“对于上一个阶段所确定的问题有行的通的解决办法吗?”
目的:是客户作出是否继续进行这项工程的决定的重要依据
可行性研究报告(文档):经济(成本效益)、技术(技术可行)、社会(操作公共安全社会道德)
三、需求分析
关键任务:目标系统必须做什么
目的:完整、准确、清晰、具体的建立系统逻辑模型,通常用数据流图、数据字典和简要的算法表示系统的逻辑模型,是以后设计和实现目标系统的基础。
要求:必须准确完整地体现用户的需求
需求规格说明书(重要文档):目标系统需求、最重要的一份文档、软件所有需要做什么、最终用户验收拿此文档比较。
四、概要设计
关键任务:怎样实现目标系统
根据需求设计方案,分析推荐最佳方案,设计软件结构等。设计程序的体系结构,确定程序有哪些模块组成以及模块之间的关系
总体设计说明书(文档):记录总体设计结果
五、详细设计
关键任务:该怎样具体实现系统?
对概要设计中表述的各模块进行深入分析等,其中需要包含数据库设计说明
详细设计说明书(文档):用适当表达工具表达算法和数据结构
六、编码和单元测试
关键任务:选择语言、工具翻译详细设计结果、测试模块
实现阶段文档:
1、程序清单
2、单元测试报告
七、综合测试
关键任务:通过各类型的测试(及相应的调试)是软件达到预定要求
测试报告(文档):测试计划、测试方案、测试结果
八、软件维护
关键任务:通过各种必要的维护活动使系统持久地满足用户的需求
维护类型:
1、改正性维护:软件运行过程中发现错误进行维护
2、适应性维护:软件运行软件硬件环境变化进行的维护
3、完善性维护:用户要求改进或扩充软件进行的维护
4、预防性维护:为将来的维护作准备