版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章 面向对象的软件工程
(3-2)首都师范大学教育技术系方海光面向对象方法的形成最初是从面向对象程序设计语言开始的,随后才逐渐形成了面向对象的分析和设计。面向对象方法于60年代末首次提出,80年代中才开始广为使用,90年代面向对象方法才成为专业人员的首选范型。对象技术正在取代传统的软件开发方法。一个重要的问题是“为什么”?传统的和面向对象的方法有何不同?2面向对象的分析,简称:OOA面向对象的设计,简称:OOD面向对象程序设计,简称:OOP面向对象的测试,简称:OOT面向对象数据库系统,简称:OODBMS面向对象计算机软件辅助工程, 简称:OOCASE3面向对象的概念面向对象方法的应用领域包括: 数据库、计算机辅助设计工程、人-机界面设计、计算机辅助教学、多媒体技术、计算机网络等诸多领域。什么是面向对象的观点?Coad和Yourdon给出的定义如下:
面向对象=对象+分类+继承+通信4客观世界的问题都是由客观世界中的实体及其相互关系构成的,我们将客观世界中的实体抽象成为问题空间中的对象,由于研究的问题不同,面向的对象也就不同。“面向对象”就是面向问题空间中的实体。5对象对象——是对客观世界中事物的一种抽象。是由数据(属性)及其之上的操作(行为)组成的封装体。 或: 类和对象封装了对描述某些现实世界实体的内容和行为所需的数据和过程的抽象。对象可以量化,可以区分,可以是具体的,也可以是概念化的。对象是对象类的一个成员,有时也叫“实例”。6对象的符号:类名/对象名属性:操作:7属性——描述了对象的结构和状态特征。(如:数字、数组、记录、状态等。)操作——按某种方式、方法操纵封装在对象内部的数据,控制、操纵对象的状态。类——相似的对象可以归并成同一个类,是具有共同属性(数据结构)、共同操作(行为)的对象的集合。8抽象成类:自行车型号轮子尺寸排挡材料换档移动修理对象:山地自行车型号:28……对象:公主自行车型号:24……对象类9消息通讯——消息是对象间交互的手段,消息刺激接收对象产生某种行为。 消息统一了数据流和控制流。由此可见,面向对象的设计方法将传统的控制结构的功能实现改变为对象及其相互传递消息来实现。10AOp1Op2BOp3Op4OP5DOp10Op11COp6Op7OP8OP9消息消息传递11消息的形式如下:message:(destination,operation,arguments)其中:destination(目的地)——定义了接受消息的对象。Operation(操作)——说明要进行的操作。Arguments(变量)——提供操作完成所需的信息。例如:对象B发出:message:(D,op10,<data>)。12封装——又称信息隐藏。用户只能见到对象封装界面上的信息,对象内部对用户时隐蔽的。 封装的目的是将对象的使用者与设计者分开。封装有效的实现了模块化。13继承——是自动共享类、子类、对象中方法和数据的机制。
继承意味着可以利用已有的定义、设计和实现,简化了相似类的重复定义。实现了软件的可重用性。
14从结构上讲类是分层的,一个类的上层可以有超类(父类),下层可以有子类,继承具有传递性。XY1Y2YnXY多重继承:单重继承:151面向对象软件的开发过程采用面向对象开发方法构造的软件具有以下特点:面向对象技术构造的模型与客观世界一致;适应变化的需要,修改局限在模块中;具有可复用性16面向对象软件的开发过程分析阶段论域分析应用分析高层设计阶段类的开发实例的建立组装测试维护172面向对象的分析与模型化OOA方法的5个基本原则:建立信息域模型描述功能表达行为分解模型,以揭示更多细节早期模型表示问题的本质,后期模型提供实现细节面向对象分析的目标:开发一系列模型,用来描述客户需求的计算机软件。定义所有与待求解问题相关的类。18OOA必须完成的任务:在客户和软件工程师间沟通,了解基本的用户需求。标识类(即:定义属性和方法)。划分类层次。表示对象间的关系。建立对象的行为模型。在任务1~5之间重复,直至完成建模。19面向对象技术衍生出了许多方法,如:Booch方法Coad和Yourdon方法Jocobson方法(也称OOSE面向对象软件工程)Rumbaugh方法(也称OMT对象建模技术)Wirfs-Brock方法统一建模语言UML20领域分析过程软件的领域分析是在特定应用领域中标识、分析和规约公共需求,典型的是在应用领域中多个项目间的复用。面向对象领域分析是以公共对象、类、自己和框架等形式在特定应用领域中标识、分析和规约公共的可复用的能力。
21领域分析的工作:设计和建造可复用构件,它们可以用于很多相似的(但不一定是相同的)应用开发工作。领域分析过程的关键输入和输出:领域分析领域知识源领域分析模型技术文件已有应用客户考察专家建议目前/未来的需求类的分类复用标准功能模型领域语言22OO分析模型到OO设计模型的转换:关系模型索引卡片使用实例行为模型子系统设计类及对象设计消息设计责任设计属性、操作、协作者3面向对象设计23分析和设计的含义分析——是一种研究问题域的过程,该过程产生对外部可见行为的描述。设计——在分析的描述基础上,加入实际计算机系统实现所需细节的过程。OOD通常可以分为两个阶段:高层设计——建立应用的体系结构。低层设计——集中于类的详细设计。24高层设计(系统级设计) 开发软件的体系结构,构造软件的总体模型。高层的设计包括:将系统划分为子系统的决策;子系统的软、硬件分配;设计框架的主要概念和策略性决策。25高层设计模型客户服务器模型导出的系统即适合于过程设计也适合于面向对象的设计。客户-服务器模型将系统分为2个部分:客户子系统和服务器子系统。请求服务的对象都归于客户子系统;服务器接受请求并提供服务。即:客户是服务的驱动者。所以,客户必须了解服务者的接口,而服务器没有必要知道客户的接口。26窗口报告人机交互界面问题域数据管理系统交互界面(任务管理)其它系统设备处理器数据库Caod&Yourdon的设计模型27应用框架结构 根据应用领域系统的特有结构划分子系统(模板、主题、抽象类的集合)。 然后设计细化每个子系统的对象模型、动态模型和功能模型。 如专家系统的典型结构:28用户用户界面知识获取机制解释机制知识库推理机全局数据库294Coad与Yourdon的方法Caod&Yourdon提出的OOA方法包括5个步骤:(1)确定类和对象(2)确定结构(3)定义主题(4)定义属性和实例关联(5)定义操作和消息关联301.确定对象 运用前面介绍的方法确定系统中所有的对象及对象的属性和操作。如家庭安全系统:系统控制面板传感器传感器事件声音报警312.确定结构 结构是一种组织方式的思维,在面向对象分析中,结构是问题域复杂关系的表示。
Yourdon面向对象的分析方法中提出两种结构:分类结构(泛化-特化结构)——表示类(不是对象)的“一般-特殊”关系。泛化类是超类,特化类是子类。3233装配结构(整体-部分结构)——表示事物的组成结构,即由属于同一类或不同类的成员聚合而形成新的类。343.定义主题 主题是指导读者或用户研究大型复杂模型的机制。每个主题相当于一个子模型,或子系统。分析者可以根据这一概念区分主题。35主题引用控制面板按键显示屏…………键盘功能键1.控制面板36374.定义属性和实例联系(链)
OOA模型的属性层包括对象属性以及对象之间的关系,即实例联系。实例联系是对象之间的依赖关系。实例联系表示了对象所需要的一部分状态信息。联系可以是双向的。3839发送接收5.定义操作和消息路径
定义操作和方法,如:检索、维护、计算、事件响应、状态改变、消息传送等这样一类操作和具体采用的某一种算法。
OOA模型不仅定义了对象间的联系,而且也定义了对象间消息的传递路径。40Caod&Yourdon提出的OOD方法 像其它的设计方法一样,面向对象设计的目标是生成对真实世界问题域的表示并将之映射到解域,也就是映射到软件上。
OOD模型 同OOA一样,横向由5级层次组成(主题层、结构层、服务层、属性层、类与对象层);在此基础上又从纵向进一步分为4个组元。41实例连接数据库管理部分任务管理部分人机交互部分问题论域部分类或对象类与对象层属性层服务层结构层主题层主题消息Coad&Yourdon的OOD模型42这4个组元是:(1)问题域组元(ProblemDomainComponent,PDC)(2)人机交互组元(HumanInterfaceComponent,HIC)(3)服务管理组元(TaskManagementComponent,TMC)(4)数据管理组元(DataManagementComponent,DMC)43设计问题域组元问题域组元(PDC)——构造特定应用的OOD模型的基本组成部件,包括:数据结构、应用域构件、语言构件。设计问题域组元的主要理由——寻求系统结构的稳定性。而这种稳定性正是将一个问题域中的系统转变到一个相似问题域中的系统时,可以重用原有分析、设计及编程结果的关键。44问题域部分的设计要针对特定的实现环境,对OOA的结果加以增补,其策略如下:(1)重用设计和编程类 对PDC进一步修改。将OOA建立的有关类,替换成库中的类或子类,并继承库中类的属性、建立相应的关联。(2)将问题域专用类组合在一起在设计过程中,有时会将原来一些相互独立的类,在问题域中归入一个新的超类。45(3)对继承进行调整当OOA模型中某个类或对象的继承关系和采用的语言不一致时,需要调整。(4)改进性能46设计人机交互组元(HIC) HIC——表示用户与系统打交道的命令以及系统提供给用户的信息。
HIC将用户界面技术从系统的其它部分中分离出来。这一部分包括:用户输入、显示、交互方式、响应过程、菜单窗口、数据表示、报告、网络接口、控制面板(如:按钮、指示灯、仪表等)。47按键数字键功能键口令传感器数据延迟时间电话号码取消设置……启动例如:家庭安全系统的人机交互组元(HIC)可以是:48显示参数信息当前状态报警信息……传感器参数呼叫号码……49
F10返回上级菜单
F10返回上级菜单
F10返回上级菜单
F1呼叫号码参数设置菜单入口呼叫号码设置窗口传感器设置窗口帮助信息窗口……HIC对象模型还可以借助其它工具来补充说明,如:状态——迁移图50另存窗口关闭窗口文字处理软件文件管理窗口编辑窗口格式窗口视图窗口打开窗口新建窗口菜单树图51任务管理问题(TMC)对象中的每个服务最终总要被分配给某个计算机任务,这些计算机任务可看成是一些独立的可调度的实体。许多系统都需要多任务并行处理,例如:对于具有数据获取机制、负责控制局部设备的系统,需要多任务。对于某种需要同时向多个窗口输入数据的用户接口,也存在多任务。52对于多用户系统,很可能存在一个用户任务的多重复制。对于多子系统的软件结构来说,各子系统之间的协调及通讯需要多个任务完成。对于多处理器的硬件结构,必须为各处理器分配任务并支持处理器之间的通讯。对于单处理器,在多任务实时操作系统的支持下,也可以实现多任务并行处理。53任务管理一般是在特定平台(包括:硬件和操作系统)。通过TMC特定平台的处理机制对系统的其它部分隐藏了起来,这样如果应用系统需要移植到其它平台上时,只需替换TMC的类就可以了。任务管理组元可以看成是应用系统与平台之间的接口。54任务的选择和调整的策略如下:识别事件驱动任务(一些与硬件设备通讯的任务)识别时钟驱动任务(以固定时间间隔激发的事件)识别优先任务和关键任务55识别协调者审查每个任务(要使任务数保持到最少)定义每个任务(说明是什么任务、如何协调、如何通讯)56中断启动中断停止中断进入传感器中断烟雾传感器中断运动传感器中断57设计数据库管理组元DMC提供了数据管理系统中对象的存储及检索的基础结构。建立DMC的原因主要是DMC可以独立于各种数据管理模式,使数据库技术从系统的其它部分中分离出来。58为了开发DMC,要考虑以下点:(1)哪种数据库查询方式能用于支持你的应用。(2)建立哪些对象来封装查询的实现(SQL)。(3)在DMC与PDC对象之间应建立的实例连接。(4)检查一下HIC部分哪些屏幕、字段、或报表需要数据库查询?如果需要,则要在DMC中建立一个查询对象。59下图简单地说明了DMC与应用系统和数据库间的关系,及执行过程。按下订阅按钮订阅登记窗口HIC订户PDC地址表DMC订阅到DBMS605OMT方法对象建模技术(ObjectmodellingTechnique)
简称:OMT,1991年提出。61OMT方法使用3种模型从不同角度来描述一个系统:(1)对象模型——描述系统对象、类和它们之间关系的静态结构,反映了系统的“数据”性质。(2)动态模型——用对象的状态和事件描述了瞬时的、行为化的系统的“控制”性质。(3)功能模型——描述系统内的数据变化,指明了如何用输入值得到输出值,即反映了系统的“功能”性质。623个模型之间的关系:(1)通过3个模型,系统以3视图的形式呈现给设计人员,以便设计者采用统一的描述方法设计实现。(2)模型是可以独立地进行测试和理解的,但不是无关的、绝对独立的。一个好的设计是指:实现了系统内部不同实质的分离,但又相互补充,限制耦合。63对象建模 对象建模是通过描述系统中的对象、对象间的关系、标识类中对象的属性、操作来表示系统的静态组织结构。对象模型是3种模型中最重要的模型。面向对象的设计技术强调的是围绕对象,而不是围绕功能来构筑系统。64OMT中对象图有两种形式:类图和实例图。类图——是一种框架、模式或模板,用于描述许多可能的数据实例;类图描述了对象类。实例图——描述一个特定的对象集是如何互相关联的;实例图描述对象实例。65动态建模动态建模主要用来描述控制逻辑。动态模型是用“状态图”和“事件追踪图”表示。一个动态模型可由多个状态图表组成。基本概念: 事件、脚本和事件追踪、状态、触发条件与事件、动作(操作)66事件事件——发生于某一时刻的某件事,或一个触发行为。事件的时间性很强,强调事情发生的瞬间。事件可以作为“类”来表示。事件发生的时间是所有事件的隐含属性。事件类的结构是层次性的。6768脚本和事件追踪脚本(场景)——是系统某一次特定运行时期内发生的事件序列。事件跟踪图——建立“事件-响应”关系的工具。描述一个事件将信息从一个对象传到另一个对象的轨迹。69打电话者拿起接收器拨号音开始拨号6拨号音结束拨号拨号……接话方开始响铃打电话方电话铃声响受话方回答受话方铃声停止打电话方电话铃声停止电话连通受话方挂机电话断打电话者挂机打电话者电话线受话者拿起接收器拨号音开始拨号6
拨号音结束拨号
……
铃声铃声受话方回答铃声停止铃声停止电话连通电话连通受话方挂机电话挂断电话挂断打电话者挂机脚本: 事件踪迹图:70空闲菜单显示按下右键/弹出菜单释放右键/抹去菜单光标移动/更新反向显示菜单项状态及状态图状态——对象属性值和链的一种抽象形式,状态具有持续性,占有时间间隔。状态图:71空闲拨号音拨号连接玲响连通断接纪录的信息超出时间忙音快速忙音放下话筒放下话筒提起话筒超时一位号码有效号码通路对方应答对方挂断无效号码超时放下话筒号码忙中断线忙一位号码电话线状态图72功能建模功能模型描述了系统中所有的计算。功能模型考虑如何从输入值得到输出值,而不考虑参加计算的数据按什么时序执行。功能模型采用数据流图描述,一个功能模型由多个分层的数据流图组成。73分析OMT一种软件工程方法学。软件工程方法学——是运用预先定义的技术和符号规则的一种有组织的软件生产过程。74OMT方法的组成:分析阶段(理解和设计应用模型及操作领域)系统设计阶段(确定系统的总体结构)对象设计阶段(完善、改进、优化)75OMT方法强调:(1)开发重心是分析和设计阶段。(2)强调数据结构而不强调功能。(3)不间断开发过程。(4)迭代的而不是顺序的。OMT在分析阶段的任务是:建模。76动态模型的建立步骤和说明 动态分析从寻找事件开始,然后用状态图归纳出每个对象允许的事件顺序。STEP1:预备典型交互次序的脚本。STEP2:识别对象间的事件。77STEP3:为每个脚本准备一个事件踪迹图。STEP4:构造一个状态图。STEP5:匹配对象间的事件。78功能模型的建立步骤和说明数据流图的过程(加工)对应于对象状态图中的活动和动作,而数据流对应于对象图中的对象和属性。构造具体功能模型的步骤是:STEP1:确定输入和输出(上下文图)。79STEP2:构造数据流图。STEP3:描述函数。STEP4:识别对象间的约束(即:条件)。 建立完初步的模型后,需要进一步增加操作,然后重复分析。806B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSHE 0008-2023压缩空气储能电站初步设计报告编制规程
- T/WHAS 061-2023光声断层成像系统
- T/GZJXC 08-2025贵州省岩土工程信息模型技术标准
- T/CIC 421-2025封隔器有限元仿真分析规程 第1部分:密封机构
- T/CAIEC 173-2025盾构隧道主体结构安全检测技术规程
- T/CSAE 408-2025越野汽车断开式电驱动桥总成技术条件及台架试验方法
- AI在运动人体科学中的应用
- AI在朝鲜语中的应用
- 2025-2026学年黑龙江省海伦市初中生物七年级期末上册深度自测黑金考题附答案
- 2025-2026学年甘肃省兰州市初中数学八年级期末下册自测黑金试卷(详细参考解析)
- 2026年广东省公需课《加快培育发展新质生产力》考试答案
- 2026中国算力网投资发展报告
- 2025年新闻记者职业资格考试真题+答案
- 第7课 《培养德智体美劳全面发展的社会主义建设者和接班人》课件(内嵌视频)2026-2027学年统编版语文九年级上册
- 2026福建平潭综合实验区文旅发展集团有限公司招聘14人笔试参考题库及答案解析
- 浆砌片石排水沟施工技术交底培训
- 矿山生态修复工程监理规划
- 2026年小学青岛版(六三制)六年级科学上册全册教案
- 2026年新疆维吾尔自治区初中学业水平考试生物试卷真题(含答案详解)
- 2026年风险管理中级试题及答案
- 中国伯基特淋巴瘤诊疗指南(2025版)
评论
0/150
提交评论