软件工程学习笔记-软件过程
目录
- 软件过程
- 计划驱动过程vs敏捷过程
- 软件过程模型
1.瀑布模型 2.增量式开发 3.集成和配置 - 过程活动
- 对变化的应对
- 软件工程研究所能力成熟度模型
- 规格说明:定义系统应该做什么
- 设计和实现:定义系统的组织结构并实现系统
- 确认:检查系统是否满足客户需求
- 演化:修改系统以适应不断变化的客户需求
- 计划驱动过程是提前计划好所有的过程活动,然后按计划去衡量进度
- 在敏捷过程中,计划是在软件开发过程中增量和持续进行的,这样就很容易调整过程以反应不断变化的客户需求
- 实践中,大多数过程既有计划驱动,又包含敏捷方法
- 没有“对”或“错”的软件过程
- 瀑布模型:计划驱动模型,规格说明和开发有独立的过程阶段。
独立的开发阶段:需求分析和定义,系统和软件设计,实现和单元测试,集成和系统测试,运行和维护。 主要缺点:过程一旦启动很难改变,原则上,一个阶段要全部完成之后才能进入下一个阶段。 将项目固定的划分为不同阶段很难适应客户变化的需求。只适用于需求被充分理解且设计过程中改变较少的项目。常用于在不同地点协作开发的大型工程项目。
- 增量式开发:规格说明、开发和确认活动交错进行,可以是计划驱动,也可以是敏捷过程。
优势:降低了需求变更的成本,更容易得到客户对于已完成工作的反馈,快速交付和部署成为可能。 问题:过程不可见,随着新增量的添加,系统结构会逐渐退化。
- 集成和配置:系统是通过组装已有构件开发的。可以是计划驱动,也可以是敏捷过程。
优势和不足:降低成本和风险,快速交付和部署,需求折中,不能很好的控制复用系统的演化
四个基本的过程活动:规格说明,开发,确认,演化 软件规格说明:理解和定义系统提供的服务,需求工程(需求抽取与分析,需求规格说明,需求确认) 开发:软件设计和实现(设计活动:体系结构设计,数据库设计,接口设计,构件选取和设计) 软件确认:包括检查,评审和测试(测试:构件测试,系统测试,客户测试) 软件演化:软件系统随着商业环境的变化随之变化
- 系统原型:系统或系统的一部分的某一版本被快速开发以检验客户需求以及设计决策的可行性。可用于:需求工程,系统设计过程,测试过程
- 增量交付:系统的增量被交付给客户进行评论和实验。
- 初始级(Initial)-Essentially uncontrolled
- 受管理级(Managed)-Product management procedures defined and used
- 已定义级(Defined)-Process management procedures and strategies defined and used
- 定量管理级(Quantitatively Managed)-Quality management strategies defined and used
- 优化级(Optimizing)-Process improvement strategies defined and used
|