软件工程-7-项目管理2012

上传人:ji****72 文档编号:53523223 上传时间:2018-09-02 格式:PPT 页数:60 大小:2.10MB
返回 下载 相关 举报
软件工程-7-项目管理2012_第1页
第1页 / 共60页
软件工程-7-项目管理2012_第2页
第2页 / 共60页
软件工程-7-项目管理2012_第3页
第3页 / 共60页
软件工程-7-项目管理2012_第4页
第4页 / 共60页
软件工程-7-项目管理2012_第5页
第5页 / 共60页
点击查看更多>>
资源描述

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

1、软件工程,第七章 软件项目管理,场景互动,以一个拥有汽车装配流水线的汽车生产企业为例,请分析一下在汽车生产的过程中,哪些属于汽车生产流水线上的任务,哪些属于生产管理方面的任务?,生产任务 组装小件 组装内部发动机组 装座椅 装外壳 验收,管理任务 每天必须生产45个工件 共需要80名工人 有工人请假 新进机器不会用 缺少配件 机器坏了 寻找机器使用手册,软件生产 需求分析 系统设计 编码 测试 软件维护,软件管理任务 生产期限 人员组成,技能要求 人员变动 新技术不会用 合作伙伴发生变动 寻找对应版本的技术资料 代码走查 阶段评审,一、软件项目管理的任务,软件项目管理的任务 制定项目计划和工程

2、进度安排 监督和检查项目实施过程 保证工程满足要求的质量标准 分析确定并排除风险 在规定的期限和预算成本内完成项目,进度,质量,风险,成本,什么是软件项目管理 为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。 软件项目管理的对象是软件工程项目,它所涉及的范围覆盖了整个软件工程过程。,二、 项目计划,项目计划 是一个软件项目进入系统实施的启动阶段 项目计划是一个反复的过程,只有当项目完成时计划才告一段落。,检查点 (Check Point) 在规定的时间间隔内对项目进行的检查与复审工作 频度不能太高或太低,一般一周一次 目的 比较实际

3、进展与计划进度的差异,并对项目进行调整 如:周报、周例会 学生例:每周的班会、测验、月考等,1.常用概念,项目的里程碑(milestone) 一个项目里程碑就是一个软件过程活动的终结。在每个里程碑都应该有一个正式的可以提交给管理层的输出结果。 里程碑应代表该项目的一个特定的逻辑意义上的阶段的终结。 里程碑的两个必要特征: 与软件开发进展相关联; 在完成时必须非常明显。,基线 基线其实是一些重要的里程碑(产物) 交付产品通过正式评审后才能成为基线 基线一旦建立后,任何更改都要受到控制(基线之前的更改可以没有严格控制) 学生例:小考、中考、高考(成绩经主管部门评审后,变更受控),重要的检查点是里程

4、碑,重要的需要客户确认的里程碑,就是基线。在我们实际的项目中,周例会是检查点的表现形式,高层的阶段汇报会是基线的表现形式,2.项目进度,项目进度 管理人员必须估算完成各项活动所需要的时间和资源,并按照一定的顺序把他们紧密组织起来。 项目进度安排通常是将复杂的整体项目分解成许多可以准确描述、度量、可独立操作的相对简单的任务,然后安排这些任务的执行顺序,确定每个任务的完成期限、开始时间和结束时间。,用分阶段生命周期计划严格管理,需要考虑的主要问题 生存周期各个阶段工作量的划分 工程进展如何度量 项目的关键路径 各个阶段任务完成标志 如何自然过渡到下一阶段的任务等。 项目可以支配的人力及资源,2.1

5、 工作分解,工作分解的原因 可以根据细分的工作包之间的逻辑关系来实施项目 让项目组各个成员明确自己的职责,减少繁琐的协调 每个组员可以清晰地理解任务的性质和各自的目标 准确把握项目所需要的技术、人力、资金、风险,为项目计划提供基线分解的方法 自上而下的分解 工作任务,即工作包,是项目中最小的可控制单元,2.1 工作分解,工作分解和进度管理 正常情况,各活动应至少持续1周; 对所有活动安排一个最高的时间限制(810周左右),如一项活动持续时间超过限制,就应该再次细分; 估算进度时,管理者不能想当然认为项目的每个阶段都不会出问题; 除时间外,还必须估算完成每项任务所需的资源:人力资源和其他可能的资

6、源。,项目,可交付的成果,可交付的子成果,最低层的可交付子成果,工作任务,工作分解结构的一个例子,2.2 进度管理工具,进度管理工具 项目进度通常用一系列的图表表示,通过这些图表可以了解任务分解、活动依赖关系和人员分配情况。 常用的项目进度表示法 甘特图(Gantt) 活动网络图(PERT) 常用软件管理工具软件 MS-Project,甘特图 特点 形象地描绘了任务的分解,及每个作业的开始和结束时间,优点是直观简明、容易掌握和绘制 线段的水平线表示完成任务所需的时间 优点 表明了各任务的计划进度和当前进度,能动态反应项目的进展情况。 缺点 难以反映多个任务之间的复杂逻辑关系。,甘特图实例,任务

7、列表,进度条,日期,PERT图 对于某事件,箭头进入表示此作业结束,箭头离开表示此作业的开始; 实线箭头表示具体存在的作业; 虚线箭头表示虚拟作业,只为了表示作业之间的依赖关系。,练习,假设必须先完成所有优先的任务,然后开始随后的任务,并对任务进行归类。,三、质量管理,背景 质量是产品的生命线,不论任何产品,质量都是极端重要的。 软件产品开发周期长,需耗费巨大的人力、物力,更必须特别注意保证产品质量。,软件质量定义 软件与明确的和隐含定义的需求相一致的程度 与明确描述的功能和性能需求相一致的程度 与文档中明确描述的开发标准相一致的程度 与任何专业开发的软件产品都应该具有的隐含特征相一致的程度,

8、事后检验 事后检验的方式是在产品生产的最后环节进行质量检查,合格的产品准许出厂,不合格的产品作为次品处理。 全面质量管理 运用质量管理的科学理论、技术、方法,建立起贯穿于产品质量形成全过程的质量保证体系,使企业全体职工树立质量观点,提高工作质量,经济地生产用户满意的产品。 它要求从影响软件产品质量的各个方面加强对软件质量的全面管理。 权威认证 认证已经成为一个组织资质的证明,也成为买方选择合格供应方的首要考虑。 例如,CMM认证和ISO9000认证,3.1 软件质量管理种类,坚持进行阶段评审,软件质量与软件的内部特性及其组合有关。要度量软件质量,就应根据这些内部特性(即软件属性)建立起软件度量

9、模型,进而构建软件质量度量体系。,3.2 软件质量模型,可理解性 可维护性 灵活性 可测试性,可移植性 可重用性 互运行性 轻便性,正确性、健壮性、效率、完整性、可用性、风险,从管理角度对软件质量进行度量的McCall软件质量模型 上述模型反映了用户在使用软件产品时的三种不同的倾向:产品运行、产品修改和产品转移。,(1)软件质量模型,产品运行时的属性 正确性 系统满足规格说明和用户目标的程度,在预定环境下能正确完成预期功能的程度。 健壮性 在硬件发生故障、输入数据无效、操作错误等意外环境下,系统能做出适当响应的程度。 效率 为了完成预定功能,系统需要的计算资源的多少。 完整性 对未经授权的软件

10、使用请求或数据访问的企图,系统能够控制(或禁止)的程度。 可用性 系统在完成预定功能时令用户满意的程度。 风险 按预定的成本和进度开发系统,并且使得用户满意的概率,(2)软件质量的属性,产品修改时的质量属性 可理解性 理解和使用软件的容易程度。 可维护性 诊断和改正在运行现场发现的错误所需要的工作量大小。 适应性 修改或改进正在运行的系统需要的工作量大小 可测试性 软件容易测试的程度。,产品转移时的质量属性 可移植性 把软件从一软硬件环境移植到另一配置环境时,需要的工作量大小。 可重用性 在其他应用中该软件可以被使用的程度或范围。 互运行性 把该软件系统和另一软件系统结合起来所需要的工作量大小

11、。 轻便性 允许软件能够从一台计算机很容易地传输到另一台需要运行的计算机上的能力。,四、组织管理,人员是软件机构中最重要的资产,他们代表着智力资本。 合理地调配人员是成功完成软件项目的切实保证。 因此软件项目管理的关键是人员管理。项目管理者必须利用其团队成员,用可能最有效的方式解决技术和非技术上的问题。 软件机构要尊重员工,管理者要激励员工。 软件项目成功的关键是能够将高素质的软件开发人员合理地组织起来,使他们有效地分工协作,共同完成开发工作。,项目组的组织原则 软件开发小组的规模不宜太大,人数不能太多,一般3-5人左右为宜。 切忌在开发过程中增加人员,这将使人员之间的联系增多,造成通信成本的

12、增加而导致效率降低。,开发小组的人员应该少而精,项目组的组织方式 民主制程序员组 主程序员组 现代程序员组,民主程序员组 小组成员完全平等,享有充分民主,通过协商做出决策。 小组成员之间的通讯是平行的,如果小组有n个成员,则可能的通讯信道为 条。 民主制程序员组通常采用非正式的组织方式,虽然名义上有一个组长,但其与组内其它成员完成同样的任务。 由小组全体成员讨论协商决定应该完成的工作,并依据各成员能力和经验分配适当的任务。,n(n-1)/2,优点: 组员对发现程序错误持积极的态度,这种态度有助于更快地发现错误,从而导致高质量的代码; 组员享有充分民主,小组有高度凝聚力,组内学习气氛浓厚,有利于

13、攻克技术难关。 缺点 在组内多数成员技术水平不高或缺乏经验情况下采用该组织方式,将会因为没有明确的权威指导项目进展,小组成员间缺乏必要的协调,而导致项目失败。 应用 适合于研制周期长、难度大的项目。日本大多数软件开发公司都采用这种形式。,主程序员组 主程序员组使用经验丰富、技术好、能力强的程序员作为主程序员。同时,利用人和计算机在事务性工作方面给主程序员提供充分支持,而且保证所有通讯都通过一两个人进行。,后备程序员 后备程序员也应该技术熟练而且富于经验,他协助主程序员工作并且在必要时(主程序员生病、出差或跳槽)接替主程序员的工作。所以后备程序员必须和主程序一样优秀,一样深入了解项目。 主程序员

14、 主程序员既是成功的管理人员,又是经验丰富、技术好、能力强的高级程序员,负责体系结构设计和关键部分的详细设计,并且负责指导其他程序员完成详细设计和编码工作 编程秘书 编程秘书负责完成与项目有关的全部事务性工作,如,维护项目资料库和项目文档,编译、连接、执行源程序和测试用例。,虽然主程序员组有很多优点,但是,我们还应看到这种组织方式固有的不切实际的地方: 主程序员既是高级程序员又是优秀管理者,但现实中这种人才很难见到。 后备程序员更难找。人们希望后备程序员像主程序员一样优秀,但他们必须坐在“替补席”上,拿着较低的工资等待接替主程序员。 编程秘书也很难找。专业的软件技术人员一般都厌烦日常的事务性工

15、作。,现代程序员组 特点 将“主程序员组”中的主程序员的职则划为两个人来承担: 一个技术负责人,负责小组的技术活动 一个行政负责人,负责所有的非技术的决策活动,现代程序员组,大型项目的技术管理组织结构,现代程序员组,包含分散决策的组织方式,现代程序员组,优点 将管理和行政分开,有助于调动组员的积极性 行政组长和技术组长分工明确 避免了“主程序员组”中,全才主程序员难找的问题 缺点 有时行政组长和技术组长的管理权限界限不明,选择软件工程小组结构时应考虑的7个因素 待解决问题的困难程度 要开发程序的规模 小组成员在一起工作的时间 问题能够被模块化的程度 对待开发的系统的质量和可靠性的要求 交付日期

16、的严格程度 项目要求的社交(通信)程度,软件企业的组织架构,软件企业的职位概况,定义 “风险”是指对项目有利或不利的不确定因素 。 分类 按照风险的影响范围分类 项目风险:预算、进度、人力、资源、客户及需求等方面 技术风险:设计、实现、接口、验证和维护等方面 商业风险:无人真正需要的“优秀产品”,不符合商业策略的产品等,五、风险管理,风险管理的内容,1.风险管理的内容,风险评估 风险识别提出一个潜在破坏项目进度的风险列表。评价风险变成现实的可能性或概率。 风险分析评估每一个风险出现的可能性及其变成现实时所造成的后果,判定风险的级别。 风险优先级按风险影响大小排出一个风险优先级,这个风险列表将作为风险控制的基础。,评估过程 评估风险后果 建立风险表,风险控制 风险管理计划制定一个应对每个重要风险的方案,同时确保每一个单独的风险管理计划之间以及与整体项目计划之间相一致。 风险化解每个重要风险所对应计划的执行。 风险监控对解决风险的过程进行监控,还可以包括识别新的风险并将其反馈到正在进行的风险管理进程中。,

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

最新文档


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

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