实训UML-1 20110919

这周为实训课,陈老师带着我们一起做项目。项目为写一个图书馆管理系统,首先了解了什么是软件设计和软件工程,软件设计即把软件开发想清楚的过程。软件工程是指对软件开发全过程进行建模和管理。

接着讲了建模,说到建模,首先要了解什么是模型,模型是对问题的书面上的无歧义文字或图形的描述。简言之, 模型是对现实的简化。 通过模型, 人们可以了解所研究事物的本质。最杰出的模型: 地图。

建模: 对现实系统进行适当的过滤, 用适当的表现规则描述出简洁的模型. 建模是一种深入解决问题的方法.建模有以下原则:

(1). 选择建立什么样的模型对如何发现和解决问题具有重要的影响。正确的模型有助于提高开发者的洞察力。

(2). 每个模型可以有多种表达方式. 使用者的身份和使用的原因是评判模型好坏的关键。

(3). 最好的模型总是能够切合实际. 模型是现实的简化,必须保证简化过程不会掩盖任何重要的细节。

(4). 孤立的模型是不完整的。

软件建模的作用是把来源于现实世界的问题转化为计算机可以理解和实现

的问题.可以说是将现实世界映射到计算机里。软件建模的实现过程是从需求入手, 用模型表达分析设计过程, 最终将模型映射成软件实现.简单说就是最终实现编码。

下面,讲到重点了。UML(United Modeling Language, 统一建模语言): 是一种基于面向对象的可视化建模语言。 UML 采用了一组形象化的图形(如类图)符号作为建模语言, 使用这些符号可以形象地描述系统的各个方面。UML 通过建立图形之间的各种关系(如类与类之间的关系)来描述模型。

UML 中一共有 13 种图:结构图(Structure diagrams)强调的是系统式的建模:类图 (Class Diagram)、组件图(Component diagram)、复合结构图(Composite structure diagram)、部署图(Deployment diagram)、对象图(Object diagram)、包图(Package diagram)、行为图(Behavior diagrams)、强调系统模型中触发的事件:活动图(Activity diagram) 状态机图 (State Machine diagram)用例图 (Use Case Diagram)交互图(Interaction diagrams), 属于行为图形的子集合,强调系统模型中的资料流程:通信图(Communication)。其中,类图、对象图、包图、组件图、部署图为静态模型图, 描述系统的静态结构,用例图、时序图、协作图、状态图、活动图为动态模型图, 描述系统行为的各个方面。

UML中的关系主要包括 4 种: 

关联关系(association)

依赖关系(dependency)

泛化关系(generalization)

实现关系(realization)

用例图

用例图(Use Case Diagram): 也称为用户模型图, 是从软件需求分析到最终实现的第一步, 它是从客户的角度来描述系统功能. 

用例图包含 3 个基本组件: 参与者(Actor), 用例(Use Case), 关系:

参与者(Actor): 与系统打交道的人或其他系统即使用该系统的人或事物. 在 UML 中参与者用人形图标表示

用例(Use Case): 代表系统的某项完整的功能.在UML中使用一个椭圆来表示

关系: 定义用例之间的关系 ------ 泛化关系, 扩展关系, 包含关系

用例之间的关系

泛化关系: 表示同一业务目的(父用例)的不同技术实现(各个子用例). 在 UML 中, 用例泛化用一个三角箭头从子用例指向父用例. 以下是某购物网站为用户提供不同的支付方式,表示泛化关系有横线带空心箭头表示。

包含关系:一个用例可以包含其他用例具有的行为, 并把它包含的用例行为作为自身行为的一部分. 在 UML 中包含关系用虚线箭头加 “<<include>>”, 箭头指向被包含的用例。

扩展关系:如果在完成某个功能的时候偶尔会执行另外一个功能, 则用扩展关系表示.在 UML 中扩展关系用虚线箭头加 “<<extend>>”, 箭头指向被扩展的用例。

类图

类图是面向对象系统建模中最常用的图. 是定义其他图的基础.

类图主要是用来显示系统中的类, 接口以及它们之间的关系.

类图包含的主要元素有类, 接口和关系. 其中关系有关联关系, 泛化关系, 依赖关系和实现关系. 在类图中也可以包含注释和约束.

类的表示法

类是类图的主要组件, 由 3 部分组成: 类名, 属性和方法. 在 UML 中, 类用矩形来表示, 顶端部分存放类的名称, 中间部分存放类的属性, 属性的类型及值, 底部部分存放类的方法, 方法的参数和返回类型。

在 UML 中可以根据实际情况有选择的隐藏属性部分或方法部分或两者都隐藏。

在 UML 中, 公有类型有 + 表示, 私有类型用 – 表示, 保护类型用 # 表示. UML 的工具开发商可以使用自己定义的符号表示不同的可见性。

接口的表示法

接口中包含方法, 但不包含属性. 在 UML 中接口用一个带有名称的圆圈表示, 并且通过一条实线与它的模型元素相连,有时候接口也使用普通类符号表示。

类之间的关系

泛化关系:在 UML 中, 泛化关系用来表示类与类, 接口与接口之间的继承关系. 泛化关系有时也称为”is a kind of”关系,在 UML 中泛化关系用一条实线空心箭头由子类指向父类。

实现关系:在 UML 中, 实现关系用来表示类与接口之间的实现关系. 在 UML 中实现关系用一条虚线空心箭头由子类指向父类。

 依赖关系:对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系.

关联关系:对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。关联关系的名称: 关联关系可以有一个名称, 用于描述该关系的性质.  此关联名称应该是动词短语, 因为它表明源对象正在目标对象上执行动作.

当一个类处于关联的某一端时, 该类就在这个关系中扮演一个特定的角色. 具体来说, 角色就是关联关系中一个类对另一个类所表现的职责. 角色名称是名词或名称短语.

关联关系的多重性是指有多少对象可以参与该关联, 多重性可以用来表达一个取值范围, 特定值, 无限定的范围.

聚合关系:聚合关联是一种特殊的关联. 它表示类间的关系是整体与部分的关系. 简言之: 关联关系中的一个类描述了一个较大的事物, 它由较小的事物组成. 聚合关系描述了 “has a” 的关系, 即整体对象拥有部分对象。整体和部分之间用空心菱形箭头的连线连接, 箭头指向部分。

在关联关系中,还有两个知识没讲到,组合关系和关联关系的导航性。

组成关系是更强形式的聚合. 

组成关系中, 整件拥有部件的生命周期, 所以整件删除时, 部件一定会跟着删除. 而且, 多个整件不可以同时共享同一个部件。

聚合关系中, 整件不会拥有部件的生命周期, 所以整件删除时, 部件不会被删除. 再者, 多个整件可以共享同一个部件.UML 中组成关系用实心的菱形实线表示。

导航性表示可从源类的任何对象到目标类的一个或多个对象遍历. 即: 给定源类的一个对象, 可以得到目标类的所有对象. 可以在关联关系上加上箭头表示导航方向. 

只在一个方向上可以导航的关联称为单向关联,用一个带箭头的方向表示; 在两个方向上都可以导航的关联称为双向关联, 用一条没有箭头的实线表示.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值