软件工程软件工程 第十一讲第十一讲 面向对象设计过程面向对象设计过程 - UP- UP 朱建凯朱建凯上节课思考题:上节课思考题:•有没有可能在分析模型创建之后立即开始编码?本次课程学习要求本次课程学习要求•UML和和UP之间的关系(重要)之间的关系(重要)•UP 的本质和特点(非常重要)的本质和特点(非常重要)•UP 的四个阶段(重要)的四个阶段(重要)•UP 的六个基本过程(重要)的六个基本过程(重要)•UP 的六个优秀实践(了解)的六个优秀实践(了解)第七章第七章 统一软件过程统一软件过程(UP) 7.1 UP的作用和特点的作用和特点 (1) UML是一种可视化的建模语言,而不是一种特定的软是一种可视化的建模语言,而不是一种特定的软件开发方法学作为一种软件开发方法学,为了支持软件开发方法学作为一种软件开发方法学,为了支持软件开发活动,例如软件设计,至少涉及三方面的内容:件开发活动,例如软件设计,至少涉及三方面的内容:一是应定义设计抽象层,即给出该层的一些术语,二是一是应定义设计抽象层,即给出该层的一些术语,二是应给出该层的模型表达工具,三是应给出如何把需求层应给出该层的模型表达工具,三是应给出如何把需求层的模型映射为设计层的模型,即过程。
的模型映射为设计层的模型,即过程UML仅包括前两仅包括前两方面的内容,即给出了一些可用于定义软件开发各抽象方面的内容,即给出了一些可用于定义软件开发各抽象层的术语(符号),给出了各层表达模型的工具层的术语(符号),给出了各层表达模型的工具 (2) UP的本质及特点的本质及特点 本质本质: 是是“一般的过程框架一般的过程框架 ” . 即即: --为软件开发,进行不同抽象层之间为软件开发,进行不同抽象层之间“映射映射”,安排其开,安排其开发活动的次序,指定任务和需要开发的制品,提供了指导;发活动的次序,指定任务和需要开发的制品,提供了指导; --为对项目中的制品和活动进行监控与度量,提供了相应的为对项目中的制品和活动进行监控与度量,提供了相应的准则 换言之,换言之,UP比较完整地定义了将用户需求转换成产品所需比较完整地定义了将用户需求转换成产品所需要的活动集,并提供了活动指南以及对产生相关文档的要求要的活动集,并提供了活动指南以及对产生相关文档的要求 适用于:大多数软件系统的开发,涉及适用于:大多数软件系统的开发,涉及 - -不同应用领域不同应用领域 - -不同类型的组织不同类型的组织 - -不同的技能水平不同的技能水平 - -不同的项目规模不同的项目规模 可见可见, UP , UP 和和UML UML 是是“统一统一”的方法学。
的方法学UP的突出特点的突出特点 是一种以用况(是一种以用况(Use Case)为驱动的、以体系结构为中心的、)为驱动的、以体系结构为中心的、迭代、增量式开发迭代、增量式开发 以用况为驱动以用况为驱动 意指在系统的生存周期中,意指在系统的生存周期中,以用况作为基础,驱动有关以用况作为基础,驱动有关人员对所要建立系统之功能人员对所要建立系统之功能需求进行交流,驱动系统分需求进行交流,驱动系统分析、设计、实现和测试等活析、设计、实现和测试等活动,包括制定计划、分配任动,包括制定计划、分配任务、监控执行和进行测试等,务、监控执行和进行测试等,并将它们有机地组合为一体,并将它们有机地组合为一体,使各个阶段中都可以回溯到使各个阶段中都可以回溯到用户的实际需求用户的实际需求USE CASE 分分 析析输入输入 设设 计计 实实 现现跟踪跟踪输入输入跟踪跟踪输入输入跟踪跟踪输入输入输入输入 测测 试试输入输入跟踪跟踪输入输入从从USE CASEUSE CASE模型的视觉模型的视觉从分析模型的视觉从分析模型的视觉从设计模型的视觉从设计模型的视觉从实现模型的视觉从实现模型的视觉从部署模型的视觉从部署模型的视觉给给 出出体体 系系 结结 构构描描 述述 以体系结构为中心以体系结构为中心 意指在系统的生存周期中,开发的任何阶段(意指在系统的生存周期中,开发的任何阶段(UP规定了四规定了四个阶段,即初始阶段、细化阶段、构造阶段和移交阶段)都要个阶段,即初始阶段、细化阶段、构造阶段和移交阶段)都要给出相关模型视角下的有关体系结构的描述,作为构思、构造、给出相关模型视角下的有关体系结构的描述,作为构思、构造、管理和改善系统的主要制品。
管理和改善系统的主要制品((3)) UP的基本结构的基本结构•软件开发模型的出发点软件开发模型的出发点–如何更快(效率)更好(质量)地满足需求如何更快(效率)更好(质量)地满足需求–使得开发过程在一种受控的方式下运行使得开发过程在一种受控的方式下运行–过程过程←活动活动←任务任务–还需要涉及:项目、人员、工件还需要涉及:项目、人员、工件•UP((Unified Process)是一个软件开发过程的框架)是一个软件开发过程的框架–拥抱变化:用户反馈和适应调整逐步满足用户需求;拥抱变化:用户反馈和适应调整逐步满足用户需求;–迭代增量式开发迭代增量式开发–用例驱动整个开发过程用例驱动整个开发过程–提倡基于构件的软件体系结构为中心展开开发活动提倡基于构件的软件体系结构为中心展开开发活动((4))RUP 的四个阶段的四个阶段•初始阶段(初始阶段(InceptionInception)) 不是需求分析,而是可行性分析不是需求分析,而是可行性分析•细化阶段(细化阶段(ElaborationElaboration)) 不是需求分析或设计过程,而是迭代式实现核心体系结构,缓解不是需求分析或设计过程,而是迭代式实现核心体系结构,缓解高风险问题高风险问题•构造阶段(构造阶段(ConstructionConstruction)) 实现遗留下来的风险较低和比较容易的元素,准备部署实现遗留下来的风险较低和比较容易的元素,准备部署•移交阶段(移交阶段(TransitionTransition)) betabeta测试,部署测试,部署 每一个阶段都由一个或多个连续的迭代组成,迭代每一个阶段都由一个或多个连续的迭代组成,迭代并不是重复做相同的事,而是针对不同用例的细化和实并不是重复做相同的事,而是针对不同用例的细化和实现。
每一次迭代都是一个完整的开发过程每一次迭代都是一个完整的开发过程1. 初始阶段初始阶段•初始阶段所要进行如下的活动:初始阶段所要进行如下的活动:①①明确说明项目规模,了解环境以及最重要的需明确说明项目规模,了解环境以及最重要的需求和约束,以便可以得出最终产品的验收标准求和约束,以便可以得出最终产品的验收标准②②计划和准备商业理由评估风险管理、人员配计划和准备商业理由评估风险管理、人员配备、项目计划以及成本备、项目计划以及成本/进度进度/收益折衷的被选方收益折衷的被选方案③③综合考虑被选构架,评估构架综合考虑被选构架,评估构架④④准备项目的环境,评估项目和组织,选择工具,准备项目的环境,评估项目和组织,选择工具,决定流程中要改进的部分决定流程中要改进的部分•初始阶段的评估标准如下:初始阶段的评估标准如下:①①出资人同意系统范围定义以及费用和进度评估出资人同意系统范围定义以及费用和进度评估②②主要用例是否符合需求主要用例是否符合需求③③费用和进度评估、优先级、风险以及开发过程的费用和进度评估、优先级、风险以及开发过程的可信性④④任何已开发的原型的深度和广度任何已开发的原型的深度和广度。
⑤⑤实际开销与计划开销实际开销与计划开销 •初始阶段的焦点是需求和分析工作流初始阶段的焦点是需求和分析工作流 2. 细化阶段细化阶段•细化阶段的评估标准如下:细化阶段的评估标准如下:①①标明用例模型中的用户和参与者,并且建立用例的标明用例模型中的用户和参与者,并且建立用例的描述文档用例模型需完成描述文档用例模型需完成80%②②创建软件系统开发过程中的软件结构的描述文档创建软件系统开发过程中的软件结构的描述文档③③创建可执行的系统原型创建可执行的系统原型④④细化商业案例和风险列表细化商业案例和风险列表⑤⑤创建整个项目的开发计划创建整个项目的开发计划•细化阶段的焦点是需求、分析和设计工作流细化阶段的焦点是需求、分析和设计工作流 3. 构造阶段构造阶段•构造阶段的主要目标如下:构造阶段的主要目标如下:①①优化资源、避免不必要的报废和返工,使开发成本优化资源、避免不必要的报废和返工,使开发成本降到最低降到最低②②尽快达到质量的要求尽快达到质量的要求③③快速完成有用的版本,例如快速完成有用的版本,例如Alpha 版、版、Beta 版和其版和其他测试发布版他测试发布版④④完成所有功能的分析、开发和测试。
完成所有功能的分析、开发和测试⑤⑤迭代式、递增地开发随时可以发布的产品迭代式、递增地开发随时可以发布的产品⑥⑥确定准备好软件系统的外部环境确定准备好软件系统的外部环境•构建阶段的焦点是实现工作流构建阶段的焦点是实现工作流 4. 交付阶段交付阶段•交付阶段的主要目标如下:交付阶段的主要目标如下:①①进行进行Beta版测试,按用户的要求验证新系统版测试,按用户的要求验证新系统②②替换旧的系统替换旧的系统③③对用户和维护人员进行培训对用户和维护人员进行培训④④开始调整活动,例如调试、性能或可用性的增强开始调整活动,例如调试、性能或可用性的增强⑤⑤与用户达成共识,配置基线与评估标准一致与用户达成共识,配置基线与评估标准一致•交付阶段的焦点是实现和测试工作流交付阶段的焦点是实现和测试工作流 ((5)) 核心工作流核心工作流•软件开发流程定义了软件开发流程定义了“谁谁”、、“何时何时”、、“如何如何”做做“某事某事”四种主要的建模元素被用来表达:四种主要的建模元素被用来表达:–角色(角色(worker))“谁谁”–活动(活动(activity))“如何如何”–工件(工件(artifact))“某事某事”–工作流(工作流(workflow,,discipline)) “何时何时”((5)) 核心工作流核心工作流–工作流是产生具有可观察结果的活动序列工作流是产生具有可观察结果的活动序列((5)) 核心工作流(商业建模工作流)核心工作流(商业建模工作流)•商业建模商业建模–大多数商业工程化的主要问题是软件工程人员和大多数商业工程化的主要问题是软件工程人员和商业工程人员之间不能正确地交流,这导致了商商业工程人员之间不能正确地交流,这导致了商业工程的产出没有作为软件开发输入而正确地被业工程的产出没有作为软件开发输入而正确地被使用,反之亦然。
使用,反之亦然–在商业建模中使用商业用例来文档化商业过程,在商业建模中使用商业用例来文档化商业过程,从而确保了组织中所有商业过程人员达到共识从而确保了组织中所有商业过程人员达到共识–商业用例被分析以理解商业过程如何被业务支持,商业用例被分析以理解商业过程如何被业务支持,而这些在商业对象模型中被核实而这些在商业对象模型中被核实–许多项目可能不进行商业建模许多项目可能不进行商业建模((5)) 核心工作流(需求捕获工作流)核心工作流(需求捕获工作流)•需求需求–是描述系统应是描述系统应“做什么做什么”,并允许开发人员和用户就,并允许开发人员和用户就该描述达成共识该描述达成共识•创建构想创建构想•建立用例模型建立用例模型–识别识别actor–识别识别use case–描述描述use case•其他功能和非功能性需求在补充规范中说明其他功能和非功能性需求在补充规范中说明Use caseUse caseUse caseUse case起到贯穿整个系统的开发周期线索的作用,起到贯穿整个系统的开发周期线索的作用,起到贯穿整个系统的开发周期线索的作用,起到贯穿整个系统的开发周期线索的作用,相同的用例模型在需求捕获阶段、分析相同的用例模型在需求捕获阶段、分析相同的用例模型在需求捕获阶段、分析相同的用例模型在需求捕获阶段、分析/ / / /设计阶段设计阶段设计阶段设计阶段和测试阶段中使用。
和测试阶段中使用和测试阶段中使用和测试阶段中使用•在需求捕获工作流,主要的在需求捕获工作流,主要的UML制品:制品:①①用例模型(用例模型(Use Case Model))②②参与者(参与者(Actor))③③用例(用例(Use Case))④④构架描述构架描述⑤⑤术语表(术语表(Glossary))⑥⑥用户界面原型用户界面原型•参与需求捕获阶段的工作人员:参与需求捕获阶段的工作人员:①①系统分析人员(系统分析人员(System Analyst))②②用例描述人员(用例描述人员(Use Case Specifier))③③用户界面设计人员(用户界面设计人员(User Interface Designer))④④构架设计师(构架设计师(Architect))•需求捕获的工作流主要包括五个活动:需求捕获的工作流主要包括五个活动:①①确定参与者和用例确定参与者和用例②②区分用例的优先级区分用例的优先级③③详细描述一个用例详细描述一个用例④④构造用户界面原型构造用户界面原型⑤⑤构造用例模型构造用例模型((5)) 核心工作流(分析和设计工作流)核心工作流(分析和设计工作流)•分析和设计分析和设计–显示系统显示系统“如何如何”在实现阶段被实现的,达到下列目标:在实现阶段被实现的,达到下列目标:•在特定的实现环境中完成用例描述中指定的任务和功能在特定的实现环境中完成用例描述中指定的任务和功能•满足了所有的需求满足了所有的需求•健壮地被建造(如果功能需求发生变化易于更改)健壮地被建造(如果功能需求发生变化易于更改)–分析设计结果是一个设计模型和可选的分析模型:分析设计结果是一个设计模型和可选的分析模型:•设计模型由设计类和一些描述组成:设计模型由设计类和一些描述组成:–设计类被组织成具有良好接口的设计包和设计子系统设计类被组织成具有良好接口的设计包和设计子系统–描述则体现了类的对象如何协同工作实现用例的功能描述则体现了类的对象如何协同工作实现用例的功能•设计模型是源代码的抽象设计模型是源代码的抽象–设计活动以体系结构设计为中心设计活动以体系结构设计为中心•在分析工作流期间,主要的在分析工作流期间,主要的UML制品:制品:①①分析模型分析模型②②分析类分析类③③用例实现(分析)用例实现(分析)④④分析包分析包⑤⑤构架模型构架模型 •在分析工作流期间,主要的在分析工作流期间,主要的UML制品:制品:①①设计模型设计模型②②设计类设计类③③用例实现用例实现-设计设计④④设计子系统设计子系统⑤⑤接口接口⑥⑥配置图配置图•在分析工作流期间,所参与的工作人员:在分析工作流期间,所参与的工作人员:①①构架设计师构架设计师②②用例工程师用例工程师③③构件工程师构件工程师•参与设计工作流的工作人员包括:参与设计工作流的工作人员包括:①①构架设计师构架设计师②②用例工程师用例工程师③③构件工程师构件工程师 •分析工作流主要包括四个活动:分析工作流主要包括四个活动:①①构架分析构架分析②②分析用例分析用例③③分析类分析类④④分析包分析包•设计工作流中,主要包括四种活动:设计工作流中,主要包括四种活动:①①构架设计构架设计②②设计用例设计用例③③设计类设计类④④设计子系统设计子系统 ((5)) 核心工作流(实现工作流)核心工作流(实现工作流)•实现实现–目的:目的:•定义代码的组织结构定义代码的组织结构——以层次化方式组织以层次化方式组织实施子系统;实施子系统;•实现类和对象实现类和对象——以构件的形式(源文件、以构件的形式(源文件、二进制文件、可执行文件等);二进制文件、可执行文件等);•将开发出的构件作为单元进行测试;将开发出的构件作为单元进行测试;•将由单个实现者或小组产生的结构集成为可将由单个实现者或小组产生的结构集成为可执行的系统。
执行的系统•在实现工作流中,主要有六种制品:在实现工作流中,主要有六种制品:①①实现模型实现模型②②组件组件③③实现子系统实现子系统④④接口接口⑤⑤构架描述(实现模型)构架描述(实现模型)⑥⑥集成构造计划集成构造计划 •参与实现工作流的工作人员:参与实现工作流的工作人员:①①构架设计师构架设计师②②构件工程师构件工程师③③系统集成人员系统集成人员 •在实现工作流中,包括一系列活动:在实现工作流中,包括一系列活动:①①构架实现构架实现②②系统集成系统集成③③实现子系统实现子系统④④实现类实现类⑤⑤执行单元测试执行单元测试 ((5)) 核心工作流(测试工作流)核心工作流(测试工作流)•测试测试–目的目的•验证对象间的交互作用;验证对象间的交互作用;•验证软件构件的正确集成;验证软件构件的正确集成;–验证所有需求被正确的实现;验证所有需求被正确的实现;•识别并确保在软件发布之前缺陷被处理识别并确保在软件发布之前缺陷被处理n nUPUPUPUP提出了迭代的方法提出了迭代的方法提出了迭代的方法提出了迭代的方法,意味着在整个项目中进行测试,从而,意味着在整个项目中进行测试,从而,意味着在整个项目中进行测试,从而,意味着在整个项目中进行测试,从而允许尽可允许尽可允许尽可允许尽可能早能早能早能早地发现缺陷,从根本上降低了修改缺陷的成本;地发现缺陷,从根本上降低了修改缺陷的成本;地发现缺陷,从根本上降低了修改缺陷的成本;地发现缺陷,从根本上降低了修改缺陷的成本;n n测试生命周期的几个阶段:计划、设计、实现、执行和审核。
测试生命周期的几个阶段:计划、设计、实现、执行和审核测试生命周期的几个阶段:计划、设计、实现、执行和审核测试生命周期的几个阶段:计划、设计、实现、执行和审核•测试工作流中,包括七个制品:测试工作流中,包括七个制品:①①测试模型测试模型②②测试用例测试用例③③测试规程测试规程④④测试组件测试组件⑤⑤制定测试计划制定测试计划⑥⑥缺陷缺陷⑦⑦评估测试评估测试 •参与测试工作流的工作人员主要有四类:参与测试工作流的工作人员主要有四类:①①测试设计人员测试设计人员②②构件工程师构件工程师③③集成测试人员集成测试人员④④系统测试人员系统测试人员 •在测试工作流中,包括六种活动:在测试工作流中,包括六种活动:①①制定测试计划制定测试计划②②设计测试设计测试③③实现测试实现测试④④执行集成测试执行集成测试⑤⑤执行系统测试执行系统测试⑥⑥评估测试评估测试 ((5)) 核心工作流(发布工作流)核心工作流(发布工作流)•发布发布–目标是成功地生成版本,将软件分发给最终用户目标是成功地生成版本,将软件分发给最终用户包含的活动:包含的活动:•生成软件本身外的产品;生成软件本身外的产品;•软件打包软件打包•安装软件安装软件•给用户提供帮助给用户提供帮助许多情况下还包括如下的活动许多情况下还包括如下的活动•计划和进行计划和进行β测试版测试版•移植现有的软件或数据移植现有的软件或数据•正式验收正式验收((5)) 核心工作流(配置和变更管理)核心工作流(配置和变更管理)•配置和变更管理配置和变更管理–完成建立并管理基线的任务。
完成建立并管理基线的任务 •基线:已经通过正式复审和批准的某规约或产品,基线:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过它因此可以作为进一步开发的基础,并且只能通过正式的变更控制过程进行改变正式的变更控制过程进行改变 •配置项:置于配置和变更管理控制之下的工件配置项:置于配置和变更管理控制之下的工件–提供了管理系统演化中的多个变体、跟踪软件版本的提供了管理系统演化中的多个变体、跟踪软件版本的准则;准则;–描述了如何管理并行开发、分布式开发,如何自动化描述了如何管理并行开发、分布式开发,如何自动化创建工程;创建工程;–涵盖了需求变更管理,即:如何报告缺陷?如何管理涵盖了需求变更管理,即:如何报告缺陷?如何管理缺陷?及如何使用缺陷来跟踪进展和发展的倾向?缺陷?及如何使用缺陷来跟踪进展和发展的倾向?((5)) 核心工作流(项目管理、环境)核心工作流(项目管理、环境)•项目管理项目管理–集中在迭代开发过程的组织管理方面集中在迭代开发过程的组织管理方面–目标是提供以下的事物来使该任务更简单:目标是提供以下的事物来使该任务更简单:•管理项目的框架;管理项目的框架;•计划、配备、执行、监控项目的实践准则;计划、配备、执行、监控项目的实践准则;•管理风险的框架。
管理风险的框架•环境环境–目的是给软件开发组织提供软件开发环境(过程和工具),目的是给软件开发组织提供软件开发环境(过程和工具),软件开发队伍需要它们的支持;软件开发队伍需要它们的支持;–集中在项目环境中配置过程的活动,同样着重支持项目的集中在项目环境中配置过程的活动,同样着重支持项目的开发规范的活动,提供了逐步指导手册,介绍了如何在组开发规范的活动,提供了逐步指导手册,介绍了如何在组织中实现过程;织中实现过程;–还包含了定制流程所必须的准则、模板、工具的开发工具还包含了定制流程所必须的准则、模板、工具的开发工具箱((6)) RUP 六个最佳开发经验六个最佳开发经验•迭代式开发(迭代式开发(develop software iterativelydevelop software iteratively))•管理需求(管理需求(manage requirementsmanage requirements))•使用基于构件的体系结构(使用基于构件的体系结构(use component-based use component-based architectures)architectures)•可视化软件建模(可视化软件建模(visually model software)visually model software)•验证软件质量(验证软件质量(verify software qualityverify software quality))•控制软件变更(控制软件变更(control changes to software)control changes to software)1)迭代式开发)迭代式开发•瀑布式软件开发的不足瀑布式软件开发的不足•需求在软件开发过程中可能会经常改变,迭代式开需求在软件开发过程中可能会经常改变,迭代式开发允许在每次迭代过程中需求都可以有变化,通过发允许在每次迭代过程中需求都可以有变化,通过不断细化来加深对问题的理解。
不断细化来加深对问题的理解•迭代式开发通过可验证的方法来帮助降低风险迭代式开发通过可验证的方法来帮助降低风险迭代开发优点:迭代开发优点:迭代开发优点:迭代开发优点:早期解决缓解高风险早期解决缓解高风险( (技术,需求,目标,可技术,需求,目标,可用性等方面用性等方面) )早期可见的进程早期可见的进程早期反馈早期反馈可管理的复杂性,不必陷入长而复杂的分析过可管理的复杂性,不必陷入长而复杂的分析过程程迭代长度:迭代长度:迭代长度:迭代长度:2~62~6周周周周太短则难以获得有意义的成果和反馈太短则难以获得有意义的成果和反馈超过超过6 6到到8 8周则太复杂、反馈延迟、增加项目风险周则太复杂、反馈延迟、增加项目风险若下一迭代周期为若下一迭代周期为4 4周,则必须在周,则必须在4 4周内完成集成、周内完成集成、测试完不成则将任务和需求移到下一周期,而不测试完不成则将任务和需求移到下一周期,而不是将完成时间后移是将完成时间后移大型开发团队(上百人)才可例外(但仍不超过大型开发团队(上百人)才可例外(但仍不超过3~63~6个月个月))2)管理需求)管理需求•在软件开发过程中,需求会不断发生变化。
确定系统在软件开发过程中,需求会不断发生变化确定系统的需求是一个连续的过程,除了一些小系统之外,开的需求是一个连续的过程,除了一些小系统之外,开发人员在开发系统之前不可能完全详细地说明一个系发人员在开发系统之前不可能完全详细地说明一个系统的真正需求统的真正需求•UPUP描述了如何提取、组织系统的功能和约束条件并将描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用已被证明是捕获功能性其文档化,用例和脚本的使用已被证明是捕获功能性需求的有效方法需求的有效方法3)使用基于构件的体系结构)使用基于构件的体系结构•基于构件的开发是非常有效的软件开发方法,构件基于构件的开发是非常有效的软件开发方法,构件使重用成为可能,系统可以由已存在的、由第三方使重用成为可能,系统可以由已存在的、由第三方开发商提供的构件组成开发商提供的构件组成•RUPRUP描述了如何设计一个有弹性的、能适应变化的、描述了如何设计一个有弹性的、能适应变化的、直观上易于理解的、有助于软件重用的软件体系结直观上易于理解的、有助于软件重用的软件体系结构4)可视化软件建模)可视化软件建模•可视化建模提高人们管理软件复杂度的能力。
可视化建模提高人们管理软件复杂度的能力•帮助更好地理解问题、加强人员沟通、更早发现错帮助更好地理解问题、加强人员沟通、更早发现错误、获得设计结果并为代码生成提供依据误、获得设计结果并为代码生成提供依据•RUP告诉我们如何可视化地对软件系统建模,获取告诉我们如何可视化地对软件系统建模,获取有关体系结构与构件的结构和行为信息有关体系结构与构件的结构和行为信息5)验证软件质量)验证软件质量•软件质量低下是影响软件使用的重要因素之一,在软件质量低下是影响软件使用的重要因素之一,在RUP中,软件质量评估不再是事后型的或单独小组中,软件质量评估不再是事后型的或单独小组进行的分离活动,而是内建于过程的所有活动,这样进行的分离活动,而是内建于过程的所有活动,这样可以及早发现软件中存在的缺陷可以及早发现软件中存在的缺陷6)控制软件变更)控制软件变更•RUP描述了如何控制、跟踪和监控修改以确保成功的描述了如何控制、跟踪和监控修改以确保成功的迭代开发迭代开发RUP通过控制软件开发过程中的制品,隔通过控制软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间,保证每个修改是可接受的、能被立安全的工作空间,保证每个修改是可接受的、能被跟踪的。
跟踪的课后思考题:课后思考题:•UP和前面介绍的瀑布模型等生命周期模型的关系和前面介绍的瀑布模型等生命周期模型的关系是什么?是什么?。