全部科目 > 程序员 >
2010年上半年 上午试卷 综合知识
第 45 题
知识点 面向对象分析   面向对象分析与设计  
关键词 面向对象分析与设计   对象   面向对象   面向对象分析  
章/节 系统分析和设计基础知识  
 
 
以下关于面向对象分析与设计叙述中,正确的是(45)
 
  A.  面向对象分析与面向对象设计存在精确的界限
 
  B.  面向对象分析与面向对象设计的任务相同
 
  C.  面向对象分析与面向对象设计不存在精确的界限
 
  D.  面向对象分析与面向对象设计不产生任何可见结果
 
 




 
 
相关试题     面向对象分析与设计方法 

  第46题    2013年上半年  
在统一建模语言(UML)中,(45)展现了一组对象以及它们之间的关系,给出了系统的静态设计视图或静态进程视图,描述了(46)中所建立的事物实例的静态快照。

  第45题    2011年上半年  
在统一建模语言(UML)中,(45)用于描述系统与外部系统及用户之间的交互。

  第46题    2015年下半年  
结构型设计模式涉及如何组合类和对象以获得更大的结构,以下 (46) 模式是结构型模式。

 
知识点讲解
· 面向对象分析
· 面向对象分析与设计
 
        面向对象分析
        同其他分析方法一样,面向对象分析(Object-Oriented Analysis,OOA)的目的是获得对应用问题的理解。理解的目的是确定系统的功能、性能要求。面向对象分析法与功能/数据分析法之间的差别是前期的表述含义不同。功能/数据分析法分开考虑系统的功能要求和数据及其结构,面向对象分析方法是将数据和功能结合在一起作为一个综合对象来考虑。面向对象分析技术可以将系统的行为和信息间的关系表示为迭代构造特征。
        面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。
               认定对象
               在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的“名词”作为一个对象,这通常是研究问题、定义域实体的良好开始。通过实体间的关系寻找对象常常没有问题,而困难在于寻找(选择)系统关心的实质性对象,实质性对象是系统稳定性的基础。例如在银行应用系统中,实质性对象应包含客户账务、清算等,而门卫值班表不是实质性对象,甚至可不包含在该系统中。
               组织对象
               分析对象间的关系,将相关对象抽象成类,其目的是简化关联对象,利用类的继承性建立具有继承性层次的类结构。抽象类时可从对象间的操作或一个对象是另一个对象的一部分来考虑,如房子由门和窗构成,门和窗是房子类的子类。由对象抽象类,通过相关类的继承构造类层次,所以说系统的行为和信息间的分析过程是一种迭代表征过程。
               对象间的相互作用
               描述出各对象在应用系统中的关系。如一个对象是另一个对象的一部分,一个对象与其他对象间的通信关系等。这样可以完整地描述每个对象的环境,由一个对象解释另一个对象,以及一个对象如何生成另一个对象,最后得到对象的界面描述。
               基于对象的操作
               当考虑对象的界面时,自然要考虑对象的操作。其操作有从对象直接标识的简单操作,如创建、增加、删除等;也有更复杂的操作,如将几个对象的信息连接起来。一般而言,避免对象太复杂比较好,当连接的对象太复杂时,可将其标识为新对象。当确定了对象的操作后,再定义对象的内部,对象内部定义包括其内部数据信息、信息存储方法,继承关系以及可能生成的实例数等属性。
               分析阶段最重要的是理解问题域的概念,其结果将影响整个工作。经验表明,从应用定义域概念标识对象是非常合理的,完成上述工作后写出规范文档,文档确定每个对象的范围。
               早期面向对象的目标之一是简化模型与问题域之间的语义差距。事实上,面向对象分析的基础是软件系统结构,这依赖于人类看待现实世界的方法。当人们理解求解问题的环境时,常采用对象、分类法和层次性这类术语。面向对象分析与功能/数据分析方法相比,面向对象的结果比较容易理解和管理。面向对象分析方法的另一个优点是便于修改,早期阶段的修改容易提高软件的可靠性。
 
        面向对象分析与设计
               面向对象分析
               面向对象分析(Object-Oriented Analysis,OOA)的目标是完成对所解问题的分析,确定待开发软件系统要做什么,建立系统模型。为了达到这一目标,必须完成以下任务:
               (1)在客户和软件工程师之间沟通基本的用户需求。
               (2)标识类(包括定义其属性和操作)。
               (3)刻画类的层次结构。
               (4)表示类(对象)之间的关系。
               (5)为对象行为建模。
               (6)递进地重复任务(1)至任务(5),直至完成建模。
               其中任务(2)至任务(4)刻画了待开发软件系统的静态结构,任务(5)刻画了系统的动态行为。
               面向对象分析的一般步骤如下:
               (1)获取客户对系统的需求,包括标识场景和用例,以及构建需求模型。
               (2)用基本的需求为指南来选择类和对象(包括属性和操作)。
               (3)定义类的结构和层次。
               (4)建造对象-关系模型。
               (5)建造对象-行为模型。
               (6)利用用例/场景来复审分析模型。
               面向对象设计
               面向对象设计(Object-Oriented Design,OOD)是将OOA所创建的分析模型转化为设计模型,其目标是定义系统构造蓝图。OOA与OOD之间不存在鸿沟,采用一致的概念和一致的表示法,OOD同样应遵循抽象、信息隐蔽、功能独立、模块化等设计准则。
               OOD在复用OOA模型的基础上,包含与OOA对应如下五个活动:
               (1)识别类及对象。
               (2)定义属性。
               (3)定义服务。
               (4)识别关系。
               (5)识别包。
               OOD需要考虑实现问题,如根据所用编程语言是否支持多继承或继承,而调整类结构。
               面向对象程序设计
               面向对象程序设计(Object Oriented Programming,OOP)是采用面向对象程序设计语言,采用对象、类及其相关概念所进行的程序设计,将设计模型转化为在特定的环境中系统,即实现系统。通过面向对象的分析与设计所得到的系统模型可以由不同的编程语言实现。一般采用如Java、C++、Smalltalk等面向对象语言,也可以用非面向对象语言实现,如C语言中的结构。
               面向对象方法中的五大原则
               (1)单一责任原则(Single Responsibility Principle,SRP)。当需要修改某个类的时候原因有且只有一个,让一个类只做一种类型责任。
               (2)开关原则(Open&Close Principle,OCP)。软件实体应该是可扩展,即开放的;而不可修改的,即封闭的。
               (3)里氏替换原则(Liskov Substitution Principle,LSP)。在任何父类可以出现的地方,都可以用子类的实例来赋值给父类型的引用。当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有是一个(is-a)关系。
               (4)依赖倒置原则(Interface Segregation Principle,ISP)。高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。
               (5)接口分离原则(Dependence Inversion Principle,DIP)。依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这样做的好处就在于可以最大限度地应对可能的变化,即:使用多个专门的接口比使用单一的总接口总要好。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有