第5章 UML与数据库应用系统

Posted 修罗神天道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第5章 UML与数据库应用系统相关的知识,希望对你有一定的参考价值。

5.1DBAS建模 
统一建模语言(UML)的定义由语义和表示法两部分组成。语义用自然语言描述,而表示法定义了 UML的可视化标准表示符号,这决定了 UML 是一种可视化的建模语言。具体来说,UML 的语义是定义在一个四 层(或四个抽象级)建模概念框架中的,这四层分别是: 
(1)元元模型(Meta-Meta Model)层,组成了 UML 的最基本的元素“事物”(Thing),代表要定义的所有事物。 
(2)元模型(Meta Model)层,组成了 UML 的基本元素,包括面向对象和面向组件的概念。这一层的每个概念都是元元模型中“事物”概念的实例。 
(3)模型(Model)层,组成了 UML 的模型,这一层中的每个概念都是元模型层中概念的一个实例,这一层的模型通常叫作类模型(Class Model)或类型模型(Type Model)。 
(4)用户模型(User Model)层,这层中的所有元素都是 UML 模型的实例。这层中的每个概念都是模型层的一个实例(通过分类)也是元模型层的一个实例。这一层的模型通常叫作对象模型(Object Model)
或实例模型(Instance Model)。 
UML 中包括以下五种视图:结构视图、实现视图、行为视图、环境视图和用例视图。UML2.0 提供了13 种不同的图,分为两类:一类是结构图,主要用于对系统的静态结构建模,包括类图、对象图、复合结构图、包图、组件图、部署图;另一类是行为图,主要用于对系统的动态行为建模,包括用例图、交互图(顺序图、通信图、交互概述图、时间图)、状态图和活动图。 
5.2DBAS业务流程与需求表达 
在 UML 中,对于业务流程支持的主要图形是活动图(Activity Diagram),活动图主要的目的在于陈述活动与活动之间的流程控制的转移。在软件需求的领域中,用于捕捉需求的工具,就是用例图(Use Case Diagram)。 
5.2.1业务流程与活动图 
活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序,并行次序。 
当活动图用于描述系统功能时,主要侧重于系统多个用例活动之间相互制约的执行顺序,同时,识别出系统中存在的可以并行进行的用例,此时,活动表示系统要完成的任务。 
当活动图用于描述用例时,用于描述用例中的操作执行次序和操作完成的结果,显示多个对象的操作是如何相互结合起来共同完成用例的一个脚本,揭示出操作之间的并行性,为编码实现提供开发并行程序的便利。此时,活动表示类中的方法,即操作。 
活动图用于低层次程序模块的作用类似于流程图,但活动图还可以描述并行操作,而流程图只能描述串行操作。一般来说,活动图最适合用于描述系统或子系统的主要工作流程。 
活动图描述商品销售业务模块的主要的业务流程,如下图所示。 
 
起始点:指一连串活动的开始点。在一张活动图中,必须有且只能有一个起始点,用  表示。 
结束点:指一连串活动的终结点。在一张活动图中,可以有多个结束点,用   表示。 
分区:在整个活动表达上,是一个非常重要的概念。可以利用分区来将活动分配给对应的角色。活动之间的转换由箭头表示,箭头表示执行方向,其标注为执行下一个活动的条件,如果箭头线上没有条件,表示执行完该活动后自动执行箭头所指向的活动;加粗直线为同步条,表示这之后的活动执行路线可以并行进行,或在其上的所有并行活动执行完毕后,到此转为顺序执行;菱形代表分支,表示判断。 
5.2.2系统需求与用例图 
用例模型由用例图构成。用例图由系统、角色和用例三种模型元素以及元素之间的各种关系组成。 
1.系统 
在用例图中系统用一个长方框来表示,系统的名字写在方框上或方框里面,方框内部还可以包含该系统中用符号表示的用例。 
2.角色 
角色是与系统交互的人或其他实体。一个角色可以执行多个用例,反过来,一个用例也可被多个角色使用。角色是类,所以它拥有与类相同的关系描述。在用例图中,用通用化关系来描述角色之间的行为。 通用化关系是指把某些角色的共同行为抽取出来作为通用行为,这些通用行为构成它们的超类(Superclass)。这样,在定义某一具体角色时,仅仅定义其不同的行为。角色之间的通用化关系用带空心三角形(作为箭头)的直线表示,箭头的方向指向超类。 
3.用例 
用例代表的是一个完整的功能,是所有动作的集合。动作(Action)是系统的一次操作,如与角色通信、进行计算,在系统内进行的工作都可以称作动作。 
                                       
在 UML 中,用例用椭圆形表示,用例位于系统边界的内部。用例与角色之间有连接关系,此关系属于关联(Association),又称作通信关联(Communication Association)。这种关联表明哪种角色能与该用例通信。关联关系是双向的一对一关系,表示不仅角色可以与用例通信,用例也可以与角色通信,表示方法是一条连接角色和用例的带箭头直线。 
另外,用例之间也存在关系,包括扩展、使用、组合三种。扩展和使用是继承关系,即通用化关系的另一种体现形式。组合则是把相关的用例打成包(Package),当作一个整体看待。 
5.3DBAS系统内部结构的表达 
系统内部结构一般分为静态结构和动态结构。在 UML 中,用类图(Class Diagram)来描述系统的静态结构,而用顺序图(Sequence Diagram)和通信图(Communication Diagram)来表本系统的动态结构。 
5.3.1系统结构与类图 
类图主要表达的是问题领域的概念模型,在这个抽象的概念中,除了表达该抽象概念的名称外,另外需要表达该抽象概念的“属性”与“行为”。 
类图技术是面向对象方法的核心技术。在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于 1 个被描述的系统,其类模型、对象模型以及它们之间的关系揭示了系统的结构。 类图展现了一组类、接口和协作以及它们间的关系。系统可以有多个类图,单个类图仅表达了系统的一个方面。下图是类图的表示图。 
 
1.属性 
(1)可见性。表示该属性对类外的元素是否可见。不同属性具有不同的可见性。常用的有公有(Public)、受保护(Protected)和私有(Private)三种,在 UML 中分别用“+”“#”“-”表示。 
(2)名称。是一个字符串,表示属性的名称。 
(3)类型。定义属性的种类。它可以是一个基本数据类型,也可以是用户自定义的类型。 
(4)缺省值。属性的初始值。 
(5)约束性。列出该属性所有可能的取值,在定义枚举类型的属性时经常使用,每个枚举值之间用逗号分隔,此外,也可以用来说明该属性的其他信息,比如属性的持久性(Persistent)等。 
2.操作 
(1)可见性。“+”表示公有操作,“#”表示受保护的操作,“-”表示私有操作。 
(2)名称。是一个字符串,表示操作的名称。 
(3)参数表。其语法与属性的参数相同,参数的个数是任意的。 
(4)返回类型表达式。依赖于语言的描述,此项为可选项。 
(5)约束性。用以描述对此操作的约束。 
这里,可见性和约束性与属性中的含义一样。 
3.关系 
类与类之间通常有关联、通用化(继承)、依赖和精化 4 种关系。 
(1)关联关系:表示两个类之间存在某种语义上的联系。通常情况下关联是双向的,其图示是连接两个类之间的直线,可以在直线的二个方向上为关联起一个名字,而在另一个方向上起另一个名字(也可不起名字),名字通常紧挨着直线书写。 
如果类与类之间的关联是单向的,则称为导航关联(如下图所示)。导航关联采用实线箭头连接两个类,只有箭头所指的方向上才有这种关联关系。 
 
聚集(Aggregation)是一种特殊形式的关联。它表示类之间的关系是整体与部分的关系。在需求分析中,“包含”、“组成”、“分为……部分”等经常设计成聚集关系。 
聚集可以进一步划分成共享聚集(Share Aggregation)和组成(Composition)。例如,课题组包含很多成员,而每个成员又可以是另一个课题组的成员,即部分可以参加多个整体,称为共享聚集。另外一 种情况是整体拥有各部分,部分与整体共存,如整体不存在了,部分也会消失,称为组成。 
 
(2)继承关系:在 UML 中,继承表示为一头为空心三角形的连线。 
(2)依赖关系:有两个元素 X、Y,如果修改元素 X 的定义可能会引起元素 Y 的定义的修改,称元素Y 依赖于元素 X。 
(3)精化关系:用于表示同一事物的两种描述之间的关系。 
5.3.2系统结构与顺序图 
顺序图的目的在于说明对象的协作如何达到系统的目标。系统的目标在进行用例分析时,已被区分为多个子目标,因此,每一张顺序图所表达的,是每一个用例是如何通过对象交互来完成的。 
顺序图主要用于描述系统内对象之间的消息发送和接收序列。顺序图有两个坐标轴:纵向表示时间的持续过程,横向表示对象,每一个对象用矩形框表示,纵向的虚线表示对象在序列中的执行情况,称为对象的“生命线”。 
对象间的通信用对象生命线之间的水平消息线表示,消息线的箭头说明消息的类型,如同步、异步或简单。消息/方法名字标注在消息线上面。
 
顺序图的第一个消息一般在左边第一个对象的生命线顶端,然后其他消息按时间顺序相继加入顺序图中,后面发生的消息艽线应比前面发生的消息的线画得低一些,以表示它们之间的时间关系。 
消息也可以附加条件,规定只有当条件为真时才可以发送和接收消息。当用条件来描述分支时,如果各分支的条件不互相排斥,则消息可能会并行发出。如下图所示是带互斥条件的消息分支。 
 
如果各分支的条件不互相排斥,则消息可能会并行发出。 
   
顺序图也可以表示递归过程,当一个操作调用它本身时,消息总是同步的,因而,在顺序图中用同步消息来表示,并用一条简单消息来表示返回。 
顺序图主要的目的是表达对象与对象之间如何沟通与合作,也因此被称为动态模型。 
5.3.3系统结构与通信图 
通信图是交互图(Interaction Diagram)的一种,也被称为协作图(Collaboration Diagram)。通
信图中包含一组对象,并在图中展示这些对象之间的联系以及对象间发送和接收的消息。 
顺序图和通信图都描述交互,但是顺序图强调的是时间,而通信图强调的是空间。通信图中的主要元素基本和顺序图相同,只是在消息的传递上要特别表达消息的传递是由哪一个对象到另外一个对象。 通信图显示的是对象之间的关系,并不侧重交互的顺序,它没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序。下图是顾客购买商品的通信图。 
 
5.4DBAS系统微观设计的表达 
在 UML 中,对于细节方面的内容可用对象图(Object Diagram)、状态机图(State Machine Diagram)及时间图(Timing Diagram)来表达、分析和描述某个特定状况下的系统运作情况。 
5.4.1微观设计与对象图 
UML 中的对象图被用来描述特定时间点中所有对象在系统中的结构,也可以把对象图当成系统在某一时间点的“快照”。对象图是类图的一个实例,对象之间的关系是类之间的关系的实例,其图形表达与类的图形表示相似。对象图是某一个特定时间点上,系统所存在的所有对象的一个快照。如下图所示。 
 
5.4.2微观设计与状态机图 
在状态图中,只能有一个起始状态,起始状态的图示是一个实心的圆形。结束状态代表整个状态机到此活动结束,可以有多个结束状态。状态与状态之间,是利用转移来表达其间的关系的,用带有箭头的直线图示。如果是因为某个事件发生而造成状态的转移,此时,需要在转移的关系上标示上该事件,如下图所示。 
                                       
 
5.4.3微观设计与时间图 
在时间图中,整个矩形框就是一个生命线(Life line),显示了商品价格在不同时间段的状态变化情况。状态可以用文字在内部进行描述,如原价状态。在矩形框的最下面为时间轴(TimelineRange),在时间轴上可以指定刻度单位,本例中是以天为单位。在矩形框内尚低起伏的线代表时间的进行以及状态的转移,称为时间线(Time line)。状态的转移主要是以事件来驱动,事件也以纯文字来表达,如下图所示。 
 
5.5DBAS系统宏观设计的表达 
宏观设计是指将设计的焦点放在研究比较大范围中的元素之间的联系,如包、命名空间、子系统等。 
5.5.1宏观设计与包图 
UML 的包图(Package Diagram)可以表达系统中不同的包、命名空间或不同的项目间彼此的关系。在这里,包及命名空间指的是在逻辑层次上的关联性,而项目则是指实体层次的关联性。包(Package)是一种组合机制,把模型元素通过内在的语义连在一起成为一个整体叫包。包通常用于对模型的组织管理,因此有时又将包称为子系统(Subsystem)。构成包的模型元素称为包的内容。包拥有自己的模型元素,包与包之间不能共用一个相同的模型元素。 
包能够引用来自其他包的模型元素。当一个包从另一个包中引用模型元素时,这两个包之间就建立了关系。包与包之间允许建立的关系有依赖、精化和通用化。 
 
包图是表明包以及包之间的关系的类图。是对模型中涉及的元素分组所得的结果,是具有特定语义的一个子集,必须保证低耦合、高内聚。广义地讲,包可以包含类、接口、组件、结点、协作、用例等,还可以内嵌其他子包。 
与类一样,包也具有可见性,利用可见性控制外部包对包中内容的存取方式。UML 中对包定义了四种可见性:私有、保护、公有和实现,缺省的可见性为公有。 
(1)  公有可见性允许其他元素存取和使用包中的内容; 
(2)  私有可见性则只允许拥有和引用该包的包,存取和使用包中的内容; 
(3)  保护可见性除具有私有可见性的存取要求外,还允许有继承关系的包中的具体包存取一般包
中的元素; 
(4)  实现可见性与私有可见性很相似。但是有依赖关系的包之间,如果被引用(Imported)的包
定义为实现可见性,则不允许应用该包中的元素使用被引用包中的类。实现可见性尚无特定的表本符号。 
                                       
5.5.2宏观设计与交互概述图 
交互概述图(Interaction Overview Diagram)主要是利用活动图作为基础,只是其在控制流间连接的 UML 元素并非活动,而是交互图(包括顺序图、通信图、时间图及交互概述图),因此,交互概述图的主要元素和活动图完全一样,唯一不同的是一个交互框(Frames),用来取代活动图中的活动框。如下图所示。 
 
交互概述图可把不同的交互图结合在同一张图来表达。当系统中的对象协作关系越来越复杂,只用一张交互图无法表达时,可以使用交互概述图将所有交互图的关系呈现出来。 
5.5.3宏观设计与复合结构图 
在 UML 中,针对系统接口的架构,提供了一个全新的复合结构图来表达这一架构,复合结构图适用于需要进行系统整合的情况,可以利用复合结构图绘出要开发的系统与外部系统间的关系。 
复合结构图中最主要的元素就是部件(Part),—个部件可以代表某个实体组件,也可以代表一个子
系统。部件与部件之间的连接关系主要是装配(Assembly)关系,这种关系要通过接口来沟通。部件与外部的部件连接时,必须通过端口(Port)才能连接,用正方形图示。供给接口代表某个特定的部件提供服务给外部的部件。需求接口代表某个特定的部件需要外部的部件提供服务。 
5.6DBAS系统实现与部署的表达 
UML 中的组件图(Component Diagram)和部署图(Deployment Diagram)就可以达到这样的目标,可以简化团队管理上的难度。 
5.6.1系统实现与组件图 
组件图用来表示系统的静态实现视图,展现了一组组件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的系统建模。组件是逻辑设计中定义的概念和功能在物理架构中的实现。如下图所示。 
 
组件间的相关性连接,用一条带箭头的虚线表示,表示一个组件只有同另一个组件在一起才有完整的意义。如果从源代码组件 A 到另一个组件 B 有相关性是指 A 到 B 之间在语言上有相关性,在编译组件时,对 B 进行修改需要重新编译 A;如果组件是可执行的,相关性连接表示一个可执行的程序需要哪些动态链接库才能运行。 
组件可以定义对其他组件可见的接口。接口用从组件开始画的一条线表示,线的另一端大一个小空心圆。接口名写在圆的边上。然后,组件间的相关性指到用到的组件的接口上。 
5.6.2系统实现与部署图 
部署图又叫配置图,描述系统中硬件和软件的物理配置情况和系统体系结构。用结点表系实际的物理设备,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。如下图所示。 

以上是关于第5章 UML与数据库应用系统的主要内容,如果未能解决你的问题,请参考以下文章

软考《希赛教育·软件设计师考前冲刺与考点分析》计算机硬件基础知识——学习笔记

需求工程思维导图

需求工程思维导图

微信小程序商城构建全栈应用 Thinkphp5

Javascript 设计模式系统讲解与应用

MATLAB编程与应用系列-第5章 多项式与数据分析(1)