概述
Language
是一种可视化建模语言,有语法和语义,消除了自然语言的歧义
Mode
用于描述系统核心 | 模型:是系统抽象的概括,强调系统设计特定的重要方面,忽略大量底层的实现细节
Unified——统一
软件设计者使用相同的符号进行沟通和交流
四层模型体系结构
实例层 - 模型层 - 元模型层 - 元元模型层
特点
1> 建模设计上可视化和标准化的结合 2> 建模设计上语言的无关性 3> 建模设计上标准性和扩展性的统一
工具
PowerDesigner
特点:1> 构造模型并进行详细说明,可以检查模型语法正确与否 2> 可同时进行正向工程和逆向工程 3> 便于团队对模型的共享访问和安全管理 4> 对模型对象进行档案管理
(4+1)视图:描述软件系统的不同方面
视图和图的关系?
1>视图可以看成是图的一种划分角度。
视图
用例图:表达需求。逻辑视图:定义系统静态结构和动态行为。构件视图:表达系统物理构件。进程视图:表达系统的并发行为。部署视图:表达构件在计算机和服务器上的物理分布。
UML图
用例图
模型元素:椭圆—用例—被驱动的功能(完整|外部可见|相互独立)、火柴人—参与者—驱动用例的角色,可人可物、关联关系:包含 —B包含A则b要执行必须先执行A,扩展、继承。用例图的表述:包含几个角色、用例。用例之间的关系分别是什么,代表了什么。角色之间的关系
类图和对象图
类图和对象图的区别
类图VS对象图<br>1)类具有3个分栏,自上而下依次为名称、属性和操作;对象只有两个分栏,自上而下依次为名称、属性<br><br>2)在类的名称分栏中只有类名;对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名”;<br><br>3)类的属性分栏定义了所有属性的特征;对象则只定义了属性的当前值,以便用于测试用例或例子中;<br><br>4)类中列出了操作;对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的;<br><br>5)类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类所以必须说明可以参与关联的对象的数目;对象使用链连接、链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重。
关联和链接的关系
在对象图中与关联对应的是链接。面向对象设计中对象之间的相互作用在类图中表现为关联、在对象图中是链接,在代码级则在引用实现。
类图细节:斜体表示抽象类、静态属性和专属于类的方法有下划线,长式表示法有属性部分,短式没有
泛化关系(空心箭头)一般由子类指向抽象类。抽象类的声明可以引用所有具体的子类—引用关系可替换。不同的引用对象可发送相同的消息——多态性。
依赖关系(带有箭头的虚线):类型:类与对象之间的依赖关系、对接口使用的依赖关系、类之间的依赖关系(依赖类、引用类)
关联关系(类与类之间的连线):用于描述两个类之间的作用关系,关联的类型:个数区分:一元关联(自关联\递归关联)、二元、三元、多元关联。四种特殊关联:关联类(类与类之间的关系,例:公司类和员工类)、受限关联(如文件内姓名作为限制可限制重名)、聚合关联(部分是整体的一部分,部分可能隶属于多个整体)、组合关联(整体拥有部分,部分仅隶属于这个整体)
顺序图|序列图
描述对象之间动态的消息交互关系,体现对象间消息传递的时间顺序
协作图
描述互相合作对象间的交互关系。模型元素:类元\对象(对象在交互中扮演的角色)。链接(用实线表示两个对象的链接)、消息
链接种类:全局性——链接是类中关联的实例化。 2> 局部性:链接是方法中的一个局部变量 3> 参数性:链接是方法中的传入参数 4> 自我性:链接是自身发送的消息
活动图——描述系统需求用例内的活动执行顺序或类方法中程序的执行流程
活动图和状态图的异同点
相同点:1> 图中的建模元素有相似之处。2>对系统或对象在生存周期的状态和行为进行描述。不同点:1> 状态图中迁移发生时,必须有事件发生或条件满足,活动图的迁移则可以无条件或没有事件发生。2> 状态图对系统状态的描述可以横跨多个用例,活动图则是针对同一个用例内部动作的描述
构件图 —— 描述构件及其相互依赖关系。逻辑设计和物理模块相对应
案例1:潜在问题:1> 属性冗余:零件数目庞大,零件存在相同信息,造成内存浪费 2> 维护困难:零件属性值变动,造成维护困难 3> 当仓库没有零件时,零件的属性信息无法在计算机中体现。 小结:对象数量较大时,可以将属性信息放置在另一个对象中并通过引用得到属性信息,从而降低冗余度。 2> 使用组合方式创建复杂对象 3> 组件对象和构件对象拥有一个抽象类,保证了接口一致性的同时也便于对象的组装