版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第9章章 面向对象方法学引论面向对象方法学引论n9.1 面向对象方法学概述面向对象方法学概述n9.2 面向对象的概念面向对象的概念n9.3 面向对象建模面向对象建模n9.4 对象模型对象模型n9.5 动态模型动态模型n9.6 功能模型功能模型n9.7 3种模型之间的关系种模型之间的关系9.1.1 传统方法的缺点传统方法的缺点n结构化分析方法:面向功能结构化分析方法:面向功能软件结构严重依赖于功能,而功能是软件开发中最不稳定的因素。n数据和操作相分离数据和操作相分离9.1.2 面向对象开发方法面向对象开发方法nOOSD (Object-Oriented Software Development
2、)是一种是一种 把面向对象的思想把面向对象的思想应用于软件开发过程,指导开发活动的系应用于软件开发过程,指导开发活动的系统方法。统方法。 n面向对象面向对象=对象对象 (objects) +类类 (classes) +继承继承(inheritance) +通信通信 (communication with messages)9.2 基本概念基本概念对象对象n对客观存在事物的描述统称为对象对客观存在事物的描述统称为对象n对象可以是事、物、或抽象概念对象可以是事、物、或抽象概念 n是将一组数据和使用该数据的一组基是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。本操作或过程封装在一起的实
3、体。类类n类又称对象类(类又称对象类(Object Class),是),是一组具有相同属性和相同操作的对象一组具有相同属性和相同操作的对象的集合。的集合。n在一个类中,每个对象都是类的实例在一个类中,每个对象都是类的实例(instance) ,它们都可以使用类中提,它们都可以使用类中提供的函数。供的函数。实例实例n实例就是由某个特定的类所描述的一个具实例就是由某个特定的类所描述的一个具体的对象。类是对具有相同属性和行为的体的对象。类是对具有相同属性和行为的一组相似的对象的抽象,类在现实世界中一组相似的对象的抽象,类在现实世界中并不能真正存在。并不能真正存在。消息消息n消息就是向对象发出的服务请
4、求(互相联系、消息就是向对象发出的服务请求(互相联系、协同工作等)。协同工作等)。n一个消息包含一个消息包含3个部分:个部分:接收消息的对象,消息名,消息变元。n例如,例如,MyCircle是是Circle类的一个实例,当类的一个实例,当要它在屏幕上以绿色显示自己时,应向它发要它在屏幕上以绿色显示自己时,应向它发送消息如下:送消息如下: MyCircle.show(GREEN););方法方法n方法就是对象所能执行的操作,也就是类方法就是对象所能执行的操作,也就是类中所定义的服务。中所定义的服务。n方法描述了对象执行操作的算法,响应消方法描述了对象执行操作的算法,响应消息的方法。在息的方法。在C
5、+语言中把方法称为成员语言中把方法称为成员函数。函数。n例如,例如,Circle类中让它显示自己的消息中,类中让它显示自己的消息中,show就是其成员函数,在类中,必须给出就是其成员函数,在类中,必须给出它的定义,即实现代码它的定义,即实现代码属性属性n属性就是类中所定义的数据,它是对客观属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。世界实体所具有的性质的抽象。n例如,例如,Circle类中定义的代表圆的半径、颜类中定义的代表圆的半径、颜色等数据成员就是圆的属性色等数据成员就是圆的属性封装封装n对象封装了对象的数据以及对这些数据的对象封装了对象的数据以及对这些数据的操作。操作
6、。课程( 设计)课程名课程号创建日期上课学期学分添加课程()删除课程()修改课程信息()教师(设计 )职称教工号姓名性别授课信息 : 对象集合入校()离校 ()接受课程 ()解除课程()增加()删除()修改信息()继承继承n继承是指能够直接获得已有的性质和特征,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定技术中,继承是子类自动地共享基类中定义的数据和方法的机制。义的数据和方法的机制。n单重继承:子类仅从一个父类继承属性和单重继承:子类仅从一个父类继承属性和方法方法n多重继承:子类可从多个父类继
7、承属性和多重继承:子类可从多个父类继承属性和方法方法多态性多态性n在类等级的不同层次中可以共享在类等级的不同层次中可以共享(公用公用)一个一个行为行为(方法方法)的名字,然而不同层次中的每个的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。类却各自按自己的需要来实现这个行为。n当对象接收到发送给它的消息时,根据该当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的对象所属于的类动态选用在该类中定义的实现算法实现算法9.3 面向对象建模面向对象建模n面向对象方法最基本的原则,是按照人们面向对象方法最基本的原则,是按照人们习惯的思维方式,用面向对象观点建立问习惯的
8、思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求题域的模型,开发出尽可能自然地表现求解方法的软件。解方法的软件。( Object Model Technology)是一)是一种软件工程方法学,支持整个面向对象软种软件工程方法学,支持整个面向对象软件生命周期,它覆盖了问题构成、分析、件生命周期,它覆盖了问题构成、分析、设计和实现等阶段。设计和实现等阶段。n面向对象开发软件,需要建立面向对象开发软件,需要建立3种形式的模种形式的模型。型。对象模型。描述系统数据结构数据结构。动态模型。描述系统控制结构执行操作。功能模型。描述系统功能数值变化。n这三种模型从不同侧面描述了对系统的需这
9、三种模型从不同侧面描述了对系统的需求。在面向对象的分析求。在面向对象的分析(OOA)阶段,这三阶段,这三种模型是必不可少的。种模型是必不可少的。9.4 对象模型对象模型n对象模型描述了系统的静态结构。对象模型描述了系统的静态结构。OO方法方法强调围绕对象而不是功能来构造系统。强调围绕对象而不是功能来构造系统。n使用统一建模语言使用统一建模语言UML Unified Modeling Language)提供的类图来建立)提供的类图来建立对象模型。对象模型。nUML用例图是建立功能模型的有力工具。用例图是建立功能模型的有力工具。9.4.1类图的基本符号类图的基本符号n1. 定义类定义类nUML中类
10、的图形符号为长方形,用两条横中类的图形符号为长方形,用两条横线把长方形分成上、中、下线把长方形分成上、中、下3个区域个区域,3个区个区域分别放类的名字、属性和服务域分别放类的名字、属性和服务n属性用来描述类的特征,表示需要处理的数据。定义如下:2. 定义属性定义属性 可见性可见性 属性名属性名 :类型:类型 = 初值初值 性质串性质串n其中:可见性(visibility)表示该属性对类外的元素是否可见。分为: public(+) 公有的,即模型中的任何类都可以访问该属性。 private(-) 私有的,表示不能被别的类访问。 protected(#) 受保护的,表示该属性只能被该类及其子类访问
11、。 如果可见性未申明,表示其可见性不确定。n性质串性质串列出该属性所有可能的取值,也可列出该属性所有可能的取值,也可以说明属性的其他性质,如以说明属性的其他性质,如只读只读n例如,发货单类的属性例如,发货单类的属性“管理员管理员”可描述可描述为:为: - 管理员 :string = “未定”3. 定义服务(操作)定义服务(操作)n对数据的具体处理方法的描述则放在操作对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。部分,操作说明了该类能做些什么工作。nUML描述操作的语法格式如下:描述操作的语法格式如下:n操作可见性的定义方法与属性相同。操作可见性的定义方法与属性相同。n
12、参数表是用逗号分隔的形式参数的序列。参数表是用逗号分隔的形式参数的序列。n描述一个参数的语法如下:描述一个参数的语法如下:参数名: 类型名=默认值可见性可见性 操作名(参数表):返回值类型操作名(参数表):返回值类型性质串性质串9.4.2 表示关系的符号表示关系的符号类与类之间关系有:类与类之间关系有:n关联关联n聚集聚集n泛化(继承)泛化(继承)n依赖依赖n细化细化9.4.2.1 关联关联n关联表示两个类的对象之间存在某种语义关联表示两个类的对象之间存在某种语义上的联系。上的联系。(1) 普通关联普通关联普通关联示例普通关联示例n在表示关联的直线两端可以写上重数在表示关联的直线两端可以写上重
13、数(multiplicity),它表示该类有多少个对),它表示该类有多少个对象与对方的一个对象连接。象与对方的一个对象连接。n重数的表示方法通常有:重数的表示方法通常有:0.1 表示0到1个对象0.* 或 *表示0到多个对象1+ 或 1.*表示1到多个对象1.15 表示1到15个对象3表示3个对象n如果图中未明确标出关联的重数,则默认如果图中未明确标出关联的重数,则默认重数是重数是1。(2) 关联的角色关联的角色n在任何关联中都会涉及到参与此关联的对在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类情
14、况下显式标明角色名有助于别人理解类图。如果没有显式标出角色名,则意味着图。如果没有显式标出角色名,则意味着用类名作为角色名。用类名作为角色名。递归关联递归关联(Recursive association)一个类与本身一个类与本身有关联关系有关联关系(3) 限定关联限定关联n限定关联通常用在一对多或多对多的关联限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个类图中把限定词放在关联关系末端的一个小方框内。小方框内。表示利用限定词“文
15、件名”,将一对多的关系,简化成了一对一的(4) 关联类关联类n为了说明关联的性质可能需要一些附加信息。为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。可以引入一个关联类来记录这些信息。n关联中的每个连接与关联类的一个对象相联系。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。关联类通过一条虚线与关联连接。 表示:电梯控制器,通过读取队列信息,选择合适的电梯为乘客服务9.4.2.2 聚集聚集n聚集是一种特殊的关联,它指出类间的聚集是一种特殊的关联,它指出类间的“整体整体-部分部分”关系。关系。(1) 共享聚集共享聚集n如果在聚集关系中处于部分方的
16、对象可同时参如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为与多个处于整体方对象的构成,则该聚集称为共享聚集。共享聚集。部分整体(2) 组合聚集组合聚集n如果部分类完全隶属于整体类,部分与整体共如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失,则该聚存,整体不存在了部分也会随之消失,则该聚集称为组合聚集。集称为组合聚集。9.4.2.3 泛化泛化nUML中的泛化关系就是通常所说的继承关系。中的泛化关系就是通常所说的继承关系。(1) 普通泛化普通泛化附加标记注释普通泛化没有具体对象的类为抽象类,要加abstract表示(2) 受限泛化受限泛化
17、n可以给泛化关系附加约束条件,以进一步说明可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化。预定义的约束有化关系称为受限泛化。预定义的约束有4种:种: 多重、不相交、完全和不完全。多重、不相交、完全和不完全。表示:水陆两用类继承了两次交通工具类n完全继承指的是父类的所有子类都已在类图中完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定穷举出来了,图示符号是指定完全完全约束。约束。n不完全继承与完全继承恰好相反,父类的子类不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,不完全继承是
18、一般情况下并没有都穷举出来,不完全继承是一般情况下默认的继承关系。默认的继承关系。complete人人女人女人男人男人性别性别组合聚集组合聚集抽象类组合聚集抽象操作泛化具体实现 复杂类图示例复杂类图示例9.4.2.4 依赖依赖n依赖关系表示:依赖关系表示: 其中一个模型元素是独立的,其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。响依赖于它的模型元素。system类可以使用form类中私有或保护的成员9.4.2.5 细化细化n当对同一个
19、事物在不同抽象层次上描述时,这当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。假设两个模型元素些描述之间具有细化关系。假设两个模型元素A和和B描述同一个事物,它们的区别是抽象层描述同一个事物,它们的区别是抽象层次不同,如果次不同,如果B是在是在A的基础上的更详细的描的基础上的更详细的描述,则称述,则称B细化了细化了A,或称,或称A细化成了细化成了B。注意是虚线,实线就成了泛化AB9.5 动态模型动态模型n动态模型描述系统控制结构。通常用状态动态模型描述系统控制结构。通常用状态图表示。图表示。下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层9.6 功
20、能模型功能模型n功能模型表示变化的系统的功能模型表示变化的系统的“功能功能”性质,性质,它指明了系统应该它指明了系统应该“做什么做什么”,通常,功,通常,功能模型由一组数据流图组成。能模型由一组数据流图组成。nUML提供的提供的用例图用例图也是进行需求分析和建也是进行需求分析和建立功能模型的强有力工具。立功能模型的强有力工具。用例图的组成用例图的组成用例图由如下元素组成:用例图由如下元素组成:n角色角色(Actor):也称为参与者,它代表系统的用户。:也称为参与者,它代表系统的用户。n系统边界系统边界(System Scope):它确定系统的范围。:它确定系统的范围。n用例用例(Use Cas
21、e):它代表系统提供的服务。:它代表系统提供的服务。n关联关联(Association):它表示角色与用例间的关系。:它表示角色与用例间的关系。n从图中可以看出,所从图中可以看出,所有的用例都放置在系有的用例都放置在系统边界内,表明它属统边界内,表明它属于一个系统。于一个系统。n角色则放在系统边界角色则放在系统边界的外面,表明角色并的外面,表明角色并不属于系统。但是角不属于系统。但是角色负责直接(或间接)色负责直接(或间接)驱动与之关联的用例驱动与之关联的用例的执行。的执行。系统系统n被看做一个提供用例的黑盒子被看做一个提供用例的黑盒子n用方框代表,边线代表系统的边界,用于用方框代表,边线代表
22、系统的边界,用于划定系统的功能范围。划定系统的功能范围。n描述该系统功能的用例位于方框内,外部描述该系统功能的用例位于方框内,外部实体的行为者位于方框外实体的行为者位于方框外角色角色n角色(角色(Actor)在)在UML中通常以一个稻草人中通常以一个稻草人图符来表示。角色是用例图的一个重要组图符来表示。角色是用例图的一个重要组成部分,它代表参与系统交互的用户、设成部分,它代表参与系统交互的用户、设备、或另一系统。备、或另一系统。n角色的作用:角色的作用:建立系统的外部用户模型对系统边界之外的对象进行描述用例用例n用例(用例(Use Case)用来描述角色可以感受)用来描述角色可以感受到的系统服
23、务或功能。到的系统服务或功能。UML中通常以一个中通常以一个椭圆图符来表示用例。椭圆图符来表示用例。n用例具有如下特征:用例具有如下特征:用例通常由某个角色来驱动执行。用例把执行的结果反馈给角色。用例在功能上具有完整性,即它从角色接受输入,产生的结果输出给角色。用例图的关联用例图的关联角色与用例的关联角色与用例的关联n角色与用例的关联表示角色与用例相关性角色与用例的关联表示角色与用例相关性n在在UML中是使用一条实线连接角色与用例,中是使用一条实线连接角色与用例,如下图所示。如下图所示。角色与角色的关联角色与角色的关联n角色与角色的关联用来表示一般角色与特角色与角色的关联用来表示一般角色与特殊
24、角色的泛化关系。殊角色的泛化关系。n在在UML图中,使用带空心三角箭头的实线图中,使用带空心三角箭头的实线表示。如下图所示:表示。如下图所示:用例与用例的关联用例与用例的关联n扩展扩展向一个用例中添加一些动作后构成了另一个用例,两者之间就是扩展关系n使用使用当一个用例使用另一个用例时,两者构成了使用关系。顾客供货人收银员售货供货取货款售散装饮料打开机器关闭机器打开机器关闭机器扩展使用使用使用使用用例建模用例建模n创建用例图模型有创建用例图模型有4项任务:项任务:找出系统中的角色和用例。区分用例的优先次序。细化每个用例。建立用例图模型结构。如何从系统中识别出角色如何从系统中识别出角色谁使用系统的主要功能?谁需要系统的支持以完成其日常工作任务?谁负责维护、管理并保持系统正常运行?系统需要应付(或处理)哪些硬设备?系统需要和哪些外部系统交互?谁(或什么)对系统运行产生的结果感兴趣?n这六个问题的答案往往包括了所有与系统具有关这六个问题的答案往往包括了所有与系统具有关联的用户。进一步分析这些用户在与系统关联时联的用户。进一步分析这些用户在与系统关联时担当的作用便可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度授权合同:游戏开发商游戏改编权授予与分成3篇
- 2024年06月浙江杭州银行杭银理财实习生招考笔试历年参考题库附带答案详解
- 2025年行政人事部劳动合同管理培训与员工职业生涯规划服务协议2篇
- 健康的心理压力管理
- 2025年度个人二手家具买卖合同示例4篇
- 2023-2029年中国巴桑母酥油丸行业市场调查研究及发展战略规划报告
- 2025年刮水电机总成项目投资可行性研究分析报告
- 27我的伯父鲁迅先生(说课稿)2024-2025学年统编版语文六年级上册
- 二零二五年度高速公路收费站保安服务合同规范范本
- 新能源清扫车项目风险评估报告
- GB/T 12723-2024单位产品能源消耗限额编制通则
- 2024年广东省深圳市中考英语试题含解析
- GB/T 16288-2024塑料制品的标志
- 麻风病防治知识课件
- 建筑工程施工图设计文件审查办法
- 干部职级晋升积分制管理办法
- 培训机构应急预案6篇
- 北师大版数学五年级上册口算专项练习
- 应急物资智能调配系统解决方案
- 2025年公务员考试时政专项测验100题及答案
- TSG ZF003-2011《爆破片装置安全技术监察规程》
评论
0/150
提交评论