




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章 管理技术,12.1 项目管理 12.2 人员组织 12.3 成本估算 12.4 进度计划 12.5 质量管理,12.1 项目管理,12.1.1 什么是项目 人们通常把一次性的、不重复的、有开始和结束时间限制的一类任务称为项目,它和另一类持续不断一直进行的、重复的、周期性的工作是不同的,项目是一系列活动的集合。这些活动被有机地组合在一起,完成一系列的任务,从而实现一个完整的目标。项目具有以下显著特点:,(1) 项目从本质上看是临时的任务,而不是一直进行的某个过程。项目在结束时一般会有成果。,(2) 项目通常有非常明确的、可以判别的起点和终点。也就是说,项目是有严格的时间要求的,它必须在一定的时间内完成。,(3) 项目一般是由用户提出,由项目经理充实内容,然后组成项目小组完成项目。但有时也有例外。,(4) 有些项目是“实验性的”,比如进行某项开发以满足某行业一种需要或为了某个战略目标,这种项目不能保证会有结果,因为它属于开创性的工作。,(5) 项目的目的是为了产生前所未有的新东西。因此,项目不能重复前人成果,必须进行发明创造。,(6)所有的项目在时间、成本和质量方面都受到严格的要求和约束。所有的项目必须在一定的时间内、有限的资源下高质量地完成。,12.1.2 项目管理 项目管理是制定项目计划,然后组织执行计划,安排人力、物力资源,实现项目目标的过程。,项目管理通常具有以下基本特点: (1) 项目管理是一项复杂的工作。 (2) 项目管理具有创造性。 (3) 项目管理需要集权领导和建立专门的项目组织。 (4) 项目负责人(或项目经理)在项目管理中起着非常重要的作用。,12.1.3 项目管理的各个阶段 对于具体的软件项目,一般先采用传统的“分解”方法对项目进行分解。软件工程项目的分解是从横向和纵向(即空间和时间)两个方向进行的。横向分解就是把一个大系统分解为若干个小系统,小系统分解为子系统,子系统分解为模块,模块分解为过程。纵向分解就是生命期,把软件开发分为几个阶段,每个阶段有不同的任务、特点和方法。软件工程管理针对每一个阶段都有相应的管理策略。,对于大型和复杂的软件项目来说,项目的五个阶段为:启动阶段、计划阶段、实施阶段、控制阶段和收尾阶段。,(1) 启动阶段 用户提出开发指定的系统。经过可行性分析,编写项目实施计划。,(2) 计划阶段 创建项目范围文档和项目计划,前者详细描述项目范围,后者规定如何开展工作使项目得以完成。,(3) 实施阶段 实施阶段意味着项目正在进一步设计、编码、测试,小组成员正在创造项目需要的可交付产品。应该协调好实施阶段和控制阶段的关系,以确保项目小组成员满足任务、时间和预算要求。,(4) 控制阶段 在这一阶段,项目经理开始监督小组成员的工作,向项目开发人员汇报项目进展,将项目的进度、任务和预算控制在正常的范围内。,(5) 收尾阶段 这个阶段包含正式认可过程,项目负责人和用户批准和签署项目,交付产品。项目的收尾阶段标志着项目的正式结束。,软件项目管理的主要任务是: 制定项目实施计划; 对人员进行组织、分工; 按照计划的进度,以及成本管理、质量管理的要求,进行软件开发; 最终完成软件项目规定的各项任务。,12.1.4 软件项目管理的任务、目标,成本管理的主要任务是: 估算软件项目的成本,作为签订合同或项目立项的依据; 在软件开发过程中按计划管理经费的使用。,质量管理的主要任务是: 制定软件质量保证计划; 按照软件质量评价体系控制软件质量要素; 对阶段性的软件产品进行评审; 对最终产品进行验证和确认,确保软件产品的质量。,所谓项目成功是指软件达到以下几个主要的目标: 以较低的成本开发出软件; 软件具备所有要求的功能; 软件的性能较好; 开发的软件易于移植; 软件在使用中仅需较低的维护费用; 能按时完成开发工作,及时交付使用。,12.2 人员组织,12.2.1 项目参与者 (1) 高级管理者:所有涉及与项目开发小组以外的组织和个人的承诺需要由高级管理者确定。,(2) 项目技术管理者:项目经理全权负责产品的最终完成。,(3) 开发人员:负责开发一个产品或者应用软件所需的各类专门技术人员。,(4) 用户代表:负责说明待开发软件需求的人员。同时和项目管理者协调控制项目开发过程中的各类变更。,(5) 最终用户:在验收测试阶段,最终用户起着非常重要的作用。,软件开发组织应当根据实际情况建立本组织的岗位责任制度,划定岗位,明确职责,力争做到人定岗、岗定责。,12.2.2 人员素质,12.2.2.1 软件开发人员 应具备的条件: (1) 软件开发人员应经过初始入门职业教育或学历教育,并具有后续的技能发展潜力。 (2) 通过软件开发资格证书,确保开发人员达到最基本知识、技能的要求; (3) 在软件职业执照制度下,建立终身的职业发展体系; (4) 通过软件专业协会和组织,规范软件职业道德。,软件开发人员应当坚持以下八项原则: (1) 公众:软件开发人员应当以公众利益为目标 (2) 用户和雇主:在保持与公众利益一致的原则下,软件开发人员应注意满足用户和雇主的最高利益; (3) 产品:软件开发人员应当努力保证软件开发的高质量、低成本以及合理的进度,,(4) 判断:对受他们评估的软件或文档,保持职业的客观性。 (5) 管理:软件开发人员必须保证对从事或建议的项目做出现实和定量的估算,包括成本、进度、人员、质量和输出,并对估算的不确定性做出评估; (6) 专业:在与公众利益一致的原则下,软件开发人员应当推进其专业的完整性和声誉,,(7) 同行:软件开发人员对同行应持平等、互助和支持的态度。 (8) 自我:软件开发人员应当参与终生职业实践的学习。,12.2.2.2 项目经理 项目经理应该具有以下四种关键能力: (1) 解决问题的能力 (2) 管理能力 (3) 激励能力 (4) 影响和队伍建设的能力,12.2.2.3 用户 常见的问题有: (1) 不积极,不配合 (2) 求快求全 (3) 变化,对来自用户的这种变化要正确对待:要向用户解释软件工程的规律,并在可能的条件下部分或有条件地满足用户的合理要求。,12.2.3 软件项目组的结构 软件开发小组的规模应该比较小,以28名成员为宜。小组承担工程项目的一部分任务,在一定程度上独立自主地完成各自的任务。,12.2.4 高效的项目开发组 项目开发小组的组建,应该着眼于以下几个方面: (1) 项目组的成员 精干人才 工作匹配 人尽其才 团队平衡 排除不称职的人员,(2) 项目组结构 (3) 人员激励,高效的开发小组的建设原则是凝聚力、目标和反馈。 (1) 凝聚力 (2) 目标 (3) 反馈,12.3 成本估算,软件成本包括软件开发的成本和软件维护的成本两个部分。,12.3.1 估算策略 从成本估算的策略上,人们常用的方法有以下四种: (1) 参照已经完成的类似项目,估算待开发项目的工作量和成本; (2) 将大的项目分解成若干小的子项目,在估算出每个子项目的工作量和成本之后,再估算整个项目的工作量和成本;,(3) 将软件项目按软件生存周期分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,然后再把这些工作量和成本汇总,估算出整个项目的工作量和成本; (4) 根据实验或历史数据给出软件项目工作量或成本的经验估算公式。,从项目分解的角度看,基本估算方法分为如下两类。 (1) 自顶向下的估算方法。 (2) 自底向上的估算方法。,12.3.2 常用的成本估算的模式 12.3.2.1 专家估算模式 由一些专家依靠从前的经验,把将要开发的软件与过去开发过的软件进行类比,借以估算出新软件的开发所需要的工作量和成本。故称为“专家估算模式”。,常用的专家估算模式主要有以下几类: (1) 代码行技术 首先将功能反复分解,直到能可靠地估算出实现功能所需的源代码行数为止。对各子功能,根据经验数据或实践经验,给出极好、正常和较差三种情况下的源代码估计值。为了使程序规模的估计值更接近实际值,可以请多名有经验的软件工程师分别估计。,Le为源代码行数的期望值,(12.1),然后根据经验数据,确定各子功能的代码行成本。进而计算各子功能的工作量和成本,并计算任务的总工作量、总成本和开发时间。 在运用代码行技术进行估算的过程中应着重考虑程序开发类型: 使用的程序设计语言。 处理的方式(批处理,实时处理等)。 程序的难易程度。 技术人员的水平。 开发范围(从需求分析到测试,或者从程序设计到测试)。,(2) 任务分解技术 首先把软件开发项目分解为若干个相对独立的任务,根据每个独立任务的类和对象的规模分别估算每个单独开发任务的成本,最后累加起来得出软件开发项目的总成本。,12.3.2.2 经验公式模式 经验成本估算模型是根据以前完成项目的实际数据导出的,主要用于新软件项目的计划阶段。,(1) Putnam模型,(12.3),其中 L是源代码行数; K是开发需用的人力,以人年为单位(1个人年表示1个人工作1年); td是开发需用的时间(以年为单位); Ck是技术水平常数,它的典型值如下: 对于较差的开发环境Ck2500; 对于较好的开发环境Ck10000; 对于优越的开发环境Ck12500。,(2) 经验估算模型:COCOMO模型,(12.4),其中 MM是开发工作量(以人月为单位,12人月为1人年), C1是模型系数, KLOC是估计的代码行数(以千行为单位), 是模型指数, fi(i115)是成本因素。,成本因素划分成产品因素、计算机因素、人员因素和项目因素等等。 产品因素 计算机因素 人员因素 项目因素,软件开发项目可以分成三种模式: 组织式 嵌入式 半独立式,12.4 进度计划,12.4.1 软件开发项目的并行性 当项目规模的较大时,就需要多人组成开发小组共同参加一个项目的开发。于是,项目的开发工作就出现了并行情形。图12.2显示了一个典型的由多人参加的软件工程项目的任务图。,在图12.2中可以看到,软件开发进程中设置了许多里程碑。每个里程碑都为管理人员提供了指示项目进度的可靠依据,当一个任务成功地通过评审并产生了文档之后,一个里程碑就完成了。,进度计划表必须决定任务之间的从属关系, 注意构成关键路径的任务。,12.4.2 阶段工作量的分配 一般花费在可行性研究的工作量约占总工作量的2%3%,需求分析可能占项目工作量的10%25%。用于软件设计的工作量在20%25%之间,编码工作用总工作量的15%20%就可以完成。测试和随后的调试工作约占软件工作量的30%40%。,表12.1 典型环境下各个开发阶段需要使用的工作量,12.4.3 项目开发的进度安排图 用图来表示进度计划和实际进展情况时,图中必须明确标明这些信息: 各个任务计划的开始时间和完成时间; 各个任务完成的标志(即文档编写和评审); 各个任务与参与工作的人数,各个任务与工作量之间的衔接情况; 完成各个任务所需的物理资源和数据资源。,(1) 甘特图 甘特图是用水平线段表示任务的工作阶段。线段的起点和终点分别对应着任务的开始时间和完成时间;线段的长度表示完成任务所需的时间。图12.3的甘特图表示一个1年完成的软件项目,各个阶段的时间安排。,(2) 工程网络图 用具有时间标志的网状图来表示各个任务的分解情况,以及各个子任务之间在进度上的逻辑依赖关系,即工程网络图,见图12.4。,组成关键路径的任务(关键任务)的实际持续时间不能超过估计的持续时间,否则工程就不能准时结束。必须密切注视关键任务的进展情况。,12.5 质量管理,在设计阶段花1小时进行质量保障工作,可以为今后节省310小时的修补错误时间;如果需求分析中的失误遗留到了构建或者维护阶段,那么消除该失误所花的时间,比在需求分析阶段消除它就多50200倍。,错误发现得越早,花费成本越少。,为了保证所开发的软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 原油裂化工艺分析报告
- 基于2025年的城市地下综合管廊建设资金申请策略研究报告
- 文旅融合推动下乡村文化旅游产业创新发展研究报告
- 2025年职业技能培训助力乡村振兴策略与实践分析报告
- 中医考研试题文库及答案
- 2025年工业互联网平台网络安全隔离技术在网络安全产业发展战略考核中的应用报告
- 中医理疗测试题及答案
- 2025年乡村旅游与文化旅游产业融合发展案例剖析
- 2025年事业单位工勤技能-安徽-安徽工程测量工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽印刷工三级(高级工)历年参考题库含答案解析
- 住院患者用药教育制度
- 2024届八省八校T8联考高三第二次学业质量评价 英语试题
- 房地产公司工程管理质量保证体系已改样本
- T-SZHW 001-2024 深圳市城市管家服务管理规范(试行)
- 五年级上册小数乘除口算练习400题及答案
- 一滴血检测仪培训教程(完全版)课件
- 2024年中信信托有限责任公司招聘笔试参考题库含答案解析
- 2023汽车维修合同制度
- 45种硅钢片磁化容量及损耗参数
- 病原微生物实验活动风险评估表
- 安全防范系统验收规则
评论
0/150
提交评论