可行性研究与计划开发阶段/ 需求分析阶段/ 设计阶段/ 实现阶段/ 测试阶段/ 运行与维护阶段
确定软件开发目标和总体要求,进行可行性分析,制定开发计划。这一阶段的任务是明确"要做什么",明确软件的功能和目标以及大致规模;其次研发"是否能做",探索要开发软件的难度、深度和广度,估算系统成本和效益,分析开展该项目的可行性,包括技术、设备、人员以及市场可行性等方面的内容。
进行系统分析,确定软件功能需求和设计约束。这一阶段的任务是"必须做什么"。软件开发人员和用户密切合作,充分交流信息,真正准确了解用户的具体要求,得出经过用户确认的系统逻辑模型,避免盲目急于着手设计的倾向。
确定设计方案,包括软件结构、模块化分、功能分配以及处理流程。通常,设计阶段要分解成概要设计和详细设计两个步骤。概要设计的任务是解决"如何做",考虑多种解决方案,并依据某种令人信服的标准或原则推荐及确定设计方案;然后,进行模块化分,也就是将软件系统按功能划分成许多规模适中的程序集,再将其按合理的层次结构组织起来。详细设计的任务是“如何具体做",把概要设计的抽象概括解决方案细化、具体化。详细设计还不是编写程序,而是设计出程序的详细规格说明、处理流程。
完成源程序的编码。编译无语法错误的程序清单。完成程序单元测试。
实现系统总装测试和确定测试;检查审阅文档;成果评价。这个阶段的任务是通过各种类型的测试发现问题,纠正错误,使软件达到预定要求。
通常有四类维护工作:
改正性维护 诊断和改正运行中发现的软件错误。
适应性维护 修改软件以适应环境的变化。
完善性维护 根据用户的要求改进或扩充软件使它更完善。
预防性维护 修改软件为将来的维护活动作预备。