面向对象设计及实现精选PPT.ppt





《面向对象设计及实现精选PPT.ppt》由会员分享,可在线阅读,更多相关《面向对象设计及实现精选PPT.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1页,此课件共50页哦面面向向对对象象设设计计可可分分为为系系统统设设计计和和类类(对对象象)设设计计。系系统统设设计计是是高高层层设设计计,主主要要确确定定实实现现系系统统的的策策略略和和目目标标系系统统的的高高层层结结构构。类类-&-对对象象设设计计是是低低层层设设计计,主主要要确确定定解解空空间间中中的的类类、关关联联、接接口口形形式式及及实实现现服服务务的的算算法法;高高层层设设计计主主要要确确定定系系统统的的结结构构、用用户户界界面面,即即用用来来构构造造系系统统的的总的模型,并把任务分配给系统的各个子系统。总的模型,并把任务分配给系统的各个子系统。第2页,此课件共50页哦1面向对
2、象设计的面向对象设计的设计准则设计准则(1)模块化模块化模块化是软件设计的重要准则。在面向对象开发方法中,将对象定义为模块。对象把数据结构和作用在数据上的操作(方法)封装起来构成模块。对象是组成系统的基本模块。(2)抽象抽象类是一种抽象数据类型,在该数据类型之上,可以创建对象(类的成员)。类包含相似对象的共同属性和服务,它对外定义了公共接口,构成了类的规格说明(即协议),供外界合法访问。(3)信息隐藏信息隐藏在面向对象方法中,对象是属性和服务的封装体,这就实现了信息隐藏。类结构分离了接口与实现,类的属性的表示方法和操作的实现算法,对于类的用户来说,都应该是隐藏的,用户只能通过公共接口访问类中的
3、属性。第3页,此课件共50页哦(4 4)弱耦合弱耦合 所谓耦合,是指一个软件结构内不同模块之间互连的依赖关系。依赖所谓耦合,是指一个软件结构内不同模块之间互连的依赖关系。依赖关系越多耦合度越强,依赖关系越少耦合度越弱。在面向对象方法中,对象关系越多耦合度越强,依赖关系越少耦合度越弱。在面向对象方法中,对象是最基本的模块,不同对象之间相互关联的依赖关系表示了耦合度。是最基本的模块,不同对象之间相互关联的依赖关系表示了耦合度。衡量设衡量设计优良的一个重要标准就是弱耦合计优良的一个重要标准就是弱耦合,弱耦合的设计中某个对象的改变不会或很,弱耦合的设计中某个对象的改变不会或很少影响到其他对象。少影响到
4、其他对象。不不同同对对象象之之间间耦耦合合是是不不可可避避免免的的。两两个个对对象象必必须须相相互互联联系系相相互互依依赖赖时时,应应该该通通过过类类的的协协议议(即即公公共共接接口口)实实现现两两个个对对象象相相互互依依赖赖(耦耦合合),而而不不是是通通过过类类的的具具体体实实现现细细节来描述。节来描述。(5 5)强内聚强内聚 所所谓谓内内聚聚,是是一一个个模模块块内内各各个个元元素素彼彼此此结结合合的的紧紧密密程程度度。结结合合得得越越紧紧密密内内聚聚越越强强,结结合合得得越越不不紧紧密密内内聚聚越越弱弱。强强内内聚聚也也是是衡衡量量设设计计优优良良的的一一个个重重要要标标准准。在在面面向
5、向对对象象设设计计中,内聚可分为下述三类:中,内聚可分为下述三类:第4页,此课件共50页哦1)1)服务服务(操作操作)内聚。一个服务应该是单一的,即只完成一个任务。内聚。一个服务应该是单一的,即只完成一个任务。2)2)类类内内聚聚。类类内内聚聚要要求求类类的的属属性性和和服服务务应应该该是是高高内内聚聚的的,而而且且它它们们应应该该是是系系统统任任务务所所必必需需的的。一一个个类类应应该该只只有有一一个个功功能能,如如果果某某个个类类有有多多个个功功能能,通通常常应应该该把把它它分分解成多个专用的类。解成多个专用的类。3)3)一一般般-特特殊殊内内聚聚。一一般般-特特殊殊内内聚聚表表示示:一一
6、般般-特特殊殊结结构构符符合合领领域域知知识识的的表表示示形形式式,也也就就是是说说,特特殊殊类类应应该该尽尽量量地地继继承承一一般般类类的的属属性性和和服服务务。这这样样的的一一般般-特特殊殊结结构构是是高高内聚的。内聚的。(6 6)可重用)可重用 在面向对象设计中,在面向对象设计中,一个类的设计应该具有通用性,为开发相似的系统提供软一个类的设计应该具有通用性,为开发相似的系统提供软件重用可能。件重用可能。因此,在软件开发过程中,为了实现重用,既要尽量重用已有的类,因此,在软件开发过程中,为了实现重用,既要尽量重用已有的类,又要创建可重用的新类。又要创建可重用的新类。第5页,此课件共50页哦
7、2设计策略设计策略 在在使使用用面面向向对对象象方方法法学学开开发发软软件件的的实实践践中中,得得出出了了下下面面一一些些基基于于经经验验的的启启发发规规则则,这这些些规规则则往往往往能能帮帮助助软软件件开开发发人人员员设设计计出出好好的的方方案案来,以保证软件的质量。来,以保证软件的质量。(1 1)设计结果应该清晰易懂)设计结果应该清晰易懂(2 2)一般)一般-特殊结构的深度应适当特殊结构的深度应适当(3 3)设计简单的类)设计简单的类(4 4)设计简单的协议)设计简单的协议(5 5)设计简单的服务)设计简单的服务(6 6)减少设计变动)减少设计变动第6页,此课件共50页哦3系统分解与组织系
8、统分解与组织 面面向向对对象象设设计计同同过过程程设设计计一一样样,自自顶顶向向下下进进行行功功能能分分解解。在在设设计计比比较较复复杂杂的的应应用用系系统统时时,将将系系统统分分解解成成若若干干个个比比较较小小的的部部分分,再再分分别别设设计计每每个个部部分分。这这样样既既简简化化了了应应用用系系统统,又又降降低低了了设计的难度,并有利于实现和维护。设计的难度,并有利于实现和维护。系统是根据功能来分解的,我们将系统分解的各个部分系统是根据功能来分解的,我们将系统分解的各个部分(即系统的即系统的主要组成部分主要组成部分)称为称为子系统子系统。子系统间交互的形式和交互的信息由接口确定,因此,接口
9、应子系统间交互的形式和交互的信息由接口确定,因此,接口应该简单、明确。该简单、明确。第7页,此课件共50页哦(1)面向对象设计的)面向对象设计的五个层次、四个部分五个层次、四个部分 面向对象设计模型同样由主题、类面向对象设计模型同样由主题、类-对象、结构、属性对象、结构、属性和服务等五个层次组成,并且又扩充了问题域和服务等五个层次组成,并且又扩充了问题域(PDC)(PDC)、人机交互、人机交互(HIC)(HIC)、任务管理、任务管理(TMC)(TMC)和数据管理和数据管理(DMC)(DMC)四个部分。四个部分。典型的面向对象设计模型如图典型的面向对象设计模型如图3.3.233.3.23示。示。
10、第8页,此课件共50页哦图3.3.23典型的面向对象设计模型第9页,此课件共50页哦(2)子系统间的交互方式)子系统间的交互方式 在在应应用用系系统统中中,子子系系统统之之间间的的关关系系可可分分为为客客户户/服服务务器器关关系系和和同同等等伙伙伴伴关关系系两两种种。这两种关系对应两种交互的方式,即客户这两种关系对应两种交互的方式,即客户/服务器交互方式和同等伙伴交互方式。服务器交互方式和同等伙伴交互方式。通通常常,系系统统使使用用客客户户/服服务务器器关关系系,因因为为单单向向交交互互更更容容易易理理解解,也也更更容容易易设设计计和和修改,而双向交互相对困难些。修改,而双向交互相对困难些。(
11、3)系统组织系统组织 将子系统组织成完整的系统有两种方式,即水平层次组织和垂直块组织。将子系统组织成完整的系统有两种方式,即水平层次组织和垂直块组织。1)1)层次组织层次组织 层次组织是将子系统按层组织成为一个层次软件系统,每层是一个子系统。层次组织是将子系统按层组织成为一个层次软件系统,每层是一个子系统。上层建立在上层建立在下层的基础上,下层为上层提供必要的服务。低层子系统提供服务,相当于服务器,上层子下层的基础上,下层为上层提供必要的服务。低层子系统提供服务,相当于服务器,上层子系统使用下层提供的服务,相当于客户。系统使用下层提供的服务,相当于客户。第10页,此课件共50页哦2)块组织块组
12、织 块组织将系统垂直地分解成若干个相对独立的、弱耦合的子系统,一个子系统相当于一块,每块提供一种类型的服务。例如,图3.3.24示一个典型应用系统的组织结构。(4)设设计计系系统统的的拓拓扑扑结结构构:构成完整系统的拓扑结构有:管道型、树型、星型等。第11页,此课件共50页哦补充:概概括括地地说说,面面向向对对象象软软件件开开发发方方法法采采用用面面向向对对象象设设计计 (OOD)(OOD)技技术术进进行行问题解决方案的设计工作,它将问题的解决方案表述为:问题解决方案的设计工作,它将问题的解决方案表述为:类关联类关联的的形形式式,其其中中,类类包包括括问问题题空空间间类类、用用户户界界面面类类
13、、任任务务管管理理类类和和数数据据管管理理类类,是是从从设设计计的的角角度度出出发发对对问问题题解解决决方方案案中中的的对对象象的的抽抽象象和和描述,描述,关联关联则用于描述这些类和类之间的关系。则用于描述这些类和类之间的关系。因因此此,面面向向对对象象设设计计工工作作主主要要包包括括问问题题空空间间类类、用用户户界界面面类类、任任务务管管理理类类和和数数据据管管理理类类的的设设计计,具具体体工工作作内内容容和和步步骤骤如如图图3.3.253.3.25所所示。示。第12页,此课件共50页哦图3.3.25面向对象设计工作内容和步骤第13页,此课件共50页哦一、问题空间类一、问题空间类 是指那些直
14、接从面向对象分析模型设计得到的类,它是使软件系是指那些直接从面向对象分析模型设计得到的类,它是使软件系统能够实现对问题的求解的最基本的类,也是面向对象软件系统的核统能够实现对问题的求解的最基本的类,也是面向对象软件系统的核心类。心类。利用面向对象分析技术对问题进行了分析描述之后,就可利用面向对象分析技术对问题进行了分析描述之后,就可以直接将其结果用于问题空间类的设计,即直接将分析所得到以直接将其结果用于问题空间类的设计,即直接将分析所得到的对象、对象与对象之间的关联确定为类以及类与类之间的关的对象、对象与对象之间的关联确定为类以及类与类之间的关联,这些直接从分析结果得到的类就是问题空间类。联,
15、这些直接从分析结果得到的类就是问题空间类。以一个字处理系统为例,如下图所示以一个字处理系统为例,如下图所示:第14页,此课件共50页哦图示:结构化方法设计结果第15页,此课件共50页哦又例:下图示以及表又例:下图示以及表18所示的是大学教务管理问题中的问题空间类。所示的是大学教务管理问题中的问题空间类。图示:图示:大学教务管理问题中的问题空间类大学教务管理问题中的问题空间类 第16页,此课件共50页哦表表5.1 Class:Student(学生)(学生)数据变量数据变量序号名称定义类型 中文名称备注1IDchar(8)描述型学号2Namechar(24)描述型姓名3Sex男,女 描述型性别 枚
16、举类型4Birthdaydate描述型出生日期5EnrollmentDaydate描述型入学日期6Departmentchar(24)描述型系别7Specialitychar(24)描述型专业8Passwordchar(6)描述型密码9Application注册,选课描述型申请 枚举类型第17页,此课件共50页哦操作操作序号名称接口参数返回值中文名称备注1GetID()ID读入学号GetPassword()Password读入密码2VerifyPassword()True/Fasle检验3GetApplication()Application询问4PutApplication()NULL 回答
17、5Note(message)NULL通知6ChangePassword(NewPassword,OldPassword)NULL修改第18页,此课件共50页哦表表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 Class:Sele
18、ctCourse(选课单)(选课单)第19页,此课件共50页哦二、用户界面类二、用户界面类 是指那些为实现人机交互接口而设计的类,它是使软件系统能够接是指那些为实现人机交互接口而设计的类,它是使软件系统能够接收用户的命令和能够为用户提供信息所需要的类。收用户的命令和能够为用户提供信息所需要的类。用户界面类是为了使系统能够与用户进行交互而必须增添设计用户界面类是为了使系统能够与用户进行交互而必须增添设计的类。在实际中,一个软件系统常常会因为其用户界面使得用户的类。在实际中,一个软件系统常常会因为其用户界面使得用户不满意而遭到否定或弃之不用。因此用户界面类的设计是一项既不满意而遭到否定或弃之不用。
19、因此用户界面类的设计是一项既影响软件系统前途,又需要做耐心细致调查分析的重要工作。尽影响软件系统前途,又需要做耐心细致调查分析的重要工作。尽管在分析过程中已经对用户在用户界面方面进行了分析,但是在管在分析过程中已经对用户在用户界面方面进行了分析,但是在设计过程中仍然必须继续做这项分析工作,必须具体设计确定交设计过程中仍然必须继续做这项分析工作,必须具体设计确定交互作用的时间、交互方式和交互技术等。互作用的时间、交互方式和交互技术等。用户界面类的设计通常可以采用系统用户界面类的设计通常可以采用系统原型原型(模型)法进行。(模型)法进行。第20页,此课件共50页哦1 1、分析考察用户、分析考察用户
20、2 2、设计命令层次、设计命令层次1)1)研究用户交互的意义及准则研究用户交互的意义及准则如果已建立的交互系统中已有命令层次,则先研究这个已有的交互界面的意义和如果已建立的交互系统中已有命令层次,则先研究这个已有的交互界面的意义和准则。准则。2)2)建立初始命令层建立初始命令层可以以多种方式提供给用户,如窗口、按钮、下拉菜单、菜单条、可动的图标,可以以多种方式提供给用户,如窗口、按钮、下拉菜单、菜单条、可动的图标,等等。等等。3)3)细化命令层细化命令层为了细化命令层,应考虑如下几个问题:为了细化命令层,应考虑如下几个问题:(1)(1)排序。在开发命令层时,必须仔细选择不同的操作名称,并把这些
21、名称按一定要求排序,排序。在开发命令层时,必须仔细选择不同的操作名称,并把这些名称按一定要求排序,将最有用的放在前面,或者按习惯的工作步骤排序。将最有用的放在前面,或者按习惯的工作步骤排序。(2)(2)组装。在操作中寻找组装结构模式,这有助于在层次中组织和分离操作。组装。在操作中寻找组装结构模式,这有助于在层次中组织和分离操作。第21页,此课件共50页哦(3)(3)宽度和广度。由于人的短暂记忆局限,命令层次不宜太广太深。以宽度和广度。由于人的短暂记忆局限,命令层次不宜太广太深。以3 3最为合适。最为合适。(4)(4)极小化。尽量少用组合键,极小化用户的击键次数。极小化。尽量少用组合键,极小化用
22、户的击键次数。3 3、完成设计、完成设计 当前由于软件开发工具,特别是可视化开发工具的日益丰富,完成用户界面的当前由于软件开发工具,特别是可视化开发工具的日益丰富,完成用户界面的具体设计已经是一件十分容易的事情了,但是在具体设计时不能忽略以下原则:具体设计已经是一件十分容易的事情了,但是在具体设计时不能忽略以下原则:1)1)一致性一致性使用一致的术语,一致的步骤和一致的动作行为。使用一致的术语,一致的步骤和一致的动作行为。2)2)减少步骤减少步骤极小化击键次数、使用鼠标的次数和下拉菜单的次数,极小化响应时间。极小化击键次数、使用鼠标的次数和下拉菜单的次数,极小化响应时间。3)3)尽量显示提示信
23、息尽量显示提示信息尽量为用户提供有意义的、及时反馈信息。尽量为用户提供有意义的、及时反馈信息。4)4)设置取消操作设置取消操作用户难免出错,应尽量能使用户取消其错误动作。用户难免出错,应尽量能使用户取消其错误动作。第22页,此课件共50页哦5)5)尽量减少要用户记忆的内容尽量减少要用户记忆的内容不应该要求用户记下某窗口的信息而用于另一窗口中。不应该要求用户记下某窗口的信息而用于另一窗口中。6)6)易学易用易学易用为用户提供联机学习手册。为用户提供联机学习手册。7)7)屏幕生动活泼屏幕生动活泼屏幕画面看起来能够吸引用户,唤起用户的注意和兴趣。屏幕画面看起来能够吸引用户,唤起用户的注意和兴趣。例如
24、,对于大学教务管理问题,可以先根据对用户的分析设计例如,对于大学教务管理问题,可以先根据对用户的分析设计如下页图所示的用户进入系统的屏幕。如下页图所示的用户进入系统的屏幕。第23页,此课件共50页哦图示:用户进入系统屏幕界面然后,根据针对该用户界面和大多数面向对象软件开发环境所提供的可重用类设计相应的用户界面类,设计结果如下页图所示。第24页,此课件共50页哦图示:大学教务管理问题的部分用户界面类和问题空间类第25页,此课件共50页哦 其中,其中,WindowWindow、EditFieldEditField、StaticFieldStaticField和和ButtonButton等类等类 一
25、一般可从开发环境提供的类库中通过继承重用获得,需要进一步般可从开发环境提供的类库中通过继承重用获得,需要进一步做的设计工作主要是设计有关与问题空间类和任务管理类进行做的设计工作主要是设计有关与问题空间类和任务管理类进行通讯的操作。例如需要为通讯的操作。例如需要为OKButtonOKButton类设计一个向问题空间类中的类设计一个向问题空间类中的StudentStudent类发送检验消息的操作。类发送检验消息的操作。第26页,此课件共50页哦三、任务管理类三、任务管理类 是指那些为实现对多操作并发执行的管理而设计的类,它是指那些为实现对多操作并发执行的管理而设计的类,它是使软件系统能够同时处理多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 设计 实现 精选 PPT

限制150内