项目分析和计划

上传人:鲁** 文档编号:568241307 上传时间:2024-07-23 格式:PPT 页数:116 大小:1.92MB
返回 下载 相关 举报
项目分析和计划_第1页
第1页 / 共116页
项目分析和计划_第2页
第2页 / 共116页
项目分析和计划_第3页
第3页 / 共116页
项目分析和计划_第4页
第4页 / 共116页
项目分析和计划_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《项目分析和计划》由会员分享,可在线阅读,更多相关《项目分析和计划(116页珍藏版)》请在金锄头文库上搜索。

1、项目分析和计划项目分析和计划回顾:软件生命期回顾:软件生命期l软件生命期的主要阶段软件生命期的主要阶段分析计划分析计划 需求分析需求分析 软件设计软件设计 程序编写程序编写软件测试软件测试 运行维护运行维护 2项目周期项目周期 3第二章第二章 软件项目分析和计划软件项目分析和计划l1 概述概述l2 项目度量和估算项目度量和估算l3 成本效益分析成本效益分析l4 进度安排进度安排l5 可行性研究可行性研究4概述概述l软件项目管理的内容:软件项目管理的内容:进度管理进度管理成本管理成本管理质量管理质量管理人员管理人员管理资源管理资源管理标准管理标准管理l管理的对象包括:管理的对象包括:进度进度系统

2、规模系统规模工作量估算工作量估算经费经费组织机构和人员组织机构和人员风险风险质量质量环境配置环境配置项目分析和计划项目分析和计划的内容的内容5软件项目管理的主要职能软件项目管理的主要职能l制定计划制定计划规定待完成的任务、要求、资规定待完成的任务、要求、资源、人力和进度等源、人力和进度等l建立组织建立组织为实施计划,保证任务的完成,为实施计划,保证任务的完成,需要建立分工明确的责任制机构需要建立分工明确的责任制机构l配备人员配备人员任用各种层次的技术人员和管任用各种层次的技术人员和管理人员理人员l指导指导鼓励和动员软件人员完成所分配的鼓励和动员软件人员完成所分配的工作工作l检验检验对照计划或标

3、准,监督和检查实施对照计划或标准,监督和检查实施的情况的情况6软件项目管理的关注点软件项目管理的关注点(4P)(4P)l人员人员(People)(People)人员是软件工程项目的基本要素和关键因素人员是软件工程项目的基本要素和关键因素在对人员进行组织时,有必要考虑参与软件过程在对人员进行组织时,有必要考虑参与软件过程( (及每一个软件项目及每一个软件项目) )的人员类型的人员类型 l产品产品(Product)(Product)定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术或管理的约束等技术或管理的约束等 l过程过程

4、(Process)(Process)通常将项目分解为任务通常将项目分解为任务子任务等,其分解准则是基于软件工程的过子任务等,其分解准则是基于软件工程的过程程 l项目项目(Project) (Project) 采用科学的方法及工具对项目基本内容进行管理采用科学的方法及工具对项目基本内容进行管理 7软件项目管理的特点软件项目管理的特点 l软件产品的高度抽象性软件产品的高度抽象性l软件需求在开发和维护过程中的软件需求在开发和维护过程中的易变性易变性l软件文档软件文档工作的重要性工作的重要性l软件人员的软件人员的流动性流动性l智力密集,智力密集,可见性可见性差差l软件项目经验的软件项目经验的一次性一次

5、性l使用方法繁琐,维护困难使用方法繁琐,维护困难8(1 1)启动一个软件项目)启动一个软件项目l在软件项目启动前对项目进行在软件项目启动前对项目进行可行性分析可行性分析,以明,以明确项目的目标和范围,从而确定:确项目的目标和范围,从而确定:合理精确的合理精确的成本分析成本分析实际可行的实际可行的任务分解任务分解能够管理的能够管理的进度安排进度安排l在多个项目方案中在多个项目方案中选择选择一个相对完善的方案一个相对完善的方案考虑交付期限、预算、个人能力、技术等限制条件考虑交付期限、预算、个人能力、技术等限制条件l在正式启动软件项目前组成项目组,召开在正式启动软件项目前组成项目组,召开项目启项目启

6、动会议动会议,内容包括:,内容包括:项目组的初步交流;进一步对项目目标理解;对组织形式、项目组的初步交流;进一步对项目目标理解;对组织形式、管理方式、方针的一致认识;明确岗位职责管理方式、方针的一致认识;明确岗位职责9(2 2)制定项目计划)制定项目计划 l确定确定项目交付物项目交付物l估算所需要的估算所需要的人力人力(人月(人月/ /人年)、人年)、项目持项目持续时间续时间、成本成本l建立建立项目组织项目组织l定义定义工作分解结构(工作分解结构(WBSWBS)和和任务任务l进度安排进度安排,编制预算和成本,编制预算和成本l风险风险分析分析l制定质量管理指标制定质量管理指标l制定资源计划和其它

7、附属计划制定资源计划和其它附属计划10为什么需要软件项目计划?为什么需要软件项目计划?l有序、可控制地对软件项目进行管理有序、可控制地对软件项目进行管理l生产高质量的软件产品生产高质量的软件产品l确保员工的士气高昂确保员工的士气高昂l确保员工保持高生产率确保员工保持高生产率l及时交付软件产品及时交付软件产品l降低软件开发成本降低软件开发成本l成功地进入市场成功地进入市场l客户满意度客户满意度l及时发布产品新版本及时发布产品新版本11制定软件项目计划的基础和依据制定软件项目计划的基础和依据l( (剪裁的剪裁的) )软件开发过程软件开发过程( (及其细化及其细化) )l要完成的工作要完成的工作工作

8、说明和软件需求工作说明和软件需求历史数据和估算模型历史数据和估算模型估算工作量和成本估算工作量和成本l约束和限制条件约束和限制条件人员人员资源资源进度进度制定软件开发计划制定软件开发计划软件开软件开发过程发过程要完成要完成的工作的工作约束和约束和限制限制软件项目计划软件项目计划12制定软件项目计划的时机制定软件项目计划的时机l在项目开始实施之时制定计划在项目开始实施之时制定计划明确了软件开发活动明确了软件开发活动明确了约束和限制条件明确了约束和限制条件不明确要完成的工作,因为需求分析工作还没开不明确要完成的工作,因为需求分析工作还没开始始l制定软件项目计划的时机制定软件项目计划的时机项目开始之

9、时:初步计划项目开始之时:初步计划需求完成之时:详细计划需求完成之时:详细计划13软件项目计划制定的方式(1/3)l自顶向下l自底向上14软件项目计划制定的方式软件项目计划制定的方式(2/3)(2/3)l自顶向下自顶向下由一个或者一部分人单独完成由一个或者一部分人单独完成目的是服务于高层领导和用户,而不是项目组目的是服务于高层领导和用户,而不是项目组主要依据项目进度的要求和约束,针对项目中的主要依据项目进度的要求和约束,针对项目中的重大活动重大活动( (如需求分析、软件设计等如需求分析、软件设计等) )而制定的一而制定的一个粗略的软件项目计划个粗略的软件项目计划只能作为目标进度表,不能作为实施

10、进度表只能作为目标进度表,不能作为实施进度表15软件项目计划制定的方式软件项目计划制定的方式(3/3)(3/3)l自底向上自底向上计划由计划制订者负责,所有项目组成员参与制计划由计划制订者负责,所有项目组成员参与制定定一般供项目组用于实际项目的实施一般供项目组用于实际项目的实施要求项目组成员事先了解和认可要求项目组成员事先了解和认可详细定义了计划中的所有活动详细定义了计划中的所有活动( (不仅仅是哪些重不仅仅是哪些重大活动大活动) ),明确了活动的参与者、持续时间以及,明确了活动的参与者、持续时间以及活动之间的关系活动之间的关系16(3 3)计划的追踪和控制)计划的追踪和控制 l项目管理人员监

11、督过程的实施,提供过程项目管理人员监督过程的实施,提供过程进展的报告进展的报告l评审和评价计划的完成程度评审和评价计划的完成程度l编写管理文档编写管理文档17第二章第二章 软件项目分析软件项目分析l1 概述概述l2 项目度量和估算项目度量和估算l3 成本成本/效益分析效益分析l4 现有系统分析现有系统分析l5 可行性研究可行性研究18软件项目的度量软件项目的度量l在软件项目管理的范围中,软件度量主要是指在软件项目管理的范围中,软件度量主要是指生产生产率与质量率与质量的度量的度量l目的:采用目的:采用 定量定量 的方式来进行管理的方式来进行管理推断待开发项目的生产率和质量推断待开发项目的生产率和

12、质量估算效益估算效益建立项目估算的基准建立项目估算的基准l软件度量分为两类:软件度量分为两类:直接度量:直接度量:l所投入的成本和工作量所投入的成本和工作量l代码行数代码行数(LOC)(LOC)、执行速度、存储量大小、错误数、执行速度、存储量大小、错误数间接度量间接度量l功能性、复杂性、效率、可靠性、可维护性功能性、复杂性、效率、可靠性、可维护性19软件度量对象软件度量对象l度量对象:软件产品、软件过程、资源度量对象:软件产品、软件过程、资源外部属性:面向管理者和用户的属性外部属性:面向管理者和用户的属性l体现了软件产品体现了软件产品/ /软件过程与相关资源和环境软件过程与相关资源和环境的关系

13、,如成本、效益、开发人员的生产率的关系,如成本、效益、开发人员的生产率l通常用通常用 直接测量直接测量 的办法进行的办法进行内部属性:软件产品或过程本身的属性内部属性:软件产品或过程本身的属性l如软件产品的结构、模块化程度、复杂性、如软件产品的结构、模块化程度、复杂性、程序长度等程序长度等l有些内部属性只能用有些内部属性只能用 间接测量间接测量 的方法度量,的方法度量,需要特定的测量方法或模型需要特定的测量方法或模型20软件度量分类软件度量分类l分类分类1 1:面向规模的度量:面向规模的度量:用于收集与直接度量有关的软件工程输出信息和质量信用于收集与直接度量有关的软件工程输出信息和质量信息息面

14、向功能的度量:面向功能的度量:集中在程序的集中在程序的“功能性功能性”和和“实用性实用性”面向人的度量:面向人的度量: 收集有关人们开发计算机软件所用方式的信息和人员理解收集有关人们开发计算机软件所用方式的信息和人员理解有关工具的方法和效率的信息有关工具的方法和效率的信息l分类分类2 2:软件生产率度量:软件生产率度量:集中在软件工程过程的输出集中在软件工程过程的输出软件质量度量:软件质量度量:可指明软件满足明确的和隐含的用户需求的程度可指明软件满足明确的和隐含的用户需求的程度技术度量技术度量: :主要集中在软件产品的某些特征主要集中在软件产品的某些特征( (如逻辑复杂性、模块化程度如逻辑复杂

15、性、模块化程度) )上,上,而不是软件开发的全过程而不是软件开发的全过程21度量度量 和和 估算估算l度量度量 metrics metrics度量具有数字特征,软件工程范围的度量是软件度量具有数字特征,软件工程范围的度量是软件开发过程、软件资源或软件产品简单属性的定量开发过程、软件资源或软件产品简单属性的定量描述。描述。如,程序规模、操作符个数、程序中错误的个如,程序规模、操作符个数、程序中错误的个数等。数等。l估算估算 estimation estimation对软件产品、过程、资源进行预测对软件产品、过程、资源进行预测估算可以采用经验公式、或参考历史资料估算可以采用经验公式、或参考历史资料

16、估算用于事前签订合同、立项、制定工作计划等估算用于事前签订合同、立项、制定工作计划等22项目估算项目估算l项目估算是制定项目计划的基础项目估算是制定项目计划的基础项目所需的人力项目所需的人力( (以人月为单位以人月为单位) )、项目持续时间、项目持续时间( (以年以年份或月份为单位份或月份为单位) )、成本、成本( (以元为单位以元为单位) )等等l参照以前类似项目中的相关数据进行估算参照以前类似项目中的相关数据进行估算若存在类似历史项目则可进行类比估算若存在类似历史项目则可进行类比估算若缺少可类比的项目数据则采用特定的估算技术若缺少可类比的项目数据则采用特定的估算技术( (例如例如功能点估算

17、方法等功能点估算方法等) )l通常采用多种估算技术进行交叉检查通常采用多种估算技术进行交叉检查23项目估算的步骤项目估算的步骤l建立历史数据基线l对工作量等的估算l将实际工作量等的测量与估算值比较,以控制项目的进度l收集技术度量、评价设计质量、测试等的方法l记录和跟踪所发现的错误l补充历史数据基线24建立历史数据基线建立历史数据基线l基线的数据应该是合理的、精确的基线的数据应该是合理的、精确的l应该从尽可能多的项目中收集数据应该从尽可能多的项目中收集数据l所收集的数据应尽量包括:所收集的数据应尽量包括:成本数据成本数据: :工作成本工作成本( (元元/ /人月人月) )、工作时间、工作时间(

18、(小时小时) )度量计算数据度量计算数据: :成员人数成员人数, ,完成时间完成时间, ,文档数文档数项目数据项目数据: : 分析分析(%),(%),设计设计(%),(%),编码编码(%)(%)等等功能数据功能数据: : 功能点功能点生产率和成本数据生产率和成本数据质量数据质量数据: : 错误数错误数, , 错误成本错误成本, ,维护工作量等维护工作量等25项目估算方法项目估算方法l基于问题的估算基于问题的估算:将一个复杂问题分解成若干个小:将一个复杂问题分解成若干个小问题,通过对小问题的估算得到复杂问题的估算问题,通过对小问题的估算得到复杂问题的估算代码行方法代码行方法功能点估计功能点估计l

19、基于过程的估算基于过程的估算:先根据软件开发过程中的活动:先根据软件开发过程中的活动( (分分析、设计、编码、测试等析、设计、编码、测试等) )进行估算,然后得到整个进行估算,然后得到整个项目的估算值项目的估算值任务估算技术任务估算技术l基于经验的估算基于经验的估算DelphiDelphi法法类比法类比法IBMIBM估算模型、估算模型、CoCoMoCoCoMo模型和模型和PutnamPutnam模型模型26代码行方法代码行方法l软件规模通常是指软件的大小软件规模通常是指软件的大小(size)(size),一般用,一般用代码行代码行度量度量l代码行(代码行(LOCLOC):):可执行可执行的源代

20、码行数的源代码行数LOCLOC的价值与人月均代码行数可体现软件组织的生产力的价值与人月均代码行数可体现软件组织的生产力优点:方便、直观优点:方便、直观缺点:很大程度上取决于程序设计语言以及软件设计的质量缺点:很大程度上取决于程序设计语言以及软件设计的质量27l测量出软件规模后,可方便地度量其它软件测量出软件规模后,可方便地度量其它软件属性属性度量名度量名含义及表示含义及表示LOCLOC或或KLOCKLOC代码行数或千行代码数代码行数或千行代码数生产率生产率P PP=LOC/EP=LOC/E,E E为开发的工作量为开发的工作量( (常用人月数表示常用人月数表示) )每行代码平均成本每行代码平均成

21、本C CC=S/LOCC=S/LOC,S S为总成本为总成本文档代码比文档代码比D DD=Pe/KLOCD=Pe/KLOC,其中,其中PePe为文档页数为文档页数代码错误率代码错误率EQREQREQR=N/KLOCEQR=N/KLOC,其中,其中N N为代码中错误数为代码中错误数28代码行估算步骤代码行估算步骤l(1 1)将项目功能分解,直到可估算代码行)将项目功能分解,直到可估算代码行l(2 2)计算各子功能的代码行平均数)计算各子功能的代码行平均数 LOC LOC(Sopt(Sopt4Sm4SmSpess)/6Spess)/6l(3 3)计算各子功能的:)计算各子功能的:代码行成本:元代码

22、行成本:元/ /行行生产率:行生产率:行/ /人月人月子功能成本:子功能成本: LOC LOC代码行成本代码行成本子功能人力:子功能人力: LOC/ LOC/生产率生产率l(4 4)计算整个项目的总代码函数、总成本和总工)计算整个项目的总代码函数、总成本和总工作量作量29代码行估算例子代码行估算例子l图形软件包图形软件包用户接口控制模块:用户接口控制模块:lLeLe(18001800424004240026502650)/62340(LOC)/62340(LOC)l成本成本= 234014 = 32760 = 234014 = 32760 (元)(元)l人力人力 = 2340315 7.4 =

23、 2340315 7.4 (人月)(人月)整个软件包:整个软件包:lL L14810 1500014810 15000行,行, 总成本:总成本:309000309000元元l总人力:总人力:7272人月人月30面向功能的度量面向功能的度量功能点估计功能点估计 l功能点(功能点(Function PointFunction Point)基于软件信息领域的可计算的测量及软件复杂性基于软件信息领域的可计算的测量及软件复杂性的评估而导出的。的评估而导出的。l功能点度量方法步骤:功能点度量方法步骤:计算信息域特征的值计算信息域特征的值CTCT计算复杂度调整值计算复杂度调整值计算功能点计算功能点FPFP3

24、1计算信息域特征的值计算信息域特征的值UFCUFC对五个信息域特征及其含义对五个信息域特征及其含义( (上表上表) )统计相应的特征值,然后根据信息域特征统计相应的特征值,然后根据信息域特征的复杂程度选择适当的加权因子进行计算的复杂程度选择适当的加权因子进行计算( (下表下表) ),得到总计的,得到总计的CTCT值值32计算复杂度调整值计算复杂度调整值复杂度调整值复杂度调整值Fi(i=1Fi(i=1到到14)14)是基于对表中问题的回答而得到是基于对表中问题的回答而得到的值,对每个问题回答的取值范围是的值,对每个问题回答的取值范围是0 0到到5 533计算功能点计算功能点FPFPl功能点计算公

25、式功能点计算公式AFP= UFC*(0.65+0.01*N)AFP= UFC*(0.65+0.01*N)其中:其中:UFCUFC是计算信息域特征的是计算信息域特征的“总计数值总计数值”,N N是复杂度调整是复杂度调整值值FiFi之和之和l计算出功能点后,则用类似代码行的方法来计计算出功能点后,则用类似代码行的方法来计算软件生产率、质量及其它属性算软件生产率、质量及其它属性34功能点分析的主要步骤功能点分析的主要步骤应用环境参数(应用环境参数(F Fi i)的组成)的组成CAFCAF:复杂度调整系数:复杂度调整系数AFPAFP:调整后功能点:调整后功能点根据经验,转换为根据经验,转换为LOCLO

26、C35功能点分析的例子功能点分析的例子l一个一个CADCAD软件软件计算功能点计算功能点估算估算14 14 个技术复杂度因子个技术复杂度因子注:这里使用加权注:这里使用加权平均计算平均计算36功能点分析的例子(续)功能点分析的例子(续)l估算估算AFPAFP(调整后功能点)值(调整后功能点)值AFP = AFP = 总计数值总计数值0.65+0.01F0.65+0.01Fi i = 3180.65+0.01F = 3180.65+0.01Fi i 372 372l假设:历史数据表明,这类系统的组织平均生产假设:历史数据表明,这类系统的组织平均生产率是率是6.5FP/pm6.5FP/pm;每个功

27、能点的代码行为;每个功能点的代码行为130 LOC130 LOC;一个劳动力价格是每月一个劳动力价格是每月80008000美元,则:美元,则:每个每个FP FP 的成本:的成本:800080008.51230 8.51230 美元美元总的项目成本:总的项目成本: 372 1230 = 457560 372 1230 = 457560 美元美元工作量:工作量: 372 6.5 58 372 6.5 58 人月人月代码行:代码行: 372130 372130 48360 LOC 48360 LOC37基于过程的估算基于过程的估算l将过程分解为相对较小的活动或任务,再将过程分解为相对较小的活动或任务

28、,再估算完成每个任务所需的工作量估算完成每个任务所需的工作量l任务估算技术的一个例子任务估算技术的一个例子38基于经验的估量基于经验的估量l类比法类比法将新项目与历史项目进行比较将新项目与历史项目进行比较适用于在应用领域、环境和复杂度相似项目适用于在应用领域、环境和复杂度相似项目精确度取决于历史数据的完整性和准确度精确度取决于历史数据的完整性和准确度lDelphiDelphi法法专家评估专家评估 适用于无历史数据的情况适用于无历史数据的情况39DelphiDelphi法的步骤法的步骤l(1 1)发放估算表格)发放估算表格l(2 2)专家匿名填表)专家匿名填表l(3 3)综合估算结果)综合估算结

29、果l(4 4)专家迭代填表)专家迭代填表l(5 5)讨论差异原因)讨论差异原因l(6 6)获取近似共识)获取近似共识40IBMIBM估算模型估算模型l基于代码行基于代码行LOCLOC的静态单变量模型:的静态单变量模型:设设L L为源代码行数为源代码行数(KLOC)(KLOC),则,则工作量工作量E=5.2E=5.2LL0.910.91人月人月项目持续时间项目持续时间D=4.1LD=4.1L0.360.3614.47E14.47E0.350.35人员数人员数S=0.54ES=0.54E0.60.6文档数量文档数量DOCDOC49L49L1.011.01l一条机器指令为一行源代码,不包括程序注释及

30、其它说明一条机器指令为一行源代码,不包括程序注释及其它说明l非机器指令编写的程序应转换成机器指令代码行数来考虑,非机器指令编写的程序应转换成机器指令代码行数来考虑,转换关系为:转换关系为:语言语言转换系数转换系数简单汇编简单汇编1 1宏汇编宏汇编1.21.21.51.5FORTRANFORTRAN4 46 6PL/IPL/I4 4101041第二章第二章 软件项目分析软件项目分析l1 概述概述l2 项目规模估算项目规模估算l3 成本成本/效益分析效益分析l4 现有系统分析现有系统分析l5 可行性研究可行性研究l6 立项评审立项评审42l基于计算机的系统的基于计算机的系统的成本成本主要包括:主要

31、包括:购置硬件、软件(如数据库管理系统、第购置硬件、软件(如数据库管理系统、第三方开发的构件等)和设备(如传感器等)三方开发的构件等)和设备(如传感器等)的费用的费用系统的开发费用系统的开发费用系统安装、运行和维护费用系统安装、运行和维护费用人员培训费用人员培训费用43成本估计方法成本估计方法l经验估算法经验估算法l因素估算法因素估算法l基于任务细分(基于任务细分(WBSWBS)的估算法)的估算法任务细分,编写任务细分,编写WBSWBS表和进度表,估算每个表和进度表,估算每个WBSWBS要要素的成本素的成本44成本估算的经验模型(成本估算的经验模型(1 1)lPutnamPutnam模型模型假

32、定在软件开发生存期中工作量有特定的分布。依据在一些大型项目的收集数据推导得到Rayleigh-NordenRayleigh-Norden曲线曲线 导出方程导出方程工作量技术状态常数开发时间45成本估算的经验模型(成本估算的经验模型(2 2)lCOCOMOCOCOMO模型(模型(COnstructive COst MOdelCOnstructive COst MOdel)特点:精确、易于使用特点:精确、易于使用使用变量:使用变量: DSI DSI(源指令条数);(源指令条数);MMMM(开发工作(开发工作量);量);TDEVTDEV(开发进度)(开发进度)lCOCOMOCOCOMO模型的分类模型

33、的分类基本基本COCOMOCOCOMO模型模型中间中间COCOMOCOCOMO模型模型详细详细COCOMOCOCOMO模型模型46lCoCoMoCoCoMo模型将软件项目类型划分为三类:模型将软件项目类型划分为三类:47效益分析效益分析l有形效益有形效益货币的时间价值货币的时间价值投资回收期投资回收期纯收入纯收入投资回收率投资回收率l无形效益无形效益心理心理社会社会48l效益效益经济效益经济效益:包括使用基于计算机的系统后可增加的:包括使用基于计算机的系统后可增加的收入和可节省的运行费用(如操作人员数、工作时收入和可节省的运行费用(如操作人员数、工作时间、消耗的物资等)。间、消耗的物资等)。在

34、进行成本效益分析时通常只统计五年内的经济效益。在进行成本效益分析时通常只统计五年内的经济效益。社会效益:社会效益:指使用基于计算机的系统后对社会产生指使用基于计算机的系统后对社会产生的影响(如提高了办事效益,使用户满意等)的影响(如提高了办事效益,使用户满意等)通常社会效益只能定性地估计。通常社会效益只能定性地估计。 经济效益通常可用经济效益通常可用货币的时间价值货币的时间价值、投资回投资回收期收期和和纯收入纯收入来度量。来度量。49l货币的时间价值货币的时间价值设:当前金额为设:当前金额为P P,年利率为,年利率为i i,n n年后的金额为年后的金额为F F,则则计算时,累计经济效益应折合成

35、当前金额计算时,累计经济效益应折合成当前金额例如,一个基于计算机的系统使用后,每年产生的例如,一个基于计算机的系统使用后,每年产生的经济效益为经济效益为1010万,如果年利率为万,如果年利率为5%5%,那么,五年内,那么,五年内该系统的累计经济效益是该系统的累计经济效益是434329482948万,而不是万,而不是5050万。万。50l投资回收期投资回收期:累计的经济效益正好等于投:累计的经济效益正好等于投资数(成本)所需的时间。资数(成本)所需的时间。l纯收入纯收入:累计经济效益:累计经济效益 投资数投资数当纯收入大于零时,该工程值得投资开发当纯收入大于零时,该工程值得投资开发当纯收入小于零

36、时,该工程不值得投资(除非它当纯收入小于零时,该工程不值得投资(除非它有明显的社会效益)有明显的社会效益)当纯收入等于零时,通常也不值得投资当纯收入等于零时,通常也不值得投资 显然,纯收入越大越好。显然,纯收入越大越好。51第二章第二章 软件项目分析软件项目分析l1 概述概述l2 项目度量和估算项目度量和估算l3 成本效益分析成本效益分析l4 进度安排进度安排l5 可行性研究可行性研究l6 项目立项评审项目立项评审52任务的并行性任务的并行性l当参加同一软件工程项目的人数不止一人当参加同一软件工程项目的人数不止一人的时候,开发工作就会出现并行情形的时候,开发工作就会出现并行情形里程碑并行性提出

37、了一并行性提出了一系列的进度要求系列的进度要求 进度计划进度计划目标:确保软目标:确保软件项目在规定的件项目在规定的时间内按期完成时间内按期完成53软件项目时间管理过程(PMBOK之一)q活动定义(Activity definition)q活动排序(Activity sequencing)q活动历时估计(Activity duration estimating)q任务资源估计q制定进度计划(Schedule development)q进度控制(Schedule control)-项目跟踪54进度安排考虑的问题:进度安排考虑的问题:进度安排考虑的问题:进度安排考虑的问题: 预先对进度如何计划?预

38、先对进度如何计划?预先对进度如何计划?预先对进度如何计划? 工作怎样就位?工作怎样就位?工作怎样就位?工作怎样就位? 如何识别定义好的任务?如何识别定义好的任务?如何识别定义好的任务?如何识别定义好的任务? 管理人员对管理人员对管理人员对管理人员对结束时间如何掌握结束时间如何掌握结束时间如何掌握结束时间如何掌握 ? ? 如何如何如何如何识别识别识别识别和和和和监控关键路径监控关键路径监控关键路径监控关键路径以以以以确保结束确保结束确保结束确保结束? 对进展如何度量?对进展如何度量?对进展如何度量?对进展如何度量? 如何建立如何建立如何建立如何建立分隔任务的里程碑分隔任务的里程碑分隔任务的里程碑

39、分隔任务的里程碑。进度安排的工作:进度安排的工作:进度安排的工作:进度安排的工作:首先首先首先首先识别一组项目任务识别一组项目任务识别一组项目任务识别一组项目任务建立任务之间的相互关联建立任务之间的相互关联建立任务之间的相互关联建立任务之间的相互关联估算各个任务的工作量估算各个任务的工作量估算各个任务的工作量估算各个任务的工作量,分配人力分配人力分配人力分配人力和和和和其它资源其它资源其它资源其它资源,制制制制定进度时序定进度时序定进度时序定进度时序55指导软件项目进度安排的基本原则(指导软件项目进度安排的基本原则(1 1)l划分划分:项目必须被划分成若干:项目必须被划分成若干可管理可管理的活

40、动和任务的活动和任务为了实现项目的划分,对产品和过程都需要进行分解为了实现项目的划分,对产品和过程都需要进行分解l相互依赖性相互依赖性:确定各个被划分的任务之间的相互关:确定各个被划分的任务之间的相互关系系有些任务必须是有些任务必须是串行串行的,有些可能是的,有些可能是并行并行的的l时间分配时间分配:必须为每个被调度的任务分配一定数量的工作单位;必须为每个被调度的任务分配一定数量的工作单位;必须为每个任务制定开始和结束日期,这些日期是相互依赖必须为每个任务制定开始和结束日期,这些日期是相互依赖的的l工作量确认工作量确认:确保在任意时段中分配给任务的人员数量不会超过项目组中确保在任意时段中分配给

41、任务的人员数量不会超过项目组中的人员数量的人员数量56指导软件项目进度安排的基本原则(指导软件项目进度安排的基本原则(2 2)l定义责任定义责任:每个被调度的任务都应该每个被调度的任务都应该指定指定某个特定的小组某个特定的小组成员来负责成员来负责l定义结果定义结果:每个被调度的任务都应该有一个每个被调度的任务都应该有一个确定的确定的输出结输出结果果l定义里程碑定义里程碑:每个任务或任务组都应该与一个项目里程碑相每个任务或任务组都应该与一个项目里程碑相关联关联( (当一个或多个工作产品经过质量评审并当一个或多个工作产品经过质量评审并且得到认可时,标志着一个里程碑的完成且得到认可时,标志着一个里程

42、碑的完成) )57活动定义(Defining Activities)q确定为完成项目的各个交付成果所必须进行的诸项具体活动活动1活动2功能1软件产品功能2-子功能2功能2功能3功能2-子功能1功能2-子功能358活动定义:任务划分活动定义:任务划分l工作分解结构工作分解结构l任务责任矩阵任务责任矩阵l在项目计划中一个主要的任务是把整个工作包在项目计划中一个主要的任务是把整个工作包分解成更小的任务。包括分解成更小的任务。包括2 2件事:件事:定义合适的任务定义合适的任务定义任务间的依赖关系定义任务间的依赖关系59工作分解结构 (WBS)l在一个项目中,全体任务的层次描述叫在一个项目中,全体任务的

43、层次描述叫工作分解结构工作分解结构(WBSWBS)。工作分解结构是一个要做工作的非常简单。工作分解结构是一个要做工作的非常简单的模型。的模型。lWBSWBS按项目的实际情况进行自顶向下的结构化分解,按项目的实际情况进行自顶向下的结构化分解,形成树形任务结构。在此基础上,进一步把工作内容、形成树形任务结构。在此基础上,进一步把工作内容、所需工作量、预计完成的期限也规定下来。所需工作量、预计完成的期限也规定下来。注意注意: :工作分解结构不表示活动的顺序。工作分解结构不表示活动的顺序。 60WBS例子611分解步骤分解步骤(1)确认并分解项目的主要组成要素。)确认并分解项目的主要组成要素。(2)确

44、定分解标准)确定分解标准(3)确认分解是否详细,分解结果是否可以作为)确认分解是否详细,分解结果是否可以作为费用和时间估计的标准,明确责任。费用和时间估计的标准,明确责任。(4)确定项目交付成果。)确定项目交付成果。(5)验证分解正确性,验证分解正确性后,建立)验证分解正确性,验证分解正确性后,建立一套编号系统。一套编号系统。工作分解过程工作分解过程62工作分解过程工作分解过程2分分解解的的标标准准:一一般般不不能能采采用用双双重重标标准准。选选择择一一种种项项目目分分解解标标准准之之后后,在在分分解解过过程程中中应应该该统统一一使使用用此此标标准,避免因使用不同标准而导致的混乱。准,避免因使

45、用不同标准而导致的混乱。 3分解结果的检验分解结果的检验核实分解的正确性:核实分解的正确性:更低层次的细目是否必要和充分?更低层次的细目是否必要和充分?最底层要素是否有重复?最底层要素是否有重复?每个细目都有明确的、完整的定义吗?每个细目都有明确的、完整的定义吗?是否每个细目可以进行适当的估算?谁能担负起完是否每个细目可以进行适当的估算?谁能担负起完成这个任务?成这个任务?63工作分解过程工作分解过程4任务分解的注意事项任务分解的注意事项注意收集与项目相关的所有信息。注意收集与项目相关的所有信息。任务分解结果必须有利于责任分配。任务分解结果必须有利于责任分配。最底层的工作包一般要有全面、详细和

46、明确的文字最底层的工作包一般要有全面、详细和明确的文字说明,并汇集编制成项目工作分解结构词典。说明,并汇集编制成项目工作分解结构词典。避免不必要的过细,最好不要超过避免不必要的过细,最好不要超过7层。按照软件层。按照软件项目的平均规模来说,推荐任务分解时至少分解到项目的平均规模来说,推荐任务分解时至少分解到一周的工作量(一周的工作量(40小时)。小时)。64任务责任矩阵任务责任矩阵65项目活动排序q项目各项活动之间存在相互联系与相互依赖关系,q根据这些关系进行适当的顺序安排前置活动(任务)前置活动(任务)-后置活动(任务)后置活动(任务)66任务(活动)之间的关系ABAB结束-开始结束-结束A

47、B开始-开始AB开始-结束67项目进度管理项目进度管理l制定进度计划的两种情况制定进度计划的两种情况客户方规定了明确的交付日期,此时进度安客户方规定了明确的交付日期,此时进度安排必须在此约束下进行排必须在此约束下进行只规定了大致的时间界限,最终的交付日期只规定了大致的时间界限,最终的交付日期由开发组织确定,此时的进度安排可以比较由开发组织确定,此时的进度安排可以比较灵活,工作量的分布可考虑对资源的充分利灵活,工作量的分布可考虑对资源的充分利用用l在项目实施过程中,在进度计划基础上在项目实施过程中,在进度计划基础上跟跟踪踪实际执行情况,及时发现实际执行情况,及时发现偏差偏差并采取措并采取措施加以

48、施加以调整调整,以确保项目按期完成,以确保项目按期完成68无效的项目进度估计无效的项目进度估计在某种情况下,任何的项目估计方法都没有实际价值,在某种情况下,任何的项目估计方法都没有实际价值,例如:例如:1)项目的人员已经被上级领导限定死了)项目的人员已经被上级领导限定死了2)除了办公计算机和工资外,这个项目没有其它经)除了办公计算机和工资外,这个项目没有其它经费费3)项目的结束日期早就被领导和客户指定了,不管)项目的结束日期早就被领导和客户指定了,不管合不合理,时间一到就要交付软件合不合理,时间一到就要交付软件如果人员、资金、时间都已经被毫无道理地指定如果人员、资金、时间都已经被毫无道理地指定

49、了,进行科学地估计就没有用,这样的项目在国了,进行科学地估计就没有用,这样的项目在国内并不少见内并不少见69估计活动的内容估计活动的内容(1/3)(1/3)l细分活动细分活动活动的粒度越小,估算的准确度就会越高活动的粒度越小,估算的准确度就会越高l借鉴历史数据借鉴历史数据积累历史数据积累历史数据l使用估算模型使用估算模型例如,例如,CoCoMoCoCoMo模型模型l考虑缓冲时间考虑缓冲时间缓冲时间保证项目按照计划有足够的时间来完成活动缓冲时间保证项目按照计划有足够的时间来完成活动70估计活动的内容估计活动的内容(2/3)(2/3)l缓冲时间缓冲时间意外事件的缓冲意外事件的缓冲l意外事件可能会发

50、生意外事件可能会发生( (如全企业的培训如全企业的培训) )l例如,需求分析计划从例如,需求分析计划从8.18.1开始共需开始共需2020个工作日,应该个工作日,应该8.298.29日完成,但中间公司要开展日完成,但中间公司要开展2 2天的全员培训,因此天的全员培训,因此8.318.31结束结束节假日时间的缓冲节假日时间的缓冲l例如,编码计划从例如,编码计划从9.319.31开始,工作量为开始,工作量为1010个工作日,因为个工作日,因为国庆放假国庆放假1 1周,因此,应该计划在周,因此,应该计划在10.2110.21日完成日完成l不要在计划中考虑加班时间,加班是不可避免得,不要在计划中考虑加

51、班时间,加班是不可避免得,但是考虑了加班,可能会发生更多的加班但是考虑了加班,可能会发生更多的加班71估计活动的内容估计活动的内容(3/3)(3/3)l综合考虑其他因素综合考虑其他因素考虑节假日考虑节假日以工作日以工作日( (而不是星期而不是星期) )规定活动周期规定活动周期考虑参与活动团队的教育、培训、经验和技能水平考虑参与活动团队的教育、培训、经验和技能水平考虑教育和培训需要考虑教育和培训需要考虑评审所化的时间考虑评审所化的时间考虑传播时间考虑传播时间考虑团队中成员的其他工作考虑团队中成员的其他工作考虑硬件、工具和人员的效率考虑硬件、工具和人员的效率考虑活动的迭代和重复考虑活动的迭代和重复

52、活动之间有一定的缓冲活动之间有一定的缓冲72常见的进度计划工作量分配常见的进度计划工作量分配l在整个定义与开发阶段工作量分配的一种建议方在整个定义与开发阶段工作量分配的一种建议方案(案( “40-20-40” “40-20-40”规则)规则)lCoCoMoCoCoMo模型模型: :按目标程序规模对不同任务工作量分按目标程序规模对不同任务工作量分配的比例配的比例在实际应用时,按此比例确定各个阶段工作量的分配,从在实际应用时,按此比例确定各个阶段工作量的分配,从而进一步确定每一阶段所需的开发时间,然后在每个阶段,而进一步确定每一阶段所需的开发时间,然后在每个阶段,进行任务分解,对各个任务再进行工作

53、量和开发时间的分进行任务分解,对各个任务再进行工作量和开发时间的分配配73CoCoMoCoCoMo任务工作量分配比例任务工作量分配比例74进度安排的方法进度安排的方法l图示法(特别适用于表现任务之间进度的图示法(特别适用于表现任务之间进度的相互依赖关系)相互依赖关系)l必须标明的信息:必须标明的信息:任务的计划任务的计划开始时间开始时间和和完成时间完成时间任务任务完成标志完成标志任务与任务与人员、工作量人员、工作量的关系的关系任务所需任务所需资源资源l甘特图和网络图是两种常用的图示方法甘特图和网络图是两种常用的图示方法75甘特图甘特图l标明了各任务的计划进度和当前进度,能动态地标明了各任务的计

54、划进度和当前进度,能动态地反映软件开发进展情况。每项任务的完成以必须反映软件开发进展情况。每项任务的完成以必须交付的文档和通过评审为标准,文档编制与评审交付的文档和通过评审为标准,文档编制与评审是软件开发进度的里程碑是软件开发进度的里程碑l缺点:缺点:难以反映多个任务之间存在的复杂的逻辑难以反映多个任务之间存在的复杂的逻辑关系关系76确定里程碑确定里程碑(1/3)(1/3)l什么是软件开发的里程碑什么是软件开发的里程碑(milestone)(milestone)软件项目实施过程中的重大事件,这些事件有助软件项目实施过程中的重大事件,这些事件有助于了解项目实施的进展情况于了解项目实施的进展情况例

55、如,某个重要活动的开始和结束例如,某个重要活动的开始和结束l有哪些典型的里程碑有哪些典型的里程碑活动活动l需求分析、概要设计、详细设计、编码需求分析、概要设计、详细设计、编码检查点检查点l开始和结束开始和结束77确定里程碑确定里程碑(2/3)(2/3)l为什么需要关注里程碑为什么需要关注里程碑获取对项目实施的整体了解获取对项目实施的整体了解便于向高层管理者汇报项目进展情况便于向高层管理者汇报项目进展情况l如何获取里程碑如何获取里程碑来自于项目高层计划,或者从项目计划中抽取来自于项目高层计划,或者从项目计划中抽取确定你要关注的活动以及检查点确定你要关注的活动以及检查点78确定里程碑确定里程碑(3

56、/3)(3/3)l里程碑的例子里程碑的例子需求分析通过评审并正式批准,标志需求分析工需求分析通过评审并正式批准,标志需求分析工作的完成,后续阶段工作的开始作的完成,后续阶段工作的开始软件设计规格说明书通过评审并且得到批准,标软件设计规格说明书通过评审并且得到批准,标志软件设计工作完成,后续工作的开始志软件设计工作完成,后续工作的开始79甘特图的Project例子80网络规划技术网络规划技术lPERTPERT(计划评审技术)(计划评审技术)lCPMCPM(关键路径方法)(关键路径方法)l采用网络图来描述一个项目从开始到结束采用网络图来描述一个项目从开始到结束应当完成的任务应当完成的任务任务分解结

57、构:与软件项目有关的所有任务任务分解结构:与软件项目有关的所有任务限制表:应当按照什么样的次序来完成这些任务限制表:应当按照什么样的次序来完成这些任务81PERTPERT和和CPMCPM的应用的应用l定量方法:定量方法:确定关键路径,决定项目开发时间的任务链确定关键路径,决定项目开发时间的任务链应用统计模型,估算每个任务的开发时间应用统计模型,估算每个任务的开发时间计算边界时间,为具体的任务定义时间窗口计算边界时间,为具体的任务定义时间窗口l例子例子82PERTPERT图图lPERTPERT图是一种有向图图是一种有向图箭头:表示任务箭头:表示任务( (或作业或作业) ),箭头上可标上完成该任务

58、所需的时间,箭头上可标上完成该任务所需的时间结点结点( (事件事件) ):表示流入该结点的任务已完成,可以开始流出该结点的任:表示流入该结点的任务已完成,可以开始流出该结点的任务务仅当所有流入结点的任务都完成时,流出该结点的任务才同时开始仅当所有流入结点的任务都完成时,流出该结点的任务才同时开始事件本身不消耗时间和资源,它仅代表某个时间点事件本身不消耗时间和资源,它仅代表某个时间点一个任务可由事件之间的箭头来表示,二个事件之间仅可存在一条箭头一个任务可由事件之间的箭头来表示,二个事件之间仅可存在一条箭头为了表示任务之间的关系,可以引入空任务,空任务完成的时间为为了表示任务之间的关系,可以引入空

59、任务,空任务完成的时间为0 083PERTPERT图中的事件图中的事件l每个事件用一个事件号进行标记,对每个事件每个事件用一个事件号进行标记,对每个事件定义定义:最早时刻最早时刻:l 所有到达该事件的任务最早在此时刻时完成所有到达该事件的任务最早在此时刻时完成l或:从该事件出发的任务最早在此时刻时才可开始或:从该事件出发的任务最早在此时刻时才可开始最迟时刻最迟时刻:l 所有到达该事件的任务最迟必须在此时刻完成所有到达该事件的任务最迟必须在此时刻完成l或:从该事件出发的任务最迟必须在此时刻时开始,否则整个或:从该事件出发的任务最迟必须在此时刻时开始,否则整个工程就无法按期完成工程就无法按期完成事

60、件号最早时刻最迟时刻完成任务所需的时间(机动时间)84关键路径的计算关键路径的计算l机动时间:在不影响整个工期的情况下,机动时间:在不影响整个工期的情况下,当前任务允许延迟的最长时间当前任务允许延迟的最长时间l通过计算每个任务的机动时间来求项目的通过计算每个任务的机动时间来求项目的关键路径关键路径l方法步骤:方法步骤:计算:计算:最早时刻最早时刻EFTEFT计算:计算:最迟时刻最迟时刻LETLET计算:计算:机动时间机动时间得出得出关键路径关键路径:由机动时间为:由机动时间为0 0的任务组成的项目路径的任务组成的项目路径85计算最早时刻计算最早时刻EFTEFT设:设:(i(i,j)j)为联结事

61、件为联结事件i i,j j的任务、的任务、t(it(i,j)j)为任为任务务(i(i,j)j)的持续时间、的持续时间、I I为所有任务的集合、为所有任务的集合、t tE E(j)(j)为事件为事件j j的最早时刻的最早时刻设:起始事件为设:起始事件为0 0号事件,号事件,n n为结束事件为结束事件规定规定t tE E(0)(0)0 0,从左到右按事件发生的顺序计算,从左到右按事件发生的顺序计算每个事件的最早时刻,那么就有事件每个事件的最早时刻,那么就有事件j j的最早时刻的最早时刻为:为:86最早时刻计算示例最早时刻计算示例-1-1l下图中下图中87最早时刻计算示例最早时刻计算示例-2-288

62、计算最迟时刻计算最迟时刻LETLET以以t tL L(i)(i)表示事件表示事件i i的最迟时刻,设的最迟时刻,设n n为最后一个事为最后一个事件,则有:件,则有:从右到左按事件发生的逆序计算每个事件的最迟从右到左按事件发生的逆序计算每个事件的最迟时刻,事件时刻,事件i i的最迟时刻为:的最迟时刻为:89计算机动时间计算机动时间l对事件对事件i i和事件和事件j j之间的任务之间的任务(i(i,j)j)其机动其机动时间为:时间为:l机动时间为机动时间为0 0的任务的任务( (作业流作业流) )组成整个工组成整个工程的关键路径程的关键路径90网络图的例子91分层的任务网络图分层的任务网络图92甘

63、特图和网络图的区别甘特图和网络图的区别l甘特图和网络图是等价的,可以相互转换甘特图和网络图是等价的,可以相互转换l甘特图的特点甘特图的特点更能直观的显示任务的进程更能直观的显示任务的进程l网络图的特点网络图的特点更能展示任务之间的相关性更能展示任务之间的相关性93计划的跟踪和控制计划的跟踪和控制l根据项目进度表,跟踪和控制各任务根据项目进度表,跟踪和控制各任务的实际执行情况的实际执行情况l原因:原因:人员的离开人员的离开/ /生病生病客户不按时完成任务客户不按时完成任务客户曲解领导的意图客户曲解领导的意图94项目偏离原计划是正常的项目偏离原计划是正常的l原因原因内部因素内部因素l员工没有技能员

64、工没有技能l没有好的沟通没有好的沟通l领导不行领导不行外部因素外部因素l环境变化环境变化l市场变化市场变化l启动补救计划启动补救计划一旦发现某个任务一旦发现某个任务( (特别是关键路径上的任务特别是关键路径上的任务) )未在计划未在计划进度规定的时间范围内完成,就要采取措施进行调整进度规定的时间范围内完成,就要采取措施进行调整l增加额外的资源增加额外的资源l增加新的员工增加新的员工l调整项目进度表调整项目进度表95l是否和计划相符是否和计划相符l对项目的影响如何?提前对项目的影响如何?提前/ /滞后滞后/ /影响其它影响其它任务任务l是否影响最后完成时间是否影响最后完成时间l预计的人员是否到位

65、预计的人员是否到位l人员的开销是否符合预计人员的开销是否符合预计跟踪什么?跟踪什么?96进度跟踪的方式进度跟踪的方式l定期举行项目状态会议,由项目组中的各个成员分别报告定期举行项目状态会议,由项目组中的各个成员分别报告进度和问题进度和问题l评价在软件工程过程中产生的所有评审结果评价在软件工程过程中产生的所有评审结果l确定正式的项目里程碑是否在预定日期内完成确定正式的项目里程碑是否在预定日期内完成l比较项目表中列出的各项任务的实际开始日期与计划开始比较项目表中列出的各项任务的实际开始日期与计划开始日期日期l非正式与开发人员进行会谈,获取他们对项目进展及可能非正式与开发人员进行会谈,获取他们对项目

66、进展及可能出现的问题的客观评价出现的问题的客观评价97计划跟踪和控制的报告制度计划跟踪和控制的报告制度l月例会月例会/ /周例会周例会项目内部审核会议项目内部审核会议l项目状态报告项目状态报告正式的和管理层进行沟正式的和管理层进行沟通的汇报通的汇报l项目管理工具项目管理工具定期更新项目状态定期更新项目状态98计划是否偏离?计划是否偏离?l进展好于计划进展好于计划l进展坏于计划进展坏于计划l行动行动增减人员增减人员改变时间改变时间改变质量要求改变质量要求改变工作要求改变工作要求审核关键任务审核关键任务99计划跟踪和控制的一般流程计划跟踪和控制的一般流程l注:对问题采取的步骤必须有记录注:对问题采

67、取的步骤必须有记录 真实记录项目进展真实记录项目进展 变化通知所有涉及人员变化通知所有涉及人员开始观察和审核是否偏离完成修改计划报告启动补救计划审查/测试是是否100l偏差识别方法 _进度报表比较法 _进度图形比较法 甘特比较法 S型曲线比较法101序号工作名称工作周数进度(周)123456789101112131415161设计32模块1编码53模块2编码24模块1测试35模块2测试66集成测试2 0 15 30 45 60 4 5 6 7 8(周) 0 20 40 60 80 100实际进度计划进度计划完成百分比工序挖土2甘特图比较图检查日期实际完成百分比102预测计划实际计划完成日期预计

68、实际完成日期ab预计工期拖延时间tstbta检查日期 0YaYb累计完成百分比100S型曲线比较法时间 S型曲线比较法103解决进度拖延的一些措施解决进度拖延的一些措施增加资源投入增加资源投入, ,如劳动力、材料和设备如劳动力、材料和设备重新分配资源(如将辅助人员投入到生产中)重新分配资源(如将辅助人员投入到生产中)减少工作范围减少工作范围改善工器具及设备,提高劳动生产率改善工器具及设备,提高劳动生产率将部分任务转移(如分包)将部分任务转移(如分包)将前后顺序的工作改为平行工作将前后顺序的工作改为平行工作将相关工作合并(特别是在关键路线上按先后顺序将相关工作合并(特别是在关键路线上按先后顺序实

69、施的工作合并)实施的工作合并)104第二章第二章 软件项目分析软件项目分析l1 概述概述l2 项目规模估算项目规模估算l3 成本效益分析成本效益分析l4 进度安排进度安排l5 可行性研究可行性研究105可行性研究(分析)可行性研究(分析)l目的:研究项目是否值得开发,其中的问目的:研究项目是否值得开发,其中的问题能否解决题能否解决l任务:任务:对系统进行概要的分析研究,初步确定软件项目对系统进行概要的分析研究,初步确定软件项目的的规模和目标规模和目标,确定项目的,确定项目的约束和限制约束和限制对系统做简要的对系统做简要的需求分析需求分析,抽象出该系统的逻辑,抽象出该系统的逻辑结构,建立结构,建

70、立逻辑模型逻辑模型从逻辑模型出发,经过压缩的设计,探索出若干从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要种可供选择的主要解决方案解决方案,并对每一种解决方,并对每一种解决方案研究它的案研究它的可行性可行性 106可行性研究的内容可行性研究的内容l经济可行性经济可行性:进行成本:进行成本效益分析。从经济角效益分析。从经济角度判断系统开发是否度判断系统开发是否 合算合算“l技术可行性技术可行性:进行技术风险评价。从开发者的:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的判断

71、系统开发在时间、费用等限制条件下成功的可能性可能性l社会可行性社会可行性:确定系统开发可能导致的任何侵:确定系统开发可能导致的任何侵权、妨碍和责任以及用户操作的可行性权、妨碍和责任以及用户操作的可行性l方案的选择方案的选择:评价系统或产品开发的几个可能:评价系统或产品开发的几个可能的候选方案,最后给出结论意见的候选方案,最后给出结论意见 107技术可行性分析技术可行性分析l技术可行性主要根据系统的功能、性能、约技术可行性主要根据系统的功能、性能、约束条件等,分析在现有资源和技术条件下系束条件等,分析在现有资源和技术条件下系统能否实现。统能否实现。l技术可行性分析通常包括:技术可行性分析通常包括

72、:风险分析风险分析资源分析资源分析技术分析技术分析108风险分析风险分析:分析在给定的约束条件下:分析在给定的约束条件下设计和实现系统的风险。设计和实现系统的风险。采用不成熟的技术可能造成技术风险采用不成熟的技术可能造成技术风险人员流动可能给项目带来风险人员流动可能给项目带来风险成本和人员估算不合理造成的预算风险成本和人员估算不合理造成的预算风险 风险分析的目的:风险分析的目的:找出找出风险,风险,评价评价风险风险的大小,并有效地的大小,并有效地控制和缓解控制和缓解风险。风险。109资源分析资源分析:论证是否具备系统开发所:论证是否具备系统开发所需的各类人员、软件、硬件等资源和需的各类人员、软

73、件、硬件等资源和相应的工作环境。相应的工作环境。 例如,有一支开发过类似项目的开发和管理例如,有一支开发过类似项目的开发和管理的团队,或者开发人员比较熟悉系统所处的的团队,或者开发人员比较熟悉系统所处的领域,并有足够的人员保证,所需的硬件和领域,并有足够的人员保证,所需的硬件和支撑软件能通过合法的手段获取,那么从技支撑软件能通过合法的手段获取,那么从技术角度看,可以认为具备设计和实现系统的术角度看,可以认为具备设计和实现系统的条件。条件。110技术分析技术分析:分析当前的科学技术是否支:分析当前的科学技术是否支持系统开发的各项活动。持系统开发的各项活动。 在技术分析过程中,分析员收集系统的性在

74、技术分析过程中,分析员收集系统的性能、可靠性、可维护性和生产率方面的信息,能、可靠性、可维护性和生产率方面的信息,分析实现系统功能、性能所需的技术、方法、分析实现系统功能、性能所需的技术、方法、算法或过程,从技术角度分析可能存在的风算法或过程,从技术角度分析可能存在的风险,以及这些技术问题对成本的影响。险,以及这些技术问题对成本的影响。 技术可行性分析时通常需进行系统建模,技术可行性分析时通常需进行系统建模,必要时可建造原型和进行系统模拟必要时可建造原型和进行系统模拟111社会可行性社会可行性 l法律可行性法律可行性考虑要开发系统是否存在任何侵犯、妨碍和责任问题考虑要开发系统是否存在任何侵犯、

75、妨碍和责任问题包括:合同、责任、侵权、用户组织的管理模式及规包括:合同、责任、侵权、用户组织的管理模式及规范,以及其他一些技术人员常常不了解的陷阱。范,以及其他一些技术人员常常不了解的陷阱。中华人民共和国著作权法(中华人民共和国著作权法(19901990年),其中将计年),其中将计算机软件作为著作权法的保护对象。计算机软件保算机软件作为著作权法的保护对象。计算机软件保护条例(护条例( 1991 1991年,国务院)。这是法律可行性分年,国务院)。这是法律可行性分析的主要依据。析的主要依据。l用户操作可行性用户操作可行性考虑待开发软件的运行方式在用户组织内是否行得通,考虑待开发软件的运行方式在用

76、户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。现有管理制度、人员素质、操作方式是否可行。112方案的选择和折衷方案的选择和折衷l一一个个基基于于计计算算机机的的系系统统可可以以有有多多个个可可行行的的实实现现方方案案,每每个个方方案案对对成成本本、时时间间、人人员员、技技术术、设设备备都都有有不不同同的的要要求求,不不同同方方案案开开发发出出来来的的系系统统在在功功能能、性性能能方方面面也也会会有有所不同。因此要在多个可行的实现方案中作出选择。所不同。因此要在多个可行的实现方案中作出选择。l方方案案评评估估的的依依据据是是待待开开发发系系统统的的功功能能、性性能能、成成本本、开

77、开发发时时间间、采采用用的的技技术术、设设备备、风风险险以以及及对对开开发发人人员员的的要要求等。求等。l由由于于系系统统的的功功能能和和性性能能受受到到多多种种因因素素的的影影响响,某某些些因因素素之间相互关联和制约。之间相互关联和制约。如如,为为达达到到高高的的精精度度就就可可能能导导致致长长的的执执行行时时间间,为为达达到到高高可可靠性就会导致高的成本等等。因此,在必要时应进行折衷。靠性就会导致高的成本等等。因此,在必要时应进行折衷。113可行性分析的结论可行性分析的结论l可以立即开始进行可以立即开始进行l需需要要推推迟迟到到某某些些条条件件(例例如如资资金金、人人力力、设设备等)落实之

78、后才能开始进行备等)落实之后才能开始进行l需需要要对对开开发发目目标标进进行行某某些些修修改改之之后后才才能能开开始始进行进行l因因为为某某种种原原因因(如如,技技术术不不成成熟熟、经经济济上上不不合算等)不能进行合算等)不能进行114可行性研究的步骤可行性研究的步骤 l确定项目的规模和目标确定项目的规模和目标l研究当前正在运行的系统研究当前正在运行的系统l建立新系统的高层逻辑模型建立新系统的高层逻辑模型l导出和评价各种方案导出和评价各种方案l推荐可行的方案推荐可行的方案l编写可行性研究报告编写可行性研究报告 115可行性研究报告的可行性研究报告的 主要内容主要内容l引言引言l可行性研究的前提可行性研究的前提l对当前系统的分析对当前系统的分析l技术可行性分析技术可行性分析l经济可行性研究经济可行性研究l社会因素可行性研究社会因素可行性研究l其他可供选择的方案其他可供选择的方案l结论意见结论意见116

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号