软件工程总复习题.docx
- 文档编号:4014813
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:28
- 大小:119.30KB
软件工程总复习题.docx
《软件工程总复习题.docx》由会员分享,可在线阅读,更多相关《软件工程总复习题.docx(28页珍藏版)》请在冰豆网上搜索。
软件工程总复习题
《软件工程》总复习题
一、判断题
判断以下叙述的正误。
正确的叙述请在答题纸上的相应题号后打“√”,错误的打“×”。
1、在主存储器能容纳得下的前提下,应使模块尽可能大,以减少模块的个数。
×
2、编码时应尽可能使用全局变量。
×
3、为了提高程序的易读性,尽可能使用高级语言编写程序。
√
4、规划模块间的单向调用关系叫做模块的层次结构。
√
5、只要模块之间的接口关系不变,各模块的内部实现细节的修改不会影响别的模块。
√
6、为了加快软件维护作业的进度,尽可能增加维护人员的数目。
×
7、尽可能用GOTO语句×
8、程序的注释并不是可有可无的。
√
9、尽可能在软件生产过程中保证各阶段文档的正确性。
√
10、在进行总体设计时应加强模块间的联系。
×
11、程序的模块划分得越大越好。
×
12、模块越小,模块化的优点越明显,一般说来,模块的大小都在10行以下。
×
14.软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。
√
15.在可行性研究中最难决断和最关键的问题是经济可行性。
×
16.系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。
×
17.在软件开发中,采用原型系统(样机)策略的主要困难是时间问题。
×
18.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。
√
19.模块越多,开发成本越小。
×
20.耦合是指一个模块内各个元素彼此结合的紧密程度。
×
21.内聚是指一个软件结构内各个模块之间互连程度的度量。
×
22.模块分解时应注意不要降低模块的独立性。
√
23.总体设计阶段完成的主要文档是总体设计说明书。
√
24.详细设计是在总体设计之后进行的,它利用总体设计的结果,对系统中的每个模块给出足够的过程性描述。
√
25.程序设计语言中应绝对禁止使用GOTO语句。
×
26.PAD图在设置了五种基本的控制结构后,还允许递归调用。
×
27.尽量多使用临时变量。
×
28.程序中嵌套的层数应加以限制。
√
29.程序的书写格式最好所有语句都左对齐,这样也可以节省纸张。
×
30.在编写程序时尽可能对程序代码进行优化。
√
31.使用可以看得出意义的标识符。
√
32.在进行需求分析时需同时考虑维护问题。
√
33.完成测试作业后,为了缩短源程序的长度应删去源程序的注释。
×
34.重视程序结构的设计,使程序具有较好的层次结构。
√
35.使用括号以改善表达式得清晰性。
√
36.尽可能把程序编得短一些。
×
37.不要修补不好的程序,要重新写。
√
38.程序中的注解越少越好。
×
39.程序的书写格式应有助于读者阅读与理解。
√
二、填空题
1.程序的三种基本控制结构的共同特点是________________。
2.程序的注释分为____________注释和____________注释。
3.面向对象方法是一种以数据或信息为主线,把________和处理相结合的方法。
4.在需求分析阶段常用的图形工具有_______________、Warnier图、IPO图。
5.详细设计的工具有________、表格工具和语言工具。
6.程序的效率是指程序的执行速度和________________________。
7.软件测试的方法有________________和________________,后者又称黑盒法。
8.软件测试中,白盒方法是通过分析程序的________________来设计测试用例的方法。
9.详细设计又叫模块设计,其内容包括:
算法、_____________、内部数据结构、接口细节和输入、输出数据等。
10.软件测试中,白盒方法是通过分析程序的内部逻辑来设计测试用例的方法,除了测试程序外,还适用于对________________阶段的软件文档进行测试。
黑盒方法是根据程序的功能来设计测试用例的方法,除了测试程序外,它也适用于对________________阶段的软件文档进行测试。
11.需求分析的基本任务是准确的回答_____________________。
12.设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低耦合,提高______。
13.需求分析应交付的主要文档是___________________。
14.软件测试的目的是_________________,软件排错的目的是找出错误所在并改正之。
15.软件的面向数据流的设计方法,利用其定义的映射方法可以把数据流图变换成软件结构,在映射中,一般将数据流分为____________和事务流两种。
16.为使用流程图描述结构化程序,限制流程图有五种基本的控制结构顺序、________、____________、until循环、多情况型选择。
17.软件开发中的Jackson方法是一种面向________的开发方法。
18.在用面向对象方法开发软件时,____________始终是最重要、最基本、最核心的,为建立动态模型和功能模型提供实质性的框架。
19.软件测试中,黑盒方法是根据程序的________来设计测试用例的方法。
20.在单元测试中发现的往往是________和详细设计阶段的错误。
三、选择题
1、程序设计属于软件开发过程(C)阶段。
A、设计B、编程C、实现D、编码
2、在软件的分析阶段,常用(C)来描述业务处理系统的信息来源、存储、处理和去向。
A、E-R图B、框图C、DFD D、时序网络
3、结构设计是一种应用最广泛的系统设计方法,是以(A)为基础、自顶向下、逐步求精和模块化的过程。
A、数据流B、数据流图C、数据库D、数据结构
4、数据流图中,当数据流向或流自文件时(B)。
A、数据流要命名,文件不必命名B、数据不必命名,有文件名就足够了
C、数据流和文件均要命名,因为流出和流进的数据流是不同的
D、数据流和文件均不要命名,通过加工可自然反映出。
5、结构化程序设计主要强调程序的(C)。
A、效率B、速度C、可读性D、大小
6、数据字典是对数据定义信息的集合,它所定义的对象都包含于(A)
A、数据流图B、程序框图C、软件结构D、方框图
7、分析员是(B)
A、户中系统的直接使用者B、用户和软件人员的中间人
C、软件的编程人员D、用户和软件人员的领导
8、程序设计的一种基本方法是(D)。
A、筛选法B、递归法C、归纳法D、逐步求精法
9、程序的三种基本控制结构的共同特点是(D)。
A、不能嵌套使用 B、只能用来写简单的程序
C、已经用硬件实现 D、只有一个入口和一个出口
10、程序的三种基本控制结构的共同特点是(D)。
A、不能嵌套使用 B、只能用来写简单的程序
C、已经用硬件实现 D、只有一个入口和一个出口
11、软件生产过程中,需求信息由(D)给出。
A、程序员B、项目管理者C、软件分析设计人员D、软件用户
12、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的(A)。
A、总貌B、细节C、抽象D、软件的作用
13、与设计测试数据无关的文档是(D)。
A、需求说明书B、设计说明书C、源程序D、项目开发设计
14、结构化程序设计主要强调程序的(C)。
A、效率B、速度C、可读性D、大小
15、结构化分析SA方法以数据流图、(D)和加工说明等描述工具,即用直观的图和简洁的语言来描述软系统模型。
A、DFD图B、PAD图C、IPO图D、数据字典
16、开发的结构化设计(SD)方法,全面指导模块划分的重要原则应该是(C)
A、模块高内聚B、模块低藕合C、模块独立性D、程序模块化
17、面向数据流的软件设计方法,一般是把数据流图中数据流划分为(B),再将数据流图映射为软件结构。
A、数据流和事务流B、交换流和事务流
C、信息流和控制流D、交换流和数据流
18、在下列的基本成分中,哪个不是数据流程图的基本成分?
(D)
A、信息处理B、信息存储C、外部实体D、系统状态
19、软件测试的目的是(B)。
A、证明程序中没有错误 B、发现程序中的语法错误
C、测量程序的动态性 D、检查程序中的语法错误
20、在软件结构化设计中,好的软件结构设计应该力求做到(B)。
A、顶层扇出较少,中间层扇出较高,底层模块低扇入
B、顶层扇出较高,中间层扇出较少,底层模块高扇入
C、顶层扇入较少,中间层扇出较高,底层模块高扇入
D、顶层扇入较少,中间层扇入较高,底层模块低扇入
21、描述静态数据结构的概念模式是(A)。
A、E-R图B、DFDC、结构图D、框图
22、总体设计的结果是提供一份(A)。
A、模块说明书B、框图C、程序D、数据结构
23、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作(B)。
A、软件投机B、软件危机C、软件工程D、软件产生
24、软件的(A)设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。
A、总体B、抽象C、逻辑D、规划
25、Jackson设计方法是一种面向(C)的设计方法。
A、对象B、数据流C、数据结构D、控制结构
26、程序流程图是一种传统的程序设计表示工具,有其优点和缺点,使用该工具应注意(A)。
A、支持逐步求精B、考虑控制流程
C、遵守结构化设计原则 D、数据结构表示
四、简答题
1、模块与模块化:
模块是数据说明、可执行语句等程序对象的集合,它是单独命名的而且可通过名字来访问,例如:
过程、函数、子程序等。
模块化是把模块划分为若干个模块,每个模块完成一个子功能,把这些模块集合起来组成一个整体,可以完成指定的功能满足问题的要求。
2、简述面向对象方法的要点:
关键是四个要点:
1,客观世界是由对象组成对象划分为对象类,类由数据与方法组成3按子类与父类的关系,把类组成一个层次结构4对象彼此之间仅能通过传递消息互相联系
3、等价划分法:
等价划分是黑盒设计测试方案的一种技术。
把所有可能的输入数据按有效与无效分为若干个等价类(即类中每一个值在测试中的作用与这一类中所有其它值的作用相同。
等价划分法先要划分输入数据的等价类,再分别设计测试方案覆盖有效等价类和无效等价类。
4、简述原型法的基本思想:
用交互的、快捷建立起来的原型取代规格说明,用户通过再计算机上运行、使用这个原型系统了解系统的概貌,想开发者提供反馈意见。
5、多态性:
指面向对象技术中,子类对象可以象父类对象那样使用,同样的消息即可以发送给父类对象也可以发送给子类对象。
多态性机制增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且提高了可重用性和可扩充性。
6、简述调试策略的归纳法:
从个别推断一般的方法。
从错误征兆出发,通过分析线索之间的关系找出故障。
步骤:
1收集数据2组织数据3导出假设4证明假设
7、公共环境耦合:
两个或多个模块通过一个公共数据环境相互作用时,他们之间的耦合叫环境耦合。
公共环境可以是全程变量、共享通信区、内存公共覆盖区等。
8、简述面向对象的程序方法学的基本原则和要点:
原则:
模拟人类思维方式,使开发软件的方法尽可能接近人类认识世界解决问题的方法过程。
使问题域和求解域在结构上尽可能一致。
要点:
:
1,客观世界是由对象组成2、对象划分为对象类,类由数据与方法组成3按子类与父类的关系,把类组成一个层次结构4对象彼此之间仅能通过传递消息互相联系
9、什么是软件危机?
答:
软件危机是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。
概括地说,主要包含两方面的问题:
如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
10、简述软件测试的步骤,简要说明各测试步骤的目的。
软件系统的测试基本上由以下几个步骤组成:
模块(单元)测试,目的是保证第个模块作为一个单元能正确执行。
子系统测试,目的是把经过单元测试的模块放在一起形成一个子系统,测试模块相互间的协调和通信。
系统测试,在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合要求。
验收测试,目的是验证系统确实能够满足用户的要求。
平行运行,目的是用户能在准生产环境下熟悉系统、验证文档、负荷测试和验证系统性能指标。
11、软件维护的含义是什么,什么是软件的可维护性?
决定软件可维护性的因素是什么?
答:
所谓软件维护是指在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
软件维护是软件生命周期的最后一个阶段,也是持续时间最长代价最大的一个阶段。
软件的可维护性可以定义为:
维护人员理解、改正和改动软件的难易程度。
决定软件可维护性的因素是可理解性、可测试性和可修改性。
12、详细设计的任务是什么?
答:
详细设计的任务就是要针对每个模块,根据模块的功能,给出可以直接用于编码的程序逻辑结构。
因此,在详细设计阶段,我们应该完成两个方面的工作,一是确保模块功能实现的程序逻辑结构的设计,二是采用什么方法来表达和描述程序的逻辑结构。
13、标记耦合.。
答:
是指一个模块调用另一个模块时,不是传送数据本身,而是传送存放数据的变量名或文件名,这些是数据的标记,故称标记耦合。
14、简述总体设计过程包含的内容。
答:
总体设计过程通常由两个阶段组成:
系统设计,确定系统实现的方案;结构设计,确定软件的结构。
其中结构设计是总体设计的重点,在这个阶段主要完成四个任务,这就是:
(1)将软件系统划分成模块;
(2)决定每个模块的功能;
(3)决定每个模块的调用关系;
(4)决定模块间的接口。
15、需求分析的任务是什么?
答:
需求分析的主要任务
第一、正确地确定对系统综合要求,充分理解和表达用户的需求。
也就是详细定义开发软件的功能、性能、外部接口、设计限制、数据库需求、确定硬件和软件支持环境、辅助软件以及将来可能提出的要求。
第二、通过结构分析的方法对系统进行分解,以确定软件系统的主要成分或软件系统的构成。
第三、是对以上已进行的两项工作进行描述,以形成需求文档,也就是编制“需求规格说明书”。
它应明确地定义要开发软件的需求;系统的构成及有关接口。
第四、编写用户手册概要,迫使分析员从用户的角度看待软件,及早考虑用户界面工作,此时编写的重点在系统输入和输出。
第五、编写验收计划,作为今后验收测试的依据。
第六、修正可行性研究阶段所制订的软件项目开发计划。
16、需求说明书由哪些部分组成?
答:
它主要包括以下内容:
●概述。
从系统的角度描述软件的目标和任务。
●数据描述:
包括数据流图、数据字典、系统接口说明、内部接口说明
●功能描述:
包括功能、处理、设计的限制
●性能描述:
包括性能指标、测试种类、预期的软件响应性能和其它
●参考文献目录
●附录
17、什么是白盒测试法?
答:
白盒测试。
所谓白盒测试就是在知道产品内部工作过程或程序内部结构和处理过程的前提下,检验产品内部动作是否按照规格说明书的规定正常进行或按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按照预定要求正确工作的测试方法。
因此白盒测试又称为结构测试或逻辑测试。
18、什么是黑盒测试法?
所谓黑盒测试是指在完全不考虑程序的内部结构和处理过程的前提下,在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接受输入数据产生正确的输出信息,并且保持外部信息的完整性。
因此,又称为功能测试。
五、应用题
1、根据下列呈述绘制判定表:
某研究所重新对其在大学以上学历的职工安排工作。
其方针如下:
“如果年龄不满18岁,文化程度是大学,若是男性,则一律要求考研究生。
若是女性,则分配到研究所办公室任行政干部;如果年龄满18岁但不足50岁,文化程度是研究生,不分男女性,均任课题组长。
文化程度是大学,则不分男女性均担任中层以上各级领导干部;如果年龄满50岁以上,文化程度是研究生,若是男性,则任课题组长。
文化程度是大学,若是男性,则任科研人员。
若是女性,则任资料员。
1、2、3、7、8、9
4
5、11
6
10
12
性别
—
M
—
M
F
F
文化程度
G
U
U
U
U
U
年龄
—
L
Y
C
L
C
任课题组长
√
任领导
√
任科研人员
√
任行政干部
√
任资料员
√
考研究生
√
2、假设某航空公司规定,乘客可以免费托运重量不超过30公斤的行李。
当行李重量超过30公斤时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
用判定表和判定树表示与上述每种条件组合相对应的动作(算法)。
3、为下列程序设计条件组合覆盖、判断/条件覆盖和语句覆盖的测试用例。
eample
{floata,b,x;
if(a>1&&b==0)
x=x/a;
if(a==2||x>1)
x=x+1;
}
答案:
条件组合覆盖:
a=2,b=0,x=4a=2,b=1,x=1a=1,b=0,x=2a=1,b=1,x=1
判断/条件覆盖:
a=2,b=0,x=4a=1,b=1,x=1
语句覆盖:
a=2,b=0,x=4
软件工程习题选
1.1什么是软件?
软件是计算机系统中与硬件相互依存的另一部分,它包括程序、数据及相关文档的完整集合。
1.2软件的特点有哪些?
(1)软件是一种逻辑实体,而不是具体的物理实体。
(2)软件的开发过程中没有明显的制造过程。
(3)软件在运行和使用过程期间,没有硬件那样的机械磨损、老化问题。
(4)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
(5)软件的开发至今尚未完全摆脱手工艺的开发方式。
(6)软件是复杂的。
(7)软件成本相当昂贵。
(8)相当多的软件工作涉及到社会因素。
1.3软件的分类,按其功能可分为:
系统软件、支撑软件、和应用软件。
1.4软件的分类,按其规模可分为:
(1)微型、
(2)小型、(3)中型、(4)大型、(5)甚大型、(6)极大型。
1.5什么是软件危机?
为什么会产生软件危机?
将来怎样消除软件危机?
从软件危机的种种表现和软件作为逻辑产品的特殊性可以发现软件危机的原因:
(1)用户对软件需求的描述不精确、可能有遗漏、有二义性、有错误,甚至在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求;
(2)软件开发人员对用户需求的理解与用户的本来愿望有差异,这种差异必然导致开发出来的软件产品与用户要求不一致;
(3)大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。
各类人员的信息交流不及时、不准确、有时还会产生误解;
(4)软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误;
(5)缺乏有力的方法学和工具方面的支持,过分地依赖程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化;
(6)软件产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。
所谓“复杂问题”的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具构造提高了软件的开发效率和能力,新的、更大的、更复杂的问题又摆在人们面前。
1968年,在北大西洋公约组织(NATO)召开的计算机科学会议上,FritzBauer首先提出了“软件工程”的概念,试图建立并使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,从而解决或缓解软件危机。
软件工程的研究除了计算机软件本身外,还涉及许多其它的领域,如管理科学、心理学、经济学、人机工程学等,所以,它是一门综合性的学科。
基础理论研究:
主要目标是用形式化技术解决软件生产中所遇到的问题,如需求规格的描述,规格到系统的转换,系统测试、维护及理解等,主要为解决“做什么”的描述手段问题。
工程化技术研究:
总结软件开发过程的规律,探讨软件开发过程的工程化因素、方法及工程支持,解决“怎么做”的问题。
计算机辅助软件工程(CASE)的研究:
其中包括CASE工具和CASE环境的研究,旨在应用计算机支持软件开发过程,改进软件开发行为,为开发人员提供软件开发平台和环境,以提高软件生产率并改善软件产品的质量。
21世纪的软件生产将是一种大规模的工业化生产活动,以符合产品化质量要求的工业标准,实现软件生产自动化。
其突出特征是:
计算机真正成为人们的一种工具,用户即为系统分析员,“软件过程是软件”。
为达到这一目标,形式化技术与工程化技术必然是有机的统一体,并容纳其它相关的技术产生,产生一种新的软件生产方法、技术、规程以及相应的工业标准,并产生与之相适应的“傻瓜”CASE,为软件产业奠定坚实的基础,使软件走上工业化生产方式,形成规模经济。
1.6软件生存周期指制定计划、需求分析、设计、程序编码、测试及运行维护。
1.7软件开发模型有瀑布模型(WaterfallModel)、演化模型(EvolutionalModel)、螺旋模型(SpiralModel)、喷泉模型(WaterFountainModel)、智能模型(IntelligenceModel)。
1.8软件工程项目的基本目标是:
(1)付出较低的开发成本;
(2)达到要求的软件功能;(3)取得较好的软件性能;(4)开发的软件易于移植;(5)需要较低的维护费用;(6)能按时完成开发工作,及时交互使用。
1.9什么叫软件工程。
鲍姆(B.W.Boehom)曾为软件工程定义:
“运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料”。
这里对“设计”一词应有广义的理解,它应包括软件的需求分析和对软件进行修改时所进行的再设计活动。
1983年IEEE给出的定义为:
“软件工程是开发、运行、维护和修复软件的系统方法”。
其中“软件”的定义为:
计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所需要的数据。
费莱(Fairley)认为:
“软件工程学是为了在成本限额以内按时完成开发任务和修改软件产品所需的系统生产和维护的技术和管理的学科”。
鲍威尔(FritzBauer):
“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。
1968年,在北大西洋公约组织(NATO)召开的计算机科学会议上,FritzBauer首先提出了“软件工程”的概念,试图建立并使用正确的工程方法开发出成本低、可靠性好并在机器上能高效运行的软件,从而解决或缓解软件危机。
软件工程的研究除了计算机软件本身外,还涉及许多其它的领域,如管理科学、心理学、经济学、人机工程学等,所以,它是一门综合性的学科。
1.10软件工程三要素是:
方法、工具、过程。
2.1计算机系统的元素可分为:
(1)过程;
(2)硬件;(3)软件;(4)人;(5)数据库;(6)文档
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习题