软件工程第16章软件项目管理与过程改进课件.pptx
- 【下载声明】
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给出的软件生存周期各阶段工作量的基本分布可根据今天的软件开发方法、环境和问题,软件开
展开阅读全文