安徽工程科技学院计算机系_第1页
安徽工程科技学院计算机系_第2页
安徽工程科技学院计算机系_第3页
安徽工程科技学院计算机系_第4页
安徽工程科技学院计算机系_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章软件项目管理

■软件项目管理的概念、原则和技

■项目管理计划、组织、监管和控

■软件开发过程的度量和定量分析

2009-12-14安徽工程科技学院计算机系1

第二章软件项目管理

软件项目管理

目的

为了使软件项目能够在预定成本、

进度、质量的前提下顺利完成,必须

对软件工程项目进行计划、组织、监

控和管理

2009-12-14安徽工程科技学院计算机系2

第二章软件项目管理

软件项目管理

任务

-制定软件项目的实施计划和方案;

-对人员进行组织和分工;

■按照计划进度,以及成本管理、风

险管理、质量管理的要求进行软件

开发,完成软件项目的各项要求和

任务。

2009-12-14安徽工程科技学院计算机系3

第二章软件项目管理

软件项目管理

内容

-软件度量

-软件项目估算

-软件质量度量

-软件复杂性度量

-软件可靠性度量

-软件开发过程的管理

■软件项目管理中的CASE工具

2009-12-14安徽工程科技学院计算机系4

第二章软件项目管理

、■软件项目管理

Jh------------------------

特点

-管理在软件工程项目中的地位和作用与其它工程项

目一样十分重要,必须对成本、人员、进度、质量、

风险等进行分析和管理。

■软件产品是逻辑的,软件项目的施工是开发小组集

体的智力劳动,使用的开发工具是建立在计算机系

统上的软件。

■软件很多属性无法直接度量为软件定量分析和项目

管理增加困难。

2009-12-14安徽工程科技学院计算机系5

第二章软件项目管理

2.1软件度量

■软件度量的意义

-软件度量的概念

-软件规模度量

■软件功能度量

图2.1软件度量分类

2009-12-14安徽工程科技学院计算机系6

2,软件度量

2.1.1度量、测量和估算(1/3)

度量metrics

■度量具有数字特征,软件工程范围的

度量是软件开发过程、软件资源或软

件产品简单属性的定量描述。

如,程序规模、操作符个数、程序中错

误的个数等。

2009-12-14安徽工程科技学院计算机系7

2,软件度量

度量、测量和估算(2/3)

测量measure

■对软件开发过程、产品和资源进行实时和事后的

定量描述,涉及测量的要素、方法、过程、工具

和数值结果。

■直接测量和间接测量

直接测量用于不依赖于其它属性的简单属性;

间接测量用于依赖于若干其它属性的要素、准则

和属性。

2009-12-14安徽工程科技学院计算机系8

2,软件度量

度量、测量和估算(3/3)

估算estimation

-对软件产品、过程、资源进行预测

-估算可以采用经验公式、或参考历史资料

■估算用于事前签订合同、立项、制定工作计划

2009-12-14安徽工程科技学院计算机系9

2,软件度量

度量、测量和估算

软件的外部属性和内部属性

-外部属性

软件产品、过程、资源与环境的关系

■内部属性

软件产品、过程、资源、环境自身的属

2009-12-14安徽工程科技学院计算机系10

2,软件度量

度量、测量和估算

■用户和管理者关心外部属性,但在开发

过程中无法直接管理和控制。

■由于外部属性是由内部属性决定的,因

此必须建立外部属性与内部属性的关系,

并通过内部属性的度量去度量外部属性。

2009-12-14安徽工程科技学院计算机系11

2,软件度量

度量、测量和估算

■产品的内部属性

程序代码长度程序功能模块化重

用性

控制流数据流模块耦合度与内聚度

-产品的外部属性

程序的可靠性可用性可维护性

软件的可理解性有效性可移植性

2009-12-14安徽工程科技学院计算机系12

2,软件度量

度量、测量和估算

■过程的内部属性

工作量计划和进度一段时间内某类

事件发生的次数

-过程的外部属性

成本可控制性可观察性稳定性

2009-12-14安徽工程科技学院计算机系13

2,软件度量

度量、测量和估算

■资源的内部属性

人软硬件环境方法经验

■资源的外部属性

成本时间

2009-12-14安徽工程科技学院计算机系14

2,软件度量

2.L2规模度量

■代码行数LOC或KLOC

■生产率

PI=L/E

其中L软件项目代码行数

E软件项目工作量(人月PM)

PI软件项目生产率(LOC/PM)

2009-12-14安徽工程科技学院计算机系15

2,软件度量

规模度量

-代码出错率

EQRl=Ne/L

其中Ne软件项目的代码错误数

EQRI每千行代码的错误数

2009-12-14安徽工程科技学院计算机系16

2,软件度量

例软件项目记录

项目工作量成本代码行文档页数错误数人数

PM万美元kLOCPdNeM

Aaa

-012416.812.1365293

Ccc

-046244.027.21224865

Fff

-034331.420.21050646

上院计算机系

2309-12-14安徽工程科技,17

2,软件度量

规模度量

-每行代码平均成本

CI=S/L

其中S软件项目总开销(元/美元)

CI软件项目每行代码的平均成本

-文档与代码比

DI=Pd/L

其中Pd软件项目文档页数

DI每千行代码的平均文档数

2009-12-14安徽工程科技学院计算机系18

2,软件度量

规模度量

用软件代码行数估算软件规模简单易行。

缺点

■代码行数的估算依赖于程序设计语言的功能和

表达能力;

■采用代码行估算方法会对设计精巧的软件项目

产生不利的影响;

■在软件项目开发前或开发初期估算它的代码行

数十分困难;

■代码行估算只适用于过程式程序设计语言,对

非过程式的程序设计语言不太适用等等。

2009-12-14安徽工程科技学院计算机系19

2,软件度量

2.1.3面向功能的度量

FP=CT*[0.65+0.01*ZFi]

(2-5)

其中:CT按表2.3计算

Fi是复杂性调节值

Fi取值01,…,5

当Fi=0时,表示Fi不起作用

Fi=5时,表示Fi作用最大

2009-12-14安徽工程科技学院计算机系20

2,软件度量

表2.3功能点度量

测量参数值权值

用户输入数□*4

用户输出数□*5

用户查询数□*4

文件数□*7

外部界面数□*7

CT

2009-12-14安徽工程科技学院计算机系21

2,软件度量

面向功能的度量

表2.3中的五个信息量按下列方式取值

用户输入数用户为软件提供的输入参数个数

用户输出数件系统为用户提供的输出参数个数

用户查询数一个联机输入确定一次查询,软件

以联机输出的形式,实时地产生一

个响应

文件数统计逻辑的主文件个数

外部界面数

2009-12-14安徽工程科技学院计算机系22

2,软件度量

面向功能的度量

用功能点定义的概念

生产率

Pf=FP/E(2-6)

其中Pf表示每人月完成的功能点数

2009-12-14安徽工程科技学院计算机系23

2,软件度量

面向功能的度量

优点

①与程序设计语言无关,它不仅适用

于过程式语言,也适用于非过程式的

语言;

②软件项目开发初期就能基本上确定

系统的输入、输出等参数,功能点度

量能用于软件项目的开发初期。

2009-12-14安徽工程科技学院计算机系24

2,软件度量

面向功能的度量

缺点

①它涉及到的主观因素比较多,如各种权

函数的取值;

②信息领域中的某些数据有时不容易采集;

③FP的值没有直观的物理意义。

2009-12-14安徽工程科技学院计算机系25

第二章软件项目管理

2.2软件项目估算

■软件开发成本占总成本的比例很大。

■客户和项目管理人员都十分重视软件项目的

成本估算。

■软件是逻辑产品,成本估算涉及人、技术、

环境、政策等多种因素,在项目完成之前,

很难精确地估算出项目的开销。

2009-12-14安徽工程科技学院计算机系26

2・2软件项目估算

软件项目估算

常用的估算方法

①参照已经完成的类似项目估算待开发项@的成本

和工作量。

②将大的项目分解成若干子项目,在估算出每个子

项目成本和工作量之后,再估算整个项目。

③将软件项目按软件生存周期分解,分别估算出软

件项目在软件开发各个阶段的工作量和成本,然

后再把这些工作量和成本汇总估算整个项目。

④根据实验或历史数据给出软件项目工作量或成本

的经验估算公式。

2009-12-14安徽工程科技学院计算机系27

2・2软件项目估算

软件项目估算

■四种方法可以同时、单独或组合使用,

以便取长补短,提高项目估算的精度和

可靠性。

■采用分解技术估算软件项目应考虑系统

集成时需要的工作量。

■为了实现软件项目估算,实践中开发了

大量的软件项目自动估算工具,用以支

持软件工作量或成本估算。

2009-12-14安徽工程科技学院计算机系28

2・2软件项目估算

2.2.1代码行、功能点和工作量估

-软件项目的规模是影响软件项目成本和工作量的

重要因素。

■软件项目代码行和功能点估算是成本和工作量估

算的基础。

-采用上述四种估算方法可以估算出LOC或FP的乐

观值a,悲观值b和一般值m,然后根据下列加权

公式计算出期望值

e=(a+4m+b)/6(2-10)

希望LOC或FP的值落在区间[a,b]之外的概率极

2009-12-14安徽工程科技学院计算机系29

2・2软件项目估算

代码行、功能点和工作量估算

■当LOC或FP的期望值估算出来之后,根据

以前软件项目开发的平均生产率LOC/PM或

FP/PM就可以计算出工作量。

如,软件项目的规模估算为310FP,以前完成

的软件项目的生产率为5.5FP/PM,于是工

作量估算为E=310/5.5=56PM。

2009-12-14安徽工程科技学院计算机系30

第二章软件项目管理

2.3软件质量度量

1)软件质量定义及三层次度量模型

2)软件质量要素

3)软件质量要素评价准则

2009-12-14安徽工程科技学院计算机系31

2.3软件质量度量

2.3.1软件质量定义及三层次度量模型

质量低下的软件不但影响基于计算机系统的

工作效率,而且还可能给用户带来灾难性的

后果。

■提高软件产品质量是软件工程的首要任务。

■软件开发人员、管理人员、维护人员和用户

在软件开发、维护、使用过程中所处地位不

同,对软件质量的理解和要求也不同。

2009-12-14安徽工程科技学院计算机系32

2.3软件质量度量

软件质量度量

■管理人员关心软件开发标准,在经

费和时间允许的情况下,如何实现

软件需求规格说明中定义的功能

■维护人员重视软件的正确性,可理

解性和可修改性

■用户更关心软件的性能和可靠性等

2009-12-14安徽工程科技学院计算机系33

2.3软件质量度量

软件质量度量

软件质量

软件产品满足规定的和隐含的与需求

能力有关的全部特征和特性,包括

1.软件产品品质满足用户要求的程度;

2.软件各种属性的组合程度;

3.用户对软件产品的综合反映程度;

4.软件在使用过程中满足用户要求的程度。

2009-12-14安徽工程科技学院计算机系34

2.3软件质量度量

软件质量度量

■软件质量依赖于软件的内部特性及其组合

■为了对软件质量进行度量,必须对影响软

件质量的要素进行度量,并建立实用的软

件质量度量体系或模型

■1968年Rubey和Hartwick提出了软件某些属

性的度量方法

■1976年Boehm提出了定量评价软件质量的

概念,给出了60个软件质量度量公式和软

件质量度量的层次模型

2009-12-14安徽工程科技学院计算机系35

2.3软件质量度量

软件质量度量

・1978年Walters和McCall提出了包括质量要素

(factor)、准则(criteria)和度#(metric)的三层次

软件质量度量模型

■G.Murine又提出了软件质量度量技术SQM用于

定量地评价软件质量

■1985年国际标准化组织(ISO)提出了软件质量度

量(SQM)工作报告

2009-12-14安徽工程科技学院计算机系36

2.3软件质量度量

三层次软件质量度量模型

质量要素

(factor)要素

-评价准则

(criteria)

评价准则

■度量

(metric)

度量度量度量

2009-12-14安徽工程科技学院计算机系37

2.3软件质量度量

2.3.2软件质量要素

■软件质量要素直接影响软件开发过程

各个阶段的产品质量

■由于对软件质量理解的不断深化,软

件质量要素不是一成不变的

■McCall等人给出的软件质量要素共11

个,分为三类。

2009-12-14安徽工程科技学院计算机系38

第二章软件项目管理

2.4软件复杂性度量

■软件复杂性及度量原则

■控制结构的复杂性度量

-文本复杂性度量

2009-12-14安徽工程科技学院计算机系39

2.4软件复杂性度量

2.4.1软件复杂性及度量原则

软件复杂性度量开发规模相同、复杂性不同的软

件,花费的时间和成本会有很大差异。

K.Magel从六个方面描述软件复杂性

①理解程序的难度;

②纠错、维护程序的难度;

③向他人解释程序的难度;

④按指定方法修改程序的难度;

⑤根据设计文件编写程序的工作量;

⑥执行程序时需要资源的程度。

2009-12-14安徽工程科技学院计算机系40

2.4软件复杂性度量

软件复杂性度量的原则(V2)

1.软件复杂性与程序大小的关系不是线性的;

2.控制结构复杂的程序较复杂;

3.数据结构复杂的程序较复杂;

4,转向语句使用不当的程序较复杂;

5.循环结构比选择结构复杂;选择结构又比顺

序结构复杂;

6.语句、数据、子程序和模块在程序中的次序

对复杂性有影响;

2009-12-14安徽工程科技学院计算机系41

2.4软件复杂性度量

软件复杂性度量的原则(2/2)

7.全程变量、非局部变量较多时,程序较复杂;

8.参数按地址调用比按值调用复杂;

9.函数副作用比显式参数传递难于理解;

10.具有不同作用的变量共用一个名字时较难理

解;

1L模块间、过程间联系密切的程序比较复杂;

12.嵌套越深程序越复杂。

2009-12-14安徽工程科技学院计算机系42

2.4软件复杂性度量

2.4.2控制结构的复杂性度量

1976年T.J.McCabe

基于程序控制结构的软件复杂性度量模

型。

2009-12-14安徽工程科技学院计算机系43

2.4软件复杂性度量

控制结构的复杂性度量

程序控制结构图

■程序结构对应于有一个入口结点和一个出口

结点的有向图

■图中每个结点对应一个语句或一个顺序流程

的程序代码块

■弧对应于程序中的转移

■由入口结点可以到达图中每个结点,并且从

图中每个结点都可以到达出口结点

2009-12-14安徽工程科技学院计算机系44

2.4软件复杂性度量

控制结构的复杂性度量

McCabe用程序控制结构图的巡回秩数

V(G)作为程序结构复杂性的度量

V(G)=e-n+2(2—20)

其中:e为结构图的边数

n为结构图的结点数

可以证明V(G)等于结构图中有界或无

界的封闭区域个数

2009-12-14安徽工程科技学院计算机系45

2.4软件复杂性度量

控制结构的复杂性度量

■程序中分枝结构数和循环结构数增加

时,控制结构图的区域数增加,V(G)

的值增大,程序的结构会变得更复杂。

■结构化程序设计控制流力求从高层指

向低层,从低层指向高层的流向,会

增加封闭区域的个数,反方向的控制

流向越多V(G)越大,程序结构越复杂。

2009-12-14安徽工程科技学院计算机系46

第二章软件项目管理

2.5软件可靠性度量

■软件可靠性是影响软件质量的要素。

■可靠性分析和可靠性测试是衡量软件质

量的重要手段。

■本节研究软件可靠性、软件修复和有效

性、度量、软件可靠性估算模型和方法。

2009-12-14安徽工程科技学院计算机系47

2.5软件可靠性度量

2.5.1软件可靠性的概念

硬件可靠性可以用平均故障间隔时间

(MTBF)来测量:

其中,MTTF和MTTR分别是平均无故障时

间和平均修复时间。

2009-12-14安徽工程科技学院计算机系48

2.5软件可靠性度量

2.5.2软件可靠性估算

70年代以来,建立了几十种软件可靠性模型,

可分为宏观模型和微观模型两类。

・宏观模型

■微观模型

2009-12-14安徽工程科技学院计算机系49

第二章软件项目管理

2.6软件开发过程管理

■风险分析

■进度安排

■软件开发标准

■软件质量保证

■软件开发人员的组织与分工

■软件项目的开发过程管理

■软件过程及软件成熟度模型CMM

■软件项目管理中的CASE工具

2009-12-14安徽工程科技学院计算机系50

2.6软件开发过程的管理

261风险分析

风险的概念

-风险与将要发生的事情有关,研究风险就是研

究明天将要发生的事情

■风险涉及思想、观念、行为、地点、时间等多

种因素

■风险随条件的变化而改变,人们通过改变、选

择、控制与风险密切相关的条件减少、回避风

■改变、选择、控制条件的策略是不确定的

2009-12-14安徽工程科技学院计算机系51

2.6软件开发过程的管理

、■对待风险的态度

被动

■从不担心发生任何问题,问题发生后再做出反应。

■软件项目组对存在的风险不闻不问,直到出了问题才

赶紧采取措施。

主动

■项目开始时就预测、标识项目存在的各种风险,评估

风险发生的概率和影响的大小企按重要性进行排序;

■项目组建立风险管理计划和意外事件处理计划,以便

预防风险,及时处理突发事件。

2009-12-14安徽工程科技学院计算机系52

2.6软件开发过程的管理

风险分析和管理

-软件工程的风险

■风险标识

-风险估算

■风险规划

■风险监控

2009-12-14安徽工程科技学院计算机系53

2.6软件开发过程的管理

,软件工程的风险

风险风险风险风险

标识估算规划监控

VV

潜在地风优先级高的

风险规划和风险评估

险列表风险列表应急计划

2009-12-14安徽工程科技学院计算机系54

2.6软件开发过程的管理

261软件工程的风险

■软件风险和其它风险一样存在不确定性,

有些是很难预测的。

■对风险的不确定性进行量化,估算某一

风险可能带来的损失。

■除关注软件项目的一般性风险外,还要

关注软件项目的特殊风险,如项目的背

景、特殊要求、关键内容、薄弱环节、

技术难点、人员状况、工作环境等。

2009-12-14安徽工程科技学院计算机系55

2.6软件开发过程的管理

软件工程的风险

软件工程项目存在各种风险,人们关心的问题

■什么风险会导致软件项目的彻底失败?

■顾客需求、开发环境、目标机、时间、成本的

改变对软件项目的风险会产生什么影响?

■人们必须抓住什么机会、采取什么措施才能有

效地减少风险、顺利完成任务?

这些问题是软件开发过程中不可避免,需要妥

善处理的。

2009-12-14安徽工程科技学院计算机系56

2.6软件开发过程的管理

1风险标识

■对侍风险不能采取回避态度

项目开始时应对一般性风险和特定产品风险

进行系统标识,企随着项目的展开不断更新。

■一般可预测风险

产品规模、商业影响、客户、过程、技术、

环境、人员及经验等。

■识别风险的有效方法风险检测表

2009-12-14安徽工程科技学院计算机系57

2.6软件开发过程的管理

2风险估算

如果某一风险检测表由H1项组成,每项选取一个

整数值0,1,…,N,在最理想的情况取值为0,反之取

值为N对于中间状态依次取值1,2,N-1

当N=1时取值0,1对应布尔量真/假(T/F)

设第i种风险检测表第j项取值Xij,对应的加权系

数是Wij,于是第i种风险的估算值可以定义为

m

oi=EWijXij/(mN)

j二1

其中EWij=m,Wij三0(2-49)

2009-12-14安徽工程科技学院计算机系58

2.6软件开发过程的管理

风险估算

如果第i种风险对整个软件项目的风险估算Oi,加权系

数是Qi,i=l,2,…,1.I为风险要素的个数工Qi=l

则软件项目风险估算定义为

R=Epiai(2—50)

-0<R<l当R接近于0时表示风险比较小,R接近于1

时表示风险比较大。

■当Qioi比较大时,表示第i类风险出现并带来不良影

响的可能性比较大,必须引起足够重视,设法改善条

件,减小oi的值。

2009-12-14安徽工程科技学院计算机系59

2.6软件开发过程的管理

3风险评价和管理

风险评价是风险管理的重要步骤

任务

-进一步审查风险预测的精度;

-更新风险优先次序;

-考虑控制和/或避免可能发生风险的办法。

2009-12-14安徽工程科技学院计算机系60

2.6软件开发过程的管理

风险评价(2/2)

定义

风险管理三元组[ri,li,xi]i

=1,2,3...

其中:ri表示风险

li表示风险发生的概率

xi表示风险产生的影响

2009-12-14安徽工程科技学院计算机系61

2.6软件开发过程的管理

评价风险的影响

风险影响三要素

■风险的性质

风险发生时可能产生的问题。

■风险的范围

风险引发损失的分布及严重性。

■风险的时间

风险发生的时间、持续的时间,应

注意这时项目所处的状态。

2009-12-14安徽工程科技学院计算机系62

2.6软件开发过程的管理

确定风险影响的步骤

-确定每个风险元素发生的平均概率

-按照A给出每个元素影响的大小

-填写风险表加分析其结果

-风险预测和分析技术可以在软件项目进

展过程中反复使用。

2009-12-14安徽工程科技学院计算机系63

2.6软件开发过程的管理

4风险预测(1/2)

风险预测又称风险评估

(1)风险发生的概率;

(2)风险发生产生的后果。

2009-12-14安徽工程科技学院计算机系64

2.6软件开发过程的管理

风险预测(2/2)

风险预测活动

-风险的度量

-估算风险产生的后果

-估算风险对项目及产品的影响

-标注风险预测的整体精度,避免误解

预目管理人员和技术人员共同参加

2009-12-14安徽工程科技学院计算机系65

2.6软件开发过程的管理

风险评估的步骤

1定义项目的风险参考水平值;

2建立三元组,给出相应的参考水平值;

3预测一组临界点,定义项目终止区域;

4预测什么样的风险组合会影响参考水平

2009-12-14安徽工程科技学院计算机系66

2.6软件开发过程的管理

2.6.2进度安排

制定软件项目进度表有两种途径。

(1)软件开发小组根据提供软件产品的

最后期限从后往前安排时间。

⑵软件项目开发组织根据项目和资源

情况制定软件项目开发的初步计划和交

付软件产品的日期。

2009-12-14安徽工程科技学院计算机系67

2.6软件开发过程的管理

软件项目的进度安排

1.任务分配、人力

资源分配、时间分

配要与工程进度相

协调。

2.任务分解与并行化

3,工作量分布4-2-4

分布原则

4.工程进度安排图2.11软件开发

工作量分布

2009-12-14安徽工程科技学院计算机系68

2.6软件开发过程的管理

2.6.3软件开发标准

■传统工业没有标准化就没有现代化的工

业。大型软件工程项目也离不开标准化。

-软件文档、程序和数据的标准化有助于

提高软件的一致性、完整性和可理解性,

有助于提高软件开发质量和效率。

■标准化的软件便于存档、交流和重用。

2009-12-14安徽工程科技学院计算机系69

2.6软件开发过程的管理

2.6.4软件质量保证

软件工程的目标是生产高质量的软件。高

质量的软件应具备下列三个条件:

1.满足软件需求定义的功能和性能;

2.文档符合事先确定的软件开发标准;

3.软件的特点和属性遵循软件工程的目标

和原则。为了开发出高质量的软件,必

须进行有计划、有系统的软件质量保证

(SQA)活动。

2009-12-14安徽工程科技学院计算机系70

2.6软件开发过程的管理

2.6.5软件开发人员的组织与分工

大型软件项目需要很多人通力合作,

花费一年或数年的时间才能完成。

软件项目开发人员的组织、分工与

管理十分重要、复杂,它影响到软件项

目的成败。

软件开发人员的个人素质与能力差异

很大

1970年Sackman对12个程序员用两个

不同的程序进行试验

2009-12-14安徽工程科技学院计算机系71

2.6软件开发过程的管理

试验结论

■程序排错、调试时间差别为18:1;

-程序编制时间差别为15:1;

■程序长度差别为6:1;

■程序运行时间差别为13:1

软件产品不易理解、不易维护,给软件人员

的组织带来困难

2009-12-14安徽工程科技学院计算机系72

2.6软件开发过程的管理

软件开发人员的组织与分工

原则

-降低管理系统的复杂性;

■按树形结构组织软件开发人员,树的根

是软件项目经理和技术负责人。

■人员的选择、分配、组织是涉及软件开

发效率、软件开发进度、软件开发过程

管理和软件产品质量,必须引起项目负

责人的高度重视。

2009-12-14安徽工程科技学院计算机系73

2.6软件开发过程的管理

软件开发人员的组织与分工

■树的结点是程序员小组,为了减少系统的复杂

性、便于项目管理,树的结点每层不要超过7

个,在此基础上尽量降低树的层数。

■程序员小组的人数应视任务的大小和完成任务

的时间而定,一般是2~5人。

■为降低系统开发过程的复杂性,程序员小组之

间,小组内程序员之间的任务界面必须清楚并

尽量简化。

2009-12-14安徽工程科技学院计算机系74

2.6软件开发过程的管理

软件开发人员的组织与分工

■按“主程序员”组织软件开发小组是一

条比较成功的经验。

■“主程序员”是“超级程序员”。小组

其他成员,包括程序员、后备工程师等,

是主程序员的助手。

■主程序员负责规划、协调、审查小组全

部技术活动。

2009-12-14安徽工程科技学院计算机系75

2.6软件开发过程的管理

软件开发人员的组织与分工

■软件开发小组还可以根据任务需要配备有关专

业人员,如,数据库设计人员、远程通信专家

等。

■组内成员都对主程序员负责,省略了组员之间

的通信和协调,提高了工作效率。

■软件项目或软件开发小组可以配置若干个秘书、

软件工具员、测试员、编辑和律师等。

2009-12-14安徽工程科技学院计算机系76

2.6软件开发过程的管理

软件开发人员的组织与分工

-“无我程序设计”原则建立软件民主

开发小组。

■这种组织形式强调组内成员人人平等,

组内问题均由集体讨论决定。

■这种组织形式有利于集思广益、取长

补短,但工作效率比较低。

2009-12-14安徽工程科技学院计算机系77

2.6软件开发过程的管理

2.6.6软件项目的开发过程管理

软件项目开发过程的跟踪、管理与质量和进

度控制是软件工程

■活动的重要组成部分。软件项目中某些子任务

的拖延会对整个项目带来致命的影响。

■项目管理的重要任务是对已经开工的软件项目

进行跟踪和控制。

■软件项目管理人员管理项目资源,处理软件开

发过程中出现的问题,领导项目组成员按计划

和要求工作。

2009-12-14安徽工程科技学院计算机系78

2.6软件开发过程的管理

软件开发人员的组织与分工

项目管理人员经常采用的跟踪方式

(1)定期召开项目工作会议让每个小组成员

汇报任务进展情况和出现的问题

(2)在软件开发过程中,请专家和用户按照

里程碑评审阶段性的成果、判定开发进

度是否与软件项目定义的里程碑保持一

2009-12-14安徽工程科技学院计算机系79

2.6软件开发过程的管理

软件开发人员的组织与分工

(3)对照任务网络图检查各子任务的开始时间是否

与计划时间一致,如果拖后应查明原因,尽快

采取措施利用机动时间赶上进度,不要影响后

面的计划

(4)向项目开发人员及时了解项目进展情况及存在

的主要问题。

2009-12-14安徽工程科技学院计算机系80

第二章软件项目管理

2.7软件过程及软件成熟度模型

CMM

2.7.1引言

软件工程支持大型软件项目的开发。软件

工程强调系统的、规范的、可度量的软

件开发和维护过程。

软件工程追求的目标是,在合同规定的预

算和期限内,按照客户的需求,高质量

的交付软件及其相关产品。

2009-12-14安徽工程科技学院计算机系81

2.7软件过程及软件成熟度模型CMM

引言

■软件开发组织的能力成熟度度量十分重要。

■软件开发组织希望通过软件能力成熟度度量找到自己

的优势和差距,为提高自身的软件开发能力提供科学

的依据。

.软件客户也希望通过软件组织的能力成熟度度量科学

的审视软件开发组织,寻求承制软件项目的适宜伙伴。

2009-12-14安徽工程科技学院计算机系82

2.7软件过程及软件成熟度模型CMM

引言

■1986年11月,美国卡内基,梅隆大学软件工程研究所

(SEI/CMU)在Mitre公司的支持下着手开发支持软件

开发组织改进软件过程的“软件过程成熟度框架”。

-美国国防部提出,希望“软件过程成熟度框架”能用

于评估软件开发组织承制软件的能力。

■SEI/CMU的Humphrey领导的小组,经过大量的调查、

研究,于1987年开发了“软件过程评估”和“软件成

熟度评价”两个模型,企进行了广泛的问卷调查。

■1991年8月公开发布软件能力成熟度模型(Capability

MaturityModelforSoftware-CMM)CMMvl.Oo

2009-12-14安徽工程科技学院计算机系83

2.7软件过程及软件成熟度模型CMM

引言

■CMM模型是一个概念模型,模型框架和表示是

刚性的不能随意改变,但模型的解释和实现有

一定弹性。

■CMM源于大型软件开发实践,反映了软件过程

评估和软件过程改进的需要,是一个有效的大

型软件开发、维护过程模型。

■CMM的应用进一步规范、指导软件开发组织的

自身建设,使软件开发组织从混乱的、低效的

不成熟状态,向有纪律的、高效的成熟状态转

变。

2009-12-14安徽工程科技学院计算机系84

2.7软件过程及软件成熟度模型CMM

引言

■CMM也为社会评价软件开发组织的能力成熟度

提供了标准和依据。

■CMM涵盖了软件开发和维护过程的全部关键步

骤和环节。

■在广泛征求政府部门、企业界、学术界对CMM

V1Q的意见后,SEI对CMMV1.0进行了修订,

加于1993年2月正式发布CMMvl.lo

■在1986年--1993年的八年间,先后有数百名软

件专业人员参与了CMM的评审,300多名代表

参加CMM当前版本发布前的研讨会,CMM代表

了软件工程和管理工程界广泛、一致的意见。

2009-12-14安徽工程科技学院计算机系85

2.7软件过程及软件成熟度模型CMM

引言

■CMM推广应用后,对于提高软件开发组织的软

件产品质量、降低产品成本、履行交付承诺,

对于加强软件开发组织的自身建设,对于选择

软件承包商都取得了明显的经济和社会效果,

得到了社会各界的公认和好评。

■1999年10月美国国防部规定,承担国防部大型

软件项目的承包商必须具备CMM成熟度3级的

认证。

■目前,中国也有一些软件企业进行了CMM评估

和认证。

2009-12-14安徽工程科技学院计算机系86

2.7软件过程及软件成熟度模型CMM

2.7.2CMM的基本概念

在CMM范围内,有几个常用的词汇,有必要给出

它们的定义和说明。

组织(organization)

管理软件项目,能对项目进行评估和过程

改进的实体。

项目(project)

由组织承担的,企需要组织中各部门通力

合作完成的指定产品开发和维护任务。任何一

个项目都涉及经费、成本和进度计划。这里的

产品包括硬件、软件或其他构件。

2009-12-14安徽工程科技学院计算机系87

2.7软件过程及软件成熟度模型CMM

CMM的基本概念

软件过程(softwareprocess)

■软件开发人员为开发和维护软件及相关

产品所实施的一系列步骤,这些步骤涉

及方法、工具及人的组织和行为。

■软件产品的质量取决于软件开发和维护

过程的质量,与其它产品的开发过程一

样,软件过程也必须进行严格管理,管

理出效益、管理出质量。

2009-12-14安徽工程科技学院计算机系88

2.7软件过程及软件成熟度模型CMM

CMM的基本概念

(4)组织的标准软件过程(organization's

standardsoftwareprocess)

■组织内部使用的软件过程,它描述软件过程

要素和要素之间的关系,用它可以建立某一

具体项目的软件过程。

■软件开发组织的软件过程能力是软件开发组

织能够承接软件项目的重要依据。

2009-12-14安徽工程科技学院计算机系89

2.7软件过程及软件成熟度模型CMM

组织的标准软件过程

■成熟的软件开发组织十分重视提高自身的软件

过程能力,组织的领导者注意调动各层次、各

类型人员的积极性和创造性,注意提高员工素

质和技能,注意培育和发扬企业文化。

■在软件开发过程中,大家能够团结协作,能够

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论