第08讲软件项目管理基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISO 9000 主要用于质量保证体系,一般来 说可以应用于不同的商业和服务
ISO 9000进行质量保证的方法
使用ISO 9000 质量保证模型注册的所有公 司看起来都是由各个相互连接的过程组成的 网络
如果体系要符合ISO 9000,则必须使用这 些过程来声明标准中指定的区域
过程中的这些区域还应该编制成文档,并在 确定后按照指定的方式进行实践
在风险评估阶段将开始进行以下步骤 :
定义项目的风险指示级别 构建每个因子之间的关系,即风险、风
险发生的概率、风险的影响与每个指示 级别之间的关系 得到的一组断点将定义终止区域 对风险的组合方式的理解可能会影响指 示级别
管理和监视风险
软件项目进度安排
软件项目进度安排中包含两种方法
第一种方法,发布软件产品/程序的最后期限已 经设置好,公司必须在特定的时间范围内分配工 作量
这些区域包括组织结构、过程和处理,以及 实施质量策划、控制、保证和提高所需的资 源
ISO 9001 的要求
能力成熟度模型
小结
软件项目管理的定义与特点 软件度量 过程控制与质量保证
实验08
项目总结报告 这门课程的收获与建议(每个人
)放在项目报告最后部分。
技术风险涉及到技术、平台、环境的选择 以及有关可移植性、安全性、可靠性等问 题
商业风险涉及到关于投资回报和达到收支 平衡必需的时间的问题
风险预测
风险预测中主要包括四个活动
测量风险发生的概率 列出如果风险发生的话必须处理的一
组问题 对问题项目上的风险的影响做出估计 对已预测的风险的可信度进行评估
风险评估
人员与工作的关系
随着项目规模增加,要在给定的时间范围 内得到最终结果,需要加入更多的人员
如果项目进度拖后,增加程序员的人数当 然可以加快该过程
但是这对开发过程也有消极的影响,导致 进度的进一步落后
开发人员的增加也会导致系统内信息交流 渠道的增加
工作量分布
软件估算技术可以帮助确定完成软件开发过程所 需的人-月的数量
每个类的方法 继承的相关性 对象之间的耦合度 对象的内聚度 对象库有效性 因子分解的有效性 继承方法的重用度 平均的方法复杂度 应用程序的粒度
成本估算模型
以往类似项目、分解技术、经验模型 SLIM或软件生命周期管理模型(1978
年),最早的算法成本模型
适用于大型项目,也称宏估算模型
COCOMO或结构成本模型(1981年 )
客观的:它的定义无二义性并且是客观的 显示趋势:该度量可以显示趋势 过程的自然副产品:不是人工引入的,而
是该过程的自然副产品 自动化支持:如果可以被某些自动化过程
支持则更好
度量项目中的陷阱
达不到管理人员承诺的最低极限 在组织中测量过多并且过早 测量过少并且太迟 测量了不正确的属性 过多收集了很少使用的数据 使用度量的不精确的定义 使用度量来衡量工作人员而不是激励他们 与工作人员缺乏交流并且对他们的培训不够 对度量数据不正确的解释
功能点度量的优势
需求阶段可以估计项目的规模。 预测实现软件功能所需源语句的数目 语言无关 多种语言项目中测量项目的生产率 最初用在商业应用程序和MIS应用程序 不适用
实时软件、嵌入式系统、数学软件 可以使用功能部件的度量
功能点与代码行及开发语言的关系(P345 )
与复杂度相关的度量
如果仅仅按照单位时间的代码行( LOC)来测量生产率,则该值很大一部 分都取决于待开发的软件的复杂度
在第二种方法中,大致的时间周期已制定并进行 了分配,但是软件公司可以自己设定最后日期
进度安排的精确性比成本估算的精确性的作用更 大
成本的增加可以通过重新制定产品的价格得到补偿, 但是进度安排中的延迟会引起消极的影响,比如减少 市场销售、客户的不满,以及在系统集成期间由于额 外的问题造成内部成本的增加
的主观评估并了解将来可能出现的问题
配置管理
配置管理的元素
配置管理的组成部分
•构件控制
•版本控制
•变更控制
软件质量保证
质量,在软件中指确保软件程序 开发和应用中的各个方面具有预先 设定的某种标准的方法
软件中质量的概念通常与两方面 有关:
设计的质量 满足要求的质量
质量的概念
软件质量保证
SQA 操作
扇入和扇出方法(1981年)
该方法用来跟踪数据流复杂度 该方法要求计算从模块流出的数据流数,
以及模块使用和修改的全局数据项或数据 结构的数目 该数必须包括已更新的过程参数 该数还必须考虑从该模块内部调用的过程 Henry 和Kafura 将复杂度定义为: 复杂度= 长度x(扇入x 扇出)2
面向对象的度量
软件评审
执行软件评审的主要目的是:
指出产品还可以改进的区域 清楚地确定出软件满足设定标准的
部分 保持作业质量的一致性
正式技术评审
软件工程中的错误
质量保证体系:ISO 9000
质量保证体系是一个整体结构的名称,其 中包含有助于在组织内部实现质量管理功 能的职责、处理、过程以及资源
该体系中的活动包括整个开发过程中的规 划、控制、测量、测试、报告和提高质量 等级
Halstead 的软件科学-积极方面
这些度量十分易于计算 它们可以独立于所有编程语言使用 对这些度量的计算都是十分简单的, 不需
要对程序结构进行深入分析 这些度量可以预测软件中缺陷的发生率 这些度量还可以用于预测在维护中要做的
工作的范围 这些度量还可以用于测量软件应用程序的
整体质量
McCabe 的环路复杂度
软件度量
简介 产品度量 成本度量 好的度量与度量中的陷阱
简介
有两种测量方法可以用于软件开发 对产品的测量
对所开发的产品的特性进行量化
对过程的测量
对进行开发软件的过程的以下特征, 例如生产率、成本、资源需求等进行 量化
软件测量的分类
用于不同部分的可能度量
早期的度量程序中建议的测量
软件度量领域-产品
系数来之63个项目分析后估算得到 三个级别:基本模型、中间模型、详细
模型
SLIM(软件生命周期管理)
SLIM 的优点和缺点
优点
SLIM 以有力的数学优化模型为基础(例如用线性程序 设计求出成本约束和工作量约束),所以它是十分严 格的
SLIM 非常易于使用;它的参数比COCOMO 模型少
缺点
该模型提供的估算值与组织中使用的 TechnologyConstant 有关
软件策划
项目管理有三个主要阶段:
策划 监视和控制 终止分析
项目策划是项目管理的一个最大的任务
这么做的目的是,为软件开发制定一个 计划,从而可以根据该计划成功并有效 地实现项目目标
项目规划
软件项目规划
“软件项目规划”应处理以下问题:
成本估算 进度和里程碑 人员计划 软件质量保证 配置管理计划 项目监视计划 风险管理
风险管理
风险分析
在软件项目中,风险指的是对软件开 发的成本、质量或进度安排造成负面影 响的可能性
这些因素还可以用于风险分析 风险分析中还必须考虑如程序/应用
程序的实现/操作方法、使用的工具类 型、参与人数等其它因素
风险确定
风险通常按照标题分组,例如项目风险、 技术风险和商业风险等
项目风险涉及到进度安排问题、人员问题 、资源问题、需求问题等
软件开发中最常用的两种进度安排方 法是:
程序评估与审查技术(PERT) 关键路径方法(CPM)
控制和跟踪软件项目
跟踪可以用以下方式实现:
通过召开项目状态会议 通过对整个开发过程进行审查的结果进行评估 通过确定在计划日期内是否完成实现先前设置
的正式里程碑 通过对照资源表中列出的每个项目任务的实际
开始日期与计划开始日期,比较是否一致 通过与其他软件团队进行交流,以获取对进度
项目工作量的分布可以仅由该项目的特性控制 一般情况下,需求分析通常占项目工作量的百分
之十到百分之二十五
项目策划的工作量通常只占整个项目工作量的百 分之二到百分之三
花费在原型法分析上的工作量通常会根据项目的 规模和复杂度增加
另外百分之二十到百分之二十五的工作量通常用 于软件设计
进度安排的不同方法
软件项目的进度安排与其它多任务的 开发工作的进度安排相似
该测量将计算程序中独立路径的数目,它 们将决定复杂度的数值
要计算该值,我们必须考虑用图来表示程 序
将我们考虑的程序图称为G 图G 的环路复杂度用V 来表示,并如下计
算:
V(G) = Number (edges) - Number (nodes) + 2
McCabe 的环路复杂度-优点
计算方法简单 应用简单 主要用于软件维护容易程度的度量 可以通过比较不同设计的复杂程度而用作
这些度量包括花费的精力和金钱、KLOC (千行代码)、创建的文档页数、错误数 以及项目中的开发人员数
面向规模的度量
面向功能的度量
关键思想是估计出正确的软件项目的规模 ,而不考虑所使用的编程语言
Albrecht 列举了以下五条所有软件都可见 的外部特性:
软件应用程序的输入 软件应用程序生成的输出 用户查询数 应用程序要使用的数据文件数 与其它应用程序的接口数
面向规模的度量 面向功能的度量 与复杂度有关的度量 面向对象的度量
LOC 作为面向规模的度量
面向规模的度量仍然是最为大家熟悉的度 量,因为它们是直接可以测量的
我们可以很容易地测量源代码行数,并将 其与缺陷发生率、开发时间和花费的钱数 (美元、人民币)进行比较面向规模的度 量是对软件以及开发软件过程的直接测量
现在使用的与复杂度相关的度量是:
Halstead 的软件科学(1977年) McCabe 的环路复杂度(1971年) 扇入扇出法
Halstead 的软件科学
使用一组度量来估计编程的工作量
最初先计算以下内容以推导出系统的度量:
UniqueOperators = 唯一或独特操作符数 UniqueOperands= 唯一或独特操作对象数 TotalOperators= 所有操作符的总使用数 TotalOperands= 所有操作对象的总使用数 词汇= UniqueOperators+ UniqueOperands 实现长度= TotalOperators+ TotalOperands
第08讲软件项目管理基 础
2020年7月22日Байду номын сангаас期三
软件项目管理
基础知识 软件度量 软件策划 软件质量保证
基础知识
项目管理的特点 目的与任务
PMI定义
项目是一段时间内为了创造某种 独特产品或服务而采取的一种努力 。
通过项目经理和项目组织的努力 ,运用系统理论的方法对项目及其 资源进行计划、组织、协调、控制 ,旨在实现项目的特定目标的管理 方法体。
估算值的精确度取决于对TechnologyConstant 估算 的精确程度
该模型不适用于小项目,因此应用受到一定的限制
COCOMO(构造式成本模型 )
COCOMO 模型中的开发模式
良好度量的特征
有一定意义:客户、开发人员和项目经理 都会认为它有一定的意义
量化的:它说明了过程变化与业务性能之 间的量化关系
表示软件质量的度量 可以在软件开发生命周期的早期计算得出
和应用(与Halstead 的软件科学不同) 通过控制程序开发逻辑指导测试过程
McCabe 的环路复杂度-缺点
注重程序控制复杂度而不是程序处理数据 流的复杂度
有时会提供错误结果,尤其是处理有简单 的if-then和重复结构的程序时
该度量不会认为多次嵌套的重复结构比非 嵌套的重复结构简单,这样会导致结果错 误
软件很多属性无法直接度量为软 件定量分析和项目管理增加困难 。
目的
为了使软件项目能够在预 定成本、进度、质量的前提 下顺利完成,必须对软件工 程项目进行计划、组织、监 控和管理
任务
制定软件项目的实施计划和方 案;
对人员进行组织和分工; 按照计划进度,以及成本管理
、风险管理、质量管理的要求 进行软件开发,完成软件项目 的各项要求和任务
PMI定义
关注点(4P)
人员(People) 产品(Product) 过程(Process) 项目(Project)
项目管理的特点
管理在软件工程项目中的 地位和作用与其它工程项目 一样十分重要,必须对成本 、人员、进度、质量、风险 等进行分析和管理
项目管理的特点
软件产品是逻辑的,软件项目的 施工是开发小组集体的智力劳动 ,使用的开发工具是建立在计算 机系统上的软件
ISO 9000进行质量保证的方法
使用ISO 9000 质量保证模型注册的所有公 司看起来都是由各个相互连接的过程组成的 网络
如果体系要符合ISO 9000,则必须使用这 些过程来声明标准中指定的区域
过程中的这些区域还应该编制成文档,并在 确定后按照指定的方式进行实践
在风险评估阶段将开始进行以下步骤 :
定义项目的风险指示级别 构建每个因子之间的关系,即风险、风
险发生的概率、风险的影响与每个指示 级别之间的关系 得到的一组断点将定义终止区域 对风险的组合方式的理解可能会影响指 示级别
管理和监视风险
软件项目进度安排
软件项目进度安排中包含两种方法
第一种方法,发布软件产品/程序的最后期限已 经设置好,公司必须在特定的时间范围内分配工 作量
这些区域包括组织结构、过程和处理,以及 实施质量策划、控制、保证和提高所需的资 源
ISO 9001 的要求
能力成熟度模型
小结
软件项目管理的定义与特点 软件度量 过程控制与质量保证
实验08
项目总结报告 这门课程的收获与建议(每个人
)放在项目报告最后部分。
技术风险涉及到技术、平台、环境的选择 以及有关可移植性、安全性、可靠性等问 题
商业风险涉及到关于投资回报和达到收支 平衡必需的时间的问题
风险预测
风险预测中主要包括四个活动
测量风险发生的概率 列出如果风险发生的话必须处理的一
组问题 对问题项目上的风险的影响做出估计 对已预测的风险的可信度进行评估
风险评估
人员与工作的关系
随着项目规模增加,要在给定的时间范围 内得到最终结果,需要加入更多的人员
如果项目进度拖后,增加程序员的人数当 然可以加快该过程
但是这对开发过程也有消极的影响,导致 进度的进一步落后
开发人员的增加也会导致系统内信息交流 渠道的增加
工作量分布
软件估算技术可以帮助确定完成软件开发过程所 需的人-月的数量
每个类的方法 继承的相关性 对象之间的耦合度 对象的内聚度 对象库有效性 因子分解的有效性 继承方法的重用度 平均的方法复杂度 应用程序的粒度
成本估算模型
以往类似项目、分解技术、经验模型 SLIM或软件生命周期管理模型(1978
年),最早的算法成本模型
适用于大型项目,也称宏估算模型
COCOMO或结构成本模型(1981年 )
客观的:它的定义无二义性并且是客观的 显示趋势:该度量可以显示趋势 过程的自然副产品:不是人工引入的,而
是该过程的自然副产品 自动化支持:如果可以被某些自动化过程
支持则更好
度量项目中的陷阱
达不到管理人员承诺的最低极限 在组织中测量过多并且过早 测量过少并且太迟 测量了不正确的属性 过多收集了很少使用的数据 使用度量的不精确的定义 使用度量来衡量工作人员而不是激励他们 与工作人员缺乏交流并且对他们的培训不够 对度量数据不正确的解释
功能点度量的优势
需求阶段可以估计项目的规模。 预测实现软件功能所需源语句的数目 语言无关 多种语言项目中测量项目的生产率 最初用在商业应用程序和MIS应用程序 不适用
实时软件、嵌入式系统、数学软件 可以使用功能部件的度量
功能点与代码行及开发语言的关系(P345 )
与复杂度相关的度量
如果仅仅按照单位时间的代码行( LOC)来测量生产率,则该值很大一部 分都取决于待开发的软件的复杂度
在第二种方法中,大致的时间周期已制定并进行 了分配,但是软件公司可以自己设定最后日期
进度安排的精确性比成本估算的精确性的作用更 大
成本的增加可以通过重新制定产品的价格得到补偿, 但是进度安排中的延迟会引起消极的影响,比如减少 市场销售、客户的不满,以及在系统集成期间由于额 外的问题造成内部成本的增加
的主观评估并了解将来可能出现的问题
配置管理
配置管理的元素
配置管理的组成部分
•构件控制
•版本控制
•变更控制
软件质量保证
质量,在软件中指确保软件程序 开发和应用中的各个方面具有预先 设定的某种标准的方法
软件中质量的概念通常与两方面 有关:
设计的质量 满足要求的质量
质量的概念
软件质量保证
SQA 操作
扇入和扇出方法(1981年)
该方法用来跟踪数据流复杂度 该方法要求计算从模块流出的数据流数,
以及模块使用和修改的全局数据项或数据 结构的数目 该数必须包括已更新的过程参数 该数还必须考虑从该模块内部调用的过程 Henry 和Kafura 将复杂度定义为: 复杂度= 长度x(扇入x 扇出)2
面向对象的度量
软件评审
执行软件评审的主要目的是:
指出产品还可以改进的区域 清楚地确定出软件满足设定标准的
部分 保持作业质量的一致性
正式技术评审
软件工程中的错误
质量保证体系:ISO 9000
质量保证体系是一个整体结构的名称,其 中包含有助于在组织内部实现质量管理功 能的职责、处理、过程以及资源
该体系中的活动包括整个开发过程中的规 划、控制、测量、测试、报告和提高质量 等级
Halstead 的软件科学-积极方面
这些度量十分易于计算 它们可以独立于所有编程语言使用 对这些度量的计算都是十分简单的, 不需
要对程序结构进行深入分析 这些度量可以预测软件中缺陷的发生率 这些度量还可以用于预测在维护中要做的
工作的范围 这些度量还可以用于测量软件应用程序的
整体质量
McCabe 的环路复杂度
软件度量
简介 产品度量 成本度量 好的度量与度量中的陷阱
简介
有两种测量方法可以用于软件开发 对产品的测量
对所开发的产品的特性进行量化
对过程的测量
对进行开发软件的过程的以下特征, 例如生产率、成本、资源需求等进行 量化
软件测量的分类
用于不同部分的可能度量
早期的度量程序中建议的测量
软件度量领域-产品
系数来之63个项目分析后估算得到 三个级别:基本模型、中间模型、详细
模型
SLIM(软件生命周期管理)
SLIM 的优点和缺点
优点
SLIM 以有力的数学优化模型为基础(例如用线性程序 设计求出成本约束和工作量约束),所以它是十分严 格的
SLIM 非常易于使用;它的参数比COCOMO 模型少
缺点
该模型提供的估算值与组织中使用的 TechnologyConstant 有关
软件策划
项目管理有三个主要阶段:
策划 监视和控制 终止分析
项目策划是项目管理的一个最大的任务
这么做的目的是,为软件开发制定一个 计划,从而可以根据该计划成功并有效 地实现项目目标
项目规划
软件项目规划
“软件项目规划”应处理以下问题:
成本估算 进度和里程碑 人员计划 软件质量保证 配置管理计划 项目监视计划 风险管理
风险管理
风险分析
在软件项目中,风险指的是对软件开 发的成本、质量或进度安排造成负面影 响的可能性
这些因素还可以用于风险分析 风险分析中还必须考虑如程序/应用
程序的实现/操作方法、使用的工具类 型、参与人数等其它因素
风险确定
风险通常按照标题分组,例如项目风险、 技术风险和商业风险等
项目风险涉及到进度安排问题、人员问题 、资源问题、需求问题等
软件开发中最常用的两种进度安排方 法是:
程序评估与审查技术(PERT) 关键路径方法(CPM)
控制和跟踪软件项目
跟踪可以用以下方式实现:
通过召开项目状态会议 通过对整个开发过程进行审查的结果进行评估 通过确定在计划日期内是否完成实现先前设置
的正式里程碑 通过对照资源表中列出的每个项目任务的实际
开始日期与计划开始日期,比较是否一致 通过与其他软件团队进行交流,以获取对进度
项目工作量的分布可以仅由该项目的特性控制 一般情况下,需求分析通常占项目工作量的百分
之十到百分之二十五
项目策划的工作量通常只占整个项目工作量的百 分之二到百分之三
花费在原型法分析上的工作量通常会根据项目的 规模和复杂度增加
另外百分之二十到百分之二十五的工作量通常用 于软件设计
进度安排的不同方法
软件项目的进度安排与其它多任务的 开发工作的进度安排相似
该测量将计算程序中独立路径的数目,它 们将决定复杂度的数值
要计算该值,我们必须考虑用图来表示程 序
将我们考虑的程序图称为G 图G 的环路复杂度用V 来表示,并如下计
算:
V(G) = Number (edges) - Number (nodes) + 2
McCabe 的环路复杂度-优点
计算方法简单 应用简单 主要用于软件维护容易程度的度量 可以通过比较不同设计的复杂程度而用作
这些度量包括花费的精力和金钱、KLOC (千行代码)、创建的文档页数、错误数 以及项目中的开发人员数
面向规模的度量
面向功能的度量
关键思想是估计出正确的软件项目的规模 ,而不考虑所使用的编程语言
Albrecht 列举了以下五条所有软件都可见 的外部特性:
软件应用程序的输入 软件应用程序生成的输出 用户查询数 应用程序要使用的数据文件数 与其它应用程序的接口数
面向规模的度量 面向功能的度量 与复杂度有关的度量 面向对象的度量
LOC 作为面向规模的度量
面向规模的度量仍然是最为大家熟悉的度 量,因为它们是直接可以测量的
我们可以很容易地测量源代码行数,并将 其与缺陷发生率、开发时间和花费的钱数 (美元、人民币)进行比较面向规模的度 量是对软件以及开发软件过程的直接测量
现在使用的与复杂度相关的度量是:
Halstead 的软件科学(1977年) McCabe 的环路复杂度(1971年) 扇入扇出法
Halstead 的软件科学
使用一组度量来估计编程的工作量
最初先计算以下内容以推导出系统的度量:
UniqueOperators = 唯一或独特操作符数 UniqueOperands= 唯一或独特操作对象数 TotalOperators= 所有操作符的总使用数 TotalOperands= 所有操作对象的总使用数 词汇= UniqueOperators+ UniqueOperands 实现长度= TotalOperators+ TotalOperands
第08讲软件项目管理基 础
2020年7月22日Байду номын сангаас期三
软件项目管理
基础知识 软件度量 软件策划 软件质量保证
基础知识
项目管理的特点 目的与任务
PMI定义
项目是一段时间内为了创造某种 独特产品或服务而采取的一种努力 。
通过项目经理和项目组织的努力 ,运用系统理论的方法对项目及其 资源进行计划、组织、协调、控制 ,旨在实现项目的特定目标的管理 方法体。
估算值的精确度取决于对TechnologyConstant 估算 的精确程度
该模型不适用于小项目,因此应用受到一定的限制
COCOMO(构造式成本模型 )
COCOMO 模型中的开发模式
良好度量的特征
有一定意义:客户、开发人员和项目经理 都会认为它有一定的意义
量化的:它说明了过程变化与业务性能之 间的量化关系
表示软件质量的度量 可以在软件开发生命周期的早期计算得出
和应用(与Halstead 的软件科学不同) 通过控制程序开发逻辑指导测试过程
McCabe 的环路复杂度-缺点
注重程序控制复杂度而不是程序处理数据 流的复杂度
有时会提供错误结果,尤其是处理有简单 的if-then和重复结构的程序时
该度量不会认为多次嵌套的重复结构比非 嵌套的重复结构简单,这样会导致结果错 误
软件很多属性无法直接度量为软 件定量分析和项目管理增加困难 。
目的
为了使软件项目能够在预 定成本、进度、质量的前提 下顺利完成,必须对软件工 程项目进行计划、组织、监 控和管理
任务
制定软件项目的实施计划和方 案;
对人员进行组织和分工; 按照计划进度,以及成本管理
、风险管理、质量管理的要求 进行软件开发,完成软件项目 的各项要求和任务
PMI定义
关注点(4P)
人员(People) 产品(Product) 过程(Process) 项目(Project)
项目管理的特点
管理在软件工程项目中的 地位和作用与其它工程项目 一样十分重要,必须对成本 、人员、进度、质量、风险 等进行分析和管理
项目管理的特点
软件产品是逻辑的,软件项目的 施工是开发小组集体的智力劳动 ,使用的开发工具是建立在计算 机系统上的软件