1、系统分析师-软件工程师 2及答案解析(总分:31.00,做题时间:90 分钟)一、单项选择题(总题数:25,分数:31.00)为了直观地分析系统的动作,从特定的视点出发推述系统的行为,需要采用动态分析的方法。其中 (1) 本来是表达异步系统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。 (2) 是描述系统的状态如何响应外部的信号进行推移的一种图形表示。(分数:2.00)A.状态迁移图B.时序图C.Petri网D.数据流图A.状态迁移图B.时序图C.Petri网D.数据流图1.PROLOG语言属于
2、(3) 程序设计范型,该范型将程序设计归结为列举事实,定义逻辑关系等。(分数:1.00)A.过程式B.函数式C.面向逻辑D.面向对象2.黑盒测试法是根据软件产品的功能设计规格说明书,通过运行程序进行测试,证实每个已经实现的功能是否符合设计要求。如果某产品的文本编辑框允许输入 1255 个字符,采用 (4) 测试方法,其测试数据为:0 个字符、1 个字符、255 个字符和 256个字符。(分数:1.00)A.等价类划分B.边界值分析C.比较测试D.正交数组测试3.系统分析是信息系统开发重要的阶段。系统分析的困难不包括 (5) 。(分数:1.00)A.问题空问的理解B.系统建模工具的复杂性C.人与
3、人之间的沟通D.环境的不断变化(6) 是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运行情况。通常使用 (7) 作为该工具的补充说明。(分数:2.00)A.数据流图B.数据字典C.ER图D.判定表A.数据流图B.数据字典C.ER图D.判定表(8) 可用于描述数据流图中数据存储及其之间的关系,最初用于数据库概念设计。在某学生选课系统中使用该工具来描述,学生的学号属于 (9) 。(分数:2.00)A.实体关系图B.数据字典C.IPO图D.判定表A.实体B.关系C.属性D.方法4.在结构化设计中, (10) 描述了模块的输入/输出关系、处理内容、模块的内部数据和
4、模块的调用关系,是系统设计的重要成果,也是系统实施阶段编制程序设计任务书和进行程序设计的出发点和依据。(分数:1.00)A.系统流程图B.IPO图C.HTPO图D.模块结构图下列聚合类型中内聚程度最高的是 (11) ,下列耦合类型中耦合程度最低的是 (12) 。(分数:2.00)A.偶然内聚B.时间内聚C.功能内聚D.过程内聚A.数据耦合B.控制耦合C.公共耦合D.内容耦合5.在软件过程模型中,不属于演化过程模型的是 (13) 模型。(分数:1.00)A.增量B.螺旋C.线性顺序D.并发开发6.软件工程小组可以分为四个组织范型。历史上最早的软件小组(即主程序员小组)属于 (14) 范型。(分数
5、:1.00)A.封闭式B.随机式C.开放式D.同步式7.某公司决定采用某开源电子邮件系统作为公司内部使用的电子邮件系统,但该系统无法完全满足公司需求,需要对该软件进行一定程度的扩充和修改。在项目正式启动前,需要对该软件项目的规模进行估算,适合的软件规模估算方法是 (15) 。(分数:1.00)A.模糊逻辑法B.功能点法C.标准构件法D.修改法需求分析活动建造了软件的数据领域、功能领域和行为领域模型。模型的核心是数据字典,围绕着这个核心有三种不同的图,其中, (16) 描述数据对象问的关系,用于进行数据建模; (17) 表示了系统的各种行为模式及在状态问进行变迁的方式,是行为建模的基础。(分数:
6、2.00)A.实体关系图B.数据流图C.状态变迁图D.程序流图A.实体关系图B.数据流图C.状态变迁图D.程序流图8.在软件调试中, (18) 通过演绎或归纳并利用二分法来定位问题源。(分数:1.00)A.蛮力法B.回溯法C.原因排除法D.直觉9.管道和过滤器模式属于 (19) 。(分数:1.00)A.数据为中心的体系结构B.数据流体系结构C.调用和返回体系结构D.层次式体系结构10.用户界面设计中,设计原则不正确的是 (20) 。(分数:1.00)A.为用户提供更多的信息和功能B.减少用户的记忆负担C.保持界面一致性D.置用户于控制之下11.用边界值分析法,假定 10X30,那么 X在测试中
7、应取的边界值是 (21) 。(分数:1.00)A.X=11,X=29B.X=9,X=10,X=30,X=31C.X=10,X=30D.X=9,X=3112.需求工程活动产生软件运行特征的规约,指明软件和其他系统元素的接口并建立 (22) 。(分数:1.00)A.数据流图和数据字典B.程序流程图C.体系结构模型D.软件必须满足的约束条件13.软件设计阶段的度量考虑了架构层次、构件层次和界面设计层次的问题,其中构件层次的设计度量集中于软件构件的内部特性, (23) 不属于构件层次设计度量。(分数:1.00)A.模块内聚B.模块耦合C.布局恰当性D.复杂度14.复用应该是每个软件过程都不可缺少的部分
8、。下列制品,不属于复用候选的软件制品是 (24) 。(分数:1.00)A.项目计划B.体系结构C.用户界面D.用户需求15.面向功能的软件度量使用软件所提供功能的测量作为规范化值。下面关于面向功能的软件度量方法的描述,不正确的是 (25) 。(分数:1.00)A.面向功能度量是由 Albrecht首先提出来的,他建议采用基于功能点的测量B.功能点是基于软件信息领域的可计算的(直接的)测量及软件复杂性的评估而导出的C.“功能”不能直接测量,所以必须通过其他直接的测量来导出D.“用户输入数”和“用户输出数”不属于面向功能的软件度量需要考虑的因素16.某个系统在开发时,用户已经定义了软件的一组一般性
9、目标,但不能标识出详细的输入、处理及输出需求;开发者也可能暂时不能确定算法的有效性、操作系统的适应性或人机交互的形式。在这种情况下,采用 (26) 开发最恰当。(分数:1.00)A.瀑布模型B.迭代模型C.原型模型D.螺旋模型需求分析是一种软件工程活动,它在系统级软件分配和软件设计间起着桥梁的作用。需求分析使得系统工程师能够刻画出软件的 (27) ,指明软件和其他系统元素的接口,并建立软件必须满足的约束。需求分析是发现、求精、建模和规约的过程。包括详细地精化由系统工程师建立并在软件项目计划中精化的软件范围,创建所需数据、信息和 (28) 以及操作行为的模型,此外还有分析可选择的解决方案,并将它
10、们分配到各软件元素中去。(分数:2.00)A.功能和性能B.数据和操作C.实体和对象D.操作和对象A.事件流B.消息流C.对象流D.控制流17.黑盒测试注重于测试软件的功能性需求,主要用于软件的后期测试。 (29) 不能用黑盒测试检查出来。(分数:1.00)A.功能不对或遗漏错误B.界面错误C.外部数据库访问错误D.程序控制结构错误18.软件需求分析产生软件操作特征的规格说明,指明软件和其他系统元素的接口,建立软件必须满足的约束。下面对于软件需求分析的描述,不正确的是 (30) 。(分数:1.00)A.分析员研究系统规约和软件项目计划,并在系统语境内理解软件和复审,从而生成计划软件范围的估算B
11、.需求分析使得系统工程师能够刻划出软件的功能和性能,指明软件和其他系统元素的接口,并建立软件必须满足的约束C.经过仔细的需求分析活动,分析员能够得到详细的系统规约D.需求分析能够为软件设计者提供可被翻译成数据、体系结构、界面和过程设计的模型19.希赛教育软件开发团队欲开发一套管理信息系统,在项目初期,用户提出了软件的一些基本功能,但是没有详细定义输入、处理和输出需求。在这种情况下,该团队在开发过程应采用 (31) 。(分数:1.00)A.瀑布模型B.增量模型C.原型开发模型D.快速应用程序开发(RAD)系统分析师-软件工程师 2答案解析(总分:31.00,做题时间:90 分钟)一、单项选择题(
12、总题数:25,分数:31.00)为了直观地分析系统的动作,从特定的视点出发推述系统的行为,需要采用动态分析的方法。其中 (1) 本来是表达异步系统的控制规则的图形表示方法,现在已经广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。 (2) 是描述系统的状态如何响应外部的信号进行推移的一种图形表示。(分数:2.00)A.状态迁移图B.时序图C.Petri网 D.数据流图解析:A.状态迁移图 B.时序图C.Petri网D.数据流图解析:分析 常用的动态需求分析方法有状态迁移图、时序图和 Petri网等。Petri网是一种使用图形方式对系统
13、进行需求规格说明的技术,用来定义多进程、多任务系统的数学模型,易于描述系统的并发、竞争、同步等特征,并可用于评价和改进系统。如今,Petri 网已经大量应用于各种系统的模型化,Petri 网不仅能描述同步模型,更适合于相互独立、协同操作的并行处理系统。Petri网的组成成分包括:(1)一个有限的库所(place)集合,表示系统的状态。(2)一个有限的变迁(transition)集合,表示系统中的事件。(3)一个有限的连接库所到变迁或者反向的有向箭头的集合,又分输入和输出。状态迁移图是描述系统的状态如何响应外部的信号进行推移的一种图形表示。在状态迁移图中,用圆圈表示可得到的系统状态,用箭头表示从
14、一种状态向另一种状态的迁移。在箭头上要写上导致迁移的信号或事件的名字。状态迁移图表示的关系还可用表格的形式表达,这样的表格称为状态迁移表。如果系统复杂,可以把系统状态迁移图分层表示,这种分层的状态迁移图不仅对系统的状态及其状态之间的转变进行清晰的描述,还可对某些状态进行进一步的细化。状态迁移图的优点是状态之间的关系能够直观地捕捉到,由于状态迁移图的单纯性,很容易建立相应的分析工具。在系统分析中,用时序图来对比在系统中处理事件的时序和相应的处理时间,采用扩充时序图可表示进程间的通信流,用于分析几个事件的交错现象。1.PROLOG语言属于 (3) 程序设计范型,该范型将程序设计归结为列举事实,定义
15、逻辑关系等。(分数:1.00)A.过程式B.函数式C.面向逻辑 D.面向对象解析:分析 程序设计语言用来编写计算机程序(指计算任务的处理对象和处理规则的描述),它包括语法、语义、语用三个方面。语法表示程序的结构或形式,即表示构成语言的各记号间的组合规则,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。语用表示程序与使用者的关系。程序设计语言的基本成分有数据、运算、控制和传输。数据成分用以描述程序中所涉及的数据;运算成分用以描述程序中所包含的运算;控制成分用以表达程序中的控制构造;传输成分用以表达程序中数据的传输。可以
16、从不同的角度对程序设计语言进行分类,从程序设计语言的本质来看,可以分为 3类:机器语言、汇编语言和高级语言。机器语言是特定计算机系统所固有的语言,用机器语言编写的程序可读性很差,程序员难以修改和维护。汇编语言用助记符号来表示机器指令中的操作码和操作数,汇编语言是一种和机器语言十分接近的语言,它的书写格式在很大程度上取决于特定计算机的机器指令。目前已有许多流行的高级语言,如 Fortran、Cobol、Pascal、C/C+、Java 等。这类语言与人们的自然语言比较接近,大大提高了程序设计的效率,便于进行交流。Fortran 是第一个被广泛用于科学计算的高级语言。Algol 60 是早期研制出
17、来的高级语言,它有严格的文法规则,用巴科斯范式 BNF来描述语言,是一个分程序结构的语言。Cobol 是一种面向事务处理的高级语言。Pascal 语言提供的为数不多而又相当紧凑的机制使其有相当强的表达能力。C 是一种通用程序设计语言,作为一种较低级的语言,C 提供了指针和地址操作的功能,以及书写结构良好的程序所需的控制结构。C 与 UNIX操作系统紧密相关,UNIX 操作系统及其上的许多软件都是用 C编写的。(1)过程性语言。过程性语言就是指传统的程序设计语言。在使用传统的程序设计语言时,程序员不仅要说明信息结构,而且要描述程序的控制流程,因此它被称为过程性语言。过程性语言是相对于新型程序设计
18、语言(函数式、逻辑式、面向对象)和第四代语言(4GL)而言的,其特点是通过使用赋值语句改变变量的状态来完成各种任务。(2)面向对象语言。simula 是最早提出类的概念的语言,完备地体现面向对象并提出继承概念的程序设计语言是 Smalltalk 80。C+和 Java是目前用得最多的面向对象的语言。(3)逻辑型语言。逻辑型语言是一类以形式逻辑为基础的语言,其理论基础是一阶谓词演算。Prolog 是典型的逻辑式语言,具有和传统的命令型程序设计完全不同的风格。组成 Prolog程序语句的基本形式是Horn子句,Prolog 程序由围绕某一主题的事实、规则和询问 3类语句组成,这 3类语句分别用来陈
19、述事实、定义规则和提出问题。Prolog 具有很强的推理功能,适用于书写自动定理证明、专家系统、自然语言理解等人工智能问题的程序。归约方法是逻辑式语言的主要方法之一。它是把一簇命题转换成标准的子句集形式,采用匹配和合一的算法,消除冗余,以获得新命题正确性的证明或命题集一致性的验证。(4)函数型语言。函数型语言是一类以 演算为基础的语言。Lisp 是典型的函数型程序语言。函数是一种对应规则(映射),它使其定义域中每一个值和值域中唯一的值相对应。函数型程序设计语言的优点在于它是一种面向值的语言,无状态,无副作用,具有引用透明性,函数值只取决于变元值,具有同一组变元的函数,其值唯一。对表达式中出现的
20、任何函数都可以用其他函数来代替,只要这些函数调用产生相同的值。这些特点有助于程序模块化的实现。函数型程序设计语言和逻辑型程序设计语言都属于申述型语言。(5)可视化开发工具。目前,比较热门的软件开发工具都是可视化的,例如 Visual Basic、Visual C+、Delphi、PowerBuilder 和 JBuilder等。这些工具都是一种事件驱动程序语言,编程时,必须在程序内设计各种事件的处理程序代码。当事件发生时,随即驱动执行相应的程序段。这些开发工具都提供了良好的控件工具,可供用户很方便地建立用户界面,大大提高了稗序设计的效率。人工智能又称机器智能,是研究如何用计算机来实现人类智能的
21、一门学科。它包括自然语言理解、感知与认知、定理自动证明、模式识别、计算机视觉、知识工程与专家系统等。人工智能主要是用计算机来模拟人的思维,包括知识的表示、存储、传输、处理、推断、联想等。其中,知识的表示与推理是核心内容。而一般的计算机语言不适于知识的表示与推理。因此科学家们推出了与一般算法语言有较大差异的、有强大的知识处理能力的计算机语言(如 Lisp、Prolog 和 OPS等),人们把这类语言称为人工智能语言。人工智能语言按知识表示和处理方式的不同分成逻辑式与函数式两大类。Lisp 语言是函数式的,Prolog 语言是逻辑式的,此外还有混合型的。2.黑盒测试法是根据软件产品的功能设计规格说
22、明书,通过运行程序进行测试,证实每个已经实现的功能是否符合设计要求。如果某产品的文本编辑框允许输入 1255 个字符,采用 (4) 测试方法,其测试数据为:0 个字符、1 个字符、255 个字符和 256个字符。(分数:1.00)A.等价类划分B.边界值分析 C.比较测试D.正交数组测试解析:分析 软件测试是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤。软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。从测试阶段划分,可分为单元测试、集成测试、确认测试。(1)单元测试。也称模块测试,通常可放在编程阶段,由程序员对自己编写
23、的模块进行测试,检查模块是否实现了详细设计说明书中规定的功能和算法。单元测试主要发现编程和详细设计中产生的错误,单元测试计划应该在详细设计阶段制定。单元测试期间着重从以下几个方面对模块进行测试:模块接口;局部数据结构;重要的执行通路;出错处理通路;边界条件等。(2)集成测试。也称组装测试,它是对由各模块组装而成的程序进行测试,主要目标是发现模块间的接口和通信问题。集成测试主要发现设计阶段产生的错误,集成测试计划应该在概要设计阶段制定。集成的方式可分为非渐增式和渐增式,渐增式集成又可分为自顶向下集成和自底向上集成。(3)确认测试。主要依据软件需求说明书检查软件的功能、性能及其他特征是否与用户的需
24、求一致。确认测试计划应该在需求分析阶段制定。软件配置复查是确认测试的另一项重要内容。复查的目的是保证软件配置的所有成分都已齐全,质量符合要求,文档与程序完全一致,具有完成软件维护所必需的细节。如果一个软件是为某个客户定制的,最后还要由该客户来实施验收测试,以便确认其所有需求是否都己得到满足。由于软件系统的复杂性,在实际工作中,验收测试可能会持续到用户实际使用该软件之后的相当长的一段时间。如果一个软件是作为产品被许多客户使用的,不可能也没必要由每个客户进行验收测试。绝大多数软件开发商都使用被称为 测试和 测试的过程,来发现那些看起来只有最终用户才能发现的错误。 测试由用户在开发者的场所进行,并且
25、在开发者的指导下进行测试。开发者负责记录发现的错误和使用中遇到的问题。也就是说, 测试是在“受控的”环境中进行的。 测试是在一个或多个用户的现场由该软件的最终用户实施的,开发者通常不在现场,用户负责记录发现的错误和使用中遇到的问题并把这些问题报告给开发者。经过确认测试之后的软件通常就可以交付使用了。从测试方法划分,可分为白盒测试、黑盒测试。(1)白盒测试。又称结构测试,主要用于单元测试阶段。它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部逻辑设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试常用的技术是逻辑覆盖,即
26、考察用测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有 6种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖。(2)黑盒测试。又称功能测试,主要用于集成测试和确认测试阶段。它把软件看做一个不透明的黑盒子,完全不考虑(或不了解)软件的内部结构和处理算法,它只检查软件功能是否能按照软件需求说明书的要求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程中能否保持外部信息(例如文件和数据库)的完整性等。常用的黑盒测试技术包括等价类划分、边值分析、错误推测和因果图等。实际应用中,在纠正了程序中的错误后,还应选择部分或全部原先已测试过的测试用例,对修
27、改后的程序重新测试,这种测试称为回归测试。3.系统分析是信息系统开发重要的阶段。系统分析的困难不包括 (5) 。(分数:1.00)A.问题空问的理解B.系统建模工具的复杂性 C.人与人之间的沟通D.环境的不断变化解析:分析 系统分析的困难主要来自三个方面:问题空间的理解、人与人之间的沟通和环境的不断变化。问题空间的理解,主要是指系统分析员缺乏足够的对象系统专业知识,从而无法获取准确和全面的系统需求;人与人之间的沟通主要是指系统分析员和用户之间的沟通比较困难,用户虽然精通业务但往往不善于把业务过程明确地表达出来;环境的不断变化指的是信息系统生存在不断变化的环境中,环境对它不断提出新的要求。(6)
28、 是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运行情况。通常使用 (7) 作为该工具的补充说明。(分数:2.00)A.数据流图 B.数据字典C.ER图D.判定表解析:A.数据流图B.数据字典 C.ER图D.判定表解析:分析 数据流图是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运行情况。数据流图是一种能全面描述信息系统逻辑模型的主要工具,它可以用少数集中符号综合地反映出信息在系统中的流动、处理和存储的情况。通常使用数据字典对数据流图加以补充说明。数据字典是以特定格式记录下来的、对系统的数据流图中各个基本要素的内容和特
29、征所做的完整的定义和说明。(8) 可用于描述数据流图中数据存储及其之间的关系,最初用于数据库概念设计。在某学生选课系统中使用该工具来描述,学生的学号属于 (9) 。(分数:2.00)A.实体关系图 B.数据字典C.IPO图D.判定表解析:A.实体B.关系C.属性 D.方法解析:分析 实体关系图可用于描述数据流图中数据存储及其之间的关系,最初用于数据库概念设计。在实体关系图中,有实体、关系和属性三个基本成分。在某学生的选课系统中,学生属于实体,而学生的学号则属于该实体的属性。4.在结构化设计中, (10) 描述了模块的输入/输出关系、处理内容、模块的内部数据和模块的调用关系,是系统设计的重要成果
30、,也是系统实施阶段编制程序设计任务书和进行程序设计的出发点和依据。(分数:1.00)A.系统流程图B.IPO图 C.HTPO图D.模块结构图解析:分析 系统流程图是表达系统执行过程的描述工具;IPO 图描述了模块的输入/输出关系、处理内容、模块的内部数据和模块的调用关系;HIPO 图描述了系统自顼向下的模块关系;模块结构图描述了系统的模块结构及模块问的关系,同时也描述了模块之间的控制关系。下列聚合类型中内聚程度最高的是 (11) ,下列耦合类型中耦合程度最低的是 (12) 。(分数:2.00)A.偶然内聚B.时间内聚C.功能内聚 D.过程内聚解析:A.数据耦合 B.控制耦合C.公共耦合D.内容
31、耦合解析:分析 模块的独立程度有两个定性标准度量:聚合和耦合。聚合衡量模块内部各元素结合的紧密程度:耦合度量不同模块问互相依赖的程度。按照聚合程度从低到高排列,聚合包括偶然聚合、逻辑聚合、过程聚合、时间聚合、通信聚合、顺序聚合和功能聚合,其中功能聚合的聚合程度最高。按照耦合程度从低到高排列,耦合包括数据耦合、控制耦合、公共耦合和内容耦合,其中数据耦合的耦合程度最低。5.在软件过程模型中,不属于演化过程模型的是 (13) 模型。(分数:1.00)A.增量B.螺旋C.线性顺序 D.并发开发解析:分析 增量模型、螺旋模型和并发开发模型都属于演化过程模型,线性顺序模型主要是指瀑布模型。6.软件工程小组
32、可以分为四个组织范型。历史上最早的软件小组(即主程序员小组)属于 (14) 范型。(分数:1.00)A.封闭式 B.随机式C.开放式D.同步式解析:分析 最早的软件小组是控制集权式结构,原来称为主程序员小组。小组的核心是由以下人员组成的:一个高级工程师(“主程序员”),负责计划、协调和复审小组的所有技术活动;技术人员(一般25 个人),执行分析和开发活动;以及一个后备工程师,支持高级工程师的活动,并能在项目进行过程中,以最小的代价取代高级工程师的工作。主程序员可以由一个或多个专家(如电信专家,数据库设计者)、支持人员(如技术文档写作者,行政人员)和软件资料员来担当。资料员为多个小组服务,执行以
33、下功能:维护和控制所有软件配置(如文档、源程序、数据和磁介质);帮助收集和格式化软件生产数据;分类和索引可复用软件模块;辅助小组进行研究、评估及文档准备。资料员的重要性不能过分强调。资料员充当了软件配置的控制者、协调者及潜在的评估者。Constantine提出了软件工程小组的四种“组织范型”:(1)封闭式范型:按照传统的权力层次来组织小组。这种小组在开发与过去已经做过的产品类似的软件时十分有效,但在这种封闭式范型下难以进行创新式的工作。(2)随机式范型:松散地组织小组,并依赖于小组成员个人的主动性。当需要创新或技术上的突破时,按照这种随机式范型组织的小组很有优势。但当需要“有次序的执行”才能完
34、成工作时,这种小组组织范型就会陷入困境。(3)开放式范型:试图以一种既具有封闭式范型的控制性,又包含随机式范型的创新性的方式来组织小组。工作的执行结合了大量的通信和基于小组一致意见的决策。开放式范型小组结构特别适于解决复杂问题,但可能不像其他类型小组那么效率高。(4)同步式范型:依赖于问题的自然划分,组织小组成员各自解决问题的片断,他们之间没有什么主动的通信需要。7.某公司决定采用某开源电子邮件系统作为公司内部使用的电子邮件系统,但该系统无法完全满足公司需求,需要对该软件进行一定程度的扩充和修改。在项目正式启动前,需要对该软件项目的规模进行估算,适合的软件规模估算方法是 (15) 。(分数:1
35、.00)A.模糊逻辑法B.功能点法C.标准构件法D.修改法 解析:分析 试题已经明确,“需要对该软件进行一定程度的扩充和修改”,因此,适合的软件规模估算方法是修改法。需求分析活动建造了软件的数据领域、功能领域和行为领域模型。模型的核心是数据字典,围绕着这个核心有三种不同的图,其中, (16) 描述数据对象问的关系,用于进行数据建模; (17) 表示了系统的各种行为模式及在状态问进行变迁的方式,是行为建模的基础。(分数:2.00)A.实体关系图 B.数据流图C.状态变迁图D.程序流图解析:A.实体关系图B.数据流图C.状态变迁图 D.程序流图解析:分析 实体关系图(E-R 图)描述数据对象间的关
36、系,用于进行数据建模,这种模型称为概念数据模型。数据流图是描述数据处理过程的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式描述数据在系统流程中流动和处理的移动变换过程,反映数据的流向、自然的逻辑过程和必要的逻辑数据存储。状态变迁图表示系统的各种行为模式以及在状态间进行变迁的方式,是行为建模的基础。程序流图适合于描述系统中某个加工的执行细节,主要用在详细设计中。8.在软件调试中, (18) 通过演绎或归纳并利用二分法来定位问题源。(分数:1.00)A.蛮力法B.回溯法C.原因排除法 D.直觉解析:分析 调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置
37、,也就是找出哪条模块或哪条语句引起了错误。然后仔细研究推断代码以确定问题的原因,并设法改正。总的来说有三种调试的实现方法,分别是蛮力法、回溯法和原因排除法。蛮力法的调试可能是为了找到错误原因而使用的最普通但是最低效的方法了。当所有其他的方法都失败的情形下,我们才会使用这种方法。根据“让计算机自己来寻找错误”的思想,进行内存映象,激活运行时的跟踪。回溯是在小程序中经常能够奏效的相当常用的调试方法。从发现症状的地方开始,开始(手工地)向回跟踪源代码,直到发现错误原因。原因排除法是通过演绎和归纳,以及二分法来实现的。对和错误发生有关的数据进行分析可寻找到潜在的原因。先假设一个可能的错误原因,然后利用
38、数据来证明或者否定这个假设。也可以先列出所有可能的原因,然后进行检测来一个个地进行排除。如果最初的测试表明某个原因看起来很像,那么就要对数据进行细化来精确定位错误。上面的每一种方法都可以使用调试工具来辅助完成。我们可以使用许多带调试功能的编译器、动态的调试辅助工具(跟踪器)、自动的测试用例生成器、内存映像工具,以及交叉引用生成工具。9.管道和过滤器模式属于 (19) 。(分数:1.00)A.数据为中心的体系结构B.数据流体系结构 C.调用和返回体系结构D.层次式体系结构解析:分析 体系结构风格有 9大类:(1)数据流系统:包括顺序批处理、管道和过滤器。(2)调用和返回系统:包括主程序和子程序、
39、面向对象系统、层次结构。(3)独立部件:包括通信进程、事件隐式调用。(4)虚拟机:包括解释器、规则及系统。(5)以数据为中心的系统:包括数据库、超文本系统、黑板系统。(6)特殊领域风格;例如过程控制、模拟器。(7)特殊结构的风格:例如分布式处理、状态转移系统。(8)不同风格合成建立的异构结构。(9)最初始、最基本的主程序/子程序。管道和过滤器模式是为处理数据流系统提供的一种模式。它是由过滤器和管道组成的。每个处理步骤都被封装在一个过滤器组件中,数据通过相邻过滤器之间的管道进行传输。每个过滤器可以单独修改,功能单一,并且它们之间的顺序可以进行配置。10.用户界面设计中,设计原则不正确的是 (20
40、) 。(分数:1.00)A.为用户提供更多的信息和功能 B.减少用户的记忆负担C.保持界面一致性D.置用户于控制之下解析:分析 用户界面设计是一项复杂的任务,它必须遵循一些“良好设计”的指导原则,以下介绍一些关键的用户界面设计原则:(1)用户控制。人机界面设计首先要确立用户类型。划分类型可以从不同的角度,视实际情况而定。确定类型后要针对其特点预测他们对不同界面的反应。这就要从多方面设计分析。用户应当感觉系统的运行在自己的控制之下。在图形界面或基于 Web的界面中,用户指导程序的每一步执行;即使在程序进行某些处理或用户等待输出结果时,用户同样保持对控制的敏感度。(2)信息最小量。人机界面设计要尽
41、量减少用户记忆负担,采用有助于记忆的设计方案。(3)帮助和提示。要对用户的操作命令做出反应,帮助用户处理问题。系统要设计有恢复出错现场的能力,在系统内部处理工作要有提示,尽量把主动权让给用户。(4)媒体最佳组合。多媒体界面的成功并不在于仅向用户提供丰富的媒体,而应在相关理论指导下,注意处理好各种媒体间的关系,恰当选用。(5)界面一致性。一致性要求用户界面遵循标准和常规的方式,让用户处在一个熟悉的和可预见的环境之中,这主要体现在命名、编码、缩写、布局以及包括菜单、按钮和键盘功能在内的控制使用等。(6)界面容错性。一个好的界面应该以一种宽容的态度允许用户进行实验和出错,使用户在出现错误时能够方便地
42、从错误中恢复。(7)界面美观性。界面美观性是视觉上的吸引力,主要体现在具有平衡和对称性、合适的色彩、各元素具有合理的对齐方式和间隔、相关元素适当分组、使用户可以方便地找到要操作的元素等。(8)界面可适应性。界面可适应性是指用户界面应该根据用户的个性要求及其对界面的熟知程度而改变,即满足定制化和个性化的要求。所谓定制化是在程序中声明用户的熟知程度,用户界面可以根据熟知程度改变外观和行为;所谓个性化是使用户按照自己的习惯和爱好设置用户界面元素。11.用边界值分析法,假定 10X30,那么 X在测试中应取的边界值是 (21) 。(分数:1.00)A.X=11,X=29B.X=9,X=10,X=30,
43、X=31 C.X=10,X=30D.X=9,X=31解析:分析 边界值分析法是对各种输入、输出范围的边界情况设计测试用例的方法。使用边界值分析法设计测试用例,确定边界情况应考虑选取正好等于,刚刚大于,或刚刚小于边界的值作为测试数据,这样发现程序中错误的概率较大。边界值分析法的使用要注意以下几点:(1)如果输入条件规定了取值范围或数据个数,则可选择正好等于边界值、刚刚在边界范围内和刚刚超越边界外的值进行测试。(2)针对规格说明的每个输入条件,使用上述原则。(3)对于有序数列,选择第一个和最后一个作为测试数据。12.需求工程活动产生软件运行特征的规约,指明软件和其他系统元素的接口并建立 (22)
44、。(分数:1.00)A.数据流图和数据字典B.程序流程图C.体系结构模型D.软件必须满足的约束条件 解析:分析 需求工程活动产生软件运行特征的规约,指明软件和其他系统元素的接口并建立软件必须满足的约束条件。数据流图和数据字典只是这些约束条件的表示方法,而程序流程图和体系结构模型是设计阶段的工作。13.软件设计阶段的度量考虑了架构层次、构件层次和界面设计层次的问题,其中构件层次的设计度量集中于软件构件的内部特性, (23) 不属于构件层次设计度量。(分数:1.00)A.模块内聚B.模块耦合C.布局恰当性 D.复杂度解析:分析 构件层次设计度量主要考虑模块的独立性问题,这包括内聚、耦合和复杂度。布
45、局恰当性属于界面设计层次的问题。14.复用应该是每个软件过程都不可缺少的部分。下列制品,不属于复用候选的软件制品是 (24) 。(分数:1.00)A.项目计划B.体系结构C.用户界面D.用户需求 解析:分析 在软件的复用过程中,有高级的复用,例如项目计划和体系结构的复用;也有低层的复用,例如代码复用和界面复用等。显然,用户需求是用户自己对软件的一些要求和目标,这是不能复用的。15.面向功能的软件度量使用软件所提供功能的测量作为规范化值。下面关于面向功能的软件度量方法的描述,不正确的是 (25) 。(分数:1.00)A.面向功能度量是由 Albrecht首先提出来的,他建议采用基于功能点的测量B
46、.功能点是基于软件信息领域的可计算的(直接的)测量及软件复杂性的评估而导出的C.“功能”不能直接测量,所以必须通过其他直接的测量来导出D.“用户输入数”和“用户输出数”不属于面向功能的软件度量需要考虑的因素 解析:分析 面向功能的软件度量是对软件和软件开发过程的间接度量,注意力集中于程序的功能性和实用性,而不是对 LOC计数。该度量是由 Albrecht首先提出来的。他提出了一种叫做功能点方法的生产率度量法,该方法利用有关软件数据域的一些计数度量和软件复杂性估计的经验关系式,导出功能点:FP(Function Point)。功能点通过填写图表来计算。首先要确定五个数据域的特征,并在表格中相应位
47、置给出计数。数据域的值以如下方式定义:(1)用户输入数:每个用户输入应是面向不同应用的输入数据,对它们都要进行计数。输入数据应区别于查询数据,它们应分别计数。(2)用户输出数:各个用户输出是为用户提供的面向应用的输出信息,它们均应计数。在这里的“输出”是指报告、屏幕信息、错误信息等,在报告中的各个数据项不应再分别计数。(3)用户查询数:查询是一种联机输入,它引发软件以联机方式产生某种即时响应。每一个不同的查询都要计数。(4)文件数:每一个逻辑主文件都应计数。这里的逻辑主文件,是指逻辑上的一组数据,它们可以是一个大的数据库的一部分,也可以是一个单独的文件。(5)外部接口数:对所有用来将信息传送到
48、另一个系统中的接口(即磁带、磁盘和可读/写光盘上的数据文件)均应计数。一旦收集到上述数据,就可以计算出与每一个计数相关的加权复杂性值。16.某个系统在开发时,用户已经定义了软件的一组一般性目标,但不能标识出详细的输入、处理及输出需求;开发者也可能暂时不能确定算法的有效性、操作系统的适应性或人机交互的形式。在这种情况下,采用 (26) 开发最恰当。(分数:1.00)A.瀑布模型B.迭代模型C.原型模型 D.螺旋模型解析:分析 从试题描述来看,用户对软件的需求并不明确,而且开发人员对算法也不确定,因此,适合使用原型模型。通过开发出原型,明确用户的需求,探索算法的有效性。通过原型的运行,来分析操作系
49、统的适应性,以及人机交互的形式。需求分析是一种软件工程活动,它在系统级软件分配和软件设计间起着桥梁的作用。需求分析使得系统工程师能够刻画出软件的 (27) ,指明软件和其他系统元素的接口,并建立软件必须满足的约束。需求分析是发现、求精、建模和规约的过程。包括详细地精化由系统工程师建立并在软件项目计划中精化的软件范围,创建所需数据、信息和 (28) 以及操作行为的模型,此外还有分析可选择的解决方案,并将它们分配到各软件元素中去。(分数:2.00)A.功能和性能 B.数据和操作C.实体和对象D.操作和对象解析:A.事件流B.消息流C.对象流D.控制流 解析:分析 需求分析使得系统工程师能够刻画出软件的功能需求(明确所开发的软件必须具备什么样的功能)、性能需求(明确待开发的软件的技术性能指标)、环境需求(明确软件运行时所需要的软硬件的要求)、用户界面需求(明确人机交互方式、输入/输出数据格式)。需求分析要指明软件和其他系统元素的接口,并建立软件必须满足的约束。需求分析是发现、求精、建模和规约的过程。包括详细地精化由系统工程师建立并在软件项目计划中精化的软件范围,创建所需数据、信息和控制流及操作行为的模型。17