软件项目管理(Software-Project-Management).ppt





《软件项目管理(Software-Project-Management).ppt》由会员分享,可在线阅读,更多相关《软件项目管理(Software-Project-Management).ppt(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八讲第八讲 软件项目管理软件项目管理(Software Project Management)Welcome to Software EngineeringLecture 8Zhang Jiannan 目标目标n了解软件项目的基本概念及管理者的主要任务;n了解软件项目管理的特征及其和其他工程项目管理之间的区别;n熟悉项目策划的概念及任务过程;n了解软件成本的基本知识和基本的估算方法;n掌握应用图形工具制作项目进度表的方法;目标目标n了解软件质量的影响因素及CMM基本概念。n了解软件配置管理的重要意义;n了解配置管理中CM规划、变更管理等主要活动;n了解人员管理的基本内容与方法。内容内容n软件
2、项目管理基础n软件项目策划与估算n软件进度安排n软件质量管理与CMM n软件配置管理n软件人员管理n软件项目管理软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。n软件项目管理主要考虑如何保证软件能够按时、按计划并满足用户需求规格的交付,即如何用科学的管理手段保障软件项目的成功。n软件项目管理是必要的活动,因为软件项目必然会受到时间和成本的约束,如何有效的利用时间与成本是不能仅凭工程分析与设计方法来解决的。1.软件项目管理基础软件项目管理基础n软件项目管理与其它的工程项目管理相比有其自身的独特性:n软件产品是无形的;n软
3、件产品是易变的;n软件开发过程不标准;n很多软件项目都是“一次性”项目。n软件项目不同于其它普通的工程项目,它属于智力密集型活动,其中,人员、抽象的文档和程序代码是管理的主要对象。n因此,在实践中,软件工程管理人员不能照抄照搬,应做到因地制宜,确保管理行为具有针对性。软件项目管理的特点软件项目管理的特点nPressman认为有效的软件项目管理集中在4个P上,即:n人员(人员(People)“人的因素”是成功软件项目中最为重要的因素;n产品(产品(Product)产品的目标与范围,成本与开发约束是划分项目任务,制定项目进度的依据;n过程(过程(Process)软件过程提供了完成特定软件项目所需的
4、框架活动和开发任务的集合;n项目(项目(Project)把软件置于有计划的、可控的项目之中,是保证其成功的唯一途径。软件项目管理中的软件项目管理中的4 Psn项目策划与估算;n项目进度安排;n项目监督与控制;n人员管理;n质量管理;n配置管理;n风险管理;n过程改进。主要管理活动主要管理活动2 项目策划与估算项目策划与估算n 软件项目管理从一组统称为项目策划项目策划(project planning)的活动开始。n 项目策划的目标是建立一个能够对复杂的技术项目进行控制、跟踪和监测的有效策略,这个策略是在对资源、成本和进度做出合理估算的基础上做出的。n 有效的项目管理取决于全面的项目策划。在项目
5、之初拟定的计划,应该成为整个项目的驱动器。2.1 项目策划项目策划项目策划任务集1.确定项目范围;2.确定可行性;3.分析风险;4.确定所需的资源:a.确定需要的人力资源;b.确定可复用的软件资源;c.标识环境资源。项目策划任务集5.估算成本和工作量:a.分解问题;b.使用规模、功能点、过程任务或用例等方法进行两种以上的估算;c.调和不同的估算。6.制定项目进度计划:a.建立一组有意义的任务集合;b.定义任务网络;c.使用进度计划工具指定时间表;d.定义进度跟踪机制。Write it Down!SoftwareSoftwareProjectProjectPlanPlanProject Scop
6、eProject ScopeEstimatesEstimatesRisksRisksScheduleScheduleControl strategyControl strategy什么是“范围”?n“软件范围软件范围”描述了:n交付给最终用户的软件功能与特征;n输入和输出的数据;n使用软件时要呈现给用户的“内容”;n用于界定系统的性能、约束条件、接口和可靠性。n范围可以使用以下两种方法定义:n在于共同利益者交流之后得到对软件范围的叙述性描述;n由最终用户开发一组用例。资源2.2 项目估算项目估算n合理科学的项目估算对于项目管理是至关重要的,要得到理想的估算结果必须注意:n必须理解项目的范围;n
7、进行项目分解是必要的;n历史信息是十分有用的;n至少采用两种不同的技术进行估算;n不确定性是软件估算的天然属性。软件项目的成本构成n硬件和软件成本硬件和软件成本n差旅费和培训费用差旅费和培训费用n工作成本工作成本 (the dominant factor in most projects)n项目开发人员的薪水;n社会保障和员工福利。n经常性的管理费用经常性的管理费用n办公场所、供暖和照明费用;n网络和通信费用;n图书馆、员工餐厅等方便设施的费用。估算技术n根据已完成的类似项目进行估算(类比估算);n传统估算技术:n 任务分解与成果估算;n 规模(如F.P)估算。n经验模型(参数估算);n自动化
8、估算工具。估算精确度n估算精确度取决于:n计划者对产品规模估计的准确程度;n把产品规模转换成人的工作量/人力成本的准确度;n对软件团队能力的正确估计;n软件产品需求与环境的稳定性。任务分解任务分解结构(任务分解结构(任务分解结构(任务分解结构(WBSWBS)软件范围软件范围软件范围软件范围描述描述描述描述进行进行进行进行“文法解析文法解析文法解析文法解析”传统估算方法:LOC/FP方法n在得到软件的任务分解结构(WBS)后,可以分别估计每个功能的LOC或FP,从而估计出软件的整体规模。n在估算过程中可以采用历史数据进行类比估算。n估算人员通常要为每个功能分别估算一个乐观值(Sopt)、可能值(
9、Sm)和悲观值(Spess),然后加权计算规模估计值S:S=(Sopt+4 Sm+Spess)/6例:LOC 方法该类系统的平均生产率=620 LOC/pm;平均工资=$8000/月;每行代码的成本约$13;根据LOC估算与历史生产数据得到总成本约431000美元,工作量约54人.月。例:FP 方法FP 的估计值:FPestimated=321 X 0.65+0.01 X (Fi)FPestimated=375组织平均生产率=6.5 FP/pm.劳力价格=$8000 per month,每个 FP 成本约为$1230.根据FP估算与历史生产数据得到总成本约461000美元,工作量约58人.月。
10、基于过程的估算从“过程框架”中获得框架活动(沟通、策划、风险分析、工程和构造发布)软件功能软件功能软件功能软件功能框架活动框架活动框架活动框架活动针对每个软件功能,估针对每个软件功能,估算完成各个过程活动所算完成各个过程活动所需的工作量(人需的工作量(人.月)月)基于过程估算的实例如果平均一个劳力的价格是8000美元/月,则项目的总成本约为368000美元,总工作量约为46人.月。经验估算模型General form:General form:effort=tuning coefficient*sizeeffort=tuning coefficient*sizeexponentexponent
11、usually derivedusually derivedas person-monthsas person-monthsof effort requiredof effort requiredeither a constant oreither a constant ora number derived based a number derived based on complexity of projecton complexity of projectusually LOC butusually LOC butmay also bemay also befunction pointfu
12、nction pointempiricallyempiricallyderivedderivedCOCOMO-IInCOCOMO(构造成本模型)是由Barry Beohm提出的一种层次结构估算模型,是业内最广泛使用和讨论的经验估算模型。nCOCOMO II 也是一种层次结构估算模型,主要应用于以下领域:n应用组装模型应用组装模型。在软件工程早期使用,这时,用户界面的原型开发、对软件和系统交互的考虑、性能的评估以及技术成熟度的评价是最重要的;n早期设计阶段模型早期设计阶段模型。在需求已经稳定并且基本的软件体系结构已经建立时使用;n体系结构后阶段模型体系结构后阶段模型。在软件构造过程中使用。软件方
13、程式软件方程式是一种多变量模型,它假定在软件开发项目的整个生命周期中有特定的工作量分布。E=LOC x B0.333/P3 x(1/t4)其中:E=工作量,人.月或人.年t =项目持续时间,以月或年为单位B=“特殊技能因子”P=“生产率参数”3 项目进度安排(调度)项目进度安排(调度)n这个管理活动中,管理者需要把项目分解成若干个任务,并估算每个任务完成所需要的时间与资源,然后按照一定的顺序把这些任务组织起来。n应协调并行的任务,充分利用人力资源。n要减少任务间的依赖,明确关键任务,保证按进度交付。项目调度过程项目调度过程活动网络图与甘特图活动网络图与甘特图n图形化的工具对说明项目进度是十分有
14、用的。n活动网络图方法PERT(Program Evaluation and Review Technique),是美国海军和洛克希德公司60年代初发展起来的一种先进的管理技术。在国民经济中已经广为应用,并且受到用户的好评。n活动网络图表示构成一个项目的不同活动之间的依赖关系以及由开始到结束的关键活动路径关键活动路径。例:活动网络图的画法例:活动网络图的画法活动网络图活动网络图n甘特图是以水平线段表示每一项任务,线段的起始点表示任务的开始,结束点表示任务的结束,线段的长度表示任务的完成时间。n甘特图的优点是简单明了,清楚地从图上看出任务时间上的对比关系,非常直观方便。它的缺点是各个任务之间的逻
15、辑关系无法表示清楚。甘特图甘特图甘特图甘特图4 4 软件质量管理软件质量管理 近些年来,软件人员正不懈的追求软件质量,虽然付出了巨大的努力,但是收效甚微。于是,大部分软件企业试图通过壮大软件测试队伍,希望通过加大测试力度来提高软件质量,然而,软件测试不能从根本上提高软件质量。究其原因,人们似乎对于软件质量的概念和内涵并不是很清楚,就更谈不上采取有效的方法提高软件的质量。我们认为,实施软件质量管理是软件开发过程不可缺少的一个重要环节。传统上,人们对软件质量的评价参数包括软件功能是否齐全、结构是否合理和层次是否分明等方面。不难发现,这些评价的描述是含糊不清的,不能对软件的质量做定性的分析。不精确的
16、软件评价给用户和软件开发人员均带来消极作用,对用户而言,没有明确的软件评价,用户就没有选购软件的依据;同时,软件开发人员没有软件质量的评价标准,在软件的开发过程中就无“法”可依。因此,软件质量评价标准的制定有其必要性,也有重要意义。软件质量及其评价美国的B.W.oehm和R.Brown提出了三个层次的评价度量模型,三个层次分别是软件质量要素、准则和度量。在此,仅对第一层次软件质量要素作简单介绍。软件质量及其评价把软件质量分解成六个要素,通过如下的六个要素来评判软件质量:1.1.功能性功能性:软件功能来源于软件的用户需求,用户需求分为显性需求和隐性需求,隐性需求泛指用户潜在的却不能陈述的软件需求
17、;功能性是软件满足用户需求的程度描述。软件质量要素2.2.可靠性可靠性:软件可靠性包含两个方面的内容,一是软件在规定的运行环境下正常工作的程度;二是软件在非法操作或故障发生时继续运行的程度。软件可靠性在软件工程中具有较大的实际意义,可靠性差的软件在故障发生时不能正常运行,这将使得软件功能丧失。在必要时,可以建立软件保障系统,从根本上提高软件可靠性。软件质量要素3.3.易使用性易使用性:易使用性的内容包括软件用户界面的友好性和软件交互性,交互性和友好性是衡量软件使用是否方便的两个重要参数。4.4.效率效率:软件效率指软件运行时对所需的计算机资源利用的有效程度,软件效率的衡量通常从时间和存储需求两
18、方面入手。软件质量要素5.5.可维护性可维护性:软件的可维护性是指用户需求改变或软件环境发生变更时,软件系统能进行相应修改的容易程度,可维护性一般与软件的可读性、可理解性和可修改性相关。软件质量要素6.6.可移植性可移植性:可移植性指软件整体或部分对运行的系统和环境的依赖程度,依赖程度越高,软件可移植性越差。软件质量要素虽然软件企业没有停止对软件质量的追求,但是事实表明他们并没有在提高软件质量方面取得突破性进展。软件质量问题的根源总的来说,较多质量不高的软件在软件开发中存在以下几点共性:缺乏软件产品检验标准,开发人员在提高软件质量上还具有一定盲目性;软件开发人员缺乏质量意识;软件项目时间短、计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 管理 Software Project Management

限制150内