版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲教师主讲教师3/1/20222编辑编辑ppt2OOD模型框架模型框架从两个侧面来描述从两个侧面来描述人机交互部分人机交互部分数据接口部分数据接口部分控制驱动部分控制驱动部分问题域问题域部分部分从一个侧面看:从一个侧面看:OODOOD模型包括几个主要部分?模型包括几个主要部分?一个核心加三个外围一个核心加三个外围需需 求求 模模 型型辅辅 助助 模模 型型类类 图图模模 型型 规规 约约从另一侧面看:从另一侧面看:OODOOD模型每个部分模型每个部分如何用如何用OOOO概念表达?概念表达?采用与采用与OOAOOA相同的概念及相同的概念及模型组织方式模型组织方式回顾回顾3/1/20223编辑编
2、辑ppt3问题域部分设计问题域部分设计输入输入OOA模型模型人机交互部分设计人机交互部分设计控制驱动部分设计控制驱动部分设计数据接口部分设计数据接口部分设计构件化与系统部署构件化与系统部署向向OOP输出输出OOD模型模型OOD过程过程3/1/20224编辑编辑ppt4将将OOA模型搬到模型搬到OOD作为作为OOD的基础的基础人机交互部分人机交互部分数据接口部分数据接口部分控制驱动部分控制驱动部分问题域问题域部分部分OOA模型模型按编程语言、网络按编程语言、网络、操作系统、复用、操作系统、复用支持等实现条件进支持等实现条件进行必要的调整行必要的调整11.1 什么是问题域部分什么是问题域部分问题域
3、部分是问题域部分是OOD模型的四个组成部分之一,由来自问题模型的四个组成部分之一,由来自问题域的对象构成,是在域的对象构成,是在OOA模型基础上,按照具体的实现条模型基础上,按照具体的实现条件进行必要的修改、调整和细节补充而得到的。件进行必要的修改、调整和细节补充而得到的。第第11章章问题域部分的设计问题域部分的设计3/1/20225编辑编辑ppt5人机交互部分人机交互部分数据接口部分数据接口部分控制驱动部分控制驱动部分OOA模型模型编程语言、网络、编程语言、网络、操作系统、复用支操作系统、复用支持等实现条件持等实现条件OOD过程从从MDAMDA的的观点看问观点看问题域部分题域部分的产生的产生
4、问题域问题域部分部分3/1/20226编辑编辑ppt611.2 实现条件对问题域部分的影响实现条件对问题域部分的影响编程语言编程语言语言的实现能力语言的实现能力硬件、操作系统及网络设施硬件、操作系统及网络设施 对象分布、并发、通信、性能对象分布、并发、通信、性能 复用支持复用支持 根据复用支持对模型做适当调整,以实现复用根据复用支持对模型做适当调整,以实现复用数据管理系统数据管理系统 为实现对象的持久存储,对问题域部分做某些修改为实现对象的持久存储,对问题域部分做某些修改界面支持系统界面支持系统问题域部分与人机界面之间的消息传输问题域部分与人机界面之间的消息传输3/1/20227编辑编辑ppt
5、7设计准备设计准备保留保留OOA文档文档复制复制OOA文档,作为文档,作为OOD的输入的输入根据需求的变化和发现的错误进行修改根据需求的变化和发现的错误进行修改设计内容与策略(本节的重点)设计内容与策略(本节的重点)针对编程语言支持能力的调整针对编程语言支持能力的调整 增加一般类以建立共同协议增加一般类以建立共同协议 实现复用实现复用提高性能提高性能 为实现对象持久存储所做的修改为实现对象持久存储所做的修改 完善对象的细节完善对象的细节 定义对象实例定义对象实例 对辅助模型、模型规约的修改和补充对辅助模型、模型规约的修改和补充建立建立OOD文档文档与与OOA文档的映射文档的映射11.3 设计过
6、程设计过程3/1/20228编辑编辑ppt81、按编程语言调整继承与多态、按编程语言调整继承与多态起因:起因:OOA强调如实地反映问题域,强调如实地反映问题域,OOD考虑实现问题,考虑实现问题,如果语言不支持多继承或多态,就要进行对模型调整如果语言不支持多继承或多态,就要进行对模型调整多继承模式多继承模式狭义菱形狭义菱形广义菱形广义菱形(1)多继承化为单继承)多继承化为单继承3/1/20229编辑编辑ppt9方法方法1 1:简单转换:简单转换(a a) 一般方法一般方法或或A AC C111111B BA AC CB B1A AC CB B(c c) 不合适的例子不合适的例子?职员职员学员学员
7、在职学员在职学员职员职员学员学员在职学员在职学员1111(b b) 合适的例子合适的例子汽车汽车制冷设备制冷设备冷藏车冷藏车或或111111汽车汽车制冷设备制冷设备冷藏车冷藏车汽车汽车制冷设备制冷设备冷藏车冷藏车(d d) 转换产生信息重复转换产生信息重复A AA AB BC CD D?B BC CD D3/1/202210编辑编辑ppt10方法方法2 2:重新定义对象类,化解多继承:重新定义对象类,化解多继承职员职员学员学员在职学员在职学员人员人员职员身份职员身份学员身份学员身份人员人员10.110.1职员身份职员身份学员身份学员身份身份身份人员人员10.23/1/202211编辑编辑ppt
8、11不适当的方法增加程序代码不适当的方法增加程序代码职员职员学员学员人员人员在职学员在职学员方法方法3 3:保持分类,剥离多继承信息:保持分类,剥离多继承信息职员职员学员学员人员人员在职学员在职学员职员信息职员信息学员信息学员信息111111113/1/202212编辑编辑ppt12(2 2)取消多态性)取消多态性(a)(b)多边形线条色线型边数顶点坐标绘图填充正多边形*顶点坐标*绘图矩形边数*顶点坐标*绘图多边形线条色线型正多边形绘图矩形顶点坐标绘图不规则多边形绘图边数顶点坐标边数顶点坐标填充3/1/202213编辑编辑ppt132、增加一般类以建立共同协议、增加一般类以建立共同协议增加根类
9、:增加根类:将所有的类组织在一起将所有的类组织在一起 提供全系统通用的协议提供全系统通用的协议例:提供创建、删除、复制等操作例:提供创建、删除、复制等操作增加其他一般类:增加其他一般类:提供局部通用的协议提供局部通用的协议例:提供持久存储及恢复功能例:提供持久存储及恢复功能3/1/202214编辑编辑ppt14 B B C CE E A A属性属性操作操作D DF F1 1* *属性属性操作操作属性属性操作操作属性属性操作操作属性属性操作操作属性属性操作操作例:例:ObjectObject 复用复用 3/1/202215编辑编辑ppt153 3、实现复用的设计策略、实现复用的设计策略如果已存在
10、一些可复用的类,而且这些类既有分析、设如果已存在一些可复用的类,而且这些类既有分析、设计时的定义,又有源程序,那么,复用这些类即可提高计时的定义,又有源程序,那么,复用这些类即可提高开发效率与质量。开发效率与质量。目标:尽可能使复用成分增多,新开发的成分减少目标:尽可能使复用成分增多,新开发的成分减少当前所需的类的信息当前所需的类的信息比比可复用类定义的信息可复用类定义的信息直接复用直接复用 通过继承复用通过继承复用 删除可复用类的多余信息删除可复用类的多余信息删除多余信息,通过继承而复用删除多余信息,通过继承而复用3/1/202216编辑编辑ppt16例:例:车辆序号颜色式样出厂年月序号认证
11、车辆序号厂商式样序号认证可复用的类问题域部分的类复用复用车辆序号厂商式样序号认证可复用的类3/1/202217编辑编辑ppt174、提高性能、提高性能(1)调整对象分布)调整对象分布(2)缩短对象存取时间)缩短对象存取时间设立缓冲区设立缓冲区甲机甲机乙机乙机sendcallcallsend类类A类类A类类B类类C类类B类类C甲机甲机乙机乙机3/1/202218编辑编辑ppt18(3)合并通讯频繁的类)合并通讯频繁的类流速调节器流速调节器指定流速指定流速流速调节流速调节 流速探测器流速探测器当前流速当前流速流速探测流速探测取当前流速取当前流速 流速控制器流速控制器指定流速指定流速当前流速当前流速
12、流速调节流速调节流速探测流速探测 合并前合并前合并后合并后(4)增加属性以减少重复计算)增加属性以减少重复计算call3/1/202219编辑编辑ppt19(5)降低算法的计算复杂性)降低算法的计算复杂性(6)细化对象的分类)细化对象的分类 二次曲线二次曲线绘图绘图 二次曲线二次曲线 抛物线抛物线绘图绘图 双曲线双曲线绘图绘图 椭圆椭圆绘图绘图 3/1/202220编辑编辑ppt20(7)将复杂对象化为整体)将复杂对象化为整体-部分结构部分结构 帧帧5 5、为数据存储管理增补属性与操作、为数据存储管理增补属性与操作在数据接口部分设计中介绍在数据接口部分设计中介绍背景背景前景前景显示显示显示显示
13、1 1* *1 11 13/1/202221编辑编辑ppt216 6、完善对象的细节、完善对象的细节OOD在在OOA模型基础上所做的主要工作,不能用模型基础上所做的主要工作,不能用“细化细化”二字概括,但细化是不可缺少的二字概括,但细化是不可缺少的(1)完善与问题域有关的属性和操作)完善与问题域有关的属性和操作在在OOA阶段允许不详尽,阶段允许不详尽,OOD必须加以完善必须加以完善(2)解决)解决OOA阶段推迟考虑的问题,包括:阶段推迟考虑的问题,包括:因封装原则而设立的对象操作因封装原则而设立的对象操作与与OOD模型其他部分有关的属性和操作模型其他部分有关的属性和操作(3)设计类的每个操作)
14、设计类的每个操作必要时用流程图或者活动图表示必要时用流程图或者活动图表示(4)设计表示关联的属性)设计表示关联的属性区分多重性的区分多重性的3种情况,决定属性设置在哪一端种情况,决定属性设置在哪一端(5)设计表示聚合的属性)设计表示聚合的属性区分组合与松散的聚合区分组合与松散的聚合对于组合,用嵌套对象实现对于组合,用嵌套对象实现对于松散的聚合,采用与关联相同的策略对于松散的聚合,采用与关联相同的策略3/1/202222编辑编辑ppt227、定义对象实例、定义对象实例在逻辑上,一个类的对象实例是:在逻辑上,一个类的对象实例是:问题域中所有可用这个类描述的实际事物问题域中所有可用这个类描述的实际事
15、物在物理上,一个类的对象实例可以是:在物理上,一个类的对象实例可以是:内存中的对象变量内存中的对象变量文件的一个记录,或数据库表的一个元组文件的一个记录,或数据库表的一个元组一个类的对象实例可以分布到不同的处理机上一个类的对象实例可以分布到不同的处理机上对每一台处理机对每一台处理机说明在它之上创建的每一个(或组)内存对象说明在它之上创建的每一个(或组)内存对象说明在它之上保存的外存对象说明在它之上保存的外存对象类的对象实例说明:类的对象实例说明: 处理机:处理机:, 内存对象:内存对象:(n元数组)元数组) 外存对象:外存对象:3/1/202223编辑编辑ppt238、修改或补充辅助模型及模型
16、规约、修改或补充辅助模型及模型规约包图包图类的增减、拆分、合并以及各个类之间关系的变化类的增减、拆分、合并以及各个类之间关系的变化 顺序图顺序图操作与消息操作与消息活动图活动图操作流程操作流程其他模型图其他模型图状态机图、定时图、交互概览图、组合结构图状态机图、定时图、交互概览图、组合结构图 模型规约模型规约类的属性、操作及其对外关系的修改或细化类的属性、操作及其对外关系的修改或细化 3/1/202224编辑编辑ppt24建立与建立与OOA文档的映射文档的映射指出指出OOA模型中的哪模型中的哪个(或哪些)类演化个(或哪些)类演化为为OOD模型中的哪个模型中的哪个(或哪些)类(或哪些)类OOAO
17、OA 类与类与 OODOOD 类映射表类映射表映射方式映射方式OOAOOA 类类OODOOD 类类1 = 11 = 11 1 to 1to 11 to m1 to mm to 1m to 1m to mm to m0 to 10 to 1图图 3.13 OOA3.13 OOA 类与类与 OODOOD 类的映射表类的映射表3/1/202225编辑编辑ppt2512.1 什么是人机交互部分什么是人机交互部分人机交互部分是人机交互部分是OOD模型的外围组成部分之一,是系统中负模型的外围组成部分之一,是系统中负责人机交互的部分。其中所包含的对象(称作界面对象)构责人机交互的部分。其中所包含的对象(称作
18、界面对象)构成了系统的人机界面。成了系统的人机界面。现今的系统大多采用图形方式的人机界面现今的系统大多采用图形方式的人机界面形象、直观、形象、直观、易学、易用,远远胜于命令行方式的人机界面,是使软件系易学、易用,远远胜于命令行方式的人机界面,是使软件系统嬴得广大用户的关键因素之一。统嬴得广大用户的关键因素之一。但开发工作量大,成本高。近但开发工作量大,成本高。近30年出现了许多支持图形用户年出现了许多支持图形用户界面开发的软件系统,包括:界面开发的软件系统,包括:窗口系统(如窗口系统(如X Window,News););图形用户界面(图形用户界面(GUI)(如)(如OSF/Motif,Open
19、 Look););可视化开发环境(如可视化开发环境(如Visual C+,Visual Basic,Delphi)统称统称界面支持系统界面支持系统。人机交互部分既取决于需求,又与界面支持系统密切相关。人机交互部分既取决于需求,又与界面支持系统密切相关。第第12章章人机交互部分的设计人机交互部分的设计3/1/202226编辑编辑ppt26人机界面的开发不仅是设计和实现问题,也包括分析问题对人机交互需求的分析。人机界面的开发也不纯粹是软件问题,它还需要心理学、美学等许多其它学科的知识。把人机交互部分作为系统中一个独立的组成部分进行分析和把人机交互部分作为系统中一个独立的组成部分进行分析和设计,有利
20、于隔离界面支持系统的变化对问题域部分的影响设计,有利于隔离界面支持系统的变化对问题域部分的影响控制驱动部分控制驱动部分问题域问题域部分部分数据接口部分数据接口部分人机交互部分人机交互部分 X-Window人机交互部分人机交互部分 OSF/Motif人机交互部分人机交互部分 Visual C+3/1/202227编辑编辑ppt2712.2 人机交互部分的需求分析人机交互部分的需求分析对使用系统的人进行分析对使用系统的人进行分析以便设计出适合其特点的交互方式和界面表现形式以便设计出适合其特点的交互方式和界面表现形式对人和机器的交互过程进行分析对人和机器的交互过程进行分析核心问题是人如何命令系统,以
21、及系统如何向人提交信息核心问题是人如何命令系统,以及系统如何向人提交信息(1)分析与系统交互的人(参与者)分析与系统交互的人(参与者)人对界面的需求,不仅在于人机交互的内容,而且在于他们人对界面的需求,不仅在于人机交互的内容,而且在于他们对界面表现形式、风格等方面的爱好。对界面表现形式、风格等方面的爱好。前者是前者是客观需求客观需求,对谁都一样,对谁都一样后者是后者是主观需求主观需求,因人而异,因人而异分析工作包括分析工作包括列举所有的人员参与者列举所有的人员参与者调查研究调查研究区分人员类型区分人员类型统计(或估算)各类人员的比例统计(或估算)各类人员的比例了解使用者的主观需求了解使用者的主
22、观需求3/1/202228编辑编辑ppt28(2)从用况分析人机交互)从用况分析人机交互用况的构成用况的构成参与者的行为和系统行为按时间顺序交替出现,左右参与者的行为和系统行为按时间顺序交替出现,左右分明。形成交叉排列的段落。分明。形成交叉排列的段落。每个段落至少含有一个输入语句或输出语句;每个段落至少含有一个输入语句或输出语句;有若干纯属参与者自身或系统自身的行为陈述;有若干纯属参与者自身或系统自身的行为陈述;可能包含一些控制语句或括号。可能包含一些控制语句或括号。抽取方法:抽取方法:删除所有与输入、输出无关的语句删除所有与输入、输出无关的语句删除不再包含任何内容的控制语句与括号删除不再包含
23、任何内容的控制语句与括号剩下的就是对一项功能的人机交互描述剩下的就是对一项功能的人机交互描述3/1/202229编辑编辑ppt29收款员收款员收款收款输入开始本次收款的命令;作好收款准备,应收款总数置为0,输出提示信息;forfor 顾客选购的每种商品 dodo 输入商品编号; ifif 此种商品多于一件 thenthen 输入商品数量 end ifend if;检索商品名称及单价;货架商品数减去售出数;ifif 货架商品数低于下限 thenthen 通知供货员请求上货end ifend if;计算本种商品总价并打印编号、名称、数量、单价、总价;总价累加到应收款总数;end forend fo
24、r;打印应收款总数;输入顾客交来的款数;计算应找回的款数,打印以上两个数目,收款数计入账册。 (b)删除与输入输出无关的陈述收款收款输入开始本次收款的命令;作好收款准备,应收款总数置为0,输出提示信息;forfor 顾客选购的每种商品 dodo 输入商品编号; ifif 此种商品多于一件 thenthen 输入商品数量 end ifend if;检索商品名称及单价;货架商品数减去售出数;ifif 货架商品数低于下限 thenthen 通知供货员请求上货end ifend if;计算本种商品总价并打印编号、名称、数量、单价、总价;总价累加到应收款总数;end forend for;打印应收款总数
25、;输入顾客交来的款数;计算应找回的款数,打印以上两个数目,收款数计入账册。 (a)一个用况的例子收款员收款(人机交互)收款员收款(人机交互)输入开始本次收款的命令;输出提示信息;for 顾客选购的每种商品 do 输入商品编号; if 此种商品多于一件 then 输入商品数量 end if;打印商品编号、名称、数量、单价、总价;end for;打印应收款总数输入顾客交来的款数打印交款数及找回款数; (c)得到人机交互描述例:例:3/1/202230编辑编辑ppt30人机交互的细化人机交互的细化输入的细化输入的细化输入步骤的细化输入步骤的细化输入设备的选择输入设备的选择输入信息表现形式的选择输入信
26、息表现形式的选择输出的细化输出的细化输出步骤的细化输出步骤的细化输出设备的选择输出设备的选择输出信息表现形式的选择输出信息表现形式的选择输入与输出相比,输入在人机交互中起到主导作用输入与输出相比,输入在人机交互中起到主导作用一次输入,广义地称为对系统的一条一次输入,广义地称为对系统的一条“命令命令”3/1/202231编辑编辑ppt31(3)分析处理异常事件的人机交互)分析处理异常事件的人机交互(4)命令的组织)命令的组织不受欢迎的命令组织方式:不受欢迎的命令组织方式:一条命令含有大量的参数和任选项一条命令含有大量的参数和任选项系统有大量命令,不加任何组织和引导系统有大量命令,不加任何组织和引
27、导基本命令:基本命令:使用一项独立的系统功能的命令。使用一项独立的系统功能的命令。命令步:命令步: 基本命令交互过程中所包含的具体输入步骤。基本命令交互过程中所包含的具体输入步骤。高层命令:高层命令:由其他若干命令组合而成,起组织和引导作用由其他若干命令组合而成,起组织和引导作用命令的组织措施命令的组织措施分解与组合分解与组合分解:将一条含有许多参数和选项的命令分解为若分解:将一条含有许多参数和选项的命令分解为若干命令步干命令步组合:将基本命令组织成高层命令,从高层命令引组合:将基本命令组织成高层命令,从高层命令引向基本命令向基本命令3/1/202232编辑编辑ppt32(c c) 半序网状结
28、构半序网状结构(b b) 树型结构树型结构(a a) 线性结构线性结构(d d) 一般的网状结构一般的网状结构基本命令及其基本命令及其命令步的结构命令步的结构3/1/202233编辑编辑ppt33高层命令的组织结构高层命令的组织结构 3/1/202234编辑编辑ppt34(5 5)输出信息的组织结构分析)输出信息的组织结构分析两层命令之间的两层命令之间的输出信息结构输出信息结构两层命令两层命令反馈信息处理结果提示信息典型的输出信息结构典型的输出信息结构反馈信息处理结果处理结果提示信息提示信息处理结果提示信息复杂的输出信息结构复杂的输出信息结构3/1/202235编辑编辑ppt3512.3 人机
29、界面的设计准则人机界面的设计准则使用简便使用简便一致性一致性启发性启发性减少人脑记忆的负担减少人脑记忆的负担减少重复的输入减少重复的输入容错性容错性及时反馈及时反馈其它:艺术性、趣味性、风格、视感其它:艺术性、趣味性、风格、视感3/1/202236编辑编辑ppt3612.4 人机界面的人机界面的OO设计设计(1)选择界面支持系统)选择界面支持系统窗口系统:窗口系统:“窗口系统是控制位映像显示器与输入设备的系窗口系统是控制位映像显示器与输入设备的系统软件,它所管理的资源有屏幕、窗口、像素映像,色彩表统软件,它所管理的资源有屏幕、窗口、像素映像,色彩表、字体、光标、图形资源及输入设备。、字体、光标
30、、图形资源及输入设备。” 例:例:Smalltalk,Macintosh,X Window 图形用户界面(图形用户界面(GUI):):在窗口系统之上提供了层次更高的在窗口系统之上提供了层次更高的界面支持功能,具有特定的视感和风格,支持应用系统界面界面支持功能,具有特定的视感和风格,支持应用系统界面开发的系统开发的系统 。例:例:OSF/Motif, Open Look 可视化编程环境:可视化编程环境:将窗口系统、将窗口系统、GUI、可视化开发工具、编、可视化开发工具、编程语言以及类库结合为一体的可视化开发平台,支持用户以程语言以及类库结合为一体的可视化开发平台,支持用户以“所见即所得所见即所得
31、”的方式构造用户界面的方式构造用户界面 。例:例:Visual C+,Delphi,Visual Basic 考虑的因素:考虑的因素:硬件、操作系统及编程语言硬件、操作系统及编程语言 ,支持级别,支持级别 ,风格与视感,风格与视感 3/1/202237编辑编辑ppt37(2)根据人机交互需求选用界面元素)根据人机交互需求选用界面元素不同的界面支持系统提供不同的界面元素,常用的界面元素不同的界面支持系统提供不同的界面元素,常用的界面元素例如:窗口、菜单、对话盒、图符、滚动条等例如:窗口、菜单、对话盒、图符、滚动条等系统的启动系统的启动选用实现主界面的界面元素,如选用实现主界面的界面元素,如框架框
32、架窗口、对话框窗口窗口、对话框窗口高层命令组织结构的实现高层命令组织结构的实现通过界面元素的构造层次体现高层命令的组织结构通过界面元素的构造层次体现高层命令的组织结构例如:窗口例如:窗口菜单菜单下级菜单下级菜单基本命令的执行基本命令的执行通过高层命令引向基本命令通过高层命令引向基本命令例如:窗口例如:窗口菜单菜单菜单选项菜单选项详细交互过程的输入与输出详细交互过程的输入与输出选择适当的界面元素完成每个命令步的输入与输出选择适当的界面元素完成每个命令步的输入与输出异常命令的输入异常命令的输入使用支持异常命令输入的界面功能,如鼠标右键菜单使用支持异常命令输入的界面功能,如鼠标右键菜单3/1/202
33、238编辑编辑ppt38(3)用)用OO概念表示界面元素概念表示界面元素对象和类对象和类 尽可能使用界面类库中提供的可复用类尽可能使用界面类库中提供的可复用类自定义的类自定义的类类名类名属性属性操作操作 类名类名 复用复用 复用类库中的类复用类库中的类属性与属性与 操作操作用属性表示界面对象的静态特征用属性表示界面对象的静态特征物理特征物理特征如:位置、尺寸、颜色、立体效果如:位置、尺寸、颜色、立体效果 逻辑特征逻辑特征聚合、关联聚合、关联用操作表示界面对象的行为用操作表示界面对象的行为例如:创建、激活、最大化、最小化、移动、选例如:创建、激活、最大化、最小化、移动、选中、单击、双击中、单击、
34、双击 3/1/202239编辑编辑ppt39整体整体-部分结构部分结构表示界面元素之间的构成关系,例如:表示界面元素之间的构成关系,例如:窗口窗口 与与 其中的菜单、按钮、图符、对话框、滚动条其中的菜单、按钮、图符、对话框、滚动条表示界面对象在操作中的逻辑层次表示界面对象在操作中的逻辑层次反映上、下两层命令之间的关系反映上、下两层命令之间的关系例:例:框架窗口框架窗口3/1/202240编辑编辑ppt40框架窗口框架窗口主菜单主菜单下拉菜单下拉菜单视窗视窗工具条工具条滚动条滚动条按钮按钮111*1*1112111*3/1/202241编辑编辑ppt41一般一般- -特殊结构特殊结构表示较一般的
35、界面类和较特殊的界面类之间的关系表示较一般的界面类和较特殊的界面类之间的关系 自定义的类之间的一般自定义的类之间的一般- -特殊关系特殊关系用一般用一般- -特殊结构特化可复用类特殊结构特化可复用类CDialog复用复用操作操作属性属性对话框对话框 A A3/1/202242编辑编辑ppt42关联关联表示界面类之间一个有特定意义的关系,例如:表示界面类之间一个有特定意义的关系,例如:按钮按钮11对话框对话框消息消息 高层命令到低层命令高层命令到低层命令界面对象之间的消息界面对象之间的消息基本命令的执行基本命令的执行从界面对象向功能对象发消息从界面对象向功能对象发消息 信息输出信息输出从功能对象
36、向界面对象发消息从功能对象向界面对象发消息工具条工具条1*3/1/202243编辑编辑ppt4312.5 可视化编程环境下的人机界面设计可视化编程环境下的人机界面设计(1)问题的提出)问题的提出(2)所见即所得的界面开发)所见即所得的界面开发(3)设计的必要性)设计的必要性为实现提供依据为实现提供依据为了满足人机交互的需求,人机界面中要使用哪些界面对象?为了满足人机交互的需求,人机界面中要使用哪些界面对象?交互过程中的各项输入和输出应由哪些界面对象完成?交互过程中的各项输入和输出应由哪些界面对象完成?如何通过界面对象类之间的各种关系体现人机交互命令的组织结如何通过界面对象类之间的各种关系体现人
37、机交互命令的组织结构与层次?构与层次?如何通过界面对象和功能对象之间的消息实现它们之间的动态联如何通过界面对象和功能对象之间的消息实现它们之间的动态联系系?降低失败的风险降低失败的风险设计策略需要改进设计策略需要改进类库的存在类库的存在以所见即所得的定义界面对象的各种物理属性更为直接以所见即所得的定义界面对象的各种物理属性更为直接3/1/202244编辑编辑ppt44(4)基于可视化编程环境的设计策略)基于可视化编程环境的设计策略类的设立类的设立首先想到复用首先想到复用Cdialog复用复用CMysystemDig CEdit 复用复用通过继承复用通过继承复用直接复用直接复用3/1/20224
38、5编辑编辑ppt45属性属性忽略物理特征,着重表示逻辑特征忽略物理特征,着重表示逻辑特征设计阶段不必关心描述界面物理特征的属性设计阶段不必关心描述界面物理特征的属性诸如:大小、形状、位置、颜色、边框、底纹、诸如:大小、形状、位置、颜色、边框、底纹、图案式样、三维效果等,图案式样、三维效果等,由实现人员去自主处理效果更好,效率更高由实现人员去自主处理效果更好,效率更高以主要精力定义描述界面逻辑特征的属性以主要精力定义描述界面逻辑特征的属性表现命令的组织结构的属性、表现命令的组织结构的属性、例如:菜单类的每个选项表示什么命令例如:菜单类的每个选项表示什么命令表现界面元素之间组成关系和关联的属性表现
39、界面元素之间组成关系和关联的属性例如:对话框中包含哪些控件例如:对话框中包含哪些控件3/1/202246编辑编辑ppt46CMysystemDigCMysystemDig SetDlgItemText 操作操作显式地表示从高层类继承的操作显式地表示从高层类继承的操作例:例:CDialogCDialog复用复用 3/1/202247编辑编辑ppt47整体整体- -部分结构部分结构表现界面的组织结构和命令层次表现界面的组织结构和命令层次通过整体-部分结构表现界面对象之间的组成关系和人机交互命令的层次关系与采用其它界面支持系统的策略相同区分界面对象的普通属性和它的部分对象区分界面对象的普通属性和它的
40、部分对象有些组成部分被作为对象的一个普通属性有些组成部分被作为对象的一个普通属性例如下拉菜单的选项,窗口的边框有些组成部分则被作为一个部分对象有些组成部分则被作为一个部分对象例如对话框的一个下拉菜单或按钮区分两种情况的依据区分两种情况的依据环境类库有没有给出这种组成部分的类定义环境类库有没有给出这种组成部分的类定义3/1/202248编辑编辑ppt48一般一般- -特殊结构特殊结构多从可复用类直接继承多从可复用类直接继承例:例:对话框对话框 复用复用 对话框对话框 A A对话框对话框 B B编辑框编辑框 复用复用 按钮按钮 复用复用 1 13 31 11 1 普通策略普通策略2 21 1对话框
41、对话框 复用复用 对话框对话框 A A 对话框对话框 B B编辑框编辑框 复用复用 按钮按钮 复用复用 1 11 11 15 51 11 11 13 3直接继承可复用类的策略直接继承可复用类的策略3/1/202249编辑编辑ppt49消息消息忽略自动实现的消息忽略自动实现的消息注意需要编程实现的消息注意需要编程实现的消息1、界面对象接收到一个操作事件,通过它的一个操作向处理该事件的功能对象所发送的消息。2、从功能对象向完成其输入/输出的界面对象发送的消息。3、其它:凡是需要通过手工编程来实现的消息,都要在设计中加以表示。3/1/202250编辑编辑ppt5013.1 什么是控制驱动部分什么是控
42、制驱动部分控制驱动部分控制驱动部分是是OOD模型的外围组成部分之一,由系统中模型的外围组成部分之一,由系统中全体主动类构成。这些主动类描述了整个系统中所有的主全体主动类构成。这些主动类描述了整个系统中所有的主动对象,每个主动对象是系统中一个控制流的驱动者。动对象,每个主动对象是系统中一个控制流的驱动者。 控制流控制流(control flow)进程(进程(process)和线程()和线程(thread)的总称)的总称有多个控制流并发执行的系统称作有多个控制流并发执行的系统称作并发系统并发系统(多任务系统)(多任务系统)第第13章章 控制驱动部分的设计控制驱动部分的设计3/1/202251编辑编
43、辑ppt51为什么需要控制驱动部分为什么需要控制驱动部分并发行为是现实中固有的并发行为是现实中固有的当前大量的系统都是并发系统(多任务系统),例如:当前大量的系统都是并发系统(多任务系统),例如:外围设备与主机并发工作的系统外围设备与主机并发工作的系统有多个窗口进行人机交互的系统有多个窗口进行人机交互的系统多用户系统多用户系统多个子系统并发工作的系统多个子系统并发工作的系统单处理机上的多任务系统单处理机上的多任务系统多处理机系统多处理机系统多任务的设置多任务的设置描述问题域固有的并发行为描述问题域固有的并发行为表达实现所需的设计决策表达实现所需的设计决策隔离硬件、操作系统、网络的变化对整个系统
44、的影响隔离硬件、操作系统、网络的变化对整个系统的影响3/1/202252编辑编辑ppt5213.2 相关技术问题相关技术问题(1)由系统总体方案决定的实现条件:)由系统总体方案决定的实现条件:计算机硬件计算机硬件性能、容量和性能、容量和CPU数目数目操作系统操作系统对并发和通讯的支持对并发和通讯的支持网络方案网络方案网络软硬件设施、网络拓扑结构、通讯速率、网络软硬件设施、网络拓扑结构、通讯速率、网络协议等网络协议等软件体系结构软件体系结构(详后)(详后)编程语言编程语言对进程和线程的描述能力对进程和线程的描述能力其它商品软件其它商品软件如数据管理系统、界面支持系统、构件库等如数据管理系统、界面
45、支持系统、构件库等对共享和并发访问的支持对共享和并发访问的支持3/1/202253编辑编辑ppt53(2 2)软件体系结构)软件体系结构抽象地说,软件体系结构描述了构成系统的元素、这些抽象地说,软件体系结构描述了构成系统的元素、这些元素之间的相互作用、指导其组合的模式以及对这些模元素之间的相互作用、指导其组合的模式以及对这些模式的约束式的约束 Mary ShawMary Shaw 几种典型的软件体系结构风格几种典型的软件体系结构风格管道与过滤器风格(管道与过滤器风格(pipe and filter stylepipe and filter style)数据抽象风格(数据抽象风格(data ab
46、straction styledata abstraction style)面向对象风格(面向对象风格(object-oriented styleobject-oriented style)隐式调用风格(隐式调用风格(implicit invocation styleimplicit invocation style)层次风格(层次风格(layered stylelayered style)仓库风格(仓库风格(repository stylerepository style)黑板风格(黑板风格(blackboard styleblackboard style)解释器模型(解释器模型(inter
47、preter modelinterpreter model)进程控制风格(进程控制风格(process control styleprocess control style)客户客户- -服务器风格(服务器风格(client-server styleclient-server style) 3/1/202254编辑编辑ppt54主机主机+仿真终端体系结构仿真终端体系结构文件共享体系结构文件共享体系结构客户客户-服务器体系结构服务器体系结构二层客户二层客户-服务器体系结构服务器体系结构三层客户三层客户-服务器体系结构服务器体系结构对等式客户对等式客户-服务器体系结构服务器体系结构瘦客户瘦客户-服
48、务器体系结构服务器体系结构浏览器浏览器-服务器体系结构服务器体系结构(3)分布式系统的体系结构风格)分布式系统的体系结构风格3/1/202255编辑编辑ppt55进程(进程(process)概念出现之前,并发程序设计困难重重)概念出现之前,并发程序设计困难重重主要原因:主要原因:并发行为彼此交织,理不出头绪并发行为彼此交织,理不出头绪与时间有关的错误不可重现与时间有关的错误不可重现进程概念的提出使这个问题得到根本解决进程概念的提出使这个问题得到根本解决进程的全称是进程的全称是顺序进程顺序进程(sequential process),其基本思),其基本思想是把并发程序分解成一些顺序执行的进程,使
49、得:想是把并发程序分解成一些顺序执行的进程,使得:每个进程内部不再包含并发行为每个进程内部不再包含并发行为所以叫做顺序进程,其设计避免了并发问题所以叫做顺序进程,其设计避免了并发问题多个进程之间是并发(异步)执行的多个进程之间是并发(异步)执行的所以能够构成并发程序所以能够构成并发程序(4 4)系统的并发性)系统的并发性3/1/202256编辑编辑ppt56线程线程(Thread )由于并行计算的需要,要求人为地在顺序程序内部定由于并行计算的需要,要求人为地在顺序程序内部定义和识别可并发执行的单位。义和识别可并发执行的单位。因此后来的操作系统大多支持因此后来的操作系统大多支持线程线程概念。概念
50、。线程与进程的区别:线程与进程的区别:进程既是处理机分配单位,也是存储空间、设备等资进程既是处理机分配单位,也是存储空间、设备等资源的分配单位(重量级的控制流);源的分配单位(重量级的控制流);线程只是处理机分配单位(轻量级的控制流)线程只是处理机分配单位(轻量级的控制流) ;一个进程可以包含多个线程,也可以是单线程的。一个进程可以包含多个线程,也可以是单线程的。控制流控制流是进程和线程的总称。是进程和线程的总称。3/1/202257编辑编辑ppt57应用系统的并发性应用系统的并发性从网络、硬件平台的角度看:从网络、硬件平台的角度看:分布在不同计算机上的进程之间的并发分布在不同计算机上的进程之
51、间的并发在多在多CPU的计算机上运行的进程或线程之间的并发的计算机上运行的进程或线程之间的并发在一个在一个CPU上运行的多个进程或线程之间的并发上运行的多个进程或线程之间的并发从应用系统的需求看:从应用系统的需求看:需要跨地域进行业务处理的系统需要跨地域进行业务处理的系统需要同时使用多台计算机或多个需要同时使用多台计算机或多个CPU进行处理的系统进行处理的系统需要同时供多个用户或操作者使用的系统需要同时供多个用户或操作者使用的系统需要在同一时间执行多项功能的系统需要在同一时间执行多项功能的系统需要与系统外部多个参与者同时进行交互的系统需要与系统外部多个参与者同时进行交互的系统3/1/20225
52、8编辑编辑ppt58处理应用系统并发性的例子处理应用系统并发性的例子见教材见教材节节例例1 例例73/1/202259编辑编辑ppt59例例5:用多进程实现遥感信息的输入、处理和显示:用多进程实现遥感信息的输入、处理和显示输入进程输入进程操作操作数据数据数据处理进程数据处理进程操作操作数据数据显示进程显示进程操作操作数据数据数据数据数据数据IPCIPC数据数据数据数据显示屏显示屏地面接收设备地面接收设备输入输入输出输出遥感信息处理系统遥感信息处理系统3/1/202260编辑编辑ppt60例例6:用多线程实现遥感信息的输入、处理和显示:用多线程实现遥感信息的输入、处理和显示输输入
53、入线线程程数数据据处处理理线线程程显显示示线线程程数据数据数据数据数据数据输入输入输出输出地面接收设备地面接收设备显示屏显示屏遥感信息处理进程遥感信息处理进程3/1/202261编辑编辑ppt61业务处理进程业务处理进程 1操作操作输输入入线线程程数数据据处处理理线线程程显显示示线线程程遥感信息处理进程遥感信息处理进程数据数据数据库管理系统数据库管理系统数据库数据库数据数据数据数据业务处理进程业务处理进程 n操作操作数据数据IPC/RPC例例7 7:同时采用多进程和多线程:同时采用多进程和多线程 3/1/202262编辑编辑ppt6213.3 如何设计控制驱动部分如何设计控制驱动部分(1 1)
54、选择软件体系结构风格)选择软件体系结构风格二层客户二层客户- -服务器体系结构服务器体系结构(数据)服务器(数据)服务器客户机客户机三层客户三层客户- -服务器体系结构服务器体系结构数据服务器数据服务器应用服务器应用服务器客户机客户机 3/1/202263编辑编辑ppt63考虑分布方案之前,暂时将系统看作集中式的考虑分布方案之前,暂时将系统看作集中式的确定分布方案之后,将对象分布到各个处理机上确定分布方案之后,将对象分布到各个处理机上以每台处理机上的类作为一个包以每台处理机上的类作为一个包集中式集中式类图类图分布到不同结点上分布到不同结点上结点A包A结点B包B结点C包C(2 2)确定系统分布方
55、案)确定系统分布方案3/1/202264编辑编辑ppt64系统分布系统分布 包括包括功能分布功能分布和和数据分布数据分布在面向对象的系统中都体现于在面向对象的系统中都体现于对象分布对象分布原则:原则:减少远程传输,便于管理减少远程传输,便于管理对象分布对象分布软件体系结构软件体系结构系统系统功能功能在哪些结点提供在哪些结点提供数据数据在哪些结点长期存储管理,在哪些结点长期存储管理,在哪些结点在哪些结点临时使用临时使用参照参照用况用况 把把合作紧密的对象合作紧密的对象尽可能分布在同一结点尽可能分布在同一结点追踪追踪消息消息 把把一个控制流经历的对象一个控制流经历的对象分布在同一结点分布在同一结点
56、3/1/202265编辑编辑ppt65分布在每个结点上的对象,都需要相应的类来创建分布在每个结点上的对象,都需要相应的类来创建(1)如果一个类只需要在一个结点上创建对象实例)如果一个类只需要在一个结点上创建对象实例把这个类分布在该结点上把这个类分布在该结点上(2)如果一个类需要在多个结点上创建对象实例)如果一个类需要在多个结点上创建对象实例把这个类分布到每个需要创建其实例的结点上把这个类分布到每个需要创建其实例的结点上其中一个作为正本,其他作为副本其中一个作为正本,其他作为副本类的分布类的分布:根据对象分布的需要:根据对象分布的需要3/1/202266编辑编辑ppt66(a) 一个集中式类图1
57、*ABCDEFG*1服务器HIJABCDEFG*1(b) 服务器包1*副本DHIJ副本A客户机(c) 客户机包(第一种策略)(d) 客户机包(第二种策略)1*副本DHIJ客户机callcallcall例例3/1/202267编辑编辑ppt6713.3.3 识别控制流识别控制流(1)以结点为单位识别控制流)以结点为单位识别控制流不同结点上程序的并发问题已经解决不同结点上程序的并发问题已经解决考虑在每个结点上运行的程序还需要如何并发考虑在每个结点上运行的程序还需要如何并发 (2)从用户需求出发认识控制流)从用户需求出发认识控制流有哪些任务必须在同一台计算机上并发执行有哪些任务必须在同一台计算机上并
58、发执行 (3)从用况认识控制流)从用况认识控制流 关注描述如下三类功能的用况关注描述如下三类功能的用况要求与其他功能同时执行的功能要求与其他功能同时执行的功能用户随时要求执行用户随时要求执行 的功能的功能处理系统异常事件功能处理系统异常事件功能(4)参照)参照OOA模型中的主动对象模型中的主动对象(5)为改善性能而增设的控制流)为改善性能而增设的控制流高优先级任务、低优先级任务、紧急任务高优先级任务、低优先级任务、紧急任务(6)实现并行计算的控制流)实现并行计算的控制流(线程)(线程)(7)实现结点之间通讯的控制流)实现结点之间通讯的控制流(进程)(进程)(8)对其它控制流进行协调的控制流)对
59、其它控制流进行协调的控制流3/1/202268编辑编辑ppt68active 类 名UML1的主动类表示法的主动类表示法类 名process类 名thread类 名UML2的主动类表示法的主动类表示法13.3.4 用主动对象表示控制流用主动对象表示控制流控制流是主动对象中一个主动操作的一次执行。其间可控制流是主动对象中一个主动操作的一次执行。其间可能要调用其他对象的操作,后者又可能调用另外一些对能要调用其他对象的操作,后者又可能调用另外一些对象的操作,这就是一个控制流的运行轨迹。象的操作,这就是一个控制流的运行轨迹。 问题:问题:一个主动类可以有多个主动操作和若干被动操作,这种一个主动类可以有
60、多个主动操作和若干被动操作,这种表示法不能显式地表示哪个(哪些)操作是主动操作。表示法不能显式地表示哪个(哪些)操作是主动操作。3/1/202269编辑编辑ppt69用关键词表示主动操作用关键词表示主动操作类名类名进程进程操作名操作名() 线程线程操作名操作名() 线程线程操作名操作名()操作名操作名()active类名类名进程进程操作名操作名() 线程线程操作名操作名() 线程线程操作名操作名()操作名操作名()3/1/202270编辑编辑ppt70显示地表示由进程创建线程显示地表示由进程创建线程类B线程 T1create create 类C线程 T2类A进程 P3/1/202271编辑编辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年文化娱乐安全考试题库及答案
- 2026年教师资格证考试《教育公共基础知识》题库及答案(共50题)
- 2026年注册安全工程师考试道路运输和其他安全安全生产实务(初级)应急管理试卷与参考答案
- 2026年水浒传题及答案
- 2026年医疗废物管理知识试题(自用)附答案
- 莆田市城厢区辅警(协警)招聘考试题库及答案
- 2026年语言学理论自测题与答案
- 2026年国家基本公共卫生服务项目健康教育培训试题测试题库含答案
- 2026年保险法试题及答案5
- (2026版)基于镫骨底板及底板上结构的先天性听骨链畸形新分型及其手术策略和预后评估专家共识培训
- 电力工程项目投标文件撰写模板
- GCP汇报课件教学课件
- 平房灭火救援授课课件
- 判决书不公开申请书模板
- GB/T 5780-2025紧固件六角头螺栓C级
- 《施工组织设计专项施工方案资料》铁路客运专线土建工程全套施工组织设计第八章-安全目标和安全保证体系及措施
- 品质部纪律管理办法
- 《四川省信息化项目费用测算标准》(修订征求意见稿)
- T/CBMCA 011-2020瓷质砖背胶
- DB4201-T 704-2024 武汉市党政机关物业管理服务规范
- JT-T-1284-2020低平板半挂车技术规范
评论
0/150
提交评论