软件工程管理技术

上传人:ji****72 文档编号:48560428 上传时间:2018-07-17 格式:PPT 页数:75 大小:332KB
返回 下载 相关 举报
软件工程管理技术_第1页
第1页 / 共75页
软件工程管理技术_第2页
第2页 / 共75页
软件工程管理技术_第3页
第3页 / 共75页
软件工程管理技术_第4页
第4页 / 共75页
软件工程管理技术_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《软件工程管理技术》由会员分享,可在线阅读,更多相关《软件工程管理技术(75页珍藏版)》请在金锄头文库上搜索。

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

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

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

4、件工程管理针对每 一个阶段都有相应的管理策略。l 对于大型和复杂的软件项目来说,项 目的五个阶段为:启动阶段、计划阶段、 实施阶段、控制阶段和收尾阶段。l(1) 启动阶段l用户提出开发指定的系统。经过可行性分 析,编写项目实施计划。 l(2) 计划阶段l创建项目范围文档和项目计划,前者详细 描述项目范围,后者规定如何开展工作使 项目得以完成。 l(3) 实施阶段l实施阶段意味着项目正在进一步设计、编 码、测试,小组成员正在创造项目需要的 可交付产品。应该协调好实施阶段和控制 阶段的关系,以确保项目小组成员满足任 务、时间和预算要求。l(4) 控制阶段l在这一阶段,项目经理开始监督小组成员 的工

5、作,向项目开发人员汇报项目进展, 将项目的进度、任务和预算控制在正常的 范围内。 l(5) 收尾阶段l这个阶段包含正式认可过程,项目负责人 和用户批准和签署项目,交付产品。项目 的收尾阶段标志着项目的正式结束。 l软件项目管理的主要任务是:l制定项目实施计划;l对人员进行组织、分工;l按照计划的进度,以及成本管理、质量管 理的要求,进行软件开发;l最终完成软件项目规定的各项任务。12.1.4 软件项目管理的任务、目标l成本管理的主要任务是:l估算软件项目的成本,作为签订合同或项 目立项的依据;l在软件开发过程中按计划管理经费的使用 。l质量管理的主要任务是:l制定软件质量保证计划;l按照软件质

6、量评价体系控制软件质量要素 ;l对阶段性的软件产品进行评审;l对最终产品进行验证和确认,确保软件产 品的质量。l 所谓项目成功是指软件达到以下几个 主要的目标:l以较低的成本开发出软件;l软件具备所有要求的功能;l软件的性能较好;l开发的软件易于移植;l软件在使用中仅需较低的维护费用;l能按时完成开发工作,及时交付使用。12.2 人员组织l12.2.1 项目参与者l(1) 高级管理者:所有涉及与项目开发小 组以外的组织和个人的承诺需要由高级管 理者确定。l(2) 项目技术管理者:项目经理全权负责产 品的最终完成。l(3) 开发人员:负责开发一个产品或者应 用软件所需的各类专门技术人员。 l(4

7、) 用户代表:负责说明待开发软件需求 的人员。同时和项目管理者协调控制项目 开发过程中的各类变更。l(5) 最终用户:在验收测试阶段,最终用 户起着非常重要的作用。l 软件开发组织应当根据实际情况建立 本组织的岗位责任制度,划定岗位,明确 职责,力争做到人定岗、岗定责。l12.2.2 人员素质l12.2.2.1 软件开发人员l应具备的条件:l(1) 软件开发人员应经过初始入门职业教育或学 历教育,并具有后续的技能发展潜力。l(2) 通过软件开发资格证书,确保开发人员达到 最基本知识、技能的要求;l(3) 在软件职业执照制度下,建立终身的职业发 展体系;l(4) 通过软件专业协会和组织,规范软件

8、职业道 德。l软件开发人员应当坚持以下八项原则:l(1) 公众:软件开发人员应当以公众利益 为目标 l(2) 用户和雇主:在保持与公众利益一致 的原则下,软件开发人员应注意满足用户 和雇主的最高利益; l(3) 产品:软件开发人员应当努力保证软 件开发的高质量、低成本以及合理的进度 , l(4) 判断:对受他们评估的软件或文档, 保持职业的客观性。 l(5) 管理:软件开发人员必须保证对从事 或建议的项目做出现实和定量的估算,包 括成本、进度、人员、质量和输出,并对 估算的不确定性做出评估;l(6) 专业:在与公众利益一致的原则下, 软件开发人员应当推进其专业的完整性和 声誉, l(7) 同行

9、:软件开发人员对同行应持平等 、互助和支持的态度。 l(8) 自我:软件开发人员应当参与终生职 业实践的学习。l12.2.2.2 项目经理l项目经理应该具有以下四种关键能力:l(1) 解决问题的能力 l(2) 管理能力 l(3) 激励能力 l(4) 影响和队伍建设的能力 l12.2.2.3 用户l常见的问题有:l(1) 不积极,不配合 l(2) 求快求全 l(3) 变化l 对来自用户的这种变化要正确对待 :要向用户解释软件工程的规律,并在可 能的条件下部分或有条件地满足用户的合 理要求。 l12.2.3 软件项目组的结构l 软件开发小组的规模应该比较小,以 28名成员为宜。小组承担工程项目的一

10、 部分任务,在一定程度上独立自主地完成 各自的任务。 l12.2.4 高效的项目开发组l 项目开发小组的组建,应该着眼于以下几 个方面:l(1) 项目组的成员 l 精干人才 l 工作匹配 l 人尽其才 l 团队平衡 l 排除不称职的人员 l(2) 项目组结构 l(3) 人员激励 l 高效的开发小组的建设原则是凝聚力 、目标和反馈。l(1) 凝聚力 l(2) 目标 l(3) 反馈 12.3 成本估算l 软件成本包括软件开发的成本和软件 维护的成本两个部分。 l 12.3.1 估算策略l 从成本估算的策略上,人们常用的方 法有以下四种:l(1) 参照已经完成的类似项目,估算待开 发项目的工作量和成

11、本;l(2) 将大的项目分解成若干小的子项目, 在估算出每个子项目的工作量和成本之后 ,再估算整个项目的工作量和成本;l(3) 将软件项目按软件生存周期分解,分 别估算出软件项目在软件开发各个阶段的 工作量和成本,然后再把这些工作量和成 本汇总,估算出整个项目的工作量和成本 ;l(4) 根据实验或历史数据给出软件项目工 作量或成本的经验估算公式。l 从项目分解的角度看,基本估算方法 分为如下两类。l(1) 自顶向下的估算方法。 l (2) 自底向上的估算方法。 l12.3.2 常用的成本估算的模式l12.3.2.1 专家估算模式l 由一些专家依靠从前的经验,把将要 开发的软件与过去开发过的软件

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

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

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

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

16、。用于软件设计的 工作量在20%25%之间,编码工作用总 工作量的15%20%就可以完成。测试和 随后的调试工作约占软件工作量的30% 40%。 表12.1 典型环境下各个开发阶段需要使用的工作量任 务工作量可行性研究2%3%需求分析10%25%设计20%25%编码15%20%测试30%40%总计100l12.4.3 项目开发的进度安排图l 用图来表示进度计划和实际进展情况时, 图中必须明确标明这些信息:l各个任务计划的开始时间和完成时间;l各个任务完成的标志(即文档编写和评审);l各个任务与参与工作的人数,各个任务与工作 量之间的衔接情况;l完成各个任务所需的物理资源和数据资源。l(1) 甘特图l

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

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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