UML静态模型
- 格式:pdf
- 大小:849.33 KB
- 文档页数:28
uml静态模型的原理、方法和步骤
静态模型描述了系统的静态结构,包括类、对象、接口、关联关系等。
其原理是通过捕捉和建模系统中的静态元素与它们之间的关系来展示系统的结构组成。
静态建模的方法通常包括:标识实体、定义类和接口、建立关联关系、定义属性和操作等。
在进行静态模型构建时,一般可以按照以下步骤进行:
1. 确定系统的边界:确定要建模的系统的范围和边界,明确系统的定义。
2. 建立类和接口:根据系统的需求和功能,识别系统中的类和接口,并进行建模。
3. 定义关联关系:确定类和接口之间的关系,包括关联关系、继承关系、依赖关系等。
4. 定义属性和操作:为类和接口中的元素定义属性和操作,明确其特征和行为。
5. 验证和优化:对建立的静态模型进行验证和优化,确保模型的准确性和完整性。
6. 文档化和交流:将静态模型进行文档化,并与相关利益相关者进行交流和反馈,以确保模型的有效应用。
通过按照以上步骤进行静态模型的建立,可以帮助开发团队更好地理解系统的结构和组成,为系统的实现和维护提供指导和支持。
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的定义和组成详细介绍⽬录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是OOA和OOD的常用工具。
使用UML来构建软件的面向对象的软件工程的过程,就是一个对系统进行不断精化的建模的过程。
这些模型包括用例模型、分析模型、设计模型,然后,我们需要使用具体的计算机语言来建立系统的实现模型。
当然,在整个软件工程中,我们还需要建立系统的测试模型,以保证软件产品的质量。
使用面向对象的工具来构建系统,就应该使用面向对象的软件工程方法。
然我,我们经常会发现,在实际的开发过程中,很多开发人员虽然能够理解UML的所有图形,却仍然不能得心应手的使用UML来构建整个项目,其很大的原因,是仍然在使用原有的软件工程方法,而不清楚如何使用UML来建立系统的这些模型,不清楚分析和设计的区别,以及他们之间的转化。
应用软件系统,就其本质来说,是使用计算机对现实世界进行的数字化模拟。
应用软件的制造过程,按照UML的方法,就是建立这一些列模型的过程。
本文将就一个图书馆系统,说明如何使用UML来对系统进行这一系列的建模。
关于这个图书馆系统,基本的需求比较简单,就是允许学生可以在图书馆借阅和归还图书,另外,也可以通过网络或者图书馆的终端来查阅和预订书。
当然,图书馆管理员也可以对图书进行管理。
为了简化系统,我们没有把图书馆中的人员作细分。
之所以采用这个相对简单案例,是因为很多人都对图书馆系统有很强的感性认识,这样,读者不需要花很多的时间来理解系统包含的业务知识。
同时,也因为本文只是对使用UML 的过程做一个探讨,着眼于使用UML进行建模的过程,说明各个层次的模型之间的区别和联系,展示系统演进的过程,而不会深入UML的细节方面。
对于更加复杂的系统,其分析和设计的方法是相通的,可以举一反三。
用例模型——系统需求的获取用例模型定义系统做什么,是用来获取系统需求的有效手段。
用例模型由“角色”和“用例”组成。
第3章类图、对象图和包图使用面向对象的思想描述系统,能够把复杂的系统简单化、直观化,这有利于用面向对象的程序设计语言实现系统,并有利于未来对系统的维护。
构成面向对象模型的基本元素有类、对象和类与类之间的关系等。
类图和对象图合称为结构模型视图或者静态视图,用于描述系统的结构或静态特征。
其中,类图用来描述系统中的类以及类与类之间的静态关系等;对象用来描述特定时刻实际存在的若干对象以及它们之间的关系。
一个系统的模型中可以包含多个对象图,每个对象图描述了系统在某个特定时刻的状态。
人们为了控制现实系统的复杂性,通常会将系统分成较小的单元,以便一次只处理有限的信息。
UML提供了包这一机制,使用它可以把系统划分成较小的便于处理的单元。
本章主要介绍类、类图、对象、对象图、类与类之间的关系以及包图等内容,并且还将创建图书管理系统的类图。
本章学习要点:➢理解类图的基本概念➢为系统建模类➢建模类之间的关联关系➢理解并建模泛化关系➢了解依赖关系和实现关系➢了解对象图和包图的概念➢构造类图3.1 类图构建面向对象模型的基础是类、对象以及它们之间的关系。
可以在不同类型的系统(例如,商务软件、嵌入式系统、分布式系统等)中应用面向对象技术,在不同的系统中描述的类可以是各种各样的。
例如,在某个商务信息系统中,包含的类可以是顾客、协议书、发票、债务等;在某个工程技术系统中,包含的类可以有传感器、显示器、I/O 卡、发动机等。
在面向对象的处理中,类图处于核心地位,它提供了用于定义和使用对象的主要规则,同时,类图是正向工程(将模型转化为代码)的主要资源,是逆向工程(将代码转化为模型)的生成物。
因此,类图是任何面向对象系统的核心,类图随之也成了最常用的UML图。
3.1.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。
UML建模工具中的五大视图本节和大家一起学习一下UML建模工具方面的知识,本节主要包括面向对象建模概念和UML中的五大视图等内容,相信通过本节的介绍你对UML建模工具有一定的认识。
下面让我们一起来学习UML建模工具吧。
UML建模工具1.面向对象建模建模把复杂得问题分解为易于理解的小元素,以达到问题的求解模型帮助你具体化和指出系统的不同方面,模型也显示不同的部分如何彼此相关并有助于它们的工作形象化。
UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型解释用户的要求,交互模型描述消息流,实现模型包含工作单元,部署模型包含属于进程分配的细节。
提供一种简单的、准备使用的、表现为可视的建模语言,是独立于过程的,是独立于语言的2.UML建模工具的五大视图:UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型描述用户的要求,交互模型描述消息流,实现模型描述工作单元,部署模型属于进程分配的细节。
◆用户视图–表示系统的目的和目标◆结构视图–表示系统的静态或空闲的状态◆行为视图–表示系统的动态状态或状态的变动◆实现视图–表示系统的逻辑元素的分布◆环境视图–表示系统物理元素的分布3.用户视图系统的用户视图由用例图组成,用例图包含执行者、用例、及它们的关系,用例图表示了系统对外部实体提供的功能,用例图由执行者和用例组成(执行者对系统做什么的)执行者主要可分为四类:主要执行者–直接与系统交互的人,次要执行者–涉及到系统维护的人,外部硬件–运行应用的非计算机的系统部分,其他系统–为其工作需要与你系统交互的外部系统4.结构视图UML建模工具中结构视图代表系统的静态方面,包含类图(描述不同的类和它们的关联,描述系统中声明的类)和对象图(描述不同的对象和它们彼此间的链接)。
类:用来描述具有特征的现实世界的实体。
UML的九种模型图本⽂转⾃,仅供学习交流!⼀、作为⼀种建模语⾔,UML的定义包括UML语义和UML表⽰法两个部分。
UML语义:描述基于UML的精确元模型定义。
UML表⽰法:定义UML符号的表⽰法,为开发者或开发⼯具使⽤这些图形符号和⽂本语法为系统建模提供了标准。
这些图形符号和⽂字所表达的是应⽤级的模型,在语义上它是UML元模型的实例。
⼆、标准建模语⾔UML可以由下列5类图来定义。
⽤例图:从⽤户⾓度描述系统功能,并指出各功能的操作者。
静态图:包括类图和对象图。
类图描述系统中类的静态结构,不仅定义系统中的类,表⽰类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作,类图描述的是⼀种静态关系,在系统的整个⽣命周期都是有效的。
对象图是类图的实例,⼏乎使⽤与类图完全相同的标识。
⼀个对象图是类图的⼀个实例。
由于对象存在⽣命周期,因此对象图只能在系统某⼀时间段存在。
⾏为图:描述系统的动态模型和组成对象间的交互关系,包括状态图和活动图。
状态图描述类的对象所有可能的状态以及事件发⽣时状态的转移条件,状态图是对类图的补充,活动图描述满⾜⽤例要求所要进⾏的活动以及活动间的约束关系,有利于识别并进⾏活动。
交互图:描述对象间的交互关系,包括时序图和协作图。
时序图显⽰对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显⽰对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显⽰对象间的动态合作关系。
除显⽰信息交换外,协作图还显⽰对象以及它们之间的关系。
如果强调时间和顺序,则使⽤时序图;如果强调上下级关系,则选择协作图。
实现图:包括组件图和部署图。
组件图描述代码部件的物理结构及各部件之间的依赖关系,组件图有助于分析和理解部件之间的相互影响程度;部署图定义系统中软硬件的物理体系结构。
采⽤UML来设计系统时,第⼀步是描述需求;第⼆步根据需求建⽴系统的静态模型,以构造系统的结构;第三步是描述系统的⾏为。
其中在第⼀步与第⼆步中所建⽴的模型都是静态的,包括⽤例图、类图、对象图、组件图和部署图等5种图形,是标准建模语⾔UML的静态建模机制。
UML 2.0共有10种图,分别为表示系统静态结构的静态模型(包括类图、组合结构图、部署图),以及表示系统动态结构的动态模型(包括用例图、序列图、对象图、协作图、状态图、活动图、组件图),它们各用以表现不同的视图,如表1-1所示。
用例之间也可以存在包含、扩展和泛化等关系:
(1)包含关系:用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为做为自身行为的一部分,这被称作包含关系。
(2)扩展关系:扩展关系是从扩展用例到基本用例的关系,它说明为扩展用例定义的行为如何插入到为基本用例定义的行为中。
它是以隐含形式插入的,也就是说,扩展用例并不在基本用例中显示。
在以下几种情况下,可使用扩展用例:
a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开);
b.表明只在特定条件(如例外条件)下才执行的分支流;
c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。
所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。
(3)泛化关系:用例可以被特别列举为一个或多个子用例,这被称做用例泛化。
当父用例能够被使用时,任何子用例也可以被使用。
如在图2.4中,订票是电话订票和网上订票的抽象。
第二种是接口(一个接口描述了类或组件的对外的可见的动作。
一个接口可以实现类或组件的全部动中被画成一个圆和它的名字。
图interaction和状态机是UML 模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象接在一起。
1.1.3 分组事物分组事物是UML 模型中组织的部分,可以把它们看成是个盒子,模型可以在其中被分解。
总共只有一种分组事称为包(package)。
包是一种将有组织的元素分组的机制。
结构事物、动作事物甚至其他的分组事物都有可能放在一个包中。
与组件在于运行时)不同的是包纯粹是一种概念上的东西,只存在于开发阶段。
在UML 中用如下图表示包:图1-10 包1.1.4 注释事物注释事物是UML模型的解释部分。
UML中用如下图表示:图1-11 注释1.1.5 UML中的关系UML中有四种关系:1. 依赖(Dependencies)(图1-12 依赖)2. 关联(Association )(图 1-13 关联)3. 一般化(generalization )(图1-14 一般化) 4. 实现(realuzation)(图 1-15 实现)1.1.6 UML 中的图1、类图(class diagram )2、对象图(class diagram )3、Use case diagram4、Sequence diagram5、Collaboration diagram6、Statechart diagram7、Activity diagram8、Compomnent diagram9、Deployment diagram关于这些图的详细介绍将在今后的章节中讲解。
联系本文作者:21newtimes@ 如果本文某些术语翻译得不正确,敬请大家指教。
关于UML的东西我也是最近才接触,本文如有还请原谅。
第二章 Hello World记得在学习C 语言的时候,教科书上的第一个程序就是叫Hello world ,一个在屏幕上简单地打印出“Hello world子。
UML基础知识⼀:UML定义了5类,10种模型图UML提供的基本模型图包括:(1)、⽤例图:展⽰系统外部的各类执⾏者与系统提供的各种⽤例之间的关系(2)、类图:展⽰系统中类的静态结构(类是指具有相同属性和⾏为的对象,类图⽤来描述系统中各种类之间的静态结构)(3)、对象图:是类图的⼀种实例化图(对象图是对类图的⼀种实例化)(4)、包图:是⼀种分组机制。
在UML1.1版本中,包图不再看作⼀种独⽴的模型图)(5)、状态图:描述⼀类对象具有的所有可能的状态及其转移关系(它展⽰对象所具有的所有可能的状态以及特定事件发⽣时状态的转移情况)(6)、顺序图:展⽰对象之间的⼀种动态协作关系(⼀组对象组成,随时间推移对象之间交换消息的过程,突出时间关系)(7)、合作图:从另⼀个⾓度展⽰对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)(8)、活动图:展⽰系统中各种活动的执⾏流程(各种活动的执⾏顺序、执⾏流程)(9)、构件图:展⽰程序代码的物理结构(描述程序代码的组织结构,各种构件之间的依赖关系)(10)、配置图:展⽰软件在硬件环境中(特别是在分布式及⽹络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构)建模过程⾸先:描述需求次之:根据需求建⽴系统的静态模型,以构造系统的结构第三:描述系统的⾏为其中第⼀步与第⼆步中所建⽴的模型都是静态的,包括⽤例图、类图(包括包图)、对象图、构件图和配置图等六种图。
这些图构成了标凖建模语⾔UML的静态建模机制。
第三步中所建⽴的模型或者可吧执⾏或者表⽰执⾏时的时序状态或交互关系,它包括状态图、活动图、顺序图和合作图等四种图。
这些图构成了标准建模语⾔UML的动态建模机制。
可⽤以下常⽤视⾓来描述⼀个系统:(1)、系统的使⽤实例:从系统外部的操作者的解度描述系统的功能(2)、系统的逻辑结构:描述系统内部的静态结构和动态⾏为,即从内部描述如何设计实现系统功能(3)、系统的构成:描述系统由哪些程序构件所组成(4)、系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题(5)、系统的配置:描述系统的软件和各种硬件设备之间的配置关系⼆:软件开发过程(RUP概述):迭代开发过程:由四个阶段构成,每个阶段都包含软件开发的每个过程:分析、设计、实现和测试阶段四个阶段:初始阶段、细化阶段、构造阶段、移交阶段通常在移交阶段后进⾏总体测试、性能测试、⽤户培训等1. 初始阶段:项⽬的总体需求、可⾏性分析等,并确认是否启动该项⽬2. 细化阶段:(1/5周期)启动该项⽬后,(1)、实际要做什么?(2)、如何做?(3)、将采⽤什么技术?风险分析和风险管理(1)、需求风险:不能偏离⽤户需要,要充分了解⽤户需求及各需求的相对优化程度处理需求风险:⽤例分析技术。
昆明理工大学信息工程与自动化学院学生实验报告( 2015 — 2016 学年第一学期)课程名称:面向对象建模技术开课实验室:信自楼442 2015年11月24日年级、专业、班计科122班学号201210405204 姓名邹华宇成绩上机项目名称实验二静态模型指导教师付晓东教师评语该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□该同学的实验能力: A.强□ B.中等□ C.差□该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□实验报告是否规范: A.规范□ B.基本规范□ C.不规范□实验过程是否详细记录: A.详细□ B.一般□ C.没有□注:5个A 为优 4个A为良 3个A 为及格其余为不及格。
教师签名:年月日一、实验目的1、掌握 UML 的静态建模的方法。
2、实践用 UML 建立静态模型。
二、实验原理对象类静态结构模型描述了系统的体系结构,包括构成系统的类和对象、它们的属性和操作,以及这些对象类之间的联系。
实质上是定义系统“对谁做”的问题。
对象是一种人的认知概念,对应于现实世界和机器世界的各种元素。
软件系统也是由对象构成的。
要理解对象世界,首先要进行对象分析,建立对象类模型。
类是对象的抽象,认识对象的类别是人类的本领。
类之间的各种关系都可以在对象世界里找到对应物。
UML的对象类模型把类分解为属性和操作,属性也可以按照这种方法再进行分解,这是解决问题的一种基本原理。
操作与系统的改变有关,系统的改变被分解为对象的变化,而类的操作代表与之相关的对象改变的计算过程。
在建立对象类静态结构模型时,主要是将对象间的关系(如继承、聚集等)标注在关联线上,使对象间的关联关系更加明了。
根据已建立的用例图和客户业务要求,采用CRC卡片(如下图所示)的方法来确定对象类及其属性和操作。
通过检查类的定义,分析问题的需求和应用领域知识来完善和确定类的属性。
根据系统功能要求和系统设计需求来完善和确定类的操作。