版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.3 面向对象设计方法OOD可分为两个阶段系统设计阶段 目标:设计系统的整体结构, 选择构造系统的策略,包括:分解系统为子系统 子系统到硬件的映射数据管理策略控制策略全局控制流机制的策略对象设计阶段4.3.1 将OO分析模型转换到OO设计模型用例对象-关 系模型类/对象模型属性、子 系 统 设 计类及对象设计消息设计责任设计分析模型设计模型(Pressman)操作、协作者对象-行为模型OOD过程流 对象设计OOA系统设计 4.3.2 OOD模型与活动 OOD模型交互图类图主题图详细说明控制驱动部分问题域部分人机交互部分数据接口部分从一个侧面观察OOD模型包括几个主要部分从另一个侧面观察OOD
2、模型每个部分是如何运用OO概念表达的4.3.2.1 问题域部分的设计 OOA的模型直接放到OOD的问题域部, OOD阶段对OOA结果进行改动和增补。 根据实现条件,对OOA产生模型的类与对象、结构、属性、操作进行 组合与分解,增加必要的类、属性和关系。实现条件对问题域部分的影响编程语言硬件、操作系统及网络设施复用支持数据管理系统界面支持系统问题域的设计过程输入OOA模型,进行必要的修改逐一考察影响问题域部分设计的实现条件,对模型进行调整、补充建立分析文档和设计文档之间的映射关系问题域的设计内容及策略针对编程语言支持能力的调整增加一般类,提供共同协议未实现复用采取的设计策略提高性能为实现对象永久
3、存储所做的修改完善对象的细节定义对象实例修改或补充主题图、交互图和详细说明针对编程语言支持能力的调整对继承的调整简单转换重新定义对象类保持分类,剥离多继承信息对多态性的调整汽车客货两用车货车客车针对单继承的调整:分解多继承, 采用整体/部分结构映射汽车1,m货运客运汽车用途汽车客货两用车货车客车1,m货运客运汽车用途汽车1针对单继承的调整:分解多继承, 采用实例连接映射货车客车汽车针对单继承的调整:分解多继承, 展平为单继承客货两用车汽车客货两用车货车客车两种结构的变通冷藏车汽车制冷设备冷藏车汽车制冷设备仅用一般-特殊结构两种结构同 用冷藏车汽车制冷设备仅用整体-部分结构为实现复用采取的设计策
4、略直接复用删除可复用类的多余信息通过继承复用删除多余信息,通过继承而复用收款机ABC现钞收款机DEF现钞收款机ABCDEFXYZZXY为支持复用建立结构收款机类成为可供本领域其它系统复用的领域构件用整体-部分结构实现复用车床机床刨床起重机电动机钻床送料车完善对象的细节弥补OOA模型的不足解决OOA阶段推迟考虑的问题设计对象的服务设计表示关联的属性设计表示整体-部分关系的属性 取消没有特殊属性的特殊类大学生研究生研究方向指导教师学生姓名学号班级研究生研究方向指导教师学生姓名学号班级 通过增加属性简化一般-特殊结构人员男人女人美国人日本人人员性别国籍中国人OOA类与OOD类的映射表映射方式OOA类
5、OOD类1 = 11 to 11 to mm to 1m to m0 to 1建立与OOA文档的映射4.3.2.2 人机交互部分的设计 虽然好的人机交互部分不可能挽救一个功能很差的软件, 但性能很差的人机交互部分将使一个功能很强的产品变的不可接受! 人机交互部分的需求分析分析活动者与系统交互的人从use case分析人机交互分析处理异常事件的人机交互命令的组织输出信息的组织结构命令的组织(导航方式)基本命令及其命令步的结构(a)线性结构(b)树形结构(c)半序网状结构(d)一般网状结构高层命令及其结构高层命令结构基本命令组合成高层命令的常见角度:按功能的相似性按命令所属的子系统 人机界面的设计
6、原则使用简便一致性启发性减少人脑记忆的负担减少重复的输入容错性及时反馈其他黄金规则 在有关界面设计的著作中, Theo Mandel创造了三条黄金原则:置用户于控制之下减少用户的记忆负担保持界面一致 黄金规则:置用户于控制之下 Mandel定义的一组允许用户操作控制的原则:以不强迫用户进入不必要的或不希望的动作的方式来定义交互方式提供灵活的交互允许用户交互可以被中断和撤消当技能级别增加时可以使交互流水化并允许定制交互使用户隔离内部技术细节设计应允许用户和出现在屏幕上的对象直接交互黄金规则:减少用户的记忆负担 Mandel定义了一组设计原则,使界面能够减少用户记忆负担:减少对短期记忆的要求建立有
7、意义的缺省定义直觉性的捷径界面的视觉布局应该基于真实世界的隐喻以不断进展的方式揭示信息缺省值黄金规则:保持界面一致 用户应以一致的方式展示和获取信息所有可视信息的组织均按照均按照贯穿所有屏幕显示所保持的设计标准输入机制被约束到有限的集合,在整个应用中被一致地使用从任务到任务的导航机制被一致地定义和实现 Mandel定义了一组帮助保持界面一致性的设计原则允许用户将当前任务放入有意义的语境在应用系列内保持一致性如过去的交互模型已建立起了用户期望,除非有迫不得已的理由,不要改变它 人机界面的OO设计 界面支持系统窗口系统图形用户界面(GUI)可视化编程环境界面元素窗口菜单对话框图符滚动条其他人机界面
8、的OO设计 设计过程与策略选择和掌握界面支持系统硬件、操作系统及编程语言界面实现的支持级别界面风格与视感其他根据人机交互需求选择界面元素系统的启动高层命令组织结构的实现基本命令的执行详细交互过程的输入与输出异常命令的输入人机界面的OO设计 设计过程与策略用OO概念表示界面元素对象和类属性和服务整体 部分结构一般 特殊结构关联消息连接应用程序主窗口人机界面中的整体部分结构视窗1,1汽车用途滚动条按钮主菜单下拉菜单工具条1,m1,11,21,m1,1CDialog复用对话框A用一般特殊结构特化可复用类工具条按钮对话框11界面对象之间的关联1,m消息连接输入设备高层命令消息输入事件/消息接收分发机制
9、界面对象(接收高层命令)界面对象(接收基本命令)启动下一层命令接受者基本命令消息输入界面对象(接收命令步的输入)功能对象(完成命令要求的功能)命令步信息传递输出提示命令步信息输入命令信息传送从命令输入到命令处理所需消息界面对象通过消息主动地获取事件输入设备事件队列界面对象输入事件取事件输入过程中的输出界面对象(命令输入)输入界面对象(负责输出和输入)界面对象(负责输出)功能对象(产生输出信息)输出设备输入信息输出提示信息输出处理结果与输出有关的消息传感器图形项目传感器控制系统人机交互部分设计举例调用项目传感器状况窗口显示菜单调用菜单活动传感器项目调用项目传感器报警窗口显示菜单调用菜单活动位置传
10、感器报警项目调用项目传感器窗口坐标4.3.2.3任务管理(控制驱动)部分的设计 1.为什么要有任务管理部分 任务管理部分的任务:系统如何并发执行要设计哪些控制流 根据什么决定上述问题:问题域和系统责任所选择的实现条件 把任务管理(控制驱动)部分作为OOD模型的一个独立组成部分来设计,可使实现条件的变化主要影响这一部分,从而隔离对其他部分的影响。与任务管理(控制驱动)部分设计有关的技术 系统总体方案软件体系结构分布式系统的体系结构风格系统的并发性 与任务管理(控制驱动)部分设计有关的技术 系统总体方案 总体方案中所决定的下述问题是模型中任务管理(控制驱动)部分设计的基本实现条件:计算机硬件操作系
11、统网络方案软件体系结构编程语言其他商品软件 与任务管理(控制驱动)部分设计有关的技术 软件体系结构 典型的软件体系结构风格:管道与过滤器风格数据抽象风格面向对象风格隐式调用风格层次风格仓库风格黑板风格解释器风格进程控制风格客户服务器风格主程序/子程序风格与任务管理(控制驱动)部分设计有关的技术 分布式系统的体系结构风格 历史上出现过的几种分布式体系结构风格:主机+仿真终端体系结构文件共享体系结构客户服务器体系结构二层客户服务器体系结构对等式客户服务器体系结构三层客户服务器体系结构瘦客户服务器体系结构浏览器服务器体系结构与任务管理(控制驱动)部分设计有关的技术 系统的并行性 当前应用系统的并行性
12、:分布在通过网络相连的不同计算机上的进程之间的并发在多CPU的计算机上运行的多个进程或线程之间的并发在单CPU的计算机上运行的多个进程或线程之间的并发如何设计任务管理(控制驱动)部分选择软件体系结构风格确定系统分布方案对象的分布类的分布类图的划分识别控制流以节点为单位识别控制流从用户需求出发识别控制流从use case识别控制流参照OOA模型中的主动对象为改善性能而增加的控制流实现并行计算的控制流实现节点之间通信的控制流对其他控制流进行协调的控制流用主动对象表示控制流把任务管理(控制驱动)部分看做一个主题考虑系统中并发执行的任务的几个角度:事件驱动的任务时钟驱动的任务高优先级任务低优先级任务关
13、键任务协调者任务把集中式的类图分散到各个节点上作为主题集中式类图节点A主题节点B主题节点C主题分布到网络的不同节点上类图的划分1*ACBDFEG集中式类图*IJH11112222按节点划分主题1. 服务器1*CBDFEGA服务器主题2. 客户机客户机主题(第一种策略)HIJ*1A副本D副本2. 客户机客户机主题(第二种策略)HIJ*1D副本传感器控制系统任务管理部分设计举例任务协调器协调任务名字描述优先级服务协调通信初始化开始准备好结束10,m传感器任务描述举例任务1名字: 传感器读出。描述: 该任务在需要脉冲调幅时负责读 出传感器。包含: 传感器.样本。优先级:中等。协调: 时钟驱动,100
14、ms的时间间隔。通信: 从输入线(传感器)得到值, 给雷达邮箱发送值。4.3.2.4 数据管理部分的设计 数据管理部分提供了数据在数据管系统中存储和检索对象的基本结构,它分离了数据管理方案的影响 (不管该方案是普通文件、关系型数据库、面向对象数据库或其它方式.)如何设计数据管理部分 (1)数据存放方法设计(2)相应服务的设计 为每个需存储其对象的类增加一个属性和服务对象存储方案与数据接口的设计策略 针对RDBMS的设计对象及对关系数据库的使用对象对象对象应用系统数据接口RDBMS关系数据库用关系数据库存储对象对象1类A对象与数据库表元组的不同映射方式元组1元组2.元组n表A数据库对象2对象n实
15、例化RDBMS数据接口内存空间对象类A元组1元组2.元组n表A数据库实例化RDBMS数据接口内存空间面向对象设计实例:简化的C+类库管理系统需求描述:管理用C+语言定义的类用户能够方便地向类库中添加新类,并建立新类与库中原有类的关系用户能够通过类名从库中查询出指定的类用户能够查看或修改与指定类有关的信息用户能够从类中删除指定的类用户能够在浏览窗中方便、快速地浏览当前类的父类和子类具有“联想”浏览功能用户能查看或修改某个类的指定的成员函数的源代码本系统是一个简化的多用户系统,每个用户都可以建立自己的类库,不同类库之间互不干扰对于用户误操作或错误的输入,能提示并继续稳定运行系统易学,用户界面应是G
16、UID的OOA阶段建立的类库管理系统对象模型类库库名类条目列表插入类条目删除类条目1+0,n1类条目类名父类列表设置类名添加父类成员函数函数名访问权虚基类标志父类名字访问权虚基类标志数据成员数据名访问权数据类型0,n20,n30,m用户拥有面向对象设计(简化的C+类库管理系统)设计类库结构 两种可把类条目组织成类库的数据结构:二叉树链表: 容易表示多重继承设计问题域子系统对对象模型做补充和细化类条目(ClassEntry)类库(ClassEntryLink)父类(ClassBase)、成员函数(ClassFun) 和数据成员(ClassData)类条目缓冲区(ClassEntryBuffer)
17、类库(ClassEntryLink)示意图下一个ClassEntryClassEntryLinkClassEntryClassBaseClassDataClassFun下一个ClassBase下一个ClassFun 下一个ClassData类条目缓冲区(ClassEntryBuffer) 为便于处理当前类,额外设置类条目缓冲区,它是从ClassEntry类派生出来的类,除继承ClassEntry中的数据成员和成员函数外,主要增加用于域窗口或类链交换数据的成员函数ClassEntryClassEntryBuffer类条目类名父类列表成员函数列表数据成员列表类条目类名父类链表头指针成员函数链表头指
18、针数据成员链表头指针注释指向下一类条目指针新增数据成员新增操作设置类名添加父类删除父类更改父类添加成员函数删除成员函数更改成员函数添加数据成员删除数据成员更改数据成员查找并取出指定父类信息查找并取出指定成员函数信息查找并取出指定数据成员信息设置类名添加父类删除父类更改父类添加成员函数删除成员函数更改成员函数添加数据成员删除数据成员更改数据成员具体化类库库名类条目列表插入类条目删除类条目存储类库读出类库具体化为类库库名类链头指针插入类条目删除类条目把内存中类链表写到文件读文件并在内存建立链表按类名查找类条目并把内容复制到指定地点新增操作具体化父类名字访问权虚基类标志新增数据成员父类名字访问权虚基类标志指向下一个父类的指针成员函数函数名访问权虚基类标志返回值类型参数代码新增数据成员成员函数函数名访问权虚基类标志返回值类型参数代码指向下一个成员函数的指针数据成员数据名访问权数据类型新增数据成员数据成员数据名访问权数据类型指向下一个数据成员的指针面向对象设计(简化的C+类库管理系统)设计人机交互子系统窗口登录窗口(用户输入账号、确认/放弃)主窗口(创建/浏览/存储/退出)创建窗口(输入新类名/选择已有类名,三个分组框分别管理父类、成员函数和数据成员,每组框有:添加/编辑/删除)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纸壳建筑废物利用方案设计
- 建筑层高处理方案设计规范
- 张掖市土工膜施工方案
- 活性炭吸附施工方案设计
- 京口区塑胶跑道施工方案
- 防潮仿古建筑安装方案设计
- 大型公共建筑方案设计要求
- 环保企业废水处理工艺方案设计
- 小学语文诗词诵读教学集体备课方案
- 月子中心客户体验优化方案
- 项目合同条款审查清单模板
- 2025辽宁沈阳市汇产资产经营有限公司面向社会招聘13人笔试历年参考题库附带答案详解(3卷合一)
- 化工维修安全考试题库及答案解析
- 引车员岗位考试试题及答案
- 厦门信息技术技能测试题目及答案
- 2025江苏宿迁市泗阳县县属国有企业招聘26人笔试历年参考题库附带答案详解
- 2026国网青海省电力公司提前批校园招聘考试参考试题及答案解析
- 子宫发育畸形课件
- 复盘:将经验转化为能力
- 充电桩维修安全培训课件
- 2025年财富管理市场客户需求与服务升级下的行业品牌建设报告
评论
0/150
提交评论