欢迎来到天天文库
浏览记录
ID:43915953
大小:2.43 MB
页数:77页
时间:2019-10-16
《Chap7-软件体系结构风格与设计模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章:软件体系结构风格与设计模式董威,文艳军,陈振邦国防科技大学计算机学院《软件设计与体系结构》内容7.1基本概念7.2软件体系结构描述语言7.3软件体系结构风格7.4设计模式2基本概念软件设计模式:广义定义:可解决一类软件问题并能重复使用的软件设计方案狭义定义:设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。是在类和对象的层次描述的可重复使用的软件设计问题解决方案。3基本概念软件体系结构风格:是在构件和连接子的层次所描述的可重复使用的软件设计问题解决方案。4内容1.1基本概念1.2软件体系结构描述语言1.3软件体系结构风格1.4设计模式5软件体系结
2、构描述语言软件体系结构描述语言ArchitecturalDescriptionLanguage,简称ADL是用来描述软件密集型系统的总体结构的语言代表性的体系结构描述语言WrightRapideDarwinUniconACMEABC/ADLXYZ/ADLXADL6软件体系结构描述语言WrightADL构件(Component)连接子(Connector)端口(Ports)构件规范(Component-spec)计算(Computation)配置(Configuration)角色(Roles)粘连(Glue)实例(Instances)联接(Attachments)78软件体系结构
3、描述语言一个图形化的体系结构描述语言GADL9软件体系结构描述语言一个图形化的体系结构描述语言GADL例子10软件体系结构描述语言一个图形化的体系结构描述语言GADL例子11软件体系结构描述语言一个图形化的体系结构描述语言GADL例子12软件体系结构描述语言一个图形化的体系结构描述语言GADL例子13内容1.1基本概念1.2软件体系结构描述语言1.3软件体系结构风格1.4设计模式14软件体系结构风格管道/过滤器风格层次风格客户/服务器风格15(1)管道/过滤器风格实例剖析:shell命令:“cata.txt
4、wc-w
5、lpr”16(1)管道/过滤器风格实例剖析:shell命令:
6、“cata.txt
7、wc-w
8、lpr”17(1)管道/过滤器风格实例剖析:shell命令:“cata.txt
9、wc-w
10、lpr”18(1)管道/过滤器风格实例剖析:shell命令:“cata.txt
11、wc-w
12、lpr”19(1)管道/过滤器风格实例剖析:“cata.txt
13、grep-osoft
14、wc-w
15、lpr”20(1)管道/过滤器风格特征:系统中构件之间通过数据流松散耦合。也就是说,构件之间的依赖仅仅是数据流,而不是通常的接口函数调用或消息传递。其他典型应用:编译器、信号处理等。其他说明:本模式在实现上可以有许多不同的变化,如主动与被动、多出口管道等。21(2)层次风格实例
16、剖析:数据库系统22(2)层次风格特征:从向外提供服务的构件出发,沿着连接关系递次搜索各构件和连接子,如果形成的拓扑结构是一个有向无圈图(典型情况下是一个线性结构),那么这个系统的体系结构风格就是层次式的。这种设计风格便于将复杂的系统进行分解;同时也便于构件替换:只要保持接口一致,就可以将某一层的软件替换掉,而不会影响到系统的其他部分。23(2)层次风格其他典型应用:开放系统互联(OSI)七层网络模型、WindowsNT操作系统的内核结构。2425(2)层次风格其他说明:优点是结构清晰、可替换性好、便于控制复杂性;但也有它的缺点,如效率低:分层结构中高层的数据要经过层层传递和转
17、发,从而降低系统效率。26(3)客户/服务器风格实例剖析:FTP系统27(3)客户/服务器风格特征:从向外提供服务的构件出发,沿着连接关系递次搜索各构件和连接子,如果形成的拓扑结构是一棵倒置的树,那么这个系统的体系结构就是客户/服务器风格的。这种风格使得服务功能的实现很集中,便于系统实现,因而得到广泛使用。28(3)客户/服务器风格其他典型应用:电子邮件系统、WWW系统、TELNET系统、CVS版本控制系统等2930(3)客户/服务器风格其他说明:在客户/服务器风格的系统中,服务器是资源和计算的集中地,因此容易成为存储和计算瓶颈,实际应用中为了提高服务器的性能,可能要采用集群处
18、理等办法。同时,这个特点也使得这类系统容易遭受拒绝服务(DenyOfService)攻击,因此在设计和应用中要作针对性考虑。此外,在这种风格的系统中,服务器中往往要存储更多客户的状态信息,因此大量使用并发执行技术,如多进程、多线程等,这也就涉及到进程、线程的动态创建、调度、删除等问题。这些问题处理得好坏直接影响到服务器的性能。31内容1.1基本概念1.2软件体系结构描述语言1.3软件体系结构风格1.4设计模式32设计模式文献[7-2]中描述了23个设计模式,并将它们分为三种类型:创建型设计模
此文档下载收益归作者所有