UML静态模型
uml静态模型的原理、方法和步骤

uml静态模型的原理、方法和步骤
静态模型描述了系统的静态结构,包括类、对象、接口、关联关系等。
其原理是通过捕捉和建模系统中的静态元素与它们之间的关系来展示系统的结构组成。
静态建模的方法通常包括:标识实体、定义类和接口、建立关联关系、定义属性和操作等。
在进行静态模型构建时,一般可以按照以下步骤进行:
1. 确定系统的边界:确定要建模的系统的范围和边界,明确系统的定义。
2. 建立类和接口:根据系统的需求和功能,识别系统中的类和接口,并进行建模。
3. 定义关联关系:确定类和接口之间的关系,包括关联关系、继承关系、依赖关系等。
4. 定义属性和操作:为类和接口中的元素定义属性和操作,明确其特征和行为。
5. 验证和优化:对建立的静态模型进行验证和优化,确保模型的准确性和完整性。
6. 文档化和交流:将静态模型进行文档化,并与相关利益相关者进行交流和反馈,以确保模型的有效应用。
通过按照以上步骤进行静态模型的建立,可以帮助开发团队更好地理解系统的结构和组成,为系统的实现和维护提供指导和支持。
基于UML的成人教务管理系统静态模型

校级管理员
员
图 2 成人教务 系统顶层用例 图
维普资讯
・
8 ・ 2
惠州学院学报 ( 自然科 学版)
20 年第 2 卷 06 6
3 含用例关 系的功能包图
需要说明的是 ,不同的角色使用的用例名称虽然相 同,但在各 自具体 的模 块中功能并不完全相 同。
模型。对象模型的整个动态部分都是 直接 由用例模型驱动的。由于静态模型 由动态模型驱动 ,因此它是 由用例驱动的。用例 (S cB)是指明关键 的软需求 的有效工具 ,它们可以作为软件开发这理解高层 系 Le a l e
统工程需 求及 功能 性工件 的方法 。详 细 描 述必 要 的用例 能 对 软 件 字 系统 通 信 提 供 必 要 的信 息 。用 例 也 可 以作 为一 种有效 的方 式进 行 软件 系统 的划 分l 5。 5 _ 本 系统 中 ,角 色有 5个 ,分 别为 “ 级管理 员 ” 系级管 理员 ” 分教点 管理 员” 教 师” 学 员 ” 校 、“ 、“ 、“ 、“ 。 系统顶层 大 的用例 有 “ 学籍 管理 ” “ 划 任务 ”等 十个 。五 个角 色根 据 自己的功 能需 求 使用 不 同 的用 例。 、 计 图 2为 系统顶层 用 例 图 ,它 显示 了各个 用例 分别 被 五个角 色使 用 的情 况 。
要的。在定义与外部团队协商接 口时 ,环境视图是十分有用的[ 。图 1 为惠州学院成人教务管理系统 的环
境视图。
2 系统顶层用例图
所有开发工作都必须回答一个基本 问题 :系统用户想做什 么?我们 的重点是确定用户将执行那些操
作 ,系统将如 何进 行 响应 ,因为软 件 开发 决 定 于 用户 需 求 。换 句 话 说 ,软 件 需要 实 现 的功 能 取 决 于 用户 如何访 问 它以及用 户想 做什 么 ,这 通 常 和屏 幕 和 用户 界 面 有关 。在 项 目一 开 始 ,便 要 建 立 用 例 模 型 和域
动态建模与静态建模之间的关系

用例图根据用例构造系统结构的静态模型?类包图对象图用以描述系统中涉及到的实体类和对象?部件图用以描述系统所涉及到的功能部件
动态建模与静态建模之间的关系
简单结论:
在UML中,静态建模用以描述系统的组织和结构,而动态 建模则用以描述系统的行为和动作。两者共同构建和描述 系统的整体模型。
静态建模中描述的组织和结构是动态建模所描述的行为和 动作的基础。
• 状态图 • 活动图 • 顺序图 • 合作图
一个实例:租车系统
• 首先,进行需求分析 • 然后,根据需求构造系统的静态模型 • 最后,描述系统的行为
需求分析:用例图
需求分析:用例图
根据用例构造系统结构的静态模型
类(包)图、对象图,用以描述系统中涉及到的实体类和 对象
部件图,用以描述系统所涉及到的功能部件。 配置图,用以描述系统的物理实现方案。
系统结构的静态模型:类图Leabharlann 系统结构的静态模型:部件图
系统结构的静态模型:配置图
在静态模型的基础上,进行动态建模
针对系统的各个功能部件,设计其行为
使用状态、活动、顺序或合作图描绘其行为
系统结构的行为:状态图
系统结构的行为:时序图
系统结构的行为:时序图
系统结构的行为:时序图
小结
感谢大家!
动态建模中所描述的行为和动作则是静态建模所描述的组 织和结构的深化和拓展。
三个前提:
• UML的建模机制服务于使用UML语言的目的 • UML是一门面向对象的建模语言 • UML中不同类别的图例是可供选择的表达工具
静态建模:
• 用例图 • 类(包)图 • 对象图 • 部件图 • 配置图
动态建模:
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的定义和组成详细介绍⽬录1、UML1.1概述UML(Unified Modeling Language 统⼀建模语⾔) 是为软件系统的制品进⾏描述(specifying)、可视化(visualizing)、构造(constructing)、⽂档化(documenting)的⼀种语⾔。
UML规范⽤来描述建模的概念有: 类、对象、关联、职责、⾏为、接⼝、⽤例、包、顺序、协作,以及状态。
1.2 UML是⼀种建模语⾔建模⽅法 = 建模语⾔ + 建模过程。
建模语⾔定义了⽤于表⽰设计的符号(通常是图形符号);建模过程描述进⾏设计所需要遵循的步骤。
标准建模语⾔UML是⼀种建模语⾔,⽽不是⼀种⽅法,它统⼀了⾯向对象建模的基本概念、术语及其图形符号,为⼈们建⽴了便于交流的共同语⾔。
建模能⼒:建模⽅法 + 领域知识 + 实践1.3 UML语⾔包含三⽅⾯1. UML基本图素:它是构成UML模型图的基本元素。
例如类、对象、包、接⼝、组件等。
2. UML模型图:它由UML基本图素按照UML建模规则构成。
例如⽤例图、类图、对象图、…等。
3. UML建模规则:UML模型图必须按特定的规则有机地组合⽽成,从⽽构成⼀个有机的、完整的UML模型图(well-formed UMLdiagram)。
2、UML⽀持软件体系结构建模为了表达不同的软件开发相关⼈员在软件开发周期的不同时期看待软件产品的不同侧重⾯, 需要对模型进⾏分层。
UML根据软件产品的体系结构(architecture)对软件进⾏分层。
软件的体系结构分解为五个不同的侧⾯,称为4+1视图(view)。
分别是:⽤例视图(Use case view,Scenarios)—场景视⾓逻辑视图(Logical view) — 逻辑视⾓进程(过程)视图(Process view) — 过程视⾓实现(开发)视图(Implementation view) —开发视⾓部署(物理、配置)视图(Deployment view) —物理视⾓每个视图分别关注软件开发的某⼀侧⾯视图由⼀种或多种模型图(diagram)构成模型图描述了构成相应视图的基本模型元素(element)及它们之间的相互关系。
使用UML对系统进行建模

使用UML对系统进行建模面向对象的软件工程,同传统的面向过程的软件工程相比,在需求的获取、系统分析、设计和实现方面都有着很大的区别。
UML是OOA和OOD的常用工具。
使用UML来构建软件的面向对象的软件工程的过程,就是一个对系统进行不断精化的建模的过程。
这些模型包括用例模型、分析模型、设计模型,然后,我们需要使用具体的计算机语言来建立系统的实现模型。
当然,在整个软件工程中,我们还需要建立系统的测试模型,以保证软件产品的质量。
使用面向对象的工具来构建系统,就应该使用面向对象的软件工程方法。
然我,我们经常会发现,在实际的开发过程中,很多开发人员虽然能够理解UML的所有图形,却仍然不能得心应手的使用UML来构建整个项目,其很大的原因,是仍然在使用原有的软件工程方法,而不清楚如何使用UML来建立系统的这些模型,不清楚分析和设计的区别,以及他们之间的转化。
应用软件系统,就其本质来说,是使用计算机对现实世界进行的数字化模拟。
应用软件的制造过程,按照UML的方法,就是建立这一些列模型的过程。
本文将就一个图书馆系统,说明如何使用UML来对系统进行这一系列的建模。
关于这个图书馆系统,基本的需求比较简单,就是允许学生可以在图书馆借阅和归还图书,另外,也可以通过网络或者图书馆的终端来查阅和预订书。
当然,图书馆管理员也可以对图书进行管理。
为了简化系统,我们没有把图书馆中的人员作细分。
之所以采用这个相对简单案例,是因为很多人都对图书馆系统有很强的感性认识,这样,读者不需要花很多的时间来理解系统包含的业务知识。
同时,也因为本文只是对使用UML 的过程做一个探讨,着眼于使用UML进行建模的过程,说明各个层次的模型之间的区别和联系,展示系统演进的过程,而不会深入UML的细节方面。
对于更加复杂的系统,其分析和设计的方法是相通的,可以举一反三。
用例模型——系统需求的获取用例模型定义系统做什么,是用来获取系统需求的有效手段。
用例模型由“角色”和“用例”组成。
静态图(图文借鉴)

第3章类图、对象图和包图使用面向对象的思想描述系统,能够把复杂的系统简单化、直观化,这有利于用面向对象的程序设计语言实现系统,并有利于未来对系统的维护。
构成面向对象模型的基本元素有类、对象和类与类之间的关系等。
类图和对象图合称为结构模型视图或者静态视图,用于描述系统的结构或静态特征。
其中,类图用来描述系统中的类以及类与类之间的静态关系等;对象用来描述特定时刻实际存在的若干对象以及它们之间的关系。
一个系统的模型中可以包含多个对象图,每个对象图描述了系统在某个特定时刻的状态。
人们为了控制现实系统的复杂性,通常会将系统分成较小的单元,以便一次只处理有限的信息。
UML提供了包这一机制,使用它可以把系统划分成较小的便于处理的单元。
本章主要介绍类、类图、对象、对象图、类与类之间的关系以及包图等内容,并且还将创建图书管理系统的类图。
本章学习要点:➢理解类图的基本概念➢为系统建模类➢建模类之间的关联关系➢理解并建模泛化关系➢了解依赖关系和实现关系➢了解对象图和包图的概念➢构造类图3.1 类图构建面向对象模型的基础是类、对象以及它们之间的关系。
可以在不同类型的系统(例如,商务软件、嵌入式系统、分布式系统等)中应用面向对象技术,在不同的系统中描述的类可以是各种各样的。
例如,在某个商务信息系统中,包含的类可以是顾客、协议书、发票、债务等;在某个工程技术系统中,包含的类可以有传感器、显示器、I/O 卡、发动机等。
在面向对象的处理中,类图处于核心地位,它提供了用于定义和使用对象的主要规则,同时,类图是正向工程(将模型转化为代码)的主要资源,是逆向工程(将代码转化为模型)的生成物。
因此,类图是任何面向对象系统的核心,类图随之也成了最常用的UML图。
3.1.1 概述类图是描述类、接口以及它们之间关系的图,它显示了系统中各个类的静态结构,是一种静态模型。
类图根据系统中的类以及各个类的关系描述系统的静态视图。
可以用某种面向对象的语言实现类图中的类。
系统概要设计中的UML静态建模(1)

第四章系统概要设计中的UML静态建模静态建模的目的是获得描述软件系统模型的静态结构和各个组成元素之间的关系,也就是模型的内部组成特性及其相互之间的关系。
在统一建模语言UML中,通过用例图、组件图、包图、类图、部署图来可视化地描述系统模型的静态结构。
静态建模也是动态建模的基础,本章将系统地介绍系统概要设计中涉及的UML静态建模技术,并通过网上商城项目和BBS论坛项目的具体示例,让读者体验LIML静态建模技术的实际应用。
读者需要注意的问题是,应用某种建模工具进行软件系统建模活动的学习重点和目的在于开发人员之间的交流和对复杂软件系统进行的抽象,以简化对系统中各个问题的理解,而不在于该建模工具是否能够为开发者生成目标类的代码。
比如.在Rational Rose中也提供了将设计出的各个类直接导出为某种编程语言的类代码。
但对这样的功能在IDE工具中能否提供,读者不必过多地关注:应该将学习的重点放在对设计思想、原则和方法、模式等方面的掌握。
4.1 UML组件图4.1.1 UML中的组件及组件图1.UML中的组件图(1)UML中的组件。
组件一般用于表示实际存在的、物理的物件,它是软件系统的一个物理单元,代表系统的一个物理实现块。
(2)组件图的作用。
·描述软件系统中各个组件之间的关系,并能够帮助客户理解最终的系统结构。
·每个组件图只是系统实现视图的一个图形表示,只有各个组件图组合起来,才能表示完整的系统实现视图。
使开发实现工作有一个明确的目标。
·组件图能帮助开发组中的其他人员(如文档人员)理解整个系统的组成关系。
(3)组件图中的3大组件。
从模型视图控制器(MVC)的角度来看,一个软件系统的组件图应该包括边界组件、控制组件和实体组件3大部分。
比如,在某个Web应用系统中的边界组件一般有各种值对象的JavaBean、各个JSP页面、各种页面助手的JavaBean、各种定制标签等;控制器组件一般为各个过滤器(Filter)、业务控制器HTTPServlet或者Struts Action组件;项目中的实体组件一般为各种业务实体JavaBean和持久对象PO类型的JavaBean。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
形式有组成关联和聚集关联。
UML静态建模—类图与对象图
UML静态模型--类图的基本符号(2)
类图中的图符:
类:表示一个类,其中第一栏是类的名,第二 栏是类的属性,第三栏是类的操作。
包:包是一种分组机制,表示一个类图集合。
UserInfo
-userName : string(idl) -age : string(idl) +getUserName() : string +addUser() : string(idl)
关联:用于表示类的对象之间的关系。其特殊
user
形式有组成关联和聚集关联。
类图的作用
UML静态建模—类图与对象图
描述系统需要使用多少类来构造。 说明这些类彼此之间如何沟通。 提供对某个类内的属性与方法详实的描述。
类图详解(1)
UML静态建模—类图与对象图
名称部分
类的属性
类型:integer, Boolean, string, date, real, point, enumeration。 属性的可见性:public(+)、protected(#)、private(-)
依赖(Dependency)
A dependency is a relationship between elements, one independent and one dependent. A change in the independent element will affect the dependent element.
名字 = “Compaq X” 内存 = 32
对象说明举例
UML静态建模—类图与对象图
UML静态建模—类图与对象图
UML静态模型--对象图的应用场景
对象图并不象类图那样具有重要的地位,但是 利用它可以帮助我们通过具体的实例分析,更 具体直观地了解复杂系统类图的丰富内涵。 对象图还常常被用作合作图的一部分,用以展 示一组对象实例之间的动态协作关系。
软件开发培训教程
UML静态模型
张余正
zyz_163@
UML静态建模—类图与对象图
课程目标
• 了解类图、对象及它们的关系 • 了解接口、继承的设计原则 • 了解包图的应用场景
UML静态建模—类图与对象图
UML静态模型--类图
在面向对象的建模技术中,类、对象和它们之 间的关系是最基本的建模元素。对于一个想要 描述的系统,其类模型、对象模型以及它们之 间的关系揭示了系统的结构。 类图描述了系统中的类及其相互之间的各种关 系,其本质反映了系统中包含的各种对象的类 型以及对象间的各种静态关系(关联,子类 型)。
订单—类图与对象图
在大项目中,包图是一种重要工具(有专家建议,只 要你不能将整个系统的类图压缩到一张A4纸上,你就 应该使用包图);
在java中用package表示包,对应一个目录;
包的概念对测试也是特别有用的。
总结
UML静态建模—类图与对象图
类图 (Class Diagram)
UML静态建模—类图与对象图
关系--依赖(Dependency)
依赖(Dependency)是两个元素之间的语义 关系,其中一个元素的改变可以影响另一个元 素的语义。箭头表示依赖关系的方向。在下面 的图中,MyClass1 与 MyClass2 之间存在依 赖关系。MyClass2 中的改变将影响 MyClass1。
employee = new Person();
10.
}
11. }
12. class Person
13. {
14.
… (略)
15. }
UML静态建模—类图与对象图
关系--泛化(Generation)
泛化是父子关系。MyClass2 是超类,而 MyClass1 是子类。在 Java 编程语言中,通过 使用 extends 关键字来生成子类,从而实现泛 化。
类的操作
操作由操作名、参数表、返回值类型等几部分构成。 操作的可见性:public(+)、protected(#)、private(-) 语法:visibility name ( parameter-list ) : return-typeexpression { propertystring}
类图详解(2)
UML静态建模—类图与对象图
UML静态模型--类图的基本符号(1)
类图中的图符:
类:表示一个类,其中第一栏是类的名,第二 栏是类的属性,第三栏是类的操作。
包:包是一种分组机制,表示一个类图集合。
UserInfo
-userName : string(idl) -age : string(idl) +getUserName() : string +addUser() : string(idl)
多重性 1 0..* 或者 * 1..* a..b a,b
意义 一个,并且只有一个 零、一、或者更多 一个或者多个 a 和 b 之间 a 或者 b
UML静态建模—类图与对象图
关系—聚合(aggregation)
聚合是关联的特例。如果类与类之间的关系具有整体与部分的 特点,则把这样的关联称为聚合。 聚合的类型:
UML静态建模—类图与对象图
UML静态模型-对象图
作者
名字:String 年龄:Integer
0..1
Uses
类图
计算机
1..*
名字:String 内存:Ineger
小王:作者
名字 = “王小影” 年龄 = 32
小王的工作PC: 计算机
名字 = “Dell486” 内存 = 64
对象图
小王的工作PC: 计算机
共享聚合(Shared aggregation) 组合聚合(Composition Aggregation)
UML静态建模—类图与对象图
关系—共享聚合(Shared aggregation)
如果聚合关系中的处于部分方的对象,同时参与了多 个处于整体方对象的构成,则该聚合称为共享聚合。
UML静态建模—类图与对象图
UML静态建模—类图与对象图
关系—实现(Realization Relationship)
实现是接口与实现类之间的关系。在 Java 语言中, 可以通过使用 implements 关键字实现一个接口的 方式来表示实现关系。
UML静态建模—类图与对象图
关于接口和继承的两个重要设计原则
针对接口编程而不要针对实现。
UML静态建模—类图与对象图
关系—组合聚合(composition Aggregation)
1. // 主程序
2. Team t = new Team();
3. class Team
4. {
5.
Person employee;
6.
// Constructor
7.
public Team()
8.
{
9.
UML静态模型—什么包图
包是类的集合。 包图所显示的是类的包以及这些包之间的依赖 关系。 如果两个包中的任意两个类之间存在依赖关 系,则这两个包之间存在依赖关系。 包的依赖是不传递的。
UML静态建模—类图与对象图
UML静态模型—包图应用举例
订单获取 界面
AWT
邮件发送 清单界面
订单获取 应用
邮件发送 清单应用
客户只需要知道定义接口的接口/抽象类。因此,避 免了在子系统间实现依赖性,因为客户不知道实现 该接口的类。
优先使用类组合而不是类继承。
因为类继承暴露了父类,所以可以用对象组合代替 它,通过组装或组合对象,或者获得更复杂的功 能,可以获得新的功能。组件不会妨碍对象的接 口,并且不会破坏封装。
UML静态建模—类图与对象图
实现(Refinement)
实现是接口与实现类之间的关系。在 Java 语言中,可以通过使用 implements 关键字实现一个接口的方式来表示实现关系。
UML静态建模—类图与对象图
关系--关联(Association)