软件工程管理技术.ppt

上传人:小飞机 文档编号:6232744 上传时间:2023-10-08 格式:PPT 页数:75 大小:277.99KB
返回 下载 相关 举报
软件工程管理技术.ppt_第1页
第1页 / 共75页
软件工程管理技术.ppt_第2页
第2页 / 共75页
软件工程管理技术.ppt_第3页
第3页 / 共75页
软件工程管理技术.ppt_第4页
第4页 / 共75页
软件工程管理技术.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《软件工程管理技术.ppt》由会员分享,可在线阅读,更多相关《软件工程管理技术.ppt(75页珍藏版)》请在三一办公上搜索。

1、第12章 管理技术,12.1 项目管理12.2 人员组织12.3 成本估算12.4 进度计划12.5 质量管理,12.1 项目管理,12.1.1 什么是项目 人们通常把一次性的、不重复的、有开始和结束时间限制的一类任务称为项目,它和另一类持续不断一直进行的、重复的、周期性的工作是不同的,项目是一系列活动的集合。这些活动被有机地组合在一起,完成一系列的任务,从而实现一个完整的目标。项目具有以下显著特点:,(1)项目从本质上看是临时的任务,而不是一直进行的某个过程。项目在结束时一般会有成果。,(2)项目通常有非常明确的、可以判别的起点和终点。也就是说,项目是有严格的时间要求的,它必须在一定的时间内

2、完成。,(3)项目一般是由用户提出,由项目经理充实内容,然后组成项目小组完成项目。但有时也有例外。,(4)有些项目是“实验性的”,比如进行某项开发以满足某行业一种需要或为了某个战略目标,这种项目不能保证会有结果,因为它属于开创性的工作。,(5)项目的目的是为了产生前所未有的新东西。因此,项目不能重复前人成果,必须进行发明创造。,(6)所有的项目在时间、成本和质量方面都受到严格的要求和约束。所有的项目必须在一定的时间内、有限的资源下高质量地完成。,12.1.2 项目管理 项目管理是制定项目计划,然后组织执行计划,安排人力、物力资源,实现项目目标的过程。,项目管理通常具有以下基本特点:(1)项目管

3、理是一项复杂的工作。(2)项目管理具有创造性。(3)项目管理需要集权领导和建立专门的项目组织。(4)项目负责人(或项目经理)在项目管理中起着非常重要的作用。,12.1.3 项目管理的各个阶段 对于具体的软件项目,一般先采用传统的“分解”方法对项目进行分解。软件工程项目的分解是从横向和纵向(即空间和时间)两个方向进行的。横向分解就是把一个大系统分解为若干个小系统,小系统分解为子系统,子系统分解为模块,模块分解为过程。纵向分解就是生命期,把软件开发分为几个阶段,每个阶段有不同的任务、特点和方法。软件工程管理针对每一个阶段都有相应的管理策略。,对于大型和复杂的软件项目来说,项目的五个阶段为:启动阶段

4、、计划阶段、实施阶段、控制阶段和收尾阶段。,(1)启动阶段用户提出开发指定的系统。经过可行性分析,编写项目实施计划。,(2)计划阶段创建项目范围文档和项目计划,前者详细描述项目范围,后者规定如何开展工作使项目得以完成。,(3)实施阶段实施阶段意味着项目正在进一步设计、编码、测试,小组成员正在创造项目需要的可交付产品。应该协调好实施阶段和控制阶段的关系,以确保项目小组成员满足任务、时间和预算要求。,(4)控制阶段在这一阶段,项目经理开始监督小组成员的工作,向项目开发人员汇报项目进展,将项目的进度、任务和预算控制在正常的范围内。,(5)收尾阶段这个阶段包含正式认可过程,项目负责人和用户批准和签署项

5、目,交付产品。项目的收尾阶段标志着项目的正式结束。,软件项目管理的主要任务是:制定项目实施计划;对人员进行组织、分工;按照计划的进度,以及成本管理、质量管理的要求,进行软件开发;最终完成软件项目规定的各项任务。,12.1.4 软件项目管理的任务、目标,成本管理的主要任务是:估算软件项目的成本,作为签订合同或项目立项的依据;在软件开发过程中按计划管理经费的使用。,质量管理的主要任务是:制定软件质量保证计划;按照软件质量评价体系控制软件质量要素;对阶段性的软件产品进行评审;对最终产品进行验证和确认,确保软件产品的质量。,所谓项目成功是指软件达到以下几个主要的目标:以较低的成本开发出软件;软件具备所

6、有要求的功能;软件的性能较好;开发的软件易于移植;软件在使用中仅需较低的维护费用;能按时完成开发工作,及时交付使用。,12.2 人员组织,12.2.1 项目参与者(1)高级管理者:所有涉及与项目开发小组以外的组织和个人的承诺需要由高级管理者确定。,(2)项目技术管理者:项目经理全权负责产品的最终完成。,(3)开发人员:负责开发一个产品或者应用软件所需的各类专门技术人员。,(4)用户代表:负责说明待开发软件需求的人员。同时和项目管理者协调控制项目开发过程中的各类变更。,(5)最终用户:在验收测试阶段,最终用户起着非常重要的作用。,软件开发组织应当根据实际情况建立本组织的岗位责任制度,划定岗位,明

7、确职责,力争做到人定岗、岗定责。,12.2.2 人员素质,12.2.2.1 软件开发人员应具备的条件:(1)软件开发人员应经过初始入门职业教育或学历教育,并具有后续的技能发展潜力。(2)通过软件开发资格证书,确保开发人员达到最基本知识、技能的要求;(3)在软件职业执照制度下,建立终身的职业发展体系;(4)通过软件专业协会和组织,规范软件职业道德。,软件开发人员应当坚持以下八项原则:(1)公众:软件开发人员应当以公众利益为目标(2)用户和雇主:在保持与公众利益一致的原则下,软件开发人员应注意满足用户和雇主的最高利益;(3)产品:软件开发人员应当努力保证软件开发的高质量、低成本以及合理的进度,,(

8、4)判断:对受他们评估的软件或文档,保持职业的客观性。(5)管理:软件开发人员必须保证对从事或建议的项目做出现实和定量的估算,包括成本、进度、人员、质量和输出,并对估算的不确定性做出评估;(6)专业:在与公众利益一致的原则下,软件开发人员应当推进其专业的完整性和声誉,,(7)同行:软件开发人员对同行应持平等、互助和支持的态度。(8)自我:软件开发人员应当参与终生职业实践的学习。,12.2.2.2 项目经理项目经理应该具有以下四种关键能力:(1)解决问题的能力(2)管理能力(3)激励能力(4)影响和队伍建设的能力,12.2.2.3 用户常见的问题有:(1)不积极,不配合(2)求快求全(3)变化,

9、对来自用户的这种变化要正确对待:要向用户解释软件工程的规律,并在可能的条件下部分或有条件地满足用户的合理要求。,12.2.3 软件项目组的结构 软件开发小组的规模应该比较小,以28名成员为宜。小组承担工程项目的一部分任务,在一定程度上独立自主地完成各自的任务。,12.2.4 高效的项目开发组 项目开发小组的组建,应该着眼于以下几个方面:(1)项目组的成员 精干人才 工作匹配 人尽其才 团队平衡 排除不称职的人员,(2)项目组结构(3)人员激励,高效的开发小组的建设原则是凝聚力、目标和反馈。(1)凝聚力(2)目标(3)反馈,12.3 成本估算,软件成本包括软件开发的成本和软件维护的成本两个部分。

10、,12.3.1 估算策略 从成本估算的策略上,人们常用的方法有以下四种:(1)参照已经完成的类似项目,估算待开发项目的工作量和成本;(2)将大的项目分解成若干小的子项目,在估算出每个子项目的工作量和成本之后,再估算整个项目的工作量和成本;,(3)将软件项目按软件生存周期分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,然后再把这些工作量和成本汇总,估算出整个项目的工作量和成本;(4)根据实验或历史数据给出软件项目工作量或成本的经验估算公式。,从项目分解的角度看,基本估算方法分为如下两类。(1)自顶向下的估算方法。(2)自底向上的估算方法。,12.3.2 常用的成本估算的模式12.3.2

11、.1 专家估算模式 由一些专家依靠从前的经验,把将要开发的软件与过去开发过的软件进行类比,借以估算出新软件的开发所需要的工作量和成本。故称为“专家估算模式”。,常用的专家估算模式主要有以下几类:(1)代码行技术 首先将功能反复分解,直到能可靠地估算出实现功能所需的源代码行数为止。对各子功能,根据经验数据或实践经验,给出极好、正常和较差三种情况下的源代码估计值。为了使程序规模的估计值更接近实际值,可以请多名有经验的软件工程师分别估计。,Le为源代码行数的期望值,(12.1),然后根据经验数据,确定各子功能的代码行成本。进而计算各子功能的工作量和成本,并计算任务的总工作量、总成本和开发时间。在运用

12、代码行技术进行估算的过程中应着重考虑程序开发类型:使用的程序设计语言。处理的方式(批处理,实时处理等)。程序的难易程度。技术人员的水平。开发范围(从需求分析到测试,或者从程序设计到测试)。,(2)任务分解技术 首先把软件开发项目分解为若干个相对独立的任务,根据每个独立任务的类和对象的规模分别估算每个单独开发任务的成本,最后累加起来得出软件开发项目的总成本。,12.3.2.2 经验公式模式 经验成本估算模型是根据以前完成项目的实际数据导出的,主要用于新软件项目的计划阶段。,(1)Putnam模型,(12.3),其中L是源代码行数;K是开发需用的人力,以人年为单位(1个人年表示1个人工作1年);t

13、d是开发需用的时间(以年为单位);Ck是技术水平常数,它的典型值如下:对于较差的开发环境Ck2500;对于较好的开发环境Ck10000;对于优越的开发环境Ck12500。,(2)经验估算模型:COCOMO模型,(12.4),其中MM是开发工作量(以人月为单位,12人月为1人年),C1是模型系数,KLOC是估计的代码行数(以千行为单位),是模型指数,fi(i115)是成本因素。,成本因素划分成产品因素、计算机因素、人员因素和项目因素等等。产品因素 计算机因素 人员因素 项目因素,软件开发项目可以分成三种模式:组织式嵌入式半独立式,12.4 进度计划,12.4.1 软件开发项目的并行性当项目规模的

14、较大时,就需要多人组成开发小组共同参加一个项目的开发。于是,项目的开发工作就出现了并行情形。图12.2显示了一个典型的由多人参加的软件工程项目的任务图。,在图12.2中可以看到,软件开发进程中设置了许多里程碑。每个里程碑都为管理人员提供了指示项目进度的可靠依据,当一个任务成功地通过评审并产生了文档之后,一个里程碑就完成了。,进度计划表必须决定任务之间的从属关系,注意构成关键路径的任务。,12.4.2 阶段工作量的分配 一般花费在可行性研究的工作量约占总工作量的2%3%,需求分析可能占项目工作量的10%25%。用于软件设计的工作量在20%25%之间,编码工作用总工作量的15%20%就可以完成。测

15、试和随后的调试工作约占软件工作量的30%40%。,表12.1 典型环境下各个开发阶段需要使用的工作量,12.4.3 项目开发的进度安排图 用图来表示进度计划和实际进展情况时,图中必须明确标明这些信息:各个任务计划的开始时间和完成时间;各个任务完成的标志(即文档编写和评审);各个任务与参与工作的人数,各个任务与工作量之间的衔接情况;完成各个任务所需的物理资源和数据资源。,(1)甘特图 甘特图是用水平线段表示任务的工作阶段。线段的起点和终点分别对应着任务的开始时间和完成时间;线段的长度表示完成任务所需的时间。图12.3的甘特图表示一个1年完成的软件项目,各个阶段的时间安排。,(2)工程网络图 用具

16、有时间标志的网状图来表示各个任务的分解情况,以及各个子任务之间在进度上的逻辑依赖关系,即工程网络图,见图12.4。,组成关键路径的任务(关键任务)的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束。必须密切注视关键任务的进展情况。,12.5 质量管理,在设计阶段花1小时进行质量保障工作,可以为今后节省310小时的修补错误时间;如果需求分析中的失误遗留到了构建或者维护阶段,那么消除该失误所花的时间,比在需求分析阶段消除它就多50200倍。,错误发现得越早,花费成本越少。,为了保证所开发的软件的质量,在软件开发的每个阶段都应坚持两个重要做法:(1)每个阶段都必须完成规定的文档。(2)每个阶段结束前都要对所完成的文档、程序进行评审,以便尽早发现问题,改正错误。,12.5.1 软件质量 典型的软件质量定义是:软件产品满足规定的和隐藏的与需求能力有关的全部特征和特性.,包括:软件产品质量满足用户要求的程度;软件各种属性的组合程度;用户对软件产品的综合反映程度;软件在使用过程中满足用户反映要求的程度。,McCall等人给出了11个软件质量要素,共分为三类。它们之间关系如图12.5所示。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号