面向对象设计及实现ppt课件.ppt
《面向对象设计及实现ppt课件.ppt》由会员分享,可在线阅读,更多相关《面向对象设计及实现ppt课件.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物面向对象设计可分为面向对象设计可分为系统设计系统设计和和类类(对象对象)设计设计。系。系统设计是高层设计,主要确定实现系统的策略和统设计是高层设计,主要确定实现系统的策略和目标系统的高层结构。类目标系统的高层结构。类-&-对象设计是低层设计,对象设计是低层设计,主要确定解空间中的类、关联、接口形式及实现主要确定解空间中的类、关联、接口形式及实现服务的算法;高层设计主要确定系统的结构、用服务的算法;高层设计主要确定系统的结构、用户界面,即用
2、来构造系统的总的模型,并把任务户界面,即用来构造系统的总的模型,并把任务分配给系统的各个子系统。分配给系统的各个子系统。CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1面向对象设计的面向对象设计的设计准则设计准则 (1) 模块化模块化 模块化是软件设计的重要准则。在面向对象开发方法中,将对象定义为模块。对象把数据结构和作用在数据上的操作(方法)封装起来构成模块。对象是组成系统的基本模块。 (2) 抽象抽象 类是一种抽象数据类型,在该数据类型之上,可以创建对象(类的成员)。类包含相似对
3、象的共同属性和服务,它对外定义了公共接口,构成了类的规格说明(即协议),供外界合法访问。 (3) 信息隐藏信息隐藏 在面向对象方法中,对象是属性和服务的封装体,这就实现了信息隐藏。类结构分离了接口与实现,类的属性的表示方法和操作的实现算法,对于类的用户来说,都应该是隐藏的,用户只能通过公共接口访问类中的属性。CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物(4 4) 弱耦合弱耦合 所谓耦合,是指一个软件结构内不同模块之间互连的依赖关系。所谓耦合,是指一个软件结构内不同模块之间互连的依赖
4、关系。依赖关系越多耦合度越强,依赖关系越少耦合度越弱。在面向对象方法中,依赖关系越多耦合度越强,依赖关系越少耦合度越弱。在面向对象方法中,对象是最基本的模块,不同对象之间相互关联的依赖关系表示了耦合度。对象是最基本的模块,不同对象之间相互关联的依赖关系表示了耦合度。衡量设计优良的一个重要标准就是弱耦合衡量设计优良的一个重要标准就是弱耦合,弱耦合的设计中某个对象的改,弱耦合的设计中某个对象的改变不会或很少影响到其他对象。变不会或很少影响到其他对象。 不同对象之间耦合是不可避免的。两个对象必须相互联系相互依赖不同对象之间耦合是不可避免的。两个对象必须相互联系相互依赖时,应该通过类的协议时,应该通过
5、类的协议( (即公共接口即公共接口) )实现两个对象相互依赖实现两个对象相互依赖( (耦合耦合) ),而不,而不是通过类的具体实现细节来描述。是通过类的具体实现细节来描述。(5 5) 强内聚强内聚 所谓内聚,是一个模块内各个元素彼此结合的紧密程度。结合得越所谓内聚,是一个模块内各个元素彼此结合的紧密程度。结合得越紧密内聚越强,结合得越不紧密内聚越弱。强内聚也是衡量设计优良的一紧密内聚越强,结合得越不紧密内聚越弱。强内聚也是衡量设计优良的一个重要标准。个重要标准。在面向对象设计中,内聚可分为下述三类:在面向对象设计中,内聚可分为下述三类:CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东
6、西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1) 1) 服务服务( (操作操作) )内聚。一个服务应该是单一的,即只完成一个任务。内聚。一个服务应该是单一的,即只完成一个任务。2) 2) 类内聚。类内聚。类内聚要求类的属性和服务应该是高内聚的,而且它们应该类内聚要求类的属性和服务应该是高内聚的,而且它们应该是系统任务所必需的是系统任务所必需的。一个类应该只有一个功能,如果某个类有多个功能,。一个类应该只有一个功能,如果某个类有多个功能,通常应该把它分解成多个专用的类。通常应该把它分解成多个专用的类。3) 3) 一般一般- -特殊内聚。一般
7、特殊内聚。一般- -特殊内聚表示:一般特殊内聚表示:一般- -特殊结构符合领域知识的特殊结构符合领域知识的表示形式,也就是说,表示形式,也就是说,特殊类应该尽量地继承一般类的属性和服务。这样特殊类应该尽量地继承一般类的属性和服务。这样的一般的一般- -特殊结构是高内聚的。特殊结构是高内聚的。(6 6)可重用)可重用 在面向对象设计中,在面向对象设计中,一个类的设计应该具有通用性,为开发相似的系一个类的设计应该具有通用性,为开发相似的系统提供软件重用可能。统提供软件重用可能。因此,在软件开发过程中,为了实现重用,既要尽因此,在软件开发过程中,为了实现重用,既要尽量重用已有的类,又要创建可重用的新
8、类。量重用已有的类,又要创建可重用的新类。CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2设计策略设计策略 在使用面向对象方法学开发软件的实践中,得出了下面在使用面向对象方法学开发软件的实践中,得出了下面一些基于经验的一些基于经验的启发规则启发规则,这些规则往往能帮助软件开发人,这些规则往往能帮助软件开发人员设计出好的方案来,以保证软件的质量。员设计出好的方案来,以保证软件的质量。 (1 1)设计结果应该清晰易懂)设计结果应该清晰易懂(2 2)一般)一般- -特殊结构的深度应适当特殊
9、结构的深度应适当(3 3)设计简单的类)设计简单的类(4 4)设计简单的协议)设计简单的协议(5 5)设计简单的服务)设计简单的服务(6 6)减少设计变动)减少设计变动CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3系统分解与组织系统分解与组织 面向对象设计同过程设计一样,自顶向下进行功能分解。面向对象设计同过程设计一样,自顶向下进行功能分解。在设计比较复杂的应用系统时,将系统分解成若干个比较小在设计比较复杂的应用系统时,将系统分解成若干个比较小的部分,再分别设计每个部分。这样既简化
10、了应用系统,又的部分,再分别设计每个部分。这样既简化了应用系统,又降低了设计的难度,并有利于实现和维护。降低了设计的难度,并有利于实现和维护。 系统是根据功能来分解的,我们将系统分解的各个部分系统是根据功能来分解的,我们将系统分解的各个部分( (即系统的主要组成部分即系统的主要组成部分) )称为称为子系统子系统。 子系统间交互的形式和交互的信息由接口确定,因此,接子系统间交互的形式和交互的信息由接口确定,因此,接口应该简单、明确。口应该简单、明确。CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一
11、个活的生物(1)面向对象设计的)面向对象设计的五个层次、四个部分五个层次、四个部分 面向对象设计模型同样由主题、类面向对象设计模型同样由主题、类- - -对象、结构、对象、结构、属性和服务等五个层次组成,并且又扩充了问题域属性和服务等五个层次组成,并且又扩充了问题域(PDC)(PDC)、人机交互、人机交互(HIC)(HIC)、任务管理、任务管理(TMC)(TMC)和数据管理和数据管理(DMC)(DMC)四个部分。四个部分。典型的面向对象设计模型如图典型的面向对象设计模型如图3.3.233.3.23示。示。CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的
12、世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物人机界面HICPDCTMCDMC问题论域任务管理数据管理主题层类-&-对象层结构层属性层服务层图3.3.23 典型的面向对象设计模型CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物(2)子系统间的交互方式)子系统间的交互方式 在应用系统中,在应用系统中,子系统之间的关系可分为客户子系统之间的关系可分为客户/ /服务器关系和同等伙伴服务器关系和同等伙伴关系两种。关系两种。这两种关系对应两种交互的方式,即客户这两种关系对应
13、两种交互的方式,即客户/ /服务器交互方式和同服务器交互方式和同等伙伴交互方式。等伙伴交互方式。 通常,系统使用客户通常,系统使用客户/ /服务器关系,因为单向交互更容易理解,也更容服务器关系,因为单向交互更容易理解,也更容易设计和修改,而双向交互相对困难些。易设计和修改,而双向交互相对困难些。(3) 系统组织系统组织 将子系统组织成完整的系统有两种方式,即水平层次组织和垂直块组织。将子系统组织成完整的系统有两种方式,即水平层次组织和垂直块组织。1) 1) 层次组织层次组织 层次组织是将子系统按层组织成为一个层次软件系统,每层是一个子系层次组织是将子系统按层组织成为一个层次软件系统,每层是一个
14、子系统。统。上层建立在下层的基础上,下层为上层提供必要的服务。低层子系统提上层建立在下层的基础上,下层为上层提供必要的服务。低层子系统提供服务,相当于服务器,上层子系统使用下层提供的服务,相当于客户。供服务,相当于服务器,上层子系统使用下层提供的服务,相当于客户。 CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2) 块组织块组织 块组织将系统垂直地分解成若干个相对独立的、弱耦合的子系统,一个子系统相当于一块,每块提供一种类型的服务。例如,图3.3.24示一个典型应用系统的组织结构。计
15、算机硬件操作系统人机交互控制像素图形屏幕图形窗口图形仿真软件包应用包(4)设计系统的拓扑结构)设计系统的拓扑结构:构成完整系统的拓扑结构有:管道型、树型、星型等。 CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物补充: 概括地说,面向对象软件开发方法采用面向对象设计概括地说,面向对象软件开发方法采用面向对象设计 (OOD)(OOD)技术进行问题解决方案的设计工作,它将问题的解决方案表述技术进行问题解决方案的设计工作,它将问题的解决方案表述为:为:类关联类关联的形式,其中,的形式,其中,
16、类类包括问题空间类、用户界面类、任务管理类包括问题空间类、用户界面类、任务管理类和数据管理类,是从设计的角度出发对问题解决方案中的对象和数据管理类,是从设计的角度出发对问题解决方案中的对象的抽象和描述,的抽象和描述,关联关联则用于描述这些类和类之间的关系。则用于描述这些类和类之间的关系。 因此,面向对象设计工作主要包括问题空间类、用户界面因此,面向对象设计工作主要包括问题空间类、用户界面类、任务管理类和数据管理类的设计类、任务管理类和数据管理类的设计,具体工作内容和步骤如,具体工作内容和步骤如图图3.3.253.3.25所示。所示。CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,
17、为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物图3.3.25 面向对象设计工作内容和步骤 CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物一、问题空间类一、问题空间类 是指那些直接从面向对象分析模型设计得到的类,它是是指那些直接从面向对象分析模型设计得到的类,它是使软件系统能够实现对问题的求解的最基本的类,也是面向使软件系统能够实现对问题的求解的最基本的类,也是面向对象软件系统的核心类。对象软件系统的核心类。 利用面向对象分析技术对问题
18、进行了分析描述之后,就利用面向对象分析技术对问题进行了分析描述之后,就可以直接将其结果用于问题空间类的设计,即直接将分析所可以直接将其结果用于问题空间类的设计,即直接将分析所得到的对象、对象与对象之间的关联确定为类以及类与类之得到的对象、对象与对象之间的关联确定为类以及类与类之间的关联,这些直接从分析结果得到的类就是问题空间类。间的关联,这些直接从分析结果得到的类就是问题空间类。 以一个字处理系统为例,如下图所示以一个字处理系统为例,如下图所示: CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一
19、个活的生物图示: 结构化方法设计结果 CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物又例:下图示以及表又例:下图示以及表18所示的是大学教务管理问题中的所示的是大学教务管理问题中的问题空间类。问题空间类。 图示:图示:大学教务管理问题中的问题空间类大学教务管理问题中的问题空间类 CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物表表5.1 Class : Student(学生)
20、(学生) 数据变量数据变量序号 名称 定义 类型 中文名称 备注1 ID char(8) 描述型 学号 2 Name char(24) 描述型 姓名 3 Sex 男,女 描述型 性别 枚举类型4 Birthday date 描述型 出生日期 5 EnrollmentDay date描述型 入学日期 6 Department char(24) 描述型 系别 7 Speciality char(24) 描述型 专业 8 Password char(6) 描述型 密码 9 Application 注册,选课 描述型 申请 枚举类型CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把
21、它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物操作操作序号 名称 接口参数 返回值 中文名称 备注1 GetID () ID 读入学号 GetPassword () Password 读入密码 2 VerifyPassword () True/Fasle 检验 3 GetApplication () Application 询问 4 PutApplication () NULL 回答 5 Note (message ) NULL 通知 6 ChangePassword (NewPassword, OldPassword) NULL 修改 CH7 面向对
22、象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物表表5.2 Class : Graduate(研究生)(研究生) 表表5.3 Class : UnderGraduate(本科生)(本科生) 表表5.4 Class : RegisterRec(注册记录)(注册记录) 表表5.5 Class : Course(课程)(课程) 表表5.6 Class : GraduateCourse(研究生课程)(研究生课程) 表表5.7 Class : UnderGraduate(本科生课程)(本科生课程) 表表5.8
23、 Class : SelectCourse(选课单)(选课单) CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物二、用户界面类二、用户界面类 是指那些为实现人机交互接口而设计的类,它是使软件是指那些为实现人机交互接口而设计的类,它是使软件系统能够接收用户的命令和能够为用户提供信息所需要的类。系统能够接收用户的命令和能够为用户提供信息所需要的类。 用户界面类是为了使系统能够与用户进行交互而必须增用户界面类是为了使系统能够与用户进行交互而必须增添设计的类。在实际中,一个软件系统常常会因为其
24、用户界添设计的类。在实际中,一个软件系统常常会因为其用户界面使得用户不满意而遭到否定或弃之不用。因此用户界面类面使得用户不满意而遭到否定或弃之不用。因此用户界面类的设计是一项既影响软件系统前途,又需要做耐心细致调查的设计是一项既影响软件系统前途,又需要做耐心细致调查分析的重要工作。尽管在分析过程中已经对用户在用户界面分析的重要工作。尽管在分析过程中已经对用户在用户界面方面进行了分析,但是在设计过程中仍然必须继续做这项分方面进行了分析,但是在设计过程中仍然必须继续做这项分析工作,必须具体设计确定交互作用的时间、交互方式和交析工作,必须具体设计确定交互作用的时间、交互方式和交互技术等。互技术等。
25、用户界面类的设计通常可以采用系统用户界面类的设计通常可以采用系统原型原型(模型)法进行。(模型)法进行。 CH7 面向对象技术 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1 1、分析考察用户、分析考察用户2 2、设计命令层次、设计命令层次1)1)研究用户交互的意义及准则研究用户交互的意义及准则如果已建立的交互系统中已有命令层次,则先研究这个已有的交互界面的如果已建立的交互系统中已有命令层次,则先研究这个已有的交互界面的意义和准则。意义和准则。2)2)建立初始命令层建立初始命令层可以以多种方式提供给用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 设计 实现 ppt 课件
限制150内