UML实例图讲解

合集下载

UML中类图实例(动物)

UML中类图实例(动物)

接口:空心圆+直线(唐老鸭类实现了…讲人话‟);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成/组合:实心四边形+实线+箭头(鸟和翅膀的关系);泛化/继承:空心三角形+实线(动物和鸟的继承关系);实现:空心三角形+虚线(实现大雁飞翔的接口);UML类图1. 首先看“动物”矩形框,它代表一个类。

该类图分为三层,第一层显示类的名称,如果是抽象类就要用斜体显示。

第二层是类的特性,通常就是字段和属性。

第三层是类的操作,通常是方法和行为。

注意前面的符号,…+‟表示public, …—‟表示private, …#‟表示protected.2. “飞翔”矩形框表示一个接口图,它与类图的区别主要是顶端有《interface》显示,第一行是接口名称,第二行是接口方法。

接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。

interface IFly interface Ilanguage{ {void Fly(); void Speak();} }3. 动物,鸟,鸭,唐老鸭他们之间都是继承的关系,继承关系用空心三角形+实线来表示。

4.“大雁”实现了“飞翔”接口。

实现接口用空心三角形+虚线来表示。

(注:下面的图中应为空心三角形)class Bird:Animal class WideGoose:IFly{ {//继承动物类 //实现飞翔接口} }5. 企鹅与气候有很大的关系,企鹅需要“知道”气候的变化,需要“了解”气候规律。

当一个类“知道”另一个类时,可以用关联(association)关系。

关联关系用实线箭头来表示。

class Penguin :Bird{private Climate climate;//在企鹅Penguin中,引用到气候Climate对象}6. “大雁”和“雁群”这两个类。

大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁。

uml图例讲解剖析

uml图例讲解剖析

证,验证通过后,数据库注销相应存款,返回注销完成信息,
银行系统在存折上打印取款记录。 请根据以上信息绘制顺序图。
UML图例讲解
(6)在某一学生指纹考勤系统中,有一个用例名为“上课登记”。此用例允 许学生在上课前使用系统识别自己的指纹信息进而识别自己的身份,同时 系统可以将登录信息存储在数据库中。 “上课登记”用例的主要事件流如下: 学生从系统菜单中选择“上课登记”; 系统显示指纹识别界面; 学生将手指放置于界面上; 系统捕获并识别学生的指纹,向学生返回识别的身份信息; 学生选择“确认”按钮; 系统生成一个关于该登记学生及当前日期、时间的新记录,并将该记录 保存到数据库中。 请根据以上描述绘制“上课登记”用例的顺序图。
UML图例讲解
(2)某银行储蓄系统需求说明如下。 ①开户:客户可填写开立账户申请表,然后交由工作人员验证并输入系统。 系统会建立账户记录,并会提示客户设置密码(若客户没做设置,则会有一 个缺省密码)。如果开户成功,系统会打印一本存折给客户。 ②密码设置:在开户时客户即可设置密码。此后,客户在经过身份验证后, 还可修改密码。 ③存款:客户可填写存款单,然后交由工作人员验证并输入系统。系统将建 立存款记录,并在存折上打印该笔存款记录。 ④取款:客户可按存款记录逐笔取款,由客户填写取款单,然后交由工作人 员验证并输入系统。系统首先会验证客户身份,根据客户的账户、密码,对 客户身份进行验证。如果客户身份验证通过,则系统将根据存款记录累计利 息,然后注销该笔存款,并在存折上打印该笔存款的注销与利息累计。 请根据以上信息绘制出系统的用例图。
②用户选择其中一种汽水,系统处理后将该种汽水释放。
请绘制此交互过程的协作图。
UML图例讲解
(9)医院拟引入一款患者监护系统。基本要求是随时接收每个 病人的生理信号(脉搏、体温、血压、心电图等),定时记录病

UML中类图实例

UML中类图实例

UML中类图真例之阳早格格创做交心:空心圆+曲线(唐老鸭类真止了‘道人话’);依好:真线+箭头(动物战气氛的闭系);闭联:真线+箭头(企鹅需要相识气候才迁移);散合:空心四边形+真线+箭头(雁群战大雁的闭系);合成/拉拢:真心四边形+真线+箭头(鸟战翅膀的闭系);泛化/继启:空心三角形+真线(动物战鸟的继启闭系);真止:空心三角形+真线(真止大雁飞翔的交心);UML类图阐明UML类图:1. 最先瞅“动物”矩形框,它代表一个类.该类图分为三层,第一层隐现类的称呼,如果是抽象类便要用斜体隐现.第二层是类的个性,常常便是字段战属性.第三层是类的收配,常常是要领战止为.注意前里的标记,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.2. “飞翔”矩形框表示一个交心图,它取类图的辨别主假如顶端有《interface》隐现,第一止是交心称呼,第二止是交心要领.交心另有另一种表示要领,雅称棒棒糖表示法,便是唐老鸭类真止了“道人话”的交心.interface IFly interfaceIlanguage{ {void Fly(); void Speak();} }3. 动物,鸟,鸭,唐老鸭他们之间皆是继启的闭系,继启闭系用空心三角形+真止去表示.4.“大雁”真止了“飞翔”交心.真止交心用空心三角形+真线去表示.(注:底下的图中应为空心三角形)class Bird:Animal class WideGoose:IFly{ {//继启动物类 //真止飞翔交心} }5. 企鹅取气候有很大的闭系,企鹅需要“相识”气候的变更,需要“相识”气候顺序.当一个类“相识”另一个类时,不妨用闭联(association)闭系.闭联闭系用真线箭头去表示.class Penguin :Bird{private Climate climate;//正在企鹅Penguin中,引用到气候Climate对于象}6. “大雁”战“雁群”那二个类.大雁是群居动物,每只大雁皆属于一个雁群,一个雁群不妨有多只大雁.所以它们之间便谦脚散合(Aggregation)闭系.散合表示一种强的“拥有”闭系,体现的是A对于象不妨包罗B对于象,但是B对于象没有是A对于象的一部分.散合闭系用空心的菱形+ 真线箭头表示.class WideGooseAggregate{private WideGoose[] arrayWideGoose;//正在雁群WideGooseAggregate类中,有大雁数组对于象arrayWideGoose}7. “鸟”战“翅膀”那二个类.鸟战翅膀似完全战部分的闭系,而且翅膀战鸟的死命周期是相共的,正在那里鸟战其翅膀便是合成闭系.合成(composition)是一种强的“拥有”闭系,体现了庄重的部分战完全的闭系,部分战完全的死命周期一般.合成闭系用真心的的菱形+真线箭头去表示.其余,合成闭系的连线二端另有一个数字“1”战数字“2”,,那被称为基数.标明那一端的类不妨有几个真例,很隐然,一个鸟该当有二收翅膀.如果一个类大概有无数个真例,则便用“n”去表示.闭联闭系,散合闭系也不妨有基数的.class Bird{private Wing wing;public Bird(){wing=new Wing();//正在鸟Bird类中,初初化时,真例化翅膀Wing,它们之间共时死成}}8. “动物”、“氧气”取“火”之间.动物有几大个性,比圆有新陈代开,能繁殖.而动物要有死命,需要氧气,火以及食物等.也便是道动物依好于氧气战火.它们之间是依好闭系(Dependency),用真线箭头去表示.abstractclass Animal{public bolism(Oxygen oxygen,Water water){}}。

UML系统需求分析建模实例包括业务建模(ppt28张)

UML系统需求分析建模实例包括业务建模(ppt28张)

系统用例着重于要设计的软件系 统。参与者如何与软件系统进行 交互?我们在系统用例说明中书 写的事件流应该足够详细,从而 用作编写系统测试脚本的出发点。 系统用例几乎总是以黑盒形式编 写的。它们描述了软件系统之外 的参与者如何与将被设计的系统 进行交互。系统用例详细阐明了 系统需求。系统用例模型的目的 是从涉众的角度说明需求,而不 是设计如何满足需求。
后记I-系统分析
ห้องสมุดไป่ตู้
员工报销申请 用例实现的分 析类时序图
后记II-系统分析
VOPC类图
后记II-系统设计

系统架构 选择什么框架 基于框架和架构的时序图
• • • • • • • • • • • • • • • • • • • •
1、想要体面生活,又觉得打拼辛苦;想要健康身体,又无法坚持运动。人最失败的,莫过于对自己不负责任,连答应自己的事都办不到,又何必抱怨这个世界都和你作对?人生的道理很简单,你想要什么,就去付出足够的努力。 2、时间是最公平的,活一天就拥有24小时,差别只是珍惜。你若不相信努力和时光,时光一定第一个辜负你。有梦想就立刻行动,因为现在过的每一天,都是余生中最年轻的一天。 3、无论正在经历什么,都请不要轻言放弃,因为从来没有一种坚持会被辜负。谁的人生不是荆棘前行,生活从来不会一蹴而就,也不会永远安稳,只要努力,就能做独一无二平凡可贵的自己。 4、努力本就是年轻人应有的状态,是件充实且美好的事,可一旦有了表演的成分,就会显得廉价,努力,不该是为了朋友圈多获得几个赞,不该是每次长篇赘述后的自我感动,它是一件平凡而自然而然的事,最佳的努力不过是:但行好事,莫问前程。愿努力,成就更好的你! 5、付出努力却没能实现的梦想,爱了很久却没能在一起的人,活得用力却平淡寂寞的青春,遗憾是每一次小的挫折,它磨去最初柔软的心智、让我们懂得累积时间的力量;那些孤独沉寂的时光,让我们学会守候内心的平和与坚定。那些脆弱的不完美,都会在努力和坚持下,改变模样。 6、人生中总会有一段艰难的路,需要自己独自走完,没人帮助,没人陪伴,不必畏惧,昂头走过去就是了,经历所有的挫折与磨难,你会发现,自己远比想象中要强大得多。多走弯路,才会找到捷径,经历也是人生,修炼一颗强大的内心,做更好的自己! 7、“一定要成功”这种内在的推动力是我们生命中最神奇最有趣的东西。一个人要做成大事,绝不能缺少这种力量,因为这种力量能够驱动人不停地提高自己的能力。一个人只有先在心里肯定自己,相信自己,才能成就自己! 8、人生的旅途中,最清晰的脚印,往往印在最泥泞的路上,所以,别畏惧暂时的困顿,即使无人鼓掌,也要全情投入,优雅坚持。真正改变命运的,并不是等来的机遇,而是我们的态度。 9、这世上没有所谓的天才,也没有不劳而获的回报,你所看到的每个光鲜人物,其背后都付出了令人震惊的努力。请相信,你的潜力还远远没有爆发出来,不要给自己的人生设限,你自以为的极限,只是别人的起点。写给渴望突破瓶颈、实现快速跨越的你。 10、生活中,有人给予帮助,那是幸运,没人给予帮助,那是命运。我们要学会在幸运青睐自己的时候学会感恩,在命运磨练自己的时候学会坚韧。这既是对自己的尊重,也是对自己的负责。 11、失败不可怕,可怕的是从来没有努力过,还怡然自得地安慰自己,连一点点的懊悔都被麻木所掩盖下去。不能怕,没什么比自己背叛自己更可怕。 12、跌倒了,一定要爬起来。不爬起来,别人会看不起你,你自己也会失去机会。在人前微笑,在人后落泪,可这是每个人都要学会的成长。 13、要相信,这个世界上永远能够依靠的只有你自己。所以,管别人怎么看,坚持自己的坚持,直到坚持不下去为止。 14、也许你想要的未来在别人眼里不值一提,也许你已经很努力了可还是有人不满意,也许你的理想离你的距离从来没有拉近过......但请你继续向前走,因为别人看不到你的努力,你却始终看得见自己。 15、所有的辉煌和伟大,一定伴随着挫折和跌倒;所有的风光背后,一定都是一串串揉和着泪水和汗水的脚印。 16、成功的反义词不是失败,而是从未行动。有一天你总会明白,遗憾比失败更让你难以面对。 17、没有一件事情可以一下子把你打垮,也不会有一件事情可以让你一步登天,慢慢走,慢慢看,生命是一个慢慢累积的过程。 18、努力也许不等于成功,可是那段追逐梦想的努力,会让你找到一个更好的自己,一个沉默努力充实安静的自己。 19、你相信梦想,梦想才会相信你。有一种落差是,你配不上自己的野心,也辜负了所受的苦难。 20、生活不会按你想要的方式进行,它会给你一段时间,让你孤独、迷茫又沉默忧郁。但如果靠这段时间跟自己独处,多看一本书,去做可以做的事,放下过去的人,等你度过低潮,那些独处的时光必定能照亮你的路,也是这些不堪陪你成熟。所以,现在没那么糟,看似生活对你的亏欠,其 实都是祝愿。

uml图例讲解PPT课件

uml图例讲解PPT课件
“上课登记”用例的主要事件流如下: 学生从系统菜单中选择“上课登记”; 系统显示指纹识别界面; 学生将手指放置于界面上; 系统捕获并识别学生的指纹,向学生返回识别的身份信息; 学生选择“确认”按钮; 系统生成一个关于该登记学生及当前日期、时间的新记录,并将该记录 保存到数据库中。 请根据以上描述绘制“上课登记”用例的顺序图。
请按以上描述绘制出使用手机的状态图。
10
.
UML图例讲解
(11)某学生选课系统的查询课程用例如下,学生首先进入选课 系统,然后输入要查询的课程名,系统验证输入的课程名是否 存在,若存在,跳转到对应的显示课程信息的页面;若不存在, 则给出提示信息,返回选课页面。 请根据以上描述绘制活动图。
11
.
UML图例讲解
(4)在一个习题库下,各科老师可以在系统中编写习题及标准 答案,并将编写的习题和答案加入题库中,或者从题库中选取 一组习题组成向学生布置的作业,并在适当的时间公布答案。 学生可以在系统中完成作业,也可以从题库中选择更多的习题 练习。老师可以通过系统检查学生的作业,学生可以在老师公 布答案后对自己的练习进行核对。阅读这一情境,分析出该系 统所包括的实体类并适当添加属性,绘制出分析类图。
uml图例讲解555某银行系统的取款用例执行顺序如下工作人员输冬取款单输入后银行系统请求银行数据库匹配用户迚行身份验证验证通过后数据库注销相应存款返回注销完成信息银行系统在存折上打印取款记彔
UML图例讲解
(1)某个学生成绩管理系统的部分参与者和用例总结如下。
教务管理人员:
①登录系统;
②教师、学生名单管理;
③学期教学计划管理;
④成绩管理;
⑤课程分配,每次课程分配时都必须打印任课通知书。
学生:

UML活动图实例

UML活动图实例

1. UML活动图实例一、活动图的组成元素 Activity Diagram Element1、活动状态图(Activity)2、动作状态(Actions)3、动作状态约束(Action Constraints)4、动作流(Control Flow)5、开始节点(Initial Node)6、终止节点(Final Node)7、对象(Objects)8、数据存储对象(DataStore)9、对象流(Object Flows)10、分支与合并(Decision and Merge Nodes)11、分叉与汇合(Fork and Join Nodes)12、异常处理(Exception Handler)13、活动中断区域(Interruptible Activity Region)14、泳道(Partition)二、活动图案例分析三、总结活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。

活动图在本质上是一种流程图。

活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。

一、活动图的组成元素 Activity Diagram Element1、活动状态图(Activity)活动状态用于表达状态机中的非原子的运行,其特点如下:(1)、活动状态可以分解成其他子活动或者动作状态。

(2)、活动状态的内部活动可以用另一个活动图来表示。

(3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。

(4)、动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。

UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。

2、动作状态(Actions)动作状态是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。

动作状态有如下特点:(1)、动作状态是原子的,它是构造活动图的最小单位。

uml类实例讲解

uml类实例讲解

UML类图是一种用于描述系统中类的关系和结构的工具。

类图中的类表示现实世界中的实体或抽象概念,而对象则是类的实例。

在UML中,类被表示为一个划分为三个格子的长方形。

第一个格子包含类名,第二个格子包含类的属性,第三个格子包含类的方法。

以猫类为例,猫的类名位于第一个格子,其属性(例如:颜色、性别等)位于第二个格子,其方法(例如:吃、睡等)位于第三个格子。

在类图中,类之间的关系主要有以下几种:
1. 依赖关系:表示一个类依赖于另一个类的定义。

例如,如果一个类的方法中使用了另一个类的属性或方法,那么这两个类之间就存在依赖关系。

2. 泛化关系:表示一个类是另一个类的特殊形式。

例如,狗是动物的一种特殊形式,那么狗和动物之间就存在泛化关系。

3. 关联关系:表示两个类之间存在一种联系。

例如,一个班级有多个学生,那么班级和学生之间就存在关联关系。

4. 实现关系:表示一个类实现了另一个接口。

例如,一个类实现了某个接口,那么这个类和接口之间就存在实现关系。

在UML类图中,这些关系可以通过不同的线条和箭头来表示。

例如,带空心箭头的虚线表示实现关系,带空心箭头的实线表示泛化关系,带实心箭头的实线表示组合关系等。

总之,UML类图是一种强大的工具,可以帮助我们理解和设计复杂的系统。

通过使用类图,我们可以更好地组织和理解系统的结构和关系,从而更好地进行设计和开发。

UML的9种图例的定义、用途、画法总结

UML的9种图例的定义、用途、画法总结

1UML 的9种图例的总结一、 用例图1、 定义用例定义:用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。

(这是UML 对用例的正式定义,可以这样去理解,用例是参与者想要系统做的事情,用例在画图中用椭圆来表示,椭圆下面附上用例名称)。

用例图定义:由参与者(Actor )、用例(Use Case )以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。

2、 用途用例图(User Case )是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

用例图主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。

3、 组成元素以及元素之间的关系说明用例图由参与者(Actor )、用例(Use Case )、系统边界(用矩形表示—注明系统名称)、箭头组成,用画图的方法来完成。

参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。

因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。

还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。

系统边界是用来表示正在建模系统的边界。

边界内表示系统的组成部分,边界外表示系统外部。

系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。

因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。

箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。

箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。

元素之间的关系:用例图中包含的元素除了系统边界、角色和用例,另外就是关系。

关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。

角色之间的关系:角色之间的关系。

UML完整例子ppt课件

UML完整例子ppt课件
• 书籍列表类:书籍列表就是全部的藏书列表,其
主要的成员方法是新增、修改、查询(按关键字 查询)、统计(按特定时限统计册数与金额)。
• 借阅记录类:借阅人(朋友)、借阅时间。 • 借阅记录列表类:主要职责就是添加记录(借
出)、删除记录(归还)以及打印借阅记录
12
类图
13
(6) 限定与修改
• 导航性分析:Book与BookList之间、BorrowRecord和
5
(2)筛选备选类
• “小王”、“人”、“家里”很明显是系统外的 概念,无须对其建模;
• 而“个人图书管理系统”、“系统”指的就是 将要开发的系统,即系统本身,也无须对其进 行建模;
• 很明显“书籍”是一个很重要的类,而“书 名”、“作者”、“类别”、“出版社”、 “书号”则都是用来描述书籍的基本信息的, 因此应该作为“书籍”类的属性处理,而“规 则”是指书号的生成规则,而书号则是书籍的 一个属性,因此“规则”可以作为编写“书籍” 类构造函数的指南。
6
筛选备选类
• “基本信息”则是书名、作者、类别等描述书籍的 基本信息统称,“关键字”则是代表其中之一, 因此无需对其建模;
• “功能”、“新书籍”、“信息”、“记录”都 是在描述需求时使用到的一些相关词语,并不是 问题域的本质,因此先可以将其淘汰掉;
• “计算机类”、“非计算机类”是该系统中图书
19
(3)合并需求获得用例
BorrowList之间是组合关系均无需添加方向描述,而 Book与BorrowRecord之间则是双方关联,也无需添加 约束:
• Book对象创建后就不能够被删除只能被修改,因此在
Book类边上加上用自由文本写的约束 ;
• 一本书要么属于计算机类,要么属于非计算机类,因此

UML的用例图

UML的用例图
4虚线ቤተ መጻሕፍቲ ባይዱ示用户与用户的依赖关系人事经理自己不干活依赖下面的人事专员考勤专员
UML的 用 例 图
1、 概 念 理 解
(1)用例图是UML多种图形语言的一种,最能体现系统结构,直观展现系统功能模块模型 (2)用例图用于描述用户与用例(角色与功能模块)之间的关联关系 (3)常用Power Designer 绘制用例图
2、 绘 制 步 骤
文件 => 建立新模型 => ModelTypes => Object-Oriented Model => User Case Diagram
3、 示 例 分 析
(1) 小人表示用户(系统角色) (2) 圆圈表示用例(系统功能模块) (3)实现表示用户与用例的关联关系,即当前系统模块的参与者是谁 (4)虚线表示用户与用户的依赖关系,人事经理自己不干活,依赖下面的人事专员、考勤专员...干活,这种依赖关系用虚线表示

UML活动图详解示例

UML活动图详解示例

UML 活动图详解示例转自清闲居博客,转载原因示例很不错,分享一下/zzxian/article/details/6781434 内容路线•活动图概述活动图概述•活动图和交互图是UML中对系统动态方面建模的两种主要形式•交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流•活动图是一种表述过程基理、业务过程以及工作流的技术。

它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模•UML 2.0而言,去除了“活动图是状态图的一种特例”这一规定•如何阅读活动图阅读简单活动图活动图的主要元素•初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点•活动节点:是活动图中最主要的元素之一,它用来表示一个活动•转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示活动图的主要元素•分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。

而每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。

•分岔与汇合:修改后的简单活动图带泳道的活动图带对象流的活动图复杂活动图•辅助活动图:•汇合描述:当汇合的所有入流均到点汇合点时,就将执行汇合点指向的活动节点。

但是有些时候,你希望对其做一些约束,这时就可以借助汇合描述来完成。

汇合描述实际上是一个约束,其格式就是“{约束条件}”。

•发送信号与接收信号:•如何绘制活动图绘制活动图•“活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图•绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者•然后尽量使用分支、分岔和汇合等基本的建模元素来描述活动控制流程•如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息•活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充工作流程,控制流程,业务流程中使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UML实践----用例图、顺序图、状态图、类图、包图、协作图
2009-01-20 作者:Randy Miller 来源:网络
面向对象的问题的处理的关键是建模问题。

建模可以把在复杂世界的许多重要的细节给抽象出。

许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。

UML中有九种建模的图标,即:
∙用例图
∙类图
∙对象图
∙顺序图
∙协作图
∙状态图
∙活动图
∙组件图
∙配置图
本课程中的某些部分包含了这些图的细节信息的页面链接。

而且每个部分都有一个小问题,测试一下你对这个部分的理解。

为什么UML很重要?
为了回答这个问题,我们看看建筑行业。

设计师设计出房子。

施工人员使用这个设计来建造房子。

建筑越复杂,设计师和施工人员之间的交流就越重要。

蓝图就成为了这个行业中的设计师和施工人员的必修课。

写软件就好像建造建筑物一样。

系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。

在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。

现在它已经成为了软件行业的一部分了。

UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。

UML被应用到面向对象的问题的解决上。

想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。

一个模型model就是根本问题的抽象。

域domain就是问题所处的真实世界。

模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。

记住把一个对象想象成“活着的”。

对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。

对象的属性的值决定了它的状态state。

类Classes是对象的“蓝图”。

一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。

对象是类的实例instances。

用例图
用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。

强调这个系统是什么而不是这个系统怎么工作。

用例图与情节紧紧相关的。

情节scenario是指当某个人与系统进行互动时发生的情况。

下面是一个医院门诊部的情节。

“一个病人打电话给门诊部预约一年一次的身体检查。

接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录。


用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和。

角色actor是发动与这个工作有关的事件的人或者事情。

角色简单的扮演着人或者对象的作用。

下面的图是一个门诊部Make Appointment用例。

角色是病人。

角色与用例的联系是通讯联系communication association(或简称通讯communication)
角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线。

一个用例图是角色,用例,和它们之间的联系的集合。

我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分。

注意一个单独的用例可以有多个角色。

用例图在三个领域很有作用。

∙决定特征(需求)。

当系统已经分析好并且设计成型时,新的用例产生新的需求
∙客户通讯。

使用用例图很容易表示开发者与客户之间的联系。

∙产生测试用例。

一个用例的情节可能产生这些情节的一批测试用例。

类图
类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统。

类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响。

下面是一个顾客从零售商处预定商品的模型的类图。

中心的类是Order。

连接它的是购买货物的Customer和Payment。

Payment有三种形式:Cash,Check,或者Credit。

订单包括OrderDetails(line item),每个这种类都连着Item。

每个类图的矩形对应了一个单独的实例。

实例名称中所强调的UML图表。

类或实例的名称可能是省略对象图表只要图的意义仍然是明确的。

顺序图
类图和对象图是静态模型的视图。

交互图是动态的。

他们描述了对象间的交互作用。

顺序图将交互关系表示为一个二维图。

纵向是时间轴,时间沿竖线向下延伸。

横向轴代表了在协作中各独立对象的类元角色。

类元角色用生命线表示。

当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

消息用从一个对象的生命线到另一个对象生命线的箭头表示。

箭头以时间顺序在图中从上到下排列。

协作图
协作图也是互动的图表。

他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色。

在序列图中,对象的角色放在上面而消息则是连接线。

对象角色矩形上标有类或对象名(或者都有)。

类名前面有个冒号(:)。

协作图的每个消息都有一个序列号。

顶层消息的数字是1。

同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等。

状态图
对象拥有行为和状态。

对象的状态是由对象当前的行动和条件决定的。

状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移。

我们的模型例图建立了一个银行的在线登录系统。

登录过程包括输入合法的密码和个人账号,再提交给系统验证信息。

登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting。

每个状态都有一套完整的转移transitions来决定状态的顺序。

状态是用圆角矩形来表示的。

转移则是使用带箭头的连线表示。

触发转移的事件或者条件写在箭头的旁边。

我们的图上有两个自转移。

一个是在Getting SSN,另一个则在上Getting PIN。

初始状态(黑色圆圈)是开始动作的虚拟开始。

结束状态也是动作的虚拟结束。

事件或条件触发动作时用(/动作)表示。

当进入Validating状态时,对象并不等外部事件触发转移。

取而代之,它产生一个动作。

动作的结果决定了下一步的状态。

活动图
活动图activity diagram是一个很特别的流程图。

活动图和状态图之间是有关系的。

状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程。

活动图告诉了我们活动之间的依赖关系。

对我们的例子来说,我们使用如下的过程。

“通过ATM来取钱。


这个活动有三个类Customer, ATM和Bank。

整个过程从黑色圆圈开始到黑白的同心圆结束。

活动用圆角矩形表示。

图可以被分解成许多对象泳道swimlanes ,可以决定哪些对象负责那些活动。

每个活动都有一个单独的转移transition连接这其他的活动。

转移可能分支branch成两个以上的互斥的转移。

保护表达式(在[]中)表示转移是从一个分支中引出的。

分支以及分支结束时的合并merge在图中用菱形表示。

转移也可以分解fork成两个以上的并行活动。

分解以及分解结束时的线程结合join在图中用粗黑线表示
组件与配置图
组件component是代码模块。

组件图是是类图的物理实现。

配置图Deployment diagrams则是显示软件及硬件的配置。

下面的配置图说明了与房地产事务有关的软件及硬件组件的关系。

物理上的硬件使用节点nodes表示。

每个组件属于一个节点。

组件用左上角带有两个小矩形的矩形表示。

相关文档
最新文档