精华内容
下载资源
问答
  • PowerDesinger快速建立面向对象应用模型以实践认知世界,以实事构架世界,PowerDesinger快速建立面向...该文档为PowerDesinger快速建立面向对象应用模型,是一份很不错的参考资料,具有较高参考价值,感兴趣的...
  • 快速建立面向对象应用模型,快速建立面向对象应用模型,快速建立面向对象应用模型,电子文档PPT下载
  • 3.3模型例化模型结构和模型事例 模型例化的三个层次 决策者依靠模型解决半...我们提出基于SML构模语言的方法来实现模型类与实际应用领域知识的结合并提出建立模型类模型结构和模型事例(有人称之为模型实例)三级例化
  • PowerDesinger快速建立面向对象应用模型.pptx
  • 快速建立面向对象应用模
  • 采用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是: 描述系统数据结构的 ( 1 ) ,该模型主要 ( 2 ) 来展现。 描述系统控制结构的 ( 3 ) ,该模型通常 ( 4 ) 来表示。 描述系统功能的 ...

    采用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是:
    描述系统数据结构的 ( 1 ) ,该模型主要用 ( 2 ) 来展现。
    描述系统控制结构的 ( 3 ) ,该模型通常用 ( 4 ) 来表示。
    描述系统功能的 ( 5 ) ,该模型通常用 ( 6 ) 来刻画。

    在这里插入图片描述

    展开全文
  • 因为想笔记中夹杂这篇文章中部分内容,所以进行了还是比较多的引用,核心的地方还是自己写的 可以一直接调转到深入理解Java的OOP ...名称:Object-Oriented Analysis:面向对象分析方法 OOA是指...

    转自https://blog.csdn.net/qq443068902/article/details/44256619 对其进行了改写 重新布局 

    因为想在笔记中夹杂这篇文章中部分内容,所以进行了还是比较多的引用,核心的地方还是自己写的 可以一直接调转到深入理解Java的OOP

    大纲

    一、OOA

    名称:Object-Oriented Analysis:面向对象分析方法


    OOA是指在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别,OOA强调在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
    OOA(面向对象的分析)模型由五个层次:主题层、对象类层、结构层、属性层和服务层,五个活动:标识对象类、标识结构、定义主题、定义属性和定义服务组成。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。
    OOA在定义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。OOA在定义服务的同时要识别消息连接。当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。OOD模型由4个部分组成。它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。

    (一)主要原则

    (1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。抽象是形成概念的必须手段。抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。
    抽象是面向对象方法中使用最为广泛的原则。抽象原则包括过程抽象和数据抽象两个方面。过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。数据抽象是OOA的核心原则。它强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(即对象),对象的外部只需要知道它做什么,而不必知道它如何做。
    (2)封装:封装就是把对象的属性和服务结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节。
    (3)继承:特殊类的对象拥有的其一般类的全部属性与服务,称作特殊类对一般类的继承。在OOA中运用继承原则,就是在每个由一般类和特殊类形成的一般—特殊结构中,把一般类的对象实例和所有特殊类的对象实例都共同具有的属性和服务,一次性地在一般类中进行显式的定义。在特殊类中不再重复地定义一般类中已定义的东西,但是在语义上,特殊类却自动地、隐含地拥有它的一般类(以及所有更上层的一般类)中定义的全部属性和服务。继承原则的好处是:使系统模型比较简练也比较清晰。
    (4)分类:就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。分类原则实际上是抽象原则运用于对象描述时的一种表现形式。
    (5)聚合:又称组装,其原则是:把一个复杂的事物看成若干比较简单的事物的组装体,从而简化对复杂事物的描述。
    (6)关联:是人类思考问题时经常运用的思想方法:通过一个事物联想到另外的事物。能使人发生联想的原因是事物之间确实存在着某些联系。
    (7)消息通信:这一原则要求对象之间只能通过消息进行通信,而不允许在对象之外直接地存取对象内部的属性。通过消息进行通信是由于封装原则而引起的。在OOA中要求用消息连接表示出对象之间的动态联系。
    (8)粒度控制:一般来讲,人在面对一个复杂的问题域时,不可能在同一时刻既能纵观全局,又能洞察秋毫。因此需要控制自己的视野:考虑全局时,注意其大的组成部分,暂时不详察每一部分的具体的细节;考虑某部分的细节时则暂时撇开其余的部分。这就是粒度控制原则。
    (9)行为分析:现实世界中事物的行为是复杂的。由大量的事物所构成的问题域中各种行为往往相互依赖、相互交织。
     

    (二)OOA产生的三种分析模型

    1、对象模型:对用例模型进行分析,把系统分解成互相协作的分析类,通过类图/对象图描述对象/对象的属性/对象间的关系,是系统的静态模型。
    2、动态模型:描述系统的动态行为,通过时序图/协作图描述对象的交互,以揭示对象间如何协作来完成每个具体的用例,单个对象的状态变化/动态行为可以通过状态图来表达。
    3、功能模型(即用例模型作为输入)。

     

    (三)OOA优点

    (1)加强了对问题域和系统责任的理解;
    (2)改进与分析有关的各类人员之间的交流;
    (3)对需求的变化具有较强的适应性;
    (4)支持软件复用。
    (5)贯穿软件生命周期全过程的一致性。
    (6)实用性;
    (7)有利于用户参与。
     

    (四)OOA基本步骤

    在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤
    第一步,确定对象和类。这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。
    第二步,确定结构(structure)。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
    第三步,确定主题(subject)。主题是指事物的总体概貌和总体分析模型。
    第四步,确定属性(attribute)。属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。
    第五步,确定方法(method)。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。


    二、OOD

    面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。


    面向对象设计(OOD)是一种软件设计方法,是一种工程化规范。这是毫无疑问的。按照Bjarne Stroustrup的说法,面向对象的编程范式(paradigm)是[Stroustrup, 97]:
    【决定你要的类;给每个类提供完整的一组操作;明确的使用继承来表现共同点】
    由这个定义,可以看出OOD就是“根据需求决定所需的类、类的操作以及类之间关联的过程”。


    OOD的目标是管理程序内部各部分的相互依赖。为了达到这个目标,OOD要求将程序分成块,每个块的规模应该小到可以管理的程度,然后分别将各个块隐藏在接口(interface)的后面,让它们只通过接口相互交流。比如说,如果用OOD的方法来设计一个服务器-客户端(client-server)应用,那么服务器和客户端之间不应该有直接的依赖,而是应该让服务器的接口和客户端的接口相互依赖。
    这种依赖关系的转换使得系统的各部分具有了可复用性。还是拿上面那个例子来说,客户端就不必依赖于特定的服务器,所以就可以复用到其他的环境下。如果要复用某一个程序块,只要实现必须的接口就行了。


    OOD是一种解决软件问题的设计范式(paradigm),一种抽象的范式。使用OOD这种设计范式,我们可以用对象(object)来表现问题领域(problem domain)的实体,每个对象都有相应的状态和行为。我们刚才说到:OOD是一种抽象的范式。抽象可以分成很多层次,从非常概括的到非常特殊的都有,而对象可能处于任何一个抽象层次上。另外,彼此不同但又互有关联的对象可以共同构成抽象:只要这些对象之间有相似性,就可以把它们当成同一类的对象来处理。

     

    (一)OOD背景与来源

    背景:

    计算机硬件技术却在飞速发展。从几十年前神秘的庞然大物,到现在随身携带的移动芯片;从每秒数千次运算到每秒上百亿次运算。当软件开发者们还在寻找能让软件开发生产力提高一个数量级的“银弹”[Brooks, 95]时,硬件开发的生产力早已提升了百倍千倍。
    硬件工程师们能够如此高效,是因为他们都很懒惰。他们永远恪守“不要去重新发明轮子”的古训。Grady Booch把这些黑箱称为类属(class category),现在我们则通常把它们称为“组件(component)”。
    类属是由被称为类(class)的实体组成的,类与类之间通过关联(relationship)结合在一起。一个类可以把大量的细节隐藏起来,只露出一个简单的接口,这正好符合人们喜欢抽象的心理。所以,这是一个非常伟大的概念,因为它给我们提供了封装和复用的基础,让我们可以从问题的角度来看问题,而不是从机器的角度来看问题。
    软件的复用最初是从函数库和类库开始的,这两种复用形式实际上都是白箱复用。到90年代,开始有人开发并出售真正的黑箱软件模块:框架(framework)和控件(control)。框架和控件往往还受平台和语言的限制,现在软件技术的新潮流是用SOAP作为传输介质的Web Service,它可以使软件模块脱离平台和语言的束缚,实现更高程度的复用。但是想一想,其实Web Service也是面向对象,只不过是把类与类之间的关联用XML来描述而已[Li, 02]。
    在过去的十多年里,面向对象技术对软件行业起到了极大的推动作用。在可以预测的将来,它仍将是软件设计的主要技术——至少我看不到有什么技术可以取代它的。

    来源:

    有很多人都认为:OOD是对结构化设计(Structured Design,SD)的扩展,其实这是不对的。OOD的软件设计观念和SD完全不同。SD注重的是数据结构和处理数据结构的过程。而在OOD中,过程和数据结构都被对象隐藏起来,两者几乎是互不相关的。不过,追根溯源,OOD和SD有着非常深的渊源。
    1967年前后,OOD和SD 的概念几乎同时诞生,它们分别以不同的方式来表现数据结构和算法。当时,围绕着这两个概念,很多科学家写了大量的论文。其中,由Dijkstra和 Hoare两人所写的一些论文讲到了“恰当的程序控制结构”这个话题,声称goto语句是有害的,应该用顺序、循环、分支这三种控制结构来构成整个程序流程。这些概念发展构成了结构化程序设计方法;而由Ole-Johan Dahl所写的另一些论文则主要讨论编程语言中的单位划分,其中的一种程序单位就是类,它已经拥有了面向对象程序设计的主要特征。
    这两种概念立刻就分道扬镳了。在结构化这边的历史大家都很熟悉:NATO会议采纳了Dijkstra的思想,整个软件产业都同意goto语句的确是有害的,结构化方法、瀑布模型从70年代开始大行其道。同时,无数的科学家和软件工程师也帮助结构化方法不断发展完善,其中有很多今天足以使我们振聋发聩的名字,例如Constantine、Yourdon、DeMarco和Dijkstra。有很长一段时间,整个世界都相信:结构化方法就是拯救软件工业的 “银弹”。当然,时间最后证明了一切。
    而此时,面向对象则在研究和教育领域缓慢发展。结构化程序设计几乎可以应用于任何编程语言之上,而面向对象程序设计则需要语言的支持[1],这也妨碍了面向对象技术的发展。实际上,在60年代后期,支持面向对象特性的语言只有Simula-67这一种。到70年代,施乐帕洛阿尔托研究中心(PARC)的 Alan Key等人又发明了另一种基于面向对象方法的语言,那就是大名鼎鼎的Smalltalk。但是,直到80年代中期,Smalltalk和另外几种面向对象语言仍然只停留在实验室里。
    到90年代,OOD突然就风靡了整个软件行业,这绝对是软件开发史上的一次革命。不过,登高才能望远,新事物总是站在旧事物的基础之上的。70年代和80年代的设计方法揭示出许多有价值的概念,谁都不能也不敢忽视它们,OOD也一样。

    (二)OOD与传统方法区别

    还记得结构化设计方法吗?程序被划分成许多个模块,这些模块被组织成一个树型结构。这棵树的根就是主模块,叶子就是工具模块和最低级的功能模块。同时,这棵树也表示调用结构:每个模块都调用自己的直接下级模块,并被自己的直接上级模块调用。
    那么,哪个模块负责收集应用程序最重要的那些策略?当然是最顶端的那些。在底下的那些模块只管实现最小的细节,最顶端的模块关心规模最大的问题。所以,在这个体系结构中越靠上,概念的抽象层次就越高,也越接近问题领域;体系结构中位置越低,概念就越接近细节,与问题领域的关系就越少,而与解决方案领域的关系就越多。
    但是,由于上方的模块需要调用下方的模块,所以这些上方的模块就依赖于下方的细节。换句话说,与问题领域相关的抽象要依赖于与问题领域无关的细节!这也就是说,当实现细节发生变化时,抽象也会受到影响。而且,如果我们想复用某一个抽象的话,就必须把它依赖的细节都一起拖过去。
    而在OOD中,我们希望倒转这种依赖关系:我们创建的抽象不依赖于任何细节,而细节则高度依赖于上面的抽象。这种依赖关系的倒转正是OOD和传统技术之间根本的差异,也正是OOD思想的精华所在。

     

    (三)OOD步骤

    • 细化重组类
    • 细化和实现类间关系,明确其可见性
    • 增加属性,指定属性的类型与可见性
    • 分配职责,定义执行每个职责的方法
    • 对消息驱动的系统,明确消息传递方式
    • 利用设计模式进行局部设计
    • 画出详细的类图与时序图

    (四)OOD过程主要工作

    (一)对象定义规格的求精过程
    对于OOA所抽象出来的对象-&-类以及汇集的分析文档,OOD需要有一个根据设计要求整理和求精的过程,使之更能符合OOP的需要。这个整理和求精过程主要有两个方面:一是要根据面向对象的概念模型整理分析所确定的对象结构、属性、方法等内容,改正错误的内容,删去不必要和重复的内容等。二是进行分类整理,以便于下一步数据库设计和程序处理模块设计的需要。整理的方法主要是进行归类,对类一&一对象、属性、方法和结构、主题进行归类。
    (二)数据模型和数据库设计
    数据模型的设计需要确定类-&-对象属性的内容、消息连接的方式、系统访问、数据模型的方法等。最后每个对象实例的数据都必须落实到面向对象的库结构模型中。
    (三)优化
    OOD的优化设计过程是从另一个角度对分析结果和处理业务过程的整理归纳,优化包括对象和结构的优化、抽象、集成。
    对象和结构的模块化表示OOD提供了一种范式,这种范式支持对类和结构的模块化。这种模块符合一般模块化所要求的所有特点,如信息隐蔽性好,内部聚合度强和模块之间耦合度弱等。
    集成化使得单个构件有机地结合在一起,相互支持。

    (五)OOD方法特点和面临的问题

    OO方法以对象为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换。这是OO方法最主要的特点和成就。OO方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题,缩短了开发周期,解决了从分析和设计到软件模块结构之间多次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。
    但是同原型方法一样,OO方法需要一定的软件基础支持才可以应用,另外在大型的MIS开发中如果不经自顶向下的整体划分,而是一开始就自底向上的采用OO 方法开发系统,同样也会造成系统结构不合理、各部分关系失调等问题。所以OO方法和结构化方法目前仍是两种在系统开发领域相互依存的、不可替代的方法。

     

    三、OOP

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP 主要有以下的概念和组件:
    组件 - 数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。
    抽象性 - 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。
    封装 - 也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。
    多态性 - 组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。
    继承性 - 允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。
    由于抽象性、封装性、重用性以及便于使用等方面的原因,以组件为基础的编程在脚本语言中已经变得特别流行。Python 和 Ruby 是最近才出现的语言,在开发时完全采用了 OOP 的思想,而流行的 Perl 脚本语言从版本5开始也慢慢地加入了新的面向对象的功能组件。用组件代替“现实”上的实体成为 JavaScript(ECMAScript) 得以流行的原因,有论证表明对组件进行适当的组合就可以在英特网上代替 HTML 和 XML 的文档对象模型(DOM)。

     

    (四)建立Java面向对象编程OOP模型

    内容学习的要点:深度细节过程。即有深度的详细的编译/执行过程。

    ​​​​​​ Java的三个阶段

    在进入OOP之前,首先要确定好一定的需求,一般经过分析选择不同的软件过程,参考文章 软件过程(五大过程解析)

    之后经过OOA,OOD进入到OOP阶段

    关于这个阶段的知识体系

    一方面要学习如何编写Java程序,了解Java的语言规范(也就是语法),这里就详细的介绍一下,静态 与 强类型到底是什么鬼

    没有对比,很难清楚,
    C语言是静态语言、弱类型语言。
    Java语言是静态语言、强类型语言。
    JavaScript语言是动态语言、弱类型语言。

    下面来解释一下:

    静态类型语言、动态类型语言:
    静态类型语言:变量定义时有类型声明的语言。
    1)变量的类型在编译的时候确定
    2)变量的类型在运行时不能修改
    这样编译器就可以确定运行时需要的内存总量。
    例如:C/C++/Java/C#语言是静态类型语言。

    动态类型语言:变量定义时无类型声明的语言。
    1) 变量的类型在运行的时候确定
    2) 变量的类型在运行可以修改
    例如:Javascript语言是动态类型语言。

    强类型语言、弱类型、无类型语言:
    弱/强类型指的是语言类型系统的类型检查的严格程度。弱类型相对于强类型来说类型检查更不严格,比如说允许变量类型的隐式转换,允许强制类型转换等等。
    强类型语言:例如Java/C#语言是强类型语言,强类型定义语言是类型安全的语言,是由编译器以及编译器生成的中间代码来保证类型安全。
    弱类型语言:C/C++/Javascript语言是弱类型语言,其类型安全由程序员来保证,Javascript语言的安全由程序员来保证。
    无类型语言:是动态语言,变量中既可以存放数据又可以存放代码。
     

    另一方面了解Java跨平台是怎么实现的,这牵扯到部署问题,还有想要Java跨版本等情况的处理

    在编写合格的Java源程序,有编辑器的帮助,但这却是远远不够的,需要有Java编程思想的辅助,这本书必须要啃上几遍呀! 在

    还有在学习语法的时候,就应该去捣鼓JVM是什么情况了,比如说Java能够很好的解决数组溢出的情况,原因就是在进行在JVM执行的时候,加上了几条判断语句,这是JVM帮你做的东西,如果不了解JVM,就是浮于表面做定西了,遇到"奇怪"的东西,你也会感到困惑,在前期学习阶段Java类库是少不了的,尤其是Object类,它是你理解Java内存模型的关键,

    深入(深度的详细的)编译/执行过程,并不是简单的过程,需要你沉下心来,认真咀嚼,很多人都是在这里拉开差距的,这是深入的关键步骤,最终直至你建立完整的Java内存模型

     

     

     

    OOA/OOD(过程、方法与内容)能够提升你去设计你进行OOP的能力,Java编程思想是一项你进行设计OOP非常关键的一部分。

    我们不应该从语法的角度去学习Java语言,而应该站在操作系统、CPU、JVM的角度去学习Java。

    API类库的使用需要经验的积累,在这一方面,作为本科生.我们无法超越那些有七八年工程经验的Java工程师,但是Java编程思想方面的学习,是机会突破的!

    Java核心技术,Java编程思想并不是无底洞,打扎实基础,才是王道,趁有时间,前行!

    展开全文
  • 利用PowerDesinger快速建立面向对象应用模型PPT教案学习.pptx
  • 利用PowerDesinger快速建立面向对象应用模型
  • 利用 PowerDesinger 快速建立面向对象应用模型的ppt
  • PowerDesinger 快速建立面向对象应用模型 张波 Boris.zhang@ 2 议程 了解现代信息系统变得日益复杂 回顾传统的C/S实现和3层以及分布计算的不同 学会通过设计技术来管理这些复杂的信息系统 掌握如何使用PowerDesigner...
  • 面向对象思想与模板的知识表达方式相融合,提出了面向对象工程模板,建立了设计与制造活动的有机联系,实现了几何信息与制造信息的集成和分离的对立统一,将复杂对象、层次结构及动态的数据结构相对简单且组织...
  • 建立面向对象的世界观--对对象模型的通俗理解.ppt
  • 对象模型如下: 动态模型如下: 功能模型如下: 转载于:https://www.cnblogs.com/hokin/p/5404480.html

    对象模型如下:

     

     

    动态模型如下:

     

     

    功能模型如下:

    转载于:https://www.cnblogs.com/hokin/p/5404480.html

    展开全文
  • 第7章 面向对象模型

    2015-01-18 23:36:26
    运用PowerDesigner 16建立面向对象模型
  • 浅谈面向对象方法

    千次阅读 热门讨论 2020-05-15 18:00:32
    六、面向对象方法学的优点与缺点 优点 缺点 一、面向对象的基本概念 对象、类、实例、消息、方法 对象:对象能够表示现实或抽象的事物,具有良好定义的责任和良好定义的行为,以及良好 定义的接口。 对象具有...

    目录

    一、面向对象的基本概念

    对象、类、实例、消息、方法

    二、面向对象的基本特征

    封装、继承、多态

    三、面向对象的建模

    对象模型、动态模型、功能模型

    四、面向对象设计

    五、面向对象的实现

    设计风格

    测试策略

    六、面向对象方法学的优点与缺点

    优点

    缺点


    一、面向对象的基本概念

    对象、类、实例、消息、方法

    对象对象能够表示现实或抽象的事物,具有良好定义的责任和良好定义的行为,以及良好 定义的接口。

    对象具有封装性、自治性、通信性、被动性、暂存性、持久性

    类的定义是具有相同属性和务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分

    实例每个对象都属于一个类,属于某个类的对象称为该类的一个实例,类和对象间具有 instance-of 关系。

    类是静态概念,对象是动态概念。类是 对象之上的抽象,有了类之后,对象则是类的具体化,是类的实例

    消息消息就是向对象发出的服务请求,它应含有提供服务的对象标识、服务标识、输入信息和回答信息。

    消息用来请求对象处理或回答某些信息的要求,消息统一了数据流和控制流。程序的执行是靠在对象间传递消息来完成的。

    方法方法(method)也称作行为(behavior),指定义于某一特定类上的操作与法则。

    面向对象的设计方法放弃了传统语言中控制结构的概念,以往的一切控制结构的功能都可以通过对象及其相互间传递消息来实现

    二、面向对象的基本特征

    封装、继承、多态

    封装:封装是面向对象方法的一个重要原则,它有两个含义:第一个含义是,把对象的全部 属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象);第二个含义也称作信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。

    继承:继承是一种使用户得以在一个类的基础上建立新的类的技术。新的类自动继承旧类的属性和行为特征,并可具备某些附加的特征或某些限制。

    继承是面向对象语言中功能最强大、最有代表性的特性。首先,继承使新的类变得简洁明了;其次,通过继承可以重复使用和扩展那些经过测试的已有的类,实现重用。最后,是利用继承可以增强处理的一致性。

    多态:在收到消息时对象要予以响应,不同的对象收到同一消息可以产生完全不同的结果, 这一现象叫做多态。

    三、面向对象的建模

            所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书 面描述。通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述 问题域中的术语和概念。更进一步讲,模型是一种思考工具,利用这种工具可以把知识规范地表示出来。

           面向对象的建模不仅仅是新的编程语言的汇总,而是一种新的思维方式,一种关于计 算和信息结构化的新思维。面向对象的建模,把系统看做是相互协作的对象,这些对象是结构和行为的封装,都属于某个类,那些类具有某种层次化的结构。系统的所有功能通过 对象之间相互发送消息来获得。面向对象的建模可以视作一个包含以下元素的概念框架: 抽象、封装、模块化、层次、分类、并行、稳定、可重用和可扩展性。

    对象模型、动态模型、功能模型

    对象模型:对象模型表示静态的、结构化的系统的“数据性质”。

    面向对象方法强调围绕对象而 不是围绕功能来构造系统。对象模型为建立动态模型和功能模型,提供了实质性的框架。

    动态模型:动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列通常,用状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)。

    功能模型:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。 通常,功能模型由一组数据流图组成。

    三者之间的关系:它使用数据结构(对象模型),执行操作(动态模型),并且完成效据值的变化 (功能模型)。

    四、面向对象设计

    准则模块化、抽象化、信息隐藏和封装、对象的高内聚和弱耦合、可扩充性、可重用性。

    面向对象设计的内容

    五、面向对象的实现

    设计风格

    1. 提高可重用性
    2. 提高方法的内聚、降低耦合
    3. 减小方法的规模
    4. 保持方法的一致性
    5. 尽量做到全面覆盖  
    6. 分开策略方法和实现方法
    7. 利用继承机制
    8. 提高可扩充性
    9. 封装实现策略
    10. 慎用公有方法
    11. 控制方法的规模

    测试策略

    六、面向对象方法学的优点与缺点

    优点

    1.与人类习惯的思维方法一致

    2.稳定性好

    3.可重用性好

    4.可拓展性

    5.可维护性

    缺点

    1.面向对象需要更关注需求、分析和设计

    2.面向对象需要完全改变每一个人的思想

    3面向对象需要改变软件开发文化

    4.面向对象的许多优点是长期的

    5.面向对象要求先在培训、教育和工具上投资

    6.面向对象要求更多的测试工作

    7.面向对象技术不能保证能构造出正确的系统

    展开全文
  • 面向对象三种模型之间的关系

    万次阅读 2017-03-11 16:39:14
    功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候(即何种状态下接受了什么事件的...在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础,人们依靠对象模型完成3种模型的集成。
  • 建立对象模型方法

    千次阅读 2010-04-07 19:45:00
    在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型建立对象模型即包括自底向上的抽象过程,也包括自顶向下的分解过程 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的...
  • UML中的一些图可以用于建立面向对象分析的辅助模型(顺序图、通信图 、活动图、状态机图和包图)。其中,顺序图、通信图、活动图、状态机图用于描述系统的行为方面,包图用于组织系统的模型。 顺序图是一种详细描述...
  • 面向对象方法 面向对象( Object-Oriented,OO)方法认为,客观世界是由各种对象组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,都属于某个对象类,是该对象类的一个元素。复杂的对象可由相对...
  • 面向对象方法学引论面向对象方法学引论9.1 面向对象方法概述9.1.1 什么是面向对象的开发方法9.1.2 面向对象开发方法的组成OOSD由三部分组成1、OOA法对象模型(信息模型)状态模型(动态模型)2、OOD 法3、OOP 法9.2 ...
  • 结合ATM系统的实例,介绍建立动态模型方法 第一步编写脚本 脚本描述用户与目标系统间的一个或多个典型交互过程 1.正常情况脚本 2.异常情况脚本 3.错误情况脚本 从脚本提取所有外部事件,确定每类事件发送和接收...
  • 因此,用面向对象方法开发绝大多数软件时,都首先建立对象模型,然后再建立另外两个子模型。 对象模型通常有5个层次。典型的工作步骤是: 首先确定对象类和关联(因为它们影响系统整体结构和解决问题的方法),对于...
  • 面向对象方法学与结构化方法学的异同 面向对象方法与结构化方法都是...面向对象方法在上世纪八十年代中期开始被人们所关注的,而到了九十年代,面向对象方法学已经成为开发大型软件的首选范型。面向对象方法学的极大...
  • 先修课程:面向对象程序设计语言(C++或JAVA)、 数据结构、数据库系统、软件工程 本课程的教学目的 开设该课程是为了培养学生运用面向对象的 思维方式建立软件系统的分析、设计模型,提高 学生软件开发的能力及...
  • 分析了POSC石油组织建立的用于石油勘探开发行业的Epicentre公共模型的数据查询方法,构造出源实体-标识实体单向多级引用或源实体-核心实体正反向引用两种方法查询面向对象模型中的数据;对于更复杂的查询,均可通过...
  • 对电子政务系统模型综述的基础上,提出并构建了面向对象的电子政务系统模型。该模型中将电子政务系统分解为三个对象,即政府、企(事)业单位和公民,建立面向对象电子政务系统模型中各对象之间直接和间接的互动...
  • 在面向对象模型中加入对动态属性的支持,提出和建立了一种面向对象的支持全时域数据存储和查询的移动对象数据模型。探讨了GPS定位信息中精度、方位等信息对移动对象位置更新的影响,并给出了一种新的基于定位精度、...
  • --基于面向对象葵花宝典读书总结。领域建模是面向对象真正开始。2个作用: 发掘重要的业务领域概念; 建立业务领域之间的关系。 找名词:从用例中找名词。加属性:找出名词的属性。连关系:使用ER图,连类的关系。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 157,956
精华内容 63,182
关键字:

在用面向对象方法建立的模型