UML中各种视图及其作用
视图名 |
所辖框图 |
作 用 |
用例视图 |
用例图 |
从用例一级建立系统的高层模型,并不关注系统的具体实现。类图、交互图、状态图和活动图用于粗略描述系统业务领域的模型,不包括界面和服务对象层 |
类图 |
||
交互图 |
||
状态图 |
||
活动图 |
||
逻辑视图 |
用例图 |
从类(对象)一级建立系统的实现模型。类图、交互图、状态图和活动图用于详细描述整个系统工程各个层次的设计模型,包括界面和服务对象层 |
类图 |
||
交互图 |
||
状态图 |
||
活动图 |
||
构件视图 |
构件图 |
建模所要实现系统的各个模块、连接库或文件等之间的关系 |
部署视图 |
部署图 |
建模所要实现的系统在物理上的部署及其性能要求 |
用例视图VS逻辑视图
用例视图主要从系统外部来看系统,描述诸如用户在什么样的界面登陆,如何登陆,系统如何响应,但不会描述系统内部如何去验证用户;逻辑视图描述系统内部结构,诸如系统如何验证用户,可能有一个验证类、一个认证控制类等。(一个是程序的表面,一个是程序的内部)
UML中的主要图及其作用
(1)用例图:描述的是参与者(Actor)所理解的系统功能,用于需求分析阶段,列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。
(2)状态机图:通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为,也可以用来描述用例、协作和方法的动态行为,它是展示状态与状态转换的图。
状态机是一个类的对象所有可能的生命历程的模型。状态机包括状态图和活动图两种表示方法。
活动图:用于描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动和工作流程情况。 活动图实际上是用来为用例的事件流建模的工具。展示的主要内容是对象的活动状态。
状态图:用于对系统的动态方面建模。
(3)类图:是逻辑视图的重要组成部分,用于对系统的静态结构建模,涉及到具体的实现细节。在系统分析阶段,类图主要用于显示角色和提供系统行为的实体的职责;在系统设计阶段,类图主要用于捕捉组成系统体系结构的类结构;在系统编码阶段,根据类图中的类及它们之间的关系实现系统的功能。
关联关系:如果A类中成员变量是用B类声明的对象,那么A和B的关系是关联关系
依赖关系: 如果A类中某个方法的参数是用B类声明的对象或某个方法返回的数据类型是B类对象,那么A和B的关系是依赖关系
泛化(继承)关系:如果一个类是另一个类的子类,那么二者之间是泛化(继承)关系
实现关系:是指一个class实现interface接口
聚合关系:表示类的对象之间是整体和部分之间的关系
组合关系:表示类的对象之间整体拥有部分,部分与整体共存之间的关系。整体不存在,部分随之消失。
(4)交互图:可以用于对一个用例的事件流程进行建模,也可以单独使用,用于可视化、详述、构造和文档化一个特定对象群体的动态方面。交互图显示一个交互,由一组对象和它们之间的关系构成,其中包括:需要什么对象、对象相互发送什么消息、什么角色启动消息以及消息按什么顺序发送。
交互图分为两种:顺序图和协作图;顺序图强调消息发送的时间顺序,协作图则强调接收和发送消息的对象的组织结构。
(5)构件图:提供当前模型的物理视图,对系统的静态实现视图建模。构件图显示一个系统物理设计时,构件所映射的类和对象的配置。构件图主要包含以下几种内容:构件、接口、依赖关系以及构件包。
(6)部署图:对面向对象系统的物理方面建模,描述系统运行时节点、构件实例及其对象的配置。节点是各种计算资源的通用名称,包括处理器和设备两种类型,两者的区别是处理器能够执行程序的硬件构件(如计算机主机),而设备是一种不具备计算能力的硬件构件(如打印机)
软件开发过程与UML可视化建模
软件开发阶段 |
UML使用情况 |
可能用到的UML模型图及元素 |
开始阶段 |
建立业务模型(Business Use Case) |
业务用例、业务参与者、业务工人 |
确定用例模型(Use Case) |
参与者、用例、关系 |
|
细化阶段 |
细化用例 |
参与者、用例、关系 |
事件流程建模 |
顺序图、协作图、状态图 |
|
对系统静态结构和动态行为建模 |
类图、交互图、状态机图 |
|
确定系统构件 |
构件图、关系 |
|
构建阶段 |
正向工程产生框架代码 |
类图、交互图、状态机图、构件图 |
逆向工程更新模型 |
构件图 |
|
创建部署 |
部署图 |
|
交付阶段 |
交付使用,维护和升级模型 |
构件图、部署图 |
与传统方法中的数据设计所不同的是,面向对象设计中的数据设计并不是独立进行的,面向对象设计中的类图相当于数据的逻辑模型,可以很容易地转换成数据的物理模型。
MVC模式
即模型—视图—控制器(Model-View-Controller)模式,分别对应于内部数据、数据表示和输入/输出控制部分,把它们分开设计,其过程是:首先控制器接收用户的请求,并决定调用哪个模型处理;然后模型用业务逻辑来响应用户的请求并返回数据;最型后控制器用视图表示模型返回的数据呈现给用户。
模型侧重数据和功能,视图侧重数据显示,控制器侧重用户输入,其优点是把数据和业务规则分开表示。
1) 模型对象
模型对象是应用程序中用于处理应用程序数据逻辑的部分,模型对象的变化通过事件处理通知视图和控制器对象。
2) 视图对象
视图对象代表GUI对象,并且以用户需要的格式表示模型状态,是交互系统与外界的接口。视图对象可以包含子视图,子视图用于显示模型的不同部分。通常,每个视图对象对应一个控制器对象。
3) 控制器对象
控制器对象代表事件,处理用户的输入行为,给模型发送业务事件,将其解析为模型执行的动作,同时,模型的更新与修改经由控制器通知视图,实现各视图与模型一致。
MVVM模式
MVVM模式改进了MVC模式,更好分离视图和模型。
MVVM的组成结构。
a) 模型层(Model):指数据模型,或指代表内容的数据访问层,在前后端分离的架构中,可以理解为后端往前端传递的数据。
b) 视图层(View):指用户界面。
c) 视图模型层(ViewModel):该层主要负责Model层与View层的通信以及数据与视图的绑定。将数据封装并传递至视图层,将视图的行为与状态的变换传递到Model层。
MVVM与前后端分离开发。
课程案例采用前后端分离架构开发。在该架构中,后端对应MVVM模式中的Model层,围绕数据库系统进行业务逻辑的处理,封装数据(主要为JSON格式)并传输至前端。前端对应MVVM模式中的ViewModel层和View层。前端从后端获取的数据通过JavaScipt代码进行二次封装,以生成符合View层使用预期的视图数据模型,以网页形式展示。当视图发生变化时,前端根据与后端约定好的接口规则,通过JavaScipt代码向后端发起请求。MVVM模式降低了模块之间的耦合度,前后端分离架构提高了开发效率。
前后端分离的信息系统设计与实现(基于MVVM的设计模式)
- MVVM的组成结构。
- 模型层(Model):指数据模型,或指代表内容的数据访问层,在前后端分离的架构中,可以理解为后端往前端传递的数据。
- 视图层(View):指用户界面。
- 视图模型层(ViewModel):该层主要负责Model层与View层的通信以及数据与视图的绑定。将数据封装并传递至视图层,将视图的行为与状态的变换传递到Model层。
该模式能够实现高内聚低耦合
面向对象模型主要哪些模型组成?
1 对象模型 描述对象、类、层次和关系,静态结构,其作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,以及它们之间的联系。–对象模型包括类图
2 动态模型 其作用是描述系统的控制逻辑,主要涉及系统中各个类和对象的时序及变化情况。时序图等
3 功能模型描述系统的功能 表示方法:数据流图,用例图