**大家想一起学习交流的可以加群,QQ:755422568。**
RUP是基于UML的一种过程框架,为软件开发,即为进行不同抽象层之间“映射”安排其他开发活动次序,指定任务和需要开发的制品,提供了指导
RUP比较完整定义了将用户需求转换成产品所需要的活动集。
RUP突出特点是一种以用况为驱动的、以体系结构为中心的迭代、增量式开发。(
填空题
)
指在系统生存周期中,以用况为基础,驱动系统有关人员对所要建立系统的功能需求进行交流,驱动系统分析、设计、实现个测试等活动。
用况是分析、设计、实现和测试的基本输入。
用况中3类事物:系统与参与者之间的接口,实现接口的活动和属性,对前两者进行协调和控制的机制。
指在系统生存周期中,开发的任何阶段都要给出相关模型视角下有关体系结构的描述,作为构思、构造、管理和改善系统的主要制品。
1)、系统体系结构描述应根据相关模型的视角:
①展示对系统体系结构有意义的用况、子系统、接口、类、构件、节点和协作。
②展示对系统体现结构有意义的非功能需求,如性能、安全、分布和并发。
③简述相关的平台、所用的商业软件等。
④简述各种体系结构模式。
2)、为了获得系统用况模型视角下的系统结构描述:
①在一般性地了解系统用况之后,勾画与特定用况和平台无关的系统体系结构。
②关注一些关键用况。
③给出每一关键用况的描述。
④对以上3布进行迭代,形成一个稳定的体系结构描述。
指通过开发活动的迭代、不断地产生相应的增量。
RUP4个阶段:初始阶段、精化阶段、构造阶段、移交阶段。
RUP的迭代、增量式开发是演化模型的一个变体。
1)、RUP4个阶段中每个阶段的目标:
初始阶段基本目标:获得与特定用况和平台无关的系统体系结构,以此建立产品功能范围;编制初始的业务实例,从业务角度指出该项目的价值,减少项目主要的错误风险。
精化阶段基本目标:通过捕获并描述系统的大部分需求,建立系统体系结构基线的第一版本,主要包括用况模型和分析模型,减少次要的错误风险;到该阶段末,就能够估算成本、进度,详细地规划构造阶段。
构造阶段基本目标:通过演化,形成最终的系统体系结构基线,并开发完整的系统,确保产品可以开始向客户交付、即初始操作能力。
移交阶段基本目标:确保一个实在的产品发布给用户群。
RUP每次迭代都要经历核心工作流即需求获取、分析、设计、实现和测试。(填空题)
使用UML中的用况、参与者以及依赖等来抽象客观实际问题,形成系统的需求获取模型——一种特定的系统/产品模型,并产生该视角下的系统体系结构描述。
要做的工作 | 产生的制品 |
---|---|
列出候选的需求 | 特征列表 |
理解系统语境 | 领域模型或业务模型 |
捕获功能需求 | 用况模型 |
捕获非功能需求 | 补充需求或针对一些特定需求的用况 |
1)、列出候选的需求
特征可作为需求,并被转换为其他制品。
2)、理解系统语境
创建领域模型或业务模型。
①领域模型
一般用“类图”表达
领域类三种形态:业务对象、实在对象和概念、事件。
②业务模型(选择题、填空题)
业务用况模型和业务对象模型
业务用况模型:以用况图表达
业务对象模型:以交互图和活动图表达
为了精化业务用况模型中每一个业务用况,RUP引入三个术语:工作人员、业务实体、工作单元。
3)、捕获功能需求
目标:创建系统的用况模型,用以表达客户认可的需求——系统必须满足的条件和能力,作为客户和开发人员之间的一种共识。
用况模型是一种概念模型。
①创建系统的用况模型,进行以下活动
活动1:发现并描述参与者。
活动2:发现并描述用况。
完成活动1和2后,此时产生的系统/用况模型记为用况模型[概述]
活动3:确定用况的优先级
完成活动3后,产生了体系结构描述[用况模型视角]
活动4:精化用况:以正文或图的形式,对一个特定用况进行描述
完成活动4后,用况[精化],基于系统用况模型[概述]、分功能需求和术语集。
活动5:构造用户界面原型。
构造用户界面原型的基本步骤:
1、用户界面的逻辑设计。
2、物理用户界面的设计。
3、开发用户界面原型并演示为了执行该用况,用户怎么样使用该系统。
活动6:用况模型的结构化。
1、抽取用况描述中那些一般性的、共享的功能,并使用泛化关系标识。
2、抽取用况描述中附加的或可选的功能,可使用扩展关系标识。
3、标识用况之间的包含关系。
完成活动6后,形成系统/产品的一个精化用况模型,记为用况模型[精化]。
需求分析目标:在系统用况模型的基础上,创建系统分析模型以及该分析模型视角下的体系结构描述。
分析模型也是一种概念模型,用于解决用况模型中存在的二义性和不一致性问题
。
1)、分析类
分析类是类的一种衍型,很少有操作和特征标记,而用责任定义行为,其属性和关系是概念性的。
①边界类用于规约系统与其参与者之间的交互,该交互一般涉及用户/外部系统发出请求和接受信息。
边界类分离不同用户接口或不同通信接口形成一个或多个边界类。
②实体类用于规约那些需要长期驻留在系统中的模型化对象以及与行为相关的某些现象。
③控制类用于规约基本动作和控制流的处理与协调,涉及其他对象委派工作。
控制类可用于一些不同的控制、协调、定序以及复杂业务逻辑。
分析类是概念上的大术语,边界类封装了一些重要的通信接口和用户界面机制;
实体类封装了问题域中的一个重要现象;控制类封装了一些重要的定序
用况模型中的用况与分析模型中分析类之间存在确定的依赖关系。
2)、用况细化
用况细化是一个协作,其中使用通信图表达了分析类以及分析类之间的关系,当然也可以用正文事件流、顺序图。
用况细化对用况模型中的一些用况提供直接跟踪的方式。
3)、分析包
分析包是一种控制信息组织复杂性的机制,提供了分析制品的一种组织手段,形成了一些可管理的部分。
体现良好结构的分析包,其特征如下:
体现问题分离、高内聚低耦合、尽可能体现一个系统的完整顶层设计。
4)、分析模型的表达
分析系统包含一组具有层次结构的包,每一个包总可以包含一些分析类和用况细化[分析];并且一些分析类和用况细化[分析]还单独出现在分析模型中。
5)、分析主要活动
①活动1:体系结构分析
任务1:标识分析包。
实现包的高内聚,应考虑以下问题:
1、一个包中的用况是否支持一个特定的业务过程或应用。
2、一个包中的用况是否支持一个特定的系统参与者。
3、一个包中的用况是否具有“泛化”和“扩展”关系。
任务2:处理分析包之间的共性。
任务3:标识服务包。
服务的主要特征:服务是不能分割的,系统或完整地提供,或不提供;并且服务是针对客户而言,而用况是针对用户而言的。
服务包的主要特征:
1、服务包是不可分离的,如果客户需要这一包,就要其中所有类。
2、服务包之间的依赖,通常是非常受限制的。
3、服务包一般只涉及一个参与者或很少几个参与者。
4、服务包可独立执行,对于同一个服务的不同方面,可由系统的两个不同服务包提供。
任务4:定义分析包的依赖。实现包的高内聚和低耦合。
分层:特定应用层和应用共享层。
任务5:标识重要的实体类。
任务6:标识分析包和重要实体类的公共特定需求。
如:永久性、分布与并发、安全性、容错能力、事务管理。
实施以上6项任务后,建立了待建系统/产品的初始化分析模型,记为分析模型[概述],并给出了系统的体系结构描述,记为体系结构描述[分析]。
②活动2:用况分析
目标:一是标识那些用况事件流执行中所需要的分析类和对象;二是将用况的行为,分布到参与交互的各个分析对象;三是捕获用况细化上的特定需求。
任务1:标识分析类,逐一标识实体类、边界类和控制类。
任务2:描述分析类对象之间的交互。
任务1和2完成后,形成整个系统的“用况细化”,记为用况细化[分析]
③活动3:类的分析
目标:一是标识并维护分析类的责任;二是基于它们在用况细化中的角色,标识并维护分析类的属性和关系;三是捕获分析类细化中的特殊需求。
任务1:标识责任
任务2:标识属性
任务3:标识关联和聚合
④活动4:包的分析
目标:一是确保分析包尽可能与其他包相对独立;二是确保分析包实现了它的目标,即细化了某些领域类或用况;三是描述依赖,以益于可以估计未来的变化。
RUP设计的目标:定义满足系统/产品分析模型所规约需求的软件结构。
RUP设计层提供4个术语:设计类、用况细化[设计]、设计子系统和接口、用于表达软件结构中的基本元素。
从两个角度描述软件结构:一是系统设计模型;二是表达物理分布的系统部署模型。
1)、设计类
一个设计类是对系统实现中一个类或类似构造的一个无缝抽象。
2)、用况细化[设计]
用况细化[设计]是设计模型中的一个协作。
表达协作的工具可以是类图、交互图和正文事件流。
3)、设计子系统
设计子系统包含设计类、用况细化、接口、以及其他子系统。
设计子系统是一种组织设计制品的手段,其可使设计制品被组织更好的管理。
4)、接口
接口用于规约由设计类和设计子系统提供的操作。
5)、对体系结构有意义的设计类,一般包括:
对体系结构有意义的分析类所对应的设计类
具有一般性、核心的主动类
表达通用设计机制的设计类、以及相关其他的设计类。
6)、设计主要的活动
解决以下问题:非功能需求、有关对程序设计语言的限制、数据库技术、用况技术、事务技术。
7)、考点
RUP的实现的目标是:基于设计类和子系统生成构件;对构件进行单元测试,进行集成和连接;把可执行的构件映射到部署模型。
RUP 实现的目标:
(1)基于设计类和子系统生成构件
(2)对构成进行单元测试
(3)进行集成和连接
(4)把可执行的构件映射到部署模型
RUP 实现的主要活动:
(1)实现体系结构
(2)集成系统
(3)实现子系统
(4)实现类
(5)完成单元测试
RUP的测试:内部测试、中间测试、最终测试。
RUP 测试的主要活动:
(1)计划测试
(2)设计测试
(3)实现测试
(4)执行集成测试
(5)执行系统测试
(6)评价测试