UML建模|类图

UML建模|类图,第1张

类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。

类图中通常包含以下内容:

1)类。

2)接口。

3)协作。

4)依赖、关联、泛化和实现关系。

UML(Unified Modeling Language,统一建模语言)中有4种关系:依赖、关联、泛化和实现。

下面介绍下类、泛化关系、实现关系、关联关系、依赖关系的描述和表示。

1) 类

类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同的属性、 *** 作、关系的对象集合的总称。

(类对应的UML图是一个矩形,分为三层,最顶层的是类名,中间层的是属性,最底层的是方法。

属性的表示方式为:可见性属性名称:类型={缺省值,可选}

方法的表示方式为:可见性方法名称(参数列表):类型

可见性都是一样的,“-”表示private,“+”表示public,“#”表示protected。)

2) 泛化关系

泛化关系(Generalization)也叫继承关系,用于描述父子类之间的关系,父类又称为基类或者超类,子类又称为派生类。

(实线,带空心三角形的在父类那边)

3) 实现关系

实现关系(Implementation),是对接口和实现类之间的关系,<<interface>>表示一个接口,接口没有属性(有属性也要注意都是常量),而且所有的 *** 作都是抽象的,只有 *** 作的声明没有 *** 作的实现。

(虚线,带空心三角形的在接口那边)

4) 关联关系

关联关系(Association)是类与类之间最常见的一种关系,它是一种结构化的关系,表示一类对象与另一类对象之间的关系。关联关系用实线连接,如一个类的对象作为另一个类的成员变量。

关联关系中还有聚合关系和组合关系,都是表示整体和部分之间的关系。不同的是,

在 聚合关系(Aggregation) 中,成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在。

(实线,带空心菱形的在整体那边)

在 组合关系(Composition) 中,整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也不存在。

(实线,带实心菱形的在整体那边)

5) 依赖关系

依赖关系(Dependency)是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系,大多数情况下依赖关系体现在某个类A的方法使用了另一个类B的对象作为参数。

(虚线,带箭头,由依赖的一方指向被依赖的一方,如A指向B)

依赖关系通常有三种方式来实现:1、将一个类的对象作为另一个类中方法的参数;2、在一个类的方法中将另一个类的对象作为其对象的局部变量;3、在一个类的方法中调用另一个类的静态方法;

我是上年刚学了UML语言。水平不高,仅供参考。
UML就是统一建模语言、是用来描述软件开发中的各种产品(比如说代码程序、所涉及到的各种文档)的、也是用它老绘制软件的蓝图的(软件架构)一种建模语言。
UML的图又分成静态图和动态图。
静态图包括:用例图、类图、对象图、组建图和部署图。
动态图又包括:状态图、时序图、协作图和活动图。这些图我没有全用过,仅用过用例图、类图、对象图、组建图、状态图、时序图。
至于这些图干嘛的,还真不好说,因为我只会用,说不上来,我在做项目的时候用的时候知道。
我只能简单一说,不大详细。
用例图:说明你做的这个软件有什么功能、用户和示例直接的关系,有没有关系、什么关系。
对象图:描述软件系统在一个特定的时间段、周期内的静态结构(老师给我们说的)
组件图:一起实现这个软件系统的、所有元素的组织结构图。
部署图:我没大用过,真不知道。
状态图:说的是系统各个元素的一些状态和响应方面的东西。
协作图:按横向和纵向两个角度、按顺序的方式描述软件系统各个元素件的交互和相互之间的内在联系。
活动图:我不大会用。
至于你说的实现原理,你还是找本书,看看吧。然后再找个技术好的人,好好给你讲讲。
别的也帮不上你了。

汉语解释为统一建模语言
意思是说:用图表的方式将要设计的软件问题建模,将问题分解化,适合于其他开发者阅读
明白吗?
统一建模语言(Unified Modeling Language)是一种用于描述、构造软件系统以及商业建模的语言,综合了在大型、复杂系统的建模领域得到认可的优秀的软件工程方法。UML是大多数公司采用的标准,是ANSI和OMG等部门采用的标准。
1993年Rational公司的Booch、Rumbaugh、Jacobson开始设计UML方法,1995年后期,正式推出08版的Unified Method。1996年,改进的Unified Method正式更名为UML(Unified Modeling Language)。1997年UMLl0被提交给对象技术组织OTG(Object Technology Organization),最后,1997年11月14日,OMG将UML1作为行业标准。UML结合了Booch、OMT和Jacobson方法,统一了符号体系,并从其它的方法和软件工程实践中吸收了许多经过实际检验的概念和技术,UML是Grady Booch、Dr James Rumbaugh、Ivar Jacobson、Rebecca Wirfs-Brock、Peter Yourdon和许多其他人员集体智慧的结晶。
UML的产生有三方面的原因:首先,不同的面向对象方法有着许多相似之处,通过这项工作,消除可能会给使用者造成混淆的不必要的差异是非常有意义的;其次,语义和表示法的统一,可以稳定面向对象技术的市场,使工程开发可以采用一门成熟的建模语言,CASE工具的设计者也可以集中精力设计出更优秀的系统;第三,这种统一能使现有的方法继续向前发展,积累已有的经验,解决以前没有解决好的问题。
UML为软件系统建模提供了以下四个方面的支持:
· 使用事件模型 (use case):定义系统的使用事件(use case)、角色(actor)及角色与事件之间的交互行为(association)。
· 类和对象模型:定义类、对象及相互之间的关系。
· 组件模型:组件是组成应用程序的可执行单元,类被分配到组件中,以提供可重复使用的应用程序结构部件。组件为即插即用的应用程序结构奠定了基础。UML对可重用性的支持,在设计的前期体现在支持可重复使用的类和结构,后期则体现在组件装配。
· 分布处理模型:将软件系统映射到分布处理结构中。UML能够描述网络拓扑结构的节点,这些节点相互的连接方式以及软件系统在网络中的分布情况。
利用UML框图可以开发几种不同的可视框图,表示系统的不同方面。这些框图主要有:
· Use Case框图:显示使用案例Case(系统功能)和角色(表示提供或接收系统信息的用户和系统)之间的交互。
· Sequence框图。显示使用案例的功能流程。
· Collaboration框图:显示对象间为完成某个系统功能而进行的交互。
· C1ass框图:显示系统中类与类之间的交互。
· State Transition框图:Class框图显示系统中类的静态图形,而State Transition框图显示动态图形,即系统状态分析。
· Component框图:模型的物理视图,显示系统中的软件组件以及它们之间的相互关系。
· Deployment框图:显示网络的物理布局和各种组件的位置。

UML(Unified Modeling Language),统一建模语言,又称标准建模语言,是为软件系统建立可视化模型。主要包括用例图、时序图、协作图、活动图、部署图、构件图、类图、状态图等等。

之前有写过UML时序图: 产品经理必备之UML时序图

用例图(Use Case Diagrame)是UML的一种,主要用来描述用户、需求、系统功能之间的关系,能够充分展示一个外部用户能够观察的系统功能模型图,以一种可视化的直观方式理解系统的功能需求,以便使系统用户更容易理解这些元素的用途,也便于开发人员最终实现这些元素。

用例图是跳出当前系统,站在用户的角度去看系统,思考系统功能,这样我们能更加理解业务,表达清楚需求。从用户的视角,我们不会使用专业术语去进行业务的沟通,可以做到真正以用户为中心去获取需求,转化为产品服务。

用例图可以帮助我们更全面的考虑系统内事物之间的互相影响,关注整体的运行规律,而不是只考虑个别事物的情况。

1、参与者 :是系统外部的一个实体,它以某种方式参与了用例的执行过程。参与者不一定是人,也可以是部门,也可以是外部系统,也可以是其他事物。通常用人形图标表示。

2、用例 :是对系统的用户需求(主要是功能需求)的描述,用例表达了系统的功能和所提供的服务,说明了系统是如何与最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。通常用椭圆表示。

用例注意事项:

     用例粒度的确定,没有标准,只能根据实际情况分析。一个大型系统,可能会有上百个用例,一个小产品,也许只有几个用例。

     一个用例是一个完整的使用场景,不是零散的动作步骤。比如,拿起手机打电话是个完整的场景,拿起手机只是一个步骤。

     一个用例有一个明确、独立的目标,如果一个用例包括多个目标,则可再逐层细化出子用例。

3、系统边界 :将系统内外分开,参与者在外面,用例在里面。边界内的用例,就是系统要实现的事情。通常用矩形框表示。

4、关系:

(1)关联关系:用一条实线表示,这条实线一般有三种形式:无箭头、有指向用例的箭头、有指向执行者的箭头。箭头的方向代表了数据流向或谁启动谁。

(2)归纳(泛化)关系:表示参与者与参与者之间、用例与用例之间的关系。一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。

        用带空心箭头的实线表示,箭头指向被泛化的用例,即子用例指向父用例,泛化是从下到上的过程。(子用例继承父用例所有的结构、行为和关系,是父用例的一种特殊形式。)

(3)包含关系:表示用例与用例之间的关系,其中一个用例(父用例)的行为包含了另一个用例(子用例)的行为。

     用虚线箭头+<>表示,箭头指向被包含的用例。一般是父用例包含很大的范围,专门抽出子用例来着重表达,又或者是复用用例。

(4)扩展关系:表示用例与用例之间的关系,是在特定条件下,由扩展用例指向被扩展用例。

      用虚线箭头+<<extend>>字样,箭头指向被扩展的用例。拓展用例是在特定条件出现时,才会被执行的用例。

1、不是每个需求都要画用例图,要视情况而定,简单的需求完全可以不用画。

2、画图是为了表达、传递信息,当我们画用例图时,不管画的多么酷炫,本质都是在分析业务场景、系统功能性需求,并描述出来。

阅读原文

对产品经理感兴趣的朋友,可以移步“ 需求管理 ”,期待共同交流。

第步定义UML图范围
首先应该定义您要建模单用户案例力用户案例部包含用户案例商务流程类单旦您定义您所作图范围您应该其顶部用标注添加标签指明该图标题唯标示符您能想要包括该图间甚至作者名
第二步添加起始结束点
每UML图起始点结束点您要马添加《UML精粹》(UMLDistilled)(参见参考资料)FowlerScott认结束点选候简单结束种情况指明其唯转变结束点害其阅读您图或知道您已经考虑何退些
第三步添加
您用户案例建模每角色(actor)所发主要步骤引入(该能包括起始步骤加起始步骤系统响应任何步骤)您高层商务流程建模每主要流程引入通用户案例或用户案例包您建模引入见
第四步添加间转变
我风格总应该退即使转变结束点旦转变您必需每转变加相应标示
第五步添加决策点
候您所建模逻辑需要做决策能需要检查某些事务或比较某些事务要注意使用决策点选例图1我简单接受拒绝两转变直接接报名(EnrollinUniversity)"
第六步找并行处
两间没直接联系且都必需第三始前结束并行运行图1您看能参加简要介绍(attendoverview)报名研讨班(enrollinseminars)按任意序进行都您结束整流程前完UML图绘制基本完

跟老婆吵架千金劝我:“爸爸,别跟妈妈一般见识,女人都是惯出来的,打一顿就好了!”
“我不敢啊!”,我说。
千金横眉冷对地对我说:“可以让妈妈打你,这不是经常的事吗?这都是惯的。”
唉!不说了,疗伤中

工作中常用的UML图有哪些???

需要准备工具:SmartUML软件

A & D

A是Analyse的缩写,即我们所说的“分析”;
D是Design的缩写,即“设计”。

一个系统在编码前,都要经过分析与设计两个步骤。分析师绘制的类图叫做“领域类图”,而设计师绘制的类图叫做“实现类图”。

领域类图 :产生于分析阶段,由系统分析师绘制,主要作用是描述业务实体的静态结构,包括业务实体、各个业务实体所具有的业务属性及业务 *** 作、业务实体之间具有的关系。

例如:

这是一个选课系统的简单领域分析类图。可以看到,主要实体有教师、学生、课程和开课安排。每个实体标注了其在业务上具有的属性和方法。而且图中还标明了实体间的关系。

分析仅与业务有关,而与技术无关。

实现类图: 产生于设计阶段,由系统设计师绘制,其作用是描述系统的架构结构、指导程序员编码。它包括系统中所有有必要指明的实体类、控制类、界面类及与具体平台有关的所有技术性信息。例如:

上面图形就是根据领域模型所画出的实现类图。

来自达夫妮·杜穆里埃《蝴蝶梦》

猴画狐狸
猴子发现狐狸在鸡窝前鬼鬼祟祟,立刻提笔画了一幅速写,贴在鸡窝前的大树上。
貉、狼和老虎看了,不约而同地把猴子围了起来。
貉怒视着猴子说:"你这是别有用心!看你给狐狸画的那嘴,简直与我的嘴一模一样!"
狼逼视着猴说:"你这是指桑骂槐!"为什么偏偏画我老朋友的速写?"
老虎怒气最大,它一边将速写扯碎,一边对猴子吼道:"你这是影射!狐和虎读音相近。你的矛头是对着我的!"
猴无法申辩,它糊涂了:我明明画的是狐狸,可貉、狼和虎为何要发火呢?
据说,猴之所以常常抓耳挠腮,就是因为没有弄明白这个问题。

如何点菜-来自知乎

1 UML类图与类的关系详解
2 领域模型和设计类图的区别
3 UML常用图的几种关系的总结
4 基于UML的需求分析和系统设计个人体会
5 UML的面向对象分析设计过程浅析
6 例解基于UML的面向对象分析与设计
7 UML系统分析与设计

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎点赞、顶、欢迎留下宝贵的意见、多谢支持!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10770063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存