应用4+1视图法及UML设计软件体系架构及设计模式实践
一 实验目的
通过对实际案例进行软件设计来掌握软件体系架构模式的选择应用以及典型4+1视图软件架构设计方法的应用,并能熟练掌握如何利用Rational Rose软件进行软件架构设计。
二 实验内容
(1) 根据“信用卡申请件处理外包业务处理平台设计”需求选定软件体系结
构模式
(2) 利用UML软件进行4+1视图架构设计,包括逻辑视图、开发视图、进程
视图、物理视图和场景视图。’ A
逻辑视图描述系统的功能需求,系统分解成一系列的功能抽象,采用时序图、协作图、类图等来表示; B
开发视图描述软件在开发环境下的静态组织。开发视图关注程序包,应用的统一框架,引用的类库、SDK和中间件,以及工程和包的划分规则等,规范、约束开发环境的结构; C
进程试图侧重系统的运行特性,关注非功能性的需求(性能,可用性)。服务于系统集成人员,方便后续性能测试。强调并发性、分布性、集成性、鲁棒性(容错)、可扩充性、吞吐量等。定义逻辑视图中的各个类的具体操作是在哪一个进程和线程中被执行,可以组件图为基础表示; D
物理试图主要描述硬件配置。服务于系统工程人员,解决系统的拓扑结构、系统安装、通信等问题。主要考虑如何把软件映射到硬件上,也要考虑系统性能、规模、可靠性等。可以与进程视图一起映射; E
.
场景用于刻画构件之间的相互关系,将四个视图有机地联系起来。
可以描述一个特定的视图内的构件关系,也可以描述不同视图间的构件关系。通常用Use Case图来描述。
(3) 设计模式的实践,从创建者模式、结构型模式和行为模式三大类模式进
行对象设计,每种类型的模式至少应用一种,并用应用了设计模式后的类设计修订逻辑视图中的类图。
三 SOA架构模式及流程分析(湛滨瑜) 3.1 SOA架构介绍
SOA是英文Service-Oriented Architecture,即面向服务架构的缩写。 面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。而另一方面,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。
对松耦合的系统的需要来源于业务应用程序需要根据业务的需要变得更加灵活,以适应不断变化的环境,比如经常改变的政策、业务级别、业务重点、合作伙伴关系、行业地位以及其他与业务有关的因素,这些因素甚至会影响业务的性质。我们称能够灵活地适应环境变化的业务为按需(On demand)业务,在按需业务中,一旦需要,就可以对完成或执行任务的方式进行必要的更改。
SOA三大基本特征
.
1、独立的功能实体
在Internet这样松散的使用环境中,任何访问请求都有可能出错,因此任何企图通过Internet进行控制的结构都会面临严重的稳定性问题。 SOA非常强调架构中提供服务的功能实体的完全独立自主的能力。传统的组件技术,如.NET Remoting,EJB,COM或者CORBA,都需要有一个宿主 (Host或者Server)来存放和管理这些功能实体;当这些宿主运行结束时这些组件的寿命也随之结束。这样当宿主本身或者其它功能部分出现问 题的时候,在该宿主上运行的其它应用服务就会受到影响。
SOA架构中非常强调实体自我管理和恢复能力。常见的用来进行自我恢复的技术,比如事务处理(Transaction),消息队列(Message Queue) ,冗余部署(Redundant Deployment)和集群系统(Cluster)在SOA中都起到至关重要的作用。
2、大数据量低频率访问
对于.NET Remoting,EJB或者XML-RPC这些传统的分布式计算模型而言,他们的服务提供都是通过函数调用的方式进行的,一个功能的完成 往往需要通过客户端和服务器来回很多次函数调用才能完成。在Intranet的环境下,这些调用给系统的响应速度和稳定性带来的影响都可以忽 略不计,但是在Internet环境下这些因素往往是决定整个系统是否能正常工作的一个关键决定因素。因此SOA系统推荐采用大数据量的方式一次 性进行信息交换。
3、基于文本的消息传递
由于Internet中大量异构系统的存在决定了SOA系统必须采用基于文本而非二进制的消息传递方式。在COM、CORBA这些传统的组件模型中, 从服务器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对象的方法来完成某些功能;但是在Internet环境下,不同语言, 不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于基于文本的消息本身是不包含任何处 理逻辑和数据类型的,因此服务间只传递文本,对数据的处理依赖于接收端的方式可以帮忙绕过兼容性这个的大泥坑。
.
软件设计模式实验报告



