欢迎来到天天文库
浏览记录
ID:56300342
大小:305.00 KB
页数:12页
时间:2020-06-10
《利用UML描述常见的几种设计模式.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、软件体系结构实验六利用UML描述常见的几种设计模式一:实验目的掌握设计模式在软件设计中的作用,熟悉并了解一些常用的设计模式,进一步熟悉并巩固RationalRose2003与Visio2003工具的使用,熟悉并了解IBMRationalSoftwareArchitecture6.0工具的建模方法。二:实验准备(1)熟悉利用UMLRose2003与Visio2003建模的方法(2)熟悉并了解软件设计模式(3)熟悉并了解IBMRationalSoftwareArchitecture6.0的建模方法。三:实验内容设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。你必须找到相关的对象,
2、以适当的粒度将它们归类,再定义类的接口和继承层次建立对象之间的基本关系。在设计时,应该对手头的问题有针对性,同时对将来的问题和需求也要有足够的通用性,同时也希望避免重复设计或尽可能少做重复设计。一个设计模式是软件开发中重复出现问题的解决方案;一种来源于具体问题形式的抽象,这种抽象在特定环境中出现;在给定的问题环境和约束条件下,对通用问题的重复解决方案;一种经过证明的、在给定条件下问题的有效的重复解决方案。它象一个“大金块”传递了解决方案的本质。(点石成金的方法)。经过多次成功使用,已经被证明的“最佳实践方法”;用文字、图表描述的方式来捕捉设计专家的智慧和经验,并把这些经验传递给新手。对通用设
3、计问题的重复解决方案,对真实世界问题的实践的/具体的解决方案面向特定的问题环境权衡利弊之后得到的“最佳”解决方案,领域专家和设计老手的“杀手锏”,用文档的方式记录的最佳实践,在讨论问题的解决方案时,一种可交流的词汇,在使用(重用)、共享、构造软件系统中,一种有效地使用已有的智慧/经验/专家技术的方式。在面向对象的软件设计中,可以利用UML对设计进行建模,对设计模式的建模包括建立内部视图和外部视图①设计模式的内部视图是一组类图和一组交互图。②设计模式的外部视图是一个参数化协作,协作参数命名。是模式的用户必须绑定的元素。本次实验要求同学们理解常见的组合模式(结构类型)、工厂模式(构造类型)、责任
4、链模式(行为类型)。并能根据具体的案例,选择相应的设计模式,并根据该设计模式所定义的组成元素,组成元素之间的关连关系、约束关系,利用UML作出具体的设计。在IBMRationalSoftwareArchitecture6.0中,提供了Goff所总结的23种常见模式的模板,我们可以根据这些模板,实例化模板的参数,最后得到一个具体的某种模式的设计。图1-图3描述了组件的一个设计。图一:组件的设计模式图(IBMRSA6.0中建模)图二:组件的设计模式图主题图(IBMRSA6.0中建模)图三:组件的浏览图(IBMRSA6.0中建模)一:组合模式:一个例子:组件可以分为原子组件与组合组件,原子组件是不
5、能再分解的一个组件单元,组合组件则是由多个组件组成,而组成组合组件的这些组件既可以是原子组件,也可以是组合组件。这样,原子组件可以通过组合构成一个组合组件,原子组件与组合组件又可以通过组合构成更大的组合组件。我们可以通过组合模式来设计一个组合组件的模型,图三是利用IBMRationalSoftwareArchitecture所提供的组合模式设计出来的组件的结构。图四是利用RationalRose类图描述的组件的结构图。图四:组件类图(Rose2003)图形可以看成是一些基本图形元素与组合图形元素的组合体,其中基本的图形元素包括点,线,园,矩形,椭圆形,射线等基本元素。而一个最简单的组合图形元
6、素是这些基本图形元素组合在一块形成的组合。通过组合,最终可以构成用户所需要的图形。图五描述了一个构成的例子。一个文件夹由文件以及文件夹组成,而在这个文件夹里可能也是由文件及文件夹组成,因此,文件夹也是一种组合模式的实例,请根据上面所提供描述内容,利用组合模式画出图形元素、文件夹的UML结构图。图五:一个图形例子图六:一个文件夹的例子二:责任链模式:责任链模式是使多个对象都有机会处理请求,从而避免请求的对象和接收的对象之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。例如一个图形用户界面中的上下文有关的帮助机制,用户在界面的任一部分上按F1键就应该可以得到
7、帮助信息,所提供的帮助依赖于点击的是界面的哪一部分以及上下文环境。显然,在这种模式中,我们应根据从最特殊到最普遍的顺序来组织帮助信息,这样,用户所得到的帮助应是最体现了用户的需求。图七对象责任链类之间调用图根据上面的提示,请画出它们之间的对象交互图以及类图。图八:帮助责任链序列图图九:责任链类图抽象工厂模式与工厂模式:抽象工厂模式与工厂模式的区别:抽象工厂模式比工厂模式更复杂,更灵活,一个抽象工厂模式或以先创
此文档下载收益归作者所有