UML and Rose教程
UML基础与ROSE建模教程第一章基础知识
UML基础与ROSE建模教程第一章基础知识本教程的第一章将介绍UML的基础知识,并详细介绍ROSE建模工具的主要功能和用途。
第一节简介UML是由Object Management Group(OMG)开发和维护的一种建模语言。
它提供了一些标准的图形符号和元素,用于描述软件系统的各个方面,如结构、行为、交互和功能等。
UML图表是用于可视化系统设计和开发过程的重要工具。
它们可以帮助团队成员更好地理解和沟通设计思想,并促进系统开发的合作和协调。
第二节UML的主要图表类型UML定义了一系列图表,用于描述系统的不同方面。
以下是一些常见的UML图表类型:1. 用例图(Use Case Diagram):用于描述系统的功能需求和用户之间的关系。
2. 类图(Class Diagram):用于描述系统中的类、对象及其之间的关系。
3. 对象图(Object Diagram):用于描述系统中对象之间的实例关系。
4. 交互图(Interaction Diagram):用于描述系统中各个对象之间的交互关系,包括顺序图(Sequence Diagram)和协作图(Collaboration Diagram)等。
5. 状态图(Statechart Diagram):用于描述系统中一个对象的状态和状态之间的转换。
7. 部署图(Deployment Diagram):用于描述系统的物理部署架构,包括硬件设备、软件组件和网络之间的关系。
第三节ROSE建模工具的主要功能2.模型管理:ROSE提供了一个集中式的模型管理系统,可以帮助用户组织和管理各种UML图表。
用户可以创建、导入、导出和删除模型,还可以对模型进行版本控制和协作。
3.代码生成:ROSE可以根据UML图表生成相应的代码。
用户可以选择不同的编程语言和代码风格,以满足具体的开发需求。
4.反向工程:ROSE支持从现有的代码库中生成UML图表。
用户可以导入源代码,并根据代码结构和关系自动生成相应的UML图表,以帮助理解和分析现有的系统。
UML基础及Rose建模实用教程课后习题及答案
UML根底与Rose建模实用教程课后习题及答案第1章面向对象概述1. 填空题〔1〕软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。
〔2〕类是具有一样属性和操作的一组对象的组合,即抽象模型中的“类〞描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
〔3〕面向对象程序的根本特征是抽象、封装、继承和多态。
2. 选择题〔1〕可以认为对象是ABC。
〔A〕某种可被人感知的事物〔B〕思维、感觉或动作所能作用的物质〔C〕思维、感觉或动作所能作用的精神体〔D〕不能被思维、感觉或动作作用的精神体〔2〕类的定义要包含以下的要素ABD。
〔A〕类的属性〔B〕类所要执行的操作〔C〕类的编号〔D〕属性的类型〔3〕面向对象程序的根本特征不包括B。
〔A〕封装〔B〕多样性〔C〕抽象〔D〕继承〔4〕以下关于类与对象的关系的说法不正确的选项是A。
〔A〕有些对象是不能被抽象成类的〔B〕类给出了属于该类的全部对象的抽象定义〔C〕类是对象集合的再抽象〔D〕类用来在存中开辟一个数据区,并存储新对象的属性3. 简答题〔1〕什么是对象?试着列举三个现实中的例子。
对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子.椅子.汽车等。
〔2〕什么是抽象?抽象是对现实世界信息的简化。
能够通过抽象将需要的事物进展简化、将事物特征进展概括、将抽象模型组织为层次构造、使软件重用得以保证。
〔3〕什么是封装?它有哪些好处?封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的部细节。
封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。
对象的私有属性只能够由对象的行为来修改和读取。
二是尽可能隐蔽对象的部细节,与外界的联系只能够通过外部接口来实现。
通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:防止对封装数据的未授权访问、帮助保护数据的完整性、当类的私有方法必须修改时,限制了在整个应用程序的影响。
《UML与Rose建模应用》教材课件-子情境4.4
根据上面的描述可以确定各状态之间的转换,最终绘制出图4-50。
子任务2.管理购物车状态图
子情景4.4动态结构建模
任务实施
情境4:Web系统建模—在线销售系统
图4-50 管理购物车状态图
子任务2.管理购物车状态图
子情景4.4动态结构建模
情境4:Web系统建模—在线销售系统
任务3:建立活动图
子情景4.4动态结构建模
子任务1.绘制用户注册的系统顺序图
子情景4.4动态结构建模
任务实施
情境4:Web系统建模—在线销售系统
用户注册分如下8步: (1)用户向注册表单请求创建注册表单; (2)注册表单向自己发送消息以显示一个空白表单; 提示:迭代表示了一种重复发送的消息,如果一个对象向它自身重复发送一 个消息,那么就构成了递归消息。递归消息表示在消息内部调用同一条消息。递 归作为一种迭代类型,也可以在UML中为其建模。如下图4-32所示,消息2、4、7 表示的是一个递归调用,它是一个反自身消息,激活的控制条被以重叠的方式表 现出来。 两个重叠的激活控制期中较大的一个表明对象正在执行某项任务,该任务会 调用自己,因此又出现了一个激活控制期被臵于先前激活的右侧。 (3)用户向表单填写个人信息; (4)注册表单验证注册信息; (5)注册表单向注册控制器请求添加注册列表; (6)注册控制器向底层注册系统请求添加注册列表,底层注册系统将注册信 息保存; (7)显示注册成功列表; (8)注册控制器向用户添加新的注册列表。
子情景4.4动态结构建模
情境4:Web系统建模—在线销售系统
任务1:建立顺序图
子情景4.4动态结构建模
情境4:Web系统建模—在线销售系统
任务描述
根据任务绘制出的用户注册类图和下订单类 图,进行动作扩展,分别绘制出用户注册顺序图、 下订单顺序图。
Rose 的基本操作_UML与Rose建模实用教程_[共7页]
318.状态栏与绝大多数程序相同,状态栏位于程序最底部,用于显示程序的相关状态信息,如图3-25所示。
图3-25 状态栏本小节分区域介绍了Rose 的主工作界面及其作用,后续章节将陆续讲解更具体的实际操作说明,读者可以慢慢体会Rose 的使用方法。
3.3.2 Rose 的基本操作1.新建模型新建模型是使用Rose 的第一步。
模型可以从零开始创建,也可以利用Rose 提供的框架。
Rose 模型的全部内容保存在一个扩展名为.mdl 的文件中。
要新建一个模型:在菜单栏中选择【File 】Æ【New】,或者单击标准工具栏中的按钮。
在弹出图3-17所示的对话框中,选择要使用的框架并单击【OK 】键,或者单击【Cancel 】键不使用框架。
如果选择使用框架,则Rose 将自动载入这个框架的默认包、类和组件。
例如,选择使用J2SE1.4框架将在模型中自动添加sun 、java 、javax 和org 四个包及包中的类、接口和组件等内容,如图3-26所示。
如果不使用框架,则会创建一个空模型,需要用户从头开始创建模型。
图3-26 J2SE 1.4框架32使用框架有两个好处。
y用户不必浪费时间对已经存在的元素建模,使建模工作的重点更多地放在项目独有的部分上。
y框架保证了项目之间的一致性。
在不同的项目中使用同一种框架保证了开发团队使用相同的基础来建立项目。
另外,Rose还提供了创建框架的选项。
利用这个选项,开发团队或公司可以建立起自己的建模体系结构,然后以此为基础设计多种产品。
2.保存与打开模型Rose的保存模型与打开模型的方法与其他应用程序类似,这里不再赘述。
值得一提的是,单击【File】菜单或用鼠标右键单击日志窗口并选择【Save Log As】项可以将日志保存为扩展名为.log 的日志文件。
3.导入与导出模型复用作为面向对象方法的一大优点,不仅适用于代码,也同样应用在模型中。
Rose支持对模型和部分模型元素的导入导出操作以复用模型或模型元素。
第1部分:UML,Rose与用例图
(一)实训名称:UML,Rose与用例图(二)实训内容:1. UML的基本概念;2. Rational Rose的基本概念;3.使用Rose创建一个模型文件;4.用例图的基本概念:用例,活动者,事件流等;5.在Rose中用例图的创建方法;要求能够掌握以下内容:给定系统的功能描述,能够分析系统的用例,活动者以及它们之间的关系,并使用Rose创建用例图。
(三)实训原理5.1 UML基本概念UML(Unified Modeling Language,统一建模语言是一种支持面向对象技术的可视化建模语言,是在计算机系统中表示真实世界的语言,描述真实世界中的对象和它们之间的关系。
简单地说,我们在软件工程中使用UML把一个项目解析为各种不同的UML图。
软件和软件工程面向对象生命周期:风险分析,需求分析,系统分析,系统设计,实现,测试,部署,维护模型,文档5.2 Rose工具简介Rose是用UML快速开发应用程序的工具之一,支持用例图,活动图,序列图,协作图,状态图,组件图和布局图,通过正向和逆向转出工程代码的特性,可以支持C++,Java,Visual basic和XML DTD等的代码生成和逆向转出工程代码。
在我们这门课里,将会以大家都很熟悉的选课系统为例,从用户需求开始,循序渐进地介绍使用UML和Rose2003进行分析和设计的全过程,最终组成一个完整的解决方案。
5.2.1 使用Rose2003创建模型可以通过下面介绍的过程建立一个模型。
启动Rose后,得到图5-1所示的模型向导界面。
图5-1这里可以选择模型最终实现的工具,比如选择“jdk-12”,按下“OK”,进入设计画面(见图5-2),这样需要花一些时间进行导入。
因为本课程只着眼于分析与设计,所以建议点击“Cancel”进入设计画面。
图5-2右键点击浏览器中的“untitled”,在弹出的快捷菜单中选择“Save”,弹出文件保存对话框(见图5-3)。
UML基础与Rose建模实用教程(第三版)
第11 章包图
1 1 .5 本章小结
习题十 一
习题十一
1. 填空题 2. 选择题 3. 简答题 4. 练习题
第12 章构件图与部署图
1 2 .1 构件图与部署 图的基本概念
1 2 .2 使用R o s e 创建 构件图与部署图
1 2 .3 本章小结
习题十 二
12.1构件图与部署图的基本概念
1. 构件 2. 构件图的基本概念 3. 部署图的基本概念
1.填空题
2. 选择题 3. 简答题 4. 练习题
第9 章状态图
9 .1 状态图的
1
基本概念
2
9 .2 状态图的 组成
3
9 .3 组成状态
4 9 .4 使用R o s e
创建状态图
5 9 .5 使用R o s e
创建状态图示 例
第9 章状态图
9 .6 本章小结
习题 九
9.1状态图的基本概念
1. 状态图的定义 2. 状态图的作用
7.5使用Rose创建序列图示例
1. 确定工作流程 2. 确定对象 3. 确定消息和条件 4. 绘制序列图总图
习 4. 练习题
第8 章协作图
8.2协作图的组成
8.1协作图的基本 概念
8.3使用Rose创建 协作图
第8 章协作图
8.5本章小结
8.4使用Rose创建 协作图示例
习题八
8.1协作图的基本概念
1. 协作图的定义 2. 协作图的作用
8.2协作图的组成
1. 对象 2. 消息 3. 链
8.3使用Rose创建协作图
1. 创建对象 2. 创建消息 3. 创建链
8.4使用Rose创建协作图示例
状态图的Rose 操作_UML与Rose建模实用教程_[共5页]
除了历史状态,UML还定义了深历史状态的概念。
深历史状态与历史状态所不同的是,历史状态保存的是当前嵌套层次下的子状态,而深历史状态保存的则是更深的嵌套层次中的子状态。
深历史状态使用一个被小圆圈包围的“H*”符号表示。
10.4 状态图的建模技术状态图可以为一个在不同条件下对外反应不同的对象的生命周期建模,通常具有这种特点的UML元素都有三方面明显特征:在确定的条件下对象处于可知的稳定状态;在某个稳定状态下,存在某些确定的事件使得当前状态跳转到下一个稳定状态,并且这种跳转不可以中断;在不同的状态下,对象对外开放的接口、行为等一般不同。
在这三个特征中,第一个保证了建立状态图的基础,即对象不是时刻变化的,它总有一段时间会给出特定的行为;第二个特征确保了状态机是合理的:如果一个对象的状态转移规则是不确定的——如可能出现从状态A→接受事件e→转移到事件B,而在完全相同的状态下,A状态下发生事件e,却转移到另外一个事件C这样的情况——这个对象是无法使用状态机来描述的;第三个特征保证了状态图建模的必要性,如果一个对象有若干个状态,而它处于这些状态时对于我们关心的领域而言给出的接口基本不变,那对这个对象建立状态图的意义就没有了。
并且,根据先前提到的原则,状态是一个对象在某些条件下表现出的明显状态——如果几个状态从外部看去并不能加以区分,那么它就是一个状态。
使用状态图为对象的生命周期建模,可以参考这样一个步骤。
•确定状态机的语境。
一般情况下状态机附属于一个类,也可能会附属于一个用例或整个系统。
如果语境是一个类或一个用例,则需要关注与之在模型关系上相邻的类。
这些类将成为状态机中涉及的动作或监护条件的待选目标。
如果语境是一个系统,那么我们就需要让该状态机集中体现这个系统第一个行为,因为为系统建立一个完整的状态机是非常棘手的。
•设置状态机的初态和终态。
•决定该对象的状态机中可能需要响应的事件。
这些事件需要在对象的接口中和语境下与该对象交互的对象所发送的事件中寻找确定。
UML面向对象建模 -Rose实验教程
实验四:交互图.....................................................................................................................30 实验 4.1 了解交互图的工具栏按钮的图标和含义 ...................................................30 实验 4.2 交互图中的角色...........................................................................................31 实验 4.3 交互图中的消息...........................................................................................34 实验 4.3 在顺序图和协作图之间切换.......................................................................42 实验 4.3 练习:建立 Sequence 框图和 Collaboration 框图......................................42
3、如果选择框架,则 Rose 自动装入这个框架的默认包、类和组件。例如,装入 Jenterprise 框架,则左边的浏览器窗口如图
类图的Rose 操作_UML与Rose建模实用教程_[共5页]
92 并且该职责要由这个类完全封装起来。
Martin 将职责定义为“改变的原因”,因此这个原则也可以被描述为“一个类应该只有一个可以引起它变化的原因”。
每个职责都是变化的一个中轴线,如果类有多个职责或职责被封装在了多个类里,就会导致系统的高耦合,当系统发生变化时,这种设计会产生破坏性的后果。
上述内容是面向对象设计的五大原则,根据他们的首字母,这五个原则也被合称为SOLID 。
这些原则不是独立存在的,而是相辅相成的。
这些原则的应用可以产生一个灵活的设计,但也需要花费时间和精力去应用并且会增加代码的复杂度。
在使用时,我们需要根据系统的规模和是否经常变更需求来适时应用这些原则,从而得出一个更优秀的设计。
6.5 实验:使用Rose 绘制类图
本节将简要介绍使用Rose 工具绘制类图的方法。
6.5.1 类图的Rose 操作
1.类图工具栏
在Rose 中,当选择一个类图进行操作时,框图工具栏将变成类图工具栏。
图6-32显示了系统默认的类图工具栏。
2.创建类图
Rose 中可以在逻辑视图或用例视图下创建类图。
在一个新建的项目中,系统提供了一个名为“Main ”的空白类图,读者可以选择直接在此处进行绘制。
如果系统需要多个类图表示,那么用户可以自行创建类图。
要创建一个类图,首先在浏览器的【Logical View 】或【Use Case View 】目录上单击鼠标右键,在弹出的菜单中选择【New 】Æ【Class Diagram 】项,如图6-33所示。
最后重命名新建的
类图即可。
图6-32 类图工具栏 图6-33 新建类图。
包图的Rose 操作_UML与Rose建模实用教程_[共2页]
110
7.5 实验:使用Rose绘制包与包图
本节将主要介绍如何在Rose工具中使用包组织元素及绘制包图。
7.5.1 包图的Rose操作
1.Rose中包与包图的相关说明
由于UML 1.x规范没有明确定义包图,因此Rose工具并没有为包图建立独立的空间,而是更多的将包作为一种组织结构显示在浏览器中。
然而,包元素可以被创建在几乎所有种类的UML 图中,因此我们建议在Rose中可以将包图表示在同样展现静态结构的类图中。
2.创建包元素
要将包元素直接加入图中,可以直接选中工具栏中的包按钮,再在图中适当位置单击并输入包名即可。
要将包元素添加到浏览器中,可以在要创建的包的上层包中单击鼠标右键,在弹出的菜单中选择【New】Æ【Package】项,并输入包名,如图7-8所示。
另外,可以将浏览器中的包元素拖
动到图中。
图7-8 添加包元素到浏览器中
3.向包中添加元素
要将已存在的元素移动到包中,只需要在浏览器中将该元素从目前的位置拖动到新的包元素的目录节点下即可。
也可以通过在包上单击鼠标右键,在弹出的菜单中选择【New】项来新建元素。
要设置元素在包中的可见性,可以打开该元素的规格说明对话框并在【General】选项卡中的
【Export Control】处选择适当的可见性即可。
4.删除包元素
要删除一个已存在的包元素,只要在浏览器中选中该包并单击鼠标右键,在弹出的菜单中选。
《UML与Rose建模应用》教材课件-子情境1.1
情境1:认识UML
步骤1:RUP的简述
RUP(Rational Unified Process,Rational统一软件开过程)是一个 面向对象且基于网络的各种发方法论。它提供了在开发机构中分派任务和 责任的方法,它的目标是可预见和取自前提下确保最张用户需求的高质量 软件的产生。 RUP吸收了许多已经在商业上得到证明的软件开发的最佳实践经验, 它适用范围广泛的项目和组织。
UML及Rose建模应用
学习情境1:UML与Rose认知
子情境1.1 UMLML
子情境描述
为什么要学习统一建模语言UML? 认识UML的特点和优势、历史及发展前 景、主要内容与功能后,即可解答这个 问题,从而激发程序员学习UML的工作 热情。
子情景1.1 UML概述
子情景总结
通过本任务的实施,应掌握下列知识和技能:
UML的主要特点。 UML的主要功能(重点)。 UML的组成(重点)。
子情景1.1 UML概述
任务实施 步骤3:了解开发过程的时间轴
情境1:认识UML
软件开发过程,是使软件从概念到成品所遵循的一系列阶段, RUP作为一种软件开发过程包含以下4个阶段: 初始阶段,主要任务是建立软件系统的商业模型,需要考虑 项目的效益,同时进行了初步的需求分析。 细化阶段,目标是分析问题领域,建立健全的体系结构基础, 编制项目计划,淘汰项目中最高风险的元素。 构造阶段,所有剩余的构件和应用程序功能被开发并集成为 产品,所有的功能被详细测试。 交付阶段,其重点是确保软件对最终用户是可用的。
子情景1.1 UML概述
任务实施
情境1:认识UML
UML的功能 UML是一种建模语言,该语言具有如下功能: (1)为软件系统的产出建立可视化模型 ① UML符号具有定义良好的语义,不会引起歧义。 ② UML是可视化的建模语言,它为系统提供了图形化的可视模型,使 系统的结构变得直观,易于理解。 ③ 用UML为软件系统建立模型不但有利于交流,还有利于对软件的维 护。 (2)规约软件系统的产出规约意味着建立的模型是准确的、无歧义的、 完整的。 (3)构造软件系统的产出UML不是可视化的编程语言,但它可以从 UML的模型生成Java、C++、Visual Basic等语言的代码,甚至还可以生 成关系数据库的表。 (4)为软件系统的产出建立文档。
《UML与Rose建模应用》教材课件-子情境1.3
子情景1.3 Rose视图
知识或技能拓展
情境1:认识UML
Rose的九种图: 就使用频率和重要性而言,用例图、类图和顺 序图是其中最关键的图。
子情景1.3 Rose视图
知识或技能拓展
情境1:认识UML
根据它们在不同架构视图的应用,可以把9种图分成:
用户模型视图:用例图。 结构模型视图:类图、对象图。 行为模型视图:序列图、协作图、状态图、活动图(动态图)。 实现模型视图:组件图。 实现模型视图:组件图。 环境模型视图:配置图。
子情景1.3 Rose视图
知识或技能拓展
情境1:认识UML
Rose的九种图:
(1)用例图use case diagram,描述系统功能。 (2)类图class diagram,描述系统的静态结构。 (3)对象图object diagram,描述系统在某个时刻的静态结构。 (4)序列图sequence diagram,按时间顺序描述系统元素间的交互。 ( 5 )协作图 Collaboration diagram ,按照时间和空间顺序描述系 统元素间的交互和它们之间的关系。
情境1:认识UML
图1-22 类图
子情景1.3 Rose视图
子情景实施
步骤2 了解逻辑视图
(3)交互图:交互图通过捕捉合作对象的顺 序交互和并行交互,对用例事件流的执行情况进 行跟踪。 (4)状态机图:状态机图包括状态图和活动 图,它们都用于显示对象的动态行为。如图1-16 所示:状态图显示对象的各种可能状态,并演示 对象如何从一种状态过渡到另一种状态。 (5)包:逻辑视图中的包是一组相关的类或 者其他模型元素。
子情景1.3 Rose视图
情境1:认识UML
子情境描述
软件工程项目实践教程 第四版 项目2 UML和Rational Rose建模实践指南
项目二 2.1 UML和Rose建模概述
3
• UML的中文含意是统一建模语言(Unified Modeling Language) ,它是一种通用的可视化的建模语言,用于对软件系统进 行描述、可视化处理及构造和建立软件系统的工作文档。 UML包括语义概念、表示法和指导规范,提供了静态、动 态、系统环境及组织结构的模型。
2. 安装步骤
• 首先打开Rose的压缩包,再双击启动IBM Rational Rose 2007的 Setup.exe程序,安装过程开始, 然后依照安装程序向导的提示操作 即可。
项目二 2.1.3 Rational Rose的使用
10
• Rose是菜单驱动式的建模工具,可以通过Rose界面的 工具栏使用其常用功能,Rose共支持8种不同类型的 UML图:
项目二 UML和Rational Rose建模实践指南
1
学习内容
2.1 UML和Rational Rose建模概述 2.2 用例图建模方法 2.3 类图和对象图建模方法 2.4 用Rose设计动态模型 2.5 组件图和配置图
项目二 UML和Rational Rose建模实践指南
2
本章 要点
掌握Rose安装和使用方法; 掌握用例图建模方法; 掌握类图的基本概念及类图建模 方法;
Diagram)
项目二 2.1.3 Rational Rose的使用
11
1.Rose主界面介绍
• 完成系统安装后,我们就可以用Rose建立软件模型了。启动Rational Rose的 作法是:单击【开始】|【程序】,打开【程序】菜单,找到【IBM Rational 】后,运行【IBM Rational Rose Enterprise Edition】,出现IBM Rational Rose 2007的引导界面,然后,弹出的是如下图2-13所示的“新建模型”对话框。 这个对话框用来设置本次启动的初始动作,分为New(新建模型)、Existing (打开现有模型)、Recent(最近打开模型)3个选项卡。
UML_and_Rose教程
UML与Rational Rose讲义2002年8月2日目录目录 (2)1. 第一周:概述 (4)1.1 Rational家族工具和应用方向介绍 (4)1.1.1 用Rational工具和以往的软件开发方式,我们能改变什么? (4)1.1.2 在纵向看:软件的开发过程分为需求、建模、构造、测试、提交五个阶段。
41.1.3 从横行看:主要包括二大部分方法贯穿整个软件开发过程的始终。
(5)1.1.4 利用Rational的成功经验 (5)1.2 OOA&D面向对象的基本原则: (5)1.3 Rational Rose的界面介绍 (8)2. 第二周:静态建模:用例和用例图(Use Case Diagram) (8)2.1 角色和角色之间的关系 (8)2.1.1 角色 (8)2.1.2 发现角色: (9)2.1.3 角色之间的关系 (9)2.2 用例和用例之间的关系 (10)2.2.1 用例的特征: (10)2.2.2 发现用例 (10)2.2.3 用例之间的关系 (11)2.3 举例建立用例图的方法和文档的详细注释 (12)2.3.1 描述用例 (12)2.3.2 测试用例 (13)2.3.3 实现用例 (13)3. 第三周:静态建模:类图和对象图(Class Diagram) (15)3.1 类的定义 (16)3.2 类图的属性、操作和使用方法 (17)3.3 类图之间的关系 (18)3.3.1 关联 (18)3.3.2 依赖性 (19)3.3.3 精化关系 (20)3.3.4 聚合 (20)3.3.5 一般化 (21)3.4 类图的约束和派生规则 (23)3.5 类图的接口、组件、包和模板 (24)3.6 类图怎样生成java代码框架 (25)3.7 类的java代码生成类图 (25)4. 第四周:动态建模:序列图和协作图(Sequence & Callaboration Diagram) (25)4.1 序列图 (26)4.1.1 序列图的格式和并发事件 (26)4.1.2 序列图定义迭代和约束的标签 (28)4.1.3 序列图的递归方式 (28)4.2 协作图 (29)4.2.1 协作图的格式和消息流 (29)4.2.2 协作图的链接 (30)4.2.3 对象的生命周期 (32)4.3 从序列图转换为协作图的方式 (32)4.4 从协作图转换为序列图的方式 (32)5. 第五周:动态建模:状态图/活动图(Statechart / Activity Diagram) (32)5.1 状态图 (32)5.1.1 状态和转移 (32)5.1.2 事件 (33)5.1.3 状态图与子状态 (35)5.1.4 历史指示器 (35)5.2 活动图 (36)5.2.1 活动图的动作和转移 (37)5.2.2 活动图的泳道 (38)5.2.3 活动图的对象 (38)5.2.4 活动图的信号 (39)6. 第六周:图书馆信息系统UML实例 (39)6.1 需求 (39)6.2 分析-用例图 (40)6.3 建模及设计-类图 (40)6.4 建模及设计-状态图 (40)6.5 建模及设计-序列图 (40)6.6 详细设计-类包 (40)6.7 详细设计-详细的类图 (40)6.8 详细设计-关键对象的状态图 (40)6.9 详细设计-关键对象的序列图 (40)6.10 详细设计-关键对象的协作图 (40)6.11 详细设计-组件图 (40)6.12 接口的设计 (41)6.13 转成java并encoding实现 (41)6.14 测试和配置-展开图 (41)6.15 总结 (41)1. 第一周第一周::概述1.1 Rational家族工具和应用方向介绍1.1.1 用Rational工具和以往的软件开发方式,我们能改变什么?Rational ClearCase:提供版本控制,提供工作空间管理,建立管理和过程控制功能。
用例图的Rose 操作_UML与Rose建模实用教程_[共3页]
65 下方案。
y 识别参与者。
通过识别系统周围的参与者来确定系统边界并建立系统语境。
y 对于某个参与者,考虑其期望系统提供的行为或与系统的交互。
y 将行为提炼成用例。
y 完善其他用例。
分解用例中的公共行为与扩展行为,放入新的用例中以供其他用例使用。
y 创建用例图。
将用例、参与者与它们的关系建模成用例图。
y 如果需要,在用例图中添加一些注解或约束来陈述系统的非功能需求。
5.6.2 用例图使用要点建立一个结构良好的用例图,需要注意以下要点。
y 构建结构良好的用例。
用例图中应该只包含对系统而言必不可少的用例与相关的参与者。
y 用例的名称不应该简化到使读者误解其主要语义的程度。
y 在元素的摆放时,应尽量减少连接线的交叉,以提供更好的可视化效果。
y 组织元素时应使在语义上接近的用例和参与者在图的位置上也同样接近,便于读者理解用例图。
y 可以使用注解或给元素添加颜色等方式突出图中相对重要的内容。
y 用例图中不应该有太多的关系种类。
一般来说,如果用例图中有很复杂的包含与扩展关系,可以将这一元素单独放在一张用例图中,也可以只保留关键的几个关系,将其他关系在用例描述中进行表述。
另外,需要注意用例图只是系统的用例视图中的一个图形表示。
也就是说,一个单独的用例图不必包含用例视图的所有内容,当系统十分复杂的时候,可以使一个用例图表示系统的一个方面(子系统),使用多个用例图共同来表示系统的用例视图。
5.7 实验:使用Rose 绘制用例图本节主要介绍如何使用Rose 工具绘制用例图。
5.7.1 用例图的Rose 操作1.用例图工具栏在Rose 中,当选择一个用例图进行操作时,框图工具栏将变成用例图工具栏。
图5-11显示了系统默认的用例图工具栏。
2.新建用例图Rose 中可以在用例视图或逻辑视图下创建用例图。
在一个新建的项目中,Rose 提供了一个名称为“Main ”的空用例图,用户可以直接在此处进行绘制。
如果系统需要多个用例图来表示,那么用户可以新建自己的用例图。
基本动态模型_UML与Rose建模实用教程_[共2页]
210 订单的状态图请见本章“基本动态模型”一节。
查看所有订单:会员通过本用例查看所有与自己相关的订单;
查看单个订单信息:会员通过本用例查看某一订单的详细信息;
取消订单:会员通过本用例取消一个未结束的订单;(此用例可能发生退款过程,但不在系统考虑范围内)
提交订单:会员通过本用例提交订单,并且进入付款过程;
付款:会员通过本用例付款,此用例的具体实现需要与第三方支付系统进行交互。
15.2.2 基本动态模型
1.用户登录活动图
用户登录的主要过程为,
•用户进入登录界面;
•输入用户名、密码、验证码;
•单击登录;
•系统对输入信息进行验证;
•验证成功则用户以会员身份进入网站,否则返回错误页面。
使用活动图来表达整个过程如图15-2
所示。
图15-2 “用户登录”用例活动图
2.取消订单活动图
在本系统中,取消订单是一个比较复杂的用例。
在订单处于不同状态时取消订单的用例事件流有比较大的变化,对这样经常需要根据条件变化的事件过程适宜建立活动图。
取消订单用例的活动图如图15-3所示。
部署图的Rose 操作_UML与Rose建模实用教程_[共2页]
183 13.3 部署图建模技术部署图的意义在于对各种系统的静态部署视图进行建模,无论是C/S 结构、B/S 结构、嵌入式系统或分布式系统均可以使用部署图来有效表达。
除了UML 内置给部署图的两种基本节点类型(处理器和设备)以外,设计者还可以通过泛化来将系统内独特的类型加入部署图进行表示。
如果所开发的软件只运行在一台机器上且所有与机器交互的设备(如键盘、打印机等)都已经由操作系统进行连接,这类软件就不必对其设计部署图。
另外,如果与开发的软件进行交互的设备不是由操作系统管理,或者这些设备是物理地分布在多个处理器上的,则使用部署图能够有助于思考系统中软件到硬件的映射关系。
对系统使用部署图进行建模,一般会用于以下三种方式之一,嵌入式系统、C/S 系统和全分布式系统。
嵌入式系统是软件密集的硬件集合,其硬件与物理世界相互作用。
C/S 系统又称客户/服务器系统,是将系统的用户界面与系统逻辑和永久数据分离的一类系统。
分布式系统是一般由多级服务器组成的,建立在网络之上的软件系统。
我们可以看到,这三类系统都是需要软件与多台硬件设备交互的系统,使用部署图会对理解系统的物理结构有很大的帮助。
使用部署图对系统建模,可以遵循以下步骤。
• 识别系统中的设备,并建模为节点。
• 使用构造型对不同种类的节点进行限制说明。
如果可能,可以利用扩展机制创建适当的图标来表示。
至少要区分出处理器与设备。
• 对图中的节点,分析哪些节点之间需要进行通信,在这些节点之间建立关系并用适当的构造型来描述。
• 如果需要,添加注解和约束来对模型进一步描述。
13.4 实验:使用Rose 绘制部署图本节将介绍如何使用Rose 绘制系统的部署图。
13.4.1 部署图的Rose 操作1.部署图工具栏在Rose 中对部署图进行操作时,框图工具栏将变成部署图工具栏。
图13-4显示了系统默认的部署图工具栏。
图13-4 部署图工具栏。
组件图的Rose 操作_UML与Rose建模实用教程_[共2页]
176
•考虑集合中每个组件的类型。
•如果系统规模较大,可以使用包对组件进行分组。
这里包的使用可以对应于相应文件的文件存储结构。
•分析组件之间的关系,使用接口和依赖关系建模这些关系。
•考量建模结果是否实现了组件的各个特性,对建模的结果进行细化。
12.4 实验:使用Rose绘制组件图
本节将介绍如何使用Rose绘制系统的组件图。
12.4.1 组件图的Rose操作
1.组件图工具栏
在Rose中,当选择一个组件图进行操作时,框图工具栏将变成组件图工具栏。
图12-15
显示了系统默认的组件图工具栏。
图12-15 组件图工具栏
2.创建组件图
在Rose中,组件图只能被创建在【Component View】中,在一个新建的项目中,Rose提供了一个名称为“Main”的空组件图,用户可以直接在此处进行绘制,也可以新建自己的用例图。
创建组件图的具体操作是在浏览器的【Component View】目录下单击鼠标右键,在弹出的菜单中选择【New】Æ【Component Diagram】项,如图
12-16所示,再对新创建的图进行命名即可。
图12-16 创建组件图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UML与Rational Rose讲义2002年8月2日目录目录 (2)1. 第一周:概述 (4)1.1 Rational家族工具和应用方向介绍 (4)1.1.1 用Rational工具和以往的软件开发方式,我们能改变什么? (4)1.1.2 在纵向看:软件的开发过程分为需求、建模、构造、测试、提交五个阶段。
41.1.3 从横行看:主要包括二大部分方法贯穿整个软件开发过程的始终。
(5)1.1.4 利用Rational的成功经验 (5)1.2 OOA&D面向对象的基本原则: (5)1.3 Rational Rose的界面介绍 (8)2. 第二周:静态建模:用例和用例图(Use Case Diagram) (8)2.1 角色和角色之间的关系 (8)2.1.1 角色 (8)2.1.2 发现角色: (9)2.1.3 角色之间的关系 (9)2.2 用例和用例之间的关系 (10)2.2.1 用例的特征: (10)2.2.2 发现用例 (10)2.2.3 用例之间的关系 (11)2.3 举例建立用例图的方法和文档的详细注释 (12)2.3.1 描述用例 (12)2.3.2 测试用例 (13)2.3.3 实现用例 (13)3. 第三周:静态建模:类图和对象图(Class Diagram) (15)3.1 类的定义 (16)3.2 类图的属性、操作和使用方法 (17)3.3 类图之间的关系 (18)3.3.1 关联 (18)3.3.2 依赖性 (19)3.3.3 精化关系 (20)3.3.4 聚合 (20)3.3.5 一般化 (21)3.4 类图的约束和派生规则 (23)3.5 类图的接口、组件、包和模板 (24)3.6 类图怎样生成java代码框架 (25)3.7 类的java代码生成类图 (25)4. 第四周:动态建模:序列图和协作图(Sequence & Callaboration Diagram) (25)4.1 序列图 (26)4.1.1 序列图的格式和并发事件 (26)4.1.2 序列图定义迭代和约束的标签 (28)4.1.3 序列图的递归方式 (28)4.2 协作图 (29)4.2.1 协作图的格式和消息流 (29)4.2.2 协作图的链接 (30)4.2.3 对象的生命周期 (32)4.3 从序列图转换为协作图的方式 (32)4.4 从协作图转换为序列图的方式 (32)5. 第五周:动态建模:状态图/活动图(Statechart / Activity Diagram) (32)5.1 状态图 (32)5.1.1 状态和转移 (32)5.1.2 事件 (33)5.1.3 状态图与子状态 (35)5.1.4 历史指示器 (35)5.2 活动图 (36)5.2.1 活动图的动作和转移 (37)5.2.2 活动图的泳道 (38)5.2.3 活动图的对象 (38)5.2.4 活动图的信号 (39)6. 第六周:图书馆信息系统UML实例 (39)6.1 需求 (39)6.2 分析-用例图 (40)6.3 建模及设计-类图 (40)6.4 建模及设计-状态图 (40)6.5 建模及设计-序列图 (40)6.6 详细设计-类包 (40)6.7 详细设计-详细的类图 (40)6.8 详细设计-关键对象的状态图 (40)6.9 详细设计-关键对象的序列图 (40)6.10 详细设计-关键对象的协作图 (40)6.11 详细设计-组件图 (40)6.12 接口的设计 (41)6.13 转成java并encoding实现 (41)6.14 测试和配置-展开图 (41)6.15 总结 (41)1. 第一周第一周::概述1.1 Rational家族工具和应用方向介绍1.1.1 用Rational工具和以往的软件开发方式,我们能改变什么?Rational ClearCase:提供版本控制,提供工作空间管理,建立管理和过程控制功能。
Rational ClearQuest:定制缺陷和变更请求的信息域、过程、用户界面、查询、图表和报告等。
Rational Requisite Pro:用户需求分析工具。
Rational Rose:可视化的建模工具,将应用程序可视化、说明应用程序的完整结构或行为、创建一个模板引导你构建应用程序、将质量贯穿与整个开发生命周期、将开发过程中的所有决策信息整理归档。
Rational Unified Process:是一个可以通过Web来使用的软件工程流程,可以提高团队的生产效率,并将最佳软件开发经验传递给所有团队成员。
Rational SoDA:文档维护工具。
Rational Suite TestStudio:全方位的质量测试,包括单元测试和自动化测试。
1.1.2 在纵向看:软件的开发过程分为需求、建模、构造、测试、提交五个阶段。
需求分析主要使用的工具为Rational Requisite Pro分析建模阶段主要使用的工具为:Rational Rose。
在系统构造阶段就是用基于面向对象的语言(如Java、C++等)用程序员的经验、技能、好的想法合理的在体现前面二项分析的模型情况下具体实现软件的功能,并进行单元项的测试和修改。
测试阶段包括单元测试、整体联合测试、软件全方位的质量测试、满足项目需求的功能测试、寻找应用程序缺陷的可靠性测试、查找响应时间瓶颈的性能测试等。
并按测试的结果提出相应的改进建议。
提交阶段:包括为用户的安装、调试、培训、应用等具体行为。
1.1.3 从横行看:主要包括二大部分方法贯穿整个软件开发过程的始终。
方法一、UCM(全球变更管理)、SCM(软件配置管理),版本控制(Rational ClearCase)。
方法二、CM(变更管理),工具为Rational ClearQuest。
1.1.4 利用Rational的成功经验1)迭代化的开发2)基于构件的软件构架3)可视化建模(UML)4)持续地质量验证5)配置和变更管理1.2 OOA&D面向对象的基本原则:面向对象机制是另一种观察应用程序的方式。
利用面向对象方法,把应用程序分成许多小块(或对象),这些对象是相互独立的。
然后可以组合这些对象,建立应用程序。
可以把它看成砌砖墙。
第一步要建立或购买基本对象(各种砖块)。
有了这些砖块后,就可以砌出砖墙了。
在计算机领域中建立或购买基本对象后,就可以集成起来,生成新的应用程序。
面向对象机制的一个好处是可以一次性地建立组件,然后反复地使用。
那么面向对象机制与传统开发方法有什么不同呢?传统开发方法集中考虑系统要维护的信息。
用这种方法时,我们要向用户询问他们需要什么信息,然后设计保存信息的数据库,提供输入信息的屏幕并打印显示信息的报表。
换句话说,我们关注信息,而不是关注信息的作用或系统的功能。
这种方法是以数据为中心的,多年来用它建立了成千上万个系统。
以数据为中心的模型适合数据设计和捕获信息。
但用来设计商业应用程序就有问题。
一个主要问题是系统要求随着时间不断变化。
以数据为中心的系统可以方便地处理数据库变化,但很难实现商业规则变化和系统功能变化。
面向对象机制的开发正是要解决这个问题。
利用面向对象机制,我们同时关注信息与功能。
因此,我们可开发密切关注和适应信息与功能变化的系统。
要实现灵活性带来的好处,只能通过设计好的面向对象系统。
这就要求了解面向对象的基本原则:a) 封装(Encapsulation)在面向对象系统中,我们将信息与处理信息的功能组合起来,然后将其包装成对象,称为封装。
另一种理解封装的方法就是把应用程序分解成较小的功能组件。
例如,我们把与银行有关的信息,如帐号、节余、客户名和功能:开户、销户、存取款。
我们将这些信息与处理信息的功能封装成帐目对象。
结果,银行系统对帐目的任何改变就会在帐目对象中实现。
它是所有帐目信息与功能的集合。
银行模型:有银行信用帐户的客户,增加支票帐户的透支额只要改变Account类。
封装的另一好处是将系统改变的影响限制在对象内。
b) 继承(Inheritance)在面向对象系统中,继承机制可以根据旧对象生成新对象。
子对象继承父对象的特性。
继承的主要好处之一是易于维护。
(变化时只需改变父对象)c) 多态(Polymorphism)多态的定义是多种不同形式、阶段或类型发生的事,表示特定功能有多种形式或实现方法。
假如没有多态代码为Function shape.drawMe(){case shape.Typecase “Circle”shape.drawCircle();case”Rectangle”shape.drawRectangle();case”Line”shape.drawLine();Endcase}多态代码为Function draw(){shape.drawMe();}1.3 Rational Rose的界面介绍可视化建模将模型中的信息用标准图形元素直观地显示。
建立模型后,可以向所有感兴趣的方面显示这个模型,让他们对模型中的重要信息一目了然。
演示并解说Rose的主要功能和使用方法。
第二周::静态建模静态建模::用例和用例图(Use Case Diagram)2. 第二周2.1 角色和角色之间的关系2.1.1 角色角色(actor)是与系统交互的人或事。
角色是一个群体概念,代表的是一类能使用某个功能的人或事,角色不是指某个个体。
“所谓系统交互”指的是角色向系统发送消息,从系统中接受消息,或是在系统中交换信息。
只要使用用例,与系统相互交流的任何人或事都是角色。
比如,某人使用系统中提供的用例,则该人是角色;与系统进行通讯(通过用例)的某种硬件设备也是角色。
角色与系统进行通讯的收、发消息机制,与面向对象编程中的消息机制很像。
角色是启动用例的前提条件,又称为刺激物(stimulus)。
角色可以分为:主要角色(primary actor)指执行系统主要功能的角色,次要角色(secondary actor)指使用系统的次要功能的角色,次要功能是指一般完成维护系统的功能(比如,管理数据库、通讯、备份等)。
或分为:主动角色(可以初始化用例),被动角色(不能初始化用例)仅仅参与一个或多个用例,在某个时刻与用例通讯。
2.1.2 发现角色:使用系统主要功能的人是谁(即主要角色)?需要借助与系统完成日常工作的人是谁?谁来维护、管理系统(次要角色),保证系统正常工作?系统控制的硬件设备有哪些?系统需要与哪些其他系统交互?其他系统包括计算机系统,也包括该系统将要使用的计算机中的其他应用软件。
其他系统也分二类,一类是启动该系统,另一类是该系统要使用的系统。
对系统产生的结果感兴趣的人或事是哪些?2.1.3 角色之间的关系角色是类所以拥有与类相同的关系描述:把某些角色的共同行为(原角色中的部分行为),抽取出来表示成通用行为,且把它们描述成为超类(superclass),即通用化关系。