静态视图—类图_对象图和包图

合集下载

4类图、对象图、包图

4类图、对象图、包图
链连接(link)
包图
概述:
一个"包图"可以是任何一种的UML图组成,通常是UML用例图或UML类图。包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。包被描述成文件夹,可以应用在任何一种UML图上。
•论证类模型的设计:当设计了类模型时,你可以通过对象图来模拟出一个运行时的状态,这样就可以研究在运行时设计的合理性。同时,也可以作为开发人员讨论的一个基础。
•分析和说明源代码:由于类图只是展示了程序的静态类结构,因此通过类图看懂代码的意图是很困难的。因此在分析源代码时,可以通过对象图来细化分析。而对于开发人员,对于逻辑较复杂的类交互时,可以考虑画出一些对象图来做补充说明
对于对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个"对象图"。
在UML中,对象图使用的是与类图相同的符号和关系,因为对象就是类的实例。
对象图的用途
捕获实例和连接
在分析和设计阶段创建
捕获交互的静态部分
举例说明数据/对象结构
详细描述瞬态图
由分析人员、设计人员和代码实现人员开发
想象模式是概念上设计数据库的蓝图。在很多领域,你将想保存持久性数据到关系数据库活面向对象的数据库。你可以用类图为这些数据库模式建立模型。
类图(class diagram)
类(class)
接口(interface)
类之间的关系
依赖关系(Dependency)(客户提供者)
类这间的依赖关系表示某一类以某种形式依系用一条连接两个类的实线表示
关联有6种修饰:名称(Name)、角色(Role)、多重性(Multiplicity)、聚合(Aggregation)、组合(Composition)、导航性(Navigation)

第三课时:静态结构图

第三课时:静态结构图
比较高级的依赖类型,用于绑定模板以创建新的模型元 素,包括: 绑定(bind):为模板参数指定值,以生成一个新的模 绑定(bind) 型元素。
类图
泛化关系
存在于一般元素和特殊元素间的分类关系。 可以用于类、用例以及其他模型元素。 描述了一种“is a kind of” 的关系。 泛化主要用途: 1、多态; 2、继承。继承又分为单继承和多重继承。
序列号的生成 参考美国政府 标准EV5-2211
类图
类之间的关系
1. 依赖关系: 类之间使用关系 2. 泛化关系: 类之间一般和特殊关系 3. 关联关系: 对象之间结构关系 4. 实现关系: 类中规格说明和实现之间关系
பைடு நூலகம்
类图
依 赖 关 系
表示两个或多个模型元素之间语义上的关系。 客户以某种形式依赖于提供者。 关联、实现和泛化都是依赖关系。 依赖关系分为: 1. 使用依赖(Usage) 2. 抽象依赖(Abstraction) 3. 授权依赖(Permission) 4. 绑定依赖(Binding)
类图
2、抽象依赖
表示客户与提供者之间的关系,依赖于在不同抽象层 次上的事物,包括: 跟踪(trace) 跟踪(trace):声明不同模型中的元素之间存在一些 连接,但不如映射精确。 精化(refine) 精化(refine):声明具有两个不同语义层次上的元素 之间的映射。 派生(derive) 派生(derive):声明一个实例,可以从另一个实例导 出。
类图
1、使用依赖
表示客户使用提供者提供的服务以实现它的行为,包括: 使用(use):声明使用一个模型元素需要用到已存在的 使用(use) 另一个模型元素,这样才能正确实现使用者的功能(包 括了调用、实例化、参数和发送) 。 调用(call):声明一个类调用其他类的操作的方法。 调用(call) 参数(parameter):声明一个操作和它的参数之间的关 参数(parameter) 系。 发送(send):声明信号发送者和信号接收者之间的关 发送(send) 系。 实例化(instantiate):声明用一个类的方法创建了另一 实例化(instantiate) 个类的实例 。

UML中共有5种静态图

UML中共有5种静态图

UML中共有5种静态图:用例图,类图,对象图,组件图和配置图。

(1)用例图Use Case Diagram用例图展现了一组用例、参与者以及它们之间的关系可以用来描述系统的静态使用情况。

上图中小人形状的用户和ATM是参与者、椭圆形状的如插入卡、输入密码等是用例(2)类图Class Diagram类图展示了一组类、接口、子类以及他们之间的关系,在建模中最常用到的图就是类图;可以用类图说明系统的静态设计视图,包含主动类的类图。

上图中反应了5个类之间的关联关系,人民币账户和美元帐户从账户继承,账户和ATM相关联,两种账户和用户相关联(3)对象图Object Diagram对象图展示了一组对象和他们间的关系,可以用来说明类图中翻译的事物实例的数据结构和静态快照,表达了系统的静态设计视图和静态过程视图,除了显示和原型方面的因素外,它与类图的作用是相同的。

(4)组件图Component Diagram组件图,又名构件图,展现了一组组件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库和可调整的系统建模。

上图中组件1和组件3依赖于组件2(5)配置图Deployment Diagram配置图展现了对运行时处理节点以及其中组件的配属,它描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。

用配置图说明系统结构的静态配置视图,即说明分布、交互和安装的物理系统。

上图中,三个处理机与两个涉笔,相互之间是关联的关系UML中动态图有四种,分别是:时序图、协作图、状态图和活动图。

(1)时序图Sequence Diagram时序图展现了一组对象和由这组对象收发的信息,用于按时间顺序对控制流建模。

可以用时序图来说明系统的动态视图。

这里貌似有不同的说法Visual Paradigm里面叫时序图为Timing Diagram,而我参照的教材里边没有这种图,按理说是应该有的。

上图反应了用户与ATM交互的整个过程。

(2)协作图Collaboration Diagram协作图展现了一组对象之间的链接以及这组对象收发的消息,强调收发消息对象的组织结构,按组织结构对控制流建模。

UML静态视图

UML静态视图

(5)控制对象完成对数据库的操作。
(6)界面请求控制对象的服务。
软件需求分析与解决方案与UML
2020年1月11日3时13分
4.4 对象图(Object Diagram)
4.4.1 对象图的概念和内容
在UML中,对象图表示在某一时刻一组对 象以及它们之间关系的图。
对象图可以被看作是类图在系统某一时刻 的实例。在图形上,对象图由节点以及连接这 些节点的连线组成,节点可以是对象也可以是 类,连线表示对象间的关系。
软件需求分析与解决方案) 与UML
1..* performance
:1
Perforsmanc
sseeaatt: String : deate
:
:*
1 St限 rin定 g 符
Dtiamtee
:
操作
TimeOfDay
2020年1月11日3时13分
谢 谢!
软件需求分析与解决方案与UML
2020年1月11日3时13分
除了关联的基本形式外,还有4种应用于关 联的修饰,它们分别是名称、角色、多重性和 聚合。
(1)名称
关联可以有一个名称,用于描述该关系的性
质。
名称
名称方向
Student
Study In
University
软件需求分析与解决方案与UML
关联
2020年1月11日3时13分
(2)角色
当一个类处于关联的某一端时,该类就在 这个关系中扮演一个特定的角色。
Student
角色名
Learner Teacher University
关联
软件需求分析与解决方案与UML
2020年1月11日3时13分
(3)多重性

UML静态模型

UML静态模型

UML静态建模—类图与对象图
关系
关联(Association)
关联用于描述类与类之间的连接。由于对象是类的实例,因此类与 类之间的关联也就是其对象之间的关联。
泛化(Generation)
又称继承,A generalization is a relationship between a more general and a more specific element。
9.
{
10.
employee = p;
11.
}
12. }
13. class Person
14. {
15.
… (略)
16. }
UML静态建模—类图与对象图
关系—组合聚合(composition Aggregation)
如果构成整体类的部分类完全隶属于整体类,则这样 的聚合称为复合聚合。换句话说,如果没有整体类则 部分类也没有存在的价值,部分类的存在是因为有整 体类的存在。
关系—共享聚合(Shared aggregation)
1. // 主程序 2. Person p = new Person(); 3. Team t = new Team(p);
4. class Team
5. {
6.
Person employee;
7.
// Constructor
8.
public Team(Person p)
由名称、属性 、方法构成
对象是类的实例。
类之间的关系一共有四种:关联、泛化、依赖、 实现化。 包(Package) 用来分类、组织类。
关联:用于表示类的对象之间的关系。其特殊
user
形式有组成关联和聚集关联。

软件工程各种图结构

软件工程各种图结构

软件工程各种图结构本文档旨在提供一个软件工程中各种图结构的详细说明和范例。

1.引言软件工程中的图结构是表示软件系统的重要工具之一。

通过对图结构的使用,可以清晰地描述软件系统中各个组件之间的关系,帮助开发人员理解系统的结构和功能。

本文档旨在介绍常见的软件工程图结构,并提供范例供参考。

2.需求图需求图是软件工程中最基础的图结构之一,用于表示系统的需求和功能。

需求图通常由用例图和活动图组成,用例图用于描述系统的外部行为,活动图用于描述系统的内部行为。

以下是一个需求图的范例:[插入需求图范例]3.静态结构图静态结构图用于表示系统的静态结构,主要包括类图、对象图和包图。

类图用于描述系统中的类及其关系,对象图用于描述系统中的对象及其关系,包图用于描述系统中的包及其关系。

以下是一个静态结构图的范例:[插入静态结构图范例]4.动态行为图动态行为图用于表示系统的动态行为,主要包括序列图、状态图和活动图。

序列图用于描述系统中的交互过程,状态图用于描述系统中的状态变化,活动图用于描述系统中的业务流程。

以下是一个动态行为图的范例:[插入动态行为图范例]5.部署图部署图用于表示软件系统的部署结构,包括系统中的各个节点和节点之间的关系。

节点可以是物理设备或者软件执行环境。

以下是一个部署图的范例:[插入部署图范例]6.附件本文档附带的附件包括需求图范例、静态结构图范例、动态行为图范例和部署图范例。

7.法律名词及注释在本文档中,涉及到的法律名词及其注释如下:●著作权:指创作作品的权利,包括复制、发行等权利。

●商标:指标识商品来源的标志,可以是图形、文字、颜色等。

●专利:指对发明的技术解决方案的专有权利。

UML各种图例—用例图、类图、状态图、包图、协作图、顺序图

UML各种图例—用例图、类图、状态图、包图、协作图、顺序图

UML各种图例——用例图、类图、状态图、包图、协作图、顺序图面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了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.每个类图包括类,关联和多样性表示.方向性和角色是为了使图示得更清楚时可选的项目.包和对象图为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型. dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。

UML与Rose建模第四章 静态视图

UML与Rose建模第四章 静态视图

• 步骤6.设各类的构造类型(以读者信息类为例)。
HSTC
精练
• 请您根据本节所学的知识解决项目中的任务2。
– 分析:由前面章节对图书馆管理系统中的书籍管理功能可知, 该模块是由书籍信息类、书目类、新增书籍界面类、修改书 籍界面类、删除书籍界面类和书籍管理类6个类组成。 – 请您根据分析使用Rose图绘制类信息。
HSTC
类图的地位和作用
HSTC

• 类图由系统中使用的类以及它们之间的关系组成,是构建其它图的基础。分 为长式和短式。 • 类的名称:均用英文大写字母开头,属性及 操作名为小写字母开头。分为简单名称和路 径名称。 • 常见类型有:Char, Boolean, Double, Float, Integer, Object, Short, String等。 • 对象是对象类的实例, 用对象图来描述。 • 属性(attribute):用来描述类的特征,表示需要处理的数据,可以任意多个, 也可没有,属性名优短名词或名词短语构成。 – 属性定义:可见性 属性名:类型=缺省值{约束特性} – 可见性(visibility)表示该属性对类外的元素是否可见。分为: • public(+)private(-) protected(#)package(~)不确定 – 约束特性:可变(changeable):对修改属性的值没有约束。 • 只增(addOnly):对于多重性大于1的属性,可以增加附加值,但一 旦被创建,就不可对值进行消除或改变。 • 冻结(frozen):在初始化对象后,就不允许改变属性值。
HSTC
任务解决-分析
• 图书馆业务功能主要由借书、还书、预约和取消预约四个主要功 能,这四种功能是由三层组成,即:界面、控制和相应的书籍信 息表。因此,本功能模块可以抽象出如下类: – 书实体类(Book):描述书籍信息,书名、作者、出版社、ISBN号等 – 读者实体类(Reader):描述读者信息,读者姓名、年龄、性别和编号 – 借书操作界面类(LendFrame ):描述操作借书的操作界面,边界类 – 还书操作界面类(ReturnFrame) :描述还书的操作界面,边界类
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接口是外部与对象进行交互的手段,它
1. 2.
是一个类提供给另一个类的一组外部可 见的操作 一个类和它的接口之间的关系叫做实现 我们可以使用两种方式来表示接口 使用矩形框表示,并在矩形中加入 <<interface>>说明是接口 将接口表示为一个小圆圈,并和实现它 的类用一条连线进行连接(lollipop)
3.5.3 双向关联
双向关联表示两个类之间彼此知道相互
之间的联系,默认情况下都假定双向关 联 双向关联采用连接两个类的实线表示, 在线的一端,可以放置角色名和多重值
航班
0..* 分配航班 分配飞机 0..1
飞机
3.5.4 单向关联
单向关联表示只有一个类知道这种联系
的存在,另一个类则不知道 单向关联表示为一条带有指向已知类的 开放箭头实线,也可包含角色名与多重 值
在UML中,类表示为一个划分为三个格
子的长方形,最上面是类的名字,中间 是类的属性,下面是类的方法。除了类 的名字必须要之外,下面两行可以省略
类名 属性 方法 Student name age getName() getAge()
2.1.1 类元素的可见性
标志 + # ~ 可见性属性 Public Protected Private Package
通常以下面的三种方法使用类图:
1. 对系统的词汇建模
从需求描述中发现类以及它的责任 2. 对简单协作建模 通过对类之间合作行为进行建模发 现类之间的交互关系 3. 对逻辑数据库模式建模 对永久存贮的数据进行建模
2 类图的表示
类的表示
类名的要求 类属性的表示
类操作的表示
2.1类的表示
UML支持的可见性类型标志
2.2 类名的要求
每个类必须有一个名字,类名可以是简
单名字或者复杂名字 1. 简单名字,即类名 Student, Teacher等等 2. 复杂名字,包名:类名 Department::Student Sch,类名有如下约定:
3 类图的关系
类图关系概述
依赖关系(Dependency) 泛化关系(Generalization)
实现关系(Realization)
关联关系(Association)
3.1类图关系概述
关系(Relationship)是事物之间的联系
类图中包含两大类事物:类及类之间的
withdrawl(amout:Dollars)
CheckingAccount
insufficientFundsFee:Dollars processCheck(checkProcess: Check) withdrawl(amout:Dollars)
SavingAccount
annualRate:Percentage depositMonthInterest() withdrawl(amout:Dollars)
1.1 类图概述——重要性


类图表述系统中类的静态结构,不仅描述 了系统中的类,还表示了类之间的各种关 系,比如:关联、依赖、泛化、实现等 James Rumbaugh对类的定义:类 (Classs)是具有相似结构、行为和关系 的一组对象的描述符 类 + 类的关系 = 类图
1.2 类图概述——类图的作用
3.5.1 关联的表示
关联用于连接两个类,下面列举一下关联:
为球队效力
球员
员工 0..*
雇主 雇佣球员 1 服务
{有序}
球队
银行出纳员
顾客
选择
文科 理科
高中生
{或}
选择
3.5.2 关联关系的多重值
表示 0..n 0..* * n 含义 0或n个 0或任意多个 0或任意多个 n个
UML关联关系的多重值和它们的表示
第五章 静态视图
匡湖 2015.4.20
提纲
概述
类图 对象图
包图
概述
静态视图(Static View)是UML的基础,它
展现了整个系统的静态结构组成及特征 静态视图包括了类图、对象图和包图
对象图是类图的实例,几乎有与类图完全相
同的标识。他们的不同点在于对象图显示类 图的多个对象实例,而不是实际的类。一个 对象图是类图的一个实例。由于对象存在生 命周期,因此对象图只能在系统某一时间存 在。
1. 类名的首字母大写,放在矩形的顶部 2. 如果类名由两个单词组成,那么两个单 词合并,各个单词的首字母大写 如:BankAccount 3. 如果类名是正体字,表示这个类可以被 实例化,如果是斜体字说明是抽象类, 如:Student,Shape
2.3 类属性的表示
类的属性放在类矩形框的中间,一般的
Enrollment
Select course
概念层
说明层
实现层
4.2 建立类图的步骤
1. 研究分析问题领域确定系统需求 2. 确定类,明确类的含义和职责,确定 属性和操作 3. 确定类之间的关系
4.3 类的识别方法
类的识别需要大量的技巧,下面介绍一
1.
2.
3.
4.
些类的识别方法: 名词识别法 根据用例描述确定类 CRC分析法 根据边界类、控制类、实体类的划分来 帮助分析系统中的类
+getStudentName(in No: Integer):String
setValue(in value:Double)
在UML语言中,类操作的约定如下:
1. 如果方法名由一个单词构成,这个单词 全部小写 如:add(), sub(), swap() 2. 如果方法名由多个单词组成,那么将多 个单词合并,除了第一个单词外,其余 单词的首字母大写 如:getAccount(), drawLine()
窗口
拥有 0..*
菜单
3.5.6 关联类
关联和类一样也可以有自己的属性和操
作,此时,关联实际上被抽象为关联类 比如:球员和球队之间通过合同关联类 进行关联
为球队效力
球员
员工 0..*
雇主 1
球队
合同
4. 建立类图
在软件开发的不同阶段都使用到类图,
但这些类图表示了不同层次的抽象, 在需求分析阶段,类图研究领域概念; 在设计阶段,类图描述类与类之间的 接口;而在实现阶段,类图描述软件 系统中类的实现 根据上面的描述,类图具有不同的层 次
关系,类是对客观世界的抽象,而关系 将这些类彼此之间联系起来,交换信息, 构成问题的解决方案 类图包含四种基本的关系:依赖,泛化, 实现和关联。在不同的建模语言中,这 些关系的名称略有不同
3.2 依赖关系(Dependency)
如果有两个类A与B,当我们修改A类时
会引起B类的修改,我们称类B依赖于类 A。 依赖关系可能由各种原因引起,比如一 个类向另一个类发送消息;一个类是另 一个类的数据成员,一个类是另一个类 的某个操作参数等(use a关系) UML中包含了4种依赖关系:使用(Usage) 依赖,抽象(Abstraction)依赖,授权 (Permission)依赖和绑定(Binding)依赖
4.3.1 名词识别法
这种方法的关键是识别系统问题域的实
体,从系统描述中标识出名词及名词词 组,其中单数名词可以标识为对象,而 复数名词可以标识为类 如: 学生、老师、学校,工厂等
4.3.2 从用例图中识别类
通过分析用例图可以帮助我们建立类,
1. 2. 3. 4. 5. 6.
表示形式为: [可见性] 名称[:类型] [= 默认值 ][{约束 特性}] /// []类的内容表示可选项 如: - name:String = “John” {must be string} - age:Integer = 18 {Between 0 and 150}
2.3.1 类属性的约定
在UML语言中,类属性的约定如下:
2) 导入依赖(import) 3) 友元依赖(friend) 1) 模板依赖(template)
3. 授权依赖
Permission
4. 绑定依赖
Binding
依赖关系的分类图
3.2.2 依赖关系的表示
在UML语言中,采用虚线加箭头的方式
表示依赖关系,箭头指向被依赖的对象 例如:
显示类 定时器类
泛化关系举例
3.4 实现关系(Realization)
实现关系是规格说明和实现间的关系,
1. 2.
它表示不继承结构只继承行为 大多数情况下,实现关系用来规定接口 和实现接口的类或组件之间的关系 可以在两种情况下使用实现关系 在接口与实现该接口的类之间 在用例以及实现该用例的协作之间
3.4.1 接口(Interface)
Professor
salary:Dollars
Student
major:String
3.5 关联关系(Association)
关联是一种结构关系,它指明一个类与
另一个类在类间的联系,表示类之间的 连接,它使一个类的可见属性和方法被 另一个类使用 关联关系包括:双向关联,单向关联, 聚合和反射关联 除聚合关系外,关联关系通常使用实线 +箭头的方式表示
3.5.5.1 基本聚合
基本聚合表示一个类是另外一个类的组
成部分,但各个组成部分可以与整体单 独存在 基本聚合表示:空心菱形+实线 比如,汽车与车轮的关系
Car
wheels 4
Wheel
3.5.5.2 组合聚合
组合聚合表示一个子类的生命周期依赖
于父类实例的生命周期,子类不能单独 存在 组合聚合表示:实心菱形+实线 比如,窗口与菜单的关系
3.3.1 泛化关系的表示
相关文档
最新文档