软件设计师考试冲刺习题与解答.docx
《软件设计师考试冲刺习题与解答.docx》由会员分享,可在线阅读,更多相关《软件设计师考试冲刺习题与解答.docx(37页珍藏版)》请在冰豆网上搜索。
软件设计师考试冲刺习题与解答
软件设计师考试冲刺(习题与解答)
第 4 章 软件工程
从历年的考试试题来看,本章的考点在综合知识考试中的平均分数为11分,约为总分的14.67%.主要分数集中在软件开发模型、软件开发方法、软件测试、软件模块划分、软件质量要求、软件项目管理等这些知识点上。
4.1 考点提炼
根据考试大纲,本章要求考生掌握以下几个方面的知识点。
软件工程知识:
软件生存周期与软件生存周期模型、软件开发方法、软件开发项目管理、软件开发工具与软件开发环境。
系统分析基础知识:
系统分析的主要步骤、机构化分析方法。
系统设计基础知识:
概要设计与详细设计的基本任务、系统设计的基本原理、系统模块结构设计、结构化设计方法、面向数据结构的设计方法、系统详细设计。
系统实施基础知识:
系统实施的基本内容、程序设计方法、程序设计的基本模块、系统测试、系统转换。
系统运行和维护基础知识:
系统可维护性的概念、系统维护的类型、系统评价的概念和类型
软件质量管理基础知识:
软件质量特性(ISO/IEC9126软件质量模型)、软件质量保证、软件复杂性的概念及度量方法(McCabe度量法)、软件评审(设计质量评审、程序质量评审)、软件容错技术。
软件过程改进基础知识:
软件能力成熟度模型CMM、统一过程(UP)与极限编程(XP)的基本概念。
但结合历年考试真题来看,希赛教育的软考专家认为,考生必须要掌握以下几个方面的内容:
1、软件生命周期
在软件生命周期这个知识点,涉及的考点有:
软件生命周期的定义、软件生命周期的划分、各阶段的任务(重点)。
2、软件开发模型
软件开发模型基本是每次考试的一个必考知识点,涉及的考点有:
瀑布模型、原型模型、演化模型、喷泉模型、增量模型、螺旋模型、基于构件的模型、统一过程等软件模型的特点及适用环境。
3、软件开发方法论
在软件开发方法这部分,涉及的考点有:
结构化开发方法、面向对象开发方法、模块设计的原则(重点)、7种内聚的理解、7种耦合的理解、软件开发各阶段的常用工具(如数据流图、程序流程图等等)、开发文档。
4、软件测试
在软件测试这部分,涉及的考点有:
软件测试的目的、软件测试的准则、软件测试的分类、白盒测试(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖)、黑盒测试(等价类划分、边界值分析)。
5、软件维护
在软件维护部分,我们重点要掌握软件维护的四种分类:
改正性维护、完善性维护、适应性维护和预防性维护,另外需要了解软件的可维护性(可理解性、可测试性、可修改性)、软件维护的管理。
6、软件质量管理
在软件质量管理部分,涉及的考点有:
软件质量特性(重点掌握ISO/IEC9126软件质量模型、McCall质量模型)、软件质量保证、软件复杂性的概念及技术(重点)、软件评审(设计质量评审、程序质量评审)、软件容错技术。
7、软件过程改进
在软件过程改进部分,涉及的考点有:
软件过程改进的概念、软件能力成熟度模型(重点)、极限编程的基本概念。
8、软件项目管理
在软件项目管理部分,涉及的考点有:
项目管理的基础知识、甘特图、PERT图求关键路径(重点)、风险管理(重点)。
4.2 强化练习
4.2.1 试题1
试题1
以下描述中,错误的是__
(1)__.
(1)A.从一个计算机系统转移到另一个计算机系统的容易程度是软件的可移植性
B.软件在需要它投入使用时能实现其指定功能的概率是可靠性
C.软件能够被软件维护人员阅读并理解的方便程度是软件的可理解性。
D.在规定条件下和规定期间内,实现所指定的功能的概率是软件的可靠性。
4.2.2 试题2
试题2
下述任务中,不属于软件工程需求分析阶段的是__
(2)__.
(2)A.确定软件系统的可靠性要求
B.确定软件系统的性能需求
C.确定软件系统将采用什么开发语言开发
D.确定软件系统的数据要求
4.2.3 试题3
试题3
__(3)__是软件生命周期中时间最长的阶段。
(3)A.需求分析阶段 B.软件维护阶段
C.软件设计阶段 D.软件系统实施阶段
4.2.4 试题4
试题4
软件需求说明书是软件需求分析阶段的重要文件,下述__(4)__是其应包含的内容。
①数据描述 ②功能描述
③模块描述 ④性能描述
(4)A.①② B.③④ C.①②③ D.①②④
4.2.5 试题5
试题5
以下关于数据流图的说法,错误的是__(5)__.
(5)A.数据流图是用来作为结构化分析建模的一种工具
B.传统的数据流图中主要包含加工、外部实体、数据流、数据存储、控制流五种基本构件
C.数据流图可只有一个也可以有多个
D.数据流图属于需求分析阶段的产物
4.2.6 例题6
例题6
下列关于内聚和耦合的描述中,错误的是__(6)__.
(6)A.内聚体现的是代码功能的集中程度
B.耦合体现的是模块间联系的紧密程度
C.通信内聚比逻辑内聚的内聚度更高
D.数据耦合比公共耦合的耦合度更高
4.2.7 试题7
试题7
下列选项中,不属于可用性子特性的是__(7)__.
(7)A.可理解性 B.易学性
C.依从性 D.可操作性
4.2.8 例题8
例题8
以下关于开发模型的描述中,不正确的是__(8)__.
(8)A.软件开发模型是指软件开发全部过程、活动和任务的结构框架
B.喷泉模型主要用于描述面向对象的开发过程
C.瀑布模型严格规定了各阶段必须提交的文档
D.螺旋模型结合了瀑布模型和快速原型模型的优点
4.2.9 例题9
例题9
希赛公司的财务系统功能基本完善,但由于系统比较老旧,需要二次开发,这时应该采用__(9)__.
(9)A.原型法 B.瀑布模型 C.V-模型 D.螺旋模型
4.2.10 例题10
例题10
UP的基本特征是"用例驱动、以架构为中心的和受控的迭代式增量开发".UP将一个周期的开发过程划分为4个阶段,其中__(10)__开发剩余的构件。
(10)A.初始阶段 B.精化阶段
C.构建阶段 D.提交阶段
4.2.11 例题11
例题11
某服务器软件系统能够正确运行并得出计算结果,但存在"系统出错后不能在要求的时间内恢复到正常状态"和"对系统进行二次开发时总要超过半年的时间"两个问题,上述问题依次与质量属性中的__(11)__相关。
(11)A.可用性和性能 B.性能和可修改性
C.性能和可测试性 D.可用性和可修改性
4.2.12 例题12
例题12
在新旧系统转换的过程中,在新系统全部正式运行前,一部分一部分地代替旧系统的策略称为__(12)__.
(12)A.位置转换 B.直接转换 C.并行转换 D.分段转换
4.2.13 例题13
例题13
CMM将软件过程的成熟度分为5个等级。
以下关于CMM各级别特征的描述中,不正确的是__(13)__.
(13)A.处于初始级的软件过程可能是混乱的,项目成功往往依赖于个人
B.管理级的最大特征是软件过程和产品质量有详细的度量标准
C.定义级的最大特征是软件过程文档化,并能持续地进行过程改进
D.可重复级能实现对成本、进度和功能特性的跟踪
4.2.14 例题14
例题14
下面有关测试的说法中,正确的是__(14)__.
(14)A.软件测试的目的是发现程序中所有错误
B.测试人员应该在软件开发结束后立即开始测试
C.要根据软件详细设计中设计的各种合理数据设计测试用例
D.对发现错误较多的程序段,应进行更深入的测试
4.2.15 例题15
例题15
如果要验证程序某模块能否与其他模块按照规定方式正确工作,需要进行__(15)__.
(15)A.单元测试 B.集成测试
C.确认测试 D.系统测试
4.2.16 例题16
例题16
下面关于软件测试的描述中,不正确的是__(16)__.
(16)A.α测试不需要用户参与,而β测试需要用户参与
B.白盒测试能测试到程序的内部结构和处理算法
C.软件发生变更后,都需要进行回归测试
D.黑盒测试包括边界值分析、错误推测等测试方法
4.2.17 例题17
例题17
下列关于极限编程(XP)的叙述中,不正确的是__(17)__.
(17)A.极限编程注重用户反馈
B.极限编程提倡减少文档
C.极限编程的4大价值观是:
沟通、变更、反馈、勇气
D.简单设计是极限编程的十二个最佳实践之一
4.2.18 例题18
例题18
软件文档按照其产生和使用的范围可分为开发文档、管理文档和用户文档。
其中用户文档不包括__(18)__.
(18)A.编译手册 B.使用手册
C.维护手册 D.用户报告
4.2.19 例题19
例题19
如果两个小组独立地测试同一个程序,第一组发现60个错误,第二组发现50个错误,在两个小组发现的错误中有30个是共同的,那么可以估计程序中的错误总数是__(19)__个。
(19)A.50 B.60 C.100 D.120
4.2.20 例题20
例题20
某企业根据业务需要,希望软件系统能提供柱状图的报表,这时对该软件系统进行的维护属于__(20)__维护。
(20)A.正确性 B.完善性 C.适应性 D.预防性
4.2.21 例题21
例题21
在某教师管理系统中,教师的级别有教授、副教授、讲师,且教师年龄在25~60岁。
若用等价类划分来进行相关测试,则__(21)__不是好的测试用例。
(21)A.(博士,30) B.(教授,40)
C.(副教授,70) D.(博士,62)
4.2.22 例题22
例题22
采用McCabe度量法计算如图4-1所示的程序图的环路复杂性为__(22)__.
图4-1 程序流程图
(22)A.3 B.4 C.5 D.6
4.2.23 例题23
例题23
关于白盒测试的测试用例设计方法叙述,正确的是__(23)__.
(23)A.完成SC(语句覆盖)所需的测试用例数目一定多于完成DC(判定覆盖)所需的测试用例数目
B.达到100%CC(条件覆盖)要求就一定能够满足100%SC的要求
C.达到100%CDC(条件/判定覆盖)要求就一定能够满足100%CC的要求
D.任何情况下,都可以达到100%路径覆盖的要求
4.2.24 例题24
例题24
对于4-2的程序流程,当采用判定覆盖法设计测试案例时,至少需要设计__(24)__个测试案例。
图4-2 程序流程图
(24)A.2 B.3C.4 D.5
4.2.25 例题25
例题25
定义风险参照水准是__(25)__活动常用的技术。
(25)A.风险识别 B.风险预测
C.风险评估 D.风险控制
4.2.26 例题26
例题26
在进行软件工程风险分析时,项目管理人员要进行4种风险评估活动,这4种风险活动是__(26)__以及确定风险估计的正确性。
(26)A.建立表示风险概率的尺度,描述风险引起的后果,估计风险影响的大小
B.建立表示风险概率的尺度,描述风险引起的后果,确定产生风险的原因
C.确定产生风险的原因,描述风险引起的后果,估计风险影响的大小
D.建立表示风险概率的尺度,确定产生风险的原因,估计风险影响的大小
4.2.27 例题27
例题27
在下列说法中,__(27)__是造成软件危机的主要原因。
①用户使用不当②软件本身特点③硬件不可靠
④对软件的错误认识⑤缺乏好的开发方法和手段⑥开发效率低
(27)A.①③⑥ B.①②④ C.③⑤⑥ D.②⑤⑥
4.2.28 例题28
例题28
在软件设计阶段,划分模块的原则是:
一个模块的__(28)__.
(28)A.作用范围应该在其控制范围之内
B.控制范围应该在其作用范围之内
C.作用范围与控制范围互不包含
D.作用范围与控制范围不受任何限制
4.2.29 例题29~30
例题29~30
某软件项目的活动图如图4-3所示。
图中顶点表示项目里程碑,连接顶点的边表示包含的活动,则该活动图的关键路径是__(29)__,活动FG的松弛时间为__(30)__.
图4-3 项目活动图
(29)A.A-D-F-G-J B.A-C-F-H-J
C.A-D-F-H-J D.A-D-F-I-H-J
(30)A.19 B.20 C.32 D.24
4.3 习题解答
4.3.1 试题1分析
试题1分析
软件可测试性:
用来表示测试及验证软件的难易度。
软件可理解性:
软件能够被软件维护人员阅读并理解的方便程度。
软件可靠性:
软件按规定的条件,在规定的时间内运行而不发生故障的能力。
软件可移植性:
指软件从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。
由于计算机的硬件体系结构不同,因而导致在某一类型机器上开发的软件不能在另一类计算机上运行,所以某一种语言开发环境中开发出来的程序,如不用修改或只需极少量的修改便能在其他种类的计算机上运行,就是可移植性好。
软件可用性:
ISO9241-11国际标准对可用性做了如下定义:
产品在特定使用环境下为特定用户用于特定用途时所具有的有效性(effectiveness)、效率(efficiency)和用户主观满意度(satisfaction)。
其中:
有效性--用户完成特定任务和达到特定目标时所具有的正确和完整程度。
效率--用户完成任务的正确和完整程度与所使用资源(如时间)之间的比率。
满意度--用户在使用产品过程中所感受到的主观满意和接受程度。
通俗来讲,可用性指的是产品对用户来说有效、易学、高效、好记、少错和令人满意的程度,即用户能否用产品完成任务、效率如何、主观感受怎样,实际上是从用户角度所看到的产品质量,是产品竞争力的核心,是以用户为中心。
软件兼容性:
指与软件可从某一环境转移到另一环境的能力有关的一组属性。
它包括以下几个属性:
(1)与软件无须采用为该软件准备的活动或手段就可能适应不同的规定环境有关的软件属性;
(2)使软件遵循与可移植性有关的标准或约定的软件属性;
(3)与软件在该软件环境中用来替代指定的其他软件的机会和努力有关的软件属性。
软件可修改性:
软件能够被软件维护人员修改的方便程度。
软件的一致性:
软件服从与可移植性有关的标准或约定的程度。
试题答案
(1)B
4.3.2 试题2分析
试题2分析
需求分析阶段的任务主要有:
(1)确定软件的综合要求:
系统界面、系统功能、系统性能、安全性、保密性和可靠性方面的要求,系统的运行要求、异常处理、将来的扩充和修改等。
(2)分析软件系统的数据要求:
基本数据元素、数据元素之间的逻辑关系、数据量、峰值等。
(3)导出系统的逻辑模型。
(4)修正项目开发计划。
试题2答案
C
4.3.3 试题3分析
试题3分析
本题考查的是软件寿命周期及其各寿命周期阶段的主要特点。
软件生命周期是软件开发的全过程,这个过程由诸多阶段构成,包括需求分析、软件设计、编码及单元测试、集成及系统测试、安装、实施与维护等阶段,在由这些阶段所构成的软件生命周期全过程中软件维护阶段是软件生命周期中时间最长的阶段。
因为在软件开发完投入使用后,由于多方面的原因,软件不能继续适应用户的要求,要延续软件的使用寿命,就必须对软件进行维护,所以从软件开发投入使用到软件被淘汰的整个过程都属于软件维护阶段,因此不难想象这个阶段的时长最长。
试题3答案
(3)B
4.3.4 试题4分析
试题4分析
已经确定下来的需求应当得到清晰准确的描述。
通常我们把描述需求的文档叫做软件需求说明书。
软件需求说明书的主要内容是:
系统的数据描述、数据流图、数据字典描述、系统接口描述、内部接口说明、系统的功能描述、处理说明、系统设计的限制系统的性能描述、性能参数、对系统进行测试的种类等。
试题4答案
(4)D
4.3.5 试题5分析
试题5分析
本题主要考查数据流图的基本内容。
数据流图是结构化开发方法中需求分析阶段的重要工具。
结构化分析方法是一种面向数据流的软件分析方法。
适合于开发数据处理类型软件的需求分析。
数据流图是需求分析阶段使用的一种主要工具,它以图形的方式表达数据处理系统中信息的变换和传递过程。
与数据流图配合使用的是数据词典,它对数据流图中出现的所有数据元素给出逻辑定义。
有了数据词典,使得数据流图上的数据流、加工和文件得到确切的解释。
通常在数据流图中,可能出现四种基本符号,数据流、加工、数据存储、外部实体(数据源及数据终点)。
数据流是具有名字和流向的数据,在数据流图中用标有名字的箭头表示。
加工是对数据流的变换,一般用圆圈表示。
数据存储是可访问的存储信息,一般用直线段表示。
外部实体位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分,它们分别表明数据处理过程的数据来源及数据去向,用标有名字的方框表示。
图4-4是一个典型的数据流图示例。
图4-4 办理取款手续的数据流图
从理论上来说,数据流图可只有一个也可以有多个。
但是,一般情况下,为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。
稍为复杂的实际问题,在数据流图上常常出现十几个甚至几十个加工。
这样的数据流图看起来很不清楚。
层次结构的数据流图能很好地解决这一问题。
按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。
图4-5给出分层数据流图的示例。
数据处理S包括三个子系统1、2、3.顶层下面的第一层数据流图为DFD/L1.第二层数据流图DFD/L2.1、DFD/L2.2及DFD/L2.3分别是子系统1、2和3的细化。
对任何一层数据流图来说,我们称它的上层图为父图,在它下一层的图则称为子图。
图4-5 分层数据流图
画数据流图的基本步骤概括地说,就是"自顶向下逐层分解".检查和修改的原则为:
(1)数据流图上所有图形符号只限于前述四种基本图形元素。
(2)顶层数据流图必须包括前述四种基本元素,缺一不可。
(3)顶层数据流图上的数据流必须封闭在外部实体之间。
(4)每个加工至少有一个输入数据流和一个输出数据流。
(5)在数据流图中,需按层给加工框编号。
编号表明该加工处在哪一层,以及上下层的父图与子图的对应关系。
(6)规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。
此即父图与子图的平衡。
(7)可以在数据流图中加入物质流,帮助用户理解数据流图。
(8)图上每个元素都必须有名字。
(9)数据流图中不可夹带控制流。
试题5分析
(5)B
4.3.6 试题6分析
试题6分析
本题主要考查内聚与耦合的概念。
高内聚、低耦合是软件设计的一个原则,其中内聚是指模块内部各元素之间联系的紧密程度,也就是代码功能的集中程度。
耦合是指模块之间相互联系的紧密程度。
模块的内聚类型通常可以分为7种,根据内聚度从高到低排序如表4-1所示。
表4-1 7种内聚的描述对比
模块的耦合性类型通常分为7种,根据耦合度从低到高排序如表4-2所示。
表4-2 7种耦合的描述对比
综上所述,可知本题的答案应该选D.
试题6答案
(6)D
4.3.7 试题7分析
试题7分析
本题主要考查ISO/IEC9126的软件质量模型。
其6个质量特性和21个质量子特性是我们要理解的内容。
(1)功能性
功能性是指与软件所具有的各项功能及其规定性质有关的一组属性,包括:
适合性:
与规定任务能否提供一组功能以及这组功能的适合程度有关的软件属性。
适合程度的例子是面向任务系统中由子功能构成的功能是否合适、表容量是否合适等。
准确性:
与能否得到正确或相符的结果或效果有关的软件属性。
此属性包括计算值所需的准确程度。
互操作性(互用性):
与同其他指定系统进行交互的能力有关的软件属性。
为避免可能与易替换性的含义相混淆,此处用互操作性(互用性)而不用兼容性。
依从性:
使软件遵循有关的标准、约定、法规及类似规定的软件属性。
安全性:
与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性。
(2)可靠性
可靠性是指在规定运行条件下和规定时间周期内,与软件维护其性能级别的能力有关的一组属性。
可靠性反映的是软件中存在的需求错误、设计错误和实现错误而造成的失效情况。
包括:
成熟性:
与由软件故障引起失效的频度有关的软件属性。
容错性:
与在软件故障或违反指定接口的情况下,维持规定的性能水平的能力有关的软件属性。
指定的性能水平包括失效防护能力。
可恢复性:
与在失效发生后,重建其性能水平并恢复直接受影响数据的能力以及为达此目的所需的时间和努力有关的软件属性。
(3)可用性
可用性是指根据规定用户或隐含用户的评估所作出的与使用软件所需要的努力程度有关的一组属性。
包括:
可理解性:
与用户为认识逻辑概念及其应用范围所花的努力有关的软件属性。
易学性:
与用户为学习软件应用(例如运行控制、输入、输出)所花的努力有关的软件属性。
可操作性:
与用户为操作和运行控制所花努力有关的软件属性。
(4)效率
效率是指在规定条件下,与软件性能级别和所用资源总量之间的关系有关的一组属性。
包括:
时间特性:
与软件执行其功能时响应和处理时间以及吞吐量有关的软件属性。
资源特性:
与在软件执行其功能时所使用的资源数量及其使用时间有关的软件属性。
(5)可维护性
可维护性是指与对软件进行修改的难易程度有关的一组属性。
包括:
可分析性:
与为诊断缺陷或失效原因及为判定待修改的部分所需努力有关的软件属性。
可改变性:
与进行修改、排除错误或适应环境变化所需努力有关的软件属性。
稳定性:
与修改所造成的未预料结果的风险有关的软件属性。
可测试性:
与确认已修改软件所需的努力有关的软件属性。
此子特性的含义可能会被研究中的修改加以改变。
(6)可移植性
可移植性是指与一个软