第16章软件项目管理与过程改进ppt课件.ppt

上传人:飞****2 文档编号:31819705 上传时间:2022-08-08 格式:PPT 页数:315 大小:5.02MB
返回 下载 相关 举报
第16章软件项目管理与过程改进ppt课件.ppt_第1页
第1页 / 共315页
第16章软件项目管理与过程改进ppt课件.ppt_第2页
第2页 / 共315页
点击查看更多>>
资源描述

《第16章软件项目管理与过程改进ppt课件.ppt》由会员分享,可在线阅读,更多相关《第16章软件项目管理与过程改进ppt课件.ppt(315页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 第十六章第十六章 软件项目管理与过程改进软件项目管理与过程改进软件工程软件工程( (第三版第三版) ) 齐治昌齐治昌 谭庆平谭庆平 宁洪宁洪 2012年年8月月第十六章第十六章 软件项目管理与过程改进软件项目管理与过程改进16.1 16.1 软件项目管理与过程模型软件项目管理与过程模型16.2 16.2 软件项目度量与估算软件项目度量与估算16.3 16.3 风险分析风险分析16.4 16.4 软件项目计划软件项目计划16.5 16.5 软件项目人员和组织软件项目人员和组织16.6 16.6 软件质量保证软件质量保证16.7 16.7 软件配置管理软件配置管理16.8 16.8 软件过程改进

2、软件过程改进2022-8-8国防科技大学计算机学院2软件项目管理与过程改进软件项目管理与过程改进软件管理是软件工程学科的重要组成部分,在软件管理是软件工程学科的重要组成部分,在软件生存周期中发挥着重要的作用。软件生存周期中发挥着重要的作用。软件开发过程中的软件管理称软件项目管理,软件开发过程中的软件管理称软件项目管理,直接关系到软件项目的成败。直接关系到软件项目的成败。软件配置管理贯穿整个软件生存周期,在软件软件配置管理贯穿整个软件生存周期,在软件开发过程中是软件项目管理的重要组成部分,开发过程中是软件项目管理的重要组成部分,在软件交付后是软件有效运行和维护的保障。在软件交付后是软件有效运行和

3、维护的保障。软件开发组织建设和过程改进是不断推出高质软件开发组织建设和过程改进是不断推出高质量软件制品的关键。量软件制品的关键。本章主要介绍软件项目管理、软件配置管理、本章主要介绍软件项目管理、软件配置管理、软件过程改进。软件过程改进。16.116.1软件项目管理与过程模型软件项目管理与过程模型本节主要介绍本节主要介绍软件项目管理的概念软件项目管理的概念软件项目管理的过程模型软件项目管理的过程模型软件项目管理的原则软件项目管理的原则软件项目制品软件项目制品16.1.116.1.1软件项目管理的概念软件项目管理的概念软件项目管理是软件工程的重要组成部分。软件项目管理是软件工程的重要组成部分。软件

4、项目已通过软件项目的可行性论证和立项的软件项目已通过软件项目的可行性论证和立项的法定程序。法定程序。软件项目可能是基于计算机的系统工程的一部分,软件项目可能是基于计算机的系统工程的一部分,也可能是独立的实体。也可能是独立的实体。 按照合同要求,软件项目应具有明确的目标、任按照合同要求,软件项目应具有明确的目标、任务、责任人、技术途径、资金投入、交付时间、务、责任人、技术途径、资金投入、交付时间、客户实体、利益相关方。客户实体、利益相关方。在面向领域的应用软件开发项目中,领域专家和在面向领域的应用软件开发项目中,领域专家和客户愿意和软件开发团队密切合作,客户愿意和软件开发团队密切合作,这这是项目

5、成是项目成功的关键。功的关键。2022-8-8国防科技大学计算机学院5软件项目管理的概念软件项目管理的概念软件工程是人的智力密集型劳动,软件是软件工程是人的智力密集型劳动,软件是逻辑制品,软件项目管理更要强调工作的逻辑制品,软件项目管理更要强调工作的计划性,人员、进度、制品的可控性,要计划性,人员、进度、制品的可控性,要及时进行软件项目的风险分析和管理。及时进行软件项目的风险分析和管理。客户与开发者必须在项目开发早期、软件客户与开发者必须在项目开发早期、软件需求工程的初始阶段完成下列需求工程的初始阶段完成下列六项六项任务任务。2022-8-8国防科技大学计算机学院6软件项目管理的概念软件项目管

6、理的概念 确定制品目标、范围,主要技术指标、功能确定制品目标、范围,主要技术指标、功能 和行为特性;和行为特性; 确定管理者和开发人员;确定管理者和开发人员; 进行成本估算;进行成本估算; 进行有效的风险分析、验证与确认;进行有效的风险分析、验证与确认; 给出恰当的项目任务划分;给出恰当的项目任务划分; 根据约束条件,如制品交付期限、预算、可根据约束条件,如制品交付期限、预算、可 用人员、技术接口等因素,选择用人员、技术接口等因素,选择“最佳最佳”方方 案,制定可管理的项目进度计划,给出明确案,制定可管理的项目进度计划,给出明确 的项目进展标志的项目进展标志, ,并将任务、责任落实到人。并将任

7、务、责任落实到人。2022-8-8国防科技大学计算机学院7软件项目管理的概念软件项目管理的概念19991999年,软件产业界的统计数据表明,年,软件产业界的统计数据表明,2626的软的软件项目彻底失败,件项目彻底失败,4646的项目成本和进度超出预的项目成本和进度超出预定计划。定计划。软件项目失败率仍然很高。软件项目失败率仍然很高。实践表明,良好的软件开发过程孕育着好的软件实践表明,良好的软件开发过程孕育着好的软件制品,制品,而而好的软件制品一般隐含良好的软件开发好的软件制品一般隐含良好的软件开发过程。过程。本节的其余部分介绍软件项目管理原则、软件项本节的其余部分介绍软件项目管理原则、软件项目

8、的管理模型、生存周期各阶段的软件制品。目的管理模型、生存周期各阶段的软件制品。16.1.2 16.1.2 软件项目管理的过程模型软件项目管理的过程模型第一章讨论了软件生存周期和软件开发的几种第一章讨论了软件生存周期和软件开发的几种模型。模型。生存周期及其划分涉及软件开发过程和过程生生存周期及其划分涉及软件开发过程和过程生成的制品。成的制品。软件开发过程分为线性过程和非线性过程两类。软件开发过程分为线性过程和非线性过程两类。瀑布模型是典型的线性过程模型。瀑布模型是典型的线性过程模型。增量模型、螺旋模型虽是迭代模型增量模型、螺旋模型虽是迭代模型, ,但本质上但本质上是瀑布模型的应用。是瀑布模型的应

9、用。统一过程统一过程RUPRUP是迭代的非线性模型,与瀑布模是迭代的非线性模型,与瀑布模型存在本质的区别。型存在本质的区别。这些模型既用于软件开发的技术过程,也用于这些模型既用于软件开发的技术过程,也用于软件开发的管理过程。软件开发的管理过程。软件项目管理的过程模型软件项目管理的过程模型软件开发的技术人员和管理人员在软件开发过程软件开发的技术人员和管理人员在软件开发过程中分工明确中分工明确, ,他们在模型中参与相应的活动,开发他们在模型中参与相应的活动,开发相应的制品。相应的制品。软件过程的活动序列按任务分类软件过程的活动序列按任务分类, ,组成软件开发人组成软件开发人员开发软件制品的员开发软

10、件制品的“工作流工作流”。“工作流工作流”强调强调“人的活动人的活动”,目标是开发软件,目标是开发软件制品,其中蕴含开发人员使用的技术、工具和必制品,其中蕴含开发人员使用的技术、工具和必须遵循的约束条件。须遵循的约束条件。第二章介绍了第二章介绍了RUPRUP的九个工作流,及在软件生存周的九个工作流,及在软件生存周期各阶段的工作量分布。期各阶段的工作量分布。2022-8-8国防科技大学计算机学院10软件项目管理的过程模型软件项目管理的过程模型启动每个工作流都要完成某项任务,产生某些制启动每个工作流都要完成某项任务,产生某些制品,都要使用一定的资源,必须满足一定的约束品,都要使用一定的资源,必须满

11、足一定的约束条件。条件。如,需求工作流将系统工程师或用户以某种方式如,需求工作流将系统工程师或用户以某种方式提供的系统功能和特征作为前置条件,通过需求提供的系统功能和特征作为前置条件,通过需求获取、分析、建模活动生成用软件建模语言(如,获取、分析、建模活动生成用软件建模语言(如,UMLUML)描述的软件需求规约。)描述的软件需求规约。需求阶段的约束是需求文档的标准、表示法、需需求阶段的约束是需求文档的标准、表示法、需求预算、进度等。求预算、进度等。2022-8-8国防科技大学计算机学院11软件项目管理的过程模型软件项目管理的过程模型软件团队选择软件过程模型时,有很大的灵活性,软件团队选择软件过

12、程模型时,有很大的灵活性,应根据项目需要确定过程模型。应根据项目需要确定过程模型。如果问题能很好地划分,时间紧,不可能完成所如果问题能很好地划分,时间紧,不可能完成所有功能,可采用增量模型,分期交付。有功能,可采用增量模型,分期交付。如果项目需求不能完全确定、需求变更频繁可采如果项目需求不能完全确定、需求变更频繁可采用用RUPRUP迭代过程模型等迭代过程模型等。2022-8-8国防科技大学计算机学院1216.1.3 16.1.3 软件项目管理的原则软件项目管理的原则W.Royce W.Royce 总结了现代软件项目管理应该遵循的十总结了现代软件项目管理应该遵循的十条重要原则。条重要原则。体系结

13、构优先的过程体系结构优先的过程软件体系结构是软件需求、软件设计活动的关键软件体系结构是软件需求、软件设计活动的关键制品。制品。软件体系结构过程涉及软件项目全局软件体系结构过程涉及软件项目全局, ,包括包括: :软件软件项目计划、需求获取、描述、风险分析、软件体项目计划、需求获取、描述、风险分析、软件体系结构设计等。系结构设计等。软件体系结构过程与软件实现、交付、维护相比,软件体系结构过程与软件实现、交付、维护相比,涉及的人较少,工作量较小。涉及的人较少,工作量较小。软件项目管理的原则软件项目管理的原则稳定、优质的体系结构是软件实现和交付的基础,稳定、优质的体系结构是软件实现和交付的基础,可以避

14、免软件上游缺陷蔓延到下游,减少软件制可以避免软件上游缺陷蔓延到下游,减少软件制品返工和报废,避免时间和资源的浪费。品返工和报废,避免时间和资源的浪费。软件体系结构基线是软件初始、软件细化阶段成软件体系结构基线是软件初始、软件细化阶段成熟的标志。熟的标志。体系结构优先的过程体现了软件体系结构在现代体系结构优先的过程体现了软件体系结构在现代软件开发过程中的重要地位。软件开发过程中的重要地位。2022-8-8国防科技大学计算机学院14软件项目管理的原则软件项目管理的原则 风险驱动的迭代过程风险驱动的迭代过程软件开发存在许多不确定因素,存在许多风险。软件开发存在许多不确定因素,存在许多风险。适时进行风

15、险分析,提出化解风险的措施,驱适时进行风险分析,提出化解风险的措施,驱动迭代过程,是保证软件开发过程按计划前行,动迭代过程,是保证软件开发过程按计划前行,软件制品随软件开发的迭代过程不断进化的有软件制品随软件开发的迭代过程不断进化的有效途径。效途径。 基于构件的设计基于构件的设计基于构件的软件设计可以降低软件复杂性,有基于构件的软件设计可以降低软件复杂性,有效实施软件复用,提高软件质量,降低软件开效实施软件复用,提高软件质量,降低软件开发成本,缩短交付期限,提高软件项目计划和发成本,缩短交付期限,提高软件项目计划和成本估算的准确性。成本估算的准确性。2022-8-8国防科技大学计算机学院15软

16、件项目管理的原则软件项目管理的原则 建立配置和变更管理环境建立配置和变更管理环境软件开发过程中变更不可避免软件开发过程中变更不可避免,需求不能完全确需求不能完全确定的项目只能在探索中前进。定的项目只能在探索中前进。软件开发文档、中间制品很多,某一文档的变更软件开发文档、中间制品很多,某一文档的变更通常会涉及相关文档,必须对这些文档进行相应通常会涉及相关文档,必须对这些文档进行相应的维护,保持软件制品的一致性。的维护,保持软件制品的一致性。采用迭代、增量开发模型,面对不同的用户需求,采用迭代、增量开发模型,面对不同的用户需求,项目团队将持续发布多种版本的软件制品。项目团队将持续发布多种版本的软件

17、制品。复杂多变的软件项目和制品复杂多变的软件项目和制品, ,需要需要变更管理工具、变更管理工具、配置数据库和配置管理系统的支持,人工配置数据库和配置管理系统的支持,人工不能不能完完成这一任务。成这一任务。软件项目管理的原则软件项目管理的原则 建立支持双向工程的工具和环境建立支持双向工程的工具和环境为了保持变更的一致性,软件工具和环境要支持为了保持变更的一致性,软件工具和环境要支持正向工程正向工程和和逆向工程。逆向工程。详细设计、代码的修改确定后,利用逆向工程工详细设计、代码的修改确定后,利用逆向工程工具和环境自动生成软件开发上游的体系结构和需具和环境自动生成软件开发上游的体系结构和需求文档。求

18、文档。正向和逆向工程的工具和环境相互配合,为可变正向和逆向工程的工具和环境相互配合,为可变更的迭代开发过程提供了灵活性,提高了软件开更的迭代开发过程提供了灵活性,提高了软件开发的效率和软件制品的质量。发的效率和软件制品的质量。2022-8-8国防科技大学计算机学院17软件项目管理的原则软件项目管理的原则 用严格的、基于模型的符号描述设计制品用严格的、基于模型的符号描述设计制品程序设计语言是描述程序的工具,用于人与人、程序设计语言是描述程序的工具,用于人与人、人与机器的交流,控制计算机的运行。人与机器的交流,控制计算机的运行。程序设计语言是用一组符号按照严格的语法、语程序设计语言是用一组符号按照

19、严格的语法、语义、语用定义的。义、语用定义的。目前广泛使用统一建模语言目前广泛使用统一建模语言UMLUML,支持软件需求、支持软件需求、设计和实现的全过程(实现过程需要设计和实现的全过程(实现过程需要JavaJava、C+C+等等程序设计语言的支持)。程序设计语言的支持)。UMLUML标准提供用例图、结构图(类图、对象图、包标准提供用例图、结构图(类图、对象图、包图)、行为图(交互图、状态图、顺序图、通信图)、行为图(交互图、状态图、顺序图、通信图)、构件图、部署图五类共十种图形建模表示图)、构件图、部署图五类共十种图形建模表示法和法和OCLOCL约束语言约束语言。软件项目管理的原则软件项目管

20、理的原则 为客观的质量控制插装验证和确认过程为客观的质量控制插装验证和确认过程客观的软件质量强调软件制品的实际质量。客观的软件质量强调软件制品的实际质量。在初始和细化阶段,只能通过检查、审查方式评在初始和细化阶段,只能通过检查、审查方式评估软件制品,软件的质量评估往往带有主观色彩。估软件制品,软件的质量评估往往带有主观色彩。在软件开发过程中,设置关键点插装评估过程,在软件开发过程中,设置关键点插装评估过程,对软件制品和过程进行严格检查和对软件制品和过程进行严格检查和V&VV&V可防止缺陷可防止缺陷蔓延、减少制品报废和返工,提高软件制品质量。蔓延、减少制品报废和返工,提高软件制品质量。2022-

21、8-8国防科技大学计算机学院19软件项目管理的原则软件项目管理的原则 借助演示评估中间制品借助演示评估中间制品现代软件开发过程借助场景、用例描述需求。现代软件开发过程借助场景、用例描述需求。场景、用例具有直观、便捷、容易理解的优点。场景、用例具有直观、便捷、容易理解的优点。软件开发过程中借助演示,验证确认基于场景、软件开发过程中借助演示,验证确认基于场景、用例的中间制品的演化过程,有利于团队成员的用例的中间制品的演化过程,有利于团队成员的沟通,及时统一软件开发人员对软件制品的认识,沟通,及时统一软件开发人员对软件制品的认识,减少因理解过失导致的软件制品缺陷,提高软件减少因理解过失导致的软件制品

22、缺陷,提高软件制品的评审质量和软件开发效率。制品的评审质量和软件开发效率。2022-8-8国防科技大学计算机学院20软件项目管理的原则软件项目管理的原则 大量使用场景。大量使用场景。按照场景细化等级,在软件生存周期的前期就开按照场景细化等级,在软件生存周期的前期就开始持续的发布有用的软件版本。始持续的发布有用的软件版本。保持需求、设计和计划均衡进化。保持需求、设计和计划均衡进化。 争取更多的投资回报。争取更多的投资回报。推广项目团队掌握的方法、技术、工具和经验,推广项目团队掌握的方法、技术、工具和经验,建立灵活的配置过程,在经济上争取更多的回报。建立灵活的配置过程,在经济上争取更多的回报。20

23、22-8-8国防科技大学计算机学院21软件项目管理的原则软件项目管理的原则现代软件项目管理要素是,人员、环境、质量、现代软件项目管理要素是,人员、环境、质量、规模和过程。规模和过程。上述十项原则符合软件经济学基本规律:上述十项原则符合软件经济学基本规律:成本成本 = =(人员)(人员)(环境)(环境)(质量)(质量)(规模)(规模)(过程(过程) 人员:用演示方式进行沟通、不断发布用例进人员:用演示方式进行沟通、不断发布用例进化细节,提高人员对项目、软件制品的理解和化细节,提高人员对项目、软件制品的理解和认识,避免误解和无效劳动。认识,避免误解和无效劳动。环境:建立软件双向工程的工具和环境,采

24、用环境:建立软件双向工程的工具和环境,采用过程插装,进行客观的质量度量和控制,提高过程插装,进行客观的质量度量和控制,提高软件开发质量和效率。软件开发质量和效率。软件项目管理的原则软件项目管理的原则质量:贯彻体系结构优先的原则,统一开发过程质量:贯彻体系结构优先的原则,统一开发过程和语言,实施变更管理,加强环境基础建设,重和语言,实施变更管理,加强环境基础建设,重视对项目和软件制品的视对项目和软件制品的V&VV&V,提高软件制品的质量。,提高软件制品的质量。规模:采用构件开发,统一开发过程的语言描述,规模:采用构件开发,统一开发过程的语言描述,利用多种途径降低复杂性,化解规模带来的压力。利用多

25、种途径降低复杂性,化解规模带来的压力。过程:采用迭代开发模型,实施可配置的过程改过程:采用迭代开发模型,实施可配置的过程改进,进行风险分析和管理,重视项目的过程复用,进,进行风险分析和管理,重视项目的过程复用,优化软件开发过程。优化软件开发过程。成本和规模、过程的指数关系表明成本和规模、过程的指数关系表明, ,减少规模,改减少规模,改进过程对降低成本的特殊重要性。进过程对降低成本的特殊重要性。人员、环境、质量、规模、过程的改进可减少大人员、环境、质量、规模、过程的改进可减少大量文档,降低软件开发成本。量文档,降低软件开发成本。软件项目管理的原则软件项目管理的原则按照上述原则进行软件项目管理是现

26、代软按照上述原则进行软件项目管理是现代软件开发实践经验的总结,也是软件项目取件开发实践经验的总结,也是软件项目取得成功的关键。得成功的关键。软件项目团队应根据自身的实际,在软件软件项目团队应根据自身的实际,在软件项目开发过程中灵活运用,并不断创造新项目开发过程中灵活运用,并不断创造新的实践经验和原则。的实践经验和原则。 16.1.4 16.1.4 软件项目制品软件项目制品现代软件项目的管理过程与开发过程配套,多采现代软件项目的管理过程与开发过程配套,多采用迭代方式。用迭代方式。软件制品不是在生存周期的阶段内按照线性方式软件制品不是在生存周期的阶段内按照线性方式开发,而是采用迭代方式一起进化。开

27、发,而是采用迭代方式一起进化。进化过程中不仅要不断丰富、细化系统描述,还进化过程中不仅要不断丰富、细化系统描述,还要对约束、抽象层次和自由度进行折衷,尽量保要对约束、抽象层次和自由度进行折衷,尽量保持软件制品细节的平衡。持软件制品细节的平衡。为了对软件项目实施管理,软件开发活动产生的为了对软件项目实施管理,软件开发活动产生的制品通常划分为若干制品集,支持软件项目的开制品通常划分为若干制品集,支持软件项目的开发活动。发活动。软件项目制品软件项目制品W.RoyceW.Royce将软件项目制品划分为:将软件项目制品划分为:用文本语言描述的管理集用文本语言描述的管理集用文本和模型描述问题空间的需求集用

28、文本和模型描述问题空间的需求集用解空间模型描述的设计集用解空间模型描述的设计集用程序设计语言及相关文档描述的实现集用程序设计语言及相关文档描述的实现集用机器语言及相关文档描述的实施集用机器语言及相关文档描述的实施集2022-8-8国防科技大学计算机学院26软件项目制品软件项目制品近年来用近年来用RUPRUP过程开发软件项目已成为一种过程开发软件项目已成为一种潮流。潮流。用强有力的、可视化的、具有严格语法和用强有力的、可视化的、具有严格语法和语义定义的统一建模语言语义定义的统一建模语言UMLUML支持体系结构支持体系结构优先策略开发的需求制品集和设计制品集优先策略开发的需求制品集和设计制品集是软

29、件工程在技术上的重大进步。是软件工程在技术上的重大进步。这些制品集是软件工程数据库的重要组成这些制品集是软件工程数据库的重要组成部分。部分。下面从管理制品和工程制品两个方面分别下面从管理制品和工程制品两个方面分别介绍五类制品集介绍五类制品集。2022-8-8国防科技大学计算机学院271.1.管理制品集管理制品集管理制品集即管理集,包括:管理制品集即管理集,包括:工作分解工作分解 WBS WBS和财务追踪制品和财务追踪制品成本、进度和利润预测、度量和统计业务案例制品成本、进度和利润预测、度量和统计业务案例制品描述软件制品范围、开发计划和发布基线的发布版描述软件制品范围、开发计划和发布基线的发布版

30、规约规约软件项目开发计划软件项目开发计划基于基线的发布版说明书基于基线的发布版说明书反映项目进展状态的验证和确认制品反映项目进展状态的验证和确认制品软件变更管理系统和软件配置管理系统软件变更管理系统和软件配置管理系统管理制品集管理制品集实施文档实施文档, ,包括:移交计划、用户培训课程、销售包括:移交计划、用户培训课程、销售展示工具包等展示工具包等软件开发环境,包括:软件工具、文档、人员培软件开发环境,包括:软件工具、文档、人员培训资料等训资料等管理集制品的形式有软件、文本、图形、图像、管理集制品的形式有软件、文本、图形、图像、视频等视频等项目相关人员应对管理集制品进行评审,按照里项目相关人员

31、应对管理集制品进行评审,按照里程碑进行展示程碑进行展示评审管理集制品反映软件项目成本、进度、质量、评审管理集制品反映软件项目成本、进度、质量、项目变更、软件制品进化的情况项目变更、软件制品进化的情况2022-8-8国防科技大学计算机学院292.2.工程制品集工程制品集工程制品集由需求集、设计集、实现集和实施集工程制品集由需求集、设计集、实现集和实施集组成。组成。制品集随时间进化,必须保证需求、设计、实现制品集随时间进化,必须保证需求、设计、实现和实施制品之间的系统性、正确性和一致性。和实施制品之间的系统性、正确性和一致性。需求集需求集用结构化文本描述构想、合同、管理需求、用户用结构化文本描述构

32、想、合同、管理需求、用户原型。原型。用用 UML UML描述需求模型,如用例模型和领域业务模描述需求模型,如用例模型和领域业务模型。需求集是评审设计集、实现集和实施集的主型。需求集是评审设计集、实现集和实施集的主要依据,也是生成测试用例的基础。要依据,也是生成测试用例的基础。需求集制品用于需求集制品用于评审需求集与管理集规约的一致性评审需求集与管理集规约的一致性分析构想和需求模型的一致性分析构想和需求模型的一致性支持需求集、设计集、实现集和实施集制品描支持需求集、设计集、实现集和实施集制品描述的一致性和完整性述的一致性和完整性, ,及版本变更等及版本变更等2022-8-8国防科技大学计算机学院

33、31设计集设计集在不同的抽象层次上用在不同的抽象层次上用UMLUML描述设计模型,描述解空间的描述设计模型,描述解空间的构件和属性,描述静态架构和动态活动等构件和属性,描述静态架构和动态活动等利用利用设计模型的结构和行为信息可以直接或自动转换为实设计模型的结构和行为信息可以直接或自动转换为实现集和实施集制品现集和实施集制品设计集制品设计集制品 设计模型、测试模型设计模型、测试模型、软件体系结构描述软件体系结构描述设计集制品评审设计集制品评审 设计模型的一致性和质量,设计模型与需求模型的一致性设计模型的一致性和质量,设计模型与需求模型的一致性和完整性,向实现集和实施集迁移的可追踪性,源代码生和完

34、整性,向实现集和实施集迁移的可追踪性,源代码生成、编译和链接问题,反映设计模型过程中出现的废品、成、编译和链接问题,反映设计模型过程中出现的废品、返工和缺陷排除趋势的版本变更等返工和缺陷排除趋势的版本变更等目前设计集制品质量主要靠人工评审。目前设计集制品质量主要靠人工评审。2022-8-8国防科技大学计算机学院32实现集实现集实现集制品实现集制品 用程序设计语言描述的源代码,编译脚本、数据文档,用程序设计语言描述的源代码,编译脚本、数据文档,单机环境下的构件可执行代码,自文档化的测试源代码单机环境下的构件可执行代码,自文档化的测试源代码基线、测试用例的输入和输出文档,及构件测试驱动程基线、测试

35、用例的输入和输出文档,及构件测试驱动程序的可执行代码,配置管理设施等。序的可执行代码,配置管理设施等。源代码表示构件、构件接口、依赖关系及实现。源代码表示构件、构件接口、依赖关系及实现。最终制品最终制品 可执行代码、可复用构件、遗留构件、定制构件、商业可执行代码、可复用构件、遗留构件、定制构件、商业构件及应用程序接口构件及应用程序接口(API)(API)、程序设计语言(如、程序设计语言(如JavaJava、C+C+、Visual BasicVisual Basic或汇编)或汇编)APIAPI组成。组成。实现集制品通过编译或链接转换为实施集的可执行代码。实现集制品通过编译或链接转换为实施集的可执

36、行代码。实现集评估实现集评估 测试构件或可执行文档,测试源代码与设计模型的一致测试构件或可执行文档,测试源代码与设计模型的一致性,分析实现集版本的一致性、完整性和变更趋势等。性,分析实现集版本的一致性、完整性和变更趋势等。 2022-8-8国防科技大学计算机学院33实施集实施集实施集制品实施集制品 可执行的基线及运行时的文档和用户手册。可执行的基线及运行时的文档和用户手册。 交付给用户的机器语言的可执行软件、构造文档、安装脚交付给用户的机器语言的可执行软件、构造文档、安装脚本,以及在目标环境中使用该制品所需要的数据。本,以及在目标环境中使用该制品所需要的数据。 在使用环境安装和执行实施集的源代

37、码,支持最终制品的在使用环境安装和执行实施集的源代码,支持最终制品的运行并发挥全部设计功能和性能。运行并发挥全部设计功能和性能。实施集测试和度量实施集测试和度量 按需求测试使用场景和质量属性,测试一致性、完整性;按需求测试使用场景和质量属性,测试一致性、完整性; 测试将实现集构件映射到实施系统的合理性、正确性;测试将实现集构件映射到实施系统的合理性、正确性; 测试用户手册定义的使用场景;测试用户手册定义的使用场景; 测试安装、面向用户的配置、日常使用及异常管理;测试安装、面向用户的配置、日常使用及异常管理; 分析实施集缺陷排除趋势和性能变更等。分析实施集缺陷排除趋势和性能变更等。2022-8-

38、8国防科技大学计算机学院34表表16.116.1软件项目制品集软件项目制品集需求集需求集构想文档构想文档需求模型需求模型设计集设计集设计模型设计模型测试模型测试模型体系结构描述体系结构描述实现集实现集源代码基线源代码基线编译文档编译文档可执行构件可执行构件实施集实施集可执行的集成可执行的集成化的制品集化的制品集运行文档运行文档用户手册用户手册管理集:计划制品管理集:计划制品 管理集:可操作制品管理集:可操作制品工作分解结构工作分解结构WBS 发布版说明书发布版说明书业务案例业务案例 V&V状态状态发布版规约发布版规约 配置和变更管理数据库配置和变更管理数据库软件开发计划软件开发计划 实施文档实

39、施文档 环境环境讨论软件项目生成的制品和制品集讨论软件项目生成的制品和制品集的的目的是目的是,进一步了解进一步了解软件开发过程、了解软件开发制品及其描述。软件开发过程、了解软件开发制品及其描述。软件项目制品软件项目制品表表16.216.2反映反映软件制品在工作流的作用下经历软件软件制品在工作流的作用下经历软件生存周期各个阶段的进化过程。生存周期各个阶段的进化过程。软件项目管理的进一步讨论请参阅文献软件项目管理的进一步讨论请参阅文献1311211311511612813013112113115116128130。16.2 16.2 软件项目度量与估算软件项目度量与估算 软件项目度量和估算是软件开

40、发组织量化管理的重软件项目度量和估算是软件开发组织量化管理的重要内容,也是软件开发组织成熟度的标志。要内容,也是软件开发组织成熟度的标志。软件开发过程中对软件过程、项目和制品属性进行软件开发过程中对软件过程、项目和制品属性进行测量获得数据,再经过度量计算、度量分析获得重测量获得数据,再经过度量计算、度量分析获得重要的管理及技术指标。要的管理及技术指标。项目度量能够支持软件项目的计划、软件项目跟踪项目度量能够支持软件项目的计划、软件项目跟踪及控制,能够评估生成软件制品的质量,及时改进及控制,能够评估生成软件制品的质量,及时改进项目的工作流程和技术方法。项目的工作流程和技术方法。软件开发组织的过程

41、度量能够使软件开发组织从战软件开发组织的过程度量能够使软件开发组织从战略高度了解、改进软件过程略高度了解、改进软件过程, , 提升企业文化。提升企业文化。项目度量和过程度量是软件开发组织的基础性工作项目度量和过程度量是软件开发组织的基础性工作, ,相互促进相互依存。相互促进相互依存。软件项目度量与估算软件项目度量与估算软件规模、可靠性、软件项目工作量、开发时间软件规模、可靠性、软件项目工作量、开发时间和过程生产率是软件和软件项目度量的核心要素。和过程生产率是软件和软件项目度量的核心要素。上一章讨论了软件规模和可靠性度量,这一章讨上一章讨论了软件规模和可靠性度量,这一章讨论软件项目的度量与估算。

42、论软件项目的度量与估算。大型复杂软件项目的度量必须进行分解大型复杂软件项目的度量必须进行分解, ,采用自顶采用自顶向下、自底向上、专家判断、经验公式等方法向下、自底向上、专家判断、经验公式等方法“分而治之分而治之”。对于规模较小的软件项目可参照类似项目或选用对于规模较小的软件项目可参照类似项目或选用适宜的估算模型直接估算。适宜的估算模型直接估算。软件开发工作量估算在软件项目估算中尤其重要软件开发工作量估算在软件项目估算中尤其重要, ,直接用于项目进度计划、成本估算和人员安排等。直接用于项目进度计划、成本估算和人员安排等。2022-8-8国防科技大学计算机学院3816.2.1 16.2.1 软件

43、项目分解软件项目分解在软件项目策划的过程中,往往对软件项目的工在软件项目策划的过程中,往往对软件项目的工作制品和过程进行层次分解,分解为较小的易于作制品和过程进行层次分解,分解为较小的易于管理和开发的子系统或模块。管理和开发的子系统或模块。借助软件项目管理的工作分解结构可采用自顶向借助软件项目管理的工作分解结构可采用自顶向下和自底向上方法进行估算。下和自底向上方法进行估算。估算内容除各子系统或模块外还应考虑各子系统估算内容除各子系统或模块外还应考虑各子系统之间关联和系统级的工作量。之间关联和系统级的工作量。如如,软件风险分析、软件变更管理、软件配置管软件风险分析、软件变更管理、软件配置管理、软

44、件质量管理等。理、软件质量管理等。 自顶向下方法自顶向下方法步骤步骤根据完成的类似软件项目的工作量或成本,估算根据完成的类似软件项目的工作量或成本,估算待开发软件项目的工作量或成本待开发软件项目的工作量或成本W W0 0。估算软件开发各项任务协调、交流、管理、集成估算软件开发各项任务协调、交流、管理、集成和软件项目特殊要求的工作量和软件项目特殊要求的工作量W W1 10 0软件开发工作量为软件开发工作量为 W W2 20 0 = W = W0 0 - W - W1 10 0 2022-8-8国防科技大学计算机学院40自顶向下方法自顶向下方法参照参照BoehmBoehm给出的软件生存周期各阶段工

45、作量的基给出的软件生存周期各阶段工作量的基本分布(如表本分布(如表16.316.3所示),计算软件生存周期各所示),计算软件生存周期各阶段工作量阶段工作量 W W2J2J0 0 = p = pj jWW2 20 0 p pj j 是是 W W2j2j在在W W2 20 0中所占的百分比,中所占的百分比,j=1,2,k,j=1,2,k,于是于是 W W2 20 0 = W= W21210 0 + W+ W22220 0 + + + W+ W2K2K0 0 2022-8-8国防科技大学计算机学院41表表16.3 Boehm16.3 Boehm统计的工作量分布统计的工作量分布 阶段阶段 制品规模制品

46、规模2KDSI8KDSI32KDSI128KDSI计划与需求 +6% +6% +6% +6%概要设计 16% 16% 16% 16%详细设计 26% 25% 24% 23%编码与单元测试 42% 40% 38% 36%集成与测试 16% 19% 22% 25%表表16.3中中“计划与需求计划与需求”预置预置6%的附加工作量,用于团队获取的附加工作量,用于团队获取领域知识和经验、与客户合作、处理知识产权等问题,领域知识和经验、与客户合作、处理知识产权等问题,DSI表表示项目开发的有效的不含注释的源指令行。示项目开发的有效的不含注释的源指令行。软件项目分解软件项目分解BoehmBoehm给出的软件

47、生存周期各阶段工作量的基给出的软件生存周期各阶段工作量的基本分布可根据今天的软件开发方法、环境和问本分布可根据今天的软件开发方法、环境和问题,软件开发组织的实际进行必要的调整。题,软件开发组织的实际进行必要的调整。估算的各个部分的工作量带有主观成分,估算的各个部分的工作量带有主观成分,应应根根据项目的实际情况进行修改。据项目的实际情况进行修改。软件开发过程中,及时统计实际工作量软件开发过程中,及时统计实际工作量W W2J2J,并与初始估算并与初始估算W W2J2J0 0进行比较,以此为参考对尚进行比较,以此为参考对尚无实际工作量的初始估算进行修正。无实际工作量的初始估算进行修正。自顶向下方法适

48、用于软件开发早期,但不精确,自顶向下方法适用于软件开发早期,但不精确,需要在软件开发过程中不断调整、修正。需要在软件开发过程中不断调整、修正。自底向上方法自底向上方法利用软件项目管理的工作分解结构,自底向上估利用软件项目管理的工作分解结构,自底向上估算各项任务的工作量(或成本),再逐步相加,算各项任务的工作量(或成本),再逐步相加,得到待开发软件的总工作量(或成本)。得到待开发软件的总工作量(或成本)。BoehmBoehm给出了用自底向上方法进行软件估算的示例给出了用自底向上方法进行软件估算的示例(如表(如表16.416.4所示)。所示)。该方法的成效取决于工作分解结构的质量和稳定该方法的成效

49、取决于工作分解结构的质量和稳定性。性。如果分解结构在软件开发过程中很少变更,估算如果分解结构在软件开发过程中很少变更,估算的准确性较高。的准确性较高。表表16.4a 16.4a 自底向上方法进行软件估自底向上方法进行软件估算示例算示例1 1构件:人机交互构件:人机交互 开发者:王平开发者:王平日期:日期:阶 段任 务人天总计计划与需求组件需求开发计划718概要设计概要设计用户手册初稿测试计划84113详细设计用PDL描述的详细设计定义数据测试用例设计64515总计(人天)36表表16.4b 16.4b 自底向上方法进行软件估自底向上方法进行软件估算示例算示例2 2构件:人机交互构件:人机交互开

50、发者:张洁开发者:张洁日期:日期:阶 段任 务人天总计详细设计生成测试数据编写完整的用户手册6814编码与单元测试编码单元测试101222集成与集成测试集成集成测试编写文档57517 总计(人天)532022-8-8国防科技大学计算机学院46将各阶段工作量数据相加,得将各阶段工作量数据相加,得 w=36+53=89.(3)(3)根据实验或历史数据根据实验或历史数据根据实验或历史数据给出软件项目工作量或成本根据实验或历史数据给出软件项目工作量或成本的经验估算公式。的经验估算公式。上述三种方法可以同时、单独或组合使用,取长上述三种方法可以同时、单独或组合使用,取长补短、互相参考,提高项目估算的精度

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁