1、工程项目管理软件,第十三章 软件项目管理,教学目标,理解:各种相关概念的定义;软件规模、工作量、开发时间和进度的估算方法和模型;影响软件质量的主要因素及定义; 软件质量保证的基本措施; 软件配置管理过程;CMM 的等级。 了解:典型的人员组织方式。,重点难点,重点:软件质量的定义和主要因素;软件配置管理过程。 难点:对 CMM 等级的深刻理解;各种估算方法和模型。,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,前言,什么是软件项目管理 为了使软件项目能够按照预定的成本、进度、质量顺利完成,通过合理地组织和利用一切可以利用的资源
2、,按照计划的成本和进度,完成计划的目标。 它包括对成本、人员、进度、质量、风险等进行分析和管理的活动。 软件项目管理先于任何技术活动之前开始,并且贯穿于软件的整个生命周期之中。,前言,项目管理过程 启动软件项目。确定项目的目标和范围。 度量。帮助开发人员了解开发技术、过程和产品。 估算。对软件开发中的人力、项目持续时间、成本作出估算。 规模估算:代码行技术、功能点技术 工作量估算:静态单变量模型、动态多变量模型、COCOMO模型 开发时间估算 进度估算:Gantt图、工程网络,前言,项目管理过程 风险分析。由风险识别、风险估计、风险评价和风险驾驭四个活动组成。 进度安排。包括识别项目任务,建立
3、任务间的联系,估算各任务的工作量,分配人力和其他资源,制定进度时序。 追踪和控制。项目管理人员负责追踪在进度安排中标明的每一个任务,还可以对资源重新定向,对任务重新安排或者可以修改交付日期以调整已经暴露的问题。,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,估算软件规模,代码行技术 计算方法 由多名有经验的软件工程师分别估计程序的最小规模(a)、最大规模(b)和最可能的规模 (m); 算出这3种规模的平均值; 再用计算程序规模的估计值P308 单位:代码行数(LOC)或千行代码数(KLOC),估算软件规模,功能点技术 依据对软
4、件信息域特性和软件复杂性的评估结果,估算软件规模。 软件信息域特性包括: 输入项数(Inp) 输出项数(Out) 查询数(Inq) 主文件数(Maf) 外部接口数(Inf),目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,工作量估算,概述 工作量是软件规模(KLOC或FP)的函数; 单位:人月(pm)。 静态单变量模型 公式:E=A+B(ev) C 其中,A、B和C是由经验数据导出的常数;E是以人月为单位的工作量;ev是估算变量(KLOC或FP),工作量估算,动态多变量模型 公式:E=(LOCB 0.333 /P) 3 (1/t
5、) 4 其中: E是工作量(单位:人月或人年); t是项目持续时间(单位:月或年); B是特殊技术因子,较小程序(KLOC=515),B=0.16;对于超过70 KLOC的程序,B=0.39; P是生产率参数,可以从历史数据导出。如:实时嵌入式软件,P的典型值为2000;电信系统和系统软件,P=10000;商业应用系统来说,P=28000。,工作量估算,COCOMO2模型P309,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,进度计划,概述 包括估算开发时间和估算工程进度。 项目管理者的目标是定义全部项目任务,识别出关键任务,
6、跟踪关键任务的进展状况,以保证能及时发现拖延进度的情况。,进度计划,估计开发时间P312 公式 Gannt图 工程网络 估算工程进度 关键路径 机动时间,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,人员组织,民主制程序组 主程序员组 现代程序组,人员组织,带着问题学习P320 问题1:软件项目组有哪些组织方式? 问题2:民主制程序员组有什么特点?对人数、规模有什么要求?为什么会有这种要求?这种组织形式有什么优点?适用在什么情况? 问题3:主程序员组的组织形式是怎样的?有什么特点?有什么优点和缺点?适用在什么情况? 问题4:现
7、代程序员组结构如何?与主程序员组相比,有什么改进?为什么要做这种改进?有什么优点?应用时要注意些什么问题?,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,质量保证,软件质量 概念 是软件与明确声明的功能和性能需求、文档中明确描述的开发标准、以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。 IEEE:与软件产品满足规定和隐含需求的能力有关的特征或特征的全体 M.J.Fisher:所有描述计算机软件优秀程度的特征的组合。,质量保证,软件质量 软件质量强调以下三个要点 软件需求是“质量”度量的基础,不符合需求就是质量不高
8、。 软件开发中,应遵照规范化标准定义的开发准则,否则,极有可能导致质量不高。 重视隐含需求,如软件的可维护性等,否则,软件的质量也难以保证。,质量保证,软件质量 软件质量的若干侧面,质量保证,软件质量 软件质量模型 通常用“软件质量模型”来描述影响软件质量的特性。 比较有影响力的软件质量模型有 McCall质量模型P325 ISO的质量模型,质量保证,软件质量 软件质量模型 McCall质量模型 图、表P325,质量保证,软件质量 软件质量模型 ISO的质量模型 按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成 高层:软件质量需求评价准则(SQRC
9、) 中层:软件质量设计评价准则(SQDC) 低层:软件质量度量评价准则(SQMC) 高层和中层建立国际标准,低层可由各使用单位视实际情况制定 ISO建议的软件质量度量模型如下图,质量保证,软件质量 软件质量模型 我国国家标准规定的质量特性 我国1996年定义:GB/T16260-1996 软件产品评价质量特性及其使用指南。,质量保证,软件质量保证措施 软件质量保证是为了保证软件产品和服务充分满足消费者要求的质量而进行的所有有计划、有组织的活动,从而有效地控制所有影响软件质量的因素。 参加软件质量保证工作的人员可分为 软件工程师 SQA小组 软件质量保证措施P326,目录,前言 估算软件规模 工
10、作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,软件配置管理,概述 简称SCM,是在软件生命周期内管理“变更”的一组活动。 这组活动使得因为“变更”而引起的混乱减到最小,最有效地提高生产率。 目标 标识变更 控制变更 确保适当地实现变更 向需要知道这类信息的人报告,软件配置管理,几个概念 软件配置项 软件过程的输出信息。包括3类 计算机程序(源代码和可执行程序) 描述计算机程序的文档(供技术人员或用户使 用) 数据(程序内包含的或在程序外的) 基线 IEEE的定义 已经通过了正式复审的规格说明或中间产品,它可以作为进一步开发的基础,并且只有通过正式的变化控
11、制过程才能改变它。,软件配置管理,软件配置管理五项任务P329 标示 版本控制 变化控制 配置审计 报告,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,能力成熟度模型,软件机构的成熟性,能力成熟度模型,CMM简介 由美国卡内基梅隆大学的软件工程研究所提出。是评估软件开发组织有无能力来承接相应的软件项目的标准。 基本思想:软件发展的主要问题是管理问题,而不是技术问题。 目的:帮助软件企业进行对软件工程过程的管理和改进,增强开发与制造能力,从而能按时地、不超预算地制造出高质量的软件。,能力成熟度模型,CMM能力成熟度5个等级 5个
12、成熟度等级定义了一个有序的尺度,用来测量一个组织的软件过程成熟和评价其软件过程能力,这些等级还能帮助组织自己对其改进工作排出优先次序。成熟度等级是已得到确切定义的,也是在向成熟软件组织前进途中的平台。,能力成熟度模型,CMM在我国 第一家CMM认证企业 2001年,中国东软股份有限公司通过CMM3认证 2003年,通过CMM5认证 第一家通过CMM5认证的企业 2002年,摩托罗拉(中国)软件中心 2004年,通过CMM5有6家;有级别评估的近200家,能力成熟度模型,我国通过CMM5的一些企业 中国东软股份有限公司 用友软件 大连华信 埃森哲中国信息技术中心 中兴软件技术(南昌)有限公司 万达信息股份有限公司 惠普中国软件研发中心 华为技术有限公司上海研究所 博朗软件开发(上海)有限公司 宝信软件股份有限公司,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,目录,前言 估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型 总结 课后作业,课后作业,教材课后习题,本章结束,Thank you!,