软件工程 - chapter01 - 软件过程

目录

2.1通用过程模型

一、定义框架活动

二、明确任务集

三、过程模式

2.2过程评估与改进

2.3惯用过程模型

一、瀑布模型

二、增量过程模型

三、演化过程模型

1.原型开发

2.螺旋模型:

四、协同模型

五、演化模型的最终评述

2.4专用过程模型

一、基于构件开发模型

二、形式化方法模型

三、面向方面的软件开发

2.5统一过程(UP)

阶段

2.6 个人过程模型和团队过程模型

2.7 过程技术

2.8产品和过程


概念:软件开发中所遵循的路线图就称为“软件过程”。

为建造高质量软件所需要完成的活动、动作和任务的框架。

软件过程定义了软件工程化中采用的方法

2.1通用过程模型

        通用过程框架定义了五种框架活动:沟通、策划、建模、构建以及部署

过程流

过程流描述了在执行顺序和执行时间上,如何阻止框架中的活动、动作和任务。

线性过程流

从沟通到部署顺序执行五个框架活动

迭代过程流

在执行下一个活动前重复执行之前的一个或多个活动

演化过程流

采用循环的方式执行各个活动

并行过程流

将一个或是多个活动与其他活动并行执行

一、定义框架活动

二、明确任务集

任务集:任务集定义了为达到一个软件工程动作的目标所需完成的工作。

key Point : 不同项目需要不同的任务集,软件团队根据问题和项目的特点,选择任务集。

三、过程模式

过程模式:描述软件工程工作遇到的过程相关问题,对该问题有许多解决方案。(模板/复用

如何描述模板?模式名称、驱动力、类型、启动条件、问题、解决办法、结束条件、相关模式、已知应用实例。

模式的类型分为三种:1.步骤模式、2.任务模式、3.阶段模式

2.2过程评估与改进

软件过程无法保证软件的按期交付,以及满足客户需求。因此需要对过程进行评估。

软件过程评估和改进方法:

1、 用于过程改进的CMMI标准评估方法

2、用于阻止内部过程改进的CMM评估

3、SPICE

4、软件ISO 9001:2000

2.3惯用过程模型

提出该模型是为了让软件开发有序

一、瀑布模型

就像瀑布一样顺流而下,顺序执行。这就要求软件开发者明确知道客户的全部需求,才有可能去采用这样一个过程模型。

这是软件工程最早的范例,又称为 经典生命周期

系统的、顺序的软件开发,通过计划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。(系统、可控)

瀑布模型变种:V模型。本质上一样。增加了一系列测试,保证质量。

问题:

1.项目经常不按顺序发展

2.客户难以直接描述清楚全部的需求,且客户没耐心

3.项目任务互相依赖,因为某个任务停滞导致团队容易阻塞

适合需求确定的项目,适用于对一个已经存在的系统进行一些适应性调整或者功能性的增强(面临的需求变更是很小的)就可以采取这种线性工作流的方式。这个瀑布模型很少用在新的系统上。大型项目很少采用这种,需求是不断更新,迭代不断增加。

二、增量过程模型

通俗讲:你确定了需求,但不一定适用瀑布模型。因为你急需开发一个功能有限的简单产品先满足客户需求,在后面的开发中在去扩展和细化功能。

适用:早期开发人员不够

优点:规避技术风险

三、演化过程模型

是一个迭代的过程模型,适应不断演变的产品模型

两种演化模型:

1.原型开发

        

        需要沟通、定目标、明确需求。快速开发出一个临时界面,再去不断调整。

        适用:需求很模糊时,可帮助开发人员理解需求。很快的能够看到产品。

        缺点:这个临时的软件并没有考虑周全,而客户又执意要你拿这个软件顶上。最终上线的产品效果差。

2.螺旋模型:

        

         一圈类似一次迭代,会有一个边界,每次迭代都要考虑风险。(里程碑、风险控制)

 

        结合了原型的迭代性质瀑布模型的系统性可控性特点。螺旋开发定义为一些列

        产品交付后并没有结束,而是应用于软件整个生命周期

        适用:开发大型系统软件

        缺点:依赖大量的风险评估专家

四、协同模型

        也叫协同工程。

        可以不同的开发团队协同开发

        适用:所有类型软件开发

五、演化模型的最终评述

        市场急需该软件,及时投入市场。

        为了解决该问题,则出现  演化模型

        演化模型初衷是为了采用迭代和增量的方式开发高质量软件,但也需要可扩展和灵活性以及高效率。需要作出平衡。

2.4专用过程模型

        应用面狭窄

一、基于构件开发模型

        有螺旋模型的特点,本质是演化模型。

        需要迭代开发构建软件。但它可采用预先打包的软件构件开发

        优点:能够使软件复用(构件复用)

二、形式化方法模型

        生成计算机软件形式化的数学规格说明

        意义:提供无缺陷的软件

        商业应用不广泛,对客户、开发人员技术水平要求高,开发时间长。

        一些安全方面的软件还是会用这种,如飞行器软件等

三、面向方面的软件开发

        面向方面的软件开发一为定义、说明、设计和构建方面提供过程和方法

2.5 统一过程(UP)

        与客户沟通、从用户角度去描述系统

        强调软件体系结构的重要作用

        结合各种分析设计方法的最好的特点。开发出了UML - 统一建模语言

        

阶段

        1.UP起始阶段

        2.细化阶段

        3.UP的构建阶段

        4.UP的转换阶段

        5.UP的生成阶段

        

2.6 个人过程模型和团队过程模型

个人过程模型

团队过程模型

2.7 过程技术

2.8 产品和过程

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZuckD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值