软件工程复习及答案分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复习思考题

(一)软件工程概论

1.试说明“软件生命周期”的概念。

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。

2.论述瀑布模型软件开发方法的基本过程。

瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。

3.软件工程的基本原理有哪些?

1.用分阶段的生命周期计划严格管理

2.坚持进行阶段评审

3.实行严格的产品控制

4.采用现代程序设计技术

5.结果应能清楚地审查

6.开发小组的人员应该少而精

7.承认不断改进软件工程实践的必要性

4.从供选择的答案中选出正确答案填入下列叙述中的()内。

(1)软件开发时,一个错误发现得越晚,为改正它所付出的代价就()。

A)越大 B) 越小 C)越不可捉摸 D)越接近平均水平

(2)功能模型中描述处理流程的最基本成分为()。

A)数据流图和数据结构图 B) 数据流图和程序流程图

C)程序流程图和数据结构图 D) 数据流图和数据词典

(3)模块内聚用于衡量模块内部各成分之间彼此结合的紧密程度。若一组语句在程序的多处出现,为了节省空间把这些语句放在一个模块中,则该模块的内聚类型是()。

A) 功能内聚 B)通信内聚 C)偶然内聚 D)逻辑内聚

(5)结构化分析方法(SA)是在软件开发过程中常用的方法,这个方法采用的基本手段是()。

A)分解与抽象 B)分解与综合 C)归纳与推导 D)试探与回溯

(6)原型化方法是用户和设计者之间执行的一种交互过程,适用于()系统。

A)需求不确定性高的 B)需求确定的 C)管理信息 D)决策支持

(7)软件测试的目的是()。

A)评价软件的质量 B)发现软件的错误

C)找出软件中的所有错误 D)证明软件是正确的

(8)在软件生存周期中,()阶段所占的工作量最大,约70%。

A)分析 B)设计 C)编码 D)测试 E)维护

(二)软件需求分析

1.软件需求分析是软件过程中交换意见最频繁的步骤。为什么交换意见的途径会经常阻塞?

软件需求分析过程中,由于最初分析员对要解决的问题了解很少,用户对问题的描述、对目标软件的要求也很凌乱、模糊,再加上分析员和用户共同的知识领域不多,导致相互间通信的需求。首先,由于分析员和用户之间需要通信的内容相当多,业务知识上的不足,表达方式的不足,可能对某些需求存在错误解释或误解的可能性,造成需求的模糊性。其次,用户和分析员之间经常存在无意识的“我们和他们”的界限,不是按工作需要组成统一的精干的队伍,而是各自定义自己的“版图”,并通过一系列备忘录、正式的意见书、文档,以及提问和回答来相互通信。历史已经证明,这样会产生大量误解。忽略重要信息,无法建立成功的工作关系。

2.数据流图的作用是什么?它有哪些基本成分?

数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。

3.数据字典的作用是什么?它有哪些基本条目?

数据字典(简称DD)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。

4.从供选择的答案中选出正确答案填入下列叙述中的()内。

原型化方法是用户和设计者之间执行的一种交互过程,适用于( A )系统。它从用户界面设计开始,首先形成( B ),用户( C )并就( D )提出意见。它是一种( E )型的设计过程。

A:①需求不确定性高的②需求确定的③管理信息④决策支持

B: ①用户界面使用手册②界面需求分析说明书

③系统界面原型④完善的用户界面

C: ①改进界面的设计②使用和不使用哪种编程语言

③程序的结构④运行界面原型

D: ①同意什么和不同意什么②使用和不使用哪种编程语言

③程序的结构④执行速度是否满足要求

E: ①自外向内②自顶向下③自内向外④自底向上

(三)软件设计

1.模块独立性与信息隐蔽有何关系?

2.模块的内聚程度与模块在分层结构中的位置有关系吗?说明你的论据。

答案:模块的内聚性与该模块在分层模块结构中的位置无关。事实上,一个好的模块化的程序系统,它所有的模块可以都是功能内聚的,即每一个模块就只干了一件事。用结构化设计方法建立起来的模块结构中的每一个模块都符合这个要求。把讨论范围再拓宽点,在纯面向对象范型的软件系统中,整个系统看作是一个类,它的子类可以看作是系统的子系统或高层模块,它们还可以有子类,……,这就形成一个类的层次结构。类的构造可以看成是一个抽象数据类型,实际上是信息内聚的。所以整个系统中从上到下,所有模块(对象类)都是信息内聚的模块。

3.耦合的概念和软件的可移植性有什么关系?请举例说明你的论述。

耦合是对一个软件结构内不同模块之间互联程度的度量。

耦合强弱取决于模块之间接口的复杂程度。在软件设计的时候应该追求尽可能松散耦合系统。由于模块之间联系简单,发生在一处的错误传播到整个系统的可能性很小,因此,模块之间的耦合程度对系统的可理解性,可测试性,可靠性和可维护性有很重要的影响。内聚是对模块内各元素彼此结合的紧密程度的度量。

4.从供选择的答案中选出正确答案填入下列关于软件设计叙述中的()内。

在众多的设计方法中,SD方法是最受人注意的,也是应用最广泛的。这种方法可以同分析阶段的( A )方法及编程阶段的( B )方法前后衔接。SD方法是考虑如何建立一个结构良好的程序,提出了评价模块质量的两个具体标准——块间联系和块内联系。SD方法的最终目标是( C )。

A,B: ①Jackson(B)②SA(A)③SC ④Parnas

C: ①块间联系大,块内联系小②块间联系大,块内联系大

③块间联系小,块内联系小④块间联系小,块内联系大

5.从下列关于模块化程序设计的叙述中选出5条正确的叙述。

(1)程序设计比较方便,但比较难以维护。

相关文档
最新文档