系统分析师综合知识(选择题)模拟试卷12(题后含答案及解析)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统分析师综合知识(选择题)模拟试卷12(题后含答案及解析) 题型有:1.
1.根据考试大纲的要求,本章要求考生掌握面向对象分析与设计(继承、抽象、代理、封装、多态)和统一建模语言(UML)。

由于面向对象方法已经成为软件开发的一种主要方法,从历年考试来看,面向对象的知识点考得越来越多(甚至超过了软件工程的分数),着重考查统一建模语言(UML)的知识。

(1)面向对象的主要特征除封装、继承外,还有(1)和(2)。

通常,对象可由标识此对象的名、属性和(3)所组成。

对象之间的服务请求是通过传递(4)来实现的。

所有的对象可以分成为各种对象类,每个对象类都定义了一组(3)。

有一种特殊的类称为抽象类,其主要特征是(5)。

A.一致性
B.完整性
C.动态联编
D.静态联编
正确答案:C
2.
A.一致性
B.完整性
C.动态联编
D.多态性
正确答案:D
3.
A.说明
B.方法
C.过程
D.类型
正确答案:B
4.
A.对象名
B.属性
C.参数
D.消息
正确答案:D
5.
A.没有实例
B.抽象地包括了大量实例
C.没有子类
D.对数据类型的抽象
正确答案:A
解析:面向对象(Object-Oriented)方法形成最初是从面向对象程序设计语言开始的。

第一个00语言是20世纪60年代末挪威奥斯陆大学和挪威计算中心共同研制的Simula。

到20世纪80年代中期,OO语言达数十种之多。

20世纪80年代中期,面向对象分析(OOA)的研究开始发展,进而延伸到面向对象设计(OOD)。

20世纪90年代以后,OOA/OOD方法逐渐走向实用,形成OO开发方法。

我们先介绍几个基本概念。

(1)对象在计算机系统中,对象是指一组属性以及这组属性上的专用操作的封装体。

属性可以是一些数据,也可以是另一个对象。

每个对象都有它自己的属性值,表示该对象的状态,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。

封装目的足使对象的使用者和生产者分离,使对象的定义和实现分开。

一个对象通常可由对象名、属性和操作(方法)3部分组成。

(2)类类是一组具有相同属性和相同操作的对象的集合。

一个类中的每个对象都是这个类的一个实例(instance)。

在分析和设计时,我们通常把注意力集中在类上,而不是具体的对象上。

通常把一个类和这个类的所有对象称为类及对象或对象类。

(3)继承继承是在某个类的层次关联中不同的类共享属性和操作的一种机制。

一个父类可以有多个子类,这些子类都是父类的特例。

父类描述了这些子类的公共属性和操作,子类还可以定义它自己的属性和操作。

一个子类只有惟一的父类,这种继承称为单一继承。

一个子类有多个父类,可以从多个父类中继承特性,这种继承称为多重继承。

(4)消息消息是对象间通信的手段、一个对象通过向另一对象发送消息来请求其服务。

一个消息通常包括接收对象名、调用的操作名和适当的参数(如有必要)。

消息只告诉接收对象需要完成什么操作,但并不能指示接收者怎样完成操作。

消息完全由接收者解释,接收者独立决定采用什么方法来完成所需的操作(5)多态性和动态绑定(动态联编)多态性是指同一个操作作用于不同的对象可以有不同的解释,产生不同的执行结果。

与多态性密切相关的一个概念就是动态绑定。

传统的程序设计语言把过程调用与目标代码的连接放在程序运行前进行,称为静态绑定。

而动态绑定则是把这种连接推迟至运行时才进行。

在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法连接,即动态绑定。

在面向对象的程序设计中,对象可由标识此对象的名、属性和方法组成。

对象之间的服务请求是通过传递消息来实现的。

所有对象可以分成各种对象类,每个对象类都定义了一组方法。

每个类一般都有实例,没有实例的类是抽象类。

6.面向对象程序设计的基本思想是通过建立和客观实际相对应的对象,并通过这些对象的组合来创建具体的应用。

对象是(6)。

对象的三要素是指对象的(7)。

(8)均属于面向对象的程序设计语言。

而面向对象的程序设计语言必须具备(9)特征。

Windows下的面向对象程序设计和通常DOS下的结构化程序设计最大区别是(10)。

A.数据结构的封装体
B.数据以及在其上的操作的封装体
C.程序功能模块的封装本
D.一组有关事件的封装体
正确答案:B
7.
A.名字、字段和类型
B.名字、过程和函数
C.名字、文字和图形
D.名字、属性和方法
正确答案:D
8.
A.C++、Lisp
B.C++、Smalltalk
C.Prolog、Ada
D.Foxpro、Ada
正确答案:B
9.
A.可视性、继承性、封装性
B.继承性、可重用性、封装性
C.继承性、多态性、封装性
D.可视性、可移植性、封装性
正确答案:C
10.
A.前者可以使用大量下拉式选单,后者使用命令方式调用
B.前者是一种消息驱动式体系结构,后者是一种单向调用
C.前者具有强大的图形用户接口,后者无图形用户接口
D.前者可以突破内存管理640KB的限制,后者不能
正确答案:B
解析:对象不但封装了数据,还封装了在这些数据上的操作(方法)。

对象之间的服务请求是通过传递消息来实现的,而不再是简单的函数调用,这是面向对象的程序设计与传统的结构化程序设计的最大区别。

11.UML是一种面向对象的统一建模语言。

它包含10种图,其中,用例图展示了外部actor与系统所提供的用例之间的连接,UML中的外部actor是指
(18),用例可以用(19)图来描述。

状态图指明了对象所有可能的状态以及状态间的迁移(transition)。

如果一个并发的状态由n个并发的子状态图组成,那么,该并发状态在某时刻的状态由(20)个子状态图中各取一个状态组合而成。

协作图描述了协作的(21)之间的交互和链接(link),它画成(22)图的形式。

A.人员
B.单位
C.人员或单位
D.人员或外部系统
正确答案:D
12.
A.类
B.状态
C.活动
D.协作
正确答案:C
13.
A.每一
B.任意一
C.任意二
D.任意m(m≤n)
正确答案:A
14.
A.对象
B.类
C.用例
D.状态
正确答案:A
15.
A.对象
B.类
C.用例
D.状态
正确答案:A
解析:统一建模语言(Unified Modeling Language,简称UML)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制
品的文档。

它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。

UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。

UML包括概念的语义、表示法和说明,提供了静态、动态、系统环境及组织结构的模型。

它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。

UML标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。

它是为支持大部分现存的面向对象开发过程而设计的。

UML2.0包含下列13种图形。

(1)类图(class diagram):展现了一组类、接口、协作和它们之间的关系。

在面向对象系统的建模中所建立的最常见的图就是类图。

类图给出系统的静态设计视图。

包含主动类的类图给出系统的静态进程视图。

(2)对象图(object diagram):展现了一组对象和它们之间的关系。

对象图描述了在类图中所建立的事物的实例的静态快照。

和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。

(3)构件图(component diagram):展现了一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。

构件图用于表示系统的静态设计实现视图。

对于由小的部件构建大的系统来说,构件图是很重要的。

构件图是类图的变体。

(4)组合结构图(composite structure diagram):它可以描绘结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。

它显示联合执行包含结构化类的行为的部件配置。

组合结构图用于画出结构化类的内部内容。

(5)用例图(use case diagram)展现了一组用况、参与者(一种特殊的类)及它们之间的关系。

用况图给出系统的静态用况视图。

这些图在对系统的行为进行组织和建模上是非常重要的。

(6)顺序图和通信图:两者都是交互图。

交互图(interaction diagram)展现了一种交互,它由一组对象或角色以及它们之间可能发送的消息构成。

交互图专注于系统的动态视图。

顺序图(sequence diagram)是强调消息的时间次序的交互图;通信图(communication diagram)也是一种交互图(在UML1.x中,被称为协作图),它强调收发消息的对象或角色的结构组织。

顺序图和通信图表达了类似的基本概念,但每种图强调概念的不同视图,顺序图强调时序,通信图强调消息流经的数据结构。

(7)状态图(state diagram)展现了一个状态机,它由状态、转移、事件和活动组成。

状态图展现了对象的动态视图。

它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。

(8)活动图(activity diagram)将进程或其他计算的结构展示为计算内部一步步的控制流和数据流。

活动图专注于系统的动态视图。

它对于系统的功能建模特别重要,并强调对象间的控制流程。

(9)部署图(deployment diagram)展现了对运行时的处理结点和在其中生存的构件的配置。

部署图给出了体系结构的静态部署视图。

通常一个结点包含一个或多个制品。

制品图(artifact diagram)展现了计算机中一个系统的物理结构。

制品包括文件、数据库和类似的物理比特集合。

制品常与部署图一起使用。

制品也展现了它们实现的类和构件。

(10)包图(package diagram)展现了由模型本身分解而成的组织单元和它们的依赖关系。

(11)定时图(timing diagram)是一种交互图,它展现了消息跨越不同对象或角色的实际时间,而不仅仅是关心消息的相对顺序。

(12)交互概览图(interaction overview diagram)是活动图和顺序图的混合物。

从应用的角度看,当采用面向对象技术设计系统时,第一步是描述需求;第二步是根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。

其中,第一步与第二步中所建立的模型都是静态的,
包括用例图、类图(包含包)、对象图、构件图和配置图5个图形,是UML的静态建模机制。

第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。

它包括状态图、活动图、顺序图和协作图4个图形,是UML的动态建模机制。

因此,UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。

用例图展示了各类外部行为者(actor)与系统所提供的用例之间的连接。

UML中的外部行为则是指那些可能使用用例的人或外部系统,行为者与用例的连接表示该行为者使用了这个用例。

用例通常用普通的正文来描述,也可以用活动图来描述。

状态图通常是对类描述的扩充,它说明该类的对象所有可能的状态,以及那些事件将导致状态的改变。

状态图可以嵌套,即一个状态可以用一张子状态图来描述,也可以用若干张并发执行的子状态图来描述。

如果一个状态由n张并发执行的子状态图组成,那么,该状态由n张子状态图中各取一个子状态组合而成。

协作图用来展示对象间的动态协作关系,着重描述协作对象之间的交互和链接。

协作图画成对象图,图中的消息箭头表示对象间的消息流。

16.瀑布模型是最常用的传统软件开发模型。

它的特点之一是(1)。

根据国家标准GB8566-88《计算机软件开发规范》的规定,软件开发流程分为8个阶段,即可行性研究和计划、需求分析、概要设计、详细设计、实现、组装测试、确认测试、使用和维护。

实现阶段要完成的工作之一是单元测试,这种测试要根据在(2)阶段中的规格说明进行;组装测试计划是在(3)阶段制定的;确认测试计划是在(4)阶段制定的。

测试的目的是为了(5)。

A.文档是阶段完成的里程碑
B.具有从软件规格说明转换成可执行代码的自动程序设计的新风范
C.利用软件速成原型法加强软件人员与用户的联系
D.支持人工智能、面向对象等新软件技术的集成
正确答案:A
17.
A.可行性研究和计划
B.需求分析
C.概要设计
D.详细设计
正确答案:D
18.
A.可行性研究和计划
B.需求分析
C.概要设计
D.详细设计
正确答案:C
19.
A.可行性研究和计划
B.需求分析
C.概要设计
D.详细设计
正确答案:B
20.
A.证明软件符合设计要求
B.发现软件中的错误和缺陷
C.改善软件的功能和性能
D.发掘软件的潜在能力
正确答案:B
解析:用软件工程的方法来并发大型软件项目,常用的方法有生命周期法、原型法:快速原型法等。

瀑布模型是生命周期法中最常用的开发模型,它把软件开发流程分为可行性分析、需求分析、软件设计、编码实现、测试和维护6个阶段,如图9-1所示。

各阶段的相应文档是阶段完成的里程碑。

上述6个阶段中,前5个阶段合起来又称为软件开发阶段。

在软件开发阶段中,测试是保证软件质量的重要手段。

随着软件项目规模的增大,加之人类思维有局限性,在编码完成后就得到一个无错的软件越来越难,因而测试就成为必不可少的项目。

测试的目的就是为了发现所编软件中的错误和缺陷。

软件测试分成单元测试、组装测试(集成测试)、系统测试和确认测试(验收测试)四部分。

按国家标准GB8566-88《计算机软件开发规范》的规定,单元测试在实现阶段完成,它是根据详细设计阶段中所给出的规格说明进行的。

组装测试的计划是在概要设计阶段制定的,确认测试计划则是在需求分析阶段制定的。

软件测试的各个阶段与软件开发阶段的对应关系呈“V”字形,如图9-2所示。

21.软件开发模型是指软件开发的全部过程、活动和任务的结构框架。

主要的开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型和智能模型。

螺旋模型将瀑布模型和演化模型相结合,并增加了(6),它建立在(7)的基础上,沿着螺线自内向外每旋转一圈,就可得到(7)的一个新版本。

喷泉模型描述了(8)的开发模型,它体现了这种开发方法创建软件的过程所固有的(9)和(10)的特征。

A.系统工程
B.风险分析
C.设计评审
D.进度控制
正确答案:B
22.
A.模块划分
B.子程序分解
C.设计
D.原型
正确答案:D
23.
A.面向对象
B.面向数据流
C.面向数据结构
D.面向事件驱动
正确答案:A
24.
A.归纳
B.推理
C.迭代
D.递归
正确答案:C
25.
A.开发各阶段之间无“间隙”
B.开发各阶段分界明显
C.部分开发阶段分界明显
D.开发过程不分段
正确答案:A
解析:瀑布模型给出了软件生命周期各阶段的固定顺序,上一阶段完成后才能进入下一阶段。

演化模型是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品。

螺旋模型将瀑布模型和演化模型相结合,它综合了两者的优点,并增加了风险分析。

它以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制定计划、风险分析、实施工程、客户评价等活动,并开发原型的一个新版本。

经过若干次螺旋上升的过程,得到最终的软件,如图9-3所示。

喷泉模型对软件复用和生存周期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。

“喷泉”一词本身体现了迭代和无间隙特性。

系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。

所谓无间隙是指在开发活动中,即分析、设计和编码之间不存在明显的边界,如图9-4所示。

智能模型是基于知识的软件开发模型,它综合了上述若干模型,并把专家系统结合在一起。

该模型应用基于规则的系统,采用归约和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。

26.结构化分析方法是一种面向(12)的需求分析方法,该方法最常用的图形工具是(13),与其配合使用的是(14)。

(15)中有名字及方向的成分是(13),不能
由计算机处理的成分是(16)。

A.对象
B.数据结构
C.数据流
D.控制流
正确答案:C
27.
A.程序流程图
B.实体联系网
C.数据流图
D.网络图
正确答案:C
28.
A.程序流程图
B.实体联系网
C.数据流图
D.数据词典
正确答案:D
29.
A.控制流
B.信息流
C.数据流
D.信号流
正确答案:C
30.
A.控制流
B.信息流
C.数据流
D.数据源/终点
正确答案:D
解析:结构化分析(Structured Analysis,简称为SA)方法最初由Douglas Ross提出,DeMarco推广,Ward和Mellor以及后来的Hatley和Pirbhai扩充,形成了今天的结构化分析方法的框架,在20世纪90年代得到了广泛的应用。

SA 是一种面向数据流的软件分析方法,适合于开发数据处理类型软件的需求分析。

数据流图是需求分析阶段使用的一种主要工具,它以图形的方式表达数据处理系
统中信息的变换和传递过程。

与数据流图配合使用的是数据词典,它对数据流图中出现的所有数据元素给出逻辑定义。

数据词典使数据流图上的数据流、加工和文件得到了确切的解释。

通常在数据流图中,可能出现下面4种基本符号:数据流、加工、数据存储和外部实体(数据源及数据终点)。

数据流是具有名字和流向的数据,在数据流图中用标有名字的箭头表示;加工是对数据流的变换,一般用圆圈表示;数据存储是可访问的存储信息,一般用直线段表示;外部实体位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分,它们分别表明数据处理过程的数据来源及数据去向,用标有名字的方框表示。

图9-6是一个典型的数据流图示例。

为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。

稍微复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工,这样的数据流图看起来很不清楚。

层次结构的数据流图能很好地解决这一问题。

按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和理解整个系统。

图9-7给出分层数据流图的示例。

数据处理S包括三个子系统1、2、3。

顶层下面的第一层数据流图为DFD/L1。

第二层数据流图DFD/L2.1、DFD/L2.2及DFD/L2.3分别是子系统1、2和3的细化。

对任何一层数据流图来说,我们称它的上层图为父图,它下一层的图则称为子图。

画数据流图的基本步骤概括地说,就是“自顶向下逐层分解”。

检查和修改的原则为:①数据流图上所有图形符号只限于前述4种基本图形元素;②顶层数据流图必须包括前述4种基本元素,缺一不可;③顶层数据流图上的数据流必须封闭在外部实体之间;④每个加工至少有一个输入数据流和一个输出数据流;⑤在数据流图中,需按层给加工框编号。

编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系;⑥规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致,即父图与子图的平衡;⑦可以在数据流图中加入物质流,帮助用户理解数据流图;⑧图上每个元素都必须有名字;⑨数据流图中不可夹带控制流。

31.软件需求分析的任务不应包括(17)。

进行需求分析可使用多种工具,但(18)是不适用的。

在需求分析中,开发人员要从用户那里解决的最重要的问题是(19)。

需求规格说明书的内容不应包括(20),该文档在软件开发中具有重要作用,但其作用不应包括(21)。

A.问题分解
B.可靠性与安全性要求
C.结构化程序设计
D.确定逻辑模型
正确答案:C
32.
A.数据流图(DFD)
B.判定表
C.PAD图
D.数据词典
正确答案:C
33.
A.要让软件做什么
B.要给该软件提供哪些信息
C.要求软件工作效率怎样
D.要让软件具有何种结构
正确答案:A
34.
A.对重要功能的描述
B.对算法的详细过程描述
C.对数据的要求
D.软件的性能
正确答案:B
35.
A.软件设计的依据
B.用户和开发人员对软件要做什么的共同理解
C.软件验收的依据
D.软件可行性分析的依据
正确答案:D
解析:软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口,定义软件的其他有效性需求。

也就是说,软件需求分析的任务是要解决“软件做什么”的问题,而不是解决“如何做”的问题,因此不包括程序设计。

在需求分析中,可使用的工具主要有数据流图(DFD)、数据词典(DD)、结构化语言、判定表及判定树等。

PAD图(问题分析图)主要用在软件设计过程中。

软件需求规格说明(SRS)是需求分析阶段的主要输出结果,代表用户和开发人员对软件系统的共同理解,是软件项目后期开发和维护的基础。

SRS需要把用户对软件的功能需求和非功能需求进行详细记录和准确描述,但不包括耐算法的详细过程描述。

相关文档
最新文档