软件工程课件 第十一章 软件项目管理
合集下载
软件工程第十一章面向对象设计

THANKS
感谢观看
01
抽象类是一种不能被实例化的 类,它只能被其他类继承。
02
抽象类可以包含抽象方法和具 体方法。抽象方法是没有具体 实现的方法,需要在继承抽象 类的子类中实现。
03
通过继承抽象类,子类可以继 承抽象类的属性和方法,并且 可以重写或实现抽象类中的方 法。
接口与抽象类的选择
在设计软件时,选择使用接口还是抽象类取决于具体需求和设计目标。
关系
关系描述了对象之间的交互和联系。 常见的关系包括关联、聚合和继承。
继承与多态的设计
继承
继承是一种实现代码重用的方式,子类可以继承父类的属性和方法,并可以扩展或覆盖它们。通过继承,可以建 立类之间的层次结构,使得代码更加清晰和易于维护。
多态
多态是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。多态可以提高代码的灵活性和可扩展性, 使得程序更加易于维护和修改。
02
类与对象的设计
类的定义与属性
类的定义
类是对象的抽象,它描述了一组具有相同属性和行为的对象。类定义了对象的结构、行为和关系。
属性
属性是类中用于描述对象状态的变量。每个对象都有其自己的属性值,这些属性值决定了对象的状态 。
对象的行为与关系
行为
行为是类中定义的方法,用于描述对 象可以执行的操作。方法定义了对象 的行为和功能。
高层模块不应该依赖于低层模块,它们都应 该依赖于抽象。
面向对象设计的优势
提高代码可重用性
通过类和继承实现代码重用,减少重 复代码。
提高代码可维护性
面向对象设计使得代码结构更加清晰, 易于理解和维护。
提高开发效率
通过快速原型开发,快速构建软件系 统。
《软件工程》教学课件 第11章 软件项目管理

式为组织型、半独立型或嵌入型。
下 表 是 根 据 63 个 项 目 的 数 据 统 计 结 果 , 按 照 基 本 的 COCOMO模型估算的工作量和进度。
总体类型 组织型
半独立型 嵌入型
工作量 MM=10.4(KLOG)1.05 MM=3.0(KLOG)1.12 MM=3.6(KLOG)1.20
进度 TDEV=10.5(MM)0.38 TDEV=10.5(MM)0.35 TDEV=10.5(MM)0.32
i1
其中:ai — 估计的最小行数 bi — 估计的最大行数 mi — 最可能的行数
将估算的源代码行数,乘以根据经验推算的每行源代 码所需成本,即为该软件的成本。
IBM 估算模型
1977年由Waiston 和 Felix 总结了IBM联合系统 分部(FSD)负责的60个项目的数据,利用最小二 乘法拟合,得到如下估算公式:
PERT(Program evaluation & review technique)计 划评审技术或CPM(Critical path method)关键路径法, 都是采用网络图来描述项目的进度安排。如图描述了开发 模块A、B、C的任务网络图。各边上所标注的数字为该任 务所持续的时间,数字结点为任务的起点和终点。
70
任务
月份 1 2 3 4 5 6 7 8 9 10 11 12
60
需求分析 ▲ ▲ ▲
50
总体设计
▲ ▲▲
40
详细设计
▲▲
30
编码 软件测试
▲ ▲▲
20
10
▲▲▲
0 一月
二月
三月
四月
五月
六月
进度表
2.甘特图(Gantt Chart)
下 表 是 根 据 63 个 项 目 的 数 据 统 计 结 果 , 按 照 基 本 的 COCOMO模型估算的工作量和进度。
总体类型 组织型
半独立型 嵌入型
工作量 MM=10.4(KLOG)1.05 MM=3.0(KLOG)1.12 MM=3.6(KLOG)1.20
进度 TDEV=10.5(MM)0.38 TDEV=10.5(MM)0.35 TDEV=10.5(MM)0.32
i1
其中:ai — 估计的最小行数 bi — 估计的最大行数 mi — 最可能的行数
将估算的源代码行数,乘以根据经验推算的每行源代 码所需成本,即为该软件的成本。
IBM 估算模型
1977年由Waiston 和 Felix 总结了IBM联合系统 分部(FSD)负责的60个项目的数据,利用最小二 乘法拟合,得到如下估算公式:
PERT(Program evaluation & review technique)计 划评审技术或CPM(Critical path method)关键路径法, 都是采用网络图来描述项目的进度安排。如图描述了开发 模块A、B、C的任务网络图。各边上所标注的数字为该任 务所持续的时间,数字结点为任务的起点和终点。
70
任务
月份 1 2 3 4 5 6 7 8 9 10 11 12
60
需求分析 ▲ ▲ ▲
50
总体设计
▲ ▲▲
40
详细设计
▲▲
30
编码 软件测试
▲ ▲▲
20
10
▲▲▲
0 一月
二月
三月
四月
五月
六月
进度表
2.甘特图(Gantt Chart)
第11章 软件项目管理-软件工程基础(第3版)-胡思康-清华大学出版社

第 4 页4
软件项目管理概述
软件项目管理目标
软件项目管理成功的目标包括以下几方面: ⑴ 如期完成项目 ⑵ 项目成本控制在计划之内 ⑶ 妥善处理用户的需求变动 ⑷ 保证项目质量⑸ 保持对项目进度的跟踪与控制
第11章 软件项目管理
第 5 页5
软件项目规模度量
任何软件项目都需要定量描述才能制定软件开发成本。只有把软件项目 中设计的各项因素,如软件开发时间、人员数量、开发环境的软件工具和硬 件系统、资金等资源的指标尽可能量化,才能准确估算软件产品的规模、复 杂度、工作总量。没有定量的项目将难以展开软件管理和实施过程。
❖系统的内部处理复杂吗
❖代码设计可重用吗
❖ 设计中包括转换和安 装吗
❖ 系统的设计支持不同 组织的多次安装吗
❖ 系统的实际有利于用 户的修改和使用吗
第 10 页10
软件项目规模度量
面向功能的度量
一旦计算出功能点,就可仿照LOC的方式度量软件的生产率、质量和 其它属性:
生产率 = FP/E 质量 = ER/FP 成本 = S/FP 文档 = ER/FP
第11章 软件项目管理
第 2 页2
软件项目管理概述
软件项目管理的特点
⑷ 软件产品虽然分通用软件和领域软件,但其都是“定制”的定向系统 ,目前仍无法摆脱手工开发模式。“没有完全一样的软件项目”,这不仅对 项目实施过程难以控制,而且还需要根据具体应用领域、环境等制定特殊管 理过程和内容。
⑸ 源于应用领域的复杂性和软件开发技术的复杂性,软件自身是一个复 杂系统。因而软件管理要对复杂软件系统过程做到未雨绸缪,对软件开发内 容抽丝剥茧般的细致。 ⑹ 软件项目管理需要综合各方面,特别是社会因素、精神因素、认知要素、 技术问题、领域问题、用户沟通等各项复杂内容。
《软件工程》PPT课件

问题定义(续)
系统全部弄清楚了。还有一些人可能会给你展示一些企业的十分详 尽的管理示图,如物资流管理图、生产管理图、计划财务管理图等。 因为他们也可能认为,只要分析员把这些图看懂了,就会对他们要 建立的系统搞清楚了。
但是,在问题定义阶段千万不要陷入到这些表格和图纸中。因为不 管是表格还是图纸,其中都包含了大量的、只有用户才能懂的术语。 当然,并不是说在问题定义阶段,这些图纸表格没有一点作用。对 一些关键性的语汇可以请用户讲清楚,这样有利于问题定义的准确 性。
快速原型(续)——类型之三
为了保证软件产品的质量,在总体设计和详细设计过程中,用 原型来验证总体结构或某些关键算法。如果设计方案验证完成后就 将原型丢弃,则构造原型的工具不必与目标系统的生产环境一致。 如果想把原型作为最终产品的一部分,原型和目标系统可使用同样 的程序设计语言。
快速原形的开发过程
问题定义的目的是要在短时间内,对用户的要求有一个比较准确的 估计,对要实现的系统规模做到胸中有数。但仅有这些还不够,还 要搞清用户不打算干什么,在这个系统中哪些内容不用实现。工作 的宗旨是搞清要做什么并划清要实现的系统的范围边界。
在完成问题定义的过程中,用户在一开始,可能会给你大堆大堆的 表格,因为他们可能认为只要把表格给你讲清楚,你就会对这个
系统定义与用户 需求分析
原型设计 编码
完善原 型
测试原 型
产品系统的设 计实现
第三课时
喷泉模型 软件重用模型
第一章第三课时
喷泉模型
基于喷泉模型,Hodge等人提出将软件开发过程
划分为概念模型分析、系统设计、对象设计与实现、
测试和系统组装集成等五个阶段,它也体现出分析
和设计之间的重叠 ①概念模型分析:这个阶段主
第11章_质量概念

对软件工程工作产品进行技术审查的成本。 数据收集和度量估算的成本。 测试和调试的成本。
质量成本
失效成本是那些如果在将产品发给客户之前或 之后没有错误就不会存在的费用。失效成本可分 为内部失效成本和外部失效成本。 内部失效成本发生在当你在发货之前发现错误 时,内部失效成本包括:
为纠正错误进行返工所需的成本。 返工时无意中产生副作用,必须对副作用加以缓解而发生的 成本。 组织为评估失效的模型而收集质量数据,由此发生的相关成 本。
质量成本
质量成本包括追求质量过程中或在履行质 量有关的活动中引起的费用以及质量不佳 引起的下游费用等所有费用。为了解这些 费用,一个组织必须收集度量数据,为目 前的质量成本提供一个基准,找到降低这 些成本的机会,并提供一个规范化的比对 依据。质量成本可分为预防成本、评估成 本和失效成本。
质量成本
ISO 9126质量因素(6个)
功能性:软件满足已确定要求的程度,由以下子属性表 征:适合性、准确性、互操作性、依从性和安全保密性。 可靠性:软件可用的时间长度,由以下子属性表征:成 熟性、容错性和易恢复性。 易用性:软件容易使用的程度,由以下子属性表征:易 理解性、易学习性和易操作性。 效率:软件优化使用系统资源的程度,由以下子属性表 征:时间特性和资源利用特性。 维护性:软件易于修复的程度,由以下子属性表征:易 分析性、易改变性、稳定性和易测试性。 可移植性:软件可以从一个环境移植到另一个环境的容 易程度,由以下子属性表征:适应性、易安装性、符合 性和易替换性。
Garvin的质量维度
耐久性。是否能够对软件进行维护或改正,而 不会粗心大意地产生料想不到的副作用?随着时 间的推移,变更会使错误率或可靠性变得更糟吗? 适用性。软件能在可接受的短时期内完成维护 和改正吗?技术支持人员能得到所需的所有信息 以进行变更和修正缺陷吗? 审美。美的东西具有某种优雅、特有的流畅和 醒目的外在,这些都是很难量化的,但显然是不 可缺少的。美的软件具有这些特征。 感知。在某些情况下,一些偏见将影响人们对 质量的感知。
软件项目管理ProjectPPT课件

自动化测试工具
自动化测试工具的定义
自动化测试工具是一种用于自动化测试的软件工具,它能够模拟手工测试用例的执行,提高测试效率和准确性。
常见的自动化测试工具
Selenium、Appium、Junit等是最为常见的自动化测试工具,它们提供了测试脚本编写、测试用例执行、测试报告 生成等功能,方便测试人员进行自动化测试。
常见的项目管理软件
Trello、Asana、Jira等是最为常见的项目管理软件,它们提供了任务管理、看板管理、甘 特图等功能,方便项目经理进行项目进度和资源的监控。
项目管理软件的应用
在软件项目中,团队成员可以通过项目管理软件来分配任务、跟踪进度、管理资源等操作 ,确保项目能够按时交付并满足质量要求。
成本增加。
04
05
缺乏有效的沟通机制,导致 项目团队对需求理解存在偏
差,影响项目质量。
案例三:高效的项目团队建设
总结词:高效的项目团队 是软件项目成功的关键因 素。
选拔具备专业技能和良好 沟通能力的团队成员,提 高团队整体素质。
详细描述
建立明确的职责分工和协 作机制,确保团队成ቤተ መጻሕፍቲ ባይዱ能 够高效协作。
THANKS FOR WATCHING
特点
软件项目具有明确的目标、时间限制 、资源限制、技术要求和多学科交叉 的特点,需要跨部门、跨领域的团队 协作。
软件项目管理的重要性
提高项目成功率
有效的项目管理能够降低项目风险,提高项 目成功率,避免资源浪费。
提升软件质量
通过项目管理,可以确保软件产品符合质量 要求,提高软件质量。
降低开发成本
合理的项目计划和资源分配可以降低开发成 本,提高项目经济效益。
看板等方式来管理项目进度,确保项目能够快速响应需求变化。
《软件工程与项目管理》课件_第5章

图5.6 信息内聚模块
(7) 功能内聚。若一个模块中各个部分都是为完成一项 具体功能而协同工作、紧密联系、不可分割的,则称该模块 为功能内聚模块。功能内聚模块是内聚性最强的模块。
2.耦合性 耦合性是对模块之间的相对独立性(互相连接的紧密程 度)的度量。它取决于各个模块之间接口的复杂程度、调用 模块的方式以及哪些信息通过接口。 一般模块之间可能的连接方式有七种,构成耦合性的七 种类型。不同类型耦合的强弱关系如图5.7所示。
析,确定系统具体的实施方案,然后进行结构设计,确定软件结构。 总体设计的一般步骤如下:
(1) 设计系统方案。 (2) 选取一组合理的方案。 (3) 推荐最佳实施方案。 (4) 功能分解。 (5) 设计软件结构。 (6) 设计数据库和文件结构。 (7) 制定测试计划。 (8) 编写概要设计文档。 (9) 审查与复审概要设计文档。
(5) 标记耦合。如果一组模块通过参数表传递记录信息, 则它们之间的耦合称为标记耦合。事实上,这组模块共享了 某一数据结构的子结构,而不是简单变量。这就要求这些模 块都必须清楚该记录的结构,并按结构要求对记录进行操作。
图5.9 控制耦合
(6) 数据耦合。如果一个模块访问另一个模块时,彼此 之间通过数据参数(不是控制参数、公共数据结构或外部变 量)来交换输入、输出信息,而且交换的信息仅限于数据, 则称这种耦合为数据耦合。数据耦合是松散的耦合,模块之 间的独立性比较强。
(2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块的控制型参数来确定该模块应 执行哪一种功能。逻辑内聚模块比巧合内聚模块的内聚程度 要高,因为它表明了各部分之间在功能上的相关关系。
(3) 时间内聚(经典内聚)。这种模块大多为多功能模块, 但要求模块的各个功能必须在同一时间段内执行,例如初始 化模块和终止模块。时间内聚模块比逻辑内聚模块的内聚程 度又稍高一些。在一般情况下,时间内聚模块各部分可以以 任意的顺序执行,所以它的内部逻辑更简单。
《软件工程实用教程》教学课件2-软件项目管理

需
系
求
统
分
分
析
析
师
师
软件架构设计师 数据库设计师 软件界面设计师
网络架构设计师
网络 工程师
实现阶段 软件开发工程师 编码程序员
质量保障 工程师
软件测试 工程师
产品发布工程师
项目经理
结束阶段
通过对一些知名企业的调研,在整个软件项目活动的五个阶段大致涵盖了14个职位 ; 项目经理、需求分析师、系统分析师、系统架构设计师、软件架构设计师、网络架构设计
抽象性 缺陷检测的困难性 高度的复杂性 缺乏统一规则
5
2. 软件项目管理的内容
什么是软件项目管理
软件项目管理是为了使软件项目能够按照预定的 成本、进度、质量顺利完成,而对成本、人员、 进度、质量、风险等进行分析和管理的活动。
软件项目管理的对象是软件工程项目,它所涉及 的范围覆盖了整个软件工程过程。
师、数据库设计师、软件界面设计师、软件工程师、编码程序员、网络工程师、软件测 试工程师、质量保障工程师及产品发布工程师;
IT组织管理
软件开发组织机构设置 组织机构的职责分工 软件开发项目组的角色
28
总结
了解 理解 掌握
风险管理中识别和应对风险的方法
项目组的组织方式及其特点 配置管理的内容和目的 项目计划的内容和方法 软件质量的属性有哪些
小组成员之间的通讯是平行的,如果小组有n个成员,则 可能的通讯信道为 n (n-1)/2条。
民主制程序员组通常采用非正式的组织方式,虽然名义上 有一个组长,但其与组内其它成员完成同样的任务。
由小组全体成员讨论协商决定应该完成的工作,并依据各 成员能力和经验分配适当的任务。
优点:
软件工程 第4版 第11章 软件工程管理

本章内容
11.1 软件工程管理概述 11.2 软件开发成本估算 11.3 软件工程人员组织 11.4 软件配置管理 11.5 软件质量保证 11.6 软件开发风险管理 11.7 软件工程标准与软件工程文档
这种估算方法的优点是,由于各个任务单元的成本 可交给该任务的开发人员去估计,因此估计结果比较准 确。缺点在于,由于具体工作人员往往只注意到自己职 责范围内的工作,而对涉及全局的成本。
11.2.3 COCOMO2 模型
COCOMO2 模型分为如下3 个模型,在估算软件开发工作量时,对软件细节问题考虑的详 尽程度逐渐增加。
OPTION
软件开发人员一般分为项目负责人、系统分析员、高级程序员、程序员、初级程序员、资 料员和其他辅助人员。
项目负责人需要对项目的需求和团队人员有全面的了解
系统分析员需要有概括能力、分析能力和社交活动能力
程序员需要有熟练的编程能力等 资料员和其他辅助人员负责及时登记软件工程每个阶段的文档等资料
11.3 软件工程人员组织
11.1 软件工程管理概述
02 软件工程管理的重要性
OPTION
基于软件本身的复杂性,软件工 程将软件开发划分为若干个阶段,每 个阶段完成不同的任务、采取不同的 方法。
如果软件开发管理不善,造成的 后果会很严重。因此软件工程管理非 常重要。
11.1 软件工程管理概述
03 软件工程管理的内容
OPTION
02 组织机构
OPTION
软件开发团队不能只是一个简单的集合,要求具有良好的组织机构,要具有合理的人员分 工和有效的通信,共同高效率地完成任务。
按项目划分的模式
按职能划分的模式
矩阵型模式
11.3 软件工程人员组织
软件工程项目管理ppt

Enter your main title
Disruptive technologies such as artificial intelligence and big data are changing the world of work. Retail jobs are
项目团队建设
标题内容
标题内容
单击此处可编辑内容,根据您的需要自由拉伸文本框大小
单击此处可编辑内容,根据您的需要自由拉伸文本框大小
单击此处可编辑内容,根据您的需要自由拉伸文本框大小
单击此处可编辑内容,根据您的需要自由拉伸文本框大小
项目成本控制
单击此处添加文字阐述添加简短问题说明文字,单击此处添加文字阐述添加简短问题说明文字
标题内容
There is one kind of job though, that is both indispensable and
TEXT HERE
There is one kind of job though, that is both indispensable and
信息传递流程
There is one kind of job though, that is both indispensable and
项目质量控制
单击此处添加文字阐述,添加简短问题说明文字,具体添加文字
单击此处添加文字阐述,添加简短问题说明文字,具体添加文字
单击此处添加文字阐述,添加简短问题说明文字,具体添加文字
TEXT HERE
There is one kind of job though, that is both indispensable and
Disruptive technologies such as artificial intelligence and big data are changing the world of work. Retail jobs are disappearing in the US while the online sellers supplanting them fill their warehouses with robots instead of human workers.
软件项目管理课程课件-完整版

三.软件工程模型
所有软件工程的活动都必须进行管理。 软件项目管理贯穿于软件工程的演化过程。 软件工程的演化过程:
三.软件工程模型
软件工程模型: 组织软件工程活动的方 法,称为软件工程模型。
软件工程模型是用一定的流程将各个活 动连接起来,并可用规范的方式操作全 过程,如同工厂的生产线。
常见模型有线性、快速原型、螺旋、渐 增式等模型。
常见的软件工程模型
线性模型(也称,瀑布模型,顺序模型)
常用的软件工程模型
螺旋模型 可看成是连接的线性模型
常用的软件工程模型
渐增式模型(增量模型)
常用的软件工程模型
渐增式模型首先构建系统的基本轮询回 路:
1.2项目管理
一.项目与项目管理
1.项目的概念及特点 项目:是指在一定约束条件下具有特定目标的一
一个次里程碑。
各阶段特点
为实现整个项目的某个特定状态,每个阶段都要进 行足够次数迭代。
各阶段的工作产品(制品,文档等),同时进化产 生,但每个阶段都有一个主要焦点: 初始阶段 需求 (生命周期目标里程碑) 细化阶段 设计 (生命周期构架里程碑) 构造阶段 实现 (初始的可操作能力里程碑) 移交阶段 实施 (产品发布里程碑) (这里的模型是渐增式(增量式))
管理科学用于计划、资源、质量、成本 等管理。
二.软件工程框架
软件工程目标 软件工程活动 软件工程原则
软件工程框架
软件工程目标
正确性--软件产品达到预期功能的程 度。
可用性--软件基本结构、实现、文档 为用户可用的程度。
合算性--具有经济效益,即开发、运 行的开销满足用户要求的程度。
软件工程活动---生产软件步骤
问题定义--明确要解决的问题 可行性分析--即定义的问题是否有解决的办
第11章软件项目管理.pptx

指某项活动能够开始的最早时间。它可以根据项目
的预计开始时间和所有紧前活动的工期估计计算出
来。
l 最早结束时间(Earliest Finish times,EF)是 指某项活动能够完成的最早时间。
所以有:EF=ES+工期估计
第11章 软件项目管理
可以通过最迟开始时间、最迟结束时间反向 推算得出工期估计。
第11章 软件项目管理
11.3 软件开发成本估算
11.3.1软件成本估算过程
第11章 软件项目管理
11.3.2 软件成本估算方法
(1)专家估算法 1) 协调人向各专家提供项目规格和估计表格; 2) 协调人召集小组会各专家讨论与规模相关的因素; 3) 各专家匿名填写迭代表格; 4) 协调人整理出一个估计总结,以迭代表的形式返回
第11章 软件项目管理
2.进度计划
根据已估计出网络图中每项活动的工期和项目必须完 成的时间段,可以计算出一个项目进度,为每项活 动提供一个时间表,明确在项目预计开始时间的基 础上,每项活动能够开始和完成的最早时间;为了 在要求完工时间内完成项目,每项活动必须开始和 完成的最迟时间。
l
最早开始时间(Earliest Start times,ES)是
第11章 软件项目管理
11.2 进度管理 11.2.1 计划 内容: ✓ 确定执行项目需要的特定活动,明确每项 活动的职责; ✓ 确定这些活动的完成顺序; ✓ 计算每项活动所需要的时间和资源; ✓ 制定项目预算。
第11章 软件项目管理
1.工作分解与责任矩阵
分解WBS应遵循如下原则。 ✓ 一个单位工作任务只能在WBS中出现在一个
地方; ✓ 一个WBS项的工作内容是其下一级的工作之和;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件项目的规划 人员的组织管理 软件风险管理 软件配置管理
11.2 成本估算技术
成本估算是可行性分析的重要依据, 成本估算是可行性分析的重要依据 , 也是软件 管理的重要内容,直接影响到软件开发的风险. 管理的重要内容,直接影响到软件开发的风险. 软件开发成本主要是指软件开发过程中所花费 的工作量及相应的代价,即主要是人的劳动的消耗. 的工作量及相应的代价,即主要是人的劳动的消耗. 以软件计划,需求分析,设计,编码到测试的 以软件计划,需求分析,设计, 软件开发全过程所花费的代价为依据. 软件开发全过程所花费的代价为依据. 一个大型,复杂项目,由于其项目的度, 一个大型,复杂项目,由于其项目的度,成本 估算并不是一件简单的事,必须建立相应的估算模型, 估算并不是一件简单的事,必须建立相应的估算模型, 按照一定的方法,技术来进行估算. 按照一定的方法,技术来进行估算.
1977年由 年由Waiston 和 Felix 总结了 总结了IBM联合系统 年由 联合系统 分部( 60个项目的数据 分部 ( FSD) 负责的 60 个项目的数据 , 利用最小 ) 负责的60 个项目的数据, 二乘法拟合,得到如下估算公式: 二乘法拟合,得到如下估算公式: E=5.2*L 工 作 量: (PM) ) 项目持续时间: 项目持续时间: D=4.1*L (月) 人员需要量: 人员需要量: S=0.54*E (人) DOC=49*L (页) 文 档 数: 其中: 源代码行,以千行计. 其中:L _ 源代码行,以千行计.
嵌入型( 嵌入型(Embadded)
软件, 硬件关系紧密 , 操作有限制条件 , 对接口 , 数 软件 , 硬件关系紧密,操作有限制条件,对接口, 据结构,算法要求较高.如大型复杂的事务处理系统, 据结构,算法要求较高.如大型复杂的事务处理系统,大 超大型的操作系统,军事指挥系统, 型,超大型的操作系统,军事指挥系统,航天控制系统等
11.1.2 项目管理的主要活动 11.
包括: 包括: 可行性分析 软件成本估算 软件计划
软件项目的规划 人员的组织管理 软件风险管理 软件配置管理
11.1.2 项目管理的主要活动 11.
软件项目的规划 人员的组织管理 软件风险管理 软件配置管理
包括: 包括: 人员配备原则 人员配备模式 软件团队建设 软件项目沟通活动
11.2 成本估算技术
一,影响成本估算的因素 1. 软件人员的业务水平 2. 软件产品的规模及复杂度 规模: 小型,中型 规模:按YOURDON分类法分为 超小型 小型 中型 大 分类法分为 超小型,小型 中型,大 超大型,极大型 型,超大型 极大型. 超大型 极大型. 复杂度:应用程序, 实用程序, 复杂度:应用程序, 实用程序,系统程序 低 高
IBM估算模型是一种静态单变量模型,它利用已估算 估算模型是一种静态单变量模型, 估算模型是一种静态单变量模型 的结果,如源代码行,来估算各种资源的需求量. 的结果,如源代码行,来估算各种资源的需求量. 估算模型不是一种通用模型, 但 IBM 估算模型不是一种通用模型 ,因此应用中应 根据具体实际情况调整模型中的参数. 根据具体实际情况调整模型中的参数.
即源代码行估算模型(Deiphi技术) 源代码行估算模型 Deiphi技术) 估算模型( 技术 Rand公司提出的 Deiphi技术 是由n 公司提出的Deiphi 技术, 由 Rand 公司提出的 Deiphi 技术 , 是由 n 位专家进行成本 估算.每位专家根据系统规格说明书,反复讨论给出a 估算.每位专家根据系统规格说明书,反复讨论给出ai, bi 的值,并按照下式反复估算源代码 期望值Li 源代码的 及 mi的值,并按照下式反复估算源代码的期望值Li ,期望=
1 n
n
∑L
i=1
i
其中: 其中:ai — 估计的最小行数 mi — 最可能的行数
bi — 估计的最大行数
将估算的源代码行数, 将估算的源代码行数,乘以根据经验推算的每行源代 码所需成本,即为该软件的成本. 码所需成本,即为该软件的成本.
11. 11.2.2 IBM 估算模型
COCOMO模型(Constructive Cost Model) 模型( 模型 ) 公司开发, 由 TRW公司开发 , 是由 公司开发 是由Boehm提出的结构型成本 提出的结构型成本 估算模型,其特点是精确,易用. 估算模型,其特点是精确,易用. 是一种层次模型,按照其祥细程度分为三级: 是一种层次模型,按照其祥细程度分为三级: 即基本的COCOMO模型,中间的 模型, 即基本的 模型 中间的COCOMO模型和 模型和 详细的COCOMO模型. 模型. 详细的 模型 该模型主要对工作量MM ( 单位: 该模型主要对工作量 MM( 单位 : PM) 和进 MM ) 进行估算. 度 TDEP( 单位 : 月 ) 进行估算 . 模型中考虑到估 ( 单位: 算量与开发环境有关,将开发项目分为三类: 算量与开发环境有关,将开发项目分为三类:
11.2 成本估算技术
二.软件成本的估算量 源代码行(LOC) 源代码行(LOC) 机器指令行/非机器语言的执行步 机器指令行/ 开发工作量 人-月(PM) 人-年(PY) 人-日(PD) 月 ) 年 ) 日 ) 软件生产率 LOG/PM ¥/LOC ¥/PM 软件开发时间
11.2.1 专家估算模型
11.1.2 项目管理的主要活动 11.
软件项目的规划 人员的组织管理 软件风险管理 软件配置管理
包括: 包括: 风险识别 风险分析 风险规划 风险监控
11.1.2 项目管理的主要活动 11.
是为了有效地控制 和管理软件开发过 程中的变化, 程中的变化,进行 标识, 标识,组织和控制 修改的技术. 修改的技术. 配置管理活动: 配置管理活动: 配置项的标识 版本管理 系统构建 变更控制
11.1.1 软件项目管理的任务 11.
一,软件项目管理的"4P" 软件项目管理的"4P"
过程 (process)
工具 (tools)
技术集成 项目 (Project) 结果 产品 (Product) 人员 people) (people) 参与
自动化
11.1.1 软件项目管理的任务 11.
二,软件项目管理过程 软件项目管理, 软件项目管理,是对整个软件生存期的所有活动 进行管理.主要过程包括: 进行管理.主要过程包括: 1.项目启动 1.项目启动 确定系统范围,组建项目团队,建立项目环境. 确定系统范围,组建项目团队,建立项目环境. 2.项目规划 2.项目规划 确定项目活动,项目成本估算, 确定项目活动,项目成本估算,制定进度计划 3.项目实施 3.项目实施 监控项目执行,管理项目风险, 监控项目执行,管理项目风险,控制项目变更 4.项目收尾 4.项目收尾 项目验收,软件安装培训, 项目验收,软件安装培训,项目总结
11.2.3 Putnam 估算模型 估算模型
K= L
3 3 4
L= Ck K
1 3
Ck t d
系统定义 功能设计规格说明 功能设计 规格说明
td
4
3
系统开发 设计与编码
运行与维护
系统定义
测试与确认
安装 时间
大型项目的工作量分布情况
9.5.5 COCOMO模型
11. 11.2.4 COCOMO模型 COCOMO模型
不可见性 不确定性 人员流动性
11.1 软件项目管理概述
随着软件的规模和复杂度的不断增大, 随着软件的规模和复杂度的不断增大 , 开发人 员的增加以及开发时间的增长, 员的增加以及开发时间的增长 , 这些都增加了软件 项目管理的难度. 项目管理的难度. 例如: 2000的开发 例如:Windows 2000的开发 是微软公司历史上 最艰巨的任务,仅核心部门的的成员就有2500 2500人 最艰巨的任务,仅核心部门的的成员就有2500人, 测试用的代码就有1000万行, 1000万行 测试用的代码就有1000万行,测试中所用到的脚本 程序就有6500 6500种 .象规模如此之大的软件系统, 程序就有6500种….象规模如此之大的软件系统, 如果没有科学的,规范的,有效的管理, 如果没有科学的,规范的,有效的管理,是不可能 成功的.因此软件项目管理成为软件工程的重要研 成功的.因此软件项目管理成为软件工程的重要研 究内容之一. 究内容之一.
11.2.3 Putnam 估算模型 估算模型
Putnam 估算 模型 是一种动态多变量模型 , 是 估算模型是一种动态多变量模型, 模型是一种动态多变量模型 根据一些大型项目中工作量的分布情况推导出来的. 根据一些大型项目中工作量的分布情况推导出来的 .
L K=
3
Ck 3 t d
L= CkK
4
1 3
总体类型 组织型 半独立型 嵌入型 工作量 MM=10.4(KLOG)1.05 ( ) MM=3.0(KLOG)1.12 ( ) MM=3.6(KLOG)1.20 ( ) 进度 TDEV=10.5(MM)0.38 ( ) TDEV=10.5(MM)0.35 ( ) TDEV=10.5(MM)0.32 ( )
11
第十一章
软件项目管理
11.1 软件项目管理概述
项目管理是广泛应用于各种工程, 项目管理是广泛应用于各种工程,金融等技术 管理过程,管理的好坏决定了工程的成败. 管理过程,管理的好坏决定了工程的成败. 软件及IT 行业, 尤其是软件产品的特殊性, 软件及 IT 行业 , 尤其是软件产品的特殊性 , 软件项目管理对于保证软件产品的质量具有极为重 要的作用,是决定一个产品或企业能否成功的最重 要的作用, 要的指标. 要的指标.
3.开发所需时间
对确定规模,复杂度的软件存在一个"最佳开发时间" 对确定规模,复杂度的软件存在一个"最佳开发时间". 4.软件开发技术水平 4.软件开发技术水平 指开发方法,工具,语言等,技术水平高,效率高. 指开发方法,工具,语言等,技术水平高,效率高. 5.软件可靠性要求 可靠性要求愈高,成本愈高. 5.软件可靠性要求 — 可靠性要求愈高,成本愈高.