您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 基于SA的UML4+1模型分析
基于SA基本特性与核心属性的UML4+1模型分析报告摘要:由于软件体系结构的描述方法多种多样.各种工具不仅涉及不同领域,而且描进方法不尽相同。给系统选择一种合适工具描述体系站构带来了难度。统一建模语言UML是一种被广泛采纳的可视化建模语言。它将系统结构的共同特征用相关语义、符号、图形加以描述。Kruchten提出了一个4+1视图模型,从5个不同的视角包括包括逻辑试图、进程视图、部署视图、开发视图、用例视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起反映系统的软件体系结构的全部内容。关键字:软件架构,UML,4+1模型,建模1、引言软件体系结构建模是工业化生产软件开发的基本工作。复杂的系统难以被人们完全理解,通过建立良好的模型,帮助我们掌握复杂的体系结构也为开发成功的软件系统打下基础。随着复杂系统的日益增加,好的建模技术也日益其重要性。在UML统一建模语言出现以前.没有一种占统治地位的建模语言。各种语言各有特色,用户必须选择几种类似的建模语言,以完成复杂的体系结构描述。大部分建模语言都有一些主要的、共同的概念,而在描述和表达方面却又有所不同.缺乏一种强大的具有扩展能力的建模语言,给使用者带来许多麻烦,不利于软件的推广和重用。”4+1’模型采用UML作为各视图的表达和解释环境,统一各部分的建模描述语言,有利于合作开发以及各层次、各环节开发人员之间的沟通,建立切合实际的模型,平衡软件质量与开发周期间的矛盾,加速软件开发和推广。2、UML4+1模型概述UML的“4+1视图”是指从某个角度观察系统构成的4+1个视图,每个视图都是系统描述的一个投影,说明了系统某个侧面的特征。其包含如下的几个视图:(1)用例视图(场景视图)(2)逻辑视图(3)开发视图(4)进程视图(5)部署视图(物理视图)对体系结构进行的描述是围绕着以上4个视图展开的。然后,通过选择出的一些用例对体系结构加以说明。这些用例被称作场景(scenarios),它们构成了第5个视图。实际上,体系结构在某种程度上是由场景演化而来的。3UML4+1视图中的逻辑视图的分析逻辑视图主要支持功能需求——系统应当向用户提供什么样的服务。从问题域出发,采用面向对象的方法,按照抽象、封装、继承的原则,进行分解,得到代表着系统的关键抽象表示的集合。这些抽象表示的具体形式就是对象和对象的类。通过类图和类模板来表示逻辑体系结构。类图显示了类的集合和它们的逻辑关系:关联(association)、组合(composition)、使用(usage)、继承(inheritance)等。类模板则着眼于每个类的个体,强调类的主要操作,并确定对象的关键特征。当十分需要定义一个对象的内部行为时,要使用状态转换图,或者是状态表。相关类的集合可以归到一起,称作类的种属(classcategory)。逻辑体系结构的符号表示法如下图所示4、UML与4+1视图中的进程视图的分析过程体系结构考虑的是一些非功能性的需求,诸如性能、可用性等。它所要面对的问题有并发,分布,系统的完整性,容错能力等。它还要考虑怎样把过程体系结构与逻辑视图体系结构的要点相适应——对某个对象的某个操作实际上是在哪个控制线程上发生的。进程视图的表示法如下图所示:5、UML与4+1视图中的开发视图的分析开发视图,关注的是在软件开发环境中软件模块的实际组织。软件被打包成可以由单个或少量程序员开发的各种小的部分:程序库或子系统。子系统被组织成层次化的体系,每一层为上一层提供一个严密的、明确定义的接口。系统的开发体系结构用模块图和子系统图来表示,在图中可以显示出“导入”和“导出”关系。完整的开发体系结构只有在软件系统的所有元素被识别出来之后才能被描述。控制开发体系结构的原则是:分割、编组、可视。开发体系结构主要考虑的是内部需求,这些需求目的是要使开发相关的活动更易于进行,如软件管理、软件复用、开发工具集所造成的约束、编程语言等。开发视图的表示法如下图所示:6、UML与4+1视图中的物理视图的分析物理体系结构主要考虑的是非功能性的系统需求,如系统的可用性、可靠性(容错性)、性能(信息吞吐量)和可扩展性。软件系统在计算机网络的各个处理节点上运行。各种被确定出的元素——网络、过程、任务和对象——需要映射到各种节点上去。将用到不同的物理配置。有些用于开发和测试,有些用于不同场所或不同用户。因此从软件到处理节点的映射需要高度灵活,并且最小限度地影响其本身的源代码。物理视图的表示法如下图所示:7、UML与4+1视图中的用例(场景)视图的分析通过使用一些重要场景,4个视图中的元素可以协调地共同工作。尽管这些场景是一个小集合,但是它们很重要。场景(scenario)是更通用的概念——用例(usecase)的实例。从某种意义上讲,场景是最重要的需求的抽象。场景(用例)视图是描述系统与外部其他系统以及用户之间交互的图形。换句话说,用例视图描述了谁将使用系统,用户希望以什么方式与系统交互。场景的设计使用对象场景图(objectscenariodlagram)和对象交互图来表示。相对于其他的4个视图,这个视图是多余出来的(所以称为“4十l”),但是它承担着两个目的:(1)其他4个体系结构设计中,将以此视图为驱动来发现体系结构元素。(2)在体系结构设计结束后,此视图承担验证和描述的角色。8、总结(1)体系结构的概念在每个视图里面都可以独立应用。这就是说,可以在每个视图里面定义体系结构的各种组成元素,如构件、连接件等。对于不同的视图,还可以选择不同的体系结构风格,因此在同一个系统结构中可以使用多种风格。此外,在每一种视图里,我们使用该视图特定的符号。这避免了符号用法和意义的混乱。“4十1”视图模型是一个十分通用的模型:可以便用其他的符号表示法,也可以使用其他的设计方法,尤其是逻辑视图和过程视图的分解。(2)基于UML4+1的软件架构的优势一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了于此方面无关的实体。软件架构的每个视图分别关注不同的方面,针对不同的目标和用途。“4十1”模型实际上使得有不同需求的人员能够得到他们对于软件体系结构想要了解的东西。系统工程师先从部署视图,然后从进程视图靠近体系结构。最终使用者、客户、数据专家从逻辑视图看体系结构;项目经理、软件配置人员从开发视图看体系结构。9、软件体系结构作用(1)规范软件开发的基本架构。体系结构一般说来与需求是密切相关的。越明确的规格设计出来的软件架构越清晰.需求的变更也是必须要考虑,有明确的变更趋势也可以更早的在设计中体现出来。今天几乎所有的软件开发都不可能从头做起,需要借鉴前人或组织中其他项目所拥有的经验。一个良好的软件体系结构可以给我们很多的帮助和参考。良好的体系结构可以规范软件开发过程,少走弯路,事半功倍。(2)便于开发人员与用户的沟通。软件的高度复杂也决定了软件开发需要充分的设计,研究体系结构,从宏观和更抽象的层次把握软件的开发,并把这整个过程付诸于文档的形式记录下来,在软件开发人员与系统设计人员、用户以及其他有关人员之间进行沟通交流,以达成共同的理解。如果有明确的需求和规格,那应该进行详细的结构设计,从用例,到类图,到关键部分的序列图,活动图等,越细越好.多多的交流,尽量让更多的人了解项目的需求与现实环境,为设计提出建议.结构设计注重体系的灵活性。(3)模块化、层次化设计,有利于减少返工,提高效率。在设计架构上要注意模块的划分,模块越独立越好.尽量把有明确需求的应用划分为独立的模块,模块与模块之间减少交集,一旦某个模块出现问题也不至于牵一发而动全身。层次化设计就是一层一层分割,一目了然的处理方式。层次体系结构利用分层的处理方式来处理复杂的的功能,层次系统由于是上层子系统使用下层子系统的功能,而下层子系统不能够使用上层子系统的功能,下层每个程序接口执行当前的一个简单的功能,而上层通过调用不同的下层子程序,并按不同的顺序来执行这些下层程序,有效的杜绝了不同层次之间不该有的交集,减少了错误的发生,也便于检错。参考文献:《软件体系结构形式化方法》
本文标题:基于SA的UML4+1模型分析
链接地址:https://www.777doc.com/doc-4271964 .html