4+1视图与UML对应关系

n 4+1视图模型概况     Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。如下图:  逻辑视图(Logic View     逻辑试图主要是用来描述系统的功能需求,即系统提供给最终用户的服务. 在逻辑视图中,系统分解成一系列的功能抽象、功能分解与功能分析,这些主要来自问题领域(Problem Definition)。 在面向对象技术中,通过抽象、封装、继承,可以用对象模型来代表逻辑视图,可以用类图(Class Diagram)来描述逻辑视图。如下图: 构件(Components):类、类服务、参数化类、类层次 连接件(Connectors):关联、包含聚集、使用、继承、实例化 开发视图(Development/Module View)     开发视图主要用来描述软件模块的组织与管理(通过程序库或子系统)。服务于软件编程人员, 方便后续的设计与实现。它通过系统输入输出关系的模型图和子系统图来描述。要考虑软件的内部需求:开发的难易程度、重用的可能性,通用性,局限性等等。开发视图的风格通常是层次结构,层次越低,通用性越好(底层库:Java SDK,图像处理软件包)。如下图: 构件:模块、子系统、层 连接件:参照相关性、模块/过程调用 n 进程视图   进程试图侧重系统的运行特性,关注非功能性的需求(性能,可用性)。服务于系统集成人员,方便后续性能测试。强调并发性、分布性、集成性、鲁棒性(容错)、可扩充性、吞吐量等。定义逻辑视图中的各个类的具体操作是在哪一个线程(Thread)中被执行。 如下图: 构件:进程、简化进程、循环进程 连接件:未指定,消息、远程过程调用(RPC)、双向消息、事件广播 物理视图       物理试图主要描述硬件配置。服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。可以与进程视图一起映射。如下图: 构件:处理器、计算机、其它设备 连接件:通信协议等  场景(Scenarios)       场景用于刻画构件之间的相互关系,将四个视图有机地联系起来。可以描述一个特定的视图内的构件关系,也可以描述不同视图间的构件关系。文本、图形表示皆可。 小结     逻辑视图、开发视图,都主要是用来描述系统的静态结构。 进程视图、物理视图,主要是用来描述系统的动态结构。 并非每个系统都必须把5个视图都画出来,而是各有侧重。例如MIS系统侧重于逻辑视图、开发视图,而实时控制系统则侧重于进程视图、物理视图

通常我们选择UML来表现各种视图,以下列出了UML和各视图的对应关系

4+1视图                                   UML

场景视图                            use case

逻辑视图                            类图

开发视图                            类图,组件图

进程视图                            无完全对应

部署视图                            部署图

在架构设计稳定中通常不会给出较多的用例描述,这些是在需求稳定中定义。但是往往架构文档会选择一些用例,列入文档中,这些用例和一些非功能性需求一起用以证明架构的有效和正确性。在逻辑视图中用例的实现是必不可少的一节,尽管架构设计更关注非功能性需求。

融入MDA的思想

对于逻辑视图和开发视图所应包含的内容常常会觉得很难区分两者间的明显界限。逻辑视图包含更多的分析模型与实现技术本身相关性应该较少,如业务对象模型及其扩展。而开发视图则会与实现技术紧密相关。

随着MDA思想的推广,在架构设计文档的撰写方面也产生了影响,我们不难把MDA的PIM和逻辑视图联系起来,而把MDA中的PSM和开发视图联系起来。

在编写逻辑视图是我们应该描述与技术平台无关的模型,而开发视图则描述与实现技术平台相关的模型。

如在逻辑视图中表现的某些实体类,我们会在开发视图中转换为EJB组件(实体Bean)。

这种做法不仅有利于我们编写架构设计文档,同时更是一种好的架构设计思考流程。

时间: 2024-12-08 06:22:27

4+1视图与UML对应关系的相关文章

<十三>UML核心视图静态视图之业务用例图

一:uml的核心视图 --->如果说UML是一门语言,上一章学习的参与者等元素是uml的基本词汇,那么视图就是语法.uml通过视图将基元素组织在一起,形成有意义的句子. --->uml可视化的特性是由各种视图来展现的,每一种视图都从不同的角度对同一个软件产品的方方面面进行展示.说明要开发的软件到底是一个什么样子. --->静态视图:一方面我们需要描述系统的结构性特征,结构决定这个系统能做什么.结构特性用静态视图来表达. --->动态视图:另一方面我们需要描述系统的运行时行为,这些行

<十五>UML核心视图动态视图之活动图

一:动态视图 --->动态视图是描述事物动态行为的. --->需要注意的是:动态视图不能够独立存在,它必需特指一个静态视图活uml元素,说明在静态视图规定的事物结构下它们的动态行为. --->动态视图:活动图,状态图,时序图,协作图 二:活动图 --->活动图描述了为了完成某一个目标需要做的活动以及这些活动的执行顺序. --->uml中有两个层面的活动图,一种用于描述用例场景,叫[用例活动图],另一种用于描述对象交互,叫[对象活动图]. --->在面向对象的眼中是没有业

项目管理理论与实践(4)——UML应用(上)

本篇文章介绍UML的相关知识.参考<UML从入门到精通> 一.UML综述 1. UML简介 统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述.可视化处理.构造和建立软件系统制品的文档.UML描述了一个系统的静态结构和动态行为. UML将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定功能的模型结构.静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系.动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制.从不同但相互联系的角度对系统建立的

UML视频总结

"RUP 4+1"视图 学习UML我们就必须先了解这"RUP 4+1"视图,它是架构设计的结构标准,如下图所示. 逻辑视图:用来揭示系统功能的内部设计和协作情况. 使用者主要是设计人员和开发人员. 逻辑视图体现了系统的功能需求. 实现视图:描述了开发环境中软件的静态组织结构,显示组建代码的方式,描述里模块之间的依赖关系. 使用者主要是软件编程人员,方便后续的设计与实现. 实现视图体现了系统的可扩展性.可移植性.可重用性.易用性以及易测试性. 进程视图:显示系统的并发

2Python全栈之路系列之Django路由与视图

Python全栈之路系列之Django路由与视图 路由说白了就是与视图(函数)的对应关系,怎么说呢,一个路由对应一个视图,比如上面文章中所提到的那样,当打开/users/路径的时候会让users这个函数来进行逻辑处理,把处理的结果再返回到前端. 那么django是怎么知道从哪里找路由的配置文件入口呢?其实这在settings.py文件中已经被定义了: ROOT_URLCONF = 'ansheng.urls' 路由的配置 绝对地址访问 # 访问地址必须是http://127.0.0.1:8000

UML初览(转)

原文:UML初览 本章使用一个简单的例子对UML中所使用的概念和视图进行初览.本章的目的是要将高层UML概念组织成一系列较小的视图和图表来可视化说明这些概念,说明如何用各种不同的概念来描述一个系统以及如何将各种视图组织在一起.概括性的说明不可能面面俱到,其中省略了许多概念.要想得到更详细的说明,可参见下一章对UML各视图的说明和本书大全部分的有关细节. 本章使用的例子是计算机管理的戏院售票系统.这是一个精心设计的例子,目的是用少量篇幅来强调说明UML的各个组件.这是一个经过有意简化的例子,忽略了

【UML】Java代码与UML模型相互转换方法

最近重温了几个设计模式,看到大家的博客里面都是Java代码+UML视图,UML表达整体框架,然后再秀出具体的代码,点面结合.一目了然.所以也研究了一下Java代码与UML模型相互转换方法. 一.常用的UML建模工具 三大建模工具可以参考:UML建模工具Visio .Rational Rose.PowerDesign的比较 三者都能非常好的支持UML的建模,由于和Eclipse或者IDEA等代码IDE集成不太方便或者不可行,所以没有深入研究 二.Java.UML建模与反向工具推荐 十二个开源UML

Django框架之---视图

视图 视图的功能 视图负责接受Web请求HttpRequest,进行逻辑处理,返回Web响应HttpResponse给请求者. 使用视图的过程 视图就是一个python函数,被定义在"应用/views.py"文件中. 使用视图时需要进行两方面操作,两个操作不分先后. 1)在"应用/views.py"中定义视图. 在booktest/views.py中定义视图函数index: def index(request): return HttpResponse("

19 01 19 视图 HttpReqeust对象 GET属性 POST属性 HttpResponse对象

---恢复内容开始--- URLconf 义,指定URL和视图函数的对应关系. 在应用内部创建urls.py文件,指定请求地址与视图的对应关系. url(正则,'视图函数名称') 1)如示例在booktest/urls.py中创建首页的url,代码如下 from django.conf.urls import url from booktest import views urlpatterns=[ url(r'^$',views.index), ] 2)如示例在booktest/views.py