软件工程-8-面向对象概述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 对象包含两个基本要素: • 属性:用于描述对象的静态特征,是反映类或对 象当前状态本质的数据项。 • 方法:用于描述对象的动态特征,反映对象的一 种行为,是对对象属性的操作、服务。
11
▪ 对象的形象化表示
操作1

操作2

操作3
方法1 方法2 方法3
对象 属性
12
❖类
▪ 定义
• 具有相同属性和行为的一组对象的集合
▪ 按照子类(或称为派生类)与父类(或称为基 类)的关系,把若干个对象类组成一个层次结 构的系统。
▪ 对象彼此之间仅能通过传递消息互相联系。
3
❖ 传统方法论与面向对象方法论的比较
传统方法
系统是过程的集合 过程与数据实体交互 过程接受输入并产生输出
面向对象方法
系统是交互对象的集合 对象与其它对象交互 对象发送消息与响应消息
采用面向过程的处理方式来应对用户提出的功能上 的变更造成了系统结构的不稳定。 ▪ 过程分析和数据分析之间的边界问题始终没解决
2
❖ 面向对象方法论
▪ 认为客观世界是由各种对象组成,任何事物都 是对象,复杂的对象可以由比较简单的对象以 某种方式组合而成的。
▪ 把所有的对象划分成各种对象类(简称类 class),每个对象类都定义了一组数据和一组 方法。
▪ 从系统分析能够平滑地过渡到系统设计。
• UML将分析和设计模型统一,使用的符号统一, 设计模型是分析模型的完善和扩充。
9
二、面向对象基本概念
❖对象 ❖类 ❖消息 ❖封装 ❖继承 ❖多态
10
❖ 对象
▪ 定义 • 可以将问题域中任何事物都视为对象,对象是所 有数据及可对这些数据施加的操作结合在一起所 构成的独立单位的总称,是具有一定知识和处理 能力的独立个体。它可以是具体的物理实体,如 一个文件;也可是是人为抽象概念的,如多任务 操作系统中的调度策略。
❖ 多态性
▪ 是对象根据所接收的消息而做出动作。 ▪ 同一消息为不同的对象接受时可产生完全不同的行动,这种
现象称为多态性。
17
三、为何使用UML
❖ UML
▪ 统一建模语言(UML)是描述、构造和文档化系统制 品的可视化语言
18
1.UML的应用方式
❖ 应用方式
▪ UML作为草图
• 非正式的、不完整的图,借助可视化语言的功能,用 于探讨问题或解决方案空间的复杂部分。
Software Engineering
软件工程
第八章 面向对象基础
1
一、软件工程主要方法论
❖ 结构化分析和设计方法论
▪ 也叫数据流建模方法论 ▪ 把现实世界描绘为数据在信息系统中的流动,在数
据流动过程中数据发生转化。 ▪ 通过自顶向下的程序设计将复杂的程序分解为程序
模块的层次图。
❖ 存在问题
▪ 面向过程方法大多基于瀑布模型 ▪ 面向过程方法是将用户需求对应到软件功能上,而
消息接收者 操作 参数类型 输入参数
消息
16
❖ 封装性
▪ 是面向对象的主要特征之一,它是一种信息隐蔽技术,它体 现于类的说明。
▪ 封装使数据和加工该数据的方法(函数)封装为一个整体, 使得用户只能见到对象的外部特性,而对象的内部特性对用 户是隐蔽的。
❖ 继承性
▪ 是子类自动共享父类之间数据和方法的机制。 ▪ 一个类直接继承其它类的全部描述,同时可修改和扩充。 ▪ 继承能够直接获得已有的性质和特征,而不必重复定义它们。
14
▪ 例如
▪ MyCircle.Show(Green):
• MyCircle是接收消息的对象的名字,Show是消息名, Green是消息的参数。
▪ MyCircle.ChangeColor(Green);
15
▪ 消息的表示形式
student.read(in books, out report)
DiceGame
-die1 : Die -die2 : Die +play()
Die 2 -faceValue : int
+getFaceValue() : int +roll()
特化或实现透视图 (设计类图)
用于使软件元素可视化 的原始UML类图表示法
22
四、软件开发过程模型 ❖ RUP过程模型
▪ 类与对象的关系
• 类是对象的抽象 • 对象是类的实例
▪ 类的描述方法
类名
-属性1 -属性2
+方法1() +方法2()
13
❖消息
▪ 定义
• 消息是用来请求对象执行某一处理或回答某一要求的 信息,是对象之间建立的一种通信机制,它统一了数 据流和控制流。
▪ 通常一个消息由三部分组成:
• 对象名:接收消息的对象 • 消息名:要求接收对象完成的操作 • 参数:执行操作时的参数或操作返回的结果
4
❖例子
▪ 设计一个程序,对不同类型的图形求其面积,并打 印结果。
▪ 请分别采用结构化思想和面向对象思想对问题展开 分析。
5
▪ 传统方法论
主控函数
输入功能类型
圆形
矩形
绘制圆形
பைடு நூலகம்
计算圆形面积
绘制矩形
计算矩形面积
6
▪ 面向对象方法论
通用图形 计算面积 打印结果

圆心 半径 计算面积 打印结果
矩形
长 宽 计算面积 打印结果
23
1.UP的阶段和制品
❖ UP阶段(按照时间进行的内容--横轴)
❖ 概念透视图
▪ 用图来描述现实世界或关注领域中的事物
❖ 设计透视图
▪ 用图来描述软件的抽象物或具有规格说明和接口的 构件,但是并不约束特定实现
❖ 实现透视图
▪ 用图来描述特定技术中的软件实现
21
❖ UML的不同视图
DiceGame
1 includes 2
Die
faceValue
概念透视图(领域模型) 用于使真实世界概念可视 化的原始UML类图表示法
7
▪ 面向对象方法不再把程序看成工作在数据上的 一系列过程或函数的集合,而是把程序看作是 相互协作而又彼此独立的对象的集合。
▪ 每个对象可以看作是一个微型程序,有自己的 数据、操作、功能和目的。
8
❖ 面向对象分析和设计解决的两个经典问题
▪ 传统的分析和设计方法将处理问题的数据模型 和处理模型分离,而面向对象的方法将数据模 型和处理模型二者合一。
▪ UML作为蓝图
• 相对详细的设计图
– 逆向工程 – 前向工程(代码生成)
19
❖ UML只是一种工具
▪ UML并不是面向对象分析和设计的全部,它只是一 种手段,一种工具。我们需要通过自己对对象的理 解和面向对象分析设计技术的掌握来进行系统的分 析和设计,然后通过UML的形式来进行表述。
20
2.UML的三种透视图
相关文档
最新文档