




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,第九章面向对象方法学引论,9.1面向对象方法学概述9.2面向对象概念9.3面向对象建模9.4对象模型9.5动态模型9.6功能模型9.73种模型之间的关系,教学内容,学习重点和难点,理解面向对象技术中的基本思想、概念和原理等;理解面向对象建立的三种模型的功能和相互关系。,参考资料,1UML用户指南.GradyB,JamesR,IvarJ.机械工业出版社.2001.2UML参考手册.GradyB,JamesR,IvarJ.机械工业出版社.2001.3面向对象方法基础教程.麻志毅,邵维忠.高等教育出版社.2006.4面向对象技术UML教程.王少峰.清华大学出版社.2004.5UML软件工程组织.,9.1面向对象方法学概述,软件工程发展的两个重要阶段传统软件工程面向对象软件的工程,传统软件工程,以面向过程的结构化程序设计为基础;遵循“程序=数据结构+算法”的思路;由“追求技巧与效率”到“清晰第一、效率第二”缺点:不太适应规模大、特别复杂的项目;难以解决软件重用的问题;难以适应需求的变化;难以彻底解决维护问题。,面向对象软件工程,按人类习惯的思维方法,以现实世界中客观存在的事物(即对象)为中心来思考和认识问题。采用的思想方法与原则:抽象、分类、继承、聚合、封装等。以易于理解的方式表达软件系统,建立问题域模型,使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,软件工程学家Codd和Yourdon认为:,面向对象对象类继承通信如果一个软件系统采用这些概念来建立模型并予以实现,那么它就是面向对象的。,面向对象技术的基本观点,任何客观的事物或实体都是对象。对象组成客观世界,复杂的对象可以由简单的对象组成。具有相同数据和操作的对象可以归并为一个类(class),对象是对象类的一个实例。类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特性。子类与父类形成类的层次结构。对象之间通过消息传递相互联系。,传统的开发方法与面向对象的开发方法比较,9.2面向对象的概念,9.2.1对象(Object)在现实世界中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,包括具体的物理实体的抽象、人为的概念、任何有明确边界和意义的东西。如:一名职工、一本图书、贷款、生产计划、一场演出等。对象既有静态的属性,又有动态的行为(操作)。,从软件开发的角度定义对象,系统中用来描述客观事物的实体,是构成系统的基本单位。由一组属性和相关操作组成的服务组成。这是对象的两个基本要素:属性:用来描述对象静态特征的一个数据项;服务:用来描述对象动态特征(行为)的一个操作序列。对象的属性和所有操作封装在一起,构成一个统一体。属性一般只能通过执行对象的操作来改变。,9.2.2其他概念,1、类(Class)具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。“类”好比是一个对象模板,用它可以产生多个对象。,例:,类(class):是对象的“类型”(type)。一般用关键字class来表示。classCPeoplelongID;stringname;voidDoSomething();对象是类的实例:CPeopleTom,2、实例(instance),实例是某个特定类所描述的一个具体对象。如:“张三”、“李四”是类“学生”的实例。对象:可以是一个具体的对象,也可以泛指一般的对象。实例:必然是指一个在客观世界中存在的具体对象。,3、消息(message),对象之间通信的手段,是一个对象要求另一对象执行类中定义的某个操作的规格说明。通常一个消息由三部分组成:接收消息的对象消息标识符(即消息名)零个或多个变元例如:MyCircle.Show(Green)MyCircle是接收消息的对象的名字,Show是消息名,Green是消息的变元。,4、方法(method),对象所能执行的操作称为方法,也就是类中所定义的服务。方法描述了对象执行的功能、响应消息的操作。在C+中称为成员函数。,5、属性(attribute),属性是对客观世界实体所具有的性质的抽象,是类中所定义的数据。如:学生类属性有姓名、年龄、性别等。不同对象的同一属性可以具有相同或不同的属性值。如:张三的年龄为19,李四的年龄为20。,6、封装(encapsulation),封装是把对象的属性和实现操作的代码结合成一个独立的系统单位,并尽可能隐藏对象的内部细节,对象以外的部分不能直接作用于对象的内部数据(属性),对象间的通信只能通过明确的消息来进行。,7、继承(inheritance),在现存类定义的基础上,建立新定义类的技术。新类的定义可以是现存类所声明的数据、定义与新类所增加的声明的组合。新类复用现存类的定义,而不要求修改现存类。现存类可当作父类(泛化类、基类或超类)来引用,则新类相应地可当作子类(特化类、子女类或派生类)来引用。,实现继承机制的原理,父类、子类、超类,父类:一个类的上层是父类。子类:一个类的下层是子类。超类:若C2是C1的子类,C3是C2的子类,则C1是C3的超类。,单继承与多继承,单继承:一个类只允许有一个父类,即类等级为树形结构。多继承:一个类允许有多个父类继承的传递性:如果类C继承类B,类B继承类A,则类C继承类A。,继承性的优点,使得相似的对象可以共享程序代码和数据结构,大大减少程序中的冗余信息。便于软件修改维护。用户在开发新系统时不必从零开始,可以继承原有相似功能或者从类库中选取需要的类,再派生新类。,8、多态性(polymorphism),指对象根据所接受的消息而做出动作,同样的消息为不同的对象接受时可导致完全不同的行动。,9、重载(overloading),包括:函数重载:在同一作用域,若干个参数特征不同的函数可以使用相同的函数名字;运算符重载:同一个运算符可以施加于不同类型的操作数上面。,9.3面向对象建模,模型:是一组图示符号和组织这些符号的规则,利用它们来定义和描述问题域中的术语和概念。面向对象模型的组成:,一般的建模顺序:,对象模型(objectmodel):定义实体,描述系统数据,定义“对谁做”动态模型(dynamicmodel):描述系统控制结构,规定“何时做”功能模型(functionalmodel):描述系统功能,指明系统应“做什么”,几种著名的面向对象方法,Booch方法(1991)Coad-Yourdon方法(1991)Rumbaugh方法(简称OMT)(ObjectModelingTechnology,1991)Jacobson方法(简称OOSE,1992)由Rumbaugh、Booch、Jacobson提出的统一建模语言(简称UML)(UnifyModeingLanguage,1994),UML统一建模语言,一种可视化建模语言,能描述开发需要的各种视图,并以此为基础组建系统。其发展过程如右图:常用的工具:RationalRose,UML的软件系统结构“4+1”视图,UML的图(Diagrams),9.4对象模型,描述系统内部对象的静态结构,包括对象本身的定义、对象的属性和操作、以及对象与其它对象之间的关系。UML中,对象模型通常由“类图”组成。,9.4.1类图的基本符号,1、关联,表示:在类之间画一条连线。角色:关联的端点,说明类在关联中的作用和角色。,三大关联的表示:,关联的重数,表示类中有多少个对象与关联类中的一个对象相关。常见的描述有:未标明,默认为1;01;0*或*;1+或1*;115;3,限定关联:,对关联的含义做某种约束。,关联的属性:,进一步说明对象间关联的性质。,2、聚合,一种“整体与成员”的关系。表示整体类的那一端增加一个菱形框。包括共享聚合和组合聚合。如:,3、范化,继承性的体现。通常包含一个基类和几个子类。基类表示较为一般、普通的概念;子类则继承基类的属性和操作,但又具有自身的属性和操作。,4、依赖和细化,依赖:一个模型元素是独立的,另一个依赖于这个独立的模型元素,若独立元素改变,将影响此元素。如成绩依赖课程:细化:同一事物在不同层次,描述的详细程度不同。,9.5动态模型,用来描述系统与时间相关的动态行为,从对象的“事件”(Events)和“状态”(States)的角度出发,表现对象经过相互作用后,随时间改变的不同运算顺序。动态模型包括“状态图”和“事件追踪图”。事件追踪图:说明发生于系统执行过程中的一个特定“场景”即完成系统某个功能的一个事件序列。,状态图举例:饮料自动售货机系统的状态图,建模实例:描述客房状态的状态图,时序图举例:打电话的时序,建模实例:接电话的顺序图(UML),举例:饮料自动售货机系统的时序图,9.6功能模型,包括数据流图和用例图。用例视图(Use-caseView)从系统外部用户的角度出发,描述系统应该具有的功能集,是其他视图的核心和基础。,建模实例:某金融贸易系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 马克思哲学原理课件
- 网课最后一节课课件
- 幼儿园总务岗位职责案例分析
- 八年级英语上册 Unit 3 Our Hobbies Topic 2 What sweet music P1说课稿 (新版)仁爱版
- 第二节 工业地域的形成说课稿-2025-2026学年高中地理人教版必修2-人教版2004
- 艺术教研组艺术技能培训计划
- 2018春人教版地理八年级下册第六章说课稿第三节世界最大的黄土堆积区-黄土高原
- 大型工程建设单位协作配合管理措施
- 物业管理装饰装修保修及维修保养措施
- 部编版一下语文四下暑假复习计划
- 传感器概述课件
- 腾讯云人工智能工程师认证考试题(附答案)
- 中医治疗烫伤的预防及处理
- 叉车操作人员培训课件
- 大学专升本调研报告范文
- 《高血压精准化诊疗中国专家共识(2024)》解读
- 医院行政人员培训制度
- 小学生主题班会 开学第一课 课件
- 汽轮机故障诊断技术
- 新行政诉讼法课件讲座
- 任务2-2-3 相对方向同时接车及同方向同时发接列车课件讲解
评论
0/150
提交评论