SE09 面向对象方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11、面向对象的概念2、面向对象的开发过程3、面向对象分析与模型化4、面向对象设计5、面向对象程序的实现与测试2面向对象技术是一个非常实用而强有力的软件开发方法。它的特征是:方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修改。把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。31、面向对象的概念1.1开发模式1.2什么是面向对象1.3对象1.4类1.5继承41.1开发模式(Paradigm)开发模式又称为范型、范例、风范或模式(Pattern)。开发模式定义了:特定问题和应用的开发过程中将遵循的步骤;确定将用于表示问题和解的那些成分的类型;利用这些成分表示与问题解决有关的抽象;直接得到问题的结构。开发模式的选择影响到整个软件开发生存期。就是说,它支配了设计方法、编码语言、测试和检验技术的选择。5流行的开发模式面向过程逻辑面向存取面向进程面向对象函数型说明性每个开发模式都有它的支持者和用户;每个开发模式都特别适合于某种类型的问题或子问题;每一个开发模式都用不同的方式考虑问题;每一个开发模式都使用不同的方法来分解问题;每一个开发模式都导致不同种类的块、过程、产生规则。6面向过程开发模式面向过程开发模式产生过程的抽象。这些抽象的基础是把软件视为处理流,并定义成由一系列步骤构成的算法。每一步骤都是带有预定输入和特定输出的一个过程,把这些步骤串联在一起可产生合理的稳定的贯通于整个程序的控制流,最终产生一个简单的具有静态结构的体系结构。7特点过程性开发模式侧重建立构成问题解决的处理流。数据抽象、数据结构根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操作的信息。系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程。8面向对象开发模式在面向过程开发模式中优先考虑的是过程抽象,在面向对象开发模式中优先考虑的是实体(问题论域的对象)。在面向对象开发模式中,把标识和模型化问题论域中的主要实体做为系统开发的起点,主要考虑对象的行为而不是必须执行的一系列动作。9特点面向对象系统中的对象是数据抽象与过程抽象的综合。系统的状态保存在各个数据抽象的所定义的数据存储中。控制流包含在各个数据抽象中的操作内。在面向对象体系结构。消息从一个对象传送到另一个对象。算法被分布到各种实体中。10混合开发模式在大型系统的开发中,很难说哪种开发模式对整个问题的解决最好。系统开发时,通常把大型问题分解成一组子问题。对于每个子问题可以采用适当的软件开发模式。这种设计需要有某种实现语言或一组协同语言的支持。许多流行的功能不断增强的语言可支持不只一种设计开发模式。11例如:一个智能数据分析系统的设计,可把它看做是4个子系统。系统有:一个数据库界面,可以使用面向存取的方法进行设计;智能数据分析用逻辑性的开发模式设计;一组分析算法是过程性的;用户界面是用面向对象开发模式设计出来的。121.2什么是面向对象Coad和Yourdon给出了一个定义:面向对象=对象+类+继承+通信如果一个软件系统是使用这样4个概念设计和实现的,则我们认为这个软件系统是面向对象的。一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。13对象(object)对象是面向对象开发模式的基本成份。每个对象可用它本身的一组属性和它可以执行的一组操作来定义。属性一般只能通过执行对象的操作来改变。操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。14外部实体:与软件系统交换信息的外部设备、相关子系统、操作员或用户等。信息结构:问题信息域中的概念实体,如信号、报表、显示信息等。需要记忆的事件:在系统运行过程中可能产生并需要系统记忆的事件,如单击鼠标左键、击打键盘“”键等。角色:与软件系统交互的人员所扮演的角色,如经理、部长、技术支持等。组织机构:有关机构,如单位、小组等。位置:作为系统环境或问题上下文的场所、位置,如客户地址、收件人(机构)地址等。操作规程:如操作菜单、某种数据输入过程等。对象的分类15消息(Message)消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。发送给一个对象的消息定义了一个方法名和一个参数表(可能是空的),并指定某一个对象。一个对象接收消息后则调用消息中指定的方法,并将形式参数与参数表中相应的值结合起来。16类(class)类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。17继承(Inheritance)继承是使用已存在的定义做为基础建立新定义的技术。新类的定义可以是既存类所声明的数据和新类所增加的声明的组合。新类复用既存的定义,而不要求修改既存类。既存类可当做基类来引用,则新类相应地可当做派生类来引用。18类的继承层次在类的继承层次中,Quadrilateral的实际参数可以替换Polygon的形式参数。类Quadrilateral的界面与类Polygon的界面是相容的Quadrilateral的界面可响应Polygon界面的所有消息。多态性和动态绑定19多态性:消息通信中,发送消息的对象可以不知道另一个对象的类型是什么。即一个操作在不同类中可以有不同的实现方式。动态绑定:把函数调用与目标代码块的连接延迟到运行时进行。这样,只有发送消息时才与接收消息实例的一个操作绑定。动态绑定与多态性可以使建立的系统更灵活,易于扩充。202、面向对象方法的开发过程面向对象范型不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系以及如何进行系统构造的软件方法学。面向对象的技术建立的模型与客观世界一致,因而便于理解;适应变化的需要,修改局限在模块中;可复用性。21面向对象方法改进了在生存期各个阶段之间的接口,因为在生存期各个阶段所开发出来的“部件”都是类。在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。22应用生存期23类生存期24复用(Reusable)在软件开发中,复用扮演了重要角色。软件部件应当独立于当初开发它们的应用而存在。部件的开发瞄准某些局部的设计和实现,它们能够帮助当前问题的解决,但为了在以后的项目中使用,它们还应当足够通用。253、面向对象分析与模型化面向对象分析是软件开发过程中的问题定义阶段。这一阶段最后得到的是对问题论域的清晰、精确的定义。分析阶段包括两个步骤:论域分析和应用分析。它们都要标识问题论域中的抽象。26在分析中,需要找到特定对象基于对象的公共特性组合它们标识出对这个问题的抽象在分析阶段中要标识抽象之间的关系这些关系在应用系统中常常用对象之间的消息来表示,叫做消息连接。在一个面向对象的应用中的控制流由两部分构成:每个单独操作内部的控制流对象之间的消息模式27语义数据模型语义数据模型是一种特别适用的建立构成问题论域模型的技术。它基于实体—关系模型,并对这类模型进行了扩充和一般化。语义数据模型可以表达问题论域的内涵,还可以表示复杂的对象和对象之间的关系。28语义数据模型与面向对象方法语义数据模型主要特征面向对象分析与设计外部模型数据的用户视图与应用有关的类的定义概念模型实体及实体之间关系的内涵类与类之间的应用级关系物理模型数据的物理表示类的实现29物理模型包括的属性物理模型包括两类属性:方法:对实体的行为模型化数据:对实体的状态模型化在模型中方法分为两种:共有的私有的在分析阶段标识的属性是描述性的,30在语义数据模型中的关系一般化和特殊化关系可用来按层次渐增式地定义抽象(类)。低层抽象是高层抽象的特殊化。这种抽象层次构成论域模型的基础。聚合关系支持使用其它的抽象来开发一个抽象。相应于一个记录中成份的声明。关联关系指定一个抽象做为其它抽象实例的包容(container)。关联和聚合之间的差别在于组合实体的意图。聚合指定一组实体中的某些元素做为一个类的组成,而关联是指群集的相互有关联的实体群。31对象模型化技术OMT对象模型化技术把分析时收集的信息构造在三类模型中,即:对象模型、功能模型和动态模型。这个模型化的过程是一个迭代过程。32对象模型是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。在OMT中,类与类之间的关系叫做关联。关联代表一组存在于两个或多个对象之间的、具有相同结构和含义的具体连接。关联可以是物理的,也可以是逻辑的。33聚合,代表整体与部分的关系,这是一种特殊形式的关联。限定,用以对关联的含义做某种约束。角色,用来说明关联的一端。由于多数关联具有两个端点,因而涉及到两个角色。附加的说明对象之间的连接的连接属性。3435动态模型要想对一个系统了解得比较清楚,还应当考察在任何时刻对象及其关系的改变。系统的这些涉及时序和改变状况用动态模型来描述。动态模型着重于系统的控制逻辑。它包括两个图,一是状态图,一是事件追踪图。36状态图事件追踪图状态图叙述一个对象的个体行为;事件追踪图则给出多个对象所表现出来的集体行为。37功能模型功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。38基于三个模型的分析过程功能模型着重于系统内部数据的传送和处理。功能模型定义“做什么”动态模型定义“何时做”对象模型定义“对谁做”。39Coad与Yourdon面向对象分析OOA有两个任务形式地说明所面对的应用问题,最终成为软件系统基本构成的对象,还有系统所必须遵从的,由应用环境所决定的规则和约束。明确地规定构成系统的对象如何协同合作,完成指定的功能。40OOA概念模型通过OOA建立的系统模型是以概念为中心的,因此称为概念模型。这样的模型由一组相关的类组成。软件规格说明就是基于这样的概念模型形成的,以模型描述为基本部分,再加上接口要求、性能限制等其它方面的要求说明。41构造OOA概念模型的层次构造和评审OOA概念模型的顺序和由五个层次组成。这五个层次是分析过程中的层次。每个层次的工作都为系统的规格说明增加了一个组成部分。这五个层次是:类与对象、属性、服务、结构和主题。4243识别类和对象:第一个层次的任务,是整个分析模型的基础。类和对象是对与应用有关的概念的抽象。是说明应用问题的重要手段,也是构成软件系统的基本元素。标识结构:典型结构:一般化-特殊化结构(Gen-Spec结构)和整体-部分结构(Whole-Part结构)。标识属性:对类和对象进一步的说明。对象所保存的信息称为它的属性。类的属性所描述的是状态信息,每个实例的属性值表达了该实例的状态值。定义服务:对象收到消息后所能执行的操作称为它可提供的服务。识别主题:主题可以看成是高层的模块或子系统,表示此模型的整体框架,可以是一个层次结构。通过对主题的识别,能够比较清晰地了解大而复杂的模型。分析的步骤444、面向对象设计(OOD)面向对象设计是面向对象分析阶段工作的继续,建立软件的结构。主要工作分为两个阶段:4.1高层设计4.2底层设计(类设计)454.1高层设计高层设计阶段开发系统的结构,即构造应用软件的总体模型。高层设计阶段标识在计算机环境中进行问题解决工作所需要的概念,并增加了一批需要的类。这些类包括那些可使应用软件与系统的外部世界交互的类。此阶段的输出是

1 / 169
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功