当前位置:文档之家› 软件体系结构的风格和设计模式等

软件体系结构的风格和设计模式等

1.软件体系结构的性质、研究意义和目标是什么?
性质:计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。

强调整体与部分,部分与部分的关系;研究系统构成的方法学;提倡多角度研究系统。

为什么研究软件体系结构?
软件系统要满足一定的需求(功能和质量)。

随着软件系统的日益复杂,公众对软件的要求已不局限于功能上的满足,而是更加注重质量。

软件的质量受到软件体系结构的限制,或者说体系结构的选择受到要达到的质量特征的影响。

软件体系结构是软件系统的高层结构,高度抽象,超越算法和数据结构,试图在软件需求与软件设计之间架起一座桥梁,解决结构和需求向实现平坦过渡。

现在软件产生的问题:
◎软件成本日益增长
◎开发进度难以控制
在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。

◎软件质量差
缺乏工程化思想的指导,程序员以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的“一厢情愿”而已。

◎软件维护困难
特别是在软件使用过程中,原来的开发人员可能因各种原因已经离开原来的开发组织,使得软件几乎不可维护
2. 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。

体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。

管道-过滤器风格:缺乏交互性,常用于通信领域和编译器
事件驱动风格:易于完成并发多任务,具有良好的交互性,但对计算机系统的控制能力弱,很难共享数据。

分层风格:系统分成许多层,每层为上层服务,同时获取下层的服务。

典型应用是网络协议。

仓库风格:数据单元被共享。

常用于专家系统,如自然语言理解和模式识别。

3.3 客户/服务器风格
C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。

C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。

服务器
(1)数据库安全性的要求;
(2)数据库访问并发性的控制;
(3)全局数据完整性规则;
(4)数据库的备份与恢复。

客户应用程序
(1)提供用户与数据库交互的界面;
(2)向数据库服务器提交用户请求并接收来自数据库服务器的信息;
(3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。

◎网络通信软件的主要作用是完成数据库服务器和客户应用程序之间的数据传输。

C/S体系结构将应用一分为二,服务器负责(后台)数据管理,客户机(前台)完成与用户的交互任务。

这是一种胖客户机瘦服务器的体系结构。

优点:
◎C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。

◎系统的客户应用程序和服务器构件分别运行在不同的计算机上,对硬件和软件的变化显示出极大的适应性和灵活性,易于对系统进行扩充和缩小。

◎在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理。

传统的二层C/S结构存在的局限:
◎二层C/S结构是单一服务器且以局域网为中心的,难以扩展至大型企业广域网或Internet。

◎软、硬件组合和集成能力有限。

◎客户机负载太重。

◎数据安全性不好。

因为客户端程序可以直接访问数据库服务器,使数据库的安全性受到威胁。

三层C/S结构:增加一个应用服务器, 将应用逻辑驻留在应用服务器上,而表示层存在于客户机上,这种结构称为“瘦客户机”。

中间件:在三层C/S系统结构中,中间件是最重要的构件。

所谓中间件是一个用API定义的软件层,是具有强大通信能力和良好的可扩展性的分布式软件管理构架。

功能是在客户机和服务器或者服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。

优点:
◎允许合理地划分三层结构的功能,逻辑上保持相对独立性,提高系统的可维护性和可扩
展性。

◎允许更灵活有效地选用相应的平台和硬件系统,平台和各个组成部分具有良好的可升级性和开放性。

◎各层可选择各自最适合的语言并行开发。

◎利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层非法访问数据层,为严格的安全管理奠定基础。

3.5 浏览器/服务器风格
◎浏览器/服务器(B/S)风格就是三层应用结构的一种实现方式,其具体结构为:浏览器/Web 服务器/数据库服务器。

◎B/S体系结构利用不断成熟的WWW浏览器技术,用通用浏览器实现了原来需要复杂专用软件才能实现的强大功能,节约开发成本。

优点
◎系统安装、修改和维护全在服务器端解决。

用户在使用系统时,仅需一个浏览器就可运行全部模块,达到了“零客户端”。

◎B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的开放性基础。

缺点
◎B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。

◎B/S体系结构的系统扩展能力差,安全性难以控制。

◎采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。

◎B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用
B/S与C/S混合软件体系结构
◎B/S与C/S混合是一种典型的异构体系结构。

◎传统的C/S体系结构并非一无是处,而新兴的B/S结构也并非十全十美。

C/S结构和B/S 结构还将长期共存。

◇优点和缺点
◎优点是外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。

企业内部用户交互性较强,数据查询和修改的响应速度较快。

◎缺点是企业外部用户修改和维护数据时,速度较慢,比较烦琐,数据的动态交互性不强。

3设计模式的组成
四要素
模式名称(pattern name)
助记名,用一两个词描述模式的问题、解决方案和效果。

问题(problem)
描述应该在何时使用该模式。

有时候,问题部分会包括使用模式必须满足的一系列先决条件。

解决方案(solution)
描述设计的组成成分,它们之间的相互关系及各自的职责和协作方式。

模式像一个模板,可应用于多种不同场合。

解决方案并不描述一个特定而具体的设计,而是提供设计问题的抽象描述,用具有一般意义的元素组合来解决这个问题。

效果(consequences)
描述模式应用的效果及使用模式应权衡的问题
移植性。

设计模式比框架更容易移植:框架一旦设计成形,以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。

框架是软件,而设计模式是软件的知识体,提升框架的设计水平。

模式,Pattern
应用领域。

框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。

内容。

设计模式仅是一个单纯的设计,可被不同语言以不用方式来实现;而框架则是一种或多种设计模式和代码的混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。

创建性模式(5种), 处理的是对象的创建过程
结构性模式(7种),处理的是对象/类的组合
行为性模式(13种),处理的是类和对象间的交互方式和任务分布
Factory Method(工厂模式)
Abstract Factory(抽象工厂模式)
Builder(建造模式)
Prototype(原型模式)
Singleton(单例模式)
Adapter (适配器模式)
Bridge(桥接模式)
Composite (组合模式)
Decorator (装饰模式)
Facade(门面模式)
Flyweight (享元模式)
Proxy(代理模式)。

相关主题