已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9、面向对象方法学引论,授课教师:崔晓晖联系方式:cuixiaohui授课学时:40,主要内容,9.1传统方法学的缺陷9.2面向对象方法学概述9.3面向对象的基本概念9.4面向对象建模9.5对象模型9.6动态模型9.7功能模型9.8三种模型之间的关系,软件工程,9.1传统方法学的缺陷,传统的软件生命周期方法学曾经给软件产业带来巨大的进步,部分的缓解了软件危机。但传统方法学仍存在着比较明显的缺陷:生产率的提高远不能满足需求软件重用程度很低软件仍然很难维护软件往往不能真正满足用户的需要不能彻底的理解用户的需求用户需求在不断的变化,软件工程,9.1传统方法学的缺陷,出现问题的原因僵化的瀑布模型某些系统的需求是模糊的项目的参与者对系统的理解是不同的预先定义的需求可能是过时的结构化技术本身的缺点传统的生命周期方法学(SA-SD-SP)的基础是功能分解,而用户需求的变化恰恰体现在对软件功能要求的改变。分解的过程带有很大的随意性。,软件工程,为了克服传统方法学的缺点,近年来面向对象方法学日益受到人们的重视,并且已经给软件产业带来了新的飞跃。,软件工程,主要内容,9.1传统方法学的缺陷9.2面向对象方法学概述9.3面向对象的基本概念9.4面向对象建模9.5对象模型9.6动态模型9.7功能模型9.8三种模型之间的关系,软件工程,9.2面向对象方法学概述,面向对象的基本思想基本出发点:尽可能按照人类认识世界的方法分析和解决问题将任何感兴趣或要加以研究的事物、概念都统称为对象。以对象作为最基本的元素和分析问题、解决问题的核心。符合人类的认识规律,易于为人们所理解、接受和掌握。,软件工程,9.2面向对象方法学概述,面向对象开发方法面向对象分析、面向对象设计和面向对象实现Booch方法、Coad方法、OMT方法等统一建模语言UML为了统一各种面向对象方法的术语、概念和模型,1997年推出了统一建模语言UML(UnifiedModelingLanguage)。通过统一的语义和符号表示,统一各种方法的建模过程和表示,已成为面向对象建模的工业标准。,软件工程,9.2面向对象方法学概述,概括的说,面向对象方法有以下4个特点:认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由简单对象组合而成把对象划分成各种对象类,每个类定义一组数据和方法按照子类和父类的关系和整体部分关系,把若干对象类组织成一个层次化的系统。对象之间仅通过传递消息相互联系。面向对象方法学的概括可以用下列方程表示:OO=对象+类+继承+消息通信,软件工程,9.2面向对象方法学概述,面向对象的优点与人类习惯的思维方法一致稳定性好可重用性好可维护性好适合开发大型软件系统,软件工程,9.2面向对象方法学概述,喷泉模型一种以用户需求为动力,以对象作为驱动的模型适合于面向对象的开发方法克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。开发过程具有迭代性和无间隙性。系统某些部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系统。无间隙是指在分析、设计和实现等开发活动之间不存在明显的边界。,软件工程,9.2面向对象方法学概述,喷泉模型的特点如下:规定4个开发阶段:分析需求、系统设计、软件设计和实现各阶段相互重叠,它反映了软件过程并行性的特点以分析为基础,资源消耗呈塔型,分析阶段消耗资源最多反映了软件过程迭代的特性,从高层返回低层无资源消耗强调增量开发,它依据分析一点,设计一点的原则,不要求一个阶段的彻底完成,整个过程是一个迭代的、逐步提炼的过程对象驱动的过程,对象是所有活动作用的实体,也是项目管理的基本内容,软件工程,喷泉模型,软件工程,主要内容,9.1传统方法学的缺陷9.2面向对象方法学概述9.3面向对象的基本概念9.4面向对象建模9.5对象模型9.6动态模型9.7功能模型9.8三种模型之间的关系,软件工程,9.3面向对象的基本概念,对象类与实例消息和方法属性封装继承多态重载,软件工程,9.3面向对象的基本概念对象,对象的定义对象是对问题域中某个实体的抽象,反映了系统保存有关这个实体的信息或与它交互的能力。对象:=。其中,ID是对象标识;MS是对象中操作的集合;DS是数据结构;MI是对象受理的消息名的集合,是对象的外部接口。对象的特点,以数据为中心对象是主动的实现了数据封装本质上具有并行性独立性好,软件工程,9.3面向对象的基本概念类与实例,具有相同或相似性质对象的抽象就是类。对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。,软件工程,9.3面向对象的基本概念消息,对象之间进行通信的一种构造叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。接收消息的对象经过解释,然后给予响应。这种通信机制称为消息传递。消息传递是从外部使得一个对象具有某种主动数据的行为。对于一个系统来说,使用消息传递的方法可更好地利用对象的分离功能。发送一条消息至少要包含说明接收消息的对象名、发送给该对象的消息名(即对象名.方法名),一般还要对参数加以说明,参数可以是只有认识消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。,软件工程,9.3面向对象的基本概念方法,消息和方法实现类中操作的过程叫做方法,一个方法有方法名、参数及方法体。当一个对象接收一条消息后,它所包含的方法决定对象怎样动作。方法也可以发送消息给其他对象,请求执行某一动作或提供信息。由于对象的内部对用户是密封的,所以消息只是对象同外部世界连接的管道。而对象内部的数据只能被自己的方法所操纵,消息传递如图所示。,软件工程,9.3面向对象的基本概念属性,属性是类中所定义的数据,它是对客观世界实体所具有性质的抽象。类具有属性,对象具有属性值,一个对象用数据值来描述它的状态,如某个具体的学生张三,具有姓名、年龄、性别、家庭地址、学历及所在学校等数据值,用这些数据值来表示这个具体的学生的情况。,软件工程,9.3面向对象的基本概念封装和继承,封装具有一个清晰的边界有确定的接口受保护的内部实现继承就是子类自动的共享基类中定义的数据和方法的机制。,软件工程,9.3面向对象的基本概念多态和重载,多态指子类对象可以像父类对象一样使用。同样的消息既可以发送给父类对象也可以发送给子类对象。即在类等级的不同层次中共享同一行为,不同层次中的类按照各自的需要实现这个行为。重载函数重载运算符重载静态联编/动态联编,软件工程,静态y=j;virtualdoubleArea()constreturn0.0;private:doublex,y;classRectangle:publicPointpublic:Rectangle(doublei,doublej,doublek,doublel):Point(i,j)w=k;h=l;doubleArea()constreturnw*h;private:doublew,h;,主要内容,9.1传统方法学的缺陷9.2面向对象方法学概述9.3面向对象的基本概念9.4面向对象建模9.5对象模型9.6动态模型9.7功能模型9.8三种模型之间的关系,软件工程,9.4面向对象建模,研究问题域撰写规格说明建立对象模型建立动态模型建立功能模型,软件工程,主要内容,9.1传统方法学的缺陷9.2面向对象方法学概述9.3面向对象的基本概念9.4面向对象建模9.5对象模型9.6动态模型9.7功能模型9.8三种模型之间的关系,软件工程,9.5对象模型,类图:表示类、对象的符号类和对象,软件工程,9.5对象模型,表示关系的图形符号9.5.1关联9.5.2聚集9.5.3泛化9.5.4依赖和细化,软件工程,9.5对象模型,表示关系的图形符号9.5.1关联9.5.2聚集9.5.3泛化9.5.4依赖和细化,软件工程,9.5.1关联,关联有两类:普通关联最常见的关联关系,只要在类与类之间存在连接关系,就可以用普通关联来表示。限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多简化成成一对一,或者从多对多简化成多对一。,软件工程,9.5.1关联普通关联,重数(multiplicity)表示该类有多少个对象与对方的一个对象连接若未标明,默认为1。重数的表示方法01表示0到1个对象0*或*表示0到多个对象1+或1*表示1到多个对象115表示1到15个对象3表示3个对象,软件工程,9.5.1关联限定关联,软件工程,9.5.1关联关联的角色,参与此关联的对象所扮演的角色(即起的作用)有助于别人理解类图如果没有显式标明角色名,则用类名作为角色名自关联,软件工程,9.5.1关联关联类,为了说明关联的性质所加的附加信息通过一条虚线与关联连接,软件工程,9.5对象模型,表示关系的图形符号9.5.1关联9.5.2聚集9.5.3泛化9.5.4依赖和细化,软件工程,9.5.2聚集(聚合),是关联的特例表示类与类之间的关系是整体与部分的关系描述字句:包含、组成、分为部分两种特殊的聚集关系:共享聚集组合聚集,软件工程,9.5.2聚集共享聚集,处于部分方的对象可同时参与多个处于整体方对象的构成。表示:空心菱形,软件工程,9.5.2聚集组合聚集,如果部分类完全隶属于整体类,部分与整体共存,整体不见了部分也会随之消失,则该聚集称之为组合聚集(简称组成)。表示:实心菱形,软件工程,9.5对象模型,表示关系的图形符号9.5.1关联9.5.2聚集9.5.3泛化9.5.4依赖和细化,软件工程,9.5.3泛化,UML中的泛化就是通常所说的继承关系,是通用元素和具体元素间的一种分类关系。具体元素完全拥有通用元素,并且还可以附加其他信息。表示:一端为空心的三角形,三角形的顶角紧挨着通用元素。泛化针对类型(类),不针对实例(对象)泛化关系:普通泛化受限泛化,软件工程,9.5.3泛化普通泛化,软件工程,9.5.3泛化普通泛化,软件工程,9.5.3泛化受限泛化,给泛化关系附加约束条件,进一步说明泛化关系的使用方法或扩充方法。预定义的约束:多重不相交完全不完全,多重,软件工程,完全泛化和不完全泛化,软件工程,9.5对象模型,表示关系的图形符号9.5.1关联9.5.2聚集9.5.3泛化9.5.4依赖和细化,软件工程,9.5.4依赖和细化,依赖关系其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素。表示:带箭头的虚线,箭头指向独立的类。,软件工程,9.5.4依赖和细化,细化关系对同一事务中不同层次上描述时,这些描述间具有细化关系。例:A和B描述同一事物,若B是在A基础上的更详细描述,则称B细化了A或A细化成了B。,软件工程,主要内容,9.1传统方法学的缺陷9.2面向对象方法学概述9.3面向对象的基本概念9.4面向对象建模9.5对象模型9.6动态模型9.7功能模型9.8三种模型之间的关系,软件工程,9.6动态模型,动态模型表示瞬时的、行为化的系统的“控制”性质,规定了对象模型中的对象的合法变化序列。表达手段:状态图术语事件对象之间某时刻的相互的触发行为。状态对象行为在某个特定阶段的情形,它是对影响对象行为的属性值的抽象。行为对象在到达某种状态时所做的一系列处理操作。,软件工程,9.6动态模型,状态图中使用的主要符号,软件工程,电话系统的状态图,软件工程,主要内容,9.1传统方法学的缺陷9.2面向对象方法学概述9.3面向对象的基本概念9.4面向对象建模9.5对象模型9.6动态模型9.7功能模型9.8三种模型之间的关系,软件工程,9.7功能模型,用例图系统用例行为者用例间的关系用例建模寻找行为者寻找用例,用例用例是可以被行为者感受到的系统的一个完整的功能,在UML中用例是系统完成的一系列动作,动作的结果可以被行为者所察觉。用例的特征:用例代表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植技术的工作计划与执行方案
- 中级攀岩指导员技能提升与职业发展
- 关于记忆障碍患者的行为疗法在中级养老护理中的应用
- 科技创新驱动下的企业融资计划含保代策略
- 声乐初学者入门指南歌唱技巧与演唱准备计划
- 生产主管周生产计划与质量控制安排
- 网约车市场分析及司机服务质量管理安排
- 供应链管理优化工作计划与安排
- 国际留学生人才资源整合策略
- 山西C类安全员安全监督指南
- 风电场防汛课件
- 汽轮机减温减压器课件
- 护理疑难病例讨论制度
- 【《日处理6000立方米的某化工园区废水处理工程设计》23000字(论文)】
- 鼻腔冲洗护理课件
- 关节软骨力学特性-洞察及研究
- 2025年电源适配器行业研究报告及未来行业发展趋势预测
- 上海市宝山区2024-2025学年六年级(五四学制)上学期期中语文试题(含答案)
- 湖南省十五五风电项目规划
- 地中海邮轮介绍
- 医院财会考试真题及答案
评论
0/150
提交评论