信息系统项目管理师考试试题分类精解与题型练习(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-09 05:13:47

点击下载

作者:张友生,陈志风

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

信息系统项目管理师考试试题分类精解与题型练习

信息系统项目管理师考试试题分类精解与题型练习试读:

前言

随着IT项目规模越来越大,复杂程度越来越高,项目失败的概率也随之增长。因此,项目管理工作日益受到重视。从2005年上半年开始,全国计算机技术与软件专业技术资格(水平)考试开设了信息系统项目管理师的考试,这将为培养项目管理人才,推进国家信息化建设和软件产业化发展起重要的作用。同时,国家人事部也规定,凡是通过信息系统项目管理师考试者,即可认定为计算机技术与软件专业高级工程师职称,由用人单位直接聘任,享受高级工程师待遇。

正因为有行业的需求,有好的政策引导,参加信息系统项目管理师考试的人员日渐增多。然而,信息系统项目管理师考试是一个难度很大的考试,平均通过率很低。主要原因是考试范围十分广泛,除涉及计算机专业和项目管理的每门课程外,还有经济、外语、系统工程、信息化和知识产权等知识领域的课程,且注重考查新技术和新方法的应用。考试不但注重广度,而且还有一定深度。不但要求考生具有扎实的理论基础知识,还要具备丰富的实践经验。《信息系统项目管理师考试试题分类精解与题型练习》是为全国计算机技术与软件专业技术资格(水平)考试信息系统项目管理师级别而编写的考试用书,全书分析了历年信息系统项目管理师考试的所有考题,对试题进行详细的分析与解答,对有关重点和难点进行了深入的分析,并针对考试要点,在每一章都组织了大量的练习题,帮助考生有针对性地复习和巩固知识,并对所有习题都进行了详尽的分析和解答。对论文试题,给出了试题解答方法,以及论文的写作知识、常见问题及解决办法。由于编写组均为软考第一线的辅导专家,负责和参与了考试大纲的制定、历年的软考辅导、教程编写、软考阅卷等方面的工作,因此,本书凝聚了软考专家的知识、经验、心得和体会,集成了他们的精力和心血。

古人云:“温故而知新”,又云:“知己知彼,百战不殆”。对考生来说,阅读本书就是一个“温故”的过程,必定会从中获取到新知识。同时,通过阅读本书,考生还可以清晰地把握命题思路,掌握知识点在试题中的变化,以便在信息系统项目管理师考试中洞察先机,提高通过的概率。

本书由希赛IT教育研发中心组编,由张友生和陈志风主编。

全书共分为24章。第2章和第19章由刘智成编写,第3章和第5章由施游编写,第7章由谢顺编写,第8章和第10章由朱小平编写,第12章由刘毅编写,第13章由黄少年编写,第14章由罗永红编写,第15章、第16章和第24章由陈志风编写,第17章由李成编写,第20章和第21章由王勇编写,其余章节由张友生编写。

在本书出版之际,要特别感谢全国计算机技术与软件专业技术资格(水平)考试办公室的命题专家们,本书引用了往届考试试题。同时,本书在编写过程中参考了许多相关的资料和书籍,在此恕不一一列举(详见参考文献列表),编者在此对这些参考文献的作者表示真诚的感谢!

由于编者水平有限,加上本书涉及的知识点多,书中难免有不妥和错误之处,恳请专家和读者不吝指教,我们将深为感激。

有关本书的反馈意见,读者可在希赛网(http://www.csai.cn)社区中的“CSAI辅导教程”栏目与作者交流。

编 者

2006年4月

第1章 信息系统基础

根据考试大纲,本章要求考生掌握以下几个方面的知识点。(1)信息系统:信息系统概念、信息系统的功能、信息系统的类型和信息系统的发展。(2)信息系统建设:信息系统建设的复杂性、信息系统的生命周期(各阶段目标及其主要工作内容)、信息系统建设的原则和信息系统开发方法。(3)软件工程知识:软件需求分析与定义、软件设计、测试与维护、软件复用、软件质量保证及质量评价、软件配置管理、软件开发环境和软件过程管理。(4)软件构件技术知识:构件及其在信息系统项目中的重要性和常用构件标准(COM/DCOM/COM+、CORBA和EJB)。(5)软件体系结构:软件体系结构定义、典型体系结构、软件体系结构设计方法、软件体系结构分析与评估和软件中间件。(6)面向对象系统分析与设计:面向对象的基本概念、统一建模语言UML、可视化建模、面向对象系统分析和面向对象系统设计。(7)典型应用集成技术:Web Service技术、J2EE架构、.NET架构和工作流技术。(8)软件工具:建模工具、软件开发工具、软件测试工具和项目管理工具。

1.1 试题精解

1.1.1 试题1(2005年5月试题1)

在关于用例(Use Case)的描述中,错误的是(1)。(1)A.用例将系统的功能范围分解成许多小的系统功能陈述

B.一个用例代表了系统的一个单一的目标

C.用例是一个行为上相关的步骤序列

D.用例描述了系统与用户的交互试题1分析

在软件开发中,用户并不想了解系统的内部结构和设计,他们所关心的是系统所能提供的功能和服务,也就是被开发出来的系统将是如何被使用的,这就是用例方法的基本思想。

用例模型主要由以下模型元素构成。(1)执行者(Actor)。

执行者是指存在于被定义系统外部并与该系统发生交互的人或其他系统,他们代表的是系统的使用者或使用环境。(2)用例(Use Case)。

用例用于表示系统所提供的服务,它定义了系统是如何被执行者所使用的,它描述的是执行者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。用例是一个行为上相关的步骤序列,既可以是自动的也可以是手动的,其目的是完成一个单一的业务任务。用例实例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果(一个目标)。一个用例定义一组用例实例。它确定了一个和系统参与者进行交互、并可由系统执行的动作序列。(3)通讯关联(Communication Association)。

通讯关联用于表示执行者和用例之间的对应关系,它表示执行者使用了系统中的哪些服务(用例),或者说系统所提供的服务(用例)是被哪些执行者所使用的。

用例模型描述的是外部执行者所理解的系统功能,主要用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。

在本题中,A显然是错误的,但D的描述也不够准确。所以我们认为应该选择A,但国家软考办给出的标准答案是D。试题1答案(1)A

1.1.2 试题2(2005年5月试题2~3)

在用例建模的过程中,若几个用例执行了同样的功能步骤,这时可以把这些公共步骤提取成独立的用例,这种用例称为 (2)。在UML的用例图上,将用例之间的这种关系标记为 (3)。(2)A.扩展用例 B.抽象用例 C.公共用例 D.参与用例(3)A.association B.extends C.uses D.inheritances试题2分析

两个用例之间的关系可以概括为两种情况。一种是用于重用的包含关系,用构造型include或use表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。(1)包含关系。当可以从两个或两个以上的原始用例中提取公共行为时,或者发现能够使用一个构件来实现某一个用例的部分功能时,应该使用包含关系来表示它们。例如,在企业人力资源管理系统中,不管是修改职员资料,还是浏览职员资料,或者删除职员资料,都需要先找到职员资料才能进行,因此“找到职员资料”这个用例是其他三个用例的公共行为,用包含关系表示,如图1-1所示。图1-1 包含关系示例图(2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情。可以将这个用例分为一个主用例和一个或多个辅用例,这样描述可能更加清晰。例如,在图书借阅管理系统中,由于在读者归还图书时还必须缴纳图书借阅费,因此,“还书”这个用例实际上混合了“还书”和“交款”两个场景,可以用扩展关系来表示,如图1-2所示。图1-2 扩展关系示例图试题2答案(2)B(3)C

1.1.3 试题3(2005年5月试题4~6)

UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中 (4) 是面向对象系统规模中最常用的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择 (5);当需要说明体系结构的静态实施视图时,应该选择 (6)。(4)A.构件图 B.类图 C.对象图 D.部署图(5)A.构件图 B.协作图 C.状态图 D.部署图(6)A.协作图 B.对象图 C.活动图 D.部署图试题3分析

UML中包括9种不同的图,分为表示系统静态结构的静态模型(包括类图、构件图、部署图),以及表示系统动态结构的动态模型(包括对象图、用例图、序列图、协作图、状态图、活动图)。(1)用例图。用例图(Use-Case Diagram)用于显示若干角色(Actor),以及这些角色与系统提供的用例之间的连接关系。用例是系统提供的功能的描述,通常一个实际的用例采用普通的文字描述,作为用例符号的文档性质。用例图仅仅从角色使用系统的角度描述系统中的信息,也就是站在系统外部查看系统功能,它并不能描述系统内部对该功能的具体操作方式。(2)类图(Class Diagram)。用来表示系统中的类和类与类之间的关系,它是对系统静态结构的描述。类图不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图中每个类由三部分组成,分别是类名、类的属性和操作。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。一个典型的系统中通常有若干个类图,一个类图不一定包含系统中所有的类,一个类还可以加到几个类图中。(3)对象图(Object Diagram)。是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。(4)序列图(Sequence Diagram,顺序图)。用来反映若干个对象之间的动态协作关系,也就是随着时间的推移,对象之间是如何交互的。序列图强调对象之间消息发送的顺序,说明对象之间的交互过程,以及系统执行过程中,在某一具体位置将会有什么事件发生。(5)协作图(Collaboration Diagram)。描述对象间的协作关系,协作图与序列图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象及它们之间的关系。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图。这两种图合称为交互图。(6)状态图(State Diagram)。描述类的对象所有可能的状态,以及事件发生时状态的转移条件。通常,状态图是对类图的补充。事件可以是给它发送消息的另一个对象或者某个任务执行完毕。状态变化称做转移(Transition),一个转移可以有一个与之相连的动作(Action),这个动作指明了状态转移时应该做些什么。在实用上并不需要为所有的类画状态图,仅为那些有多个状态,其行为受外界环境的影响并且发生改变的类画状态图。(7)活动图(Activity Diagram)。描述满足用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。活动图由各种动作状态构成,每个动作状态包含可执行动作的规范说明。当某个动作执行完毕,该动作的状态就会随着改变。这样,动作状态的控制就从一个状态流向另一个与之相连的状态。活动图中还可以显示决策、条件、动作的并行执行,以及消息的规范说明等内容。(8)构件图(Component Diagram,组件图)。描述代码构件的物理结构及各构件之间的依赖关系。一个构件可能是一个资源代码构件、一个二进制构件或一个可执行构件。它包含逻辑类或实现类的有关信息。构件图有助于分析和理解构件之间的相互影响程度。(9)部署图(Deployment Diagram,配置图)。定义系统中软硬件的物理体系结构。部署图可以显示实际的计算机和设备(用节点表示),以及它们之间的连接关系,也可显示连接的类型及构件之间的依赖性。在节点内部,放置可执行构件和对象以显示节点与可执行软件单元的对应关系。

在面向对象分析过程中,用概念模型来详细描述系统的问题域,用类图来表示概念模型。“问题域”是指一个包含现实世界事物与概念的领域,这些事物和概念与所设计的系统要解决的问题有关。而建立概念模型,又称为问题域建模、域建模,也就是找到代表那些事物与概念的“对象”。

状态图适于描述跨用例的单个对象行为,但不适于描述包含若干协作对象的行为;交互图适于描述单个用例中若干对象的行为,即适于描述一组对象的整体行为。试题3答案(4)B(5)A(6)D

1.1.4 试题4(2005年5月试题7)

关于系统总线,以下叙述正确的是 (7)。(7)A.计算机内多种设备共享的数字信号传输通路

B.广泛用于PC机,是与调制解调器或外围设备进行串行传输的标准

C.将数字信号转换成模拟信号,将模拟信号转换成数字信号的设备

D.I/O设备与主存之间传输数据的机制,独立于CPU试题4分析

总线是计算机中各部件相连的通信线,通过总线,各部件之间可以相互通信,而不是每两个部件之间相互直连,减少了计算机体系结构的设计成本,有利于新模块的扩展,如图1-3所示。图1-3 总线图

从中央处理器到外设,总线可以分为以下四类。(1)中央处理器内部总线。

这是内部各部件之间的信息传送线,寄存器与寄存器之间、各寄存器与运算器之间的信息传送线。(2)部件内总线。

一块插卡的内部总线,又称片级总线,像显卡、多功能卡等插卡都使用了部件内总线实现本卡上的各种芯片的互连。(3)系统总线。

系统总线是计算机系统内各功能部件(中央处理器、存储器、外设等)之间相互连接的总线。从位置上来说,一般位于计算机系统的底板上。它从功能上说,可以分为以下几种。

● 数据总线:一般是由三态门控制的双向数据信道,中央处理器通过数据总线和主存、外设来交换数据的。

● 地址总线:常常由三态门控制的单向数据信道,由中央处理器“点名”取数的位置。

● 控制总线:用来传递控制信号,如读/写信号、中断请求、复位等信号。(4)外总线。

它是计算机系统之间,或者是计算机和其他设备通信的总线。

最早的是PC/XT电脑采用的系统总线,它基于8位的8088处理器,被称为PC总线或者PC/XT总线。1984年,出现了基于16位Intel 80286处理器的PC/AT电脑,系统总线也相应地扩展为16位,并被称为PC/AT总线。以上两种总线规范为基础的ISA(工业标准架构:Industry Standard Architecture)总线,方便了开发与个人计算机兼容的外围设备ISA是8/16位的系统总线,最大传输速率为8MB/s,允许多个CPU共享系统资源。由于兼容性好,它在20世纪80年代得到了广泛采用,其缺点是传输速率过低、CPU占用率高、占用硬件中断资源等。

当出现了32位外部总线的386DX处理器之后,ISA的宽度就已经成为严重的瓶颈,并影响到处理器性能的发挥。新的EISA(Extended ISA,扩展ISA)总线是为适应32位中央处理器而制定的。EISA总线的工作频率仍旧是8MHz,并且与8/16位的ISA总线完全兼容,带宽提高了一倍,达到了32MB/s。

为了解决ISA和EISA速度慢的问题,出现了32位的PCI(周边组件互连)总线。最初PCI总线工作在33MHz频率之下,传输带宽达到了133MB/s(33MHz×32位/8),后来又提出了64位的PCI总线,并把PCI总线的频率提升到66~100MHz,甚至更高。PCI不像ISA总线那样把地址寻址和数据读写控制信号都交给微处理器来处理,而是独立于处理器,采用了独特的中间缓冲器设计,可将显示卡、声卡、网卡、硬盘控制器等高速的外围设备直接挂在CPU总线上,打破了瓶颈,使得CPU的性能得到充分的发挥。PCI总线还具有能自动识别外设,与处理器和存储器子系统完全并行操作的能力,具有隐含的中央仲裁系统,采用多路复用方式(地址线和数据线)减少了引脚数,支持 64位寻址,完全的多总线主控能力,提供地址和数据的奇偶校验等特点。

PCI的缺点是存在中断共享冲突,只能支持有限数量设备等问题,可支持10台外设。

后来3D显示卡的迅猛发展,让PCI总线吃紧,就出现了作为PCI总线的补充——AGP总线。AGP(加速图形接口,Accelerated Graphics Port)接口,为显示卡专用,工作频率为66MHz,是PCI的两倍,带宽相应地增加到266MB/s。后来的AGP 2X,AGP4X及AGP8X,传输速度达到了2.1GB/s。

三大总线的比较如表1-1所示。表1-1 三大总线对比试题4答案(7)A

1.1.5 试题5(2005年5月试题18~19)

以下关于信息库(Repository)的叙述中,最恰当的是 (18);(19) 不是信息库所包含的内容。(18)A.存储一个或多个信息系统或项目的所有文档、知识和产品的地方

B.存储支持信息系统开发的软件构件的地方

C.存储软件维护过程中需要的各种信息的地方

D.存储用于进行逆向工程的源码分析工具及其分析结果的地方(19)A.网络目录 B.CASE工具 C.外部网接口 D.打印的文档试题5分析

在信息工程工具中,一般都具有存储开发信息和进行协调控制功能的计算机化的信息库。信息库中积累了信息系统的规划、分析、设计、构成各个阶段的相关开发信息,以及系统维护的有关信息,并提供综合信息的工具,是信息工程工具的核心部分。James Martin在其著作中曾将信息库比喻为百科全书。

信息库是针对软件开发或信息系统开发中的大量信息管理工作提出来的。是一个包罗万象的,随着项目进展而不断修改与补充的数据集合。

信息库的特点是数据结构是相当复杂的,而且会不断变化,使保持一致性的任务变得十分复杂和艰巨。

应当存入信息库的内容如下:(1)软件的工作环境、功能需求、性能要求,有关的各种信息来源的状况、用户的状况、硬件环境,以及在该领域中的作用等外部信息。(2)需求分析阶段中收集的有关用户的各种信息,包括用户本身提供的和在调查研究中得到的信息。(3)逻辑设计阶段的各种调查材料和由此生成的各种文档,包括调查记录、原始数据、报表及单证的样本、绘制的各种图,以及最后生成的系统说明书。(4)设计阶段的各种资料,包括所有的数据库与数据文件格式、数据字典、程序模块的要求、总体结构、各种接口及参数的传递方式,以及最后形成的设计方案。(5)编程阶段的所有成果,包括程序代码、框图、变量说明、测试情况(输入数据及输出结果)、验收报告、使用说明等。(6)运行及使用情况的详细记录,包括每次使用的时间、状态、问题,特别是有关错误及故障的记录情况。(7)维护及修改的情况,包括修改的目标、责任人、过程、时间,修改前后的代码、文档,以及修改后的结果、原系统的备份。(8)项目管理的有关信息,包括人员变更、资金投入、进度计划及实施情况,还包括版本信息,即各次版本的备份、每个版本的推出日期,以及与以前版本相比的变更说明等。

由于信息库结构的特殊性,只有一般的数据库功能是不够用的。一方面,许多信息(如原始单证、报表样张等)计算机中只能有目录,这就需要把计算机内外的信息存储统一起来管理。另一方面,除了规定复杂的内部结构以存放信息外,还需要认真设计有关的界面,以便使用。因为信息库要面对分析人员、程序员和维护人员(一般不直接面对用户)等不同的对象,不同的使用人员有不同的权限和使用目标。因此,信息库的特殊性决定了其功能的特色。试题5答案(18)A(19)C

1.1.6 试题6(2005年5月试题21~22)

下列要素中,不属于DFD的是(21)。当使用DFD对一个工资系统进行建模时,(22) 可以被认定为外部实体。(21)A.加工 B.数据流 C.数据存储 D.联系(22)A.接收工资单的银行 B.工资系统源代码程序

C.工资单 D.工资数据库的维护试题6分析

结构化分析(Srtuctured Analasis,SA)方法最初由Douglas Ross提出,由DeMarco推广,由Ward和Mellor,以及后来的Hatley和Pirbhai扩充,形成了今天的结构化分析方法的框架,在20世纪90年代得到了广泛的应用。

SA是一种面向数据流的软件分析方法,适用于开发数据处理类型软件的需求分析。数据流图是需求分析阶段使用的一种主要工具,它以图形的方式表达数据处理系统中信息的变换和传递过程。与流图配合使用的是数据词典,它对数据流图中出现的所有数据元素给出逻辑定义。有了数据词典,使得数据流图上的数据流、加工和文件得到确切的解释。

通常在数据流图中,可能出现下面四种基本符号,数据流、加工、数据存储、外部实体(数据源及数据终点)。数据流是具有名字和流向的数据,在数据流图中用标有名字的箭头表示。加工是对数据流的变换,一般用圆圈表示。数据存储是可访问的存储信息,一般用直线段表示。外部实体位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分,它们分别表明数据处理过程的数据来源及数据去向,用标有名字的方框表示。图1-4是一个典型的数据流图示例。图1-4 办理取款手续的数据流图

为了表达数据处理过程中的数据加工情况,用一个数据流图是不够的。稍为复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工。这样的数据流图看起来很不清楚。层次结构的数据流图能很好地解决这一问题。这种数据流图按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和轻松地理解整个系统。

图1-5给出分层数据流图的示例。数据处理S包括三个子系统1、2、3。顶层下面的第一层数据流图为DFD/L1。第二层数据流图DFD/L2.1、DFD/L2.2及DFD/L2.3分别是子系统1、2和3的细化。对任何一层数据流图来说,我们称它的上层图为父图,它下一层的图则称为子图。图1-5 分层数据流图

画数据流图的基本步骤概括来说就是“自顶向下逐层分解”。检查和修改的原则为:

① 数据流图上所有图形符号只限于前述四种基本图形元素。

② 顶层数据流图必须包括前述四种基本元素,缺一不可。

③ 顶层数据流图上的数据流必须封闭在外部实体之间。

④ 每个加工至少有一个输入数据流和一个输出数据流。

⑤ 在数据流图中,需按层给加工框编号。编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。

⑥ 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致,即父图与子图的平衡。

⑦ 可以在数据流图中加入物质流,帮助用户理解数据流图。

⑧ 图上每个元素都必须有名字。

⑨ 数据流图中不可夹带控制流。试题6答案(21)D(22)A

1.1.7 试题7(2005年5月试题23)

关于白盒测试,以下叙述正确的是 (23)。(23)A.根据程序的内部结构进行测试

B.从顶部开始往下逐个模块地加入测试

C.从底部开始往上逐个模块地加入测试

D.按照程序规格说明书对程序的功能进行测试,不考虑其内部结构试题7分析

软件测试的工作量约占软件开发总工作量的40%以上,其目的是尽可能多地发现软件产品(主要是指程序)中的错误和缺陷,并改正软件中的错误。测试的过程大致是:(1)设计测试用数据(称为测试用例);(2)执行程序;(3)分析结果找出错误并改正。

这个过程可能会有反复。测试用例的设计是测试的重要环节,设计测试用例的目标是选用少量高效的测试用例尽可能多地发现软件中的问题。

测试的关键是测试用例的设计,设计方法可分成两类,分别是白盒测试和黑盒测试。(1)白盒测试:把程序看成是装在一只透明的盒子里,测试者完全了解程序的结构和处理过程。白盒测试根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作,白盒测试的具体方法主要是逻辑覆盖,由于覆盖的详尽程度不同,逻辑覆盖由弱到强又分为语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖等。(2)黑盒测试:把程序看成是装在一只不透明的盒子里,测试者完全不了解(或不考虑)程序的结构和处理过程。黑盒测试根据规格说明书规定的功能来设计测试用例,检查程序的功能是否符合规格说明的要求。黑盒测试方法具体有等价类划分、边界值分析、错误推测和因果图等,其中最常用的是等价类划分和边界值分析。

软件测试的主要步骤有单元测试(模块测试)、集成测试(组装测试)、系统测试和确认测试(验收测试)。(1)单元测试:通常在编码阶段进行,主要用来发现编码和详细设计中产生的错误,一般采用白盒测试。(2)集成测试:对由各模块组装而成的模块进行测试,主要检查模块间的接口和通信。集成测试主要用来发现设计阶段产生的错误,通常采用黑盒测试。(3)系统测试:把软件放在实际的硬件和网络环境中进行测试,主要测试软件的非功能需求和质量属性是否得到满足。系统测试通常采用黑盒测试。(4)确认测试:检查软件的功能、性能和其他特征是否与用户的需求一致,它是以需求规格说明书作为依据的测试,通常采用黑盒测试。

在确认测试时,如果一个软件是为某个客户定制的,那么由客户实施验收测试,以便确认该软件是他所需要的。但是,对于那些作为产品被众多客户使用的软件,就不可能为每个客户做验收测试。大多数软件生产商使用一种α测试和β测试的过程。(1)α测试:在开发者的现场由客户来实施的,被测试的软件是在开发者从用户的角度进行常规设置的环境下运行的。(2)β测试:在一个或多个客户的现场由该软件的最终用户实施的。与α测试不同的是,进行β测试时开发者通常是不在场的。

从使用的工具来看,软件测试的方法又可分为静态测试、动态测试。(1)静态测试:指人工评审软件文档或程序,借以发现其中的错误,由于评审的文档或程序不必运行,所以称为静态测试。人工评审的手续虽然比较简单,但事实证明这是一个相当有效的检验手段。由于评审人员的能力有限,静态测试显然不可能发现所有的错误。(2)动态测试:指通常的上机测试,这种方法是使程序有控制地运行,并从多种角度观察程序的行为,以发现其中的错误。

在软件维护阶段,当修改软件后,除了对修改部分的软件进行常规的测试外,还应对软件的其他部分进行回归测试,所谓回归测试是指全部或部分地重复已做过的测试,它主要检查软件的修改是否在软件的未修改部分引入了新的错误。

模块测试、集成测试一般以软件系统开发人员为主来测试。系统测试和验收测试,一般不能以开发人员为主来测试。这是因为系统测试是整体性的测试,而测试的根本任务是做“否定性”工作,为减少或避免开发人员的主观影响,使系统测试具有更大的客观性,一般应由开发该系统的部门外人员来承担。试题7答案(23)A

1.1.8 试题8(2005年5月试题24~25)

软件的维护并不只是修正错误。软件测试不可能揭露旧系统所有潜伏的错误,所以这些程序在使用过程中还可能发生错误,诊断和更正这些错误的过程称为(24);为了改进软件未来的可能维护性或可靠性,或者为了给未来的改进提供更好的基础而对软件进行修改,这类活动称为 (25)。(24)A.完善性维护 B.适应性维护 C.预防性维护 D.改正性维护(25)A.完善性维护 B.适应性维护 C.预防性维护 D.改正性维护试题8分析

软件经过测试,交付给用户后,在使用和运行过程中可能在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。软件维护占整个软件生命周期的60%~80%,维护的类型主要有以下3种。(1)改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程叫做改正性维护。(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程叫做适应性维护。(3)完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能,增强软件性能,改进加工效率,以及提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。

除了以上三类维护之外,还有一类维护活动,叫做预防性维护。这是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。

以上各种维护过程占整个软件维护工作量比例如图1-6所示。图1-6 各种维护所占的比例试题8答案(24)D(25)C

1.1.9 试题9(2005年11月试题1)

为了使构件系统更切合实际、更有效地被复用,构件应当具备 (1),以提高其通用性。(1)A.可继承性 B.可变性 C.可封装性 D.可伸缩性试题9分析

本题主要考查考生对构件概念及应用的基本理解。目前,构件技术已逐步成熟,且大量地用在软件开发中。

近年来人们认识到,要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。这包括技术与管理两方面的问题:在技术上,应该采用基于重用(英文单词为“Reuse”,有些文献翻译为“复用”)的软件生产技术;在管理上,应该采用多维的工程管理模式。

要真正解决软件危机,实现软件的工业化生产是惟一可行的途径。分析传统工业及计算机硬件产业成功的模式可以发现,这些工业的发展模式均是符合标准的零部件/构件(英文单词为“Component”,有些文献翻译为“构件”或“部件”)生产,以及基于标准构件的产品生产,其中,构件是核心和基础,重用是必需的手段。实践表明,这种模式是产业工程化、工业化的成功之路,也将是软件产业发展的必经之路。

软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。通常,把这种可重用的元素称做软构件(Software Component,通常简称为构件),可重用的软件元素越大,我们就说重用的粒度越大。

使用软件重用技术可以减少软件开发活动中大量的重复性工作,这样就能提高软件生产率,降低开发成本,缩短开发周期。同时,由于软构件大都经过严格的质量认证,并在实际运行环境中得到检验,因此,重用软构件有助于改善软件质量。此外,大量使用软构件,软件的灵活性和标准化程度也能得到提高。

一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。简单地说,构件是具有一定的功能,能够独立工作或能同其他构件装配起来协调工作的程序体,构件的使用同它的开发、生产无关。从抽象程度来看,面向对象技术已达到了类级重用(代码重用),它以类为封装的单位。这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。构件将抽象的程度提到一个更高的层次,它是对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口对外提供服务。为了使构件更切合实际、更有效地被复用,构件应当具备可变性和灵活性,以提高其通用性。

构件模型是对构件本质特征的抽象描述。目前,国际上已经形成了许多构件模型,这些模型的目标和作用各不相同,其中部分模型属于参考模型(如3C模型),部分模型属于描述模型(如,RESOLVE模型和REBOOT模型)。还有一部分模型属于实现模型。近年来,已形成三个主要流派,分别是OMG(Object Management Group,对象管理集团)的CORBA(Common Object Request Broker Architecture,通用对象请求代理结构)、Sun的EJB(Enterprise Java Bean)和Microsoft的COM/DCOM/COM+(Distributed Component Object Model,分布式构件对象模型)。这些实现模型将构件的接口与实现进行了有效的分离,提供了构件交互的能力,从而增加了重用的机会,并适应了目前网络环境下大型软件系统的需要。

构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提供依据。从管理角度出发,也需要对构件进行描述,例如,实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息,它们与构件模型共同组成了对构件的完整描述。

为了给使用者在查询构件时提供方便,同时也为了更好地重用构件,我们必须对收集和开发的构件进行分类并置于构件库的适当位置。由于构件的分类方法及相应的库结构对构件的检索和理解有极为深刻的影响。因此,构件库的组织应方便构件的存储和检索。

目前,已有的构件分类方法可以归纳为三大类,分别是关键字分类法、刻面分类法和超文本组织方法。(1)关键字分类法。

关键字分类法(Keyword Classification)是一种最简单的构件库组织方法,其基本思想是:根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。每个概念用一个描述性的关键字表示。不可分解的原子级关键字包含隶属于它的某些构件。图1-7给出了构件库的关键字分类结构示例,它支持图形用户界面设计。图1-7 关键字分类结构示例

当加入构件时,库管理员必须对构件的功能或行为进行分析,在浏览上述关键字分类结构的同时将构件置于最合适的原子级关键字之下。如果无法找到构件的属主关键字,可以扩充现有的关键字分类结构,引进新的关键字。但库管理员必须保证,新关键字有相同的领域分析结果作为支持。例如,如果我们需要增加一个“图形文字混合窗口”构件时,则只需把该构件放到属主关键字“窗口”的下一级。(2)刻面分类法。

刻面分类法(Faceted Classification)的主要思想来源于图书馆学,这种分类方法是Prieto-Diaz和Freeman在1987年提出来的。在刻面分类机制中,定义若干用于刻画构件特征的“面”(Facet),每个面包含若干概念,这些概念表述构件在面上的特征。刻面可以描述构件执行的功能、被操作的数据、构件应用的语境或任意其他特征。描述构件的刻面的集合称为刻面描述符(Facet Descriptor),通常,刻面描述被限定不超过7或8个刻面。当描述符中出现空的特征值时,表示该构件没有相应的面。

作为一个简单的在构件分类中使用刻面的例子,考虑使用下列构件描述符的模式:

{function,object type,system type}

刻面描述符中的每个刻面可含有一个或多个值,这些值一般是描述性关键词,例如,如果功能是某构件的刻面,赋给此刻面的典型值可能是:

function=(copy,from)or(copy,replace,all)

多个刻面值的使用使得原函数copy能够被更完全地细化。

关键词(值)被赋给重用库中的每个构件的刻面集,当软件工程师在设计中希望查询构件库以发现可能的构件时,规定一列值,然后到库中寻找匹配项。可使用自动工具以完成同义词词典功能,这使得查找不仅包括软件工程师给出的关键词,还包括这些关键词的技术同义词。

关键字分类法和刻面分类法都是以数据库系统作为实现背景。尽管关系数据库可供选用,但面向对象数据库更适于实现构件库,因为其中的复合对象、多重继承等机制与表格相比更适合描述构件及其相互关系。(3)超文本组织方法。

超文本组织方法(Hypertext Classification)与基于数据库系统的构件库组织方法不同,它基于全文检索(Full Text Search)技术。其主要思想是:所有构件必须辅以详尽的功能或行为(Performance)说明文档;说明中出现的重要概念或构件以网状链接方式相互连接;检索者在阅读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或构件的文档;全文检索系统将用户给出的关键字与说明文档中的文字进行匹配,实现构件的浏览式检索。

超文本是一种非线性的网状信息组织方法,它以节点为基本单位,链作为节点之间的联想式关联,如图1-8所示。图1-8 超文本结构示意图

一般地,节点是一个信息块。对可重用构件而言,节点可以是域概念、功能或行为名称、构件名称等。在图形用户界面上,节点可以是字符串,也可以是图像、声音和动画等。超文本组织方法为构造构件和重用构件提供了友好、直观的多媒体方式。由于网状结构比较自由、松散,因此,超文本方法比前两种方法更易于修改构件库的结构。

例如,Windows环境下的联机帮助系统就是一种典型的超文本系统。为构造构件的文档,首先要根据领域分析的结果在说明文档中标识超文本节点并在相关文档中建立链接关系,然后用类似于联机帮助系统编译器的工具对构件的说明文档进行编译,最后用相应的工具(例如:IE浏览器)运行编译后的目标即可。

构件开发的目的是重用,为了让构件在新的软件项目中发挥作用,库的使用者必须完成以下工作:检索与提取构件,理解与评价构件、修改构件,最后将构件组装到新的软件产品中。其中构件组装是指将库中的构件经适当修改后相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。构件组装技术大致可分为基于功能的组装技术、基于数据的组装技术和面向对象的组装技术。试题9答案(1)B

1.1.10 试题10(2005年11月试题2)

当(2)时,用例是捕获系统需求最好的选择。(2)A.系统具有很少的用户 B.系统具有很少的接口

C.系统算法复杂,功能单一 D.系统有很多参与者试题10分析

根据1.1.1节的分析,我们知道,用例描述的是系统的执行者(参与者)与系统的交互,同时也是开发人员与用户进行交流的工具,可用来很好地定义系统的边界。所以,当执行者较多的时候,用例是捕获系统需求最好的选择。试题10答案(2)D

1.1.11 试题11(2005年11月试题3)

现有两个用例UC1和UC2,其中UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置,则UC1和UC2间的关系是“(3)”。(3)A.include B.extend C.generalize D.call试题11分析

根据1.1.2节的分析,用例之间的关系只有包含关系(Include或Use)和扩展关系(Extend)两种,因此C和D显然是错误的。

根据试题的描述,“UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置”,以及在1.1.2节给出的包含关系和扩展关系的定义,可以知道,UC1和UC2之间的关系是包含关系。试题11答案(3)A

1.1.12 试题12(2005年11月试题4)

下列关于面向对象的分析与设计的描述,正确的是 (4)。(4)A.面向对象设计描述软件要做什么

B.面向对象分析不需要考虑技术和实现层面的细节

C.面向对象分析的输入是面向对象设计的结果

D.面向对象设计的结果是简单的分析模型试题12分析

面向对象(Object-Oriented,OO)方法形成最初是从面向对象程序设计语言开始的,第一个OO语言是20世纪60年代末挪威奥斯陆大学和挪威计算中心共同研制的Simula。到20世纪80年代中期,OO语言达数十种之多,面向对象分析(OOA)的研究开始发展,进而延伸到面向对象设计(OOD)。20世纪90年代以后,OOA/OOD方法逐渐走向实用,形成OO开发方法。

一些专家按照OO思想,对系统分析和设计工作的步骤、方法、图形工具等进行了详细的研究,提出了许多不同的实施方案。比较著名和流行的有Coad/Yourdon方法、Booch方法、Rumbaugh的OMT方法和Jacobson方法。

OOA是软件需求分析的一种方法,而需求分析所关心的是软件要做什么,不需要考虑技术和实现层面的细节问题。OOA的结果是分析模型及说明文档,同时OOA的结果是OOD的输入。试题12答案(4)B

1.1.13 试题13(2005年11月试题5)

协作图主要描述对象间的交互与连接,它 (5)。(5)A.能够表示消息的顺序和嵌套关系

B.能够表示消息的顺序关系,但不能表示消息的嵌套关系

C.能够表示消息的嵌套关系,但不能表示消息的顺序关系

D.既不能表示消息的顺序关系,也不能表示消息的嵌套关系试题13分析

协作图描述对象间的协作关系,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象,以及它们之间的关系,能够通过消息编号来表示消息的顺序和嵌套关系。在UML中,协作图画成对象图的形式,图中的消息箭头表示对象间的消息流。试题13答案(5)A

1.1.14 试题14(2005年11月试题6)

下列关于UML叙述正确的是 (6)。(6)A.UML是一种语言,语言的使用者不能对其扩展

B.UML仅是一组图形的集合

C.UML仅适用于系统的分析与设计阶段

D.UML是独立于软件开发过程的试题14分析

UML是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。

UML是独立于软件开发过程的,它适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域,以及各种开发工具,UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型,它允许用户对其进行扩展。它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是为支持大部分现存的面向对象开发过程而设计的。

UML不是一种可视化的编程语言,但是UML描述的模型可与各种编程语言直接相连,即可把用UML描述的模型映射成编程语言。试题14答案(6)D

1.1.15 试题15(2005年11月试题18)

建立企业信息系统应该遵循一定的原则,以下原则不适当的是 (18)。(18)A.必须支持企业的战略目标 B.应该自上而下地规划和实现

C.应该支持企业各个管理层的需求 D.应该向整个企业提供一致的信息试题15分析

建立企业信息系统的基本原则包括:(1)一个信息系统必须支持企业的战略目标,BSP本身就是一个将企业的战略规划转化为信息系统的战略的过程。(2)一个信息系统的战略应当表达出企业中各管理层次的需求。(3)一个信息系统应该向整个企业提供一致的信息,应该按照自顶向下的方法进行数据的分析。(4)一个信息系统的战略规划,应该是自上而下地规划,自下而上地分步实现,即应当由总体信息系统结构中的子系统开始实现。试题15答案(18)B

1.1.16 试题16(2005年11月试题19)

新项目与过去成功开发过的一个项目类似,但规模更大,这时应该使用 (19) 进行项目开发设计。(19)A.原型法 B.变换模型 C.瀑布模型 D.螺旋模型试题16分析

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

瀑布模型给出了信息系统生存周期各阶段的固定顺序,上一阶段完成后才能进入下一阶段。图1-9 软件生存周期的瀑布模型

变换模型是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品。螺旋模型将瀑布模型和变换模型相结合,它综合了两者的优点,并增加了风险分析。它以原型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制订计划、风险分析、实施工程、客户评价等活动,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的系统,如图1-10所示。图1-10 螺旋模型

喷泉模型对软件复用和生存周期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。“喷泉”一词本身体现了迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演化的系统。所谓无间隙是指在开发活动与分析、设计和编码之间不存在明显的边界,如图1-11所示。图1-11 喷泉模型

智能模型是基于知识的软件开发模型,它综合了上述若干个模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用归约和推理机制,帮助软件人员完成开发工作,并使维护在系统规格说明一级进行。

软件原型是所提出的新产品的部分实现,建立原型的主要目的是为了解决在产品开发的早期阶段的需求不确定的问题,其目的是:明确并完善需求、探索设计选择方案、发展为最终的产品。

原型有很多种分类方法。从原型是否实现功能来分,软件原型可分为水平原型和垂直原型两种。水平原型也称为行为原型,用来探索预期系统的一些特定行为,并达到细化需求的目的。水平原型通常只是功能的导航,但并未真实实现功能。水平原型主要用在界面上。垂直原型也称为结构化原型,实现了一部分功能。垂直原型主要用在复杂的算法实现上。

从原型的最终结果来分,软件原型可分为抛弃型原型和演化型原型。抛弃型原型也称为探索型原型,是指达到预期目的后,原型本身被抛弃。抛弃型原型主要用在解决需求不确定性、二义性、不完整性、含糊性等。演化型原型为开发增量式产品提供基础,是螺旋模型的一部分,也是面向对象软件开发过程的一部分。演化型原型主要用在必须易于升级和优化,适用于Web项目。

有些文献把原型分为实验型、探索型和演化型。探索型原型的目的是要弄清对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。实验型原型用于大规模开发和实现之前,考核方案是否合适,规格说明是否可靠。演化型原型的目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。

还有些文献也把原型分为抛弃式原型、演化式原型和递增式原型。

原型的开发技术主要有可执行规格说明、基于脚本(Scenario)的设计、自动程序设计专用语言、可复用的软件、简化假设等。

原型法适于用户没有确定其需求的明确内容的时候。它是先根据已给的和分析的需求,建立一个原始模型,这是一个可以修改的模型(在生命周期法中,需求分析成文档后一般不再多修改)。在软件开发的各个阶段都把有关信息相互反馈,直至模型的修改,使模型渐趋完善。在这个过程中,用户的参与和决策加强了,最终的结果更适合用户的要求。这种原型技术又可分为三类:抛弃式、演化式和递增式。这种原型法成败的关键及效率的高低关键在于模型的建立及建模的速度。

在本题中,新项目与过去成功开发过的一个项目类似,即需求是基本确定的。这样,就应该使用瀑布模型进行开发。试题16答案(19)C

1.1.17 试题17(2005年11月试题23)

131-45=53在 (23) 进制下成立。(23)A.六 B.七 C.八 D.九试题17分析

对于这种试题,关键是要掌握各种进制数据的表示,以及和十进制数据之间的转换方法。

对七进制而言,要计算减法,我们要清楚在七进制是逢七进一的。131-45 的“个位”1<5,因此要向“十位”借位,这里借来的1位“十位”数字相当于“个位”的7,减去5以后,得2,再加上原来“个位”的1,因此结果为3。同理,“十位”本来为3,但已经被“个位”借了1,所以实际为2,2<4,也要向“百位”借1,借回的7减去4后得3,再加上“十位”本身的2,结果为5。因此,在七进制中,131-45=53。

对于其他进制,可类似计算。试题17答案(23)B

1.2 题型练习

练习1

为了提高计算机的性能,采用Cache、虚拟存储器等多项技术。(1) 不属于Cache的特征。(1)A.为了提高速度全部用硬件实现 B.可以显著提高计算机的主存速度

C.可以显著提高计算机的主存容量 D.对程序员是透明的练习2

系统开发过程的流程如图1-12所示,(2) 阶段拟定了系统的目标、范围和要求。图1-12 系统开发过程的流程(2)A.① B.② C.③ D.④练习3

结构化分析方法(SA)是一种预先严格定义需求的方法,强调分析对象的 (3),其指导思想是 (4)。(3)A.程序流 B.指令流 C.控制流 D.数据流(4)A.自顶向下逐层分解 B.自底向上逐层分解

C.面向对象 D.面向过程练习4

在业务领域分析过程中,通过建立实体联系图,把与业务相关的数据模型化;通过建立 (5) 来表示业务活动的分解过程;两个业务过程之间的相互依赖关系应记录在过程依赖图中;通过建立(6)来详细说明整个业务过程的逻辑。(5)A.数据流图(DFD)B.过程层次图(PHD)

C.过程活动图(PAD)D.过程关系图(PRD)(6)A.数据流图(DFD)B.过程层次图(PHD)

C.过程活动图(PAD)D.甘特图(Gantte)练习5

一般来说,在软件维护过程中,大部分工作是由 (7) 引起的。在软件维护的实施过程中,为了正确、有效地修改程序,需要经历以下三个步骤:分析和理解程序、修改程序和 (8)。(9) 的修改不归结为软件的维护工作。(7)A.适应新的软件环境 B.适应新的硬件环境

C.用户的需求改变 D.程序的可靠性(8)A.重新验证程序 B.验收程序

C.书写维护文档 D.建立目标程序(9)A.文档 B.数据 C.需求分析 D.代码练习6

软件复用是使用已有的软件产品(如设计、代码、文档等)来开发新的软件系统的过程。软件复用的形式大体可分为垂直式复用和水平式复用。垂直式复用是指 (10) 中的复用,水平式复用是指 (11) 中的复用。为了提高构件的复用率,通常要求构件具有较好的 (12)。为了将不同软件生产商在不同软硬件平台上开发的构件

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载