




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息系统的开发与管理教程( 第二版) 中国人民大学:左美云 第七章 一、面向对象方法 对象 对象是一些属性及专用服务的封装体,它是问题空 间中一些东西的抽象。 由以上定义可知,对象就是我们在问题空间中要考 虑的那些人或事物。它具有一组属性和一组操作。 这些属性的值刻画了一个对象的状态,而这些操作 是对象的行为,通过它们改变对象的状态(即属性 值)。 数据和操作封装于对象的统一体中,而不是分开。 这样,对象就具有较强的独立性和自治性,具有很 好的模块性,为软件重用奠定了坚实的基础。 与对象相关的一个概念是对象类(Object Class) 。对象类简称类,是有相似属性和行为的多个对象 的集合。例如,对象“客车”、“货车”、“拖车”等, 它们属一个共同的类“车辆”。 封装和继承 封装即信息隐藏。对象是一个很好的封装体。它向 外提供的界面包括一组数据结构(属性)和一组操 作(服务),而把内部的实现细节(如函数体)隐 蔽起来。 继承指对象继承它所在类的结构、操作和约束,也 指一个类(子类)继承另一个类(父类)的结构、 操作和约束。继承体现了一种共享机制。 继承一个单一的父类时叫单继承,如果有两个以上 的父类则是多继承。前者继承关系是单一的,体系 结构表现为树;后者继承关系复杂,呈网状结构。 继承的作用在于信息组织和分类,简化对象及类的 创建工作量。利用继承性,只要在原有类的基础上 增加、删除或修改少量数据和方法就可以得到子类 。 消息 一条消息告诉一个对象做什么,它指出:发送者、接 收者、需要执行的服务、需要的参数。 例如,对象汽车具有“行驶”这项操作,为了让汽车以 时速50公里的时速行驶,需要向汽车对象传送“行驶” 和“时速50公里”的消息,来触发这个对象。 值得注意的是,“消息传递”与传统的“过程调用”的区 别。 发送消息只是触发对象。接受对象收到消息后,按消 息及消息调用自己的操作来改变状态或返回结果。因 此,同样的输入参数可能因对象的初始状态不同而得 到不同的终态,或输出不同的结果。而过程调用则只 要输入相同的参数,输出总是一样的。 OO遵循的法则及其特性 三个构造法则: 区分对象及其属性,例如,区分一棵树和树的大 小; 区分整体对象及其组成部分,例如,区分一棵树 和树枝; 不同对象类的形成及区分,例如,所有树的类和 所有车辆的类。 OO的优良特性 抽象性、封装性、继承性、多态性。 多态性 多态性又叫多形性,指相同的操作(或函数 ,或过程)可作用于多种类型的对象并获得 不同的结果。 在面向对象方法中,可给不同类型的对象发 送相同的消息,不同的对象分别作出不同的 处理。 例如,给整数对象和复数对象定义不同的数 据结构和加法运算,但可以给它们发送相同 的消息“做加法运算”,整数对象接收此消息 后做整数加法,复数对象则做复数加法,产 生不同的结果。多态性增强了软件的灵活性 、重用性、可理解性。 二、面向对象分析 面向对象分析的特点 面向对象的分析(OOA)要求把问题空间分 解成一些类或对象,找出这些对象的特点( 即属性和服务),以及对象间的关系(一般/ 特殊,整体/部分关系),并由此产生一个规 格说明。 OOA有助于改善:问题空间的理解,人与人 之间的通讯和需求的不断变化。 OOA由五个主要步骤构成:标识对象,标识 结构,定义主题,定义属性(及实例连接) ,定义服务(及消息连接)。 标识对象 寻找对象:寻找对象应从问题空间、文字资 料和图片资料入手,寻找结构、其他系统、 设备、要记住的事件、人扮演的角色、地点 和组织单元等,以便发现可能的对象。 挑剔对象。对那些不必记住的事物与服务, 单个属性或派生结果(如“年龄”是“出生日期 ”的派生结果),就要考虑它们可能并不是对 象。 命名对象。用单个名词或形容词加名词作对 象名,尽量选择反映主题的标准词汇作对象 名。 车辆登记和发照(发驾驶执照)系统 车主购车后持相关证件到主管部门登记注册,缴纳 费用,获得牌照。注册后,登录车况信息和车主信 息。系统维护下列信息: 组织机构(名称,经理,地址,电话等); 职员(用户名,审查,开始日期,结束日期等); 车主(合法名,地址,电话等); 发照(号码,所有权证件,费用等); 注册(日期,品牌,费用等); 车辆(号码,年份,制造厂,厢体颜色,自重,载客量 ,燃料,价格等); 另外还有: 对货车:现时自重 对摩托车:自重 对拖车:燃料,载客量 对旅游拖车:厢体号,长度。 登记和发照系统中的对象 标识结构 分类结构 分类结构有助于刻画出问题空间的类成员层次。 它通过搜集公共特性,并把这种特性扩充到特例 之中,显示现实世界事件的通用性及专用性。 继承的概念是分类结构的一个重要组成部分。 定义分类结构时,要分析通用类是否表达了专用 类的共性,专用类是否表示了个性。子类把不需 继承的服务和属性标记为“X”。 组装结构 组装结构刻画了一个整体及其组成部分。例如, 一辆汽车由发动机,传动装置和刹车装置组成。 登记和发照系统中的结构 标识主题 首先,对每个对象和每个结构增加一个相应主题, 如果主题的个数超过7个左右,则进一步提炼主题 ,一旦对象和结构之间的连接得到标识,根据需要 ,把紧耦合的主题合在一起提供一个更好的模型概 观供读者理解。 然后,列出主题及主题层上各主题之间的消息连接 。 最后,对主题进行编号,在层次图上列出主题以指 导读者从一个主题到另一个主题。每一层都可以组 织成按主题划分的图。 登记和发照系统中的主题 标识属性 标识属性。 属性定位。 通用属性应放在结构的高层,特殊属性放在低层。 如果一个属性适用于大多数的特殊分类,可将其放在通 用的地方,然后在不需要的地方把它覆盖(即用“”等记 号指出不需要继承该属性)。 如果发现某个属性的值有时有意义,有时却不适用,则 应考虑分类结构。 根据发现的属性,还可修订对象。 标识实例连接。 多重性:一对一(1:1)的,一对多(1:M),多对多( M :M)。 参与性:表示实例连接是强制的还是任意的? 描述实例之间关系的符号 登记和发照系统中的属性 标识服务 服务可定义为:收到一条消息之后所执行的 处理。 服务定义了对象及类所需的行为。行为分为 : 有直接动因的行为; 进化史上的相似行为; 功能相似的行为。 标识服务(即对象的行为)的策略分别对应 于上述三类行为: 直接动因对应:状态事件响应(辅助策略) ; 进化史对应:对象生命历程(辅助策略); 功能对应:最基本的服务(基本策略)。 标识服务的基本策略 Occur(实例的增加、修改、删除和选择); Calculate(计算); Monitor(监控); 这三种基本服务提供了标识服务的基本策略,所有 的OOA模型都使用“Occur”服务; 当一个实例需要另一个实例中说明的处理结果时, 使用它的“Calculate”服务; 而有关实时处理的那一部分将使用“Monitor”服务 , “Monitor”服务执行对外界系统、设备或用户的 运行监控。 对象生命历程的辅助策略 定义基本的对象生命历程序列:增加、修改 、选择和删除; 检查每一步的演变:扩展每一步,反映出增 加、修改、删除的演变; 增加基本序列:对象或分类结构响应其他事 件吗? 增加服务:根据扩展的每一步增加服务,一 般所增加的服务是对象的基本服务的演变。 状态事件响应的辅助策略 定义系统的主要状态; 对每一个状态,列出外部事件和所需的响应 ; 根据事件和响应增加服务(和消息连接); 辅助策略有助于发现可能遗漏的“Calculate” 和“Monitor”服务。 建立消息连接 首先在已经存在实例连接的对象和分类结构 之间增加消息连接。 然后检查对象和分类结构,包括封装在其中 的属性,寻找一个实例所需要的另一个实例 的服务,从中找到消息。 再次在发送者的服务说明中建立消息连接的 文档,在接收者的服务说明中建立相应的执 行服务的文档。 最后详细说明服务。 登记和发照系统中的服务 三、面向对象设计 OOD的内容 问题空间部分的设计(PDC) 人机交互部分的设计(HIC) 任务管理部分的设计(TMC) 数据管理部分的设计(DMC) 问题空间部分的设计(PDC) PDC的设计策略包括三部分:运用OOA的结果;改 进OOA的结果;增补OOA的结果。 对OOA结果的增补原因和准则包括: 重用设计和编程的类:为了重用而引进现成的类。 把问题空间专用类组合在一起:附加一个根类把所有类 组织起来。 通过增添一般类而建立协议:引进一个附加类,作为有 相似服务及相应属性的一般类。 改进性能:为改进速度,可能合并一些高度耦合的类, 还可能在类及对象中扩充一些保存临时结果的属性或一 些低层控制块。 提供数据管理部分:增加属性和服务使对象能够被保存 。 增加低层成分:增加类来反映一些低层的逻辑细节。 调节继承的支持级别:如果OOA的结果包括多继承,而 编程语言只支持单继承甚至无继承时,就要作相应调整 。 多继承展平为单继承 人机交互部分的设计(HIC) 对人分类。把人按技能层次、组织层次、不同身份进行分类 ,增加与系统交互的人的子集。 描术人及其任务脚本。对每一类人,描述其身份、目的、特 征、关键的成果因素(必须 / 想要,喜欢 / 不喜欢 / 有偏 见)熟练程度及任务剧本。 设计命令层。命令层可能以菜单屏面或菜单条或一系列图符 呈现给人们,要按使用频度及用户工作步骤排列服务名。宽 度一般为72。 设计详细的交互。考虑的准则有:一致性;操作步骤少;不 要“哑播放”,Undo;趣味与吸引力。 继续做原型。做几个可候选的原型,让人们一个一个地试用 ,要达到“臻于完善”,由衷地满意。 设计HIC类。设计HIC类,从组织窗口和部件的人机交互设 计开始,窗口作基本类,部件作属性或部分类,特殊窗口作 特殊类。每个类包括窗口的菜单条、下拉菜单、弹出菜单的 定义,每个类还定义了用来创造菜单、加亮选择等所需的服 务。 任务管理部分的设计(TMC) 识别事件驱动任务。事件驱动任务是指睡眠任务( 不占用CPU),当某个事件发生时,任务被此事件 触发,任务醒来作相应处理,然后又回到睡眠状态 。 识别时钟驱动任务。按特定的时间间隔去触发任务 进行处理,如某些设备需要周期性的数据采集和控 制。 识别优先任务和关键任务。把它们分离开来进行细 致的设计和编码,保证时间约束或安全性。 识别协调者。增加一个任务来协调诸任务,这个任 务可以封装任务之间的协作。 审查每个任务,使任务数尽可能少。 定义每个任务:包括任务名、驱动方式、触发该任 务的事件、时间间隔、如何通讯等。 OOD的评价 对每一种不同的方案有不同的设计,一个好的设计 就是经过权衡选择使整个生命周期内系统总开销最 少的那个设计。 OOD的评判标准包括:耦合、内聚、重用及其他。 OOD的其他评判标准包括结构的深度、设计的简单性和 清晰度、公认的优雅风格等。 耦合分交互耦合和继承耦合。 交互耦合指两个对象间传递消息以实现交互。这种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年自考专业(工商企业管理)考试历年机考真题集及答案详解(基础+提升)
- 驾校科四考试题及答案
- 农发行济南市章丘区2025秋招群面模拟题及高分话术
- 2025年中国中医科学院中医基础理论研究所招聘应届生(第二批)笔试高频难、易错点备考题库及完整答案详解1套
- 制定网络信息安全控制手册
- 地理考研备考指南
- 建立完善网络信息安全管理制度
- 矿山设备检修维护计划
- 夫妻双方签订的离婚协议及子女抚养费补充协议
- 绿色环保施工合同绿色施工环境保护协议
- 小学信息科技《数据与编码-探索生活中的“编码”》教学设计
- GB/T 28619-2024再制造术语
- 《传感器与检测技术》教学教案集
- 焊工工艺及技能训练教案
- DL∕T 5372-2017 水电水利工程金属结构与机电设备安装安全技术规程
- 农业生产玉米病虫害田间识别、抗性评价与防治技术
- DZ/T 0462.3-2023 矿产资源“三率”指标要求 第3部分:铁、锰、铬、钒、钛(正式版)
- DZ∕T 0338.2-2020 固体矿产资源量估算规程 第2部分 几何法(正式版)
- 农村特岗教师聘用合同书
- GB/T 232-2024金属材料弯曲试验方法
- 社区获得性肺炎教学课件
评论
0/150
提交评论