《软件项目管理基础知识(ppt 65页)deiv.ppt》由会员分享,可在线阅读,更多相关《软件项目管理基础知识(ppt 65页)deiv.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程概论薛建民软件项目管理软件项目管理薛建民薛建民 87818127软件工程概论薛建民软件项目管理软件项目管理&基础知识&软件度量&软件策划&软件质量保证 2软件工程概论薛建民基础知识&项目管理的特点&目的与任务3软件工程概论薛建民PMI定义&项目是一段时间内为了创造某种独特产品或服务而采取的一种努力。&通过项目经理和项目组织的努力,运用系统理论的方法对项目及其资源进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法体。4软件工程概论薛建民PMI定义&关注点(4P)人员(People)产品(Product)过程(Process)项目(Project)5软件工程概论薛建民项目管理的特
2、点&管管理理在在软软件件工工程程项项目目中中的的地地位位和和作作用用与与其其它它工工程程项项目目一一样样十十分分重重要要,必必须须对对成成本本、人人员员、进进度度、质质量量、风风险险等等进行分析和管理进行分析和管理6软件工程概论薛建民项目管理的特点&软软件件产产品品是是逻逻辑辑的的,软软件件项项目目的的施施工工是是开开发发小小组组集集体体的的智智力力劳劳动动,使使用用的的开开发发工工具具是是建建立立在在计计算算机机系统上的软件系统上的软件&软软件件很很多多属属性性无无法法直直接接度度量量为为软软件定量分析和项目管理增加困难。件定量分析和项目管理增加困难。7软件工程概论薛建民目的&为了使软件项目
3、能够在为了使软件项目能够在预预定成本定成本、进度进度、质量质量的前提的前提下顺利完成,必须对软件工下顺利完成,必须对软件工程项目进行程项目进行计划计划、组织组织、监监控控和和管理管理8软件工程概论薛建民任务&制定软件项目的实施计划和方制定软件项目的实施计划和方案;案;&对人员进行组织和分工;对人员进行组织和分工;&按照计划进度,以及成本管理、按照计划进度,以及成本管理、风险管理、质量管理的要求进风险管理、质量管理的要求进行软件开发,完成软件项目的行软件开发,完成软件项目的各项要求和任务各项要求和任务9软件工程概论薛建民软件度量&简介&产品度量&成本度量&好的度量与度量中的陷阱10软件工程概论薛
4、建民简介&有两种测量方法可以用于软件开发有两种测量方法可以用于软件开发&对产品的测量对产品的测量对所开发的产品的特性进行量化对所开发的产品的特性进行量化&对过程的测量对过程的测量对进行开发软件的过程的以下特征,对进行开发软件的过程的以下特征,例如生产率、成本、资源需求等进行例如生产率、成本、资源需求等进行量化量化11软件工程概论薛建民软件测量的分类软件测量的分类12软件工程概论薛建民用于不同部分的可能度量用于不同部分的可能度量13软件工程概论薛建民早期的度量程序中建议的测量早期的度量程序中建议的测量14软件工程概论薛建民软件度量领域-产品&面向规模的度量&面向功能的度量&与复杂度有关的度量&面
5、向对象的度量15软件工程概论薛建民LOC 作为面向规模的度量作为面向规模的度量&面向规模的度量仍然是最为大家熟悉的度面向规模的度量仍然是最为大家熟悉的度量,因为它们是直接可以测量的量,因为它们是直接可以测量的&我们可以很容易地测量源代码行数,并将我们可以很容易地测量源代码行数,并将其与缺陷发生率、开发时间和花费的钱数其与缺陷发生率、开发时间和花费的钱数(美元、人民币)进行比较面向规模的度(美元、人民币)进行比较面向规模的度量是对软件以及开发软件过程的直接测量量是对软件以及开发软件过程的直接测量&这些度量包括花费的精力和金钱、这些度量包括花费的精力和金钱、KLOC(千行代码)、创建的文档页数、错
6、(千行代码)、创建的文档页数、错误数以及项目中的开发人员数误数以及项目中的开发人员数16软件工程概论薛建民面向规模的度量面向规模的度量17软件工程概论薛建民面向功能的度量面向功能的度量&关键思想是估计出正确的软件项目的规模,关键思想是估计出正确的软件项目的规模,而不考虑所使用的编程语言而不考虑所使用的编程语言&Albrecht 列举了以下五条所有软件都可见列举了以下五条所有软件都可见的外部特性:的外部特性:软件应用程序的输入软件应用程序的输入软件应用程序生成的输出软件应用程序生成的输出用户查询数用户查询数应用程序要使用的数据文件数应用程序要使用的数据文件数与其它应用程序的接口数与其它应用程序的
7、接口数18软件工程概论薛建民功能点度量的优势&需求阶段可以估计项目的规模。&预测实现软件功能所需源语句的数目&语言无关&多种语言项目中测量项目的生产率&最初用在商业应用程序和MIS应用程序&不适用实时软件、嵌入式系统、数学软件可以使用功能部件的度量&功能点与代码行及开发语言的关系(P345)19软件工程概论薛建民与复杂度相关的度量与复杂度相关的度量&如果仅仅按照单位时间的代码行如果仅仅按照单位时间的代码行(LOC)来测量生产率,则该值很大一)来测量生产率,则该值很大一部分都取决于待开发的软件的复杂度部分都取决于待开发的软件的复杂度&现在使用的与复杂度相关的度量是:现在使用的与复杂度相关的度量是
8、:Halstead 的软件科学的软件科学(1977年)年)McCabe 的环路复杂度的环路复杂度(1971年)年)扇入扇出法扇入扇出法20软件工程概论薛建民Halstead 的软件科学的软件科学&使用一组度量来估计编程的工作量使用一组度量来估计编程的工作量最初先计算以下内容以推导出系统的度量:最初先计算以下内容以推导出系统的度量:&UniqueOperators=UniqueOperators=唯一或独特操作符数唯一或独特操作符数&UniqueOperands=UniqueOperands=唯一或独特操作对象数唯一或独特操作对象数&TotalOperators=TotalOperators=所
9、有操作符的总使用数所有操作符的总使用数&TotalOperands=TotalOperands=所有操作对象的总使用数所有操作对象的总使用数&词汇词汇=UniqueOperators+UniqueOperands=UniqueOperators+UniqueOperands&实现长度实现长度=TotalOperators+TotalOperands=TotalOperators+TotalOperands21软件工程概论薛建民Halstead 的软件科学积极方面的软件科学积极方面&这些度量十分易于计算这些度量十分易于计算&它们可以独立于所有编程语言使用它们可以独立于所有编程语言使用&对这些度量
10、的计算都是十分简单的,对这些度量的计算都是十分简单的,不需不需要对程序结构进行深入分析要对程序结构进行深入分析&这些度量可以预测软件中缺陷的发生率这些度量可以预测软件中缺陷的发生率&这些度量还可以用于预测在维护中要做的这些度量还可以用于预测在维护中要做的工作的范围工作的范围&这些度量还可以用于测量软件应用程序的这些度量还可以用于测量软件应用程序的整体质量整体质量22软件工程概论薛建民McCabe 的环路复杂度的环路复杂度&该测量将计算程序中独立路径的数目,它们该测量将计算程序中独立路径的数目,它们将决定复杂度的数值将决定复杂度的数值&要计算该值,我们必须考虑用图来表示程序要计算该值,我们必须考
11、虑用图来表示程序&将我们考虑的程序图称为将我们考虑的程序图称为G&图图G 的环路复杂度用的环路复杂度用V 来表示,并如下计算:来表示,并如下计算:&V(G)=Number(edges)-Number(nodes)+223软件工程概论薛建民McCabe 的环路复杂度优点的环路复杂度优点&计算方法简单计算方法简单&应用简单应用简单&主要用于软件维护容易程度的度量主要用于软件维护容易程度的度量&可以通过比较不同设计的复杂程度而用作可以通过比较不同设计的复杂程度而用作表示软件质量的度量表示软件质量的度量&可以在软件开发生命周期的早期计算得出可以在软件开发生命周期的早期计算得出和应用(与和应用(与Hal
12、stead 的软件科学不同)的软件科学不同)&通过控制程序开发逻辑指导测试过程通过控制程序开发逻辑指导测试过程24软件工程概论薛建民McCabe 的环路复杂度缺点的环路复杂度缺点&注重程序控制复杂度而不是程序处理数据注重程序控制复杂度而不是程序处理数据流的复杂度流的复杂度&有时会提供错误结果,尤其是处理有简单有时会提供错误结果,尤其是处理有简单的的if-then和重复结构的程序时和重复结构的程序时&该度量不会认为多次嵌套的重复结构比非该度量不会认为多次嵌套的重复结构比非嵌套的重复结构简单,这样会导致结果错嵌套的重复结构简单,这样会导致结果错误误25软件工程概论薛建民扇入和扇出方法(扇入和扇出方
13、法(1981年)年)&该方法用来跟踪数据流复杂度该方法用来跟踪数据流复杂度&该方法要求计算从模块流出的数据流数,该方法要求计算从模块流出的数据流数,以及模块使用和修改的全局数据项或数据以及模块使用和修改的全局数据项或数据结构的数目结构的数目&该数必须包括已更新的过程参数该数必须包括已更新的过程参数&该数还必须考虑从该模块内部调用的过程该数还必须考虑从该模块内部调用的过程&Henry 和和Kafura 将复杂度定义为:将复杂度定义为:&复杂度复杂度=长度长度x(扇入(扇入x 扇出)扇出)226软件工程概论薛建民面向对象的度量面向对象的度量&每个类的方法每个类的方法&继承的相关性继承的相关性&对象
14、之间的耦合度对象之间的耦合度&对象的内聚度对象的内聚度&对象库有效性对象库有效性&因子分解的有效性因子分解的有效性&继承方法的重用度继承方法的重用度&平均的方法复杂度平均的方法复杂度&应用程序的粒度应用程序的粒度27软件工程概论薛建民成本估算模型&以往类似项目、分解技术、经验模型&SLIM或软件生命周期管理模型(1978年),最早的算法成本模型适用于大型项目,也称宏估算模型&COCOMO或结构成本模型(1981年)系数来之63个项目分析后估算得到三个级别:基本模型、中间模型、详细模型28软件工程概论薛建民SLIM(软件生命周期管理)(软件生命周期管理)29软件工程概论薛建民SLIM 的优点和缺
15、点的优点和缺点&优点优点SLIM 以有力的数学优化模型为基础(例如用线性程序以有力的数学优化模型为基础(例如用线性程序设计求出成本约束和工作量约束),所以它是十分严设计求出成本约束和工作量约束),所以它是十分严格的格的SLIM 非常易于使用;它的参数比非常易于使用;它的参数比COCOMO 模型少模型少&缺点缺点该模型提供的估算值与组织中使用的该模型提供的估算值与组织中使用的TechnologyConstant 有关有关估算值的精确度取决于对估算值的精确度取决于对TechnologyConstant 估算估算的精确程度的精确程度该模型不适用于小项目,因此应用受到一定的限制该模型不适用于小项目,因
16、此应用受到一定的限制30软件工程概论薛建民COCOMO(构造式成本模型)(构造式成本模型)31软件工程概论薛建民COCOMO 模型中的开发模式模型中的开发模式32软件工程概论薛建民良好度量的特征良好度量的特征&有一定意义有一定意义:客户、开发人员和项目经理:客户、开发人员和项目经理都会认为它有一定的意义都会认为它有一定的意义&量化的量化的:它说明了过程变化与业务性能之:它说明了过程变化与业务性能之间的量化关系间的量化关系&客观的客观的:它的定义无二义性并且是客观的:它的定义无二义性并且是客观的&显示趋势显示趋势:该度量可以显示趋势:该度量可以显示趋势&过程的自然副产品过程的自然副产品:不是人工
17、引入的,而:不是人工引入的,而是该过程的自然副产品是该过程的自然副产品&自动化支持自动化支持:如果可以被某些自动化过程:如果可以被某些自动化过程支持则更好支持则更好33软件工程概论薛建民度量项目中的陷阱度量项目中的陷阱&达不到管理人员承诺的最低极限达不到管理人员承诺的最低极限&在组织中测量过多并且过早在组织中测量过多并且过早&测量过少并且太迟测量过少并且太迟&测量了不正确的属性测量了不正确的属性&过多收集了很少使用的数据过多收集了很少使用的数据&使用度量的不精确的定义使用度量的不精确的定义&使用度量来衡量工作人员而不是激励他们使用度量来衡量工作人员而不是激励他们&与工作人员缺乏交流并且对他们的
18、培训不够与工作人员缺乏交流并且对他们的培训不够&对度量数据不正确的解释对度量数据不正确的解释34软件工程概论薛建民软件策划&项目管理有三个主要阶段:项目管理有三个主要阶段:策划策划监视和控制监视和控制终止分析终止分析&项目策划是项目管理的一个最大的任务项目策划是项目管理的一个最大的任务&这么做的目的是,为软件开发制定一个这么做的目的是,为软件开发制定一个计划,从而可以根据该计划成功并有效计划,从而可以根据该计划成功并有效地实现项目目标地实现项目目标35软件工程概论薛建民项目规划项目规划36软件工程概论薛建民软件项目规划软件项目规划&“软件项目规划软件项目规划”应处理以下问题:应处理以下问题:成
19、本估算成本估算进度和里程碑进度和里程碑人员计划人员计划软件质量保证软件质量保证配置管理计划配置管理计划项目监视计划项目监视计划风险管理风险管理37软件工程概论薛建民风险管理风险管理38软件工程概论薛建民风险分析风险分析&在软件项目中,风险指的是对软件开发在软件项目中,风险指的是对软件开发的成本、质量或进度安排造成负面影响的成本、质量或进度安排造成负面影响的可能性的可能性&这些因素还可以用于风险分析这些因素还可以用于风险分析&风险分析中还必须考虑如程序应用程风险分析中还必须考虑如程序应用程序的实现操作方法、使用的工具类型、序的实现操作方法、使用的工具类型、参与人数等其它因素参与人数等其它因素39
20、软件工程概论薛建民风险确定风险确定&风险通常按照标题分组,例如项目风险、风险通常按照标题分组,例如项目风险、技术风险和商业风险等技术风险和商业风险等&项目风险项目风险涉及到进度安排问题、人员问题、涉及到进度安排问题、人员问题、资源问题、需求问题等资源问题、需求问题等&技术风险技术风险涉及到技术、平台、环境的选择涉及到技术、平台、环境的选择以及有关可移植性、安全性、可靠性等问以及有关可移植性、安全性、可靠性等问题题&商业风险商业风险涉及到关于投资回报和达到收支涉及到关于投资回报和达到收支平衡必需的时间的问题平衡必需的时间的问题40软件工程概论薛建民风险预测风险预测&风险预测中主要包括四个活动风险
21、预测中主要包括四个活动测量风险发生的概率测量风险发生的概率列出如果风险发生的话必须处理的一列出如果风险发生的话必须处理的一组问题组问题对问题项目上的风险的影响做出估计对问题项目上的风险的影响做出估计对已预测的风险的可信度进行评估对已预测的风险的可信度进行评估41软件工程概论薛建民风险评估风险评估&在风险评估阶段将开始进行以下步骤:在风险评估阶段将开始进行以下步骤:定义项目的风险指示级别定义项目的风险指示级别构建每个因子之间的关系,即风险、风构建每个因子之间的关系,即风险、风险发生的概率、风险的影响与每个指示险发生的概率、风险的影响与每个指示级别之间的关系级别之间的关系得到的一组断点将定义终止区
22、域得到的一组断点将定义终止区域对风险的组合方式的理解可能会影响指对风险的组合方式的理解可能会影响指示级别示级别42软件工程概论薛建民管理和监视风险管理和监视风险43软件工程概论薛建民软件项目进度安排软件项目进度安排&软件项目进度安排中包含两种方法第一种方法,发布软件产品程序的最后期限已经设置好,公司必须在特定的时间范围内分配工作量在第二种方法中,大致的时间周期已制定并进行了分配,但是软件公司可以自己设定最后日期&进度安排的精确性比成本估算的精确性的作用更大成本的增加可以通过重新制定产品的价格得到补偿,但是进度安排中的延迟会引起消极的影响,比如减少市场销售、客户的不满,以及在系统集成期间由于额外
23、的问题造成内部成本的增加44软件工程概论薛建民人员与工作的关系人员与工作的关系&随着项目规模增加,要在给定的时间范围随着项目规模增加,要在给定的时间范围内得到最终结果,需要加入更多的人员内得到最终结果,需要加入更多的人员&如果项目进度拖后,增加程序员的人数当如果项目进度拖后,增加程序员的人数当然可以加快该过程然可以加快该过程&但是这对开发过程也有消极的影响,导致但是这对开发过程也有消极的影响,导致进度的进一步落后进度的进一步落后&开发人员的增加也会导致系统内信息交流开发人员的增加也会导致系统内信息交流渠道的增加渠道的增加45软件工程概论薛建民工作量分布工作量分布&软件估算技术可以帮助确定完成软
24、件开发过程所软件估算技术可以帮助确定完成软件开发过程所需的人需的人-月的数量月的数量&项目工作量的分布可以仅由该项目的特性控制项目工作量的分布可以仅由该项目的特性控制&一般情况下,需求分析通常占项目工作量的百分一般情况下,需求分析通常占项目工作量的百分之十到百分之二十五之十到百分之二十五&项目策划的工作量通常只占整个项目工作量的百项目策划的工作量通常只占整个项目工作量的百分之二到百分之三分之二到百分之三&花费在原型法分析上的工作量通常会根据项目的花费在原型法分析上的工作量通常会根据项目的规模和复杂度增加规模和复杂度增加&另外百分之二十到百分之二十五的工作量通常用另外百分之二十到百分之二十五的工
25、作量通常用于软件设计于软件设计46软件工程概论薛建民进度安排的不同方法进度安排的不同方法&软件项目的进度安排与其它多任务的软件项目的进度安排与其它多任务的开发工作的进度安排相似开发工作的进度安排相似&软件开发中最常用的两种进度安排方软件开发中最常用的两种进度安排方法是:法是:程序评估与审查技术(程序评估与审查技术(PERT)关键路径方法(关键路径方法(CPM)47软件工程概论薛建民控制和跟踪软件项目控制和跟踪软件项目&跟踪可以用以下方式实现:跟踪可以用以下方式实现:通过召开项目状态会议通过召开项目状态会议通过对整个开发过程进行审查的结果进行评估通过对整个开发过程进行审查的结果进行评估通过确定在
26、计划日期内是否完成实现先前设置通过确定在计划日期内是否完成实现先前设置的正式里程碑的正式里程碑通过对照资源表中列出的每个项目任务的实际通过对照资源表中列出的每个项目任务的实际开始日期与计划开始日期,比较是否一致开始日期与计划开始日期,比较是否一致通过与其他软件团队进行交流,以获取对进度通过与其他软件团队进行交流,以获取对进度的主观评估并了解将来可能出现的问题的主观评估并了解将来可能出现的问题48软件工程概论薛建民配置管理配置管理49软件工程概论薛建民配置管理的元素配置管理的元素50软件工程概论薛建民配置管理的组成部分配置管理的组成部分构件控制构件控制版本控制版本控制变更控制变更控制51软件工程
27、概论薛建民软件质量保证&质量,在软件中指确保软件程序质量,在软件中指确保软件程序开发和应用中的各个方面具有预先开发和应用中的各个方面具有预先设定的某种标准的方法设定的某种标准的方法&软件中质量的概念通常与两方面软件中质量的概念通常与两方面有关:有关:设计的质量设计的质量满足要求的质量满足要求的质量52软件工程概论薛建民质量的概念质量的概念53软件工程概论薛建民软件质量保证软件质量保证54软件工程概论薛建民SQA 操作操作55软件工程概论薛建民软件评审软件评审&执行软件评审的主要目的是:执行软件评审的主要目的是:指出产品还可以改进的区域指出产品还可以改进的区域清楚地确定出软件满足设定标准的清楚地
28、确定出软件满足设定标准的部分部分保持作业质量的一致性保持作业质量的一致性56软件工程概论薛建民正式技术评审正式技术评审57软件工程概论薛建民软件工程中的错误软件工程中的错误58软件工程概论薛建民质量保证体系:质量保证体系:ISO 9000&质量保证体系是一个整体结构的名称,其质量保证体系是一个整体结构的名称,其中包含有助于在组织内部实现质量管理功中包含有助于在组织内部实现质量管理功能的职责、处理、过程以及资源能的职责、处理、过程以及资源&该体系中的活动包括整个开发过程中的规该体系中的活动包括整个开发过程中的规划、控制、测量、测试、报告和提高质量划、控制、测量、测试、报告和提高质量等级等级&IS
29、O 9000 主要用于质量保证体系,一般来主要用于质量保证体系,一般来说可以应用于不同的商业和服务说可以应用于不同的商业和服务59软件工程概论薛建民ISO 9000进行质量保证的方法进行质量保证的方法&使用使用ISO 9000 质量保证模型注册的所有公质量保证模型注册的所有公司看起来都是由各个相互连接的过程组成的司看起来都是由各个相互连接的过程组成的网络网络&如果体系要符合如果体系要符合ISO 9000,则必须使用这些,则必须使用这些过程来声明标准中指定的区域过程来声明标准中指定的区域&过程中的这些区域还应该编制成文档,并在过程中的这些区域还应该编制成文档,并在确定后按照指定的方式进行实践确定后按照指定的方式进行实践&这些区域包括组织结构、过程和处理,以及这些区域包括组织结构、过程和处理,以及实施质量策划、控制、保证和提高所需的资实施质量策划、控制、保证和提高所需的资源源60软件工程概论薛建民ISO 9001 的要求的要求61软件工程概论薛建民能力成熟度模型能力成熟度模型62软件工程概论薛建民小结&软件项目管理的定义与特点&软件度量&过程控制与质量保证63软件工程概论薛建民实验08&项目总结报告&这门课程的收获与建议(每个人)放在项目报告最后部分。64软件工程概论薛建民 谢谢65
限制150内