《软件构架风格在技术设计中的应用》-公开DOC·毕业论文

上传人:zhuma****mei1 文档编号:134640362 上传时间:2020-06-07 格式:DOC 页数:25 大小:96.50KB
返回 下载 相关 举报
《软件构架风格在技术设计中的应用》-公开DOC·毕业论文_第1页
第1页 / 共25页
《软件构架风格在技术设计中的应用》-公开DOC·毕业论文_第2页
第2页 / 共25页
《软件构架风格在技术设计中的应用》-公开DOC·毕业论文_第3页
第3页 / 共25页
《软件构架风格在技术设计中的应用》-公开DOC·毕业论文_第4页
第4页 / 共25页
《软件构架风格在技术设计中的应用》-公开DOC·毕业论文_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《《软件构架风格在技术设计中的应用》-公开DOC·毕业论文》由会员分享,可在线阅读,更多相关《《软件构架风格在技术设计中的应用》-公开DOC·毕业论文(25页珍藏版)》请在金锄头文库上搜索。

1、ISAS项目文档软件构架风格在技术设计中的应用目录软件构架风格在技术设计中的应用3摘要:3关键词:31.数据流风格31.1 管道和过滤器41.2 统一管道和过滤器51.3应用72调用返回风格82.1什么是调用返回风格82.2数据抽象和面向对象的风格特点92.2.1数据抽象和面向对象的风格的优点92.2.2数据抽象和面向对象的风格的不足102.3分层式结构风格102.3.1分层式结构风格优点112.3.2分层式结构风格的不足112.4应用123独立组件风格123.1独立组件风格的优点133.2独立组件风格的不足143.3 独立组件风格的应用C/S架构144.虚拟机风格154.1虚拟机是什么164

2、.2虚拟机的应用174.3虚拟机的特征184.4虚拟机的优点204.5虚拟机的缺点205仓库风格和黑板风格205.1仓库风格和黑板风格的概述205.1.1仓库风格和黑板风格的例子205.2黑板体系结构模型的构成215.2.1知识源215.2.2黑板数据结构225.2.3控制器225.3黑板风格体系结构的特点225.3.1板风格体系结构的优点225.3.2黑板风格的体系结构缺点235.4仓库风格和黑板风格示例和应用235.4.1数据库系统235.4.2黑板风格应用24总结24参考文献:25软件构架风格在技术设计中的应用摘要:最初的软件体系结构是Mainframe结构客户、数据和程序都被集中在主机

3、上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Internet的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。软件体系结构能够帮助人们开发出更优秀的软件。通过总结不同软件体系结构的风格。我们能够更好地认识并使用软件体系结构。有利于提高软件工程活动的质量与效率。关键词:软件构架 数据流 批处理序列 调用返回 独立构件 解释器 黑板系统1.数据流风格1.

4、1 管道和过滤器在管道/过滤器风格的软件体系结构中,每个组件都有一组输入和输出,组件读取输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的组件被称为过滤器,这种风格的连接器就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。编译器系统就具备典型的管道系统风格的体系结构。在该系统中,一个阶段(包括词法分析、语

5、法分析、语义分析和代码生成)的输出是另一个阶段的输入。管道/过滤器风格的软件体系结构具有许多很好的特点:使得软组件具有良好的隐蔽性和高内聚、低耦合的特点。允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。支持软件复用。系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来。旧的可以被改进的过滤器替换掉。允许对一些如吞吐量、死锁等属性的分析。支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。这比下面将要阐述的一种“主-子程序风格”的单线程操作要灵活得多。管道/过滤器风格的软件体系结构的弱点是:通常导致进程成为批处理的结构。这是因为虽然过滤器可增

6、量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。1.2 统一管道和过滤器在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出

7、传到另一过滤器的输入。此风格特别重要的过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。图1是管道/过滤器风格的示意图。一个典型的管道/过滤器体系结构的例子是以Unixshell编写的程序。Unix既提供一种符号,以连接各组成部分(Unix的进程),又提供某种进程运行时机制以实现管道。另一个著名的例子是传统的编译器。传统的编译器一直被认为是一种管道系统,在该系统中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的。图1管道/过滤器风格的体系结构管道/过滤

8、器风格的软件体系结构具有许多很好的特点:使得软构件具有良好的隐蔽性和高内聚、低耦合的特点。允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。支持软件重用。重要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来。系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来。旧的可以被改进的过滤器替换掉。允许对一些如吞吐量、死锁等属性的分析。支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。但是,这样的系统也存在着若干不利因素。通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看

9、成一个完整的从输入到输出的转换。不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。1.3应用复用是解决“软件危机”的重要手段之一,也是软件技术发展的目的之一。随着软件系统规模和复杂度的日益升级,人们逐渐意识到,系统总体结构的设计和规范说明比算法和数据结构重要的多,并认为软件构架复用的研究会成为提高软件复用度的最有希望的途径。在分析了软件构架复用的国内外形势,结合我国的软件复用特别是构架复用的现状,提出了一个可复用的软件构架。 使用现在JAVA中经典的MVC

10、设计模式或MVC构架,把业务层代码和HTML代码彻底分开,通过把代码完全分成模型、视图和控制器三层来简化用户界面的开发进程,多个视图能共享一个模型,控制器提高了应用程序的灵活性和可配置性。 为达到表现层进一步的复用和减少多余代码的目标,选取了装饰器设计模式、组合设计模式、结合设计模式和SiteMesh相互组合的方式,让表现层中的HTML和JAVA代码尽可能的分离。在客户端的验证方面,彻底的抛弃脚本语言,使用过滤器模式,利用Validator进行验证,一方面减少了脚本语言的重复,另一方面增加了系统的安全性。 在Web构架的选取过程中,放弃了比较成熟的Struts,选取了最新推出的Webwork,

11、Webwork的主要优点比Struts技术灵活、容易延伸,从Web层中解耦,很容易被复用。 在业务层中使用Hibernate和Spring结合的方式。Hibernate和Spring分离了数据接口对象通常的事务管理数据访问和事务处理,使事务性业务对象不与任何特殊的数据访问或者事务策略绑在一起,从而不影响业务对象的可复用性,用Spring使Hibernate更容易使用并提供声明性事务支持。 由此产生的系统架构分层清晰、耦合低、复用率高,不仅满足一般的代码复用,而且更重要的是能够满足系统的架构复用。 2调用返回风格2.1什么是调用返回风格这是一种相对更为常用的风格,在这种风格之中,程序之间不再像“

12、过滤器”那样“必须是独立的实体”而是有了更为丰富的相互联系,此种情况分很多种具体实际应用中的类型,比如子程序调用,面向对象结构化设计,以及分层式系统结构等。这些风格有一个共同的特点,也就是存在着一个类似与软件体系结构之对于软件开发的关系的一种迭代关系,也即是说,我理解的这种风格,实际上是一种在软件体系结构中套用软件体系结构的结构的过程。比如我们对于主/子程序调用,在环境中,子程序是一段段独立存在的,负责承担相应功能模块功能的个体,而事实上,主程序并不能(指广泛意义上讲)实现其所需要的功能,或者需要重复冗余代码来实现,在此时,采用子程序的调用会给这种情况带来比较好的解决方法,对于一个程序来说,特

13、别是当该程序是由相对独立的功能模块组成的时候,更特别是在这种功能模块的调用成为了一种长期的,多次的情况的时候,采用将模块设计成子程序由主程序视情况而进行调用,是一种很好的解决办法。在面向对象的设计中更是如此,最明显的例子就是抽象数据类型的提出,对于抽象数据类型(A.D.T.)这种描述方式来说,更可以将此种方式作为一种对于软件体系结构的深层套用。而分层系统中,按照功能模块所处的功能层次,进行分解,并由高级调用低级,最终形成金字塔形的整体结构,这样的环境其实在现实的程序环境中是很常见的。对比与我们现存的语言环境的分层结构,也即是说,高级语言对低级语言的透明调用,也即是这种情况的广义示例,只不过在现

14、实的应用中,我们更多的是在统计的语言环境中,对于所需开发的软件进行功能应用上的分层,而不再注重语言环境上的层次关系。2.2数据抽象和面向对象的风格特点抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,“数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中”。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。2.2.1数据抽象和面向对象的风格的优点其可以改变一个对象的表示,而不影响其它的对象,因为对象对其它对象隐藏其表示,这可

15、以使对象更独立,对象的更新更安全。设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合,而不必一切都堆放在一起,提高了进程效率。2.2.2数据抽象和面向对象的风格的不足为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象,造成了在结构修改上的复杂度。“必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用”也就是说,同时调用一个对象的两者,并不能保证他们对这个对象的操作会不会带来同步上的问题以及相互的影响。2.3分层式结构风格层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了“虚拟机”(在另一些层次系统中层是部分不透明的,这将在下面进行讨论)。连接件通过决定层间如何交互的“协议”来定义,“拓扑约束包括对相邻层间交互的约束,这种风格支持基于可增加抽象层的设计”。这样,允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。层次系统最广泛的应用是分层通信协议。在这一应用领域中,“每一层提供一个抽象的功能,作为上层通信的基础”,这其实也是上述数据抽象和面

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号