管理信息系统第九章 面向对象的分析与设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
构成对象的基本要素: ➢ 标识:即是对象的名称,用来在问题域中区分其它对 象; ➢ 数据:描述对象属性的数据或数据结构,表明对象的 一个状态; ➢ 操作:即对象的行为。分为对象自身承受的操作和施 加于其它对象的操作; ➢ 接口:主要指对外接口,是指对象受理外部消息所指 定的操作名称集合。
一、对象的基本概念 -2
对象、类和消ห้องสมุดไป่ตู้传递
二、类的继承 -1
类的层次
实际应用中,事物分类很难一蹴而就,往往要先进行粗分 类,再进一步细分,最终使分类相互联系而形成完整系统结构.继 承是类之间的重要关系,依赖继承机制,可由类产生对象,或由已 知类定义其它类.
继承是指一个类(即称子类)因承袭而具有另一个类 (或称父类)的能力和特征的机制或关系。
称为OOPL)。50年代后期,在用FORTRAN 语言编写大型程序时,常出现变量名在程序不 同部分发生冲突的问题。鉴于此,ALGOL语 言的设计者在ALGOL60中采用了以 "Begin……End"为标识的程序块,使块内变 量名是局部的,以避免它们与程序中块外的同 名变量相冲突。这是编程语言中首次提供封装 (保护)的尝试。此后程序块结构广泛用于高 级语言如Pascal 、Ada、C之中。
有继承关系的类之间应具有如下特性: 类间具有共享特征(包括数据和程序代码的共享); 类间具有细微的差别或新增部分(包括非共享程序代码 和数据); 类间具有层次结构。
二、类的继承 -2
类的层次
例如,飞机和交通工具都是类,它们之间的关系是“is a”关系,飞机是 一种特殊的交通工具。
通常,越上层的类越具有一般性和共性,越下层的类越特殊、越具体。
OOD是把系统所要求解的问题分解为一些对象及对象间传 递消息的过程;
结构化方法VS面向对象方法
结构化方法
结构化分析方法 结构化设计方法 结构化编程方法
面向对象方法 面向对象分析方法 面向对象设计方法 面向对象编程方法
结构化方法
结构化分析 ➢面向数据流的分析方法
结构化设计 ➢将数据流程图转换为模块结构图 ➢根据E-R图及数据字典设计数据库 ➢系统功能的实现靠模块之间的调用实 现
二、面向对象方法的系统开发生命周期
从宏观层面看,面向对象的系统开发方法包括 分析、设计、实现以及运行与维护等四大阶段, 遵循反复累增的生命周期,如图9.3所示。
从微观层面上看,面向对象的系统开发方法是 指每一宏观阶段中标识对象,确定对象的属性, 定义对象的服务,以及确定对象间关系等几个 步骤。
➢因此80年代末期开始出现面向对象的分析 (Object-Oriented Analysis,OOA)、面 向对象的设计(Object-Oriented Design, OOD)等涉及系统开发其他环节的方法和技 术。
➢OOA,OOD,与OOP结合在一起形成了一 种新的开发方法------面向对象(ObjectOriented,OO)方法
面向对象的起源
正是通过Smalltalk80的研制与推广 应用,使人们注意到OO方法所具有的模 块化、信息封装与隐蔽、抽象性、继承 性、多样性等独特之处,这些优异特性 为研制大型软件、提高软件可靠性、可 重用性、可扩充性和可维护性提供了有 效的手段和途径。
第一节 面向对象的基本概念
➢OOP思路是从对象入手,需要相应的面向对 象的分析和设计方法。
➢面向对象的基本思想是现实世界看成是对象 的集合。按照以下4个概念设计和实现的系 统,称为是面向对象的。 面向对象=对象 (object) +类 (classification) +继承(inheritance) +通信 (communication with messages)
什么是面向对象方法
对象名 属性 方法
对象
二、类的基本概念 -1
类又称对象类(Object Class),是一组 具有相同属性和相同操作的对象的集合。 在一个类中,每个对象都是类的实例 (instance) ,它们都可以使用类中提供的 函数。类具有属性,用数据结构来描述类 的属性,类具有操作,它是对象的行为的 抽象,操作实现的过程称为方法 (method) ,方法有方法名,方法体和参 数。
二、类的基本概念 -1
类的使用
➢例如: 芒果、苹果和桔子都是fruit类的对象。 类是用户定义的数据类型,但在一个程序设 计语言中,它和内建的数据类型行为相同。 比如创建一个类对象的语法和创建一个整数 对象的语法一模一样。 int a; 如果fruit被定义为一个类,那么语句 fruit apple; 就创建了一个fruit类的对象apple。
二、类的基本概念 -2
类与对象 ➢对象与类的关系相当于一般程序设计语言中 变量和变量所具有的类型的关系。
二、类的基本概念 -3
类名
类图 属性
运算
对象图
人
姓 名:字符串 年 龄: 整 型
改换工作 改换地址
文件
文件名 文件大小 最近更新日期
打印
对象类的描述
(李军:人)
李军 24
(张红兵: 人)
张红兵 28
面向对象方法
面向对象分析 ➢以对象为中心,把现实事物看成为对象,分 析对象的特征和行为,对象抽象为类。
面向对象设计 ➢通过对象的特征及行为确定类的属性和方法 ➢系统功能的实现靠对象之间的消息传递实现
相同之处
都是软件系统的开发方法。 在运用分解和抽象原则上的要求是完全
一致的 局部化和重用性设计上的一致。
不同点
处理问题时的出发点不同。 处理问题的基本单位和层次逻辑关系不
同。 数据处理方式与控制程序方式不同。 分析设计与编码转换方式不同。
第九章 面向对象的分析与设计
第一节 面向对象的基本概念 第二节 面向对象的建模工具UML 第三节 面向对象的分析与设计过程
面向对象的起源
OO方法起源于面向对象的编程语言(简
对象的描述
二、类的基本概念 -4
类:教师
属性:姓名 年龄 单位 职称 工资
抽象 实例
数
据
抽象
结
实例
构
对象:李伟
状态:李伟
25
数
计算机系
据
讲师
值
900
方法名:调工资 评职称 受聘
抽象 方法名(参数)
方法名:调工资 评职称 受聘
执行 的
操作
方法:调工资 (计算公式) 评职称
(步骤、条件)
方 法 体
人事处向对象发消息 李伟.调工资(•••••• )
面向对象方法由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设
O计OA过程是在系统所要求解的问题中找出对象(属性和行为) 以及它所属的类,并定义对象与类;
B 继承 继承部分
A 增加部分
简单继承
B1
…
Bn
继承
继承
A
多重继承
三、 消息和消息传递 -1
面向对象的世界是通过对象与对象间彼此的相互合作来推动 的,消息是对象之间的通信载体。
消息就是向对象发出的服务请求(互相联系、协同工作等)。 对象之间的联系可表示为对象间的消息传递,即对象间的通 讯机制。
string str = "server=localhost;integrated security=SSPI;database=xk"; conn = new SqlConnection(str); } protected void DelButton_Click(object sender, EventArgs e) { conn.Open(); string delestudent= "delete from student where sno='" + this.TextBox1.Text + "' or sname='" + this.TextBox2.Text + "'"; SqlCommand comanddel = new SqlCommand(delestudent, conn); comanddel.ExecuteNonQuery(); conn.Close(); } }
管理信息系统第九章 面向对象的分析与设计
什么是面向对象方法
就是主张从客观世界固有的事物出发 来构造系统,提倡用人类在现实生活中 常用的思维方法来认识、理解和描述客 观事物,强调最终建立的系统能够映射 问题域,也就是说,系统中的对象以及 对象之间的关系能够如实地反映现实世 界中事物及其关系。
什么是面向对象方法
面向对象的起源
60年代中后期,Simula将ALGOL的块结构概 念向前发展一步,提出了对象的概念,并使用 了类,也支持类继承。70年代,Smalltalk语言 诞生,它取Simula的类为核心概念,由Xerox 公司经过对Smautalk72、76持续不断的研究和 改进之后,于1980年推出商品化的,它在系统 设计中强调对象概念的统一,引入对象、对象 类、方法、实例等概念和术语,采用动态联编 和单继承机制。
string str = "server=localhost;integrated security=SSPI;database=xk"; conn = new SqlConnection(str); } protected void DelButton_Click(object sender, EventArgs e) { conn.Open(); string delestudent= "delete from student where sno='" + this.TextBox1.Text + "' or sname='" + this.TextBox2.Text + "'"; SqlCommand comanddel = new SqlCommand(delestudent, conn); comanddel.ExecuteNonQuery(); conn.Close(); } }
三、 消息和消息传递 -4
using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page {
SqlConnection conn; protected void Page_Load(object sender, EventArgs e) {
一、面向对象系统开发的方法论 -2
t
时
间
分 析
分 析 设 计
第一节 面向对象的基本概念
面向对象方法的优越性
• 与人类思维方式一致 • 可重用性好 • 易于维护
第一节 面向对象的基本概念
本节内容: 一、对象的基本概念 二、类的基本概念 三、消息及消息传递 四、继承的基本概念 五、面向对象的含义
一、对象的基本概念 -1
在面向对象的系统中,对象是基本的运行实体,是由一 组数据和施加于这些数据上的一组操作封闭而成的。
四、 面向对象的含义
面向对象是一种认识客观世界的认知方法学 ➢ 这种认识方法将客观世界看成是由许许多多不同对象构 成的,每一个对象都有自己的运动规律和内部状态,不 同对象间的相互作用和通讯构成了完整的客观世界。
面向对象亦是一种解决问题的思维方法 ➢ 从组织结构模型化客观世界,将对象作为需求分析和系 统设计的核心或主体,把整个问题域抽象成为相互通讯 的一组对象集合,并引用科学方法论中的分类思想,将 相似或相近的一组对象聚合成类,采用各种手段将相似 的类组织起来,实现问题空间到解空间的映射。
消息具有如下几个性质: ➢ 同一对象可以接收不同形式的多个消息,产生不同响应。 ➢ 一条消息可以发送给不同的对象,消息的解释完全由接收 对象完成,不同对象对相同形式的消息可以有不同解释。 ➢ 与传统程序调用不同,对于传来的消息,对象可以返回相 应的回答信息,也可以不返回,即消息响应不是必须的。
三、 消息和消息传递 -3
传送对象
消息 <操作名,参数>
接 口
接收对象
消息传递模型
三、 消息和消息传递 -4
using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page {
SqlConnection conn; protected void Page_Load(object sender, EventArgs e) {
一、对象的基本概念 -2
对象、类和消ห้องสมุดไป่ตู้传递
二、类的继承 -1
类的层次
实际应用中,事物分类很难一蹴而就,往往要先进行粗分 类,再进一步细分,最终使分类相互联系而形成完整系统结构.继 承是类之间的重要关系,依赖继承机制,可由类产生对象,或由已 知类定义其它类.
继承是指一个类(即称子类)因承袭而具有另一个类 (或称父类)的能力和特征的机制或关系。
称为OOPL)。50年代后期,在用FORTRAN 语言编写大型程序时,常出现变量名在程序不 同部分发生冲突的问题。鉴于此,ALGOL语 言的设计者在ALGOL60中采用了以 "Begin……End"为标识的程序块,使块内变 量名是局部的,以避免它们与程序中块外的同 名变量相冲突。这是编程语言中首次提供封装 (保护)的尝试。此后程序块结构广泛用于高 级语言如Pascal 、Ada、C之中。
有继承关系的类之间应具有如下特性: 类间具有共享特征(包括数据和程序代码的共享); 类间具有细微的差别或新增部分(包括非共享程序代码 和数据); 类间具有层次结构。
二、类的继承 -2
类的层次
例如,飞机和交通工具都是类,它们之间的关系是“is a”关系,飞机是 一种特殊的交通工具。
通常,越上层的类越具有一般性和共性,越下层的类越特殊、越具体。
OOD是把系统所要求解的问题分解为一些对象及对象间传 递消息的过程;
结构化方法VS面向对象方法
结构化方法
结构化分析方法 结构化设计方法 结构化编程方法
面向对象方法 面向对象分析方法 面向对象设计方法 面向对象编程方法
结构化方法
结构化分析 ➢面向数据流的分析方法
结构化设计 ➢将数据流程图转换为模块结构图 ➢根据E-R图及数据字典设计数据库 ➢系统功能的实现靠模块之间的调用实 现
二、面向对象方法的系统开发生命周期
从宏观层面看,面向对象的系统开发方法包括 分析、设计、实现以及运行与维护等四大阶段, 遵循反复累增的生命周期,如图9.3所示。
从微观层面上看,面向对象的系统开发方法是 指每一宏观阶段中标识对象,确定对象的属性, 定义对象的服务,以及确定对象间关系等几个 步骤。
➢因此80年代末期开始出现面向对象的分析 (Object-Oriented Analysis,OOA)、面 向对象的设计(Object-Oriented Design, OOD)等涉及系统开发其他环节的方法和技 术。
➢OOA,OOD,与OOP结合在一起形成了一 种新的开发方法------面向对象(ObjectOriented,OO)方法
面向对象的起源
正是通过Smalltalk80的研制与推广 应用,使人们注意到OO方法所具有的模 块化、信息封装与隐蔽、抽象性、继承 性、多样性等独特之处,这些优异特性 为研制大型软件、提高软件可靠性、可 重用性、可扩充性和可维护性提供了有 效的手段和途径。
第一节 面向对象的基本概念
➢OOP思路是从对象入手,需要相应的面向对 象的分析和设计方法。
➢面向对象的基本思想是现实世界看成是对象 的集合。按照以下4个概念设计和实现的系 统,称为是面向对象的。 面向对象=对象 (object) +类 (classification) +继承(inheritance) +通信 (communication with messages)
什么是面向对象方法
对象名 属性 方法
对象
二、类的基本概念 -1
类又称对象类(Object Class),是一组 具有相同属性和相同操作的对象的集合。 在一个类中,每个对象都是类的实例 (instance) ,它们都可以使用类中提供的 函数。类具有属性,用数据结构来描述类 的属性,类具有操作,它是对象的行为的 抽象,操作实现的过程称为方法 (method) ,方法有方法名,方法体和参 数。
二、类的基本概念 -1
类的使用
➢例如: 芒果、苹果和桔子都是fruit类的对象。 类是用户定义的数据类型,但在一个程序设 计语言中,它和内建的数据类型行为相同。 比如创建一个类对象的语法和创建一个整数 对象的语法一模一样。 int a; 如果fruit被定义为一个类,那么语句 fruit apple; 就创建了一个fruit类的对象apple。
二、类的基本概念 -2
类与对象 ➢对象与类的关系相当于一般程序设计语言中 变量和变量所具有的类型的关系。
二、类的基本概念 -3
类名
类图 属性
运算
对象图
人
姓 名:字符串 年 龄: 整 型
改换工作 改换地址
文件
文件名 文件大小 最近更新日期
打印
对象类的描述
(李军:人)
李军 24
(张红兵: 人)
张红兵 28
面向对象方法
面向对象分析 ➢以对象为中心,把现实事物看成为对象,分 析对象的特征和行为,对象抽象为类。
面向对象设计 ➢通过对象的特征及行为确定类的属性和方法 ➢系统功能的实现靠对象之间的消息传递实现
相同之处
都是软件系统的开发方法。 在运用分解和抽象原则上的要求是完全
一致的 局部化和重用性设计上的一致。
不同点
处理问题时的出发点不同。 处理问题的基本单位和层次逻辑关系不
同。 数据处理方式与控制程序方式不同。 分析设计与编码转换方式不同。
第九章 面向对象的分析与设计
第一节 面向对象的基本概念 第二节 面向对象的建模工具UML 第三节 面向对象的分析与设计过程
面向对象的起源
OO方法起源于面向对象的编程语言(简
对象的描述
二、类的基本概念 -4
类:教师
属性:姓名 年龄 单位 职称 工资
抽象 实例
数
据
抽象
结
实例
构
对象:李伟
状态:李伟
25
数
计算机系
据
讲师
值
900
方法名:调工资 评职称 受聘
抽象 方法名(参数)
方法名:调工资 评职称 受聘
执行 的
操作
方法:调工资 (计算公式) 评职称
(步骤、条件)
方 法 体
人事处向对象发消息 李伟.调工资(•••••• )
面向对象方法由三部分组成: OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP (Object-Oriented Program)面向对象的程序设
O计OA过程是在系统所要求解的问题中找出对象(属性和行为) 以及它所属的类,并定义对象与类;
B 继承 继承部分
A 增加部分
简单继承
B1
…
Bn
继承
继承
A
多重继承
三、 消息和消息传递 -1
面向对象的世界是通过对象与对象间彼此的相互合作来推动 的,消息是对象之间的通信载体。
消息就是向对象发出的服务请求(互相联系、协同工作等)。 对象之间的联系可表示为对象间的消息传递,即对象间的通 讯机制。
string str = "server=localhost;integrated security=SSPI;database=xk"; conn = new SqlConnection(str); } protected void DelButton_Click(object sender, EventArgs e) { conn.Open(); string delestudent= "delete from student where sno='" + this.TextBox1.Text + "' or sname='" + this.TextBox2.Text + "'"; SqlCommand comanddel = new SqlCommand(delestudent, conn); comanddel.ExecuteNonQuery(); conn.Close(); } }
管理信息系统第九章 面向对象的分析与设计
什么是面向对象方法
就是主张从客观世界固有的事物出发 来构造系统,提倡用人类在现实生活中 常用的思维方法来认识、理解和描述客 观事物,强调最终建立的系统能够映射 问题域,也就是说,系统中的对象以及 对象之间的关系能够如实地反映现实世 界中事物及其关系。
什么是面向对象方法
面向对象的起源
60年代中后期,Simula将ALGOL的块结构概 念向前发展一步,提出了对象的概念,并使用 了类,也支持类继承。70年代,Smalltalk语言 诞生,它取Simula的类为核心概念,由Xerox 公司经过对Smautalk72、76持续不断的研究和 改进之后,于1980年推出商品化的,它在系统 设计中强调对象概念的统一,引入对象、对象 类、方法、实例等概念和术语,采用动态联编 和单继承机制。
string str = "server=localhost;integrated security=SSPI;database=xk"; conn = new SqlConnection(str); } protected void DelButton_Click(object sender, EventArgs e) { conn.Open(); string delestudent= "delete from student where sno='" + this.TextBox1.Text + "' or sname='" + this.TextBox2.Text + "'"; SqlCommand comanddel = new SqlCommand(delestudent, conn); comanddel.ExecuteNonQuery(); conn.Close(); } }
三、 消息和消息传递 -4
using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page {
SqlConnection conn; protected void Page_Load(object sender, EventArgs e) {
一、面向对象系统开发的方法论 -2
t
时
间
分 析
分 析 设 计
第一节 面向对象的基本概念
面向对象方法的优越性
• 与人类思维方式一致 • 可重用性好 • 易于维护
第一节 面向对象的基本概念
本节内容: 一、对象的基本概念 二、类的基本概念 三、消息及消息传递 四、继承的基本概念 五、面向对象的含义
一、对象的基本概念 -1
在面向对象的系统中,对象是基本的运行实体,是由一 组数据和施加于这些数据上的一组操作封闭而成的。
四、 面向对象的含义
面向对象是一种认识客观世界的认知方法学 ➢ 这种认识方法将客观世界看成是由许许多多不同对象构 成的,每一个对象都有自己的运动规律和内部状态,不 同对象间的相互作用和通讯构成了完整的客观世界。
面向对象亦是一种解决问题的思维方法 ➢ 从组织结构模型化客观世界,将对象作为需求分析和系 统设计的核心或主体,把整个问题域抽象成为相互通讯 的一组对象集合,并引用科学方法论中的分类思想,将 相似或相近的一组对象聚合成类,采用各种手段将相似 的类组织起来,实现问题空间到解空间的映射。
消息具有如下几个性质: ➢ 同一对象可以接收不同形式的多个消息,产生不同响应。 ➢ 一条消息可以发送给不同的对象,消息的解释完全由接收 对象完成,不同对象对相同形式的消息可以有不同解释。 ➢ 与传统程序调用不同,对于传来的消息,对象可以返回相 应的回答信息,也可以不返回,即消息响应不是必须的。
三、 消息和消息传递 -3
传送对象
消息 <操作名,参数>
接 口
接收对象
消息传递模型
三、 消息和消息传递 -4
using System.Data.SqlClient; public partial class _Default : System.Web.UI.Page {
SqlConnection conn; protected void Page_Load(object sender, EventArgs e) {