清华软件工程课件第14章-软件项目管理学习资料.ppt
《清华软件工程课件第14章-软件项目管理学习资料.ppt》由会员分享,可在线阅读,更多相关《清华软件工程课件第14章-软件项目管理学习资料.ppt(148页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、清华软件工程课件第14章-软件项目管理软件项目管理软件项目管理软件危机后的普遍性结论:软件项目成功软件危机后的普遍性结论:软件项目成功率非常低的原因可能是项目管理能力太弱率非常低的原因可能是项目管理能力太弱软件项目管理是指软件生存周期中软件管软件项目管理是指软件生存周期中软件管理者所进行的一系列活动,其目的是在一理者所进行的一系列活动,其目的是在一定的时间和预设范围内,有效地利用人力、定的时间和预设范围内,有效地利用人力、资源、技术和工具,使软件系统或软件产资源、技术和工具,使软件系统或软件产品按原定计划和质量要求如期完成品按原定计划和质量要求如期完成 11/20/20222/148软件工程软
2、件工程内容摘要内容摘要软件项目管理概述软件项目管理概述软件度量软件度量软件项目估算软件项目估算项目进度管理项目进度管理风险管理风险管理软件项目的组织软件项目的组织软件质量管理软件质量管理软件配置管理软件配置管理小结小结11/20/20223/148软件工程软件工程内容摘要内容摘要软件项目管理概述软件项目管理概述软件项目管理概述软件项目管理概述软件度量软件度量软件项目估算软件项目估算项目进度管理项目进度管理风险管理风险管理软件项目的组织软件项目的组织软件质量管理软件质量管理软件配置管理软件配置管理小结小结11/20/20224/148软件工程软件工程软件项目管理软件项目管理项目管理是通过项目经理
3、和项目组织的努项目管理是通过项目经理和项目组织的努力,运用系统理论的方法对项目及其资源力,运用系统理论的方法对项目及其资源进行计划、组织、协调、控制,旨在实现进行计划、组织、协调、控制,旨在实现项目的特定目标的管理方法体系项目的特定目标的管理方法体系(软件软件)项目管理的基本内容:项目管理的基本内容:项目定义、项目计划、项目执行、项目控项目定义、项目计划、项目执行、项目控制、项目结束制、项目结束11/20/20225/148软件工程软件工程软件项目管理的关注点软件项目管理的关注点(4P)人员人员(People)人员是软件工程项目的基本要素和关键因素在对人员进行组织时,有必要考虑参与软件过程(及
4、每一个软件项目)的人员类型 产品产品(Product)定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术或管理的约束等 过程过程(Process)通常将项目分解为任务子任务等,其分解准则是基于软件工程的过程 项目项目(Project)采用科学的方法及工具对项目基本内容进行管理 11/20/20226/148软件工程软件工程软件项目管理中的五类人员软件项目管理中的五类人员项目管理人员项目管理人员负责软件项目的管理工作,其负责人通常称为项目经理高级管理人员高级管理人员可以是领域专家,负责提出项目的目标并对业务问题进行定义开发人员开发人员掌握了开发一个产品或应用所需的专门技术,可胜任包
5、括需求分析、设计、编码、测试、发布等各种相关的开发岗位客户客户一组可说明待开发软件的需求的人,也包括与项目目标有关的其它风险承担者最终用户最终用户产品或应用提交后与产品/应用进行交互的11/20/20227/148软件工程软件工程软件项目管理中的产品软件项目管理中的产品定义项目范围,其中包括建立产品的目的和范定义项目范围,其中包括建立产品的目的和范围、可选的解决方案、技术或管理的约束围、可选的解决方案、技术或管理的约束目的:从客户的角度定义该产品的总体目标,目的:从客户的角度定义该产品的总体目标,但不必考虑这些目标如何实现但不必考虑这些目标如何实现软件范围定义了与软件产品相关的数据、功能软件范
6、围定义了与软件产品相关的数据、功能和行为,及其相关的约束:和行为,及其相关的约束:语境(context):说明待建造的软件与其它相关系统、产品或环境的关系,以及相关的约束条件信息目标:说明目标系统所需要的输入数据及应产生的输出数据功能和性能:说明软件应提供的功能来完成输入数据到输出数据的变换以及给出对目标软件的性能要求11/20/20228/148软件工程软件工程软件项目方法软件项目方法对项目进行有计划和可控制的管理对项目进行有计划和可控制的管理明确目标及过程:充分理解被解决的问题,明确定义项目目标及软件范围,为项目小组及活动设置明确、现实的目标,并充分发挥相关小组的自主性保持动力:提供激励措
7、施使人员变动最小跟踪进展:对每个任务的进展进行跟踪,并对其软件过程和质量进行度量 做出聪明的决策:项目管理者和软件小组的决策应该“保持其简单”项目总结:从每个完成的项目中获取可学习的经验11/20/20229/148软件工程软件工程软件项目管理过程示例软件项目管理过程示例11/20/202210/148软件工程软件工程软件项目启动软件项目启动在软件项目启动前对项目进行可行性分析,以在软件项目启动前对项目进行可行性分析,以明确项目的目标和范围,从而确定:合理精确明确项目的目标和范围,从而确定:合理精确的成本分析;实际可行的任务分解;可管理的的成本分析;实际可行的任务分解;可管理的进度安排进度安排
8、在多个项目方案中选择一个相对完善的方案在多个项目方案中选择一个相对完善的方案考虑交付期限、预算、个人能力、技术界面等限制条件在正式启动软件项目前组成项目组,并召开项在正式启动软件项目前组成项目组,并召开项目启动会议,内容包括:项目组的初步交流;目启动会议,内容包括:项目组的初步交流;进一步对项目目标理解;对组织形式、管理方进一步对项目目标理解;对组织形式、管理方式、方针的一致认识;明确岗位职责式、方针的一致认识;明确岗位职责11/20/202211/148软件工程软件工程项目组织项目组织在项目经理领导下,组织不同类型的项目组成在项目经理领导下,组织不同类型的项目组成员共同协作完成软件项目员共同
9、协作完成软件项目存在多种可选的项目组织结构,组织结构的选存在多种可选的项目组织结构,组织结构的选择对项目的成败具有很大影响择对项目的成败具有很大影响规划软件工程项目组织结构时考虑如下因素:规划软件工程项目组织结构时考虑如下因素:待解决问题的困难程度目标系统的规模,可用代码行或功能点来度量项目组的生存期,即项目小组需要共同工作的时间问题可被分解的程度对目标系统要求的质量和可靠性可供开发时间的紧迫性,即交付时间的严格程度项目组内部的通信的复杂性,即成员(小组)之间正式或非正式通信的机制11/20/202212/148软件工程软件工程项目计划项目计划项目计划是项目组织根据软件项目的目标及项目计划是项
10、目组织根据软件项目的目标及范围,对项目实施中进行的各项活动进行周范围,对项目实施中进行的各项活动进行周密的计划密的计划项目计划根据项目目标确定项目的各项任务、项目计划根据项目目标确定项目的各项任务、安排任务进度、编制完成任务所需的资源预安排任务进度、编制完成任务所需的资源预算等算等项目计划包括:工作计划、人员组织计划、项目计划包括:工作计划、人员组织计划、设备采购计划、变更控制计划、进度控制计设备采购计划、变更控制计划、进度控制计划、财务计划、文件控制计划、应急计划等划、财务计划、文件控制计划、应急计划等11/20/202213/148软件工程软件工程软件度量软件度量软件度量是指计算机软件范围
11、内的测量,主要是为产品软件度量是指计算机软件范围内的测量,主要是为产品开发的软件过程和产品本身定义相关的测量方法和标度开发的软件过程和产品本身定义相关的测量方法和标度对软件开发过程度量的目的是为了对过程进行改进对产品进行度量的目的是为了提高产品的质量,度量的作用是为了有效地采用定量的方式来进行管理度量的作用是为了有效地采用定量的方式来进行管理管理人员利用度量来了解软件工程过程的执行情况和产管理人员利用度量来了解软件工程过程的执行情况和产品质量品质量需要考虑:需要考虑:合适的度量是什么所收集的数据如何使用用于比较个人、过程或产品的度量是否合理11/20/202214/148软件工程软件工程项目估
12、算项目估算项目估算是制定项目计划的基础项目估算是制定项目计划的基础项目所需的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)等参照以前类似项目中的相关数据进行估算参照以前类似项目中的相关数据进行估算若存在类似历史项目则可进行类比估算若缺少可类比的项目数据则采用特定的估算技术(例如功能点估算方法等)通常采用多种估算技术进行交叉检查通常采用多种估算技术进行交叉检查11/20/202215/148软件工程软件工程风险管理风险管理风险:人员、经费、进度及需求等方面存在风险:人员、经费、进度及需求等方面存在的可能影响项目按计划完成的不确定因素的可能影响项目按计划完成的不确定因
13、素风险管理:标识软件项目中的风险,预测风风险管理:标识软件项目中的风险,预测风险发生的概率以及风险造成的影响,并对风险发生的概率以及风险造成的影响,并对风险进行评估,找出那些可能导致项目失败的险进行评估,找出那些可能导致项目失败的风险,然后采取相应的措施来缓解风险风险,然后采取相应的措施来缓解风险风险管理贯彻于整个软件工程过程中风险管理贯彻于整个软件工程过程中11/20/202216/148软件工程软件工程进度安排进度安排进度安排进度安排将项目划分成可管理的子项目、任务和活动确定任务之间的依赖关系,找出影响项目按期完成的关键任务为每个任务分配时间、工作量以及指定责任人,定义每个任务的输出结果及
14、其关联的里程碑在项目实施过程中将在进度计划基础上跟在项目实施过程中将在进度计划基础上跟踪实际执行情况,从而及时发现偏差并采踪实际执行情况,从而及时发现偏差并采取措施加以调整以确保项目按期完成取措施加以调整以确保项目按期完成11/20/202217/148软件工程软件工程跟踪与控制跟踪与控制跟踪是控制的前提,它实际上是在项目实跟踪是控制的前提,它实际上是在项目实施过程中对影响项目进展的内外部因素进施过程中对影响项目进展的内外部因素进行及时的、连续的、系统的记录和报告的行及时的、连续的、系统的记录和报告的活动,其核心在于反映项目变化、提供相活动,其核心在于反映项目变化、提供相关信息的报告关信息的报
15、告控制是通过工具和技术对项目计划与实际控制是通过工具和技术对项目计划与实际执行进行对比,并对项目的未来走向进行执行进行对比,并对项目的未来走向进行预测,再此基础上进行项目的各种调整预测,再此基础上进行项目的各种调整11/20/202218/148软件工程软件工程软件配置管理软件配置管理Software Confignation Management(SCM)任务:标识和确定系统中的配置项,在系任务:标识和确定系统中的配置项,在系统整个生命期内控制这些项的发布和变更,统整个生命期内控制这些项的发布和变更,记录并报告配置的状态和变更要求,验证记录并报告配置的状态和变更要求,验证配置项的完整性和正确
16、性配置项的完整性和正确性SCM存在于整个软件过程中,是一种保护存在于整个软件过程中,是一种保护性活动性活动11/20/202219/148软件工程软件工程内容摘要内容摘要软件项目管理概述软件项目管理概述软件度量软件度量软件度量软件度量软件项目估算软件项目估算项目进度管理项目进度管理风险管理风险管理软件项目的组织软件项目的组织软件质量管理软件质量管理软件配置管理软件配置管理小结小结11/20/202220/148软件工程软件工程术语定义术语定义术语定义术语定义(ISO/IEC 9126-1)(ISO/IEC 9126-1)信息技术信息技术信息技术信息技术 软件产品评价软件产品评价软件产品评价软件
17、产品评价 质量特性及其使用指南质量特性及其使用指南质量特性及其使用指南质量特性及其使用指南Metric(度量度量):定义测量方法和测量标度:定义测量方法和测量标度Measurement(测量测量):使用一种度量把标度值:使用一种度量把标度值(可以是数字可以是数字或类别或类别)赋予实体的某个属性赋予实体的某个属性Measure(verb 测量测量):执行一次测量:执行一次测量(measurement)Measure(noun 测度测度):通过执行一次测量赋予实体属性的数:通过执行一次测量赋予实体属性的数字或类别字或类别direct measure(直接测量直接测量):不依赖于任何其它属性的测量:
18、不依赖于任何其它属性的测量导出的属性测量导出的属性测量indirect measure(间接测量间接测量):从一个或多个其它属性的测:从一个或多个其它属性的测量导出的属性测量量导出的属性测量internal measure(内部测量内部测量):一种对产品本身的直接或间:一种对产品本身的直接或间接的测量接的测量external measure(外部测量外部测量):一种通过对外系统的测量导:一种通过对外系统的测量导出对产品出对产品(作为系统的一部分作为系统的一部分)的间接测量的间接测量11/20/202221/148软件工程软件工程软件度量软件度量度量对象:软件产品、软件过程、资源度量对象:软件产
19、品、软件过程、资源外部属性:面向管理者和用户的属性体现了软件产品体现了软件产品/软件过程与相关资源和环境的关系,软件过程与相关资源和环境的关系,如成本、效益、开发人员的生产率如成本、效益、开发人员的生产率通常可采用直接测量的办法进行通常可采用直接测量的办法进行内部属性:软件产品或过程本身的属性如软件产品的结构、模块化程度、复杂性、程序长度等如软件产品的结构、模块化程度、复杂性、程序长度等有些内部属性只能用间接测量的方法度量,需要特定的有些内部属性只能用间接测量的方法度量,需要特定的测量方法或模型测量方法或模型11/20/202222/148软件工程软件工程软件度量分类软件度量分类分类分类1:面
20、向规模的度量用于收集与直接度量有关的软件工程输出信息和质量信息面向功能的度量的则集中在程序的“功能性”和“实用性”面向人的度量则收集有关人们开发计算机软件所用方式的信息和人员理解有关工具的方法和效率的信息分类分类2:软件生产率度量集中在软件工程过程的输出软件质量度量可指明软件满足明确的和隐含的用户需求的程度技术度量主要集中在软件产品的某些特征(如逻辑复杂性、模块化程度)上,而不是软件开发的全过程11/20/202223/148软件工程软件工程面向规模的度量面向规模的度量软件规模通常是指软件的大小软件规模通常是指软件的大小(size),一,一般用代码行度量般用代码行度量优点:方便、直观缺点:很大
21、程度上取决于程序设计语言以及软件设计的质量测量出软件规模后可方便地度量其它软件测量出软件规模后可方便地度量其它软件属性,包括:属性,包括:度量名度量名含义及表示含义及表示LOC或KLOC代码行数或千行代码数生产率PP=LOC/E,E为开发的工作量(常用人月数表示)每行代码平均成本CC=S/LOC,S为总成本文档代码比DD=Pe/KLOC,其中Pe为文档页数代码错误率EQREQR=N/KLOC,其中N为代码中错误数11/20/202224/148软件工程软件工程面向功能的度量面向功能的度量一种针对软件的功能特性进行度量的方法一种针对软件的功能特性进行度量的方法主要考虑软件系统的主要考虑软件系统的
22、“功能性功能性”和和“实用实用性性”功能点度量:基于软件信息域的特征功能点度量:基于软件信息域的特征(可可直接测量直接测量)和软件复杂性进行规模度量和软件复杂性进行规模度量功能点度量方法步骤:功能点度量方法步骤:计算信息域特征的值CT计算复杂度调整值计算功能点FP11/20/202225/148软件工程软件工程计算信息域特征的值计算信息域特征的值CT对五个信息域特征及其含义对五个信息域特征及其含义(上表上表)统计相应的特征值,然后根据信息域特征统计相应的特征值,然后根据信息域特征的复杂程度选择适当的加权因子进行计算的复杂程度选择适当的加权因子进行计算(下表下表),得到总计的,得到总计的CT值值
23、11/20/202226/148软件工程软件工程计算复杂度调整值计算复杂度调整值复杂度调整值复杂度调整值Fi(i=1到到14)是基于对左表中问题的回答而得是基于对左表中问题的回答而得到的值,对每个问题回答的取值范围是到的值,对每个问题回答的取值范围是0到到5,见右表,见右表值值定义定义0没有影响没有影响1偶然的偶然的2适中的适中的3普通的普通的4重要的重要的5极重要的极重要的11/20/202227/148软件工程软件工程计算功能点计算功能点FP功能点计算公式功能点计算公式FP=CT*(0.65+0.01*F)其中:CT是步骤1得到的“总计数值”,F是步骤2得到的Fi之和一旦计算出功能点,则用
24、类似代码行的方法来一旦计算出功能点,则用类似代码行的方法来计算软件生产率、质量及其他属性计算软件生产率、质量及其他属性11/20/202228/148软件工程软件工程扩展的功能点度量扩展的功能点度量功能点度量的不足:最初主要用于商业信息系统的度量,功能点度量的不足:最初主要用于商业信息系统的度量,强调数据维,即信息域特征值,而忽略了功能和行为强调数据维,即信息域特征值,而忽略了功能和行为(控制控制)Jones提出了称为特征点提出了称为特征点(Feature Point)的扩展的功能的扩展的功能点度量方法点度量方法在功能点信息域特征中增加了一个算法特征,并将算法定义为“特定计算机程序中所包含的一
25、个界定的计算问题”11/20/202229/148软件工程软件工程功能点与功能点与LOC的换算的换算(部分部分)程序语言程序语言每每FP之之LOC值值平均平均中等中等低低高高Access35381547Ada154104205APS868320184ASP6232127Assembler33731591694C16210933704C+665329178Java63537770COBOL777714400SQL40377110VBScript342750Visual Basic47421615811/20/202230/148软件工程软件工程软件质量软件质量软件质量定义软件质量定义ISO/IE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 清华 软件工程 课件 14 软件 项目 管理 学习 资料
限制150内