高级软件工程(第十一章)-面向对象设计方法(2017ppt课件).ppt
《高级软件工程(第十一章)-面向对象设计方法(2017ppt课件).ppt》由会员分享,可在线阅读,更多相关《高级软件工程(第十一章)-面向对象设计方法(2017ppt课件).ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1第十一章第十一章面向对象的设计方法面向对象的设计方法面向对象设计的主要任务面向对象设计的主要任务 细化重组类细化重组类 细化和实现类间关系细化和实现类间关系, ,明确其可见性明确其可见性 增加属性增加属性, ,指定属性的类型与可见性指定属性的类型与可见性 分配职责分配职责, ,定义执行每个职责的方法定义执行每个职责的方法 对消息驱动的系统对消息驱动的系统, ,明确消息传递方式明确消息传递方式 利用设计模式进行局部设计利用设计模式进行局部设计 画出详细的类图与时序图画出详细的类图与时序图 23 3OOOO设计过程设计过程 基于领域模型,创建设计类图的基础版本或基于领域模型,创建设计类图的基
2、础版本或初步模型初步模型:包含属性名称等基本信息,以便:包含属性名称等基本信息,以便用来设计交互图;用来设计交互图; 开发交互图开发交互图,即为每一个用例产生一个交互,即为每一个用例产生一个交互图:其决定哪些对象一起工作,及怎样协同图:其决定哪些对象一起工作,及怎样协同工作。工作。 ( (系统设计的核心系统设计的核心) ); 根据开发交互图时得到的信息,根据开发交互图时得到的信息,迭代迭代设计设计类类图图和开发和开发方法名称(方法名称(确定类的行为和职责确定类的行为和职责) 用包图将设计类图分割成相关的功能用包图将设计类图分割成相关的功能。4 4用例的实现用例的实现 称称设计模型的最终开发结果
3、设计模型的最终开发结果为为用例的实现用例的实现。术语术语实现实现指的是对每个用例的详细系统过程进指的是对每个用例的详细系统过程进行说明,是制定了软件的蓝图。行说明,是制定了软件的蓝图。 OOOO的设计也是用例驱动的。的设计也是用例驱动的。也就是说,设计是也就是说,设计是由一个用例的实现接着一个用例的实现完成的。由一个用例的实现接着一个用例的实现完成的。用例的实现用例的实现:对每个用例的详细系统过程的说:对每个用例的详细系统过程的说明。明。 用例用例实现实现方案的方案的步骤步骤用例用例实现方案的设计方法有三个步骤:实现方案的设计方法有三个步骤: 提取提取边界类、实体类和控制类;边界类、实体类和控
4、制类; 构造构造交互图;交互图; 根据根据交互图精化类图。交互图精化类图。56 6设计类图与领域模型设计类图与领域模型设计类图和详细交互图均使用对方作为设计时设计类图和详细交互图均使用对方作为设计时的输入,二者的开发过程是平行的。的输入,二者的开发过程是平行的。设计类图设计类图是是OOOO分析时开发的分析时开发的领域模型类图领域模型类图的扩的扩展展( (分析阶段可忽略属性或方法分析阶段可忽略属性或方法) )。领域模型领域模型揭示问题域类和它们之间的联系,揭示问题域类和它们之间的联系,是是概念类模型概念类模型。设计设计类图类图是领域模型的细化和扩展,是领域模型的细化和扩展,是软件类是软件类模型模
5、型。通过集成来自交互图和其他模型的信息。通过集成来自交互图和其他模型的信息来完成。来完成。设计设计类图类图时,还要时,还要在以前的领域模型在以前的领域模型的基础上增加很多类的基础上增加很多类7 7标准设计类标准设计类实体类实体类边界类(接口类)边界类(接口类)控制类控制类8 8 实体类实体类实体类实体类:是问题域中的核心:是问题域中的核心类类。从客观世界中的从客观世界中的实体对象实体对象归纳和抽象出来归纳和抽象出来( (来自来自域模型域模型) )。用于长期保存在系统中的信息以及提。用于长期保存在系统中的信息以及提供针对这些信息的相关处理行为。实体类的对象供针对这些信息的相关处理行为。实体类的对
6、象是永久性的,即是永久性的,即持久类持久类。持久类持久类:程序结束后仍然存在的对象类。在系统:程序结束后仍然存在的对象类。在系统关闭后这些数据仍存在。关闭后这些数据仍存在。保证持久的方法保证持久的方法:将它们写入文件或:将它们写入文件或DBDB。实体类。实体类在在DBDB中有相应的表,其属性对应中有相应的表,其属性对应DBDB中的字段。中的字段。续续实体类表示目标软件系统中具有持久意义的信实体类表示目标软件系统中具有持久意义的信息项及其操作。实体类的操作具有息项及其操作。实体类的操作具有“内向收敛内向收敛”特征,它们仅向目标软件系统的其余部分提特征,它们仅向目标软件系统的其余部分提供读、写信息
7、项内容的必要的操作接口,并不供读、写信息项内容的必要的操作接口,并不涉及业务逻辑处理。涉及业务逻辑处理。91010 边界类边界类( (接口类接口类) )从系统和外界进行交互的对象中归纳、抽象出来。从系统和外界进行交互的对象中归纳、抽象出来。是系统内对象和系统外的参与者的联系媒介,外是系统内对象和系统外的参与者的联系媒介,外界消息通过边界类的对象实例发送给系统。界消息通过边界类的对象实例发送给系统。( (例例如,窗体、对话框、报表如,窗体、对话框、报表) )边界类边界类:存在于系统的自动化边界上的类。:存在于系统的自动化边界上的类。 续续边界类描述目标软件系统与外部环境的交互,主要边界类描述目标
8、软件系统与外部环境的交互,主要任务:任务:1.1.界面界面控制:包括输入数据的格式及内容转换,输控制:包括输入数据的格式及内容转换,输出结果的呈现,软件运行过程中界面的变化与切出结果的呈现,软件运行过程中界面的变化与切换等。换等。2.2.外部接口外部接口:实现目标软件系统与外部系统或外部:实现目标软件系统与外部系统或外部设备之间的信息交流和互操作。主要关注跨越目设备之间的信息交流和互操作。主要关注跨越目标软件系统边界的通信协议。标软件系统边界的通信协议。3.3.环境环境隔离:将目标软件系统与操作系统、数据库隔离:将目标软件系统与操作系统、数据库管理系统、应用服务器中间件等环境软件进行交管理系统
9、、应用服务器中间件等环境软件进行交互的功能与特性封装于边界类之中,使目标软件互的功能与特性封装于边界类之中,使目标软件系统的其余部分尽可能地独立于环境软件系统的其余部分尽可能地独立于环境软件。111212 控制类控制类控制类控制类:在边界类和实体类中间起协调作用的:在边界类和实体类中间起协调作用的类,它包含了事件的类,它包含了事件的应用逻辑应用逻辑或或业务规则业务规则。 它负责从边界类对象获取信息,然后发送到适它负责从边界类对象获取信息,然后发送到适当的实体类对象,就像是当的实体类对象,就像是域层域层和和可视层可视层之间的之间的一个一个控制器控制器。 在一个用例中,一个在一个用例中,一个控制类
10、控制类应该同一个且仅一应该同一个且仅一个个参与者参与者相关联。相关联。协调协调边界类边界类和和实体类实体类之间的消息及消息发送的之间的消息及消息发送的顺序。顺序。续续控制类作为完成用例任务的责任承担者,协调控制类作为完成用例任务的责任承担者,协调、控制其他类共同完成用例规定的功能或行为、控制其他类共同完成用例规定的功能或行为。对于比较复杂的用例,控制类通常并不处理。对于比较复杂的用例,控制类通常并不处理具体的任务细节,但是它应知道如何分解任务具体的任务细节,但是它应知道如何分解任务,如何将子任务分派给适当的辅助类,如何在,如何将子任务分派给适当的辅助类,如何在辅助类之间进行消息传递和协调。辅助
11、类之间进行消息传递和协调。13提取边界类、实体类和控制类提取边界类、实体类和控制类如何从分析模型中的用例描述和领域概念模型出如何从分析模型中的用例描述和领域概念模型出发获取这些类?发获取这些类?通常情况下,参与者与用例之间的一种通信连接通常情况下,参与者与用例之间的一种通信连接对应一个边界类。但是,如果两个以上的用例与对应一个边界类。但是,如果两个以上的用例与同一参与者交互,并且这些交互具有共同的行为同一参与者交互,并且这些交互具有共同的行为、完成相同或类似的任务,就可以考虑用同一边、完成相同或类似的任务,就可以考虑用同一边界类实现用例与参与者之间的交互。这就意味着界类实现用例与参与者之间的交
12、互。这就意味着边界类的作用范围可以超越单个用例。边界类的作用范围可以超越单个用例。14提取边界类、实体类和控制类提取边界类、实体类和控制类实体类源于实体类源于领域模型领域模型。有时也需要认真研读用。有时也需要认真研读用例描述,从中发掘具有持久意义的信息项。例描述,从中发掘具有持久意义的信息项。如果如果参与者参与者的的属性需要持久保存,也可以建立属性需要持久保存,也可以建立相应于执行者的实体类。相应于执行者的实体类。假设一个实体类假设一个实体类A A仅仅被系统中的另一个类仅仅被系统中的另一个类B B引引用,并且系统勿需关心用,并且系统勿需关心A A的行为特征,那么,的行为特征,那么,为了简化设计
13、模型,应将为了简化设计模型,应将A A中信息项直接作为中信息项直接作为B B的属性。的属性。如果如果A A被系统中的多个类引用,或者被系统中的多个类引用,或者A A具有不容具有不容忽略的行为特征,那么应将忽略的行为特征,那么应将A A作为独立的实体作为独立的实体类。类。15提取边界类、实体类和控制类提取边界类、实体类和控制类一个用例通常对应一个控制类。一个用例通常对应一个控制类。如果不同用例的任务有较多类似之处,也可以如果不同用例的任务有较多类似之处,也可以考虑在多个用例的实现方案中共享同一控制类考虑在多个用例的实现方案中共享同一控制类,此种情况应审慎对待,不同用例所需要的控,此种情况应审慎对
14、待,不同用例所需要的控制、协调行为往往会有差异。制、协调行为往往会有差异。对于那些事件流非常简单的用例,可以不设独对于那些事件流非常简单的用例,可以不设独立的控制类,直接在边界类中设置控制、协调立的控制类,直接在边界类中设置控制、协调功能,边界类在实体类的帮助下完成用例要求功能,边界类在实体类的帮助下完成用例要求的功能及行为。的功能及行为。1617导航可见性导航可见性一个对象可看到另一个对象并与之交互一个对象可看到另一个对象并与之交互( (导航导航、可见性、可见性) )。一个对象可导航一个对象可导航( (发送消息发送消息) )到另一个对象。到另一个对象。 一个对象通过发消息的方式和另一个对象进
15、一个对象通过发消息的方式和另一个对象进行联系,那么第二个对象对于第一个对象来行联系,那么第二个对象对于第一个对象来说必须是可见的。说必须是可见的。 对象具有能看见另一对象并与其交互的能力对象具有能看见另一对象并与其交互的能力。 1818用例实现与交互图用例实现与交互图用例的实现是在交互图的开发过程中完成的,用例的实现是在交互图的开发过程中完成的,用例实现的过程就是确定哪些类通过发送消息用例实现的过程就是确定哪些类通过发送消息与其他类进行协作的过程。与其他类进行协作的过程。 设计时开发的交互图设计时开发的交互图:顺序图或协作图顺序图或协作图。1919对象职责对象职责一种由对象负责实施系统过程的设
16、计准则。一种由对象负责实施系统过程的设计准则。集中确定一个系统必须支持的行为集中确定一个系统必须支持的行为, ,再设计实再设计实现这些行为的方法。通过这些行为现这些行为的方法。通过这些行为, ,确定对象确定对象职责。职责。2020用例控制器用例控制器每个用例含有许多来自外部参与者不同的消息。每个用例含有许多来自外部参与者不同的消息。作为作为OOOO分析一部分的系统顺序图能够描述出这些分析一部分的系统顺序图能够描述出这些输入消息,但只表示这些消息输入到系统中。输入消息,但只表示这些消息输入到系统中。在设计过程中,必须确定对象得到所有的消息。在设计过程中,必须确定对象得到所有的消息。为简化为简化搜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 软件工程 第十一 面向 对象 设计 方法 2017 ppt 课件
限制150内