软件工程学:面向对象方法之UML统一建模工具理论知识

2023-05-0114:50:27软件工程与架构Comments1,786 views字数 4394阅读模式

软件工程学:面向对象方法之UML统一建模工具理论知识文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

UML(Unified Modeling Language)是一种用于软件系统设计和开发的标准建模语言。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

一、UML术语表

1.UML术语表总述文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

为了支持抽象分析和设计中的事物,UML给出了八个基本术语,即类、接口、协作、用况、主动类、构件、制品、节点。每个术语都体现着一定的软件设计原理,例如,类体现了数据抽象、过程抽象、局部化以及信息隐蔽等原理;用况体现了问题分离、功能抽象等原理;接口体现了功能抽象等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

2.类、接口、用况、协作等概念文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)类。类是一组具有相同属性、操作、关系和语义的对象的描述。类主要用于抽象客观世界中的事物。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

软件工程学:面向对象方法之UML统一建模工具理论知识文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)接口。每个操作描述了类、构件或子系统的一个服务,接口就是操作的一个集合。接口是对系统/产品的“接缝”予以模型化,表明了一个类、构件、子系统所需要得到的、且与实现无关的行为。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)用况。用况是对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)协作。协作是一个交互,涉及交互的三要素:交互各方、交互方式以及交互内容。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

3.UML的4个术语文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

为了表达各类事物之间的相互依赖和作用,UML给出了4个术语,即关联、泛化、细化和依赖。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)关联。关联是对一组有相同结构、相同链的描述,是类目之间的一种结构关系。关联可以用一条连接两个类目的线段表示,并可对其命名,其结构可以具有方向性,用一个实心三角形来指示关联的方向。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)泛化。泛化是一般性类目和它的较为特殊类目之间的一种关系。子类可以继承父类的属性和操作,同时,也可以替换父类的声明。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)细化。细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)依赖。依赖用于描述一个类目使用另一个类目的信息和服务,是一种使用关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

软件工程学:面向对象方法之UML统一建模工具理论知识文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

4.表达组合信息的术语文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

为了控制信息组织的复杂性,UML提供了组织信息的一种通用机制-包,支持形成一些可管理的部分。换言之,包可以作为“模块化”和“构件化”的一种机制。为了模型化包之间的关系,UML给出了两种依赖,即访问和引入,用于描述一个包可以访问和引入其他包。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

5.UML术语的作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)类用于抽象客观事物。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)接口用于抽象事物之间的缝隙。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)协作用于抽象协作性行为。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)用况用于抽象功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(5)主动类用于抽象并发行为。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(6)构件用于抽象软件解中可标识的成分。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(7)制品用于抽象工作产品。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(8)节点用于抽象计算单元。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(9)关联用于抽象结构关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(10)泛化用于抽象“一般/特殊”关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(11)实现用于抽象精化关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(12)依赖用于抽象使用关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

6.类在建模中的主要用途文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)模型化问题域中的概念。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)建立系统的职责分布模型。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)模型化建模中使用的基本类型。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

7.使用接口应注意的问题文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

在建立系统模型中,若使用接口对系统中那些“接缝”进行模型化时,应注意以下问题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)接口只可以被其他类目使用,而其本身不能访问其他类目。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)接口描述类的外部可见操作,通常是该类的一个特定有限行为。这些操作可以使用可见性、并发性、衍型、标记值和约束来修饰。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)接口不描述其中操作的实现,也没有属性和状态。据此可见,接口在形式上等价于一个没有属性、没有方法而只有抽象操作的抽象类。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)接口之间没有关联、泛化、实现和依赖,但可以参与泛化、实现和依赖。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

二、UML的模型表达式

1.结构图和行为图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

UML的图形化工具分为两类:一类是结构图,用于表达系统或系统成分的静态结构模型,给出系统或系统成分的一些说明性信息;另一类是行为图,用于表达系统或系统成分的动态结构模型,给出系统或系统成分的一些行为信息。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

2.类图、用况图、顺序图及状态图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)类图是可视化地表达系统静态结构功能模型的工具,使用类图所表达的系统静态结构模型,给出的是一些关于系统的说明性信息。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)用况图是一种表达系统功能模型的图形化工具,它包含六个模型元素,分别是主题、用况、参与者、关联、泛化、依赖。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)顺序图由一组对象以及按时序组织的对象之间的关系组成,是一种交互图,包含对象之间传递的信息。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

为了控制交互行为描述的复杂性,以便更好地表达顺序图的复杂控制,UML定义了四种常见的控制操作:选择执行操作、条件操作、并发迭代操作和迭代执行操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)状态图强调了从一个状态到另一个状态的控制流,是显示一个状态机的图。状态图由状态、事件和状态转移构成。使用状态图的作用有两个:一是创建一个系统的动态模型;二是创建一个场景的模型。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

3.创建一个系统的类图的步骤!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)模型化待建系统中的概念,形成类图中的基本元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

使用UML中的术语“类”,来抽象系统中的各个组成部分,包括系统环境。继而确定每一类的职责,最终形成类图中的模型元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)模型化待建系统中的各种关系,形成该系统的初始类图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

使用UML中表达关系的术语,例如关联、泛化等,来抽象系统中各成分之间的关系,形成该系统的初始类图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)模型化系统中的协作,给出该系统的最终类图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

在研究系统中以类表达的某一事物语义的基础上,使用类和UML中表达关系的术语,模型化一些类之间的协作,并使用有关增强语义的术语,给出该模型的详细描述。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)模型化逻辑数据库模式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

对要在数据库中存储的信息,以类作为工具,模型化系统所需要的数据库模式,建立数据库概念模型。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

4.信号事件、调用事件、时间事件和变化事件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

在UML中,可以把信号、调用、时间、变化模型化为事件,分别称为信号事件、调用事件、时间事件和变化事件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)信号事件是一种异步事件,信号通常由状态机处理。如果没有定义对该事件的响应,那么事件均可能丢失。事件的丢失,就有可能引发接收者-状态机的一个错误的状态转移。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)调用事件往往是一个同步事件,即发送者和接收者多处在该操作执行期间的一个汇合点上,发送者的控制流一直被挂起,直到该操作执行完成。但可以把调用规约为异步调用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)时间事件是表示推移一段时间的事件。时间事件是通过时间表达式来规约的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)变化事件表示状态的一个变化,或表示某一条件得到满足。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

5.状态转换所涉及的内容文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

描述一个状态转换,一般涉及五个部分。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)源状态:发生状态转移的那个状态。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)转移触发器:在源状态中由对象识别的事件,并且一旦满足其监护条件,则使状态发生转移。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)监护条件:一个布尔表达式,当某个事件触发器接收一个事件时,如果该表达式有值为真,则触发一个转移;若有值为假,则不发生状态转移。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)效应:一种可执行的行为。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(5)目标状态:转移完成后所处的状态。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

6.最常用的控制操作子文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)选择执行操作子。该操作子由两部分组成:一是监护条件,二是控制体。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)条件执行操作子。控制体通过水平线将其分为一些部分,每一部分表示一个条件分支,每一分支有一个监护条件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)并发执行操作子。该控制操作子的体通过水平线将其分为多个部分,每一部分表示一个并行计算。该控制操作子表明,当进入该控制操作子时,所有部分并发执行。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(4)迭代执行操作子。该控制操作子表明,只要在每一次迭代之前该监护条件为真,那么该控制体就反复执行;当该控制体上面的监护条件为假时,控制绕过该控制操作子。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

7.子状态机、简单状态和组合状态的概念文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)子状态机:为了有效地组织状态、控制对象状态的复杂性,UML提供了组合状态,在一个状态机中引入了另一个状态机,被引入的状态机就称为子状态机。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)简单状态:子状态是被嵌套到另一状态中的状态。相对地,把没有子状态的状态称为简单状态。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(3)组合状态:把含子状态的状态称为组合状态,组合状态可包含两种类型的子状态机,即非正交(顺序)子状态机和正交(并发)子状态机。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

知识总结

1、自20世纪80年代中期到90年代,提出了一些面向对象的开发方法和设计技术,其中具有代表性的工作有【面向对象开发方法】、【面向对象分析(OOA)和面向对象设计(OOD)】、【面向对象软件生存周期的“喷泉”模型以及面向对象系统开发框架等】。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

2、在面向对象技术的发展中,一个重要的里程碑是【UML】。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

3、UML是一种【可视化语言】,可用于【规约系统的制品】、【构造系统的制品】、【建立系统制品的文档】。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

4、类是一组具有【相同属性】、【操作】、【关系】和【语义】的对象的描述。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

5、接口表示通常有两种形式:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)【采用具有分栏和关键字《interface》的矩形符号来表示】。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)【采用小圆圈和半圆圈来表示】。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

6、协作是一个交互,涉及交互的三要素:【交互各方】、【交互方式】以及【交互内容】。P87文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

7、为了表达各类事物之间的关系,UML给出了4个术语,它们是【关联】、【泛化】、【细化】、【依赖】。P89文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

8、为了表达关联的含义,UML采用了【关联名、导航、角色、可见性、多重性、限定符、聚合、组合、关联类、约束】。P90-94文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)【聚合】是关联的一种特殊形式,表达的是一种【“整体/部分”】关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)【组合】又是【聚合】的一种特殊形式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

9、在UML中,把泛化表示成从子类(特殊类)到父类(一般类)的一条【带空心三角形的线段】,其中空心三角形在【父类端】。P94文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

10、【包】可以作为【“模块化”】和【“构件化”】的一种机制。P99文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

11、UML的图形化工具分为两类,一类是【结构图】,用于表达系统或系统成分的静态结构模型,给出系统或系统成分的一些说明性信息;一类是【行为图】,用于表达系统或系统成分的动态结构模型,给出系统或系统成分的一些行为信息。P101文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

12、软件开发中常用的4种建模工具包括【类图】、【use case图】、【状态图】和【顺序图】。P101文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

13、【USE CASE图】支持系统功能的建模,【交互图】支持系统交互的建模,【状态图】支持系统生存周期的建模。P103文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

14、在一个用况图中,用况之间可以具有3种关系,即【泛化、扩展和包含】。P105文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

15、状态图是显示一个【状态机】的图,其中强调了从一个状态到另一个状态的【控制流】。P107文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

16、UML把状态分为3类,即【初态】、【终态】和【通常状态】。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(1)【初态】表达状态机默认的开始位置,用【实心圆】表示;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

(2)【终态】表达状态机的执行已经完成,用【内含一个实心圆的圆】来表示。P109文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

17、描述一个状态转换,一般涉及【源状态】、【转移触发器】、【监护】、【效应】、【目标状态】5个部分。P111-112文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

18、为了规约行为的生存周期,UML主要引入了3个术语,即【状态】、【事件】和【状态转移】,并给出了一种表达行为生存周期模型的工具----状态图。P112文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

19、【顺序图】中所包含的内容,确定了一个特定的抽象层,该抽象层决定了系统(或系统成分)模型的形态。P113文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

20、【聚焦控制】用于表达一个对象执行一个动作的时间段。聚焦控制表示为细高矩形。根据需要,可以使用嵌套的聚焦控制。P11文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

软件工程学:面向对象方法之UML统一建模工具理论知识文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

参考教材:《软件工程》,机械工业出版社,王立福主编,2011年版。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/arc/38128.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/arc/38128.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定