【大学课件】软件管理.ppt

上传人:本田雅阁 文档编号:3025892 上传时间:2019-06-27 格式:PPT 页数:201 大小:1.46MB
返回 下载 相关 举报
【大学课件】软件管理.ppt_第1页
第1页 / 共201页
【大学课件】软件管理.ppt_第2页
第2页 / 共201页
【大学课件】软件管理.ppt_第3页
第3页 / 共201页
【大学课件】软件管理.ppt_第4页
第4页 / 共201页
【大学课件】软件管理.ppt_第5页
第5页 / 共201页
点击查看更多>>
资源描述

《【大学课件】软件管理.ppt》由会员分享,可在线阅读,更多相关《【大学课件】软件管理.ppt(201页珍藏版)》请在三一文库上搜索。

1、1,第九章 软件管理,项目管理过程 软件生产率和质量的度量 软件项目的估算 软件项目计划的目标 软件成本和工作量估算 成本效益分析 进度安排 软件项目的组织与计划,http:/ 为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。 软件项目管理可以提供这些信息。,http:/ 软件项目管理的 5 个过程 启动一个项目 制定计划 执行 控制 收尾,http:/ 明确项目的目标和范围 考虑候选的解决方案 标明技术和管理上的要求 有了这些信息,才能确定合理、精确的成本估算,实际可行的

2、任务分解以及可管理的进度安排。 软件人员和用户是在系统工程步骤中确定项目的目标和范围。,http:/ 范围标明了软件要实现的基本功能,并尽量以定量的方式界定这些功能。 当明确了软件项目的目标和范围后,就应考虑候选的解决方案。 有了方案,管理人员和技术人员就能够据此选择一种“好的”方法,给出诸如交付期限、预算、个人能力、技术界面及其它许多因素所构成的限制。,http:/ 度量开发过程的目的是为了改进过程; 度量产品的目的是为了提高产品质量。 度量的作用是为了有效地定量地进行管理。,http:/ 合适的度量是什么? 所收集的数据如何使用? 用于比较个人、过程或产品的度量是否合理? 管理人员和技术人

3、员可利用这些度量来了解软件工程过程的实际情况和它所生产的产品质量 。,http:/ 在做计划时必须就需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)做出估算。 这种估算大多是利用以前的花费做为参考而做出的。,http:/ 假使项目背景完全生疏,只凭过去的经验做出估算可能就不够了。 现在已有了许多用于软件开发的估算技术。其共同特点是: 事先建立软件范围,http:/ 项目被分解为可单独进行估算的小块 管理人员大多使用不止一种估算技术,并用一种估算技术做为另一种估算技术的交叉检查。,http:/ 不确定性。 用户要求是否能确切地被理解? 在项目最后结束之前要求实现

4、的功能能否建立? 是否存在目前仍未发现的技术难题? 在项目出现严重误期时是否会发生一些变更?等等。,http:/ 所谓风险分析实际上就是一系列风险管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监督。这些步骤贯穿在软件工程过程中。,http:/ 对于进度安排,需要考虑的是: 预先对进度如何计划? 工作怎样就位? 如何识别定义好的任务? 管理人员对结束时间如何掌握 ? 如何识别和监控关键路径以确保结束?,http:/ 如何建立分隔任务的里程碑。 软件项目的进度安排与任一个工程项目的进度安排基本相同。 识别一组项目任务 建立任务之间的相互关联 估算各个任务的工作量 分配人力和其它

5、资源 制定进度时序,http:/ 由项目管理人员负责追踪在进度安排中标明的每一个任务。 如果任务实际完成日期滞后于进度安排,则管理人员可以使用一种自动的项目进度安排工具来确定在项目的中间里程碑上进度误期所造成的影响。,http:/ 对任务重新安排 (做为最坏的结果)可以修改交付日期以调整已经暴露的问题。用这种方式可以较好地控制软件的开发。,http:/ 为什么要对软件进行度量 面向规模的度量 面向功能的度量 软件质量的度量 在软件工程过程中使用度量,http:/ 弄清软件开发人员的生产率; 给出使用了新的软件工程方法和工具所得到的(在生产率和质量两方面)的效益; 建立项目估算的“基线”; 帮助

6、调整对新的工具和附加培训的要求。,http:/ 直接度量(如度量一个螺栓的长度); 间接度量(如用次品率来度量生产出的螺栓质量)。 软件度量也同样分为两类:直接度量与间接度量。 软件工程过程的直接度量包括所投入的成本和工作量。,http:/ 软件产品的间接度量包括功能性、复杂性、效率、可靠性、可维护性和许多其它的质量特性。 只要事先建立特定的度量规程,很容易做到直接度量软件所需要的成本和工作量、产生的代码行数等。,http:/ 软件质量度量则指明了软件适应明确和不明确的用户要求到什么程度; 技术度量的焦点则集中在软件的某些特性(如逻辑复杂性、模块化程度)上而不是软件开发的全过程。,http:/

7、 面向功能的度量提供直接度量的尺度。 面向人的度量则收集有关人们开发计算机软件所用方式的信息和人们理解有关工具和方法的效率的信息。,http:/ 可以建立一个面向规模的数据表格来记录项目的某些信息。 该表格列出了在过去几年完成的每一个软件开发项目和关于这些项目的相应面向规模的数据。,http:/ 规模为 114.1 KLOC(千代码行) 工作量用了 24个人月 成本为168,000元 文档页数为365 在交付用户使用后第一年内发现了 29个错误, 有 3 个人参加了项目 aaa-01 的软件开发工作。,http:/ 对于每一个项目,可以根据表格中列出的基本数据计算简单的面向规模的生产率和质量的

8、度量。,http:/ 生产率 KLOCPM(人月) 质量 错误数KLOC 成本 元LOC 文档 文档页数KLOC,http:/ 面向功能度量主要考虑程序的“功能性”和“实用性”,而不是对 LOC计数。 该度量是一种叫做功能点方法的生产率度量法,利用软件信息域中的一些计数和软件复杂性估计的经验关系式而导出功能点 FP。,http:/ 用户输入数:各个用户输入是面向不同应用的输入数据。 用户输出数:各个用户输出是面向应用的输出信息,包括报告,屏幕信息,错误信息等。在报告中的各个数据项不应再分别计数。,http:/ 文件数:每一个逻辑主文件都应计数。逻辑主文件是指逻辑上的一组数据,可以是一个大数据库

9、的一部分,可以是一个单独的文件。 外部接口数:与系统中其他设备通过外部接口读写信息次数均应计数。 一旦收集到上述数据,就可以计算出与每一个计数相关的复杂性值。,http:/ 计算功能点,使用如下的关系式: FP 总计数(0.650.01SUM(Fi) 总计数是所有加权计数项的和; SUM(Fi) 是求和函数: Fi(i114)是复杂性校正值,它们应通过逐一回答如下提问来确定。,http:/ Fi的取值05: = 0 没有影响 = 1 偶然的 = 2 适中的 = 3 普通的 = 4 重要的 = 5 极重要的 F1 系统是否需要可靠的备份和恢复? F2 是否需要数据通信? F3 是否有分布处理的功

10、能? F4 是否性能成为关键? F5 系统是否运行在既存的高度实用化的操作环境中?,http:/ 系统是否需要联机数据项? F7 联机数据项是否需要建立多重窗口显 示和操作,以处理输入处理。 F8 主文件是否联机更新? F9 输入、输出、文件、查询是否复杂? F10 内部处理过程是否复杂? F11 程序代码是否可复用? F12 设计中是否包括了转移和安装? F13 系统是否设计成可以重复安装在不同 机构中,http:/ 系统是否设计成易修改和易使用? 一旦计算出功能点,就可仿照LOC的方式度量软件的生产率、质量和其它属性: 生产率 FPPM(人月) 质量 错误数FP 成本 元FP 文档 文档页

11、数FP,http:/ 特征点度量(Feature Points)可以用于系统和工程软件应用 特征点度量适合于算法复杂性高的应用。而实时处理、过程控制、嵌入式软件应用的算法复杂性都偏高,因此适合于特征点度量。,http:/ “算法” 进行计数。 计算特征点可使用一个计算表格。对于每一个度量参数只使用一个权值,并且使用 FP总计数(0.650.01SUM(Fi) 来计算总的特征点值。,http:/ 在软件交付之前得到的度量可作为判断设计和测试质量好坏的依据。这一类度量包括程序复杂性、有效的模块性和总的程序规模。 在软件交付之后的度量则把注意力集中于还未发现的差错数和系统的可维护性方面。,http:

12、/ 正确性:一个程序必须正确地运行,并为它的用户提供某些输出。正确性要求软件执行所要求的功能。正确性的度量是每千代码行(KLOC)的差错数,其中将差错定义为已被证实是不符合需求的缺陷。,http:/ 一种简单的面向时间的度量: 平均变 更等待时间MTTC。这个时间包括分 析变更要求、设计适当修改、实现变 更并测试、把变更发送给所有用户。 一个可维护的程序与不可维护的程序 相比,应有较低的MTTC。,http:/ 度量完整性,需要定义两个附加的属 性:危险性和安全性。 危险性是特定类型的攻击将在一给定 时间内发生的概率, 安全性是排除特定类型攻击的概率。,http:/ 完整性(1危险性(1安全性

13、) 其中,对每一个攻击的危险性和安全 性都进行累加。 可使用性:如果一个程序不具有“用户友好性”,即使它所执行的功能很有价值,也常常会失败。 可使用性量化“用户友好性”,并依据 以下四个特征进行度量:,http:/ 为达到适度有效使用系统所需要的时间; 当软件被某些人适度有效地使用时所度量的在生产率方面的净增值; 用户角度对系统的主观评价 (可以通过问题调查表得到)。,http:/ 下面给出使用各种程序设计语言建立一个功能点所需要的平均代码行数的粗略估算。,http:/ 问题因素:问题的复杂性和对设计限制,以及需求的变更次数; 过程因素:使用的分析与设计技术、语言和CASE工具的有效性,及评审

14、技术; 产品因素:计算机系统的可靠性和性能; 资源因素:CASE工具、硬件和软件资源的有效性。,http:/ 为了将LOC和FP用于软件估算技术中,必须建立历史数据基线。 根据历史经验,在软件工程过程的衔接处划出一条基线,在此基线上附有一些用于度量的经验目标信息,作为工程过程评估的依据,判断工程过程的完成是否达到预想的要求。,http:/ 大多数软件开发人员都希望了解:哪些用户需求可能会变更?系统中哪些模块容易出错?对每一个模块要做多少测试?在测试时能够预计多少错误?如果能收集到相关的度量数据,就能确定这些问题的答案。,http:/ 数据必须合理、精确,应避免单纯根据以往项目进行“盲目估算”;

15、 应从尽可能多的项目中收集数据; 数据必须一致; 基线数据的应用必须与要做估算的工作类似。,http:/ 在做项目计划时,第一项活动就是估算。 在做估算时往往存在某些不确定性,使得软件项目管理人员无法正常进行管理而导致产品迟迟不能完成。 现在已使用的实用技术是时间和工作量估算。,http:/ 项目规模对于软件估算的精确性和功效影响也比较大。随着软件规模的扩大,问题分解会更加困难。项目的规模越大,开发工作量越大,估算的风险越高。 项目的结构化程度也影响项目估算的风险。随着结构化程度的提高,进行精确估算的能力就能提高,而风险将减少。,http:/ 如果对软件项目的作用范围还不十分清楚,或者用户的要

16、求经常变更,都会导致对软件项目所需资源、成本、进度的估算频频变动,增加估算的风险。 计划人员应当要求在软件的规格说明中给出完备的功能、性能、接口的定义。,http:/ 软件项目计划的目标是提供一个能使项目管理人员对资源、成本和进度做出合理估算的框架。 这些估算应当在软件项目开始时的一个有限的时间段内做出,并且随着项目的进展定期进行更新。,http:/ 估算开始时应对软件功能进行评价,对其进行适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常采用某种程度的功能分解。 性能的考虑包括处理和响应时间的需求。 约束条件则标识产品成本、外部硬件、可用存储或其它现有系统对软件的限制。

17、,http:/ 还要叙述某些质量因素(例如,给出的算法是否容易理解等)。 软件与其它系统元素是相互作用的。要考虑每个接口的性质和复杂性,以确定对开发资源、成本和进度的影响。接口的概念可解释为:,http:/ (如处理机与外设) 及间接受软件控制的设备 (如机器、显示器); 必须与新软件连接的现有的软件(如数据库存取例程、子程序包、操作系统); 通过终端或其它输入输出设备使用该软件的人; 该软件运行前后的一系列操作过程。 对于每一种情况,都必须清楚地了解通过接口的信息转换。,http:/ 软件开发所需的资源有 现成的用以支持软件开发的工具 (硬件工具及软件工具); 最基本的资源 (人);,htt

18、p:/ 需要的技能, 有效性 开始时间, 工作期限,硬件 开发系统, 目标机器, 新系统其他硬件部分 软件 支持软件, 实用软件 有效性,投入时间, 持续时间,http:/ 资源的描述; 资源的有效性说明; 资源在何时开始需要; 使用资源的持续时间。 最后两个特性统称为时间窗口。,http:/ 人力资源,在考虑各种软件开发资源时,人是最重要的资源。在安排开发活动时必须考虑人员的技术水平、专业、人数、以及在开发过程各阶段中对各种人员的需要。 计划人员首先估算范围并选择为完成开发工作所需要的技能。还要在组织和专业两方面做出安排。,http:/ (1个人年或者更少),只要向专家做些咨询,也许一个人就

19、可以完成所有的软件工程步骤。 对一些规模较大的项目,在整个软件生存期中,各种人员的参与情况是不一样的。下面是各类不同的人员随开发工作的进展在软件工程各个阶段的参与情况的典型曲线。,http:/ 硬件资源,硬件是作为软件开发项目的一种工具而投入的。 宿主机(Host) 软件开发时使用的计算机及外围设备; 目标机(Target) 运行已开发成功软件的计算机及外围设备; 其它硬件设备 专用软件开发时需要的特殊硬件资源;,http:/ 在许多情况下,宿主机与目标机可以是同一种机型。,http:/ 软件资源,软件人员在软件开发期间使用了许多软件工具来帮助开发。这种软件工具集叫做计算机辅助软件工程(CAS

20、E)。 业务系统计划工具集 项目管理工具集 支援工具文档生成工具、网络系统软件、数据库、电子邮件、通报板,以及配置管理工具。,http:/ 编程工具 集成和测试工具 原型化和模拟工具 维护工具 框架工具这些工具能够提供建立集成项目支撑环境(IPSE)的框架。,http:/ 软件复用性及软件部件库,为了促成软件的复用,以提高软件的生产率和软件产品的质量,可建立可复用的软件部件库。,http:/ 软件项目的估算能够通过一系列系统化的步骤,在可接受的风险范围内提供估算结果。 成本估算必须“事前”给出。时间越久,了解得越多,估算中出现的严重误差就越少。,http:/ 把LOC和FP数据当做一个估算变量

21、,用于量度软件每一个元素的规模。 LOC和FP数据作为从过去项目中收集到的基线数据,与其它估算变量联合使用, 进行成本和工作量的估算。,http:/ 给出一个有界的软件范围的叙述 由此叙述把软件分解成一些小的可分别独立进行估算的子功能 对每一个子功能估算LOC或FP 把基线生产率度量(如LOCPM或FPPM) 用做特定的估算变量,导出子功能的成本或工作量 综合子功能的估算得到整个项目的总估算。,http:/ LOC 做为估算变量时,必须进行功能分解, 且需要达到很详细的程度。而估算 FP 时需要的数据是宏观的量,当把 FP 当做估算变量时不需分解得很详细。 LOC 是直接估算的, 而 FP 是

22、通过估计输入、输出、数据文件、查询和外部接口的数目,以及 14 种复杂性校正值间接地确定的。,http:/ 利用历史数据或凭实际经验(当其它的方法失效时),对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值。记作a、m、b。 接着计算LOC或FP的期望值 E。 E (a4mb)6,http:/ 例如,若假定总的FP估算值是310,基于过去项目的平均FP生产率是5.5FPPM,则项目的总工作量是: 工作量 3105.5 56 PM 作为LOC和FP估算的实例,考察一 个为CAD应用而开发的软件包。,http:/ 在这个实例中,使用LOC做为估算变量。 根据系统规格说明, 软件范

23、围的初步叙述如下 “软件将从操作员那里接收2 维或 3 维几何数据。 操作员通过用户界面与 CAD系统交互并控制它,这种用户界面将表,http:/ 识别出下列主要软件功能: 用户界面和控制功能 二维几何分析 三维几何分析 数据库管理 计算机图形显示功能 外设控制PC 设计分析模块 通过分解,可得到如下估算表,http:/ 需要根据复杂性程度的不同,对各功能使用不同的生产率度量值。 在表中的成本 = LOC的期望值 E与元行相乘,工作量 = 用LOC 的期望值 E与行PM相除。 因此可得,该项目总成本的估算值为 657,000元,总工作量的估算值为145人月(PM)。,http:/ 人的劳动消耗

24、所需代价就是软件产品的开发成本。 软件产品开发成本的计算方法不同于其它物理产品成本的计算。,http:/ 软件开发成本的估算,应是从软件计划、需求分析、设计、编码、单元测试、组装测试到确认测试,整个软件开发全过程所花费的代价作为依据的。,http:/ 基本估算方法分为三类。 自顶向下的估算方法 自底向上的估计法 差别估计法,http:/ 估算人员根据以前已完成项目所消耗的总成本(或总工作量),推算将要开发的软件的总成本(或总工作量),然后按比例将它分配到各开发任务单元中去,再来检验它是否能满足要求。,http:/ 缺点是对项目中的特殊困难估计不足,估算出来的成本盲目性大,有时会遗漏被开发软件的

25、某些部分。,http:/ 它的优点是估算各个部分的准确性高。缺点是缺少各项子任务之间相互联系所需要的工作量,还缺少许多与软件开发有关的系统级工作量.,http:/ 类似的部分按实际量进行计算,不同的部分则采用相应方法进行估算。,http:/ 单独一位专家可能会有种种偏见,最好由多位专家进行估算,取得多个估算值。 有多种方法把这些估算值合成一个估算值。 一种方法是简单地求各估算值的中值或平均值。其优点是简便。缺点是可能会由于受一、二个极端估算值的影响而产生严重的偏差。,http:/ 组织者发给每位专家一份软件系统规格说明书和一张记录估算值的表格,请他们进行估算。 专家详细研究软件规格说明书的内容

26、,对该软件提出三个规模的估算值,即:ai (最小), mi (可能), bi (最大), 无记名地填写表格,http:/ a. 计算各专家估算的期望值 Ei; b. 对专家的估算结果分类摘要。 专家对此估算值另做一次估算。 在综合专家估算结果的基础上,组织专家再次无记名地填写表格。比较两次估算的结果。若差异很大,要通过查询找出差异的原因。,http:/ 最后,通过与历史资料进行类比,根据过去完成软件项目的规模和成本等信息,推算出该软件每行源代码所需要的成本。然后再乘以该软件源代码行数的估算值,就可得到该软件的成本估算值。,http:/ 开发成本估算模型通常采用经验公式来预测软件项目计划所需要的

27、成本、工作量和进度数据。 用以支持大多数模型的经验数据都是从有限的一些项目样本中得到的。,http:/ 5.2L0.91 D 4.1L0.36 14.47E0.35 S 0.54E0.6 DOC 49L1.01 L 是源代码行数 (KLOC),E 是工作量 (PM),D 是项目持续时间(月),S 是人员需要量 (人),DOC是文档数量 (页)。,http:/ 在此模型中,一般指一条机器指令为 一行源代码。 一个软件的源代码行数不包括程序注释、作业命令、调试程序在内。 对于非机器指令编写的源程序,例如汇编语言或高级语言程序,应转换成机器指令源代码行数来考虑。,http:/ 转换系数机器指令条数非

28、机器语言执行步数。,http:/ 模型,Putnam模型是一种动态多变量模型。适用于大型项目,但也可以应用在一些较小的软件项目中。 它是假定在软件开发的整个生存期中工作量有特定的分布。 大型软件项目的开发工作量分布可以用Rayleigh-Norden曲线表示。,http:/ td 是开发持续时间 (年), K是软件开发与维护在内的整个生存期所花费的工作量 (人年),L是源代码行数 (LOC),Ck是技术状态常数,因开发环境而异。,http:/ (COnstructive COst MOdel),结构型成本估算模型是一种精确、易于使用的成本估算方法。 DSI(源指令条数)定义为代码的源程序行数。若一行有两个语句,则算做一条指令。它包括作业控制语句和格式语句,但不包括注释语句。 KDSI1000DSI。,http:/ TDEV(度量单位为月)表示开发进度。它由工作量决定。 软件开发项目的分类 软件开发项目的总体类型: 组织型 嵌入

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1