软件工程项目管理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程项目管理
第六章项目管理 (3)
6.1 项目治理概述 (4)
6.1.1 项目治理的特点 (5)
6.1.2 项目治理的过程 (8)
6.2 项目筹划 (10)
6.3 进度安排 (12)
6.4 项目估算 (14)
6.4.1 软件范畴估算 (16)
6.4.2 软件开创成本估算 (19)
6.5 项目组织 (23)
6.5.2 人员配备 (24)
6.6 软件质量 (25)
6.6.1软件质量及质量包管 (25)
6.6.2质量包管的重要内容 (26)
6.6.3质量包管体系 (27)
6.6.4软件工程标准化 (28)
6.6.5 CMM模型 (36)
6.7 软件设备治理 (39)
6.7.1 概述 (40)
6.7.2 设备治理的过程 (41)
6.8 常用软件项目治理对象 (43)
第六章项目管理
本章要点
✧软件项目治理概念
✧项目治理组织及过程
✧软件质量及包管
✧CMM模型
本章进修目标
✧明白得软件项目治理的义务与目标、软件的感化范
畴
✧明白得可行性研究、成本估算技巧与成本估算模型、
软件项目标组织与筹划、软件质量包管。
✧明白得软件才能成熟度模型(CMM)的全然概念、软
件过程的成熟度等级、关键过程区域、软件企业若何实施CMM。
✧操纵软件治理技巧的全然方法。
6.1 项目治理概述
软件项目治理同样表现出治理的四个全然本能机能,即筹划、组织、引导和操纵。
软件项目治理是项目治理方法的一个应用范畴,项目治理确实是为了知足甚至超出项目涉及人员对项目标需乞降期望而将理论常识、技能、对象和技能应用到项目标活动中去。
要想知足或跨过项目涉及人员的需乞降期望,我们是须要鄙人面这些互相间有冲突的要求中寻求均衡:
范畴、时刻、成本和质量
有不合需乞降期望的项目涉及人员
明白表示出来的要求(需求)和未明白表达的要求(期望)
项目治理存眷筹划和资本分派以包管在预算内按时完成质量合格的体系。
项目治理也面对技巧开创同样的问题:复杂和变更。
复杂的产品须要专门多有着不合背景和才能的开创者介入开创。
市场竞争和须要使开创过程须要变更,带来了经常性的资本从新分派,并使得对项目状况的跟踪也变得困难。
治理者和开创者应用同样的方法处理和多变问题:通用模型、交换、基来源差不多理和设备。
项目治理差不多成为一种广泛应用于各行各业的技巧治理过程。
在软件行业,对项目实施有效的治理是软件成败的关键。
项目治理差不多获得越来越多的企业和当局部分的看重,进修和借鉴国际上先辈的项目治理体会是专门明智和有益的。
软件企业的项目规范是专门多公司经由过程几十年的摸索和实践慢慢成长形成的。
跟着我国正式参加世界贸易组织(WTO),我国与国际上的交换与合作加倍频繁,越来越多的国内软件将承接外包软件作为营业成长的一个偏向。
外包软件指的是蓬勃国度的企业将软件开创项目转移到他国。
应用他国廉价的劳动力成本来降低软件开创的成本。
国外企业选择外包软件的合作伙伴时,最看重的是项目治理的项目经理的综合本质要求较高,好的项目经理应当在软件开创技巧,软件开创技巧,软件工程理论与实践,项目治理,人际沟通等方面均要有较深的成就。
6.1.1 项目治理的特点
软件项目治理除涉及运算机软硬件范畴技巧外,还涉及到体系工程学、心理学、社会学、经济学、甚至司法等方面的问题。
须要用到多方面的综合常识,专门是要涉及到社会的身分、精力的身分、人的身分比技巧问题复杂得多。
在相干范畴的研究成果和实践差不多比较丰富,但在具体的软件
项目实践中,必须结合该项目标工作前提、人员和社会情形等多种身分来开展和实施。
软件工程成长的实践证实,软件项目成败的关键往往在于项目治理才能程度的高低,治理得好就能带来效力,博得时刻,最终将在技巧进步的门路上取得领先地位。
软件项目标特点:
软件产品与其他任何家当产品比拟有它本身的特点,它是无形的,没有物理属性,它是一个物理体系的逻辑暗射,是以难以明白得难于驾驶。
但它确切是把思惟、概念、算法、流程、组织、效力、优化等融合在一路了。
文档编制的工作量在全部项目过程研制过程中站有专门大年夜的比重,但往往人们并不看重,因而直截了当阻碍了软件的质量。
软件开创工作技巧性专门强,要求参加工作的人员具有必定的技巧水平和实际工作的体会。
别的,人员的流淌对项目标阻碍专门大年夜,离去的人员不只带走了重要信息,还带走了工作体会。
软件项目治理的困难
1.智力密集,可见性差:软件工程充斥了大年夜量高强
度的脑力劳动。
软件开创的成果是弗成见的逻辑实
体,软件产品的质量的标准加以衡量,关于不深刻操
纵软件常识或缺乏软件体会的人员,是弗成能引导做
好软件治理工作的。
2.单位临盆:在内容、情势各别的差不多上研制或临盆,
与其它范畴中大年夜范畴现代化临盆有着专门大年
夜的差别,也天然会给治理工作造成专门多实际困
难。
3.劳动密集,主动化程度低:软件项目经历的各个时期
都渗入渗出了大年夜量的手工劳动,这些劳动十分过
细、复杂和轻易出差。
尽管近年来差不多有了软件对
象和CASE的研究,但远未达到主动化的程度。
软件产品的进步天然受到了专门大年夜阻碍。
4.应用方法繁琐,爱护困难:软件工作渗入渗出人的身
分:不仅要求软件人员具有必定的技巧水平和工作体
会,同时还要求他们具备优胜的心理本质。
软件人员
的情感和他们的工作情形对他们工作有好大年夜的
阻碍。
在总结和分析足够数量掉误的软件项目之后,看出其缘故大年夜都与治理工作有关问题渗入渗出及到软件项目研制中的筹划制订,进度估量资本应用,人员配备,组织机构和治理方法等治理的专门多侧面。
软件项目治理的重要本能机能包含:
制订筹划:规定待完成的义务、要求、资本和进度等
建立组织:为实施筹划,包管义务的完成,须要建立分工明白的义务轨制。
配备人员:任何各类层次的技巧人员和治理人员。
指导:鼓舞和动员软件人员完成所分派的工作。
考查:对比筹划和标准,监督和检查实施的情形。
6.1.2 项目治理的过程
为使软件项目开创获得最终成功,必须对软件项目标工作范畴,可能碰到的风险,须要的资本(人,软/硬件),要实现的义务,过程中的里程碑,花费的工作量(成本),以及进度的安排作到心中稀有。
软件项目治理应当供给这些信息,这种治理开端于技巧工作开端之前,在软件从概念到实现的过程中连续进行,最后终止于软件项目工程停止。
平日,软件项目治理包含以下过程:
1 软件项目启动
平日,项目治理人员和用户是在体系工程启动时期确信项目标目标和范畴。
当明白了软件项目标目标和范畴后,就推敲可能的解决筹划,标明技巧和治理上的要求,确信合理,精确成本估算,实际可行的义务分化以及可管的进度安排。
2 度量
度量的工作是为了有效地定量地进行治理。
度量的目标是为了把握软件工程实际情形和它所临盆的产品德量。
在对往常未度量的事项进行度量时,须要解决是哪些合适于过程
和产品,若何应用收集到的数据,用于比较小我、过程或产品的度量是否合理。
3估算
在软件项目治理过程中一个关键的活动是制订项目筹划。
在做筹划时,必须就须要的人力、项目连续时刻、成本作出估算。
这种估算大年夜多是参考往常的花费作出的。
治理人员可应用各类估算技巧,并可用一种估算技巧作为另一种估算技巧的交叉检查。
4风险分析
风险分析对软件项目治理是决定性的,风险分析实际上确实是贯穿在软件工程过程中的一系列风险治理步调,个中包含风险辨认、风险估量、风险治理筹划、风险解决和风险监督,它能让人们去主动“进击”风险。
5过程安排
软件项目标过程安排与任何一个项目标过程安排没有本质上的不合。
起首辨认一组项目义务,再建立义务之间的互相接洽关系,然后估算各个义务的工作量,分派人力和其它资本,制订进度时序。
6追踪和操纵
项目治理人员追踪在轨制安排的每个义务,假如义务实际完成日期滞后于进度安排,则治理人员能够应用一种主动的项目进度安排对象来确信在项目标中内心程碑长进度误
期所造成的阻碍。
此外,还能够对资本从新定向,对义务从新安排或者能够修改交付日期以调剂差不多裸露的问题。
用这种方法能够较好地操纵软件的开创。
6.2 项目筹划
筹划是治理工作的重要本能机能,在软件项目治理中,软件项目从制订项目筹划开端。
项目筹划中须要确信以下几项内容:
目标:定义了待完成的目标,急切须要的资本,束缚和优先级。
范畴:定义待开创体系的界线,什么包含在体系里,什么不包含在体系里。
产品技巧说明:说明软硬件信息以及有关功能、机能、安稳性等方面的束缚。
时刻:进度表。
资金:预算。
地点:工作空间分派。
人员:介入人员以及项目组织。
在那个地点,我们强调,项目筹划所需确信的内容最终必须以文档的情势储存下来,不管软件项目标范畴若干,项目筹划文档差不多上必须的。
因为:
1、撰写项目筹划的过程也是一个澄清模糊熟悉,整顿思路的过程,只有效文字记录下来的器械,才是明白的。
2、文档能够或许作为同其他人的沟通渠道。
项目筹划能够赞助客户明白得我们的开创活动,赞助项目构成员明白得项目标束缚和策略,赞助项目经理跟踪项目标进展。
3、项目筹划文档能够作为数据差不多和检查列表。
经由过程按期回想,项目经理能清晰项目所处的状况以及哪些环节须要重点进行更换和调剂。
专门明显,在做这些筹划时并为进行项目需求分析,所依照的差不多是系兼顾划,以体系规格说明为依照。
要精确答复以上问题是比较困难的,重要靠的是估量,估量的精确程度也与项目标风险直截了当相干。
项目筹划针对不合的工作目标,类型有如下几种:
项目实施筹划,这是软件开创的综合性筹划,包含人物、进度、人力、情形、资本,组织等。
质量包管筹划,把软件开创的质量要求具体规定为在每批个开创时期中能够检查的质量包管活动。
软件测试筹划,规定测试活动的人物、测试方法、进度、资本、人员职责等。
文档编制筹划,规定所开创的项目应编制的文档种类、内容、进度、人员职责等。
用户培训筹划,规定对用户进行培训的目标、要求、进度、人员职责等。
综合支撑筹划,规定软件开创过程中所须要的支撑,以及若何获得和应用这些支撑。
软件分发筹划,软件项目完成后,若何提交给客户。
在以上各类筹划中,软件项目实施筹划是综合性的,进行工作的划分是该筹划应起首解决的问题,常用的筹划构造有按时期进行项目标筹划,义务分化构造和人物义务矩阵。
6.3 进度安排
软件开创项目标进展安排有两种推敲方法:
1.统最终交付日期差不多确信,软件开创部分必须在规按刻日内完成义务。
2.体系最终交付日期只确信了大年夜致的年限,最后交付日期由软件开创部分确信
进度安排的精确程度可能比成本估算程度更重要。
假如进度安排掉,会导致市场机会的损掉,使得用户不知足,同时也会导致成本的增长。
是以,在推敲进度安排时,要把人员的工作量与花费的时刻接洽起来
关于一个小型软件开创项目,一小我就能够完成需求分析、设计、编码和测试工作。
而关于一个稍大年夜型的软件
项目,一小我零丁开创,时刻太长。
是以,软件开创组是须要的。
一样软件开创组的范畴不克不及太大年夜,人数不克不及太多,2--8人阁下较合适当参加同一软件工程项目标人数跨过一人的时刻,开创工作就会显现并行情形。
在软件开创过程的各个活动中,第一项义务是进行项目标需求分析和评审,此项工作为今后的并行工作打下了差不多。
一旦软件的需求获得承认,同时经由过程了评审、概要设计(体系构造设计和数据设计)工作和测试筹划制订工作就能够并行进行。
假如体系的模块构造差不多建立,对各个模块的具体设计、编码、单位测试等工作也能够并行进行。
待到每个模块都差不多完成,就能够对它们进行组织,并进行组装测试。
最后,进行确认测试,为软件交付进行确认工作。
软件工程项目标并行性提出一系列进度要求。
因为并行义务是同时产生的,以进度筹划决定义务之间的从属关系,确信各个义务的先后次序和连接,以及各个义务完成的连续时刻。
此外,应留意构成关键路径的义务,即要包管全部项目能按进度要求完成,就必须包管这些关键义务要按进度要求完成。
如许,就能够确信在进度安排中应包管的重点。
前人在全部定义与开创的时期工作量分派了一种建议筹划。
那个分派筹划称为40-20-40规矩。
它指出在全部软件开创过程中,编码的工作量分派仅占20%,编码前的工作量占40%,编码后的工作量占40%。
40-20-40规矩只是用来
作为一个指南,实际的工作量分派比例必须按照每个项目标特点来决定。
一样在筹划时期的工作量专门少跨过总工作量的2%-3%,除非是具有高风险的巨额投资的项目。
需求分析可能占总工作量的10%-25%。
花费在分析或原型化方面的工作量应当随项目范畴和复杂性成比例地增长。
平日用于软件设计的工作量在20%-25%之间,而在设计评审与反复修改的时刻也必须推敲在内。
因为软件设计差不多投入了工作量,因而厥后的编码工作相对来说困难要小一些,用工作量的15%-20%就能够完成。
测试和随后的调试工作约占总工作量的30%-40%,所须要的测试量往往取决于软件的重要法度榜样。
在项目实施过程中进行追踪和操纵是软件项目治理的一项重要工作。
比如按期举办项目状况会议。
评判在软件工程过程中所产生的所有评审的成果。
确信由项目标筹划进度所安排的可能选择的正式的里程碑,比较在项目筹划表中所列出的每个想没的义务的实际开端时刻和筹划开端时刻。
6.4 项目估算
软件项目治理过程从一开端被称为项目筹划的活动开端。
这些活动中的第一个是估算。
不管何时进行估算,我们差不多上在推测今后没,在做软件项目估算时往往存在某些不确信性,使得软件项目治理人员无法正常迟迟不克不及完成。
因此估确实是一门科学,但它更是一门艺术,可那个重
要的活动不克不及以随便的方法开进行。
现在已应用的有用技巧是时刻和工作量估算。
因为估确实是所有其他项目筹划活动的基石,且项目筹划又为软件工程供给了工作偏向,因此不克不及没有筹划就着手开创,不然将会陷入盲目开创。
对软件项目进行有效的估算,取决于操纵若干有关项目范畴的原始材料。
平日,应当依照正式的需求描述进行估算。
正式的需求描述可因此需求说明书、体系规格说明书或软件需求说明书等。
假如开端时缺乏一些正式的材料,也能够采取口头描述或草稿的方法开端估算工作。
在获得项目范畴的正式材料后,必须进行再估算。
估算的两个重要方法是:第一种方法是依照项目特点和算法进行估算。
例如,依照软件体系的输入、输出、查询、文件及外部接口等信息、应用功能点估算出体系的范畴。
基于功能点估确实是按照用例(Use case)来做的,而不是软件功能来做。
经由过程研究初始应用需求来确信各类输入、输出、运算和数据库需求的数量和特点。
第二种方法是采取类比的方法,依照汗青数据来进行估算。
假如有一个往常做过的类似项目同时操纵它的范畴,就能够把新项目标各个重要部分与原有项目标响应部分进行比较,得出一个比例关系,将各部分相关于原项目范畴比例相加,运算出新项目标范畴。
假如估算者的体会丰富同时新项目与老项目具有足够的类似性,就能够或许获得合理的估
算值。
然则采取类比法,往往还要解决可重用代码的估算问题。
估量可重用代码量的最好方法确实是由法度榜样员或体系分析员具体地考察已存在的代码,估算出新项目可重用的代码中需从新设计的代码百分比、需从新编码或修改的代码百分比以及需从新测试的代码百分比。
6.4.1 软件范畴估算
软件项目标范畴估量历来是比较复杂的事,因为软件本身的复杂性、汗青体会的缺乏、估算对象缺乏以及一些工资缺点,导致软件项目标范畴估量往往和实际情形相差甚远。
是以,估量缺点已被列入软件项目掉败的重要缘故之一。
先介绍一个衡量软件项目范畴最常用的概念--LOC(Line of Code),LOC指所有的可履行的源代码行数,包含可交付的工作操纵说话(JCL:Job Control Language)语句、数据定义、数据类型声明、等价声明、输入/输出格局声明等。
一代码行(1LOC)的价值和人月均代码行数能够表现一个软件临盆组织的临盆才能。
组织能够依照对汗青项目标审计来核算组织的单行代码价值。
例如,某软件公司统计发明该公司每一万行C说话源代码形成的源文件(.c和.h文件)约为250K。
某项目标源文件大年夜小为3.75M,则可估量该项目源代码大年夜约为15万行,该项目累计投入工作量为240人月,每人月费用为
10000元(包含人均工资、福利、办公费用公滩等),则该项目中1LOC的价值为:
(240×10000)/150000=16元/LOC
改项目标人月均代码行数为:
150000/240=625LOC/人月
方法一、Delphi 法
Delphi法是最风行的专家评估技巧,在没有汗青数据的情形下,这种方法有用于评定往常与今后,新技巧与特定法度榜样之间的差别,但专家"专"的程度及对项目标明白得程度是工作中的难点,尽管Delphi技巧能够减轻这种误差,专家评估技巧在评定一个新软件实际成本时平日用得不多,然则,这种方法对决定其它模型的输入时专门有效。
Delphi 法鼓舞参加者就问题互相评论辩论。
那个技巧,要求有多种软件相干体会人的介入,互相说服对方。
Delphi法的步调是:
1、调和人向各专家供给项目规格和估量表格;
2、调和人召集小组会各专家评论辩论与范畴相干的身分;
3、各专家匿名填写迭代表格;
4、调和人整顿出一个估量总结,以迭代表的情势返回专家;
5、调和人召集小组会,评论辩论较大年夜的估量差别;
6、专家复查估量总结并在迭代表上提交另一个匿名估量;
7、反复4-6,直到达到一个最低和最高估量的一致。
方法二、类比法
类比法合适评估一些与汗青项目在应用范畴、情形和复杂度的类似的项目,经由过程新项目与汗青项目标比较获得范畴估量。
类比法估量成果的精确度取决于汗青项目数据的完全性和精确度,是以,用好类比法的前提早提之一是组织建立起较好的项目后评判与分析机制,对汗青项目标数据分析是可托赖的。
其全然步调是:
1、整顿出项目功能列表和实现每个功能的代码行;
2、标识出每个功能列表与汗青项目标雷同点和不合点,专门要留意汗青项目做得不敷的处所;
3、经由过程步调1和2得出各个功能的估量值;
4、产生范畴估量。
软件项目顶用类比法,往往还要解决可重用代码的估算问题。
估量可重用代码量的最好方法确实是由法度榜样员或体系分析员具体地考察已存在的代码,估算出新项目可重用的代码中需从新设计的代码百分比、需从新编码或修改的代码百分比以及需从新测试的代码百分比。
依照这三个百分比,可用下面的运算公式运算等价新代码行:
等价代码行 = [(从新设计% +从新编码% +从新测试%)/3]×已有代码行
方法三、功能点估量法
功能点测量是在需求分析时期基于体系功能的一种范畴估量方法。
经由过程研究初始应用需求来确信各类输入、输出、运算和数据库需求的数量和特点。
平日的步调是:
1、运算输入,输出,查询,主控文件,和接口需求的数量。
2、将这些数据进行加权乘。
下表为一个典范的权值表。
功能类型权值
输入 4
输出 5
查询 4
主控文件10
接口10
3、估量者依照对复杂度的确信,总数能够用+25%、0、或-25%调剂。
据发明,对一个软件产品的开创,功能点对项目早期的范畴估量专门有赞助。
然而,在明白得产品越多后,功能点能够转换为软件范畴测量更常用的LOC。
6.4.2 软件开创成本估算
软件开创成本主假如指软件开创过程中所花费的工作量及响应的价值。
它不合于其他物理产品的成本,不包含原材料和能源的消费,主假如人的劳动消费。
人的劳动消费所需价值确实是软件产品的的开创成本。
另一方面,软件产品开创的运算方法不合于其他物理产品成本的运算。
软件产品不存在反复制造过程,它的开创成本是以一次性开创过程所花费的价值来运算的。
是以,软件开创成本的估算,应是从软件筹划、需求分析、设计、编码、单位测试、组装测试到确认测试,全部软件开创过程所花费的价值作为依照的。
关于一个大年夜型的软件项目,要进行一系列的估算处理,重要靠分化和类推的方法进行。
全然估算方法分为3类:
1、自顶想下的估算方法。
这种方法的重要思惟是:从项目标整体动身,进行类推。
即估算人员依照往常已完成项目所消费的总成本,来推算将要开创的软件的总成本,然后按比例将它分派到各开创义务单位中去。
这种方法的长处是估算工作量小,速度快。
缺点是对项目中的专门困难估量不足,估算出来的成本盲目性大年夜,有时会漏掉被开创软件的某些部分。
2、自底向上的估算法。
这种方法的重要思惟是:把待开创的软件细分,直到没个子义务都差不多明白所须要的开创工作量,然后把它们累加起来,获得软件开创的总工作量。