免费智能真题库 > 历年试卷 > 信息系统监理师 > 2018年下半年 信息系统监理师 上午试卷 综合知识
  第25题      
  知识点:   面向对象方法   面向对象系统设计   系统设计的内容
  关键词:   面向对象   系统设计   对象        章/节:   软件与软件工程知识       

 
面向对象系统设计的内容不包括( )。
 
 
  A.  用例设计
 
  B.  原型设计
 
  C.  类设计
 
  D.  子系统设计
 
 
 

 
  第33题    2016年上半年  
   54%
(33)是表达系统中的类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
  第34题    2017年下半年  
   65%
下述关于面向对象的软件开发方法(OMT),不正确的是( )。
  第33题    2014年上半年  
   45%
UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。(33)不属于这类视图。
   知识点讲解    
   · 面向对象方法    · 面向对象系统设计    · 系统设计的内容
 
       面向对象方法
        在面向对象方法方面,主要考查面向对象的基本概念、数据隐藏、UML和构件等。
                      基本概念
                      面向对象方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。下面首先介绍面向对象方法的一些基本概念。
                             对象
                             在计算机系统中,对象是指一组属性及这组属性上的专用操作的封装体。属性可以是一些数据,也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。一个对象通常可由三部分组成,分别是对象名、属性和操作(方法)。
                             类
                             类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。在分析和设计时,通常把注意力集中在类上,而不是具体的对象上。通常把一个类和这个类的所有对象称为类及对象或对象类。
                             一个类通常可由三部分组成,分别是类名、属性和操作(方法)。每个类一般都有实例,没有实例的类是抽象类。抽象类不能被实例化,也就是说不能用new关键字去产生对象,抽象方法只需声明,而不需实现。抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。
                             是否建立了丰富的类库是衡量一个面向对象程序设计语言成熟与否的重要标志之一。
                             继承
                             继承是在某个类的层次关联中不同的类共享属性和操作的一种机制。一个父类可以有多个子类,这些子类都是父类的特例。父类描述了这些子类的公共属性和操作,子类还可以定义它自己的属性和操作。一个子类只有唯一的父类,这种继承称为单一继承。一个子类有多个父类,可以从多个父类中继承特性,这种继承称为多重继承。对于两个类A和B,如果A类是B类的子类,则B类是A类的泛化。继承是面向对象方法区别于其他方法的一个核心思想。
                             封装
                             面向对象系统中的封装单位是对象,对象之间只能通过接口进行信息交流,外部不能对对象中的数据随意地进行访问,这就造成了对象内部数据结构的不可访问性,也使得数据被隐藏在对象中。封装的优点体现在以下三个方面。
                             (1)好的封装能减少耦合。
                             (2)类内部的实现可以自由改变。
                             (3)一个类有更清楚的接口。
                             消息
                             消息是对象间通信的手段、一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数(如有必要)。消息只告诉接收对象需要完成什么操作,并不能指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法来完成所需的操作。
                             多态性
                             多态性是指同一个操作作用于不同的对象时可以有不同的解释,并产生不同的执行结果。与多态性密切相关的一个概念就是动态绑定。传统的程序设计语言把过程调用与目标代码的连接放在程序运行前进行,称为静态绑定。而动态绑定则是指把这种连接推迟到运行时才进行。在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法连接,即动态绑定。
                             构件
                             构件(组件)是一个功能相对独立的具有可重用价值的软件单元。在面向对象方法中,一个构件由一组对象构成,包含了一些协作的类的集合,它们共同工作来提供一种系统功能。
                             可重用性是指系统和(或)其组成部分能在其他系统中重复使用的程度。软件开发的全生命周期都有可重用的价值,包括项目的组织、软件需求、设计、文档、实现、测试方法和测试用例,都是可以被重复利用和借鉴的有效资源。可重用性体现在软件的各个层次,通用的、可复用性高的软件模块往往已经由操作系统或开发工具提供,如通用库、标准组件和标准模板库等,它们并不需要程序员重新开发。
                      统一建模语言
                      UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
                      在这个知识点,要求掌握UML的图形和类之间的关系,以及用例之间的关系。
                             UML的图形
                             UML2.0包括14种图,分别列举如下。
                             (1)类图(Class Diagram):展现了一组类、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出了系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。
                             (2)对象图(Object Diagram):展现了一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。
                             (3)构件图(Component Diagram):展现了一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。
                             (4)组合结构图(Composite Structure Diagram):它可以描绘结构化类(例如构件或类)的内部结构,包括结构化类与系统其余部分的交互点。它显示联合执行包含结构化类的行为的部件配置。组合结构图用于画出结构化类的内部内容。
                             (5)用例图(Use Case Diagram):展现一组用例、参与者(一种特殊的类)及它们之间的关系。用例图给出系统的静态用例视图。这些图在对系统的行为进行组织和建模时是非常重要的。
                             (6)顺序图和通信图:两者都是交互图。交互图(Interaction Diagram)展现了一种交互,它由一组对象或角色以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图(Sequence Diagram)是强调消息的时间次序的交互图;通信图(Communication Diagram)也是一种交互图,它强调收发消息的对象或角色的结构组织。顺序图和通信图表达了类似的基本概念,但每种图所强调的概念不同,顺序图强调的是时序,通信图则强调消息流经的数据结构。
                             (7)状态图(State Diagram):展现一个状态机,它由状态、转移、事件和活动组成。状态图展现了对象的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。
                             (8)活动图(Activity Diagram):将进程或其他计算的结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模特别重要,并强调对象间的控制流程。
                             (9),部署图(Deployment Diagram):展现了对运行时的处理结点及在其中生存的构件的配置。部署图给出了体系结构的静态部署视图,通常一个结点包含一个或多个部署图。
                             (10)制品图(Artifact Diagram):展现了计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理位集合。制品图通常与部署图一起使用。制品也展现了它们实现的类和构件。
                             (11)包图(Package Diagram):展现了由模型本身分解而成的组织单元,以及它们的依赖关系。
                             (12)定时图(Timing Diagram):是一种交互图,它展现了消息跨越不同对象或角色的实际时间,而不仅仅只是关心消息的相对顺序。
                             (13)交互概览图(Interaction Overview Diagram):是活动图和顺序图的混合物。
                             用例之间的关系
                             两个用例之间的关系可以概括为两种情况:一种是用于重用的包含关系,用构造型include或use表示;另一种是用于分离出不同行为的扩展关系,用构造型extend表示。
                             (1)包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例很重要的部分功能时,应该使用包含关系来表示它们。
                             (2)扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,则可以断定将这个用例分为一个主用例和一个或多个辅用例进行描述可能更加清晰。
                             另外,用例之间还存在一种泛化关系。用例可以被特别列举为一个或多个子用例,这被称做用例泛化。当父用例能够被使用时,任何子用例也可以被使用。例如,购买飞机票时,既可以通过电话订票,也可以通过网上订票,则订票用例就是电话订票和网上订票的抽象。
                             类之间的关系
                             (1)关联关系。描述了给定类的单独对象之间语义上的连接。关联提供了不同类之间的对象可以相互作用的连接。其余的关系涉及类元自身的描述,而不是它们的实例。用“”表示。
                             (2)依赖关系。有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。在UML中,使用带箭头的虚线“”表示依赖关系。
                             在类中,依赖由各种原因引起,例如,一个类向另一个类发送消息;一个类是另一个类的数据成员;一个类是另一个类的某个操作参数。如果一个类的接口改变,则它发出的任何消息都可能不再合法。
                             (3)泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类继承的,而父类则是子类的泛化。在UML中,使用带空心箭头的实线“”表示泛化关系,箭头指向父类。
                             (4)聚合关系。聚合是一种特殊形式的关联,它是传递和反对称的。聚合表示类之间的关系是整体与部分的关系。例如一辆轿车包含4个车轮、一个方向盘、一个发动机和一个底盘,就是聚合的一个例子。在UML中,使用一个带空心菱形的实线“”表示聚合关系,空心菱形指向的是代表“整体”的类。
                             (5)组合关系。如果聚合关系中表示“部分”的类的存在与否与表示“整体”的类有着紧密的关系,例如“公司”与“部门”之间的关系,那么就应该使用“组合”关系来表示这种关系。在UML中,使用带有实心菱形的实线“”表示组合关系。
                             (6)实现关系。实现关系将说明和实现联系起来。接口是对行为而非实现的说明,而类之中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。实现关系用“”表示。
                             (7)流关系。流关系将一个对象的两个版本以连续的方式连接起来。它表示一个对象的值、状态和位置的转换。流关系可以将类元角色在一次相互作用中连接起来。流的种类包括变成(同一个对象的不同版本)和复制(从现有对象创造出一个新的对象)两种。用“”表示。
 
       面向对象系统设计
        面向对象系统设计(OOD)阶段对分析阶段给出的问题域模型,用面向对象的方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。设计阶段主要包括用例设计、类设计和子系统设计等。
        用例设计
        用例设计的主要目的如下:
        .利用交互改进用例实现。
        .调整对设计类的操作需求。
        .调整对子系统和(或)它们的接口的操作需求。
        .调整对封装体的操作需求。
        用例设计通常使用交互(特别是序列图)来说明系统的行为。当系统或者子系统的行为主要通过同步消息传递来说明时,序列图非常有用。由于消息序列通常没有严格的定义,因此,尤其是在事件驱动系统中,异步消息传递更容易利用状态机和协作来进行说明。
        类设计
        类是设计工作的核心,系统的实际工作其实也是由类执行的。子系统、包、封装体以及协作关系等其他设计元素只是说明了类的组合方式或协同操作方式。
        类设计的主要目的如下:
        .确保类可为用例实现提供必需的行为。
        .确保提供充足的信息来明确无误地实施类。
        .处理和类有关的非功能性需求。
        .包含用于类的设计机制。
        子系统设计
        子系统是一种模型元素,它具有包(可包含其他模型元素)和类(具有行为)的语义。子系统的行为由它所包含的类或其他子系统提供。子系统实现一个或多个接口,这些接口定义子系统可执行的行为。
        子系统设计的主要目的如下:
        .用所包含类的协作来定义在子系统接口中指定的行为。
        .记录子系统的内部结构。
        .定义子系统接口和包含类之间的实现关系。
        .确定对其他子系统的依赖关系。
 
       系统设计的内容
        系统设计的内容和任务因系统目标的不同和处理问题不同而各不同,但一般而言,系统设计包括总体设计(也被称为概要设计)和详细设计。在实际系统设计工作中,这两个设计阶段的内容往往是相互交叉和关联的。
               总体设计
               总体设计也被称为概要设计,是系统开发过程中关键的一步。系统的质量及一些整体特性基本上是由这一步的成果所决定的。总体设计的主要任务是完成对系统总体结构和基本框架的设计。系统总体结构设计包括两方面的内容,系统总体布局设计和系统模块化结构设计。
               模块化设计的工作任务包括如下内容。
               .按需求和设计原则将系统划分为若干功能模块。
               .决定每个模块的具体功能和职责。
               .分析和确定模块间的调用关系。
               .确定模块间的信息传递。
               系统总体布局方案包括系统网络拓扑结构设计和系统资源配置设计方案。
               详细设计
               总体设计只是为整个信息系统提供了一个设计思路和框架,框架内的血肉需要系统的设计人员在详细设计这个阶段充实。总体设计完成后,设计人员要向用户和有关部门提交一份详细的报告,说明设计方案的可行程度和更改情况,得到批准后转入系统详细设计。详细设计阶段主要是在总体设计的基础上,将设计方案进一步详细化、条理化和规范化,为各个具体任务选择适当的技术手段和处理方法。系统的详细设计一般包括如下。
               (1)代码设计。
               代码设计就是信息分类和编码的工作,是将系统中有某些共同属性或特征的信息归并在一起,并利用便于计算机和人识别和处理的符号来表示这些信息的设计工作。
               (2)数据库设计。
               数据库设计就是构建既能客观、准确地反映外部世界,又便于人类大脑认识的概念模型,并在此基础上对数据进行建模,转化为数据库管理系统所支持的数据模型;选择合适的存储结构和存储方法,最终完成数据库的设计工作。
               (3)输入/输出设计。
               输入/输出设计主要是对以记录为单位的各种输入输出报表格式的描述。另外,对人机对话格式的设计和输入输出装置的选择也在这一步完成。
               (4)用户界面设计。
               用户界面设计是指在用户与系统之间架起一座桥梁。主要内容包括:定义界面形式;定义基本的交互控制形式;定义图形和符号;定义通用的功能键和组合键的含义及其操作内容;定义帮助策略,等等。
               (5)处理过程设计。
               总体设计将系统分解为许多模块,并基本决定了每个模块的功能和界面。处理过程设计则定义每个模块的内部执行过程,包括数据的组织、控制流、每一步的具体加工要求和实施细节。通过处理过程设计,为编写程序制定一个周密的计划。一般来说,每一个功能模块都应设计一个处理流程。
               其他设计任务
               详细设计完成以后,也需要编制系统设计文档,主要工作包括系统标准化设计、描述系统设计结果、拟定系统实施方案。
               系统标准化设计是指各类数据编码、数据库(文件)和功能模块的命名要有相应规则,符合标准化的要求。另外,为了保证系统安全可靠的运行,还要对数据进行保密设计和可靠性设计。
               描述系统设计的结果是编制系统设计说明书、程序设计说明书、系统测试说明书以及各种设计图表等,并将它们汇集成册,交给有关人员和部门审核批准。
               拟定系统实施方案是在系统设计结果得到有关人员和部门认可之后,拟定系统实施计划,详细确定实施阶段的工作内容、时间和具体要求。实施方案得到批准后,就可以正式转入系统实施阶段。
   题号导航      2018年下半年 信息系统监理师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第25题    在手机中做本题