软件工程复习笔记03——软件过程开发

1. 软件过程

过程方法
过程方法是系统地识别和管理组织内所使用的过程,保证更有效地获得期望的结果。

软件开发活动

  • 问题定义:人们通过开展技术探索和市场调查等活动,研究系统的可行性和可能的解决方案,确定待开发系统的总体目标和范围。
  • 需求开发:在可行性研究之后,分析、整理和提炼所收集到的用户需求,建立完整的需求分析模型,编写软件需求规格说明。
  • 软件设计:根据需求规格说明,确定软件体系结构,进一步设计每 个系统部件的实现算法、数据结构及其接口等。
  • 软件构造:概括地说是将软件设计转换成程序代码,这是一个复杂而迭代的过程,要求根据设计模型进行程序设计以及正确而高效地编写和测试代码。
  • 软件测试:检查和验证所开发的系统是否符合客户期望,主要包括单元测试、子系统测试、集成测试和验收测试等活动。
  • 软件维护:系统投入使用后对其进行改进,以适应不断变化的需求。完全从头开发的系统很少,将软件系统的开发和维护看成是一个连续过程更有意义。

项目开发管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量和风险进行控制和管理的活动。

软件配置管理
软件配置管理是通过执行版本控制、变更控制的规程,并且使用合适的配置管理软件,来保证所有产品配置项的完整性和可跟踪性。


2. 软件过程模型

  • 瀑布模型
    瀑布模型只有在测试阶段才能真正验证软件的功能和性能,但此时已经开发完成,很难去纠正需求的问题。
    仅适用于在开发初期需求就可以被完整地确定的情况
  • 原型化模型
    原型:实现的产品的一部分,用于使用户验证是否符合需求。
    原型化模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。
  • 迭代式开发

  • 可转换模型
    主要应用于有限状态的嵌入式系统中
  • 案例

软件开发的迭代行
软件开发具有迭代性,需要不断地反复尝试,通过比较和选择不同的设计,最终确定令人满意的问题解决方案。


3. 敏捷开发过程

敏捷开发是一种基于更紧密的团队协作、能够有效应对快速变化需求、快速交付高质量软件的迭代和增量的新型软件开发方法。
敏捷宣言



敏捷开发方法

迭代开发的关键要点

瀑布模型 vs. 敏捷开发模型

你可能感兴趣的:(软件工程复习笔记03——软件过程开发)