您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 软件体系结构及软件设计模式概述
第三章软件体系结构及软件设计模式概述本章主要内容软件体系结构概述典型软件体系结构分析MVC框架模式介绍软件设计模式概述软件体系结构概念作用软件体系结构风格常见的体系结构风格数据流风格:批处理序列;管道/过滤器调用/返回风格:主程序/子程序;面向对象风格;层次结构独立构件风格:进程通讯;事件系统虚拟机风格:解释器;基于规则的系统仓库风格:数据库系统;超文本系统;黑板系统管道和过滤器过滤器管道仓库系统及知识库黑板(共享数据)知识源知识源知识源知识源计算内存直接存取浏览器/服务器风格数据库服务器数据库客户端浏览器客户端浏览器Web服务器层次体系结构层次风格特点每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层适当时候(必不得已的时候),可以允许一定的越层操作大的问题分解为若干个渐进的小问题,逐步解决,隐藏了很多复杂度修改一层,最多影响两层,而通常只能影响上层。接口稳固,则谁都不影响层次风格特点上层必须知道下层的身份,不能调整层次之间的顺序存在的问题:并不是每个系统都可以很容易地划分为层次的模式性能与抽象的程度相关,但是很难找到一个合适的、正确的层次抽象方法三层体系结构三层体系结构CS三层体系结构特点:服务器和客户可以完全异构,只要遵从统一的网络协议客户必须知道服务器的地址客户之间的信息传递要经过服务器中转可以扩展出客户之间的直接通信机制三层体系结构BS三层体系结构特点:使用标准http/https协议,一致性好必须由客户主动连接服务器客户端有http浏览器即可为增强功能,往往还需要安装flash、jvm及一些专用插件服务器的负荷大,客户机的资源浪费三层体系结构CS/BS混合结构综合了两者的优点缺点?体系结构设计思想分层分解风格几个术语架构、框架、模式是一种从大到小的关系,也是一种组合关系架构一般是描述系统各个部分的骨架,要求是稳定的、容变的框架比较小,很多表现为中间件,框架一般是从技术上的横切面去解决实际应用问题模式则更小了,越小越灵活,可重用的范围更广几个术语构件是可复用的软件组成成份,可被用来构造其他软件组件是封装好的对象,如控件等中间件是基于分布式处理的软件,是一种独立的系统软件或服务程序一个架构有可能应用了多个框架,而一个框架可能使用了多个模式MVC框架模式概念作用典型的MVC模式MVC框架模式最早由TrygveReenskaug提出的用于SmallTalk的MVC模式MVC框架模式常用于Web框架和GUI框架的MVC模式MVC框架模式GUI框架的MVC模式MVC框架模式基于UI扩展的MVC模式MVC框架模式泛UI层UI-MVC模式软件体系结构设计总结体系结构设计主要是从较高的抽象层次来对软件系统进行设计体系结构设计强调系统如何分解、分层,各模块间的关系以及模块间如何相互作用没有一种完全通用的体系结构风格,不同体系结构风格会对整个系统的质量产生不同影响软件设计模式设计模式:描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案设计模式捕获了随时间进化与发展的问题的求解方法,而这些都来自软件开发者为了设计出灵活可复用的软件而长时间进行的艰苦努力。设计模式捕获了这些解决方案,并用简洁易用的方式表达出来。软件设计模式设计模式并不要求使用独特的语言特性,也不需要特殊的编程技巧和算法,所有的模式均可以用标准的面向对象语言实现有时设计模式的解法需要多费一些功夫,但是为了增加软件的灵活性和可复用性,多做些工作是值得的软件设计模式一旦你理解了设计模式并且有了一种“Aha!”(而不是“Huh?”)的应用经验和体验后,你将用一种非同寻常的方式思考面向对象设计你将拥有一种深刻的洞察力,可以帮助你设计出更加灵活的、模块化的、可复用的和易理解的软件—这也是面向对象技术的最大优势所在软件设计模式所有结构良好的面向对象软件体系结构中都包含了许多模式。模式在构造复杂系统时的重要性早已在多个领域中被认可设计模式为开发人员提供了一种学习和使用专家设计经验的有效途径。它能使所生成的系统体系结构更加精巧、简洁和易于理解软件设计模式分类基本模式创建模式集合模式结构模式行为模式并发模式基本模式接口、抽象父类私有方法存取器方法常量数据管理器不便对象管程创建模式工厂方法抽象工厂单例原型构造者集合模式合成迭代子享元访问者结构模式装饰器适配器责任链外观代理桥接对象缓存器行为模式命令调停者备忘录观察者解释器模板方法策略并发模式临界区协同锁安全挂起读写锁设计模式学习建议有一些提示和鼓励:第一次阅读此书时你可能不会完全理解它,但不必着急,我们在起初编写这本书时也没有完全理解它们!请记住,这不是一本读完一遍就可以束之高阁的书。我们希望你在软件设计过程中反复参阅此书,以获取设计灵感。作业从图书馆、网络上查找和学习更多软件体系结构和设计模式的内容。按照今天所讲的设计方法,重新设计你以前课程设计做过的软件系统。
本文标题:软件体系结构及软件设计模式概述
链接地址:https://www.777doc.com/doc-3373650 .html