《第5章管理信息系统的面向对象开发方法.ppt》由会员分享,可在线阅读,更多相关《第5章管理信息系统的面向对象开发方法.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章 管理信息系统的管理信息系统的面向对象开发方法面向对象开发方法q5.1 面向对象方法的基本概念q5.3 面向对象的系统分析q5.3 面向对象的系统设计面向对象概述面向对象概述面向对象的系统开发方法是从80年代各种面向对象的程序设计方法(从Smalltalk到C+)逐步发展而来的。面向对象方法从面向对象的角度为我们认识事物,进而为开发系统提供了一种全新的方法。25.1 面向对象方法的基本概念面向对象方法的基本概念面向对象方法最主要的应用范围是软件生命周期的各个阶段(包括分析、设计、编程、测试与维护),以及它所涉及的各个领域都已形成或正在形成面向对象的理论与技术体系。35.1.1 面向对
2、象方法的思想面向对象方法的思想一、面向对象方法的基本思想基本思想基本思想:从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在构造系统时尽可能运用人们的自然思维方式。面向对象方法强调直接以现实世界(问题域)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。面向对象方法强调运用人类在日常的逻辑思维中经常采用的思想、方法与原则,例如抽象、分类、继承、聚合、封装等。这样能够使得软件开发者能更有效地思考问题,并以人们能看得懂的方式把自己的认识表达出来。4二、面向对象方法的特点二、面向对象方法的特点从问题域存在的事物出发来构造软
3、件系统,用对象作为这些事物的抽象表示,并以此作为系统的基本构成单位。用对象的属性来表示事物的静态特征,而用对象的服务来表示事物的动态特征。将对象的属性和服务结合成一个独立的实体,封装起来对外屏蔽其内部细节。把具有相同属性和服务的对象归为一类,类是这些对象的抽象描述,而每个对象是它的类的一个实例。引用聚合来表示复杂的对象,即用简单对象作为复杂对象的构成部分。运用抽象的原则,可以得到较一般的类和较特殊的类,特殊类是继承一般类的属性与服务。对象之间动态联系的实现依赖于对象之间的消息通信,对象之间的静态关系则通过关联来表达。5三、面向对象的软件工程方法三、面向对象的软件工程方法面向对象的软件工程方法是
4、面向对象方法在软件工程领域的全面运用。它包括:q面向对象的分析q面向对象的设计q面向对象的编程q面向对象的测试q面向对象的软件维护6面向对象的分析面向对象的分析在面向对象的分析(OOA)阶段,强调直接针对问题域中客观存在的各项事物设立OOA模型中的对象。用对象的属性和服务分别描述事物的静态特征和行为。问题域中有哪些值得考虑的事物,在OOA模型中就有哪些对象。OOA对问题域的观察、分析和认识是很直接的,对问题域的描述也是直接的。它和问题域中的事物保持了最大程度的一致,不存在语言上的鸿沟。7面向对象的设计面向对象的设计OOA针对问题域运用OO方法,建立一个反映问题域的OOA模型,不考虑与系统的具体
5、实现有关的因素,使得OOA模型独立于具体实现。而面向对象的设计(OOD)则是针对系统的一个具体的实现运用OO方法。OOD阶段包括有两方面的工作:一方面是把OOA模型不经过转换,仅做些必要的修改和调整后直接搬到OOD中,作为OOD的一个部分;另一方面是针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分,而这部分采用的表示法和模型结构与OOA相同。面向对象的分析与设计与传统的软件工程方法相比,最大的不同是:OOA与OOD采用一致的表示法,OOA到OOD之间不存在传统方法中系统分析与设计之间的鸿沟,这样,也就降低了从OOA过渡到OOD的难度。8面向对象的编程面向对象的编程面向
6、对象的编程(OOP),是面向对象的软件开发最终落实的重要阶段。OOP工作就是用同一种面向对象的编程语言把OOD模型中的每个成分书写出来。9面向对象的测试面向对象的测试面向对象的测试(OOT),是指对于用OO技术开发的软件,在测试过程中继续运用OO技术进行以对象概念为中心的软件测试。OOT以对象的类作为基本测试单位,查错的范围主要是类定义之内的属性和服务,以及有限的对外接口(消息)所涉及的部分。有利于OOT的最大特性是对象的继承性,当对父类测试完成后,子类的测试重点只需测试哪些新定义的属性和服务。10向对象的软件维护向对象的软件维护面向对象的软件工程方法为改进软件维护提供了有效的途径。程序与问题
7、域是一致的,各个阶段的表示是一致的,从而大大减少了对系统理解的难度。对象的封装性使得一个对象的修改对其它对象影响很少,避免了由软件的维护、完善带来的“波动效应”。115.1.2 面向对象方法的基本概念面向对象方法的基本概念面向对象方法的定义:面向对象方法是一种运用对象、类、封装、继承、聚合、消息传送、多态性等概念来构造系统的软件开发方法。q对象q类q继承q结构与连接12一、对象一、对象对象是描述现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。对象是构成客观世界的一个独立单位,一个对象由一组属性和对这组属性进行操作的一组服务构成。构成对象的两个主要因素是属性和服务。q属性。属性是用
8、来描述对象静态特征的一个数据项。q服务。服务是用来描述对象动态特征的一个操作序列。13二、类二、类q定义:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象表述,其内部包括属性和服务两个主要部分。q类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体,即一个对象是类的一个实例,而类也称作为对象的模板。q客观世界存在的事物(对象)既具有共同性,也具有特殊性。我们运用抽象的原则舍弃对象的特殊性,抽取其共同性。得到一个适应一批对象的类。这个类被称为一般类。如果在这个类的范围内再增加其自身的一
9、些特殊性,则这个类称为特殊类。q一般类和特殊类之间是一种真包含的关系14三、继承三、继承q定义:特殊类的对象拥有其一般类的全部属性与服务,则称为特殊类对一般类的继承。q继承的实现是由面向对象系统的继承机制来保证。它对于支持软件复用是很有益的。q一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这种继承模式称为多继承。多继承无论从概念上,还是技术上都是单继承的推广。15四、封装四、封装封装的定义封装就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。封装涵义:q把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位,这个独立单位是对象。q尽可能隐
10、蔽对象的内部细节,即信息隐蔽。封装不但是面向对象方法的一个原则,也是面向对象技术必须提供的一种机制。封装机制q在面向对象的语言中,把属性和服务结合起来定义成一个程序单位,对象的外部不能直接存取对象的属性或调用它的内部服务。16五、消息五、消息q消息的定义消息就是向对象发出的服务请求,它应该包括有:提供服务的对象标识、服务标识、输入信息和应答信息。q消息协议对外提供的每个服务应规定消息的格式。发送消息时,在它的每个发送点上需要写出一个完整的消息,其内容包括接收者(对象标识)、服务标识和符合消息协议要求的参数。17六、结构与连接六、结构与连接为了使系统能够有效地映射问题域,系统开发者需要认识并描述
11、对象之间的几种关系:即对象的分类关系;对象之间的组成关系;对象属性之间的静态联系;对象行为之间的动态联系。在面向对象的方法中,运用了一般特殊结构、整体部分结构、实例连接和消息连接来描述对象之间的四种关系。18一般一般-特殊结构特殊结构一般-特殊结构就是用来描述对象之间的分类关系。它是由一组具有一般-特殊关系(继承关系)的类所组成的结构。仅存在单继承关系的类形成的结构称为层次结构,它是一个以类为结点,以继承关系为边的连通有向图。由一些存在多继承关系的类形成的结构称为网络结构,它是一个以一般类为根的树形结构,是一个半序的连通有向图。19整体整体-部分结构部分结构整体-部分结构用来描述对象之间的组成
12、关系,它是由一组彼此之间存在着这种组成关系的对象构成,客观世界中存在许多这样的现象。20实例连接实例连接实例连接反映了对象与对象之间的静态联系。例如教师和学生之间的任课关系,飞机与飞行员的驾驶关系等。这种双向关系在实现中可以通过对象(实例)的属性表达出来(例如用学生对象的属性表明他选了哪位教师的授课课程)。所以这种关系称作实例连接。21消息连接消息连接消息连接描述了对象之间的动态联系,即若一个对象在执行自己的服务时,需要通过消息请求另一个对象为它完成某个服务,我们说第一个对象与第二个对象之间存在着消息连接。消息连接是有向的,从消息发送者指向消息的接收者。225.2 面向对象的系统分析面向对象的
13、系统分析面向对象的分析(OOA)是面向对象的软件开发过程中直接面对问题域的阶段,在这个阶段中建立的系统模型包括基本模型和补充模型两部分,基本模型是以直观的方式表达了最重要的系统信息,补充模型则提供了帮助理解基本模型的主题图和反映系统如何满足用户需求的交互图。235.2.1 OOA模型与分析过程模型与分析过程OOA的目标是为应用系统建立一个能反映问题域和系统功能,独立于具体实现条件的OOA模型。OOA模型是由五个层次叠加而成。主题层。将关系密切的类及对象组织在一起作为一个主题,整个系统由若干个主题构成。类及对象层。给出直接反映问题域和系统功能的类及对象。结构层。描述类及对象之间的结构关系,包括一
14、般特殊结构和整体部分结构。属性层。定义类及对象的属性和实例连接。服务层。定义类及对象的服务和消息连接。这五个层次叠加在一起便构成一个类图。245.2.1 OOA模型与分析过程(续)模型与分析过程(续)面向对象的系统分析过程就是针对OOA模型的五个层次进行五个相关活动:q发现类及对象q识别结构q识别主题q定义属性q定义服务255.3 面向对象的系统设计面向对象的系统设计一、OOD的特点基于OOA的OOD有以下特点:q它是在面向对象的分析基础上,继续运用面向对象方法进行系统设计,一般不依赖结构化分析的结果。q与相应的OOA方法共同构成一个完整的OOA&D方法体系。OOA与OOD采用一致的概念与原则
15、,二者分别解决软件生命周期中分析阶段和设计阶段的问题,有不同的目标及策略。q比较全面地体现面向对象方法的概念与原则。q它是独立于编程语言的。即通过面向对象的分析与设计所得到的系统模型可以由不同的编程语言来实现。26二、面向对象的设计二、面向对象的设计OOD模型及设计过程模型及设计过程OOD模型的四个部分问题域部分(PDC)。将OOA结果搬到OOD,并根据实现条件(如编程语言、可复用构件、机器性能、存储方案等)做必要的补充与调整,其结果就是OOD的问题域。人机交互部分(HIC)。根据选用的图形用户界面系统(GUI)和特定用户对人机界面的要求而设计的系统人机界面。只不过这个人机界面是按照面向对象的概念定义的关于人机界面的类及对象构成。任务管理部分(TMC)。用于定义系统中需要并发执行的各个任务。每个任务用一个任务模板来表示。数据管理部分(DMC)。按选定的数据管理系统而设计的负责对象存储及检索的系统组成部分27OOD过程包含的四个活动过程包含的四个活动OOD的四个活动:q问题域部分的设计q人机交互部分的设计q任务管理部分的设计q数据管理部分的设计在上述的每个活动中都包含与OOA相同的五个活动:发现类及对象、识别结构、识别主题、定义属性、定义服务。28