- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】_软件体系结构
软件体系结构;模式分类;惯用法;设计模式;基本概念; Dewayne Perry和A1exander Wo1f曾这样定义:“软件
体系结构是具有一定形式的结构化元素,即构件的集合,包
括处理构件、数据构件和连接构件。处理构件负责对数据进
行加工,数据构件是被加工的信息,连接构件把体系结构的
不同部分组合连接起来。”
;基本概念; 体系结构的重要作用体现在以下三个方面 :
(1)体系结构的表示有助于风险承担者(项目干系
人)进行交流。
(2)体系结构突出了早期设计决策。
(3)软件体系结构是可传递和可复用的模型。
;体系结构风格;体系结构风格;当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。
管道/过滤器、批处理序列都属于数据流风格。
管道/过滤器结构如下图所示:; 从上图可看出,管道/过滤器结构拥有一组被称为过滤器(filter)的构件,这些构件通过管道(pipe)连接,管道将数据从一个构件传送到下一个构件。
每个过滤器独立于其上游和下游的构件而工作,过滤器的设计要针对某种形式的数据输入,并且产生某种特定形式的数据输出。
如果数据流退化成为单线的变换,则称为批处理序列(batch sequential)。这种结构接收一批数据,然后应用一系列连续的构件(过滤器)变换它。
;管道/过滤器风格具有以下优点:
(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特
点。
(2)允许设计者将整个系统的输入/输出行为看成是多个过
滤器的行为的简单合成。
(3)支持软件复用。只要提供适合在两个过滤器之间传送
的数据,任何两个过滤器都可被连接起来。
(4)系统维护和增强系统性能简单。新的过滤器可以添加
到现有系统中来;旧的可以被改进的过滤器替换掉。
(5)允许对一些如吞吐量、死锁等属性的分析。
(6)支持并行执行。每个过滤器是作为一个单独的任务完
成,因此可与其他任务并行执行。;管道/过滤器风格主要缺点如下:
(1)通常导致进程成为批处理的结构。这是因为虽然过滤
器可增量式地处理数据,但它们是独立的,所以设计者必须
将每个过滤器看成一个完整的从输入到输出的转换。
(2)不适合处理交互 的应用。当需要增量地显示改变时,
这个问题尤为严重。
(3)因为在数据传输上没有通用的标准,每个过滤器都增
加了解析和合成数据的工作,这样就导致了系统性能下降,
并增加了编写过滤器的复杂性。;在此类体系结构中,存在以下3种子风格。
? 主程序/子程序体系结构(C语言?)
这种传统的程序结构将功能分解为一个控制层次,其
中“主”程序调用一组程序构件,这些程序构件又去调用别
的程序构件,如下图所示。这种结构总体上为树状结
构,可以在底层存在公共模块。
;主程序/子程序体系结构的优点如下:
(1)可以使用自顶向下,逐步分解的方法得到体系结构
图,典型的拓扑结构为树状结构。基于定义—使用关系对子
程序进行分解,使用过程调用作为程序之间的交互机制。
(2)采用程序设计语言支持的单线程控制。
其主要缺点如下:
(1)子程序的正确性难于判断。需要运用层次推理来判断
子程序的正确性,因为子程序的正确性取决于它调用的子程
序的正确性。
(2)子系统的结构不清晰。通常可以将多个子程序合成为
模块。;? 面向对象的调用——返回风格
系统的构件(类/对象)封装了数据和必须应用到该数据上的操
作,构件间通过消息传递进行通信与合作。与主程序/子程
序的体系结构相比,面向对象风格中的对象交互会复杂一
些。面向对象风格与网络应用的需求在分布性、自治性、
协作性、演化性等方面具有内在的一致性。
面向对象风格具有以下优点:
(1)因为对象对其他对象隐藏它的表示,所以可以改变一
个对象的表示,而不影响其他对象。
(2)设计者可将一些数据存取操作的问题分解成一些交互
的代理程序的集合。;其缺点如下:
(1)为了使一个对象和另一个对象通过过程调用等进行
交互,必须知道对象的标识。只要一个对象的标识
改变了,就必须修改所有其他明确调用它的对象。
(2)必须修改所有显式调用它的其他对象,并消除由此
带来的一些副作用。例如,如果A使用了对象B,C
也使用了对象B,那么,C对B的使用所造成的对A
的影响可能是料想不到的。 ;? 层次结构
层次结构的基本结构如下图所示。在这种体系结构中,整
个系统被组织成一个分层结构,每一层为上层提供服务,并
作为下一层的客户。; 这种风格支持基于可
您可能关注的文档
- 【2017年整理】[中建]建筑工程安全文明施工标准化手册(附图丰富).ppt
- 【2017年整理】[建科]预算编制报告.doc
- 【2017年整理】[广东]外用施工电梯施工方案(施工升降机双笼scd200200td有计算)_secret.doc
- 【2017年整理】[诊断学]临床常用生物化学检测.ppt
- 【2017年整理】[生理学]呼吸.ppt
- 【2017年整理】_9实验:验证机械能守恒定律.ppt
- 【2017年整理】[PPT]桥梁工程标准化施工工艺及质量控制(图文并茂)_ppt.ppt
- 【2017年整理】_从电影片名看翻译中的归化和异化.pdf.doc
- 【2017年整理】_学生用书-(WDM原理).doc
- 【2017年整理】_材料力学试题及答案.doc
文档评论(0)