版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十八讲面向对象方法学本讲的主要内容一、面向对象方法学概述过程性开发模式。根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操作的信息。,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程。与人类所习惯的思维方法一致。稳定性好,控制变化性客观世界中,实体结构相对稳定减弱“语义断层”,更好的刻画问题域,减少了映射误差便于复用可维护性好,易于理解、测试、调试等。消除或减少了软件开发各个阶段的鸿沟,适应于大型软件产品的开发。人们认识世界的三个构造法则认识和区分认识和区分对象及其属性对象及其属性。认识和区分认识和区分整体对象及其组成部分整体对象及其组成部分。认识和区分认识和区分不同对象类的形
2、成不同对象类的形成。OO方法正好适应了以上法则对数据和操作封装而形成一个统一体;问题空间和解空间得到进一步的“拟合”,它们的结构十分一致;解空间中的对象行为更丰富,削弱了“语义断层”。Tendency for Change when Using OO Paradigm (Jacobson et al. 1995)Characteristic of software product/projectProbability for changeObjects derived from the application LowLong-lived information structuresLowPas
3、sive objects attributeMedium Sequences of behaviorMediumInterface with the outside worldHighFunctionality HighCharacteristics of OO Representation Identityname, reference, handleAbstractionClassificationEncapsulationInheritancePolymorphismPersistence Characteristics of OO Development Process Be cons
4、istency of terminologyBe consistency of the problem and the solution were described in same terms : classes, objects methods, attributes, and behaviors. Be consistency of perspectiveStatic viewsDynamic viewsRestrictions 3、喷泉模型、喷泉模型(P199, 图图9.1)二、面向对象的概念抽象性 Abstraction对象 Object类 Class消息 Message继承性 In
5、heritance封装性 Encapsulation多态性 Polymorphism重载 Overloading面向对象技术Coad和Yourdon给出了一个定义:“”。如果一个软件系统是使用这样 4 个概念设计和实现的,则我们认为这个软件系统是面向对象的。一个面向对象的程序的每一成份应是,计算是通过和来执行的。 What is Object-Oriented?Object orientation is an approach to software development that organizes both the problem and its solution as a collec
6、tion of discrete objects;It is a kind of representation that describe objects data structure and behavior.It is a kind of modeling technology.对象 Object任何事物皆对象,其形象表示(任何事物皆对象,其形象表示(P200P200图)图)对象在不同层上的定义对象在不同层上的定义是面向对象开发模式的。每个对象可用和来定义。是类所定义的数据,是实体性质的抽象,类实例都有其特有的属性值。一般只能。又称为方法或服务,它,若通过消息传递,还可以为其它对象使用。对
7、象所能执行的,即类中所定义的服务。它是对操作算法和响应消息办法的描述。Box Representing an Objects Name, Attributes, and BehaviorsOperationMethodServiceReferenceHandleState ElephantColor : textNumber of tusks : integerWeight : floatHeight : floatMove_to (location)Wash (date)Feed (amount, date, time) 对象的特点以数据为中心;对象是相对主动的;属性和操作封装,信息是隐蔽的
8、。对象独立处理自身的数据,并通过消息传递进行通信,具有并行的性质高模块独立性,对象是OO软件的基本模块,低耦合,高内聚。对象具有唯一识别的功能,行为比较丰富对象必须参与一个或多个对象类在一个类中,每个都是 (Instance),它们都可使用类中提供的函数。对象的状态则包含在它的实例变量,即实例的属性中。 Class类的定义包括和。类定义可以视为一个具有类似特性与共同行为的对象的,可用来产生对象。Forming a HierarchyDiesel FuelOctane (辛烷值)Cost_per_gallonAmount_remaining( )Auto FuelOctane (辛烷值)Cost
9、_per_gallonAmount_remaining( )FuelOctaneCost_per_gallonAmount_remaining( )Diesel Fuel Auto Fuel Abstract class消息 Message消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。(可能是空的),并。一个对象接收的消息则调用消息中指定的,并将。 Quadrilateral类的每个对象有同样的一组实例变量和方法。就这个意义来讲,类Quadrilateral给我们提供了一个模板,表示了所有四边形对象。类常常可看做是一个的实现。但更合适的是把类看做是某。类
10、的实现常常使用其它类的实例,它们提供了该类所需要的服务。这些实例应当受到保护不被其它对象存取,包括同一个类的其它实例。在四边形的例子中,定义4个point类的实例作为Quadrilateral类的实例的4个顶点。这些point对象不能被其它对象存取。是使用已存在的定义做为基础建立新定义的技术。新类的定义可以是和的组合。新类复用既存的定义,而。可当做来引用,则相应地可当做来引用。使用继承设计一个新类,可以视为描述一个新的对象集,它是既存类所描述对象集的子集合。这个新的子集合可以认为是。类是类的特殊化。是限制为四条边的多边形。我们还可以进一步地把类特殊化为 。类的界面可以等同于类的界面,而类的界面
11、又与类的界面相同。新类的界面还可以被看做是既存类界面的一个。例如,从一个既存的类派生的类可能不仅是类子集合定义的特殊化,而且还可能在新类的界面中引入新的能力。在类的继承层次中,Quadrilateral的实际参数可以替换Polygon的形式参数。类Quadrilateral的界面与类Polygon的界面是相容的Quadrilateral的界面可响应Polygon界面的所有消息。 类层次的结构继承人ID:int地址:str教师教师证:int姓名:str学生学号:int校名:str大学生专业:int入学年月:Date小学生专业:int入学年月:Date类层次的结构继承人ID:int姓名:str学生
12、学号:int校名:str大学生专业:int入学年月:人学生大学生 ID:XXXX姓名:XXX学号:980001校名:合工大专业:计算机入学年月:199809实例:一位大学生多态性与重载多态性含义把相同的操作施加于不同类型的对象,获得不同的行为效果和结果。在C+中,多态性是通过虚函数(Virtual)实现的。动态联编(Dynamic binding),滞后联编。重载 Overloading运算符重载:同一运算符作用于多种数据类型上。函数名重载:在同一作用域内的多个参数特征不同的函数可以使用相同的函数名字。静态联编,先前联编。动态联编的例子打印输出堆栈S的内容:for i=1 to top do
13、case S i .typeInteger : Print_Integer(S i .Object);Float :Print_Char(S i .Object) ;String :Print_ String(S i .Object) ;Boolean : Print_ Boolean (S i .Object);利用动态联编后,设计者不须考虑数据的结构合类型:for i=1 to top do Print( S i );三、三、OO开发过程开发过程领域分析参与人员:领域专家和系统分析员目的:标识基本概念及领域特征,建立领域模型多种领域分析模型,如Goad的语义数据模型。应用分析:将领域模型适
14、配于当前的应用中。对象建模OMT(如,三视点模型)高层设计设计系统结构,选择解决方案,把任务分配给子系统。面向对象建模各种面向对象方法学对象模型:定义类及UML符号(P208)类名是一类对象的名字类的命名要恰当、明确、简洁使用标准术语使用具有明确含义的名词必要时使用名词性短语类名属性服务对象模型:定义属性及UML描述UML描述属性的语法格式可见性 属性名:类型名=初值性质串# 姓名:string = “liuxiang” read onlyUML规定三种可见性(可访问性)+ (Public)- (Private)# (Protected)可见性(可访问性)不能默认定义性质串明确列出属性所有可能
15、的取值或属性的性质对象模型:定义服务及UML描述UML描述服务的语法格式可见性 操作名(参数表):返回值类型性质串+ main(name:str,age:int): intread onlyUML规定可见性(可访问性)与属性相同Public(+)Private(-)Protected(#)性质串用于明确地列出服务的性质对象模型:定义类之间的关系关联:反映对象间相互依赖、相互作用的关系聚集:组合关系,“整体部分”泛化(继承):归纳关系,“一般特殊”依赖和细化1、用UML表示关联普通关联关联的角色限定关联关联类普通关联TeacherComputer 1 . *使用被使用丈夫妻子结婚关联的角色人限定
16、关联文件名目录文件关联类按钮电梯队列电梯控制器*42、用UML表示聚集共享聚集组合聚集人课题组*1. *成员文本框列表框按钮菜单窗体*包含3、用UML表示泛化(继承)普通泛化受限泛化多重继承不相交继承完全继承不完全继承普通泛化船Drive( )交通工具abstractDrive( )abstract汽车Drive( )驱动车轮驱动螺旋桨受限泛化(继承)船Drive( )交通工具abstractDrive( )abstract汽车Drive( )水陆两用动力装置多重4、用UML表示依赖和细化依赖关系友元依赖关系细化关系类B类A友元分析类设计类对象模型实例P238,图10.6动态模型:作用与表示作
17、用:着重于系统的控制逻辑和时序关系。表示:由状态图和事件跟踪图表示。动态模型:状态图描绘对象的状态描述触发状态转换的事件描述对象响应事件而作出的行为。动态模型:状态对某一时刻中属性的概括,是对象属性值的抽象。状态规定了对象对事件的响应方式;不同的状态响应相同的事件所产生的行为将不同。状态具有持续性。定义状态时,忽略那些不影响对象行为的属性。例一“栈”的三个状态:空、满、半满行为。例二:电话的状态图(P57)。动态模型:事件某个特定时刻所发生的事情,是对现实世界中的“事情”的抽象,事件的发生会引起对象从一种状态瞬间转换到另一种状态。事件由一个对象发出,另一个对象接受。动态模型:行为指对象达到某种
18、状态时所做的一系列处理操作。状态图的表示非空空满状态1do:行为1状态2do:行为2初始事件事件1条件结束事件动态模型:分析建模步骤评估所有的实例以完全理解系统中的交互序列;标识驱动交互序列的事件,理解这些事件是如何和特定对象关联的;为每个实例创建事件轨迹;创建状态图;复审行为模型,验证其精确性和一致性。功能模型表示方法:数据流图,use case作用从不同的角度对对象模型和行为模型的补充定义“处理”,强调系统应该“做什么”功能模型:用例图系统用例行为者用例之间的关系扩展关系使用关系自动售货机系统售货供货取货款顾客供货人收银员功能模型:含扩展和使用的用例图自动售货机系统售货供货取货款顾客供货人收银员售散装饮料打开机器关闭机器打开机器关闭机器扩展使用使用功能模型:用例建模寻找行为者寻找用例功能模型:寻找行为者谁将使用系统的主要功能(主行为者)?谁需要借助系统的支持来完成日常工作?谁来维护和管理系统(副行为者)?系统将控制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年辽宁省盖州市高二生物下册期末考试试卷带答案(B卷)
- 2026年青海省格尔木市高二生物下册期末考试试卷【A卷】附答案
- 2026年福建省永安市高二生物下册期末考试检测卷含答案(轻巧夺冠)
- 2026年云南省弥勒市高二生物下册期末考试检测卷(网校专用)附答案
- 2026年山西省古交市高二生物下册期末考试模拟卷含答案【培优A卷】
- 2026年云南省芒市高二生物下册期末考试试卷及参考答案【典型题】
- 2026年山东省海阳市高二生物下册期末考试试卷及答案【基础+提升】
- 2026年吉林省扶余市高二生物下册期末考试考试卷附参考答案【黄金题型】
- 2026年四川省什邡市高二生物下册期末考试考试卷(基础题)附答案
- 2026年河北省涿州市高二生物下册期末考试考试卷含答案【能力提升】
- 12kV手车式开关柜标准化设计方案
- 2026-2030中国运甲状腺素蛋白行业市场发展趋势与前景展望战略分析研究报告
- 2025年甘肃金昌市地理生物会考真题试卷(+答案)
- 2026年云南校长职级模拟题库及参考答案详解(综合题)
- 呼和浩特市2026年初三年级第二次模拟考试道德与法治试卷(含答案)
- 2026年高考生物全国二卷试题及答案
- 青春不诈骗2026年高中五一假期反诈防骗指南
- 2025无锡科技职业学院教师招聘考试题目及答案
- 直播带货主播工作制度
- IOTA共识与O-RADS共识指南的解读与分析课件
- 24J113-1 内隔墙-轻质条板(一)
评论
0/150
提交评论