第13章 软件项目管理
[项目管理]软件项目管理(ppt 133页)
选的解决方案、技术或管理的约束
• 目的:从客户的角度定义该产品的总体目标,但不必 考虑这些目标如何实现
• 软件范围定义了与软件产品相关的数据、功能和行为, 及其相关的约束:
– 语境(context):说明待建造的软件与其它相关系统、 产品或环境的关系,以及相关的约束条件
– 信息目标:说明目标系统所需要的输入数据及应产生的 输出数据
目录http:首//页www.上cn页shu.下cn页 大量末资页料 天天更新
目录http:首//页www.上cn页shu.下cn页 大量末资页料 天天更新
第13章 软件项目管理
6/133
项目案例(1/4)
• 任务
–负责组织**大学图书馆管理系统的开发
• 时间限制
–6个月
• 人员
–4个技术人员
小王
老王
• 成本
–控制在40万元之内
目录http:首//页www.上cn页shu.下cn页 大量末资页料 天天更新
• 度量的作用是为了有效地采用定量的方式来进行管理 • 需要考虑:
– 合适的度量是什么 – 所收集的数据如何使用 – 用于比较个人、过程或产品的度量是否合理
目录http:首//页www.上cn页shu.下cn页 大量末资页料 天天更新
第13章 软件项目管理
23/133
5.项目估算 •项目估算是制定项目计划的基础
对软件项目管理过程中的相关概念进行简要介绍:
目录http:首//页www.上cn页shu.下cn页 大量末资页料 天天更新
软 件 项 目 管 理 过 程 示 例
第13章 选软择 项件目 项目管理
标识项目的 范围和目的
分析项目 的特征
标识项目 基础设施
软件项目管理
能力评估
软件过程能力描述了一个开发组织开发软件开发高质量软件产品的能力。现行的国际标准主要有两个: ISO9000.3和CMM。
ISO9000.3是ISO9000质量体系认证中关于计算机软件质量管理和质量保证标准部分。它从管理职责、质量体 系、合同评审、设计控制、文件和资料控制、采购、顾客提供产品的控制、产品标识和可追溯性、过程控制、检 验和试验、检验/测量和试验设备的控制、检验和试验状态、不合格品的控制、纠正和预防措施、搬运/贮存/包 装/防护和交付、质量记录的控制、内部质量审核、培训、服务、统计系统等二十个方面对软件质量进行了要求。
在选择人员的问题上,要结合实际情况来决定是否选入一个开发组员。并不是一群高水平的程序员在一起就 一定可以组成一个成功的小组。作为考察标准,技术水平、与本项目相关的技能和开发经验、以及团队工作能力 都是很重要的因素。一个一天能写一万行代码但却不能与同事沟通融洽的程序员,未必适合一个对组员之间通讯 要求很高的项目。还应该考虑分工的需要,合理配置各个专项的人员比例。例如一个站开发项目,小组中有页面 美工、后台服务程序、数据库几个部分,应该合理的组织各项工作的人员配比。对于一个中型农技110站,对数 据采集量要求较高,一个人员配比方案可以是2个美工、2个后台服务程序编写、3个数据采集整理人员。
组织模式
软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发, 则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产 品项目组。公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小 组和软件产品项目组。
(完整版)《软件项目管理》文档模板DOC
附录1 会议纪要模版《软件项目管理》案例讨论第组会议纪要主持人:记录人:参加人员:讨论地点:讨论时间:附录2 章节知识综合运用案例分析报告文档模版××项目案例分析(注意:有话则长,无话则短,内容格式不是唯一的,合适的就是最好的,内容切忌面面俱到,突出重点。
案例格式根据自己编写的内容进行调整、裁减或增加,注意内容与标号要一致。
内容要么不写,要写就要写完整。
以下框架仅供参考)一、项目概况1.1项目简介1.2 项目特点(或基本数据)1.3项目承包方二、项目范围确定2.1项目目标项目主要目标:1.2. …2.2 项目描述为了使项目各相关方和项目团队成员准确理解项目内容,明确项目目标,对本项目进行描述,见表2-1。
(内容未包括以下全部)表2-1××项目描述2.3 项目重大里程碑本项目里程碑有以下个:1.2.…根据项目工期要求,编制的里程碑计划,如表2-2所示。
(可参考P91)表2-2 ××项目里程碑计划三、项目工作分解四、3.1工作分解结构在对项目工作描述后,为顺利完成这些工作,确定项目的人员的职责范围、进行项目估算等内容,编制工作分解结构图。
见图3-1为本项目工作分解结构图。
{注:表格方框中的1行字应该全部换成项目具体活动的具体名称}3.2 项目的任务描述在项目分解完成后,为了使项目团队成员更准确的理解项目所包含的各项的具体内容和要求,对本项目工作进行描述。
其具体内容见表3-1所示。
表3-1 工作(或任务)描述领导签字:日期:200 年月日3.3 项目组织形式与责任矩阵3.3.1项目组织形式本项目的组织形式为形式,其结构见下图3-2所示。
图3-2 ××组织结构图(尚需补充与完善)3.3.2项目责任分配为了使项目团队成员清晰地了解项目中每一个任务的责任承担情况,并能在相互之间关于项目任务内容进行有效地沟通,并对在项目执行过程中进行有小的监督与管理,本项目部采用责任分配矩阵对参与项目各方的责任进行表述。
IT软件项目管理复习资料
IT软件项目管理复习资料第一章IT软件项目管理概述1.项目的基本特征:项目的独特性、项目的一次性、项目的组织性、项目的生命期、项目的资源消耗性、项目的目标冲突性、项目后果的不确定性。
P12.根据美国项目管理协会(PMI)的定义:项目是为完成某一独特的产品或服务所做的一次性努力。
P13.中国项目管理研究委员会对项目的定义是:项目是一个特殊的将被完成的有限任务,它在一定时间内,满足一系列特定目标的多项相关工作的总称。
根据这个定义,项目实际包含3层含义:第一层:项目是一项有待完成的任务,有特定的环境和要求;第二层:在一定的组织机构内,利用有限资源,在规定的时间内为特定客户完成特定目标的阶段性任务;第三层:任务要满足一定性能、质量、数量、技术指标等要求。
4.项目管理的定义:项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求。
P35.项目管理的基本特征:项目管理的对象是项目;系统工程思想贯穿项目管理的全过程;项目管理的组织具有一定的特殊性;项目管理的体制是基于团队管理的个人负责制,项目经理是整个项目组中协调、控制的关键;项目管理的要点是创造和保持一个使项目顺利运行的环境,使置身于这个环境的人们能在集体中协调工作以完成预定的目标;项目管理的方法、工具和技术手段具有选进性。
P3-P46.项目管理的9个知识领域:范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理;2个层次:企业层次、项目层次;4个阶段:概念阶段、开发阶段、实施阶段、收尾阶段;5个过程:启动过程、计划过程、执行过程、控制过程、结束过程。
P47.项目管理的成功因素:范围、时间、成本、质量。
P88.IT项目(软件项目)的特点:阶段性(紧迫性)、独特性、不确定性。
P99.IT项目独特性的表现:生产无形的产品;过程没有明显的划分;大都是“一次性”的人力消耗项目。
P1010.IT项目管理的问题:软件开发有高度不可预测性,只有10%左右的软件项目是按照初始预算及进度成功交付的;管理原则不只是技术的进步,更多时候是成败的标志;软件废品及修改水平代表项目的不成熟程序。
第13章软件项目计划与管理
第十三章软件项目管理与计划13.1项目管理的概念软件项目管理的对象是软件工程项目。
它所涉及的范围覆盖了整个软件工程过程。
目的是要以一种更好的方式管理软件开发过程,以便按时交付高质量的产品。
13.1.1项目管理过程为使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬/软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度的安排等等做到心中有数。
而软件项目管理可以提供这些信息。
这种管理开始于技术工作开始之前,在软件从概念到实现的过程中持续进行,最后终止于软件工程过程结束。
(1)启动一个软件项目通常,软件人员和用户是在系统工程阶段确定项目的目标和范围。
当明确了软件项目的目标和范围后,就应考虑可能的解决方案,标明技术和管理上的要求,确定合理、精确的成本估算,实际可行的任务分解以及可管理的进度安排。
(2)度量度量的作用是为了有效地定量地进行管理。
度量的目的是为了把握软件工程过程的实际情况和它所生产的产品质量。
在对过去未度量过的事项进行度量时,需要解决的问题是;哪些度量适合于过程和产品?如何使用收集到的数据?用于比较个人、过程或产品的度量是否合理?(3)估算在软件项目管理过程中一个关键的活动是制定项目计划。
在做计划时,必须就需要的人力、项目持续时间、成本作出估算。
这种估算大多是参考以前的花费作出的。
管理人员可使用各种估算技术,并可用一种估算技术作为另一种估算技术的交叉检查。
(4)风险分析风险分析对于软件项目管理是决定性的,风险分析实际上就是贯穿在软件工程过程中的一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督,它能让人们去主动“攻击”风险。
(5)进度安排软件项目的进度安排与任何一个工程项目的进度安排没有实质上的不同。
首先识别一组项目任务,再建立任务之间的相互关联,然后估算各个任务的工作量,分配人力和其他资源,制定进度时序。
(6)追踪和控制项目管理人员负责追踪在进度安排中标明的每一个任务。
第13章-软件项目管理
13.1.2 功能点技术
2. 估算功能点的步骤 用下述3个步骤,可估算出一个软件的功能点 数。 Step1: 计算未调整的功能点数UFP Step2: 计算技术复杂性因子TCF Step3: 计算功能点数FP
13.1.2 功能点技术
(1) 计算未调整的功能点数UFP
把产品信息域的每个特性(即Inp、Out、Inq、Maf和Inf) 都分类为简单级、平均级或复杂级,并根据其等级为每 个特性分配一个功能点数。 例如,一个简单级的输入项分配3个功能点,一个平均级 的输入项分配4个功能点,而一个复杂级的输入项分配6 个功能点。 用下式计算未调整的功能点数UFP: UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf,其中, ai(1≤i≤5)是信息域特性系数,其值由相应特性的复杂 级别决定,如下表所示。
总体过程成熟度及管理水平; 使用良好的软件工程实践的程度; 使用的程序设计语言的级别; 软件环境的状态; 软件项目组的技术及经验; 应用系统的复杂程度。
13.2.2 动态多变量模型
开发实时嵌入式软件时,P的典型值为2000; 开发电信系统和系统软件时,P=10000;对于商 业应用系统来说,P=28000。 可以从历史数据导出适用于当前项目的生产率 参数值。 开发同一个软件(即LOC固定)的时候,如果 把项目持续时间延长一些,则可降低完成项目 所需的工作量。
该模型把工作量看作是软件规模和开发时间这 两个变量的函数。其表达形式如下:
E=(LOC×B0.333/P)3×(1/t)4
其中,E是以人月或人年为单位的工作量;t是 以月或年为单位的项目持续时间;
13.2.2 动态多变量模型
B是特殊技术因子,它随着对测试、质量保证、文 档及管理技术的需求的增加而缓慢增加,对于较小 的程序(KLOC=5~15),B=0.16,对于超过70 KLOC 的程序,B=0.39; P生产率参数,它反映了下述因素对工作量的影响:
软件项目管理第3版第13章习题答案参考答案集成管理
软件项⽬管理第3版第13章习题答案参考答案集成管理[填空][范围,质量,进度,成本]1. 软件项⽬管理最重要的4个要素是:(),(),(),()。
[填空][正⽐]2. 质量和成本成⼀定的()关系[填空][反⽐]3. 进度和成本成⼀定的()关系[是⾮][A]1. 为了加快项⽬进度,可以适当减低项⽬过程中的质量标准。
()[A]正确[B]错误[是⾮][A]2. 范围和成本成⼀定的正⽐关系()[A]正确[B]错误[是⾮][B]3. 进度和成本是关系最为密切的两个要素,⼏乎成对⽴关系,进度的缩短⼀定依靠成本增加实现,⽽成本的降低也⼀定已牺牲⼯期进度为代价()[A]正确[B]错误[是⾮][A]4. 项⽬管理过程是⼀个集成的过程,范围计划、进度、成本、质量、风险是相互联系的()[A]正确[B]错误[是⾮][B]5. 软件项⽬管理的最重要的四个要素是范围、质量、进度和风险()[A]正确[B]错误[单选][C]1、下列不属于项⽬管理计划的是()[A]数据⾥程碑[B]数据进度[C]数据库设计[D]风险清单[单选][C]2、项⽬集成管理包括以下内容,除了()[A]对计划的集成管理和项⽬跟踪控制的集成管理[B]保证项⽬各要素协调[C]软件设计⽂档[D]在相互影响的项⽬⽬标和⽅案中做出权衡[单选][C]3、设成本C是范围S、质量Q、进度T的⼀个函数C=F(S,Q,T),在成本或时间不充⾜的情况下,可以通过减⼩范围或者()来解决。
[A]提⾼质量[B]增加项⽬成员[C]降低质量[D]以上均不⾏[单选][B]4、项⽬管理过程中的进度⽬标,成本⽬标,质量⽬标,范围⽬标等各个⽬标之间是()[A]相互独⽴[B]相互关联和制约的[C]进度⽬标最重要[D]没有关系的[单选][C]5、下列不属于软件项⽬管理要素的是()[A]范围[B]质量[C]交互[D]成本[单选][D]6、项⽬集成计划具有以下⼏个特点,除了()[A]综合性[B]全局性[C]内外兼顾性[D]针对性。
第13章 软件配置管理
第27页
三、测试的层次与内容
1.软件测试的层次
软件测试工作包括两个层次:
测试工作的组织与管理,包括制定测试方法与规范、控 制测试进度、管理测试资源。 测试工作的实施,包括编制符合标准的测试文档、研制 测试环境、与开发组织协作实现各阶段的测试活动。
第28页
2.软件测试的内容 软件测试工作可以分为4个方面:
建立控制项; 重构任何修订版的某一项或者某一文件; 利用加锁技术防止覆盖; 当一个修订版时要求输入变更描述; 提供比较任意两个修订版的使用工具,采用增量存储方式; 提供对修订版历史和锁定状态的报告功能;
提供归并功能;
允许在任何时候、任何版本; 控制权限的设置;
渐进模型的建立;
提供各种控制报告。
第18页
实施软件配置管理,主要包括以下活动:
制定配置管理计划;
确定配置标识;
版本管理; 变更控制; 系统整合; 配置审核。
第11页
一、制定软件配置计划
制定配置管理计划的过程就是确定软件配置管理的解决方
案;
项目经理和软件配置管理委员会(SCCB)根据项目的开 发计划确定各个里程碑和开发策略;
一、软件配置管理概述
软件配置管理(SCM)是一组针对软件产品的追踪和控制
活动,它贯穿于项目生命周期的始终,并代表着软件产品接
受各项评审。 IEEE对SCM的论述如下:“软件配置管理由适用于所有 软件开发项目的最佳工程实践组成,无论是采用分阶段开发, 还是采用快速原型进行开发,甚至包括对现有软件产品进行
统,其测试工作涉及大量的人力和物力,有效的测试工作
管理是保证有效测试工作的必要前提。 3)测试环境的建立:设计环境、实施环境和管理环境 。
软件项目管理课程PPT113页
计算程序控制结构的V(G)值
E = 4 E = 3 N = 4 N = 3 V = 2 V = 2
计算程序控制结构的V(G)值
E = 6 N = 5 V = 3
例3.1 计算如图所示程序控制结构图的V(G)值。 (a) e=1,n=2,v=1; (b) e=3,n=3,v=2; (c) e=4,n=4,v=2; (d) e=3,n=3,v=2; (e) e=6,n=5,v=3.
过程的内部属性 工作量 计划和进度 一段时间内某类事件发生的次数 过程的外部属性 成本 可控制性 可观察性 稳定性 资源的内部属性 人 软硬件环境 方法 经验 资源的外部属性 成本 时间
3.1.1.2 面向规模的度量
代码行数 LOC或KLOC 生产率 Pl=L/E 其中 L 软件项目代码行数 E 软件项目工作量(人月 PM) Pl 软件项目生产率(LOC/PM) 代码出错率 EQRl=Ne/L 其中 Ne 软件项目的代码错误数 EQRl 每千行代码的错误数
每行代码平均成本 Cl=S/L 其中 S 软件项目总开销(元/美元) Cl软件项目每行代码的平均成本 文档与代码比 Dl=Pd/L 其中 Pd 软件项目文档页数 Dl 每千行代码的平均文档数
软件的外部属性和内部属性 外部属性 软件产品、过程、资源与环境的关系 如,成本、效益、劳动生产率、可靠性、可维护性 内部属性 软件产品、过程、资源、环境自身的属性 如,产品结构、模块化程度、复杂性、程序长度等。
产品-过程-资源
产品的内部属性 程序代码长度 程序功能 模块化 重用性 控制流 数据流 模块耦合度与内聚度 产品的外部属性 程序的可靠性 可用性 可维护性 软件的可理解性 有效性 可移植性
例3.1计算程序控制结构的V(G)值
2020年10月自考计算机专业《软件工程》自学课件第十三章 软件项目管理
E=3.2×(KLOC)1.05 (4)Doty模型(在KLOC>9的情况下)
E=5.288×(KLOC)1.047
2. 面向FP的估算模型
(1)Albrecht & Gaffney模型 E=-13.39+0.0545FP
(2)Kemerer模型 E=60.62+7.728×10-8FP3
LET=23-2=21
类似地,事件9的最迟时刻为
LET=21-1=20
事件8的最迟时刻为
LET=min{21-6,20-0}=15
图13.4中每个圆圈内右下角的数字就是该事件的最迟时刻。
13.3.5 关键路径
➢ 关键路径上的事件(关键事件)必须准时发生, 组成关键路径的作业(关键作业)的实际持续时 间不能超过估计的持续时间,否则工程就不能准 时结束。
这个例子说明了工程网络比Gantt图优越的地方: 它显式地定义事件及作业之间的依赖关系,Gantt 图只能隐含地表示这种关系。但是Gantt图的形式 比工程网络更简单更直观,为更多的人所熟悉, 因此,应该同时使用这两种工具制定和管理进度 计划,使它们互相补充取长补短。
13.4 人员组织
13.4.1 民主制程序员组 民主制程序员组通常采用非正式的组织方式,
估算功能点的步骤
(1)计算未调整的功能点数UFP
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf 其中,ai(1≤i≤5)是信息域特性系数
(2)计算技术复杂性因子TCF
14
DI Fi i 1
技术复杂性因子TCF由下式计算: TCF=0.65+0.01×DI
因为DI的值在0~70之间,所以TCF的值在 0.65~1.35之间。
软件项目管理
软件项目管理软件项目管理是指对软件项目进行计划、组织、指挥、协调和控制的全过程管理。
它涉及到项目的目标确定、需求分析、资源规划、进度控制、成本管理等多个方面。
一个成功的软件项目管理,需要有良好的团队合作、高效的沟通、科学的方法和工具、以及灵活的应变能力。
在本文中,我们将介绍软件项目管理的基本概念、流程、方法和工具,以及项目管理中的一些常见问题和解决方法。
一、软件项目管理的基本概念1.1什么是软件项目管理?软件项目管理是指对软件项目进行计划、组织、指挥、协调和控制的全过程管理。
它是一种复杂的管理活动,需要对项目的目标、需求、进度、成本、质量、风险等方面进行综合考虑和统一管理。
软件项目管理的主要任务是在有限的资源条件下,有效地组织和协调人力、物力、财力等资源,以达到项目的目标。
1.2软件项目管理的重要性软件项目管理在软件开发过程中起着至关重要的作用。
它可以帮助项目团队有效地规划和管理项目,提高项目的成功率和效率,降低项目的风险和成本。
软件项目管理还可以帮助项目团队充分理解项目的需求和目标,确保项目按时交付、满足客户需求、保证质量和安全。
1.3软件项目管理的特点软件项目管理有其自身的特点,主要包括以下几个方面:一是软件项目的不确定性和复杂性较大,需要采用科学的方法和工具进行管理;二是软件项目的创新性和开发周期较长,需要进行合理的规划和调度;三是软件项目的需求易变性和推敲性较强,需要进行灵活的沟通和协调;四是软件项目的团队合作和沟通要求较高,需要建立良好的团队合作和沟通机制。
二、软件项目管理的流程2.1软件项目管理的基本流程软件项目管理的基本流程包括项目启动、项目规划、项目执行、项目监控和项目收尾等五个阶段。
在项目启动阶段,需要确定项目的目标、范围、需求和风险;在项目规划阶段,需要制定项目计划、资源分配、进度安排和风险预测;在项目执行阶段,需要按计划执行项目任务、分配资源、处理问题和变更;在项目监控阶段,需要对项目进度、成本、质量、风险等方面进行监控和控制;在项目收尾阶段,需要完成项目验收、总结经验、交付成果和收尾工作。
软件项目管理
软件项目管理软件项目管理是指对软件开发项目的计划、组织、协调和控制的过程。
在当今信息技术飞速发展的时代,软件项目管理的重要性日益凸显。
本文将从软件项目的定义、管理流程、项目团队、风险管理等方面论述软件项目管理的关键要素,旨在为读者提供一种全面而又系统的软件项目管理方法。
一、软件项目的定义软件项目是指为了开发一款或多款具有特定功能和特征的软件产品,进行规划、设计、编码、测试和维护等过程的一系列活动的集合。
一个成功的软件项目需具备明确的目标、详细的计划和充足的资源,以及高效的团队协作和全面的风险管理。
二、软件项目管理的流程软件项目管理由启动、规划、执行、监控和收尾五个主要过程组成。
在启动阶段,项目经理需要明确项目目标和可行性分析,确定项目的范围和约束条件,以及搭建项目团队。
规划阶段包括制定详细的项目计划、定义工作分解结构(WBS)、制定资源分配计划等。
执行阶段是实际开展软件开发,并按计划分配资源、实施代码开发。
监控阶段则是对项目的进展、资源利用情况以及风险进行监控和调整。
最后,收尾阶段包括项目交付、项目总结和经验总结等工作。
三、项目团队一个高效的软件项目团队对于项目的成功至关重要。
项目团队应由具备项目经验和专业知识的人员组成,包括项目经理、需求分析师、开发人员、测试人员等。
项目经理应具备良好的沟通协调能力和团队管理能力,能够根据项目需要协调资源、分配任务并解决问题。
需求分析师应具备良好的分析、沟通和文档编写能力,能够准确理解用户需求并转化为开发任务。
开发人员应具备扎实的编码能力和良好的团队合作精神,能够按照规范和计划完成开发任务。
测试人员应具备全面、细致的测试能力,能够及时发现并解决问题。
四、风险管理风险是软件项目中不可避免的因素,科学有效地进行风险管理是保证项目成功的关键措施之一。
风险管理包括风险识别、风险分析、风险评估、风险应对等。
项目经理需要与团队成员紧密合作,识别潜在的风险,并对风险的可能性和影响进行评估。
软件工程导论课后习题答案
P 0.003 32 0.7219951974 73577679 7,127(美元)
如果一条指令为一个字长,则为使存储器装满程序共需
73,577,679条指令。 在1995年一名程序员每天可开发出30条指令,每月可开 发出600条指令,为了开发出可装满整个存储器的程序, 需要的工作量为 73577679 122 629(人月) , 600
13:07:42
2
作业及解答(第1-2章)
(1) 在1985年对计算机存储容量的需求估计是多少?如果字 长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程 序员的平均工资是每月4000美元。如果一条指令为一个字 长,计算使存储器装满程序所需用的成本。 (3) 假设在1995年存储器字长为32位,一名程序员每天可 开发出30条指令,程序员的月平均工资为6000美元,重复 (1)、(2)题。
F6日志 E3 时钟 F3日前、时间 P4 定时取样 生理信号 F6日志 E1 护士 F1要求报告 D1患者日志
13:07:42
P6 产生病情报告
12
作业及解答(第3章)
2-5 北京某高校可用的电话号码有以下几类:校内电话号 码由4位数字组成,第1位数字不是0;校外电话又分为本 市电话和外地电话两类,拨校外电话需先拨0,若是本市 电话则再接着拨8位数字(第1位不是0),若是外地电话则 拨3位区码再拨8位电话号码(第1位不是0)。 请用定义数据字典的方法,定义上述的电话号码。
13:07:42
24
作业及解答(第4章)
其中, 符号∷=表示定义为; 符号[...]表示可选项; 符号a|b表示a或b。 假设有这样一个有穷状态机:以一串字符为输入,判断字 符串中是否含有合法的浮点二进制数。试对这个有穷状态机 进行规格说明。
软件项目管理PPT课件
对项目变更进行严格控制和管理,确保变更不会对项目造成不利 影响。
项目收尾
01
项目验收
组织相关利益相关者对项目成果 进行验收,确保项目目标得以实 现。
项目总结
02
03
项目后评估
对项目过程中的经验教训进行总 结,为今后的项目提供参考和借 鉴。
评估项目的整体绩效,包括项目 的成本、进度和质量等方面,为 今后的项目提供改进方向。
加强团队成员培训与能力提升
提高团队成员对需求变更的敏感度和应对能力。
技术债务问题
技术债务的识别与解决策略
技术债务类型
代码质量差:代码缺乏规范和重构,导致维护 困难、性能低下和安全隐患。
技术债务问题
技术落后
采用已被淘汰或不推荐使用的技术和工具,影响项目进展和未来扩展性。
缺乏文档和注释
缺乏必要的文档和注释,导致团队成员难以理解和维护代码。
JUnit是Java语言的单元测试框架,用 于编写和执行测试用例。
项目管理软件
01
02
03
04
项目管理软件用于规划、跟 踪和管理软件项目,提高项 目执行效率和团队协作。常 用的项目管理软件包括Trello、
Asana和Jira。
Trello是一个看板式的项目管 理工具,通过拖放任务卡片 进行任务管理,适用于小型
软件项目管理ppt课件
目 录
• 软件项目管理概述 • 软件项目管理的核心概念 • 软件项目管理流程 • 软件项目管理工具与技术 • 软件项目管理挑战与解决方案 • 软件项目管理案例研究
01 软件项目管理概述
软件项目的定义与特点
定义
软件项目是为了实现特定目标,通过 计算机程序、数据库、文档等软件产 品来满足用户需求的过程。
软件工程导论第5版
1.1 软件危机
计算机系统发展的四个阶段:
计算机系统发展的早期阶段(20世纪60年代中期以前) 大多数人把软件看成是不需预先计划的事情
计算机系统发展的第二阶段(从60年代中期到70年代中期) 主要特点是软件产品的使用和“软件作坊”的出现
计算机系统发展的第三阶段(从70年代中期到80年代中期) 主要特点是微处理器的出现和应用,计算机应用大众化
1.2 软件工程
这7条原理是互相独立,缺一不可的。然而这7 条原理又是相当完备的,在此之前已经提出的100多 条软件工程原理都可以由这7条原理的任意组合蕴含 或派生。
下面简要介绍软件工程的7条基本原理。
1. 用分阶段的生命周期计划严格管理
有人经统计发现,在不成功的软件项目中有一 半左右是由于计划不周造成的,可见把建立完善的计 划作为第一条基本原理是吸取了前人的教训而提出来 的。
1.2.2 软件工程的基本原理
自从1968年在联邦德国召开的国际会议上正式 提出并使用了“软件工程”这个术语以来,研究软件 工程的专家学者们陆续提出了100多条关于软件工程 的准则或“信条”。著名的软件工程专家B.W.Boehm 综合这些学者们的意见并总结了TRW公司多年开发软 件的经验,于1983年在一篇论文中提出了软件工程的 7条基本原理。他认为这7条原理是确保软件产品质量 和开发效率的最小集合。
1.2 软件工程
3. 实行严格的产品控制:不随意改变需求
当改变需求时,为了保持软件各个配置成分的 一致性,必须实行严格的产品控制,其中主要是实行 基准配置管理,也称为变动控制:一切有关修改软件 的建议,特别是涉及到对基准配置的修改建议,都必 须按照严格的规程进行评审,获得批准以后才能实施 修改。绝对不能谁想修改软件,就随意进行修改。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用系统的复杂程度。 开发实时嵌入式软件时,P的典型值为2000;开发 电信系统和系统软件时,P=10000;对于商业应用 系统来说,P=28000。可以从历史数据导出适用于 当前项目的生产率参数值。 从(13.2)式可以看出,开发同一个软件(即LOC 固定)的时候,如果把项目持续时间延长一些,则 可降低完成项目所需的工作量。
每个成本因素都根据它的重要程度和对工作量影响 大小被赋予一定数值(称为工作量系数)。这些成 本因素对任何一个项目的开发工作量都有影响,即 使不使用COCOMO2模型估算工作量,也应该重 视这些因素。Boehm把成本因素划分成产品因素、 平台因素、人员因素和项目因素等4类。 表13.3(见书300页)列出了COCOMO2模型使用 的成本因素及与之相联系的工作量系数。与原始的 COCOMO模型相比,COCOMO2模型使用的成本 因素有下述变化,这些变化反映了在过去十几年中 软件行业取得的巨大进步。
DI= F
i 1 14 i
技术复杂性因子TCF由下式计算:
TCF=0.65+0.01×DI 因为DI的值在0~70之间,所以TCF的值在0.65~1.35 之间。 (3) 计算功能点数FP 用下式计算功能点数FP: FP=UFP×TCF 功能点数与所用的编程语言无关,看起来功能点技 术比代码行技术更合理一些。但是,在判断信息域 特性复杂级别和技术因素的影响程度时,存在着相 当大的主观因素。
(3) 某些成本因素(分析员能力、平台经验、语 言和工具经验)对生产率的影响(即工作量系数最 大值与最小值的比率)增加了,另一些成本因素 (程序员能力)的影响减小了。 为了确定工作量方程中模型指数b的值,原始的 COCOMO模型把软件开发项目划分成组织式、半 独立式和嵌入式这样3种类型,并指定每种项目类 型所对应的b值(分别是1.05,1.12和1.20)。 COCOMO2采用了更加精细得多的b分级模型,这 个模型使用5个分级因素Wi(1≤i≤5),其中每个因素都 划分成从甚低(Wi=5)到特高(Wi=0)的6个级别, 然后用下式计算b的数值:
COCOMO2给出了3个层次的软件开发工作量估算 模型,这3个层次的模型在估算工作量时,对软件 细节考虑的详尽程度逐级增加。这些模型既可以用 于不同类型的项目,也可以用于同一个项目的不同 开发阶段。这3个层次的估算模型分别是: (1) 应用系统组成模型。这个模型主要用于估算 构建原型的工作量,模型名字暗示在构建原型时大 量使用已有的构件。 (2) 早期设计模型。这个模型适用于体系结构设 计阶段。 (3) 后体系结构模型。这个模型适用于完成体系 结构设计之后的软件开发阶段。
下面以后体系结构模型为例,介绍COCOMO2模 型。该模型把软件开发工作量表示成代码行数 (KLOC)的非线性函数: 17 E= a KLOC b f i (13.3) i 1 其中, E是开发工作量(以人月为单位), a是模型系数, KLOC是估计的源代码行数(以千行为单位), b是模型指数, fi(i=1~17)是成本因素。
这类模型的总体结构形式如下: E=A+B×(ev)C 其中,A、B和C是由经验数据导出的常数,E是以 人月为单位的工作量,ev是估算变量(KLOC或 FP)。下面给出几个典型的静态单变量模型。 1. 面向KLOC的估算模型 (1) Walston_Felix模型 E=5.2×(KLOC)0.91 (2) Bailey_Basili模型 E=5.5+0.73×(KLOC)1.16
13.2.3 COCOMO2模型
COCOMO是构造性成本模型(constructive cost model)的英文缩写。1981年Boehm在《软件工程经 济学》中首次提出了COCOMO模型,本书第三版 曾对此模型作了介绍。1997年Boehm等人提出的 COCOMO2模型,是原始的COCOMO模型的修订 版,它反映了十多年来在成本估计方面所积累的经 验。
13.1 估算软件规模
13.1.1 代码行技术
代码行技术是比较简单的定量估算软件规模的方法。 这种方法依据以往开发类似产品的经验和历史数据, 估计实现一个功能所需要的源程序行数。当有以往 开发类似产品的历史数据可供参考时,用这种方法 估计出的数值还是比较准确的。把实现每个功能所 需要的源程序行数累加起来,就可得到实现整个软 件所需要的源程序行数。
13.1.2 功能点技术
功能点技术依据对软件信息域特性和软件复杂性的 评估结果,估算软件规模。这种方法用功能点 (FP)为单位度量软件规模。 1. 信息域特性 功能点技术定义了信息域的5个特性,分别是输入 项数(Inp)、输出项数(Out)、查询数(Inq)、主文件 数(Maf)和外部接口数(Inf)。下面讲述这5个特性的 含义。
(5) 外部接口数: 机器可读的全部接口(例如, 磁盘或磁带上的数据文件)的数量,用这些接口把 信息传送给另一个系统。 2. 估算功能点的步骤 用下述3个步骤,可估算出一个软件的功能点数 (即软件规模)。
(1) 计算未调整的功能点数UFP 首先,把产品信息域的每个特性(即Inp、Out、Inq、 Maf和Inf)都分类为简单级、平均级或复杂级,并 根据其等级为每个特性分配一个功能点数(例如, 一个简单级的输入项分配3个功能点,一个平均级 的输入项分配4个功能点,而一个复杂级的输入项 分配6个功能点)。 然后,用下式计算未调整的功能点数UFP: UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf 其中,ai(1≤i≤5)是信息域特性系数,其值由相应特 性的复杂级别决定,如表13.1(见书297页)所示。
为了使得对程序规模的估计值更接近实际值,可以 由多名有经验的软件工程师分别做出估计。每个人 都估计程序的最小规模(a)、最大规模(b)和最可能 的规模(m),分别算出这3种规模的平均值,和之后, 再用下式计算程序规模的估计值: a 4m b L= (13.1) 用代码行技术估算软件规模时,当程序较小时常用 的单位是代码行数(LOC),当程序较大时常用 的单位是千行代码数(KLOC)。
(1) 新增加了4个成本因素,它们分别是要求的 可重用性、需要的文档量、人员连续性(即人员稳 定程度)和多地点开发。这个变化表明,这些因素 对开发成本的影响日益增加。 (2) 略去了原始模型中的2个成本因素(计算机 切换时间和使用现代程序设计实践)。现在,开发 人员普遍使用工作站开发软件,批处理的切换时间 已经不再是问题。而“现代程序设计实践”已经发 展成内容更广泛的“成熟的软件工程实践”的概念, 并且在COCOMO2工作量方程的指数b中考虑了这 个因素的影响。
B是特殊技术因子,它随着对测试、质量保证、文 档及管理技术的需求的增加而缓慢增加,对于较小 的程序(KLOC=5~15),B=0.16,对于超过70 KLOC的程序,B=0.39; P是生产率参数,它反映了下述因素对工作量的影 响: 总体过程成熟度及管理水平; 使用良好的软件工程实践的程度; 使用的程序设计语言的级别; 软件环境的状态; 软件项目组的技术及经验;
b= 1.01 1.01 Wi
i 1
5
(13.4)
因此,b的取值范围为1.01~1.26。显然,这种分级 模式比原始COCOMO模型的分级模式更精细、更 灵活。 COCOMO2使用的5个分级因素如下所述: (1) 项目先例性。这个分级因素指出,对于开发 组织来说该项目的新奇程度。诸如开发类似系统的 经验,需要创新体系结构和算法,以及需要并行开 发硬件和软件等因素的影响,都体现在这个分级因 素中。
13.2 工作量估算
软件估算模型使用由经验导出的公式来预测软件开 发工作量,工作量是软件规模(KLOC或FP)的 函数,工作量的单位通常是人月(pm)。 支持大多数估算模型的经验数据,都是从有限个项 目的样本集中总结出来的,因此,没有一个估算模 型可以适用于所有类型的软件和开发环境。
13.2.1 静态单变量模型
6
代码行技术的主要优点是,代码是所有软件开发项 目都有的“产品”,而且很容易计算代码行数。代 码行技术的缺点是: 源程序仅是软件配置的一个 成分,用它的规模代表整个软件的规模似乎不太合 理;用不同语言实现同一个软件所需要的代码行数 并不相同;这种方法不适用于非过程语言。为了克 服代码行技术的缺点,人们又提出了功能点技术。
第13章 软件项目管理
13.1 13.2 13.3 13.4 13.5 13.6 13.7
估算软件规模 工作量估算 进度计划 人员组织 质量保证 软件配置管理 能力成熟度模型
软件项目管理的重要性和特殊性: 这些工程项目的失败主要是因为管理不善。 所谓管理就是通过计划、组织和控制等一系列活动, 合理地配置和使用各种资源,以达到既定目标的过 程。 软件项目管理先于任何技术活动之前开始,并且贯 穿于软件的整个生命周期之中。 软件项目管理过程从一组项目计划活动开始,而制 定计划的基础是工作量估算和完成期限估算。
(5) 过程成熟度。这个分级因素反映了按照能力 成熟度模型(见13.7节)度量出的项目组织的过程 成熟度。 在原始的COCOMO模型中,仅粗略地考虑了前两 个分级因素对指数b之值的影响。 工作量方程中模型系数a的典型值为3.0,在实际工 作中应该根据历史经验数据确定一个适合本组织当 前开发的项目类型的数值。
动态多变量模型也称为软件方程式,它是根据从 4000多个当代软件项目中收集的生产率数据推导出 来的。该模型把工作量看作是软件规模和开发时间 这两个变量的函数。动态多变量估算模型的形式如 下: E=(LOC×B0.333/P)3×(1/t)4 (13.2) 其中, E是以人月或人年为单位的工作量; t是以月或年为单位的项目持续时间;
从上面列出的模型可以看ຫໍສະໝຸດ ,对于相同的KLOC或 FP值,用不同模型估算将得出不同的结果。主要 原因是,这些模型多数都是仅根据若干应用领域中 有限个项目的经验数据推导出来的,适用范围有限。 因此,必须根据当前项目的特点选择适用的估算模 型,并且根据需要适当地调整(例如,修改模型常 数)估算模型。