首页 > 代码库 > 《软件项目管理》课程知识总结

《软件项目管理》课程知识总结

   这篇文章是结合《软件项目管理》课程知识进行的总结,我也不知道自己为什么要总结这篇文章,很多事情没有原因就做了,希望对大家有所帮助,尤其是上这门课的同学吧!有时候也在想写这样的文章到底有没有用,估计用处不大,但没办法兴趣使然~
    ——吾亦无他,唯心向尓
    (By:Eastmount 2014-11-25 下午5点 
http://blog.csdn.net/eastmount/)

一. 什么是项目管理?

    随着软件危机(Software Crisis)带来软件代价高、难于控制开发进度、软件质量低、维护困难等,提出来了两种解决办法:
    (1).技术方面通过新的编程思想、设计方法和设计模式
    (2).管理方面通过项目管理

    这门课程主要讲述软件项目管理相关内容,推荐IBM设计师Brooks《人月神话》.那么什么是项目呢?什么又是项目管理呢?
    项目是指为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力;它具有明确的目标性、时限性、一次性、成本约束、管理变更等.
    项目管理是一系列伴随项目进行而采取的、以确保项目能达到期望结果为目标的管理行为.按照美国项目管理协会(PMI)定义,项目管理知识体系(Project Management Body of Knowledge,PMBOK)包括9大知识领域和5大标准化过程.

    (1).9大知识领域:范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理,如下所示.
    其中核心知识领域是:
    a.项目范围管理(Scope):确定和管理项目为成功完成项目所需全部工作;
    b.项目时间管理(Time):项目所需时间估算,确定醒目及时完工;
    c.项目成本管理(Cost):项目预算的准备和管理;
    d.项目质量管理(Quality):确保项目满足各方需求.

    (2).PMBOK的5个标准化过程
    项目9大知识领域和5大标准化过程相互关联的.同时在软件项目管理中通常会遇到需求不明确、变化较多、工作量估低、团队水平不足、计划不充分等问题,通过一些管理原则可以完善,如90/90表示项目完成90%后还有90%要做、80/20原则等.

二. 项目综合管理

    项目综合管理指在整个生命周期中,协调所有其他项目管理知识领域,确保项目所有分项计划在正确的时间组合在一起,以成功地完成项目.它是整个项目成功的关键.它具有综合性、全局性、系统性.
    由上图可见,项目综合管理与其他八个知识领域息息相关.同时项目综合管理内容分为项目综合管理计划制定、项目综合管理计划执行和综合变更控制.下表表示9大知识领域与5个标准过程每阶段实施内容.
   在总综合管理中计划的编制过程如下图所示:

三. 项目范围管理

    项目范围管理指对项目从立项到结束的整个生命周期中有关项目的[工作范围]进行管理和控制的过程和活动.项目范围管理是项目管理知识领域中最关键、重要的内容,是项目管理的纲领性文件,确定项目其他因素的前提.
    项目范围管理包含内容包括范围规划、范围定义、范围核实和范围控制.
    范围是指把项目的主要可交付成果划分为较小的、更易管理的单位,即形成工作分解结构(WBS).
    工作分解结构(WBS,Work Breakdown Structure)是项目管理中最有价值的工具,制定项目进度计划、成本计划等多个计划的基础,按照工作性质和内在结构划分把项目可交付成果分解为子项目,子项目再分解为更小的、更易管理的工作单元或工作包.




四. 项目进度管理(时间)

    项目进度管理(时间)为确保项目按期完成所需要的管理过程,目的是在给定条件下,以最短的时间、最低的成本、最小的风险、按质按量完成项目的规定任务.
    合理的并行性活动安排是项目按期完成的重要保证,进度问题是产生项目冲突的主要原因.项目进度管理内容如下:
   
项目进度管理的重点是项目历时估计算法:

    1.关键路径算法(CPM Critical Path Method):包括穷举法求CP、正逆推法求CP
    根据活动网络图中活动间的逻辑关系计算和确定每个活动的最早和最迟开始、完成时间,计算浮动时间,计算网络图中最长路径(关键路径),确定项目完成时间.基本概念如下:
    最早开始时间(Early Start)
    最晚开始时间(Late Start)
    最早完成时间(Early Finish)
    最晚完成时间(Late Finish)
    自由浮动时间(Free Float):在不影响后置活动最早开始时间情况下,本活动可以延迟的时间.
    总浮动时间(Total Float):在不影响项目最早完成时间情况下,本活动可以延迟的时间.TF=LS-ES=LF-EF.
    关键路径(Critical Path):网络图中最长的路径(穷举法),由时间浮动为0的活动组成的路径(正逆推导法,关键活动),CP决定项目完成时间,CP可能不止一条.

    考试中就遇到该题,需要注意的是在使用穷举法判断关键路径是路径长度最大的为CP.
    如下图所示已知项目PDM网络图,项目最早开工日期是第0天,活动估计工期已给出,计算各值及关键路径.

   1).首先确定采用正推过程从左到右计算ES与EF(上层数据),当一个后置活动出现多个前置活动时,选择最大的EF作为后置活动的ES,如Task C选择Task B和Task E中EF=12的最大值.(多>1)
    2).然后采用逆推过程,建立项目最后一个活动的LF,从右到左计算每个活动的LF和LS(LS=LF-活动估计工期),当一个前置活动有多个后置活动时,选择其中最小的LS作为前置活动的LF.如Task E选择Task C和Task F中较小LS值=12作为其LF.(1<多)
    3).最后关键路径CP为浮动时间为0路径,TF(F)为Task F中LF-EF=24-20(或LS-ES),FF(F)为Task G的ES减去Task E的EF值.

    2.时间压缩法:赶工(Crash)
    在不改变项目范围的前提下缩短项目工期的数学分析方法,主要措施是赶工,一般选择压缩关键路径上的关键活动的工期.
    压缩工程中进度与成本并不是总成正比关系,同时单位压缩成本如下所示,如活动A正常进度7周,成本5万,压缩5周成本6.2万,则单位压缩成本=(6.2-5)/(7-5)=6000元/周.


    例题如下将工期压缩到17周,16周,15周时的应该压缩的活动和最后成本?

    首先计算A-D的单位压缩成本,然后判断可压缩工期,A+B活动16周,C+D活动18周可压缩,选择压缩成本低的C进行压缩.如下图压缩至17周:
   同理压缩至16、15周显示结果如下:(15周选择可压缩不太明白)


    3.计划评审技术(PERT,彼特图)
    以网络图的形式制定计划,求得计划最优方案.适合估算事先不能完全肯定时,适用于不可预知因素较多、从未做过的新项目和复杂项目.PERT对各个项目活动完成时间有三种不同的情况估计:
   乐观时间(Optimistic time):任何事情顺利完成,完成工作时间
    最可能时间(Most likely time):正常情况完成工作时间
    悲观时间(Pessimistic time):最不利情况完成工作时间

   其中活动期望时间Te=(O+4M+P)/6 标准差 δ=(P-O)/6 方差=标准差平方


    进度管理工具用于制定进度计划,其工具包括
    1.网络图
    箭线法(ADM)使用箭头表示活动,结点表示事件;前导图法(PDM)使用结点表示活动,箭头表示活动间关系.

    2.甘特图
    用以表示各活动开始时间和结束时间,明确活动工期与进度计划.

    3.里程碑图

五. 项目成本管理

    项目成本是指为实现项目目标所耗用资源的成本费用综合,项目成本管理指在批准的预算条件下确保项目保质按期完成.成本管理内容主要包括:资源计划编制、成本估计、成本预算和成本控制.
    成本估算方法有:
    (1).由上而下的估计法(类比估算法):由于项目初期或信息不足时采用该方法,将类似项目的实际成本历史数据作为估算依据.
    (2).由下而上的估计法(工料清单发):存在管理博弈过程,先估计各个独立的活动费用,下层可能过分夸大自己估算,故上层管理者一般不会相信估算的结果.
    (3).参数模型法:利用代码行技术和功能点技术估算.

    项目成本预算是进行项目成本控制的基础,项目成功的关键因素,它是在成本估算基础上进行的.中心任务是估计项目各活动的资源需要量,将成本预算分配到项目各活动上.
    项目成本控制需要与范围管理、进度控制、质量控制相协调,不能脱离技术进度单独存在,要在成本、技术、费用三者间综合平衡.主要采用挣值法对项目进度和费用进行综合控制.它相关的3个基本参数和4个评价指标如下:
    BCWS(预算 PV):计划工作量的预算费用
    ACWP(成本 AC):已完成工作量的实际费用
    BCWP(收益 EV):已完成工作量的预算成本
    CV(费用偏差)=BCWP-ACWP=收益-成本
       
正值预算节余,工作效率高;负值预算超支,执行效果不佳
    SV(进度偏差)=BCWP-BCWS=收益-预算
        正值进度提前,负值进度延误,0实际进度与计划进度一致
    CPI(费用执行指标)=BCWP/ACWP=收益/成本
       
CPI>1节余,CPI<1超支,CPI=1成本与预算相符
    SPI(进度执行指标)=BCWP/BCWS=收益/预算
       
SPI>1提前,SPI<1延误,SPI=1进度相同

    例:某项目由四项活动组成,各项活动的时间和成本如下表所示,总工时4周,总成本1万元,以下是第3周末的状态.求CV、SV、CPI、SPI,该指标说明了什么?

   解: BCWS=2000+2000+3000=7000元
        ACWP=2000+2500+2200=6700元
        BCWP=2000+2000+1500=5500元
        CV=BCWP-ACWP=5500-6700=-1200元
        SV=BCWP-BCWS=5500-7000=-1500元
        CPI=BCWP/ACWP=5500/6700=0.82
        SPI=BCWP/BCWS=5500/7000=0.79
        SV<0,CV<0说明工作效率低,进度慢,投入延后,建议增加骨干和高效人员.
    下图是三种挣值参数综合分析中形态1的方法:

 

六. 项目质量管理

    什么样的项目质量是好的呢?满足以下要求:满足规范要求、达到项目目的、满足用户要求、让客户满意.项目质量包括产品质量、过程质量和体系质量.其中软件项目质量管理的核心是构建质量体系(Quality System),这里主要讲述CMM软件质量管理模型.
    CMM(Capability Maturity Model for Software,能力成熟度模型):是指一个软件过程被明确定义、管理、度量和控制的有效程度,是一种帮助软件开发组织改进软件过程的策略.它是卡内基·梅隆大学软件工程研究所提出.
    CMM包括5个成熟级别,每一级都由若干个关键过程域(KPA)组成:
          I级 初始级
         II级 可重复级 
        III级 已确定级
         IV级 已管理级
          V级 优化级

   其中CMM关键过程域如下所示:初始级是无序状态.

   另一种软件质量管理模型,主要包括制定质量计划、技术评审、软件测试、过程检查及软件改进.软件测试包括黑盒测试、白盒测试;代码测试(单元测试)、集成测试、系统测试和验收测试.
    最后需要知道——质量保证(Sofeware Quality Assurance,SQA):质量管理中致力于对确保产品达到质量要求而提供信任的工作,质量保证!=保证质量,保证质量是质量控制的任务,质量保证是以保证质量为目标进一步提供信任,质量保证强调实施过程的质量.
   

七. 项目风险管理

    项目风险是指由于项目所处环境和条件的不确定性,项目最终结果与项目干系人的期望产生背离,并给项目干系人带来损失的可能性.项目风险主要由项目的不确定性造成.风险管理主要过程如下图所示:
    软件项目风险主要体现在四个方面:需求、技术、成本和进度.该章重点是讲述决策树法去评估风险.
    决策树法指将损益期望值中各个方案的情况用一个概率树来表示,模拟树木生长过程,从出发点开始不断分支来表示所分析问题的各种发展可能性,并以各分支的损益期望值中最大作为选择依据.如下图所示:


   下面是个决策树法的例题.

   建立决策树如下图所示:
        状态节点1=180万元*60%+(-100)万元*40%=68万元
        状态节点2=200万元*60%+(-140)万元*40%=64万元
        决策节点0=max{68-55,64-60}=13万元,所以投资甲产品.

    项目风险应对方法包括:回避风险、转移风险、减轻风险和接受风险.
    本文总结至此,还有沟通管理、采购管理和人力资源管理非重点,不在叙述,希望对大家有所帮助吧!



《软件项目管理》课程知识总结