软件工程选择Word下载.docx
- 文档编号:16184650
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:11
- 大小:23.93KB
软件工程选择Word下载.docx
《软件工程选择Word下载.docx》由会员分享,可在线阅读,更多相关《软件工程选择Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
层次图和HIPO图是概要设计中的工具图;
程序流程图、N-S图、问题分析PAD图、设计程序语言PDL是详细设计中的工具图
(7)在软件开发中,下面任务不属于设计阶段的是______。
A.数据结构设计
B.给出系统模块结构
C.定义模块算法
D.定义需求并建立系统模型
(7)[答案]D
A、B为概要设计中的,C为详细设计中的,D为分析阶段中的
(14)结构化程序设计主要强调的是______。
A.程序的规模
B.程序的易读性
C.程序的执行效率
D.程序的可移植性
(14)[答案]B
又是结构化的问题,何谓结构化?
简单地比如:
VB:
If...EndIf
C:
if..{...}
Pascle:
Begin...End
我们在"
结构"
的中间写代码,从哪执行到哪结束我们能很快抓住!
此题中重要性为:
B>
C>
D
(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
A.概要设计
B.详细设计
C.可行性分析
D.需求分析
(15)[答案]D
题中所述为需求分析
可行性研究包括经济可行性、技术可行性、操作可行性,即以最小的代价确定系统的规模是否现实
概要设计的任务是确定软件的总体结构、子结构和模块的划分
详细设计的任务是确定每一模块的实现细节,包括数据结构、算法和接口。
有些同学还不知道什么叫系统,什么叫模块。
软件工程中的系统指的整个软件系统,比如QQ的所有东西,我们用的是客户端程序,实际的东西放在腾讯公司的服务器上,主要是数据库,包括在中间的传输过程,这一整个相关的东西都叫做OICQ的系统;
什么叫模块,这里不单指如VB里的"
标准模块"
、"
类模块"
,也不单指一个窗体或者一个文件,宏观上讲,软件工程中把一种功能或相关功能把它做成一个模块,这个模块有可能是一个过程,有可能是一个函数…从功能角度度量模块内的联系为模块的内聚(一般来说越强越好,不易出错);
模块之间的联系为耦合,比如我们编程中常用把一实参的值赋给了函数中的形参,使函数完成某一功能,耦合度越低越好,独立性就强;
何谓独立性?
比如我们二级编程都有考到全局变量、局部变量,函数中的局部变量独立性很强,函数外无法访问…
(16)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下列图符名标识的图符不属于数据流图合法图符的是______。
A.控制流
B.加工
C.数据存储
D.源和终点
(16)[答案]A
数据流图用于需求分析阶段,在此阶段我们只考虑大致的数据流流向,而不关心内部具体的处理,以及如何在计算机上实现,不必讨论控制流,我们只关心的:
数据流、数据储存、变换/加工(相当于一个黑盒,不关心内部细节)、外部实体,数据流图通俗易懂,因为它远离了计算机,用户(无需懂编程)和软件人员都易接受。
(17)软件需求分析阶段的工作,可以分为四个方面:
需求获取、需求分析、编写需求规格说明书以及______。
A.阶段性报告
B.需求评审
C.总结
D.都不正确
(17)[答案]B
评审(复审)每阶段都有,把前三个方面说完了,还剩什么呢?
此题需要记一下,至于各名词的解释,顾名即可思义。
(24)对建立良好的程序设计风格,下面描述正确的是______。
A.程序应简单、清晰、可读性好
B.符号名的命名要符合语法
C.充分考虑程序的执行效率
D.程序的注释可有可无
(24)[答案]A
结构化程序设计中力求程序的可读性(如代码清晰,结构明了,附加注释……),故D错;
如果程序写的都是错的,谈何风格?
如果符号名的命名不符合语法,编译会报错,也是很基本的错误,B错;
追求程序的可读性要高于执行效率,C错。
(25)下面对对象概念描述错误的是______。
A.任何对象都必须有继承性
B.对象是属性和方法的封装体
C.对象间的通讯靠消息传递
D.操作是对象的动态性属性
(25)[答案]A
此题为基本概念,必记!
这里举几个例子说明以助大家理解:
比如
VB:
Command按纽类是个类,在窗体上画一个名为Command1的按纽即是创建该类的一个实例,也可创建另外一个实例如Command2,他们的属性可以调置为不同的,但是都是Command类的实例。
Command1,Command2都是对象,它们封装了属性和方法,都是封装体,比如Name属性,Caption属性……宏观上可说Command1的Move操作是动态属性,对象间的通读靠消息传递,比如在Command1的单击事件中写上:
Picture1.Print"
消息传递"
Picture1是一个图片框对象,我们还可以调用Form_Load事件等等,都是通过消息传递的,即对象A向对象B发出消息,对象B执行怎样的操作。
C++:
classBase
{
Public:
Base(){}
~Base(){}
...
};
classDerive:
PublicBase
Print()
Cout<
<
"
打印函数!
endl;
}
voidmain()
Derivea;
Base*p;
Base为基类,Derive为基类上的派生类,它继承了基类的一些属性和方法等,a为创建的实例,即是一个对象,它封装了类Derive的所有性性和方法,特别是私有的属性和方法,直接调用它们会失败,这就是类的封装性。
对象间的通讯是靠消息传递的,比如我们在内存中删除p所指的一个对象,用deletep语句,会调用类Base的析构函数~Base();
我们也可用a.Print()语句来调用Derive类的Print()函数,对象a具有类Derive的属性和方法(在C++中一般用函数来实现,比如Print(),我们可以说这操作是对象a的动态属性)
(26)下面不属于软件工程的3个要素的是______。
A.工具
B.过程
C.方法
D.环境
(26)[答案]D
这里阐述一下,以上答案为原稿的答案,有的书上答案应该为B,解释如下:
软件工程包括的三要素是:
软件开发方法学、工具和环境支持,而其主体内容是软件开发方法学。
1、软件开发方法,比如根据瀑布模型有结构化分析与设计方法,有原型化开发方法
2、软件开发工具各个瀑存模型阶段都有相关工具,比如需求分析阶段有DFD数据流程图,详细设计阶段有HIPO图或PAD图,编码工具有VC、VB……
3、软件开发环境是全面支持软件开发全过程的软件工具集合。
此题的争论,意义性不大,燃眉之急是应付考试。
软件工程三要素工具、方法、过程,请大家记一下。
(27)程序流程图(PFD)中的箭头代表的是______。
A.数据流
B.控制流
C.调用关系
D.组成关系
(27)[答案]B
如果A,那么B,否则C,这是我们二级中很熟悉的程序流程方式,我们可以画成相应的PFD图或N-S图。
易知箭头控制应该是哪条语句执行,即B答案。
(34)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送______。
A.调用语句
B.命令
C.口令
D.消息
(34)[答案]D
通过消息机制。
太理论方面的不多说,现举例说明。
比如在VC++中,单击了一个菜单命令项"
退出"
,我们要实现退出程序,如何来实现?
很简单,只要向窗体发送一个PostQuitMessage(0);
就可以关闭窗体。
这个在VB中还简单,三个字符"
End"
即可解决,相当于向所有窗体发送一个销毁窗体的消息,即"
Unload窗体名"
语句。
(如果是单个窗体的话,即相当于UnloadMe语句)
PublicaAsInteger
PrivateSubCommand1_Click()
a=20
Printa
EndSub
PrivateSubCommand2_Click()
Form_Load'
'
这里调用Form_Load()过程,实用a=10
PrivateSubForm_Load()
a=10
命令按纽Command2向其母窗体发送一个消息,使其为Command2服务。
Command2是CommandButton类的一个对象,主窗体是窗体类的一个对象。
关于类与对象的理解,请大家看前面的题的详解。
(35)检查软件产品是否符合需求定义的过程称为______。
A.确认测试
B.集成测试
C.验证测试
D.验收测试
(35)[答案]A
A、C、D相近,但A为比较正规的说法名词。
确认测试也称合格测试或验收测试,主要由用户参加,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节。
单元测试主要采用白盒法,之后再采用集成测试,主要采用黑盒法。
这些主要由开发者的工作,而无用户参与,不是检查是否符合需求定义的。
什么叫白盒黑盒?
相当于这样理解吧:
白盒测试,我们要注意到代码;
黑盒,我们只关心程序运行的输入输出是否正确,一般是大量的测试,主要于非增量测试中使用,而非增量测试又一般适用于规模较小的系统开发。
可以想象,一个很大很复杂的系统,我们用黑盒法来集成测试,效果可想而知。
(36)下列工具中属于需求分析常用工具的是______。
A.PAD
B.PFD
C.N-S
D.DFD
(36)[答案]D
PAD,问题分析图,常用于详细设计;
PFD,程序流程图,常用于详细设计,我们很多如C、VB…程序设计书上都有简单的实例;
N-S,方框图,比程序流程图更灵活,也常用于详细设计;
DFD,数据流图,远离具体在计算机上的实现,不懂计算机的用户也能看懂,用于需求分析。
什么叫详细设计?
它与我们编程有什么区别?
这样理解吧,公司的高级程序员,就是软件设计师,他们会搞详细设计的(在概要设计之后),比如用PAD或N-S画个图,它不涉及具体的某种程序设计语言的实现,但程序员们都能看懂,程序员再用某种语言(比如C、VB、JAVA…)按照图来写代码。
这个过程,高级程序员完成设计工作,程序员完成写代码工作。
(37)下面不属于软件设计原则的是______。
A.抽象
B.模块化
C.自底向上
D.信息隐蔽
(37)[答案]C
我们无论是设计与编写代码,无论是画数据流图还是程序流图,习愦性思维都是先有输入才有输出,从下至下。
自底向上不是软件设计的原则。
(45)信息隐蔽的概念与下述哪一种概念直接相关______。
A.软件结构定义
B.模块独立性
C.模块类型划分
D.模拟耦合度
(45)[答案]B
模块独立性越强,则信息隐蔽性越好。
举个例,
在多重窗体设计时,每个窗体里的变量尽量与其它窗体里变量无关,比如少用Public声明的变量,即全局变量,当多个窗体共享全局变量越多时,窗体的独立性就越差。
头文件里的一些函数,一般不用到全局变量,否则在主程序里出乱子的情况很多,我们在模块化开发时,尽量使每个模块独立,强功能内聚,分工明确,调试程序也要方便得多。
类的封装性就是一个很好的说明。
(46)面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是______。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题从而自然地解决问题
D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考
(46)[答案]C
我们举个例,
从各种语言的结构体类型出发,我们知道,结构体中可以定义很多变量,对每个变量执行相同的操作,挨个挨个写出,很麻烦。
假设该结构体有如下变量:
草鱼、田鱼、鲫鱼……
它们都在一口池塘里,现在执行:
它们都上来
传统的程序设计是:
草鱼上来
田鱼上来
鲫鱼上来
……
一条一条都写出,是不是很麻烦?
改进一下,我们用个循环:
n等于从1到10(假设共有10种鱼)
第n种鱼上来
还是很麻烦,现实中我们很易想到用"
面向对象的思想"
,池塘里所有的鱼都是一个结构体变量,名为鱼,执行:
鱼上来
意思即所有的鱼都上来。
现特定于面象对象语言中的类,鱼,就可以看作为一类。
这就属于C项:
使用现实世界的概念抽象地思考问题从而自然地解决问题。
(47)在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A.详细设计
C.总体设计
D.编程调试
(47)[答案]C
从先到后一排,是:
需求分析、总体设计、详细设计、编程调试
需求分析远离在计算机上的实现,谈不上功能的分解;
有了需求分析的报告,软件设计员可以思考我要让软件怎么做,开始总体设计,其间将软件的功能分解,确定模块之间的接口;
有了每个模块功能的分解,再对每个模块进入详细设计阶段;
接下来再是程序员的任务,编写代码,开始编程调试。
(48)软件调试的目的是______。
A.发现错误
B.改正错误
C.改善软件的性能
D.挖掘软件的潜能
(48)[答案]B
(55)在设计程序时,应采纳的原则之一是______。
A.程序结构应有助于读者理解
B.不限制goto语句的使用
C.减少或取消注解行
D.程序越短越好
(55)[答案]A
前面的题中已解释过,二级的各种程序设计语言教程都会对结构化程序设有一定的介绍,比如goto语句的限制使用,基本上每本书上都会提到。
其中A,即易读性比程序的效率更显得重要,这是结构化程序设计原则提倡的,也是我们进行开发时非常重要的一点。
(56)下列不属于软件调试技术的是______。
A.强行排错法
B.集成测试法
C.回溯法
D.原因排除法
(56)[答案]B
耍个小聪明:
)
我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;
测试有很多种,比如未发现错误但不能保证程序没错而来找BUG,还比如我们运行测试程序是否符合用户的要求,是主动的。
不用说答案就是B了:
A、C、D都是具体的程序调试方法,而B是宏观的程序测试方法。
测试有单元测试、集成测试、确认测试、系统测试。
比如我们在进行单元测试时,发现程序有错误,我们再可以根据A、C、D的方法来找错误。
(57)下列叙述中,不属于软件需求规格说明书的作用的是______。
A.便于用户、开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
(57)[答案]D
A、B、C都是作用,D说法有一定的错误,开发人员包括很多,比如程序员的工作就不是进行需求分析。
(58)在数据流图(DFD)中,带有名字的箭头表示______。
A.控制程序的执行顺序
B.模块之间的调用关系
C.数据的流向
D.程序的组成成分
(58)[答案]C
顾名思义,数据流图就是带有方框(外部实体)、圆圈(变换/加工)和带有名字的箭头以表示数据的流向。
需求分析中常用的分析图,它远离计算机上的具体实现,软件人员和用户都能看懂,有益于和用户交流。
(65)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。
A.模块间的关系
B.系统结构部件转换成软件的过程描述
C.软件层次结构
D.软件开发过程
(65)[答案]B
相当于详细设计,比如N-S图就是一种,它不用具体的某种语言实现,但描述了程序的思路,有了这就可以很轻松转换为某种语言的程序源代码。
这是一种系统结构部件转换成软件的过程描述。
(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。
A.PAD图
B.N-S图
C.结构图
D.数据流图
(66)[答案]B
(70)需求分析阶段的任务是确定______。
A.软件开发方法
B.软件开发工具
C.软件开发费用
D.软件系统功能
(70)[答案]D
据前面的题的解释,相信大家对需求分析有个理性认识了。
分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段,用户也参与,确定软件系统功能是一个重要的任务。
(75)下列不属于结构化分析的常用工具的是______。
A.数据流图
B.数据字典
C.判定树
D.PAD图
(75)[答案]D
通过前面题的解释,数据流图属于分析阶段相信大家都有所了解了。
数据字典也是一种分析阶段的工具。
什么叫数据字典,我们可以这样理解。
假设给了你一个数据流图,但上面的文字说明,比如"
看书"
练习"
考试"
拿证书"
…(假设这些是数据(知识)的处理过程,但可能有些人认为有个"
测试"
,实际上他的意思是"
,如果写在数据流图上,其它人认为是"
练习测试"
的意思,这就造成了数据流图不一致的理解,而数据流图是开发人员和用户都能看懂的,理解肯定是一致的。
所以必须有个数据字典,它标识了数据流图的所有名词述语,就好比我们用英汉词典一样,不会再有不一致的理解了。
判定树和判定表都是加工描述方法,当然也是分析阶段的。
PAD图(问题分析图)是详细设计阶段的工具,它的作用类似于程序流程图和N-S图。
关于程序流图和N-S图,二级很多科目都有介绍,前面的题中我也解释过。
(76)软件开发的结构化生命周期方法将软件生命周期划分成______。
A.定义、开发、运行维护
B.设计阶段、编程阶段、测试阶段
C.总体设计、详细设计、编程调试
D.需求分析、功能定义、系统设计
(76)[答案]A
我们可从一个软件的从无到有的过程来看,就是分析人员先分析,开发人员再开发,最终运行和维护。
(77)在软件工程中,白箱测试法可用于测试程序的内部结构。
此方法将程序看做是______。
A.循环的集合
B.地址的集合
C.路径的集合
D.目标的集合
(77)[答案]C
白盒测试,我们要深入源代码的内部;
而黑盒测试,我们只关心输入与输出数据是否符合要求。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 选择