【网络课件】宜宾学院-第十一章 第十二章 面向对象设计与实现.ppt
《【网络课件】宜宾学院-第十一章 第十二章 面向对象设计与实现.ppt》由会员分享,可在线阅读,更多相关《【网络课件】宜宾学院-第十一章 第十二章 面向对象设计与实现.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Yibinu UniversitySchool of Computer&Information Engineering软件工程第十一章第十一章 面向对象设计面向对象设计第十二章第十二章 面向对象实现面向对象实现Yibinu UniversitySchool of Computer&Information Engineering11.1 面向对象设计的准则面向对象设计的准则11.2 启发规则启发规则11.3 软件重用软件重用11.4 系统分解系统分解11.5 设计问题域子系统设计问题域子系统11.6 设计人机交互子系统设计人机交互子系统11.7 设计任务管理子系统设计任务管理子系统11.8 设计
2、数据管理子系统设计数据管理子系统11.9 设计类中的服务设计类中的服务2Yibinu UniversitySchool of Computer&Information Engineering面向对象设计是把分析阶段得到的面向对象设计是把分析阶段得到的需求需求转变成转变成符合成本和质量要求的、抽象的符合成本和质量要求的、抽象的系统实现方案系统实现方案的过的过程。程。从面向对象分析到面向对象设计,是一个逐渐从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程扩充模型的过程 生命周期方法学生命周期方法学把设计进一步划分成把设计进一步划分成总体设计总体设计和和详细设计详细设计两个阶段,类似地,也可以
3、把两个阶段,类似地,也可以把面向对象面向对象设计设计再细分为再细分为系统设计系统设计和和对象设计对象设计。系统设计系统设计确定实现系统的策略和目标系统的高确定实现系统的策略和目标系统的高层结构。层结构。对象设计对象设计确定解空间中的类、关联、接口形式确定解空间中的类、关联、接口形式及实现操作的算法。及实现操作的算法。3Yibinu UniversitySchool of Computer&Information Engineering4Yibinu UniversitySchool of Computer&Information Engineering11.1 面向对象设计的准则1、模块化模块
4、化(Modularity):对象就是模:对象就是模块。把数据结构和操作这些数据的方法紧密块。把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块地结合在一起所构成的模块 2、抽象抽象:不仅支持过程抽象,而且支持:不仅支持过程抽象,而且支持数据抽象。数据抽象。3、信息隐蔽信息隐蔽:通过对象的封装性来实现。:通过对象的封装性来实现。4、弱藕合弱藕合:对象是最基本的模块,因此,:对象是最基本的模块,因此,耦合主要指不同对象之间相互关联的紧密程耦合主要指不同对象之间相互关联的紧密程度。分为度。分为交互藕合交互藕合和和继承藕合继承藕合 5Yibinu UniversitySchool of Com
5、puter&Information Engineering5、强内聚强内聚:分为服务内聚、类内聚和一:分为服务内聚、类内聚和一般特殊内聚。般特殊内聚。6、可重用可重用:11.3 节讨论节讨论6Yibinu UniversitySchool of Computer&Information Engineering11.2 启发规则1、设计结果应该清晰易懂、设计结果应该清晰易懂 2、一般特殊结构的深度适当、一般特殊结构的深度适当 3、设计简单的类、设计简单的类 4、使用简单的协议、使用简单的协议 5、使用简单的服务、使用简单的服务 6、把设计变动减至最小、把设计变动减至最小7Yibinu Unive
6、rsitySchool of Computer&Information Engineering11.3 软件重用1 1.3.1 概述概述 1、软件重用的概念、软件重用的概念软件复用是指软件复用是指重复使用已有的软件产品重复使用已有的软件产品用于开用于开发新的软件系统,以达到提高软件系统的开发质量发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。与效率,降低开发成本的目的。可复用的软件成分一可复用的软件成分一可复用构件可复用构件(Reusable Component)可从旧软件中提取,也可以专门为)可从旧软件中提取,也可以专门为复用而开发。复用而开发。在软件复用中重复使用的
7、软件产品不仅仅局限在软件复用中重复使用的软件产品不仅仅局限于于程序代码程序代码,而是包含了在软件生产的,而是包含了在软件生产的各个阶段各个阶段所所得到的各种软件产品。得到的各种软件产品。8Yibinu UniversitySchool of Computer&Information Engineering可以用于软件复用的软件产品,按照其可以用于软件复用的软件产品,按照其抽象程抽象程度的高低度的高低,可以划分为如下的复用级别:,可以划分为如下的复用级别:(1)代码复用代码复用l二进制形式的经过编译产生的目标代码。二进制形式的经过编译产生的目标代码。l文本形式的源代码文本形式的源代码(2)设计结
8、果的复用设计结果的复用设计结果比源程序的抽象级别更高,因为它的设计结果比源程序的抽象级别更高,因为它的复用受实现环境的影响较小,从而使可复用构件被复用受实现环境的影响较小,从而使可复用构件被复用的机会更多,并且所需的修改更少。这种复用复用的机会更多,并且所需的修改更少。这种复用有三种途径:有三种途径:软件成分的重用级别软件成分的重用级别9Yibinu UniversitySchool of Computer&Information Engineeringl从现有系统的设计结果中提取一些可复用的设从现有系统的设计结果中提取一些可复用的设计构件计构件l把一个现有系统的全部设计文档在新的软硬件把一个
9、现有系统的全部设计文档在新的软硬件平台上重新实现。平台上重新实现。l独立于任何具体的应用,有计划地开发一些可独立于任何具体的应用,有计划地开发一些可复用的设计构件复用的设计构件(3)分析结果的复用)分析结果的复用这是比设计结果的复用抽象程度更高的复用,这是比设计结果的复用抽象程度更高的复用,可被复用的分析结果是针对问题域的某些事物或某可被复用的分析结果是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现些问题的抽象程度更高的解法,受设计技术及实现条件的影响非常小,所以可复用的机会更大。条件的影响非常小,所以可复用的机会更大。10Yibinu UniversitySchool
10、of Computer&Information Engineering11.3.2 类构件面向对象技术中的面向对象技术中的“类类”,是比较理想的,是比较理想的可重用软构件,称之为可重用软构件,称之为类构件类构件。1、可重用软构件的特点、可重用软构件的特点一个一个软构件软构件能在构造各种各样的软件系统能在构造各种各样的软件系统时方便地重复使用,必须具备的条件:时方便地重复使用,必须具备的条件:1)独立性强:独立性强:2)高度可塑性:高度可塑性:3)接口清晰接口清晰11Yibinu UniversitySchool of Computer&Information Engineering2、类构件重
11、用的方式、类构件重用的方式 1)实例重用)实例重用 2)继承重用)继承重用 3)多态重用)多态重用12Yibinu UniversitySchool of Computer&Information Engineering11.3.3 软件重用的效益1、提高软件质量、提高软件质量 2、提高软件生产率、提高软件生产率 3、降低软件成本、降低软件成本13Yibinu UniversitySchool of Computer&Information Engineering11.4 系统分解系统的主要组成部分称为系统的主要组成部分称为子系统子系统。与面向对象分析模型一样,与面向对象分析模型一样,面向对象
12、设计模型面向对象设计模型也由主题、类与对象、结构、属性、服务等也由主题、类与对象、结构、属性、服务等 5 个层个层次组成。次组成。大多数系统的面向对象设计模型在逻辑上都由大多数系统的面向对象设计模型在逻辑上都由 4 大部分组成,分别是:大部分组成,分别是:l问题域子系统问题域子系统(问题空间类问题空间类)l人机交互子系统人机交互子系统(用户界面类用户界面类)l任务管理子系统任务管理子系统(任务管理类任务管理类)l数据管理子系统数据管理子系统(数据管理类数据管理类)14Yibinu UniversitySchool of Computer&Information Engineering1、子系统
13、之间的两种交互方式1)客户一供应商关系)客户一供应商关系作为作为“客户客户”的子系统的子系统调用调用作为作为“供应商供应商”的子系统,后者完成某些服务工作并返回的子系统,后者完成某些服务工作并返回结果。结果。2)平等伙伴关系)平等伙伴关系每个子系统每个子系统都可能都可能调用其他子系统,因此,调用其他子系统,因此,每个子系统都必须了解其他子系统的接口。每个子系统都必须了解其他子系统的接口。15Yibinu UniversitySchool of Computer&Information Engineering2、组织系统的两种方案把子系统组织成完整的系统时,有把子系统组织成完整的系统时,有水平层
14、次水平层次组组织和织和垂直块垂直块组织两种方案可供选择。组织两种方案可供选择。(1)层次组织)层次组织这种组织方案把软件系统组织成一个层次系统,这种组织方案把软件系统组织成一个层次系统,每层是一个子系统。每层是一个子系统。(2)块状组织)块状组织这种组织方案把软件系统垂直地分解成若干个这种组织方案把软件系统垂直地分解成若干个相对独立的、弱藕合的子系统,一个子系统相当于相对独立的、弱藕合的子系统,一个子系统相当于一块,每块提供一种类型的服务。一块,每块提供一种类型的服务。16Yibinu UniversitySchool of Computer&Information Engineering采用
15、了层次与块状的采用了层次与块状的混合结构混合结构17Yibinu UniversitySchool of Computer&Information Engineering 概概括括地地说说,面面向向对对象象软软件件开开发发方方法法采采用用面面向向对对象象设设计计 (OOD)(OOD)技技术术进进行行问问题题解解决决方方案案的的设设计计工工作作,它它将将问题的解决方案表述为:问题的解决方案表述为:类关联类关联的形式,其中,的形式,其中,类类包括问题域子系统(包括问题域子系统(问题空间类问题空间类)、人机交)、人机交互子系统(互子系统(用户界面类用户界面类)、任务管理子系统()、任务管理子系统(任
16、务任务管理类管理类)和数据管理子系统()和数据管理子系统(数据管理类数据管理类),是从),是从设计的角度出发对问题解决方案中的对象的抽象和设计的角度出发对问题解决方案中的对象的抽象和描述。描述。关联关联则用于描述这些类和类之间的关系。则用于描述这些类和类之间的关系。18Yibinu UniversitySchool of Computer&Information Engineering面向对象设计工作内容和步骤 因此,面向对象设计工作主要包括问题空间类、用因此,面向对象设计工作主要包括问题空间类、用户界面类、任务管理类和数据管理类的设计户界面类、任务管理类和数据管理类的设计,具体,具体工作内容
17、和步骤如图所示。工作内容和步骤如图所示。19Yibinu UniversitySchool of Computer&Information Engineering一、问题空间类一、问题空间类 (11.5(11.5 设计问题域子系统设计问题域子系统)是指那些是指那些直接直接从面向对象分析模型设计得到的从面向对象分析模型设计得到的类,它是使软件系统能够实现类,它是使软件系统能够实现对问题的求解对问题的求解的最基的最基本的类,也是面向对象软件系统的本的类,也是面向对象软件系统的核心类核心类。利用面向对象分析技术对问题进行了分析描述利用面向对象分析技术对问题进行了分析描述之后,就可以直接将其结果用于问
18、题空间类的设计,之后,就可以直接将其结果用于问题空间类的设计,即即直接将分析所得到的直接将分析所得到的对象、对象与对象之间的关对象、对象与对象之间的关联联确定为确定为类以及类与类之间的关联类以及类与类之间的关联,这些直接从分,这些直接从分析结果得到的类就是析结果得到的类就是问题空间类问题空间类。以一个字处理系统为例,如下图所示以一个字处理系统为例,如下图所示:20Yibinu UniversitySchool of Computer&Information Engineering图示:结构化方法设计结果 21Yibinu UniversitySchool of Computer&Informa
19、tion Engineering又例:下图示以及表又例:下图示以及表1818所示的是大学教务管理问所示的是大学教务管理问题中的问题空间类。题中的问题空间类。图示:图示:大学教务管理问题中的问题空间类大学教务管理问题中的问题空间类22Yibinu UniversitySchool of Computer&Information Engineering表表5.1Class:Student(学生)学生)数据变量数据变量序号序号名称名称 定义定义类型类型 中文名称中文名称备注备注1IDchar(8)描述型描述型学号学号2Namechar(24)描述型描述型姓名姓名3Sex男男,女女描述型描述型性别性别
20、枚举类型枚举类型4Birthdaydate描述型描述型出生日期出生日期5EnrollmentDaydate 描述型描述型入学日期入学日期6Departmentchar(24)描述型描述型系别系别7Specialitychar(24)描述型描述型专业专业8Passwordchar(6)描述型描述型密码密码9Application注册注册,选课选课描述型描述型申请申请枚举类型枚举类型23Yibinu UniversitySchool of Computer&Information Engineering操作操作序号序号 名称名称接口参数接口参数返回值返回值 中文名称中文名称备注备注1GetID()
21、ID读入学号读入学号GetPassword()Password读入密码读入密码2VerifyPassword()True/Fasle检验检验3GetApplication()Application询问询问4PutApplication()NULL回答回答5Note(message)NULL通知通知6ChangePassword(NewPassword,OldPassword)NULL修改修改24Yibinu UniversitySchool of Computer&Information Engineering表表2Class:Graduate(研究生)研究生)表表3Class:UnderGr
22、aduate(本科生)本科生)表表4Class:RegisterRec(注册记录)注册记录)表表5Class:Course(课程)课程)表表6Class:GraduateCourse(研究生课程)研究生课程)表表7Class:UnderGraduate(本科生课程)本科生课程)表表8Class:SelectCourse(选课单)选课单)25Yibinu UniversitySchool of Computer&Information Engineering二、用户界面类二、用户界面类(11.6(11.6 设计人机交互子系统设计人机交互子系统)是指那些为实现是指那些为实现人机交互接口人机交互接口
23、而设计的类,而设计的类,它是使软件系统能够接收用户的命令和能够它是使软件系统能够接收用户的命令和能够为用户提供信息所需要的类。为用户提供信息所需要的类。用户界面类用户界面类是为了使系统能够与是为了使系统能够与用户进用户进行交互行交互而必须增添设计的类。在实际中,一而必须增添设计的类。在实际中,一个软件系统常常会因为其用户界面使得用户个软件系统常常会因为其用户界面使得用户不满意而遭到否定或弃之不用。因此用户界不满意而遭到否定或弃之不用。因此用户界面类的设计是一项既影响软件系统前途,又面类的设计是一项既影响软件系统前途,又需要做耐心细致调查分析的重要工作。需要做耐心细致调查分析的重要工作。26Yi
24、binu UniversitySchool of Computer&Information Engineering尽管在分析过程中已经对用户在用户界面尽管在分析过程中已经对用户在用户界面方面进行了分析,但是在设计过程中仍然必方面进行了分析,但是在设计过程中仍然必须继续做这项分析工作,必须具体设计须继续做这项分析工作,必须具体设计确定确定交互作用的时间、交互方式和交互技术交互作用的时间、交互方式和交互技术等。等。用户界面类的设计通常可以采用用户界面类的设计通常可以采用系统系统原原型型(模型)法(模型)法进行。进行。27Yibinu UniversitySchool of Computer&Inf
25、ormation Engineering1 1、分析考察用户分析考察用户2 2、设计命令层次设计命令层次1)1)研究用户交互的意义及准则研究用户交互的意义及准则如果已建立的交互系统中已有命令层次,则先研究这如果已建立的交互系统中已有命令层次,则先研究这个已有的交互界面的意义和准则。个已有的交互界面的意义和准则。2)2)建立初始命令层建立初始命令层可以以多种方式提供给用户,如窗口、按钮、下拉菜可以以多种方式提供给用户,如窗口、按钮、下拉菜单、菜单条、可动的图标,等等。单、菜单条、可动的图标,等等。28Yibinu UniversitySchool of Computer&Information
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络课件 【网络课件】宜宾学院-第十一章 第十二章 面向对象设计与实现 网络 课件 宜宾 学院 第十一 第十二 面向 对象 设计 实现
限制150内