UML面向对象建模
对象模型表示静态的、结构化的系统的“数据”性质。用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。
对象模型-UML类图
UML描述属性:可见性 属性名: 类型名[=初值|{性质串}]
可见性通常有下述3种(如果未声明可见性,则表示尚未定义,没有默认的可见性):
§ 公有的(public):(+)
§ 私有的(private):(-)
§ 保护的(protected):(#)
花括号括起来的性质串明确地列出该属性所有可能的取值
UML描述操作:可见性 操作名(参数表): 返回值类型{性质串}
操作可见性的定义方法与属性相同。
参数表是用逗号分隔的形式参数的序列:参数名:类型名=默认值
关系的符号
类间关系:
○ 泛化(Generalization)/ 继承:
§ 普通泛化
§ 受限泛化:
□ 多重:一个子类可以同时多次继承同一个上层基类
□ 不相交:一个子类不能多次继承同一个基类
□ 完全:父类的所有子类都已在类图中穷举出来了
□ 不完全(默认):父类的子类并没有都穷举出来
○ 实现(Realization)/ 细化:接口实现
类与实例间关系
○ 依赖(Dependence):使用类(方法中使用)
○ 关联(Association):使用类(作为对象的属性)
§ 普通关联
§ 关联限定:在类图中把限定词放在关联关系末端的一个小方框内
§ 关联角色:显式标明参与此关联的对象的角色
§ 关联类:为了说明关联的性质可以引入一个关联类来记录这些信息。关联类通过一条虚线与关联连接
○ 聚合(Aggregation)/ 聚集:作为对象中属性,多个相对独立对象集合在一起
§ 共享聚合:处于部分方的对象可同时参与多个处于整体方对象的构成
§ 组合聚合:部分类完全隶属于整体类,部分与整体共存
○ 组合(Composition)强关联:作为对象中属性,本身就是对象的一部分,独立使用无意义
细见:https://www.jianshu.com/p/2828874af134
动态模型-UML状态图
规定了对象模型中的对象的合法变化序列。对一个对象来说,生命周期由许多阶段组成,生命周期中的阶段也就是对象的状态。状态与事件密不可分,一个事件分开两个状态。事件表示时刻,状态代表时间间隔。通常,用UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为。各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。
功能模型-UML用例图
表示变化的系统的“功能”性质。通常功能模型用UML用例图:描述外部行为者(actor)所理解的系统功能。在UML中把用用例图建立起来的系统模型称为用例模型。UML用例之间主要有扩展和使用两种关系,它们是泛化关系的两种不同形式:
- 扩展关系
向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。 - 使用关系
当一个用例使用另一个用例时,这两个用例之间就构成了使用关系。通常在描述一般行为的变化时采用扩展关系;在两个或多个用例中出现重复描述又想避免这种重复时,可以采用使用关系
标签:关系,对象,模型,关联,用例,UML 来源: https://www.cnblogs.com/meeloong/p/16052817.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。