面向对象的分析与设计课件-设计篇.ppt
《面向对象的分析与设计课件-设计篇.ppt》由会员分享,可在线阅读,更多相关《面向对象的分析与设计课件-设计篇.ppt(134页珍藏版)》请在三一办公上搜索。
1、第三部分:设计篇,主讲教师,2,OOD模型框架从两个侧面来描述,回顾,3,问题域部分设计,输入OOA模型,人机交互部分设计,控制驱动部分设计,数据接口部分设计,构件化与系统部署,向OOP输出OOD模型,OOD过程,4,将OOA模型搬到OOD作为OOD的基础,人机交互部分,数据接口部分,控制驱动部分,问题域部分,OOA模型,按编程语言、网络、操作系统、复用支持等实现条件进行必要的调整,11.1 什么是问题域部分问题域部分是OOD模型的四个组成部分之一,由来自问题域的对象构成,是在OOA模型基础上,按照具体的实现条件进行必要的修改、调整和细节补充而得到的。,第11章问题域部分的设计,5,人机交互部
2、分,数据接口部分,控制驱动部分,OOA模型,编程语言、网络、操作系统、复用支持等实现条件,OOD过程,从MDA的观点看问题域部分的产生,问题域部分,6,11.2 实现条件对问题域部分的影响,编程语言语言的实现能力硬件、操作系统及网络设施 对象分布、并发、通信、性能 复用支持 根据复用支持对模型做适当调整,以实现复用数据管理系统 为实现对象的持久存储,对问题域部分做某些修改界面支持系统问题域部分与人机界面之间的消息传输,7,设计准备保留OOA文档复制OOA文档,作为OOD的输入根据需求的变化和发现的错误进行修改,设计内容与策略(本节的重点)针对编程语言支持能力的调整 增加一般类以建立共同协议 实
3、现复用提高性能 为实现对象持久存储所做的修改 完善对象的细节 定义对象实例 对辅助模型、模型规约的修改和补充,建立OOD文档与OOA文档的映射,11.3 设计过程,8,1、按编程语言调整继承与多态起因:OOA强调如实地反映问题域,OOD考虑实现问题,如果语言不支持多继承或多态,就要进行对模型调整,9,方法1:简单转换,(a)一般方法,或,A,C,1,1,1,1,1,1,B,A,C,B,1,A,C,B,10,方法2:重新定义对象类,化解多继承,职员,学员,在职学员,人员,职员身份,学员身份,人员,1,0.1,1,0.1,职员身份,学员身份,身份,人员,1,0.2,11,方法3:保持分类,剥离多继
4、承信息,职员,学员,人员,在职学员,职员信息,学员信息,1,1,1,1,1,1,1,1,12,(2)取消多态性,(a),(b),多边形,线条色线型边数顶点坐标,绘图填充,正多边形,*顶点坐标,*绘图,矩形,边数*顶点坐标,*绘图,多边形,线条色线型,正多边形,绘图,矩形,顶点坐标,绘图,不规则多边形,绘图,边数顶点坐标,边数顶点坐标,填充,13,2、增加一般类以建立共同协议增加根类:将所有的类组织在一起 提供全系统通用的协议例:提供创建、删除、复制等操作增加其他一般类:提供局部通用的协议例:提供持久存储及恢复功能,14,B,C,E,A,属性操作,D,F,1,*,属性操作,属性操作,属性操作,属
5、性操作,属性操作,例:,15,3、实现复用的设计策略,如果已存在一些可复用的类,而且这些类既有分析、设计时的定义,又有源程序,那么,复用这些类即可提高开发效率与质量。目标:尽可能使复用成分增多,新开发的成分减少,16,例:,车辆,序号颜色式样出厂年月序号认证,问题域部分的类,17,4、提高性能(1)调整对象分布,(2)缩短对象存取时间设立缓冲区,甲机,乙机,send,call,call,send,类A,类A,类B,类C,类B,类C,甲机,乙机,18,(3)合并通讯频繁的类,流速调节器指定流速流速调节,流速探测器当前流速流速探测取当前流速,流速控制器指定流速当前流速流速调节流速探测,合并前,合并
6、后,(4)增加属性以减少重复计算,call,19,(5)降低算法的计算复杂性(6)细化对象的分类,二次曲线,绘图,20,(7)将复杂对象化为整体-部分结构,帧,5、为数据存储管理增补属性与操作在数据接口部分设计中介绍,21,6、完善对象的细节,OOD在OOA模型基础上所做的主要工作,不能用“细化”二字概括,但细化是不可缺少的(1)完善与问题域有关的属性和操作在OOA阶段允许不详尽,OOD必须加以完善(2)解决OOA阶段推迟考虑的问题,包括:因封装原则而设立的对象操作与OOD模型其他部分有关的属性和操作(3)设计类的每个操作必要时用流程图或者活动图表示(4)设计表示关联的属性区分多重性的3种情况
7、,决定属性设置在哪一端(5)设计表示聚合的属性区分组合与松散的聚合对于组合,用嵌套对象实现对于松散的聚合,采用与关联相同的策略,22,7、定义对象实例,在逻辑上,一个类的对象实例是:问题域中所有可用这个类描述的实际事物在物理上,一个类的对象实例可以是:内存中的对象变量文件的一个记录,或数据库表的一个元组一个类的对象实例可以分布到不同的处理机上对每一台处理机说明在它之上创建的每一个(或组)内存对象说明在它之上保存的外存对象,类的对象实例说明:处理机:,内存对象:(n元数组)外存对象:,23,8、修改或补充辅助模型及模型规约,包图类的增减、拆分、合并以及各个类之间关系的变化 顺序图操作与消息活动图
8、操作流程其他模型图状态机图、定时图、交互概览图、组合结构图 模型规约类的属性、操作及其对外关系的修改或细化,24,建立与OOA文档的映射,指出OOA模型中的哪个(或哪些)类演化为OOD模型中的哪个(或哪些)类,25,12.1 什么是人机交互部分,人机交互部分是OOD模型的外围组成部分之一,是系统中负责人机交互的部分。其中所包含的对象(称作界面对象)构成了系统的人机界面。现今的系统大多采用图形方式的人机界面形象、直观、易学、易用,远远胜于命令行方式的人机界面,是使软件系统嬴得广大用户的关键因素之一。但开发工作量大,成本高。近30年出现了许多支持图形用户界面开发的软件系统,包括:窗口系统(如X W
9、indow,News);图形用户界面(GUI)(如OSF/Motif,Open Look);可视化开发环境(如Visual C+,Visual Basic,Delphi)统称界面支持系统。人机交互部分既取决于需求,又与界面支持系统密切相关。,第12章人机交互部分的设计,26,人机界面的开发不仅是设计和实现问题,也包括分析问题对人机交互需求的分析。人机界面的开发也不纯粹是软件问题,它还需要心理学、美学等许多其它学科的知识。把人机交互部分作为系统中一个独立的组成部分进行分析和设计,有利于隔离界面支持系统的变化对问题域部分的影响,控制驱动部分,问题域部分,数据接口部分,27,12.2 人机交互部分的
10、需求分析,对使用系统的人进行分析以便设计出适合其特点的交互方式和界面表现形式对人和机器的交互过程进行分析核心问题是人如何命令系统,以及系统如何向人提交信息,(1)分析与系统交互的人(参与者)人对界面的需求,不仅在于人机交互的内容,而且在于他们对界面表现形式、风格等方面的爱好。前者是客观需求,对谁都一样后者是主观需求,因人而异分析工作包括列举所有的人员参与者调查研究区分人员类型统计(或估算)各类人员的比例了解使用者的主观需求,28,(2)从用况分析人机交互用况的构成参与者的行为和系统行为按时间顺序交替出现,左右分明。形成交叉排列的段落。每个段落至少含有一个输入语句或输出语句;有若干纯属参与者自身
11、或系统自身的行为陈述;可能包含一些控制语句或括号。抽取方法:删除所有与输入、输出无关的语句删除不再包含任何内容的控制语句与括号剩下的就是对一项功能的人机交互描述,29,收款输入开始本次收款的命令;作好收款准备,应收款总数置为0,输出提示信息;for 顾客选购的每种商品 do 输入商品编号;if 此种商品多于一件 then 输入商品数量 end if;检索商品名称及单价;货架商品数减去售出数;if 货架商品数低于下限 then 通知供货员请求上货end if;计算本种商品总价并打印编号、名称、数量、单价、总价;总价累加到应收款总数;end for;打印应收款总数;输入顾客交来的款数;计算应找回的
12、款数,打印以上两个数目,收款数计入账册。(a)一个用况的例子,例:,30,人机交互的细化输入的细化输入步骤的细化输入设备的选择输入信息表现形式的选择输出的细化输出步骤的细化输出设备的选择输出信息表现形式的选择,输入与输出相比,输入在人机交互中起到主导作用一次输入,广义地称为对系统的一条“命令”,31,(3)分析处理异常事件的人机交互(4)命令的组织不受欢迎的命令组织方式:一条命令含有大量的参数和任选项系统有大量命令,不加任何组织和引导,基本命令:使用一项独立的系统功能的命令。命令步:基本命令交互过程中所包含的具体输入步骤。高层命令:由其他若干命令组合而成,起组织和引导作用,命令的组织措施分解与
13、组合分解:将一条含有许多参数和选项的命令分解为若干命令步组合:将基本命令组织成高层命令,从高层命令引向基本命令,32,(c)半序网状结构,(b)树型结构,(a)线性结构,(d)一般的网状结构,基本命令及其命令步的结构,33,高层命令的组织结构,34,(5)输出信息的组织结构分析两层命令之间的输出信息结构,35,12.3 人机界面的设计准则使用简便一致性启发性减少人脑记忆的负担减少重复的输入容错性及时反馈其它:艺术性、趣味性、风格、视感,36,12.4 人机界面的OO设计(1)选择界面支持系统窗口系统:“窗口系统是控制位映像显示器与输入设备的系统软件,它所管理的资源有屏幕、窗口、像素映像,色彩表
14、、字体、光标、图形资源及输入设备。”例:Smalltalk,Macintosh,X Window 图形用户界面(GUI):在窗口系统之上提供了层次更高的界面支持功能,具有特定的视感和风格,支持应用系统界面开发的系统。例:OSF/Motif,Open Look 可视化编程环境:将窗口系统、GUI、可视化开发工具、编程语言以及类库结合为一体的可视化开发平台,支持用户以“所见即所得”的方式构造用户界面。例:Visual C+,Delphi,Visual Basic 考虑的因素:硬件、操作系统及编程语言,支持级别,风格与视感,37,(2)根据人机交互需求选用界面元素不同的界面支持系统提供不同的界面元素
15、,常用的界面元素例如:窗口、菜单、对话盒、图符、滚动条等系统的启动选用实现主界面的界面元素,如框架窗口、对话框窗口高层命令组织结构的实现通过界面元素的构造层次体现高层命令的组织结构例如:窗口菜单下级菜单基本命令的执行通过高层命令引向基本命令例如:窗口菜单菜单选项详细交互过程的输入与输出选择适当的界面元素完成每个命令步的输入与输出异常命令的输入使用支持异常命令输入的界面功能,如鼠标右键菜单,38,(3)用OO概念表示界面元素对象和类 尽可能使用界面类库中提供的可复用类,自定义的类,类名属性操作,类名复用,复用类库中的类,属性与 操作用属性表示界面对象的静态特征物理特征如:位置、尺寸、颜色、立体效
16、果 逻辑特征聚合、关联用操作表示界面对象的行为例如:创建、激活、最大化、最小化、移动、选中、单击、双击,39,整体-部分结构表示界面元素之间的构成关系,例如:窗口 与 其中的菜单、按钮、图符、对话框、滚动条表示界面对象在操作中的逻辑层次反映上、下两层命令之间的关系,例:框架窗口,40,框架窗口,主菜单,下拉菜单,视窗,工具条,滚动条,按钮,1,1,1,*,1,*,1,1,1,2,1,1,1,*,41,一般-特殊结构表示较一般的界面类和较特殊的界面类之间的关系 自定义的类之间的一般-特殊关系用一般-特殊结构特化可复用类,42,关联表示界面类之间一个有特定意义的关系,例如:,按钮,1,1,对话框,
17、消息 高层命令到低层命令界面对象之间的消息基本命令的执行从界面对象向功能对象发消息 信息输出从功能对象向界面对象发消息,工具条,1,*,43,12.5 可视化编程环境下的人机界面设计(1)问题的提出(2)所见即所得的界面开发(3)设计的必要性为实现提供依据为了满足人机交互的需求,人机界面中要使用哪些界面对象?交互过程中的各项输入和输出应由哪些界面对象完成?如何通过界面对象类之间的各种关系体现人机交互命令的组织结构与层次?如何通过界面对象和功能对象之间的消息实现它们之间的动态联系?降低失败的风险设计策略需要改进类库的存在以所见即所得的定义界面对象的各种物理属性更为直接,44,(4)基于可视化编程
18、环境的设计策略类的设立首先想到复用,Cdialog复用,CMysystemDig,CEdit 复用,通过继承复用,直接复用,45,属性忽略物理特征,着重表示逻辑特征设计阶段不必关心描述界面物理特征的属性诸如:大小、形状、位置、颜色、边框、底纹、图案式样、三维效果等,由实现人员去自主处理效果更好,效率更高以主要精力定义描述界面逻辑特征的属性表现命令的组织结构的属性、例如:菜单类的每个选项表示什么命令表现界面元素之间组成关系和关联的属性例如:对话框中包含哪些控件,46,CMysystemDig SetDlgItemText,操作显式地表示从高层类继承的操作,例:,CDialog复用,47,整体-部
19、分结构表现界面的组织结构和命令层次通过整体-部分结构表现界面对象之间的组成关系和人机交互命令的层次关系与采用其它界面支持系统的策略相同区分界面对象的普通属性和它的部分对象有些组成部分被作为对象的一个普通属性例如下拉菜单的选项,窗口的边框有些组成部分则被作为一个部分对象例如对话框的一个下拉菜单或按钮区分两种情况的依据环境类库有没有给出这种组成部分的类定义,48,一般-特殊结构多从可复用类直接继承,例:,对话框复用,对话框 A,对话框 B,编辑框复用,按钮复用,1,3,1,1,普通策略,2,1,对话框复用,对话框 A,对话框 B,编辑框复用,按钮复用,1,1,1,5,1,1,1,3,直接继承可复用
20、类的策略,49,消息忽略自动实现的消息注意需要编程实现的消息1、界面对象接收到一个操作事件,通过它的一个操作向处理该事件的功能对象所发送的消息。2、从功能对象向完成其输入/输出的界面对象发送的消息。3、其它:凡是需要通过手工编程来实现的消息,都要在设计中加以表示。,50,13.1 什么是控制驱动部分,控制驱动部分是OOD模型的外围组成部分之一,由系统中全体主动类构成。这些主动类描述了整个系统中所有的主动对象,每个主动对象是系统中一个控制流的驱动者。控制流(control flow)进程(process)和线程(thread)的总称有多个控制流并发执行的系统称作并发系统(多任务系统),第13章
21、控制驱动部分的设计,51,为什么需要控制驱动部分,并发行为是现实中固有的当前大量的系统都是并发系统(多任务系统),例如:外围设备与主机并发工作的系统有多个窗口进行人机交互的系统多用户系统多个子系统并发工作的系统单处理机上的多任务系统多处理机系统多任务的设置描述问题域固有的并发行为表达实现所需的设计决策隔离硬件、操作系统、网络的变化对整个系统的影响,52,13.2 相关技术问题,(1)由系统总体方案决定的实现条件:计算机硬件性能、容量和CPU数目操作系统对并发和通讯的支持网络方案网络软硬件设施、网络拓扑结构、通讯速率、网络协议等软件体系结构(详后)编程语言对进程和线程的描述能力其它商品软件如数据
22、管理系统、界面支持系统、构件库等对共享和并发访问的支持,53,(2)软件体系结构抽象地说,软件体系结构描述了构成系统的元素、这些元素之间的相互作用、指导其组合的模式以及对这些模式的约束 Mary Shaw,几种典型的软件体系结构风格管道与过滤器风格(pipe and filter style)数据抽象风格(data abstraction style)面向对象风格(object-oriented style)隐式调用风格(implicit invocation style)层次风格(layered style)仓库风格(repository style)黑板风格(blackboard styl
23、e)解释器模型(interpreter model)进程控制风格(process control style)客户-服务器风格(client-server style),54,主机+仿真终端体系结构文件共享体系结构客户-服务器体系结构二层客户-服务器体系结构三层客户-服务器体系结构对等式客户-服务器体系结构瘦客户-服务器体系结构浏览器-服务器体系结构,(3)分布式系统的体系结构风格,55,进程(process)概念出现之前,并发程序设计困难重重主要原因:并发行为彼此交织,理不出头绪与时间有关的错误不可重现进程概念的提出使这个问题得到根本解决进程的全称是顺序进程(sequential proce
24、ss),其基本思想是把并发程序分解成一些顺序执行的进程,使得:每个进程内部不再包含并发行为所以叫做顺序进程,其设计避免了并发问题多个进程之间是并发(异步)执行的所以能够构成并发程序,(4)系统的并发性,56,线程(Thread)由于并行计算的需要,要求人为地在顺序程序内部定义和识别可并发执行的单位。因此后来的操作系统大多支持线程概念。线程与进程的区别:进程既是处理机分配单位,也是存储空间、设备等资源的分配单位(重量级的控制流);线程只是处理机分配单位(轻量级的控制流);一个进程可以包含多个线程,也可以是单线程的。控制流是进程和线程的总称。,57,应用系统的并发性从网络、硬件平台的角度看:分布在
25、不同计算机上的进程之间的并发在多CPU的计算机上运行的进程或线程之间的并发在一个CPU上运行的多个进程或线程之间的并发从应用系统的需求看:需要跨地域进行业务处理的系统需要同时使用多台计算机或多个CPU进行处理的系统需要同时供多个用户或操作者使用的系统需要在同一时间执行多项功能的系统需要与系统外部多个参与者同时进行交互的系统,58,处理应用系统并发性的例子见教材节例1 例7,59,例5:用多进程实现遥感信息的输入、处理和显示,输入进程,数据处理进程,显示进程,数据,数据,IPC,IPC,数据,数据,显示屏,地面接收设备,输入,输出,遥感信息处理系统,60,例6:用多线程实现遥感信息的输入、处理和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 课件
链接地址:https://www.31ppt.com/p-6213407.html