第13章软件项目管理4.ppt

上传人:asd****56 文档编号:91068164 上传时间:2023-05-21 格式:PPT 页数:90 大小:1.12MB
返回 下载 相关 举报
第13章软件项目管理4.ppt_第1页
第1页 / 共90页
第13章软件项目管理4.ppt_第2页
第2页 / 共90页
点击查看更多>>
资源描述

《第13章软件项目管理4.ppt》由会员分享,可在线阅读,更多相关《第13章软件项目管理4.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第13章章 软件项目管理软件项目管理估算软件规模工作量估算进度计划人员组织质量保证软件配置管理能力成熟度模型小结主要内容主要内容l软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。l软件项目管理的根本目的是为了让软件项目,尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本,按期、按质的完成软件,然后交付用户使用。软件项目管理的关注点(4P)人员(People)人员是软件工程项目的基本要素和关键因素在对人员进行组织时,有必要考虑参与软件过程(及每一个软件项目)的人员

2、类型 产品(Product)定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术或管理的约束等 过程(Process)通常将项目分解为任务子任务等,其分解准则是基于软件工程的过程 项目(Project)采用科学的方法及工具对项目基本内容进行管理 依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数。把实现每个功能所需要的源程序行数累加起来,就可得到实现整个软件所需要的源程序行数。13.1 13.1 估算软件规模估算软件规模 13.1.1 13.1.1 代码行技术代码行技术由多名有经验的软件工程师分别做出估计。每个人都估计程序的最小规模(a)、最大规模(b)和最可

3、能的规模(m),分别算出这3种规模的平均值,再用下式计算程序规模的估计值:L=单位是代码行数(LOC)或千行代码数(KLOC)l代码行技术的优点:代码是所有软件开发项目都有的“产品”,且容易计算行数。l代码行技术的缺点是:源程序仅是软件配置的一个成分。l为了克服代码行技术的缺点,人们提出了功能点技术。13.1.2 13.1.2 功能点技术功能点技术依据软件信息域特性和软件复杂性,用功能点(FP)为单位度量软件规模。1.信息域特性功能点技术定义了信息域的5个特性:输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Maf)和外部接口数(Inf)。(1)输入项数:用户向软件输入的项

4、数,这些输入给软件提供面向应用的数据。(2)输出项数:软件向用户输出的项数,它们向用户提供面向应用的信息,例如,报表和出错信息等。报表内的数据项不单独计数。(3)查询数:查询即是一次联机输入,它导致软件产生某种即时响应(输出)。(4)主文件数:逻辑主文件(即数据的一个逻辑组合,它可能是大型数据库的一部分或是一个独立的文件)的数目。(5)外部接口数:机器可读的全部接口(例如,磁盘或磁带上的数据文件)的数量,用这些接口把信息传送给另一个系统。2.估算功能点的步骤用下述3个步骤,可估算出一个软件的功能点数。FP=UFPTCF(1)计算未调整的功能点数UFP每个特性(即Inp、Out、Inq、Maf和

5、Inf)都分类为简单级、平均级或复杂级UFP=a1Inp+a2Out+a3Inq+a4Maf+a5Inf其中,ai(1i5)是特性系数,其值由相应特性的复杂级别决定,如表13.1(2)计算技术复杂性因子TCF14种技术因素Fi(1i14)对软件规模的影响程度。每个因素分配一个从0(无影响)到5(有很大影响)。用下式计算技术因素对软件规模的综合影响程度DI,DI=(值在070之间)技术复杂性因子TCF由下式计算:TCF=0.65+0.01DI(3)计算功能点数FPFP=UFPTCF功能点数与所用的编程语言无关。在判断信息域特性复杂级别和技术因素的影响程度时,存在着相当大的主观因素。13.2 工作

6、量估算l软件估算模型由经验导出的公式来预测软件开发工作量,工作量是软件规模(KLOC或FP)的函数,工作量的单位通常是人月(pm)。l估算模型的经验数据,是从有限个项目的样本集中总结出来的,因此,没有一个估算模型可以适用于所有类型的软件和开发环境。13.2.1 静态单变量模型这类模型的总体结构形式如下:E=A+B(ev)C其中,A、B和C是由经验数据导出的常数,E是以人月为单位的工作量,ev是估算变量(KLOC或FP)。下面给出几个典型的静态单变量模型。1.面向FP的估算模型(1)Albrecht&Gaffney模型E=-13.39+0.0545FP(2)Maston,Barnett和Mell

7、ichamp模型E=585.7+15.12FP2.面向KLOC的估算模型(1)Walston_Felix模型E=5.2(KLOC)0.91(2)Bailey_Basili模型E=5.5+0.73(KLOC)1.16(3)Boehm简单模型E=3.2(KLOC)1.05(4)Doty模型(在KLOC9时适用)E=5.288(KLOC)1.047l对于相同的KLOC或FP值,用不同模型估算将得出不同的结果。l主要原因是,这些模型多数都是仅根据若干应用领域中有限个项目的经验数据推导出来的,适用范围有限。l因此,必须根据当前项目的特点选择适用的估算模型,并且根据需要适当地调整(例如,修改模型常数)估算

8、模型。13.2.2 动态多变量模型动态多变量模型是根据从4000多个当代软件项目中收集的生产率数据推导出来的。工作量是软件规模和开发时间这两个变量的函数。E=(LOCB0.333/P)3(1/t)4E是以人月或人年为单位的工作量;t1是以月或年为单位的项目持续时间;B是特殊技术因子,它随着规模和要求的增加而缓慢增加:小的程序(KLOC=515),B=0.16,超过70 KLOC的程序,B=0.39;P是生产率参数(2000-30000)P生产率参数,反映了下述因素对工作量的影响:总体过程成熟度及管理水平;使用良好的软件工程实践的程度;使用的程序设计语言的级别;软件环境;软件项目组的技术及经验;

9、应用系统的复杂程度。开发实时嵌入式软件时:P=2000;电信系统和系统软件时:P=10000;商业应用系统:P=28000。如果把项目持续时间延长一些,则可降低完成项目所需的工作量。13.2.3 COCOMO2模型构造性成本模型:COCOMO(COnstructive COst Model)。1981年Boehm在软件工程经济学中首次提出了COCOMO模型。1997年Boehm等人提出的COCOMO2,修订了COCOMO。3个层次的软件开发工作量估算模型:(1)应用系统组成模型用于估算构建原型的工作量。(2)早期设计模型适用于体系结构设计阶段。(3)后体系结构模型适用于完成体系结构设计之后的软

10、件开发阶段。后体系结构模型软件开发工作量函数:E=E是开发工作量(以人月为单位),a是模型系数,KLOC是估计的源代码行数(以千行为单位),b是模型指数,fi(i=117)是成本因素,见下表。(1)新增加了4个成本因素:要求的可重用性、需要的文档量、人员连续性(即人员稳定程度)和多地点开发。(2)略去了原始模型中的2个成本因素(计算机切换时间和使用现代程序设计实践)。(3)某些成本因素(分析员能力、平台经验、语言和工具经验)对生产率的影响(即工作量系数最大值与最小值的比率)增加了,另一些成本因素(程序员能力)的影响减小了。COCOMO2采用了更加精细得多的b分级模型,这个模型使用5个分级因素W

11、i(1i5):划分成从甚低(Wi=5)到特高 (Wi=0)的6个级别b=b的取值范围为1.011.26。5个分级因素如下所述:(1)项目先例性:该项目的新奇程度。(2)开发灵活性:约束多少。(3)风险排除度:重大风险已被消除的比例。(4)项目组凝聚力:开发人员相互协作度。(5)过程成熟度:按照能力成熟度模型(见13.7节)13.3 进度计划目的:保证项目按时完成影响工期的因素:工作量,资源(人力,设备),项目特点方法:把项目分解成许多小任务以利于估计,执行,监控难点:根据项目,合理分配任务,优化使用资源,留有余地工具:经验模型,GANTT图,工程网络项目管理者必须定义全部项目任务,识别出关键任

12、务,跟踪关键任务的进展状况。制定一个详细的进度表,监督项目进度并控制整个项目。13.3.1 估算开发时间工期=工作量/人力正常情况下,估算开发时间的模型方程:(1)Walston_Felix模型:T=2.5E0.35(2)原始的COCOMO模型:T=2.5E0.38(3)COCOMO2模型:T=3.0E0.33+0.2(b-1.01)(4)Putnam模型:T=2.4E1/3E是开发工作量(以人月为单位),T是开发时间(以月为单位)。l为了缩短开发时间应该增加开发工作的人数。随着开发小组规模扩大,个人生产率将下降,开发时间与开发工作的人数非简单反比关系的两个原因:(1)当小组变大时,通信开销增

13、加了。(2)新成员要额外花费小组其他成员的时间。l被称为Brooks规律的下述现象:向一个已经延期的项目增加人力,可能(只)会使得它更加延期。l项目组规模与项目组总生产率的关系。lP名项目组员之间的通信路径数:MIN=P-1,MAX=P(P-1)/2通信路径数大约为P,其中12。l一个组员不与任何人通信时个人生产率为L,每条通信路径导致生产率减少l,组员个人平均生产率为:Lr=L-l(P-1)r其中,r是对通信路径数的度量,0r1l规模为P的项目组的总生产率为Ltot=P(L-l(P-1)r)l对于给定的L,l和r的值,总生产率Ltot是P的函数。存在一个最佳的项目组规模Popt,其总生产率最

14、高。lBoehm根据经验指出,软件项目的开发时间最多可以减少到正常开发时间的75%。l举例说明项目组规模与生产率的关系。l假设个人最高生产率为5OOLOC/月(即L=500),每条通信路径导致生产率下降10%(即l=50)。如果每个组员都必须与组内所有其他组员通信(r=1),则项目组规模与生产率的关系如表所示。l可见在这种情况下项目组的最佳规模是5.5人,即Popt=5.513.3.2 Gantt图lGannt(甘特)图是历史悠久、应用广泛的制定进度计划的工具。l下面通过一个非常简单的例子介绍这种工具。例子:设有一座陈旧的矩形木板房需要重新油漆。这项工作必须分3步完成:首先刮掉旧漆,然后刷上新

15、漆,最后清除溅在窗户上的油漆。假设一共分配了15名工人去完成这项工作,然而工具却很有限:只有5把刮旧漆用的刮板,5把刷漆用的刷子,5把清除溅在窗户上的油漆用的小刮刀。怎样安排才能使工作进行得更有效呢?l一种做法是首先刮掉四面墙壁上的旧漆,然后给每面墙壁都刷上新漆,最后清除溅在每个窗户上的油漆。l显然这是效率最低的做法,因为总共有15名工人,然而每种工具却只有5件,这样安排工作在任何时候都有10名工人闲着没活干。l采用“流水作业法”,也就是说,首先由5名工人用刮板刮掉第1面墙上的旧漆(这时其余10名工人休息),当第1面墙刮净后,另外5名工人立即用刷子给这面墙刷新漆(与此同时拿刮板的5名工人转去刮

16、第2面墙上的旧漆),一旦刮旧漆的工人转到第3面墙而且刷新漆的工人转到第2面墙以后,余下的5名工人立即拿起刮刀去清除溅在第1面墙窗户上的油漆,。这样安排每个工人都有活干,因此能够在较短的时间内完成任务。l假设木板房的第2、4两面墙的长度比第1、3两面墙的长度长一倍,此外,不同工作需要用的时间长短也不同,刷新漆最费时间,其次是刮旧漆,清理(即清除溅在窗户上的油漆)需要的时间最少。l下表列出了估计每道工序需要用的时间。13.3.3 工程网络Gantt图有3个主要缺点:(1)不能显式地描绘各项作业彼此间的依赖关系(2)进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;(3)计划中有潜力

17、的部分及潜力的大小不明确,往往造成潜力的浪费。13.3.3 工程网络l工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关系。因此,工程网络是系统分析和系统设计的强有力的工具。l在工程网络中用箭头表示作业(例如,刮旧漆,刷新漆,清理等),用圆圈表示事件(一项作业开始或结束)。l注意,事件仅仅是可以明确定义的时间点,它并不消耗时间和资源。作业通常既消耗资源又需要持续一定时间。l下图是旧木板房刷漆工程的工程网络。l图中 1-2 刮第1面墙上的旧漆;2-3 刮第2面墙上的旧漆;2-4 给第1面墙刷新漆;3-

18、5 刮第3面墙上的旧漆;4-6 给第2面墙刷新漆;4-7 清理第1面墙窗户;5-8刮第4面墙上的旧漆;6-8 给第3面墙刷新漆;7-9 清理第2面墙窗户;8-10 给第4面墙刷新漆;9-10清理第3面墙窗户;10-11清理第4面墙窗户;虚拟作业:3-4;5-6;6-7;8-913.3.4 估算工程进度计算最早时刻EET使用下述3条简单规则:(1)考虑进入该事件的所有作业;(2)对于每个作业都计算它的持续时间与起始事件的EET之和;(3)选取上述和数中的最大值作为该事件的最早时刻EET。按照这种方法,不难沿着工程网络从左至右顺序算出每个事件的最早时刻,计算结果标在工程网络中(每个圆圈内右上角的数

19、字)。事件的最迟时刻是在不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。按惯例,最后一个事件(工程结束)的最迟时刻就是它的最早时刻。其他事件的最迟时刻在工程网络上从右至左按逆作业流的方向计算。计算最迟时刻LET使用下述3条规则:(1)考虑离开该事件的所有作业;(2)从每个作业的结束事件的最迟时刻中减去该作业的持续时间;(3)选取上述差数中的最小值作为该事件的最迟时刻LET。图13.3中每个圆圈内右下角的数字就是该事件的最迟时刻。13.3.5 关键路径13.3.6 机动时间l不在关键路径上的作业有一定程度的机动余地实际开始时间可以比预定时间晚一些,或者实际持续时间可以比预定的持续时间长一些

20、,而并不影响工程的结束时间。一个作业可以有的全部机动时间等于它的结束事件的最迟时刻减去它的开始事件的最早时刻,再减去这个作业的持续时间:机动时间=(LET)结束-(EET)开始-持续时间l对于前述油漆旧木板房的例子,计算得到的非关键作业的机动时间列在表13.6)中。13.4 人员组织单个软件开发人员无法在给定期限内完成软件项目,因此,必须把多名软件开发人员合理地组织起来,使他们有效地分工协作共同完成开发工作。3种典型的组织方式:民主制程序员组、主程序员组和现代程序员组。13.4.1 民主制程序员组民主制程序员组:小组成员完全平等,通信信道共有n(n-1)/2条。程序设计小组的规模应该以28名成

21、员为宜。优点:组员们对发现程序错误持积极的态度,这种态度有助于更快速地发现错误,从而导致高质量的代码。缺点:由于没有明确的权威指导开发工程的进行,组员间将缺乏必要的协调,最终可能导致工程失败。13.4.2 主程序员组IBM公司20世纪70年代初期开始采用,几点考虑:(1)软件开发人员多数比较缺乏经验;(2)程序设计过程中有许多事务性的工作,例如,大量信息的存储和更新;(3)多渠道通信很费时间,将降低程序员的生产率。用经验多、技术好、能力强的程序员作为主程序员,同时,组内分工,给主程序员提供充分支持,所有通信都通过一两个人进行。主程序员组的两个重要特性:(1)专业化。成员完成受过专业训练的工作。

22、(2)层次性。主程序员全面负责。组织形式如图13.5所示。l问题:l主程序员具备两方面的才能,这样的人才不多。l后备程序员更难找。l编程秘书也很难找到。13.4.3 现代程序员组“主程序员”由两个人担任:一个负责小组的技术;一个负责管理决策。当软件项目规模较大时,应该把程序员分成若干个小组,采用下图所示的组织结构。该图描绘的是技术管理组织结构,非技术管理组织结构与此类似。由图可以看出,产品开发作为一个整体是在项目经理的指导下进行的,程序员向他们的组长汇报工作,而组长则向项目经理汇报工作。当产品规模更大时,可以适当增加中间管理层次。l把民主制程序员和主程序员组的优点结合起来的另一种方法,是在合适

23、的地方采用分散做决定的方法。如下图所示。13.5 质量保证 13.5.1 软件质量软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”:(1)软件需求是度量软件质量的基础。(2)有没有显式描述的隐含需求。(3)不遵守一组指导软件开发的准则,会导致软件质量不高。13.5.2 软件质量保证措施l软件质量保证(software quality assurance,SQA)的措施主要有:技术复审和测试。l两类参加软件质量保证工作的人员:软件工程师通过采用先进的技术方法和度量,进行正式的技术复审以及完成软件测试来保证软件质量。SQA小组的职责,是辅助软件工程师以获得高质量的软件产品。其从事的软件质

24、量保证活动主要是:计划,监督,记录,分析和报告。确保软件过程的质量来保证软件产品的质量。1.技术复审的必要性较早发现错误,防止被传播到软件过程的后续阶段。大型软件产品中检测出的错误,60%70%属于规格说明错误或设计错误,而正式技术复审在发现规格说明错误和设计错误方面的有效性高达75%。正式技术复审包括走查(walkthrough)和审查(inspection)。走查的步骤比审查少,而且没有审查正规。2.走查成员组成(走查规格说明的小组为例):一名负责起草规格说明的人,一名负责该规格说明的管理员,一位客户代表,一名下阶段开发组代表一名SQA小组代表(组长)。走查组成员最好是经验丰富的高级技术人

25、员。必须把被走查的材料预先分发给走查组每位成员。走查组成员应该仔细研究材料并列出两张表:一张表是不理解的术语,一张是认为不正确的术语。走查组的任务仅仅是标记出错误而不是改正错误。走查主要有下述两种方式:(1)参与者驱动法。参与者提出他们不理解的术语和认为不正确的术语。文档编写组的代表必须回答每个质疑,要么承认确实有错误,要么对质疑做出解释。(2)文档驱动法。文档编写者向走查组成员仔细解释文档。走查组成员针对事先准备好的问题或解释过程中发现的问题提出质疑。3.审查审查的范围比走查广,包括下述5个基本步骤:(1)综述。编写文档的一名成员向审查组综述该文档。在综述会结束时把文档分发给每位与会者。(2

26、)准备。评审员仔细阅读文档。列出在审查中发现的错误的类型,频率,分级。(3)审查。评审组仔细走查整个文档。审查组组长应该在一天之内写出一份关于审查的报告。(4)返工。文档的作者负责解决在审查报告中列出的所有错误及问题。(5)跟踪。组长必须确保所提出的每个问题都得到了圆满的解决。4.程序正确性证明即使有程序正确性证明,软件测试也仍然是需要的:正确性证明过程本身也可能发生错误。程序正确性证明,对于评价小程序有价值。还不能实际用于大型程序的正确性证明。正确性证明的基本思想是证明程序能完成预定的功能。假设在程序的P1,P2,,Pn等点上的断言分别是a(1),a(2),a(n),其中a(1)必须是关于程

27、序输入的断言,a(n)必须是关于程序输出的断言。为了证明在点Pi和Pi+1之间的程序语句是正确的,只须证明若断言a(i)为真且执行这些语句之后将使a(i+1)为真。如果对所有数据输入断言为真时,能对程序内所有相邻点都能完成上述证明过程,而且程序总可以终止的,则证明了程序的正确性。13.6 软件配置管理变化是不可避免的,必须控制和管理变化。软件配置管理:用于管理变化的软件质量保证活动。软件配置管理在整个生命期内管理变化:标识变化;控制变化;确保适当地实现了变化;向需要知道这类信息的人报告变化。软件配置管理的目标:使变化更正确更容易被实现。保证每个软件配置项正确,保证一个软件的所有配置项是完全一致

28、的。13.6.1 软件配置1.软件配置项软件过程的输出信息可以分为3类:计算机程序(源代码和可执行程序);计算机程序的文档(供技术人员或用户使用);数据(程序内包含的或在程序外的)。我们把它们统称为软件配置,而这些项就是软件配置项(ITEM=元素)。2.基线(Baseline,里程碑)IEEE把基线定义为:已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。软件工具也应置于配置管理之下:编辑器、编译器和其他CASE工具。不同版本的工具产生的结果不同。13.6.2 软件配置管理过程软件配置管理主要有5项任务:标识、版本控制、变化控制、配置

29、审计和报告。1.标识软件配置中的对象命名每个配置项。两类对象:基本和聚集对象。基本对象是软件工程师在分析、设计、编码或测试过程中创建出来的“文本单元”。聚集对象是基本对象和其他聚集对象的集合。每个对象都有一组能惟一地标识它的特征:名字、描述、版本。2.版本控制版本控制管理软件配置对象的不同版本。用户能够通过选择版本来指定软件的配置。属性和软件的每个版本相关联。描述一组所期望的属性来指定和构造所需要的配置。“属性”,既可以是配置对象的版本号,也可以复杂到是一个布尔变量串。3.变化控制批准的变化生成一个“工程变化命令”描述将要实现的变化。把要修改的对象从项目数据库中“提取(check out)”出

30、来,进行修改。把修改后的对象“提交(check in)”进数据库,并创建该软件的下一个版本。变化控制的两个主要功能:1)访问控制决定软件工程师有权访问和修改一个特定的配置对象2)同步控制有助于保证由两名不同的软件工程师完成的并行修改不会相互覆盖。4.配置审计两方面采取措施确保适当地实现了所需要的变化:正式的技术复审;软件配置审计。正式的技术复审(见13.5.2节)关注被修改后的配置对象的技术正确性。软件配置审计通过评估配置对象的那些通常不在复审过程中考虑的特征(例如,修改时是否遵循了软件工程标准,是否在该配置项中显著地标明了所做的修改,是否注明了修改日期和修改者,是否适当地更新了所有相关的软件

31、配置项,是否遵循了标注变化、记录变化和报告变化的规程),而成为对正式技术复审的补充。5.状态报告配置状态报告回答下述问题:发生了什么事?谁做的这件事?这件事是什么时候发生的?它将影响哪些其他事物?配置状态改善所有相关人员之间的通信,消除冲突,避免重复,提高效率。13.7 能力成熟度模型美国卡内基梅隆大学软件工程研究所在美国国防部资助下于20世纪80年代末建立的能力成熟度模型(capability maturity model,CMM),是用于评价软件机构的软件过程能力成熟度的模型。最初,建立此模型的目的主要是,为大型软件项目的招投标活动提供一种全面而客观的评审依据,发展到后来,此模型又同时被应

32、用于许多软件机构内部的过程改进活动中。改进对软件过程的管理是消除软件危机的突破口,比采用先进的技术和工具更重要。能力成熟度模型的基本思想:通过建立成熟的优化的软件过程,提高软件的生产率和质量。而技术的改进是软件过程改进的结果。CMM的作用:指导软件机构通过确定当前的过程成熟度并识别出对过程改进起关键作用的问题,进而稳步而有效地改进其软件过程,提高成熟度,使其软件过程能力得到循序渐进的提高。CMM把软件过程从无序到优化的进化过程分成5个有序的阶段,用以测量软件机构的软件过程成熟度和评价其软件过程能力,这些等级还能帮助软件机构把应做的改进工作排出优先次序。CMM对5个成熟度级别特性的描述,说明了不

33、同级别之间软件过程的主要变化。从“1级”到“5级”,反映出从混乱到成熟的软件过程必须经历的过程改进途径。CMM的每个成熟度级别中都包含一组过程改进的目标,满足这些目标后一个机构的软件过程就从当前级别进化到下一个成熟度级别。CMM不提供做这些改进的具体措施。过程变更管理过程变更管理 PCM技术变更管理技术变更管理 TCM缺陷预防缺陷预防 DP软件配置管理软件配置管理 SCM软件质量保证软件质量保证 SQA软件子合同管理软件子合同管理 SSM软件项目追踪与监督软件项目追踪与监督 SPTO软件项目策划软件项目策划 SPP需求管理需求管理 RM软件产品工程软件产品工程 SPE集成软件管理集成软件管理

34、ISM培训大纲培训大纲 TP组织过程定义组织过程定义 OPD组织过程焦点组织过程焦点 OPF同行评审同行评审 PR组间协调组间协调 IC软件质量管理软件质量管理 SQM定量定量 过程管理过程管理 QPM规范化过程规范化过程标准化过程标准化过程可预测过程可预测过程持续改进过程持续改进过程个别过程个别过程 2 级级(可重复级)(可重复级)3 级级(已定义级)(已定义级)4 级级(已管理级)(已管理级)5 级级(优化级)(优化级)1 级(初始级)级(初始级)5 优化级优化级过程变更管理过程变更管理4 可管理级可管理级需求管理需求管理软件项目策划软件项目策划软件项目跟踪与监控软件项目跟踪与监控软件子合

35、同管理软件子合同管理软件质量保证软件质量保证软件配置管理软件配置管理过程分类过程分类机构的过程机构的过程管理过程管理过程缺陷预防缺陷预防软件质量管理软件质量管理整体化软件管理整体化软件管理组间协调组间协调组织过程关注组织过程关注组织过程定义组织过程定义培训规划培训规划无序过程无序过程定量过程管理定量过程管理3 可定义级可定义级2 可重复级可重复级1 初始级初始级工程的过程工程的过程软件产品工程软件产品工程同行评审同行评审技术变更管理技术变更管理1.初始级软件过程的特征是无序的,甚至是混乱的。几乎没有什么过程是经过定义的(即没有一个定型的过程模型),项目能否成功随机性很大。没有健全的软件工程管理

36、制度。延期交付和费用超支的情况经常发生,大多数行动只是应付危机,而不是完成计划好的任务。处于1级成熟度的软件机构,其过程能力是不可预测的,其软件过程是不稳定的,产品质量只能根据相关人员的个人工作能力而不是软件机构的过程能力来预测。2.可重复级建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能和质量。对新项目的策划和管理过程是基于以前类似项目的实践经验。已经制定了项目标准,并且软件机构能确保严格执行这些标准。项目组与客户及承包商已经建立起一个稳定的工作环境。过程能力可以概括为:软件项目的策划和跟踪是稳定的,已经为一个有纪律的管理过程提供了可重复以前成功实践的项目环境。3.已定义级软件机

37、构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。有一个固定的过程小组从事软件过程工程活动。过程小组可以利用过程模型进行过程例化活动,从而获得一个针对某个特定的软件项目的过程实例。过程小组还可以推进软件机构的过程改进活动。实施了培训计划,能够保证全体项目负责人和项目开发人员具有完成承担的任务所要求的知识和技能。过程能力可以概括为:无论是管理活动还是工程活动都是稳定的。软件开发的成本和进度以及产品的功能和质量都受到控制,而且软件产品的质量具有可追溯性。4.已管理级软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标。可以定量地了解和控制软件过程和软件产品,并

38、为评定项目的过程质量和产品质量奠定了基础。过程能力可以概括为:软件过程是可度量的。这一级的过程能力允许软件机构在定量的范围内预测过程和产品质量趋势,在发生偏离时可以及时采取措施予以纠正,并且可以预期软件产品是高质量的。5.优化级软件机构集中精力不断地改进软件过程。以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节。可以获得关于软件过程有效性的统计数据,利用这些数据可以对新技术进行成本/效益分析,并优化采用最佳新技术。通过对过程实例性能的分析和确定产生某一缺陷的原因,来防止再次出现这种类型的缺陷;可以通过从过程实施中获得的定量的反馈信息,在采用新思想和新技术的同时测试它们,以不断地改

39、进和优化软件过程。处于5级成熟度的软件机构的过程能力可以概括为,软件过程是可优化的。能够持续不断地改进其过程能力,既对现行的过程实例不断地改进和优化,又借助于所采用的新技术和新方法来实现未来的过程改进。一些统计数字表明,提高一个完整的成熟度等级大约需要花18个月到3年的时间,但是从第1级上升到第2级有时要花3年甚至5年时间。13.8 小结软件工程包括技术和管理两方面的内容。有效的管理是大型软件工程项目成功的关键。软件项目管理始于项目计划,而第一项计划活动就是估算。首先需要预测软件规模。根据软件规模可以估算出完成该项目所需的工作量。成本估算模型通常也提供了估算开发时间的方程式,用增加开发人员的方法最多可以把开发时间减少到正常开发时间的75%。制定进度计划的工具有Gantt图和工程网络。典型的组织结构有民主制程序员组、主程序员组和现代程序员组等3种。软件质量保证措施主要有基于非执行的测试(也称为复审)、基于执行的测试(即通常所说的测试)。软件配置管理是是在软件整个生命期内管理变化的一组活动。能力成熟度模型(CMM)的基本思想是改进对软件过程的管理。它定义了5个成熟度等级,一个软件开发组织可以用一系列小的改良性步骤迈入更高的成熟度等级。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 项目管理

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁