免费智能真题库 > 历年试卷 > 程序员 > 2010年下半年 程序员 上午试卷 综合知识
  第46题      
  知识点:   面向对象分析与设计基本概念   面向对象分析   面向对象分析与设计
  关键词:   面向对象分析与设计   对象   面向对象   面向对象分析        章/节:   系统分析和设计基础知识       

 
以下关于面向对象分析与设计叙述中,正确的是(46)。
 
 
  A.  面向对象分析的结果适合采用C++语言表达
 
  B.  面向对象分析的结果适合采用汇编语言表达
 
  C.  面向对象设计的结果适合采用UML(Unified Modeling Language)表达
 
  D.  面向对象设计的结果适合采用DFD(Data Flow Diagram)表达
 
 
 

 
  第47题    2016年下半年  
   30%
UML中关联是一个结构关系,描述了一组链。两个类之间(47)。
  第48题    2020年下半年  
   46%
UML中有4种事物:结构事物、行为事物、分组事物和注释事物。交互、状态机和活动属于(47)事物;一个依附于某一个元素或某一组元素..
  第45题    2017年上半年  
   44%
在UML中有4种事物:结构事物、行为事物、分组事物和注释事物。其中,(44)事物表示UML模型中的名词,它们通常是模型的静态部分,..
   知识点讲解    
   · 面向对象分析与设计基本概念    · 面向对象分析    · 面向对象分析与设计
 
       面向对象分析与设计基本概念
        用面向对象方法开发的软件具有以下特点:模型与客观世界一致,因而便于理解;适应变化的需要,修改局限在模块中;具有可复用性。
               面向对象分析与设计概述
               面向对象分析(Object-Oriented Analysis, OOA)的目标是建立待开发软件系统的模型。OOA模型描述了表示某个特定应用领域中的对象、对象间的结构关系和通信关系,反映了现实世界强加给软件系统的各种规则和约束条件。OOA模型还规定了对象如何协同工作和完成系统的职责。
               面向对象设计(Object-Oriented Design, OOD)的目标是定义系统构造蓝图,并根据系统构造蓝图在特定的环境中实现系统。面向对象设计(OOD)分为两个阶段:高层设计(建立应用的体系结构)、低层设计(类的详细设计)。
               面向对象的程序设计,是利用面向对象的程序语言将面向对象的产品定义模型转换成可以在计算机上处理的表达形式,以便最终在计算机上实现系统的设计。常用的面向对象编程语言有Smalltalk、Eiffel、C++、Java等。
               统一建模语言(UML)概述
               UML由3个要素构成:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的一些公共机制。
               UML的词汇表包含3种构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。UML提供了9种图:类图、对象图、用例图、序列图、协作图、状态图、活动图、构件图、部署图。
 
       面向对象分析
        同其他分析方法一样,面向对象分析(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)。依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对于细节的依赖。这样做的好处就在于可以最大限度地应对可能的变化,即:使用多个专门的接口比使用单一的总接口总要好。
   题号导航      2010年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第46题    在手机中做本题