书签 分享 收藏 举报 版权申诉 / 313
上传文档赚钱

类型软件工程第16章软件项目管理与过程改进课件.pptx

  • 上传人(卖家):晟晟文业
  • 文档编号:4444245
  • 上传时间:2022-12-10
  • 格式:PPTX
  • 页数:313
  • 大小:2.61MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《软件工程第16章软件项目管理与过程改进课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件工程 16 软件 项目 管理 过程 改进 课件
    资源描述:

    1、第十六章 软件项目管理与过程改进16.1 软件项目管理与过程模型16.2 软件项目度量与估算16.3 风险分析16.4 软件项目计划16.5 软件项目人员和组织16.6 软件质量保证16.7 软件配置管理16.8 软件过程改进2022-12-10国防科技大学计算机学院1软件项目管理与过程改进 软件管理是软件工程学科的重要组成部分,在软件生存周期中发挥着重要的作用。软件开发过程中的软件管理称软件项目管理,直接关系到软件项目的成败。软件配置管理贯穿整个软件生存周期,在软件开发过程中是软件项目管理的重要组成部分,在软件交付后是软件有效运行和维护的保障。软件开发组织建设和过程改进是不断推出高质量软件制

    2、品的关键。本章主要介绍软件项目管理、软件配置管理、软件过程改进。16.1软件项目管理与过程模型本节主要介绍 软件项目管理的概念 软件项目管理的过程模型 软件项目管理的原则 软件项目制品16.1.1软件项目管理的概念软件项目管理是软件工程的重要组成部分。软件项目已通过软件项目的可行性论证和立项的法定程序。软件项目可能是基于计算机的系统工程的一部分,也可能是独立的实体。按照合同要求,软件项目应具有明确的目标、任务、责任人、技术途径、资金投入、交付时间、客户实体、利益相关方。在面向领域的应用软件开发项目中,领域专家和客户愿意和软件开发团队密切合作,这是项目成功的关键。2022-12-10国防科技大学

    3、计算机学院4软件项目管理的概念 软件工程是人的智力密集型劳动,软件是逻辑制品,软件项目管理更要强调工作的计划性,人员、进度、制品的可控性,要及时进行软件项目的风险分析和管理。客户与开发者必须在项目开发早期、软件需求工程的初始阶段完成下列六项任务。2022-12-10国防科技大学计算机学院5软件项目管理的概念 确定制品目标、范围,主要技术指标、功能 和行为特性;确定管理者和开发人员;进行成本估算;进行有效的风险分析、验证与确认;给出恰当的项目任务划分;根据约束条件,如制品交付期限、预算、可 用人员、技术接口等因素,选择“最佳”方 案,制定可管理的项目进度计划,给出明确 的项目进展标志,并将任务、

    4、责任落实到人。2022-12-10国防科技大学计算机学院6软件项目管理的概念1999年,软件产业界的统计数据表明,26的软件项目彻底失败,46的项目成本和进度超出预定计划。软件项目失败率仍然很高。实践表明,良好的软件开发过程孕育着好的软件制品,而好的软件制品一般隐含良好的软件开发过程。本节的其余部分介绍软件项目管理原则、软件项目的管理模型、生存周期各阶段的软件制品。16.1.2 软件项目管理的过程模型 第一章讨论了软件生存周期和软件开发的几种模型。生存周期及其划分涉及软件开发过程和过程生成的制品。软件开发过程分为线性过程和非线性过程两类。瀑布模型是典型的线性过程模型。增量模型、螺旋模型虽是迭代

    5、模型,但本质上是瀑布模型的应用。统一过程RUP是迭代的非线性模型,与瀑布模型存在本质的区别。这些模型既用于软件开发的技术过程,也用于软件开发的管理过程。软件项目管理的过程模型软件开发的技术人员和管理人员在软件开发过程中分工明确,他们在模型中参与相应的活动,开发相应的制品。软件过程的活动序列按任务分类,组成软件开发人员开发软件制品的“工作流”。“工作流”强调“人的活动”,目标是开发软件制品,其中蕴含开发人员使用的技术、工具和必须遵循的约束条件。第二章介绍了RUP的九个工作流,及在软件生存周期各阶段的工作量分布。2022-12-10国防科技大学计算机学院9软件项目管理的过程模型启动每个工作流都要完

    6、成某项任务,产生某些制品,都要使用一定的资源,必须满足一定的约束条件。如,需求工作流将系统工程师或用户以某种方式提供的系统功能和特征作为前置条件,通过需求获取、分析、建模活动生成用软件建模语言(如,UML)描述的软件需求规约。需求阶段的约束是需求文档的标准、表示法、需求预算、进度等。2022-12-10国防科技大学计算机学院10软件项目管理的过程模型软件团队选择软件过程模型时,有很大的灵活性,应根据项目需要确定过程模型。如果问题能很好地划分,时间紧,不可能完成所有功能,可采用增量模型,分期交付。如果项目需求不能完全确定、需求变更频繁可采用RUP迭代过程模型等。2022-12-10国防科技大学计

    7、算机学院1116.1.3 软件项目管理的原则W.Royce 总结了现代软件项目管理应该遵循的十条重要原则。体系结构优先的过程软件体系结构是软件需求、软件设计活动的关键制品。软件体系结构过程涉及软件项目全局,包括:软件项目计划、需求获取、描述、风险分析、软件体系结构设计等。软件体系结构过程与软件实现、交付、维护相比,涉及的人较少,工作量较小。软件项目管理的原则稳定、优质的体系结构是软件实现和交付的基础,可以避免软件上游缺陷蔓延到下游,减少软件制品返工和报废,避免时间和资源的浪费。软件体系结构基线是软件初始、软件细化阶段成熟的标志。体系结构优先的过程体现了软件体系结构在现代软件开发过程中的重要地位

    8、。2022-12-10国防科技大学计算机学院13软件项目管理的原则 风险驱动的迭代过程 软件开发存在许多不确定因素,存在许多风险。适时进行风险分析,提出化解风险的措施,驱动迭代过程,是保证软件开发过程按计划前行,软件制品随软件开发的迭代过程不断进化的有效途径。基于构件的设计 基于构件的软件设计可以降低软件复杂性,有效实施软件复用,提高软件质量,降低软件开发成本,缩短交付期限,提高软件项目计划和成本估算的准确性。2022-12-10国防科技大学计算机学院14软件项目管理的原则 建立配置和变更管理环境软件开发过程中变更不可避免,需求不能完全确定的项目只能在探索中前进。软件开发文档、中间制品很多,某

    9、一文档的变更通常会涉及相关文档,必须对这些文档进行相应的维护,保持软件制品的一致性。采用迭代、增量开发模型,面对不同的用户需求,项目团队将持续发布多种版本的软件制品。复杂多变的软件项目和制品,需要变更管理工具、配置数据库和配置管理系统的支持,人工不能完成这一任务。软件项目管理的原则 建立支持双向工程的工具和环境为了保持变更的一致性,软件工具和环境要支持正向工程和逆向工程。详细设计、代码的修改确定后,利用逆向工程工具和环境自动生成软件开发上游的体系结构和需求文档。正向和逆向工程的工具和环境相互配合,为可变更的迭代开发过程提供了灵活性,提高了软件开发的效率和软件制品的质量。2022-12-10国防

    10、科技大学计算机学院16软件项目管理的原则 用严格的、基于模型的符号描述设计制品程序设计语言是描述程序的工具,用于人与人、人与机器的交流,控制计算机的运行。程序设计语言是用一组符号按照严格的语法、语义、语用定义的。目前广泛使用统一建模语言UML,支持软件需求、设计和实现的全过程(实现过程需要Java、C+等程序设计语言的支持)。UML标准提供用例图、结构图(类图、对象图、包图)、行为图(交互图、状态图、顺序图、通信图)、构件图、部署图五类共十种图形建模表示法和OCL约束语言。软件项目管理的原则 为客观的质量控制插装验证和确认过程客观的软件质量强调软件制品的实际质量。在初始和细化阶段,只能通过检查

    11、、审查方式评估软件制品,软件的质量评估往往带有主观色彩。在软件开发过程中,设置关键点插装评估过程,对软件制品和过程进行严格检查和V&V可防止缺陷蔓延、减少制品报废和返工,提高软件制品质量。2022-12-10国防科技大学计算机学院18软件项目管理的原则 借助演示评估中间制品现代软件开发过程借助场景、用例描述需求。场景、用例具有直观、便捷、容易理解的优点。软件开发过程中借助演示,验证确认基于场景、用例的中间制品的演化过程,有利于团队成员的沟通,及时统一软件开发人员对软件制品的认识,减少因理解过失导致的软件制品缺陷,提高软件制品的评审质量和软件开发效率。2022-12-10国防科技大学计算机学院1

    12、9软件项目管理的原则 大量使用场景。按照场景细化等级,在软件生存周期的前期就开始持续的发布有用的软件版本。保持需求、设计和计划均衡进化。争取更多的投资回报。推广项目团队掌握的方法、技术、工具和经验,建立灵活的配置过程,在经济上争取更多的回报。2022-12-10国防科技大学计算机学院20软件项目管理的原则 现代软件项目管理要素是,人员、环境、质量、规模和过程。上述十项原则符合软件经济学基本规律:成本=(人员)(环境)(质量)(规模)(过程)人员:用演示方式进行沟通、不断发布用例进化细节,提高人员对项目、软件制品的理解和认识,避免误解和无效劳动。环境:建立软件双向工程的工具和环境,采用过程插装,

    13、进行客观的质量度量和控制,提高软件开发质量和效率。软件项目管理的原则质量:贯彻体系结构优先的原则,统一开发过程和语言,实施变更管理,加强环境基础建设,重视对项目和软件制品的V&V,提高软件制品的质量。规模:采用构件开发,统一开发过程的语言描述,利用多种途径降低复杂性,化解规模带来的压力。过程:采用迭代开发模型,实施可配置的过程改进,进行风险分析和管理,重视项目的过程复用,优化软件开发过程。成本和规模、过程的指数关系表明,减少规模,改进过程对降低成本的特殊重要性。人员、环境、质量、规模、过程的改进可减少大量文档,降低软件开发成本。软件项目管理的原则 按照上述原则进行软件项目管理是现代软件开发实践

    14、经验的总结,也是软件项目取得成功的关键。软件项目团队应根据自身的实际,在软件项目开发过程中灵活运用,并不断创造新的实践经验和原则。16.1.4 软件项目制品现代软件项目的管理过程与开发过程配套,多采用迭代方式。软件制品不是在生存周期的阶段内按照线性方式开发,而是采用迭代方式一起进化。进化过程中不仅要不断丰富、细化系统描述,还要对约束、抽象层次和自由度进行折衷,尽量保持软件制品细节的平衡。为了对软件项目实施管理,软件开发活动产生的制品通常划分为若干制品集,支持软件项目的开发活动。软件项目制品W.Royce将软件项目制品划分为:用文本语言描述的管理集 用文本和模型描述问题空间的需求集 用解空间模型

    15、描述的设计集 用程序设计语言及相关文档描述的实现集 用机器语言及相关文档描述的实施集2022-12-10国防科技大学计算机学院25软件项目制品 近年来用RUP过程开发软件项目已成为一种潮流。用强有力的、可视化的、具有严格语法和语义定义的统一建模语言UML支持体系结构优先策略开发的需求制品集和设计制品集是软件工程在技术上的重大进步。这些制品集是软件工程数据库的重要组成部分。下面从管理制品和工程制品两个方面分别介绍五类制品集。2022-12-10国防科技大学计算机学院261.管理制品集管理制品集即管理集,包括:工作分解 WBS和财务追踪制品成本、进度和利润预测、度量和统计业务案例制品描述软件制品范

    16、围、开发计划和发布基线的发布版规约软件项目开发计划基于基线的发布版说明书反映项目进展状态的验证和确认制品软件变更管理系统和软件配置管理系统管理制品集实施文档,包括:移交计划、用户培训课程、销售展示工具包等软件开发环境,包括:软件工具、文档、人员培训资料等管理集制品的形式有软件、文本、图形、图像、视频等项目相关人员应对管理集制品进行评审,按照里程碑进行展示评审管理集制品反映软件项目成本、进度、质量、项目变更、软件制品进化的情况2022-12-10国防科技大学计算机学院282.工程制品集工程制品集由需求集、设计集、实现集和实施集组成。制品集随时间进化,必须保证需求、设计、实现和实施制品之间的系统性

    17、、正确性和一致性。需求集用结构化文本描述构想、合同、管理需求、用户原型。用 UML描述需求模型,如用例模型和领域业务模型。需求集是评审设计集、实现集和实施集的主要依据,也是生成测试用例的基础。需求集制品用于 评审需求集与管理集规约的一致性 分析构想和需求模型的一致性 支持需求集、设计集、实现集和实施集制品描述的一致性和完整性,及版本变更等2022-12-10国防科技大学计算机学院30设计集 在不同的抽象层次上用UML描述设计模型,描述解空间的构件和属性,描述静态架构和动态活动等 利用设计模型的结构和行为信息可以直接或自动转换为实现集和实施集制品 设计集制品 设计模型、测试模型、软件体系结构描述

    18、 设计集制品评审 设计模型的一致性和质量,设计模型与需求模型的一致性和完整性,向实现集和实施集迁移的可追踪性,源代码生成、编译和链接问题,反映设计模型过程中出现的废品、返工和缺陷排除趋势的版本变更等 目前设计集制品质量主要靠人工评审。2022-12-10国防科技大学计算机学院31实现集 实现集制品 用程序设计语言描述的源代码,编译脚本、数据文档,单机环境下的构件可执行代码,自文档化的测试源代码基线、测试用例的输入和输出文档,及构件测试驱动程序的可执行代码,配置管理设施等。源代码表示构件、构件接口、依赖关系及实现。最终制品 可执行代码、可复用构件、遗留构件、定制构件、商业构件及应用程序接口(AP

    19、I)、程序设计语言(如Java、C+、Visual Basic或汇编)API组成。实现集制品通过编译或链接转换为实施集的可执行代码。实现集评估 测试构件或可执行文档,测试源代码与设计模型的一致性,分析实现集版本的一致性、完整性和变更趋势等。2022-12-10国防科技大学计算机学院32实施集 实施集制品 可执行的基线及运行时的文档和用户手册。交付给用户的机器语言的可执行软件、构造文档、安装脚本,以及在目标环境中使用该制品所需要的数据。在使用环境安装和执行实施集的源代码,支持最终制品的运行并发挥全部设计功能和性能。实施集测试和度量 按需求测试使用场景和质量属性,测试一致性、完整性;测试将实现集构

    20、件映射到实施系统的合理性、正确性;测试用户手册定义的使用场景;测试安装、面向用户的配置、日常使用及异常管理;分析实施集缺陷排除趋势和性能变更等。2022-12-10国防科技大学计算机学院33表16.1软件项目制品集需求集需求集构想文档构想文档需求模型需求模型设计集设计集设计模型设计模型测试模型测试模型体系结构描述体系结构描述实现集实现集源代码基线源代码基线编译文档编译文档可执行构件可执行构件实施集实施集可执行的集成可执行的集成化的制品集化的制品集运行文档运行文档用户手册用户手册管理集:计划制品管理集:计划制品 管理集:可操作制品管理集:可操作制品工作分解结构工作分解结构WBS 发布版说明书发布

    21、版说明书业务案例业务案例 V&V状态状态发布版规约发布版规约 配置和变更管理数据库配置和变更管理数据库软件开发计划软件开发计划 实施文档实施文档 环境环境讨论软件项目生成的制品和制品集讨论软件项目生成的制品和制品集的的目的是目的是,进一步了解进一步了解软件开发过程、了解软件开发制品及其描述。软件开发过程、了解软件开发制品及其描述。软件项目制品表16.2反映软件制品在工作流的作用下经历软件生存周期各个阶段的进化过程。软件项目管理的进一步讨论请参阅文献13112113115116128130。16.2 软件项目度量与估算 软件项目度量和估算是软件开发组织量化管理的重要内容,也是软件开发组织成熟度的

    22、标志。软件开发过程中对软件过程、项目和制品属性进行测量获得数据,再经过度量计算、度量分析获得重要的管理及技术指标。项目度量能够支持软件项目的计划、软件项目跟踪及控制,能够评估生成软件制品的质量,及时改进项目的工作流程和技术方法。软件开发组织的过程度量能够使软件开发组织从战略高度了解、改进软件过程,提升企业文化。项目度量和过程度量是软件开发组织的基础性工作,相互促进相互依存。软件项目度量与估算软件规模、可靠性、软件项目工作量、开发时间和过程生产率是软件和软件项目度量的核心要素。上一章讨论了软件规模和可靠性度量,这一章讨论软件项目的度量与估算。大型复杂软件项目的度量必须进行分解,采用自顶向下、自底

    23、向上、专家判断、经验公式等方法“分而治之”。对于规模较小的软件项目可参照类似项目或选用适宜的估算模型直接估算。软件开发工作量估算在软件项目估算中尤其重要,直接用于项目进度计划、成本估算和人员安排等。2022-12-10国防科技大学计算机学院3716.2.1 软件项目分解在软件项目策划的过程中,往往对软件项目的工作制品和过程进行层次分解,分解为较小的易于管理和开发的子系统或模块。借助软件项目管理的工作分解结构可采用自顶向下和自底向上方法进行估算。估算内容除各子系统或模块外还应考虑各子系统之间关联和系统级的工作量。如,软件风险分析、软件变更管理、软件配置管理、软件质量管理等。自顶向下方法步骤根据完

    24、成的类似软件项目的工作量或成本,估算待开发软件项目的工作量或成本W0。估算软件开发各项任务协调、交流、管理、集成和软件项目特殊要求的工作量W10软件开发工作量为 W20=W0-W10 2022-12-10国防科技大学计算机学院39自顶向下方法参照Boehm给出的软件生存周期各阶段工作量的基本分布(如表16.3所示),计算软件生存周期各阶段工作量 W2J0=pjW20 pj 是 W2j在W20中所占的百分比,j=1,2,k,于是 W20=W210+W220+W2K0 2022-12-10国防科技大学计算机学院40表16.3 Boehm统计的工作量分布 阶段阶段 制品规模制品规模2KDSI8KDS

    25、I32KDSI128KDSI计划与需求 +6%+6%+6%+6%概要设计 16%16%16%16%详细设计 26%25%24%23%编码与单元测试 42%40%38%36%集成与测试 16%19%22%25%表表16.3中中“计划与需求计划与需求”预置预置6%的附加工作量,用于团队获取的附加工作量,用于团队获取领域知识和经验、与客户合作、处理知识产权等问题,领域知识和经验、与客户合作、处理知识产权等问题,DSI表表示项目开发的有效的不含注释的源指令行。示项目开发的有效的不含注释的源指令行。软件项目分解Boehm给出的软件生存周期各阶段工作量的基本分布可根据今天的软件开发方法、环境和问题,软件开

    26、发组织的实际进行必要的调整。估算的各个部分的工作量带有主观成分,应根据项目的实际情况进行修改。软件开发过程中,及时统计实际工作量W2J,并与初始估算W2J0进行比较,以此为参考对尚无实际工作量的初始估算进行修正。自顶向下方法适用于软件开发早期,但不精确,需要在软件开发过程中不断调整、修正。自底向上方法利用软件项目管理的工作分解结构,自底向上估算各项任务的工作量(或成本),再逐步相加,得到待开发软件的总工作量(或成本)。Boehm给出了用自底向上方法进行软件估算的示例(如表16.4所示)。该方法的成效取决于工作分解结构的质量和稳定性。如果分解结构在软件开发过程中很少变更,估算的准确性较高。表16

    27、.4a 自底向上方法进行软件估算示例1构件:人机交构件:人机交互互开发者:王平开发者:王平日期:日期:阶 段任 务人天总计计划与需求组件需求开发计划718概要设计概要设计用户手册初稿测试计划84113详细设计用PDL描述的详细设计定义数据测试用例设计64515总计(人天)36表16.4b 自底向上方法进行软件估算示例2构件:人机交互构件:人机交互 开发者:张洁开发者:张洁日期:日期:阶 段任 务人天总计详细设计生成测试数据编写完整的用户手册6814编码与单元测试编码单元测试101222集成与集成测试集成集成测试编写文档57517 总计(人天)532022-12-10国防科技大学计算机学院45将

    28、各阶段工作量数据相加,得将各阶段工作量数据相加,得 w=36+53=89.(3)根据实验或历史数据根据实验或历史数据给出软件项目工作量或成本的经验估算公式。上述三种方法可以同时、单独或组合使用,取长补短、互相参考,提高项目估算的精度和可靠性。采用分解技术估算软件项目应考虑各项任务之间协调、系统集成时需要的工作量。为了实现软件项目估算,实践中开发了大量的软件项目自动估算工具,支持软件工作量或成本估算。软件项目分解传统软件工程的软件项目按照瀑布模型分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,再进行汇总,估算出整个项目的工作量和成本。现代软件工程的软件项目采用RUP过程,迭代模型,可按

    29、照初始、细化、构造阶段分解,分别估算工作量,也可以按照各个工作流统计工作量。积累软件开发组织和团队开发软件项目的历史数据,对开发组织的软件项目估算和管理十分必要。16.2.2 采用代码行、功能点度量的工作量估算软件项目的规模是影响软件项目成本和工作量的重要因素。较小的软件项目或模块可采用代码行和功能点估算,然后根据类似项目的专家经验换算成工作量和成本。采用上述估算方法可以估算出LOC或FP的乐观值a,悲观值b和一般值m,然后根据下列加权公式计算出期望值。E=(a4mb)6 采用代码行、功能点度量的工作量估算我们希望LOC或FP的值落在区间a,b之外的概率极小。当LOC或FP的期望值估算出来之后

    30、,根据以前软件项目开发的平均生产率,每人月代码行(LOC/PM),或每人月功能点(FP/PM)就可以计算出工作量。如,软件项目的规模估算为 310FP,以前完成类似软件项目的生产率为5.5FP/PM,于是工作量估算为E=310/5.5=56PM。如果当前估算的软件子项目比以前完成的项目复杂,所用的生产率值可以低于平均生产率,反之高于平均生产率。例16.1 估算计算机辅助设计(CAD)软件项目 将CAD项目按功能分解为七个子项目:用户界面和控制;二维几何分析;三维几何分析;数据库管理;计算机图形显示;外设控制;设计分析。表16.5给出七个子项目代码行的乐观估计、悲观估计和一般估算值,然后计算出加

    31、权平均值。分析七个子项目的规模、复杂性和难度,参照以前开发类似项目的经验给出开发每行代码的平均成本,每月开发的代码行数。用这两组数据计算出七个子项目的开发成本和工作量。最后汇总的CAD软件开发项目 规模为33 360LOC,成本为656 680$,工作量为144.5PM2022-12-10国防科技大学计算机学院50估算计算机辅助设计(CAD)软件项目再用第二种方法分别估算软件开发子项目在软件工程各个阶段的工作量,估算结果列入表16.6。两种方法估算的工作量分别为144.5PM和152.5PM,相差5%左右。估算的成本分别为656 680$和708 075$,相差7%左右。两种方法估算的工作量和

    32、成本基本一致。这个例子只给出估算方法的步骤和说明,具体数据不一定符合今天软件开发的实际状况。2022-12-10国防科技大学计算机学院51表16.5 基于功能分解的代码行、成本、工作量估算2022-12-10国防科技大学计算机学院52表16.6 功能和过程分解的工作量估2022-12-10国防科技大学计算机学院5316.2.3 软件项目的生产率度量管理人员希望在不同的软件过程和不同的环境中评估软件开发人员的生产率。传统模型的生产率度量是,用规模除以工作量。直接用于软件生产率度量是 代码行数人月 功能点数人月 对象点数人月这些度量没有反映影响生产率的许多其他重要因素,如代码质量,软硬件环境,复杂

    33、性等。2022-12-10国防科技大学计算机学院54软件项目的生产率度量图16.1的生产率模型从经济学的角度出发,用软件的价值和投入成本的比值度量生产率,并对软件的市场价值和成本进行了分解。生产率=软件制品价值/软件成本从经济学的角度定义生产率比较全面的反映了生产率和生产要素的关系。适用于软件组织和软件项目的生产率度量。模型没有指明各种要素对生产率的具体影响。只从管理的角度要求软件开发过程要降低成本、提高质量,开拓软件制品市场、增加发行数量,没有对软件开发人员提出提高生产率的具体技术措施。2022-12-10国防科技大学计算机学院55图 16.1 软件生产率模型2022-12-10国防科技大学

    34、计算机学院5616.2.4 一般经验估算模型 软件工作量估算模型是根据以前完成项目的实际数据导出的,用于新软件项目的计划阶段。导出的模型参数是“从前的”、“局部的”,估算模型不可能适用于当前所有的软件项目和全部开发环境,仅有一定的参考价值。2022-12-10国防科技大学计算机学院57一般经验估算模型估算工作量、进度和成本的一般算法模型:其中:E是以人月为单位的工作量 ev是以KLOC或FP为单位的规模估算变量 A,B,C是大量软件项目数据通过回归分析得出的经验常数 m(X)是项目调整因子,取值依赖于项目属性向量X2022-12-10国防科技大学计算机学院58CvEABmXe一般经验估算模型如

    35、,X=(项目复杂性,可靠性,人员经验,环境,)为向量X各元素定值是由定性到定量的估算过程。如,将项目复杂性为(高,较高,一般,较低,低)的属性量化为(1.0,0.9,0.8,0.7,0.6)形式。当某软件项目复杂性评估为“较高”时,向量元素“项目复杂性”取值为0.9.其余向量元素的定值如法炮制。得到向量X各元素的值后,可按各元素的重要程度加权求和,最后得m(X)的值。2022-12-10国防科技大学计算机学院59一般经验估算模型表16.7 给出几个基于代码行和功能点的估算模型,这些模型都是针对特定软件开发环境和项目数据库的数据得出的,应用时必须和具体的项目环境相结合,对参数进行修正,或修改项目

    36、调整因子中的向量元素。本节的其余部分介绍两个常用的估算模型:COCOMO模型、Putnam模型。2022-12-10国防科技大学计算机学院60表16.7 基于代码行和功能点的工作量估算模型基于代码行的模型基于代码行的模型 E=a(KLOC)b+cWalston-Felix a=5.200 b=0.910 c=0 Bailey-Basili a=0.730 b=1.160 c=5.5Doty(KLOC9)a=5.288 b=1.047 c=0基于功能点的模型基于功能点的模型 E=a+bFP Albrecht-Gaffney a=-91.40 b=0.355Kemerer a=-37.00 b=0

    37、.960小型项目回归模型小型项目回归模型 a=-12.88 b=0.4052022-12-10国防科技大学计算机学院6116.2.5 COCOMO模型1981年Boehm提出“构造性成本模型”,简称COCOMO模型(Constructive Cost Model)1989年COCOMO模型用于Ada软件开发2000年经进一步加工推出COCOMOCOCOMO模型被广泛应用,经历了三十年的进化取得了较好的效果。原始的COCOMO模型是在软件工程的结构化时代,广泛采用瀑布模型的历史背景下产生的,是1980年代软件工程的一项重要成果。2022-12-10国防科技大学计算机学院62COCOMO模型原始的

    38、COCOMO模型是一个静态、单变量经验模型。模型将规模作为工作量(或成本)估算的主要因素,根据多个领域的56个软件项目数据库,从工程和经济两个方面的大量测量数据,提取调节因子得出经验公式。公式描述了开发系统的工作量或时间与系统规模、制品、过程、项目和团队之间的关系。Boehm把软件生存周期划分为:计划需求、制品设计、详细设计、编码和单元测试、集成和系统测试 五个阶段。2022-12-10国防科技大学计算机学院63COCOMO模型COCOMO模型假设软件项目管理、设施、保障满足软件项目过程需要,这部分工作量不列入COCOMO模型的工作量估算范围;源代码行数不包括注释;开发过程的工作量估算从设计开

    39、始,计划和需求获取额外处理;一个人月包括152个小时。2022-12-10国防科技大学计算机学院64COCOMO模型COCOMO模型分为基本、中间、详细三个层次。基本COCOMO模型用于系统开发初期,软件制品设计阶段,估算整个系统的工作量(包括软件维护)和软件开发所需要的时间。中间COCOMO模型用于软件的详细设计阶段,估算各子系统的工作量和开发时间。详细COCOMO模型用于估算独立的软构件,如子系统内部各模块,软件的集成和测试。2022-12-10国防科技大学计算机学院65图16.2 软件项目工作量估算趋势随着软件开发的进展,能够提供的影响参数估算的消息逐步增多,精度越来越高,工作量的估算也

    40、趋于实际,但估算的预报功能也逐渐丧失软件开发过程终止时,软件开发工作量的估算值应收敛到核算值(如图 所示)。详细COCOMO请见133135。2022-12-10国防科技大学计算机学院661.基本COCOMO模型基本COCOMO模型具有下列形式:Ea(L)b (16-6)Dc(E)d (16-7)其中:E 表示工作量,单位是人月(PM)D 表示开发时间,单位是月(M)L 是项目的代码行估算值,单位是千行代码(KLOC)a,b,c,d是常数,取值如表16.8所示2022-12-10国防科技大学计算机学院67表16.8 基本COCOMO模型参数软件类型软件类型 a b c d 适用范围适用范围组织

    41、型组织型 2.4 1.05 2.5 0.38 各类应用程序各类应用程序半独立型半独立型 3.0 1.12 2.5 0.35 各类实用程序、编译程序等各类实用程序、编译程序等 嵌入型嵌入型 3.6 1.20 2.5 0.32 实时程序、控制程序、操作系统实时程序、控制程序、操作系统 公式给出了软件代码行数与工作量、工作量与开发时间的函数关系。Boehm把软件划分为组织型、半独立型和嵌入型三类,允许不同应用领域和复杂程度的软件按照上述三类软件的适用范围选取相应的参数a,b,c,d。2022-12-10国防科技大学计算机学院682.中间COCOMO模型软件类型软件类型ab组织型3.21.05半独立型

    42、3.01.12嵌入型2.81.20中间COCOMO模型以基本COCOMO模型为基础工作量估算公式中乘以工作量调节因子EAF,充分利用软件开发进入详细设计阶段的信息。中间COCOMO模型具有下列形式:E=a(L)b EAF (16-8)其中:L是项目的代码行估算值,单位是千行代码。a,b是常数,取值如表所示。2022-12-10国防科技大学计算机学院69中间COCOMO模型工作量调节因子EAF是软件项目15个要素的函数:软件制品属性(软件可靠性、软件复杂性、数据库的规模)计算机属性(程序执行时间、程序占用内存的大小、软件开发环境的变化、软件开发环境的响应速度)人员属性(分析员的能力、程序员的能力

    43、、有关应用领域的经验、开发环境的经验、程序设计语言的经验)软件项目属性(软件开发方法的能力,软件工具的质量和数量、软件开发的进度要求)。COCOMO模型要求为上述四种属性15个要素赋予要素调节因子Fi,i=1,2,.,15,Fi的值对应的属性状态可能是:很低、低、正常、高、很高、极高,共六级。Boehm推荐的Fi的取值范围如表16-10所示。正常情况下Fi=1。2022-12-10国防科技大学计算机学院70表16.10 COCOMO模型调节要素和 调节因子的范围调节要素调节要素i 调节因子调节因子Fi的范围的范围调节要素调节要素i 调节因子调节因子Fi的范围的范围制品属性可靠性 0.75-1.

    44、40 数据库规模 0.94-1.16软件复杂性 0.70-1.65人员属性分析员能力 1.46-0.71应用经验 1.29-0.82程序员能力 1.42-0.70虚拟机经验 1.21-0.90语言经验 1.14-0.95计算属性执行时间限制 1.00-1.66主存限制 1.00-1.56虚拟机的变更 0.87-1.30计算等待时间 0.87-1.15项目属性现代实践的使用 1.24-0.82软件工具的使用 1.24-0.83开发进度约束 1.23-1.102022-12-10国防科技大学计算机学院71中间COCOMO模型当15个Fi的值选定后,EAF的计算如下:(16-9)调节因子集的定义和调

    45、节因子定值是由统计结果和经验决定的。不同的软件开发组织,在不同的历史时期,随着环境的变化,软件开发的进展这些数据可能变化。显然,越到软件开发的中、后期调节因子的定值效果越好。使用中间COCOMO模型可以估算开发软件制品的工作量,比较各种开发方案对工作量的影响。2022-12-10国防科技大学计算机学院72151iiE A FF例16.2 用基本COCOMO模型估算例16.1的工作量、开发时间和参加项目开发的人数。在例16.1中,目标代码行数为33.3KLOC,CAD软件开发属于中等规模、半独立型从表16.9中查到 a=3.0,b=1.12。代入公式 E=3.0(L)1.12=3.0(33.3)

    46、1.12=152PM将E的估算值代入公式,并取 C=2.5,d=0.35 D=2.5(E)0.35=2.5(152)0.35=14.5 M N=E/D=152/14.5 11(人)2022-12-10国防科技大学计算机学院73中间COCOMO模型例16.2中计算出来的11人是粗略估计。在软件项目开发过程中,需要的11个人不可能都有相同的能力和个性,相同的经验和知识结构,并且在软件开发的各个阶段对人的要求也不同。若干人共同开发一个软件项目还应该增加他们之间相互通信和交换意见的额外工作量。N个程序员组成的小组,实现相同规模的程序,相互通信数为C2N=N(N-1)/2,设每次通信和交换意见的平均工作

    47、量为则增加的通信开销为:EcN(N-1)/2 (16-10)2022-12-10国防科技大学计算机学院74例 16.3 计算3人和5人开发一个程序的通信开销3人和5人开发一个程序相互通信和交换意见的关系如图16.3所示。将N=3和N=5分别代入公式Ec(3)3(3-1)/23Ec(5)5(5-1)/2102022-12-10国防科技大学计算机学院75 图图16.3 N=3和和N=5时的相互通信关系时的相互通信关系中间COCOMO模型由N个程序员组成的小组共同开发一个程序总的工作量 ET 满足:ET=E+Ec 于是,程序员小组的生产率是 PG=LOC/(E+Ec)程序员小组生产率和单个程序员生产

    48、率的比为:Rp=E/(E+Ec)随着程序员小组人数的增加EcN2/2,程序员小组的生产率将会下降。模型说明,盲目增加程序员人数会推迟软件完成的日期.2022-12-10国防科技大学计算机学院76中间COCOMO模型以静态单变量COCOMO模型为基础,还可以定义估算资源R的静态多变量模型:其中:ei表示软件第i个特性,ai,bi是与软件第i个特性有关的常数,由实验数据的回归分析确定。Boehm给出一个大型嵌入式软件项目的工作量和进度分布,如表16.11所示。一般软件项目COCOMO工作分解默认的工作量分配如表16.12所示。2022-12-10国防科技大学计算机学院771inbiiiRa e表1

    49、6.11 大型嵌入式软件项目的工作量和进度分布 活动活动 工作量工作量%时间时间%计划和需求计划和需求 +8 +36 制品设计制品设计 18 36 详细设计详细设计 25 18 代码和单元测试代码和单元测试 26 18 集成和集成测试集成和集成测试 31 282022-12-10国防科技大学计算机学院78表16.12 一般软件项目COCOMO工作分解默认的工作量分配 活动活动 工作量工作量%需求分析需求分析 4 制品设计制品设计 12 实现实现 44 测试计划测试计划 6 V&V 14 项目管理项目管理 7 配置管理和质量保证配置管理和质量保证 7 编写使用手册编写使用手册 62022-12-

    50、10国防科技大学计算机学院7916.2.6 COCOMO II模型二十世纪九十年代,迭代式软件开发过程、面向对象、基于构件、软件复用、使用四代语言4GL等方法应用广泛,网络软件逐步兴起,软件开发的制品、过程、方法、工具和环境有了很大变化系统中有些软件是自主开发的,有些是现成的,而另一些是经过维护后采用的。传统的COCOMO模型己不适应现代软件开发方法1995年Boehm对COCOMO模型进行了扩充,称COCOMO II,估算工作量的公式是 E=a(L)b EAFER 2022-12-10国防科技大学计算机学院80COCOMO II模型公式的第一项与公式(16-8)形式相同第二项ER表示复用构件

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:软件工程第16章软件项目管理与过程改进课件.pptx
    链接地址:https://www.163wenku.com/p-4444245.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库