1. 软件过程
过程方法
过程方法是系统地识别和管理组织内所使用的过程,保证更有效地获得期望的结果。
软件开发活动
- 问题定义:人们通过开展技术探索和市场调查等活动,研究系统的可行性和可能的解决方案,确定待开发系统的总体目标和范围。
- 需求开发:在可行性研究之后,分析、整理和提炼所收集到的用户需求,建立完整的需求分析模型,编写软件需求规格说明。
- 软件设计:根据需求规格说明,确定软件体系结构,进一步设计每 个系统部件的实现算法、数据结构及其接口等。
- 软件构造:概括地说是将软件设计转换成程序代码,这是一个复杂而迭代的过程,要求根据设计模型进行程序设计以及正确而高效地编写和测试代码。
- 软件测试:检查和验证所开发的系统是否符合客户期望,主要包括单元测试、子系统测试、集成测试和验收测试等活动。
- 软件维护:系统投入使用后对其进行改进,以适应不断变化的需求。完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。
项目开发管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量和风险进行控制和管理的活动。
软件配置管理
软件配置管理是通过执行版本控制、变更控制的规程,并且使用合适的配置管理软件,来保证所有产品配置项的完整性和可跟踪性。
2. 软件过程模型
- 瀑布模型
瀑布模型只有在测试阶段才能真正验证软件的功能和性能,但此时已经开发完成,很难去纠正需求的问题。
仅适用于在开发初期需求就可以被完整地确定的情况
- 原型化模型
原型:实现的产品的一部分,用于使用户验证是否符合需求。
原型化模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。
- 迭代式开发
- 可转换模型
主要应用于有限状态的嵌入式系统中
- 案例
软件开发的迭代行
软件开发具有迭代性,需要不断地反复尝试,通过比较和选择不同的设计,最终确定令人满意的问题解决方案。
3. 敏捷开发过程
敏捷开发是一种基于更紧密的团队协作、能够有效应对快速变化需求、快速交付高质量软件的迭代和增量的新型软件开发方法。
敏捷宣言
敏捷开发方法
迭代开发的关键要点
瀑布模型 vs. 敏捷开发模型