免费智能真题库 > 历年试卷 > 系统分析师 > 2019年上半年 系统分析师 上午试卷 综合知识
  第1题      
  知识点:   关系   事物   面向对象分析
  关键词:   面向对象分析   对象   面向对象        章/节:   需求分析和设计方法       

 
面向对象分析中,一个事物发生变化会影响另一个事物,两个事物之间属于( )。
 
 
  A.  关联关系
 
  B.  依赖关系
 
  C.  实现关系
 
  D.  泛化关系
 
 
 

 
  第1题    2015年上半年  
   40%
UML结构中的公共机制是指达到特定目标的公共UML方法,其中(1)是事物语义的细节描述,它是模型真正的核心;(2)包括约束、构造..
  第2题    2016年上半年  
   45%
UML通过五个视图来定义系统架构,(2)表示了设计模型中在架构方面具有重要意义的类、子系统、包和用例实现的子集。
  第3题    2020年下半年  
   54%
UML 2.0所包含的图中,(3)将进程或者其他结构展示为计算内部一步步的控制流和数据流;(4)描述模型本身分解而成的组织单元以及它们..
   知识点讲解    
   · 关系    · 事物    · 面向对象分析
 
       关系
        UML用关系把事物结合在一起,UML中的关系主要有四种。
        (1)依赖(dependencies):两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
        (2)关联(association):一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系)。
        (3)泛化(generalization):一种一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
        (4)实现(realization):类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
               用例之间的关系
               两个用例之间的关系可以概括为两种情况。一种是用于重用的包含关系,用构造型<>或<>表示;另一种是用于分离出不同行为的扩展关系,用构造型<>表示。
               (1)包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例很重要的部分功能时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例。
               例如,软考在线图书订单处理系统中,“创建新订单”和“更新订单”两个用例都需要检查客户的账号是否正确,为此定义一个抽象用例“核查客户账户”。用例“创建新订单”和“更新订单”与用例“核查客户账户”之间的关系就是包含关系。
               (2)扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则可以将这个用例分为一个主用例和一个或多个辅用例进行描述可能更加清晰。
               例如,软考在线图书管理系统中,读者归还图书时,需要判断当前日期是否已经超过了图书借阅的周期。如果超过了借阅周期,则必须罚款。“归还图书”和“罚款”用例之间的关系就是扩展关系。
               用例之间还存在一种泛化关系。用例可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。例如,购买飞机票时,既可以通过电话订票,也可以通过网上订票,则订票用例就是电话订票和网上订票的泛化。
               类之间的关系
               (1)关联关系。描述了给定类的单独对象之间语义上的连接。关联提供了不同类之间的对象可以相互作用的连接。其余的关系涉及类元自身的描述,而不是它们的实例。用“————”表示。
               (2)依赖关系。有两个元素XY,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。在UML中,使用带箭头的虚线“”表示依赖关系。
               在类中,依赖由各种原因引起,例如,一个类向另一个类发送消息;一个类是另一个类的数据成员;一个类是另一个类的某个操作参数。如果一个类的接口改变,则它发出的任何消息都可能不再合法。
               (3)泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类继承的,而父类则是子类的泛化。在UML中,使用带空心箭头的实线“”表示泛化关系,箭头指向父类。
               (4)聚合关系。聚合是一种特殊形式的关联,它是传递和反对称的。聚合表示类之间的关系是整体与部分的关系。例如一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,就是聚合的一个例子。在UML中,使用一个带空心菱形的实线“”表示聚合关系,空心菱形指向的是代表“整体”的类。
               (5)组合关系。如果聚合关系中的表示“部分”的类的存在与否,与表示“整体”的类有着紧密的关系,例如“公司”与“部门”之间的关系,那么就应该使用“组合”关系来表示这种关系。在UML中,使用带有实心菱形的实线“”表示组合关系。
               (6)实现关系。将说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。实现关系用带空心箭头的虚线“”表示。
               (7)流关系。将一个对象的两个版本以连续的方式连接起来。它表示一个对象的值、状态和位置的转换。流关系可以将类元角色在一次相互作用中连接起来。流的种类包括变成(同一个对象的不同版本)和复制(从现有对象创造出一个新的对象)两种。使用带箭头的虚线“”表示。
               对于聚合关系和组合关系,各种文献的说法有些区别。在这些文献中,首先定义聚集关系(整体与部分的关系),然后再把聚集关系分为两种,分别是组合聚集(相当于上述的“组合关系”)和共享聚集(相当于上述的“聚合关系”)。
 
       事物
        UML中的事物也称为建模元素,包括结构事物(structural things)、行为事物(behavioral things,动作事物)、分组事物(grouping things)和注释事物(annotational things,注解事物)。这些事物是UML模型中最基本的面向对象的构造块。
        (1)结构事物。结构事物在模型中属于最静态的部分,代表概念上的或物理上的元素。总共有七种结构事物:
        首先是类,类是描述具有相同属性、方法、关系和语义的对象的集合。一个类实现一个或多个接口。
        第二种是接口,接口是指类或构件提供特定服务的一组操作的集合。因此,一个接口描述了类或构件的对外可见的动作。一个接口可以实现类或构件的全部动作,也可以只实现一部分。
        第三种是协作,协作定义了交互的操作,是一些角色和其他元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。因此,协作具有结构化、动作化、维的特性。一个给定的类可能是几个协作的组成部分。这些协作代表构成系统的模式的实现。
        第四种是用例,用例是描述一系列的动作,这些动作是系统对一个特定角色执行,产生值得注意的结果的值。在模型中用例通常用来组织行为事物。用例是通过协作来实现的。
        第五种是活动类,活动类是这种类,它的对象有一个或多个进程或线程。活动类和类很相似,只是它的对象代表的元素的行为和其他的元素是同时存在的。
        第六种是构件,构件是物理上或可替换的系统部分,它实现了一个接口集合。在一个系统中,可能会遇到不同种类的构件。
        第七种是节点,节点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个构件集合一般来说位于一个节点,但有可能从一个节点转到另一个节点。
        (2)行为事物。行为事物是UML模型中的动态部分。它们是模型的动词,代表时间和空间上的动作。总共有两种主要的行为事物。
        第一种是交互(内部活动),交互是由在一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作。交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次序(消息产生的动作)、连接(对象之间的连接)。
        第二种是状态机,状态机由一系列对象的状态组成。
        内部活动和状态机是UML模型中最基本的两个动态事物,它们通常和其他的结构事物、主要的类、对象连接在一起。
        (3)分组事物。分组事物是UML模型中组织的部分,可以把它们看成是个盒子,模型可以在其中被分解。总共只有一种分组事物,称为包。包是一种将有组织的元素分组的机制。结构事物、行为事物甚至其他的分组事物都有可能放在一个包中。与构件(存在于运行时)不同的是包纯粹是一种概念上的东西,只存在于开发阶段。
        (4)注释事物。注释事物是UML模型的解释部分。
 
       面向对象分析
        同其他分析方法一样,面向对象分析(Object-Oriented Analysis,OOA)的目的是获得对应用问题的理解。理解的目的是确定系统的功能、性能要求。面向对象分析法与功能/数据分析法之间的差别是前期的表述含义不同。功能/数据分析法分开考虑系统的功能要求和数据及其结构,面向对象分析方法是将数据和功能结合在一起作为一个综合对象来考虑。面向对象分析技术可以将系统的行为和信息间的关系表示为迭代构造特征。
        面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。
               认定对象
               在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的“名词”作为一个对象,这通常是研究问题、定义域实体的良好开始。通过实体间的关系寻找对象常常没有问题,而困难在于寻找(选择)系统关心的实质性对象,实质性对象是系统稳定性的基础。例如在银行应用系统中,实质性对象应包含客户账务、清算等,而门卫值班表不是实质性对象,甚至可不包含在该系统中。
               组织对象
               分析对象间的关系,将相关对象抽象成类,其目的是简化关联对象,利用类的继承性建立具有继承性层次的类结构。抽象类时可从对象间的操作或一个对象是另一个对象的一部分来考虑,如房子由门和窗构成,门和窗是房子类的子类。由对象抽象类,通过相关类的继承构造类层次,所以说系统的行为和信息间的分析过程是一种迭代表征过程。
               对象间的相互作用
               描述出各对象在应用系统中的关系。如一个对象是另一个对象的一部分,一个对象与其他对象间的通信关系等。这样可以完整地描述每个对象的环境,由一个对象解释另一个对象,以及一个对象如何生成另一个对象,最后得到对象的界面描述。
               基于对象的操作
               当考虑对象的界面时,自然要考虑对象的操作。其操作有从对象直接标识的简单操作,如创建、增加、删除等;也有更复杂的操作,如将几个对象的信息连接起来。一般而言,避免对象太复杂比较好,当连接的对象太复杂时,可将其标识为新对象。当确定了对象的操作后,再定义对象的内部,对象内部定义包括其内部数据信息、信息存储方法,继承关系以及可能生成的实例数等属性。
               分析阶段最重要的是理解问题域的概念,其结果将影响整个工作。经验表明,从应用定义域概念标识对象是非常合理的,完成上述工作后写出规范文档,文档确定每个对象的范围。
               早期面向对象的目标之一是简化模型与问题域之间的语义差距。事实上,面向对象分析的基础是软件系统结构,这依赖于人类看待现实世界的方法。当人们理解求解问题的环境时,常采用对象、分类法和层次性这类术语。面向对象分析与功能/数据分析方法相比,面向对象的结果比较容易理解和管理。面向对象分析方法的另一个优点是便于修改,早期阶段的修改容易提高软件的可靠性。
   题号导航      2019年上半年 系统分析师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第1题    在手机中做本题