软件架构风格整理及总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

博客地址:在整理中总结,在分享中进步目录1数据流风格...................................................................................................................31.1批处理序列............................................................................................................31.2管道/过滤器........................................................................................................32调用/返回...................................................................................................................42.1主程序/子程序....................................................................................................42.2面向对象风格........................................................................................................42.3层次结构...............................................................................................................53独立构件风格...............................................................................................................53.1进程通讯...............................................................................................................53.2事件系统...............................................................................................................54虚拟机风格...................................................................................................................64.1解释器...................................................................................................................64.2基于规则的系统....................................................................................................65仓库风格......................................................................................................................65.1数据库系统............................................................................................................65.2超文本系统............................................................................................................75.3黑板系统...............................................................................................................76复制风格......................................................................................................................76.1复制仓库(ReplicatedRepository,RR)..............................................................76.2缓存(Cache)......................................................................................................87其它风格......................................................................................................................87.1CS结构..................................................................................................................87.2CS三层架构...........................................................................................................97.3浏览器/服务器风格.............................................................................................127.4C/S与B/S混合软件体系结构.............................................................................137.5面向Agent软件体系结构..................................................................................147.6ProcessControl(Loop).....................................................................................157.7HeterogeneousArchitecture(异构).......................................................................16博客地址:在整理中总结,在分享中进步7.8特定领域软件体系结构.......................................................................................167.9正交软件体系结构..............................................................................................17博客地址:在整理中总结,在分享中进步1数据流风格1.1批处理序列批处理风格的每一步处理都是独立的.并且每一步是顺序执行的.只有当前一步处理完后.后一步处理才能开始.数据传送在步与步之间作为一个整体.(组件为一系列固定顺序的计算单元,组件间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始,数据必须是完整的,以整体的方式传递)批处理的典型应用:经典数据处理;程序开发;Windows下的BAT程序就是这种应用的典型实例。批处理风格与管道过滤器风格比较:共同点:把任务分成一系列固定顺序的计算单元(组件).组件间只通过数据传递交互。区别:批处理是全部的、高潜伏性的,输入时可随机存取,无合作性、无交互性.而管道过滤器是递增的,数据结果延迟小,输入时处理局部化,有反馈、可交互。1.2管道/过滤器每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,包括通过计算和增加信息丰富数据,通过浓缩和删除精炼数据,通过改变记录方式转化数据,递增地转化数据等。在输入被完全消费之前,输出便产生了。这里构件被称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入优点:1)使得软构件具有良好的隐蔽性和高内聚.低耦合的特点允许设计者将一个系统的整体输入/输出行为理解为各个独立过滤器行为的简单合成2)支持软件重用。只要提供适合在两个过滤器之间传送的数据.任何两个过滤器都可被连接起来;3)系统维护和性能增强简单:新的过滤器可以添加到现有系统中,或者利用改进的过滤器替换老的过滤器;4)支持并行执行:每个过滤器是作为一个单独的任务完成.因此可与其他任务并行5)方便系统分析:例如,吞吐量、死锁等缺点:1)通过长的管道时会导致延迟的增加2)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据.但它们是独立的.所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。博客地址:在整理中总结,在分享中进步3)不适合处理交互的应用。当需要增量地显示改变时.这个问题尤为严重。4)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作.这样就导致了系统性能下降.并增加了编写过滤器的复杂性。5)在维护或响应两个分离但相关的数据流时,利用管道/过滤器方式不易。典型的管道/过滤器风格有:UNIX下的Shell编程。UNIX既提供一种符号以连接各组成部分(进程),又提供某种进程运行时机制以实现管道。另一个例子:传统的编译器。传统的编译器中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。MapReduce也包含该风格。2调用/返回2.1主程序/子程序单线程控制,把问题划分为若干处理步骤,构件即为主程序和子程序。子程序通常可合成为模块。过程调用作为交互机制,即充当连接件。调用关系具有层次性,其语义逻辑表现为子程序的正确性,取决于它调用的子程序的正确性。这种程序风格也比较多,比如早期的结构化程序.2.2面向对象风格数据抽象和面向对象架构风格。这种风格的构件是对象。对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的相应操作被封装起来。对象的行为体现在其接受和请求的动作。连接件即对象间交互的方式,对象是通过函数和过程的调用来交

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功