软件工程总复习.docx
《软件工程总复习.docx》由会员分享,可在线阅读,更多相关《软件工程总复习.docx(32页珍藏版)》请在冰豆网上搜索。
软件工程总复习
软件工程总复习
第1章:
基本概念
软件的含义、软件的特征、软件的分类、软件工程的定义;
软件危机的定义、表现;
第2章:
基本概念
几个软件工程模式(包括模式的特征、图形表示,等)
第3章:
结构化开发方法
(包括:
需求分析,设计)
基本概念:
软件需求,软件需求规格说明,数据流图(DFD),数据字典(DD),模块化,信息隐藏,聚合,耦合,事物流,变换流,模块的控制范围、影响范围及其关系等。
方法与原则:
会运用分析建模的各个方法(建立DFD、DFD的分层细化、DD及DFD与DD的关系)
DFD到程序结构图的转换
模块独立性的衡量指标;
第4章:
面向对象开发方法
1、面向对象方法的基本概念和特征:
对象、类、事物(及其分类)、关系(及其分类)、图(10种)、描述软件系统体系结构的5个互连视图等;
2、会画UML的用例图、类图和时序图等;
3、面向对象分析、设计的概念、包含的步骤;
如,目前流行的面向对象方法有哪些,
Yourdon方法的步骤,
OMT使用的三种模型是什么,
UML的特点,等
第7章:
软件测试
1、基本概念:
软件测试、黑盒测试、白盒测试、等价划分等;
2、主要白盒测试和黑盒测试技术;
3、测试的过程与步骤
4、会运用设计测试用例的方法设计测试用例
例如,逻辑覆盖、等价划分、边界值分析等
第8章:
软件维护
1、基本概念:
软件维护、改正性维护、适应性维护、完善性维护、预防性维护、维护的副作用等;
2、软件维护的分类(改正性维护、适应性维护、完善性维护、预防性维护)
3、软件维护的特点
4、软件维护任务、软件维护流程
5、软件维护的副作用
1.软件产品的特性是什么?
a.软件产品是一种逻辑产品。
b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。
c.软件产品不会用坏,不存在磨损、消耗问题。
d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。
e.软件费用不断增加,成本相当昂贵。
2.什么是软件危机?
其产生的原因是什么?
软件危机指的使软件开发和维护过程中遇到的一系列严重问题,包含两方面的问题:
如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件.
主要表现在以下几个方面:
A:
产品不符合用户的实际需要
B:
软件开发效率低
C:
软件质量得不到保证
D:
难以控制开发进度,工作量估计困难
E:
软件的可维护性差
F:
文档资料既不完整也不合格
G:
软件开发成本过高
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:
软件本身的原因:
软件规模、软件的特点
软件开发人员原因:
缺少正规训练、养成的坏习惯
其他原因:
资金、时间、盗版……
3.什么是软件工程?
它的目标和内容是什么?
软件工程:
用科学知识和技术原理来定义、开发、维护软件的一门学科。
软件工程的目标是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:
a.付出较低的开发成本;
b.面到要求的软件功能;
c.取得较好的软件性能;
d.开发的软件易于移植;
e.需要较低的维护费用;
f.能按时完成开发任务,及时交付使用;
g.开发的软件可靠性高;
软件工程的内容:
1)软件开发技术:
软件开发方法、软件开发过程、软件开发工具和环境。
2)软件开发管理:
软件管理学、软件经济学、软件心理学。
4.软件工程面临的问题是什么?
软件工程面临的问题:
a.软件费用。
b.软件可靠性。
c.软件维护。
d.软件生产率。
e.软件重用。
5.软件工程包含哪四个关键元素?
软件工程包含:
方法、语言、工具和过程四个关键元素。
6.什么是软件生存周期?
它有哪几个活动?
软件生存周期:
一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:
系统需求分析、软件需求分析、设计(概要设计、详细设计)、编码、测试、维护等.
7.什么是软件工程模式?
有哪些主要模型?
软件生存周期模型:
是描述软件开发过程中各种活动如何执行的模型。
(模型:
是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。
)
软件生存周期主要模型:
瀑布模型、原型开发模型、螺旋模型、四代技术、混合模型、面向对象生存期模型、统一的软件开发过程和基于构件的软件开发模型等
8.什么是需求分析?
需求分析阶段的基本任务是什么?
需求分析是指:
开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
需求分析阶段的基本任务是:
(1)问题识别(关键是沟通).用户分析员软件开发机构的管理和技术人员
(2)评价和综合,(对问题的评价和对解的综合).
(3)建模
(4)规格说明
(5)评审
1.从供选择的答案中选出应填入下列叙述中( )内的正确答案。
软件需求分析的任务不应包括(A),进行需求分析可使用多种工具,但(B)是不适用的。
在需求分析中,开发人员要从用户那里解决的最重要问题是(C)。
需求规格说明书的内容不应包括(D)。
该文档在软件开发中具有重要作用,但其作用不应包括(E)。
供选择的答案:
A:
①问题分析 ②信息域分析 ③结构化程序设计④确定逻辑模型
B:
①数据流程图②判定表③PAD图④数据词典
C:
①要让软件做什么②要给该软件提供哪些信息 ③要求软件工作效率怎样④要让该软件具有何种结构
D:
①对重要功能的描述②对算法的详细过程描述 ③软件确认准则④软件的性能 ①软件设计的依据 ②用户和开发人员对软件“要做什么”的共同理解 ③软件验收的依据④软件可行性分析的依据
9. 什么是结构化分析?
结构化分析是一种模型建立活动,SA方法使用独有的符号描述信息(数据和控制)流、内容和结构模型,划分系统的功能和行为,以及对其他在确定模型时不可缺少部分的描述。
3.结构化分析方法(SA)的一个重要指导思想是(A)。
供选择的答案:
A:
①自顶向下,逐步抽象③自顶向下,逐步分解 ②自底向上,逐步抽象④自底向上,逐步分解
3.1在结构化分析方法中,用以表达系统内数据的运动情况的工具有()。
供选答案:
A.数据流图B.数据词典
C.结构化英语D.判定表与判定树
10. 什么是数据流图?
其作用是什么?
其中的基本符号各表示什么含义?
数据流图:
简称DFD,也称为“泡泡图”,是SA(结构化分析)方法中描述信息流和数据从输入到输出变换的应用图形技术,能表示数据在系统内的变化。
是一种功能模型。
作用:
它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻功能.
基本符号有四种:
→,箭头,表示数据项;○,圆或椭圆,表示过程;=,双杠,表示数据存储;□,方框,表示外部实体.
2.从供选择的答案中,选出应填入下面叙述中( )内的最确切的解答。
在软件开发过程中常用图作为描述工具。
DFD就是面向(A)分析方法的描述工具。
在一套分层DFD中,如果某一张图中有N个加工,则这张图允许有(B)张子图。
在一张DFD图中,任意两个加工之间(C)。
在画分层DFD时,应注意保持(D)之间的平衡。
DFD中从系统的输入流到系统的输出流的一连串连续变换形成一种信息流,这种信息流可分为(E)两大类。
供选择的答案:
A:
①数据结构②数据流③对象④构件
B:
①0②1③1~N④0~N
C:
①有且仅有一条数据流②至少有一条数据流 ③可以有0或多条名字互不相同的数据流 ④可以有0或多条数据流,但允许其中有若干条名字相同的数据流
D:
①父图与子图③不同父图的所有子图 ②同一父图的所有子图④同一子图的所有直接父图E:
①控制流和变换流③事务流和事件流 ②变换流和事务流④事件流和控制流
11.什么是字据字典?
其作用是什么?
它有哪些条目?
字据字典:
简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.
作用:
1)为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述.
2)为分析人员查找数据流图中有关名字的详细定义而服务的.
3)它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.
条目:
数据流条目、数据存储条目、外部项条目、处理过程条目。
12.某银行的计算机储蓄系统功能是:
将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并打印出存款单给储户;如果是取款,系统计算清单储户。
请用DFD描绘该功能的需求,并建立相应的数据字典。
(1)数据流条目:
数据流名称:
存款单
别名:
无
简述:
储户存款时填写的项目
来源:
储户
去向:
记帐
数据流量:
未知
组成:
姓名+住址+存款类型+存款日期+利率
数据流名称:
取款单
别名:
无
简述:
储户取款时填写的项目
来源:
储户
去向:
统计
数据流量:
未知
组成:
姓名+住址+取款类型+取款日期+利率
数据流名称:
清单
别名:
无
简述:
储户取款后得到的项目
来源:
记录
去向:
储户
数据流量:
未知
组成:
姓名+住址+取款类型+取款日期+利率+余额
(2)数据存储条目:
数据存储名称:
账单
别名:
无
简述:
存放储户信息及其账目
组成:
姓名+住址+余额+存款类型+最后修改日期+利率
组织方式:
未知
查询要求:
能立即查询
(3)数据项条目:
未知
(4)加工条目:
加工名:
分类检查
编号:
无
激发条件:
接收到存/取款单
优先级:
优先
输入:
存/取款单
输出:
存/取款单
加工逻辑:
IF存款单THEN把存款单输出到统计
ELSE
把取款单输出到统计
ENDIF
加工名:
统计
编号:
无
激发条件:
取款单
优先级:
无
输入:
取款单
输出:
清单
加工逻辑:
根据账单检查此储户是否存在,不存在输出错误{
IF取款数<余额THEN余额=余额-取款数
输出清单到储户,输出现金到储户
ELSE
输出错误清单到储户ENDIF
加工名:
记录
编号:
无
激发条件:
存款单
优先级:
无
输入:
存款单
输出:
存款单
加工逻辑:
根据账单检查此储户是否存在,不存在则建立此储户{
余额=余额+存款数
输出存款单到储户
}
13.某旅馆的电话服务如下:
可以拨分机号和外线号码。
分机号是从7201至7299。
外线号码先拨9,然后是市话号码或长话号码。
长话号码是以区号和市话号码组成。
区号是从100到300中任意的数字串。
市话号码是以局号和分局号组成。
局号可以是455,466,888,552中任意一个号码。
分局号是任意长度为4的数字串。
要求:
写出在数据字典中,电话号码的数据条目的定义(即组成)。
答:
电话号码=分机号|外线号码
分机号=7201...7299
外线号码=9+[市话号码|长话号码]
长话号码=区号+市话号码
区号=100...300
市话号码=局号+分局号
局号=[455|466|888|552]
分局号=4{数字}4
14.软件设计的基本原理包括哪些内容?
软件设计的基本原理包括:
(1)抽象和细化
(2)模块化
(3)软件体系结构
(4)控制层次
(5)数据结构
(6)软件过程
(7)信息隐藏
15. 衡量模块独立性的两个标准是什么?
它们表示什么含义?
两个定性的度量标准:
耦合与内聚性
耦合性:
也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
聚合性:
也称块内联系。
指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
模块内元素联系越紧密,聚合性越高。
16. 模块间的耦合性有哪几种?
它们各表示什么含义?
耦合性有七种:
非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合
1非直接耦合:
在软件结构中,两个模块之间没有直接联系。
耦合程度最低,独立性最高。
2数据耦合:
调用时,被调用模块的输入和输出都只是简单的数据。
耦合程度较低。
3标记耦合:
如果两个摸块都要使用同一数据结构的一部分,不是采用全程公共数据区共享,而是通过模块接口传递数据结构的一部分(不是简单的数据)。
仍是低耦合。
4控制耦合:
一个模块把控制信息传递到另一个模块,对其功能进行控制。
中等程度的耦合。
5外部耦合:
把一个模块耦合到指定的设备、格式和通信协议上。
比较强的耦合。
外部耦合是必不可少的,但是必须加以限制,即使在一个软件结构中,这种模块的数目也应该尽可能地少。
6公共耦合:
多个模块引用同一个全程数据区。
较强的耦合公共耦合结构中,诊断问题既费时又困难。
7内容耦合:
当一个模块要直接使用存在于另一个模块内的数据或控制信息,或转入另一模块时出现的耦合。
最强和最坏的耦合。
这种耦合应坚决避免。
17. 模块的聚合性有哪几种?
各表示什么含义?
模块间的聚合性有6种:
偶然聚合、逻辑聚合、时间聚合、通信聚合、顺序聚合、功能聚合。
1偶然聚合:
一个模块内的各种元素之间没有任何的联系,这种关系比较松散的任务组成的一个模块。
缺点是模块的内容不易理解,不易修改和维护。
2逻辑聚合:
一个模块内的各种元素之间逻辑相关。
比巧合内聚要好一点。
3时间聚合:
一个模块各处理元素必须在一个有限的时间间隔内完成。
4过程聚合:
模块各处理元素之间存在一定的关系,并且必须按照某一特定的次序执行。
5通信聚合:
模块内所有处理元素引用同一个数据,对同一输入数据进行操作或产生同一个输出数据。
通信聚合虽然不是最高的聚合,但较已较前几种聚合要高很多。
6顺序聚合:
在这种模块内,一个元素的输出就是另一个元素的输入。
7功能聚合:
在模块内的所有元素只执行一个单一的功能。
功能聚合是聚合程度最高的内聚。
4.从供选择的答案中选出应填入下列叙述中的( )内的正确答案。
模块内聚度用于衡量模块内部各成分之间彼此结合的紧密程度。
(1)一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是(A)的。
(2)将几个逻辑上相似的成分放在同一个模块中,该模块的内聚度是(B)的。
(3)模块中所有成分引用共同的数据,该模块的内聚度是(C)的。
(4)模块内的某成分的输出是另一些成分的输入,该模块的内聚度是(D)的。
(5)模块中所有成分结合起来完全一项任务,该模块的内聚度是(E)的。
它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
供选择的答案:
A-E:
①功能性②顺序性③通信性④过程性 ⑤偶然性⑥瞬时性⑦逻辑性
5.从供选择的答案中选出正确的答案填入下面的( )中。
块间联系和块内联系是评价程序结构质量的重要标准,联系的方式、共用信息的作用、共用信息的数量和界面的(A)等因素决定了块间联系的大小。
在块内联系中,(B)块内联系最强。
SD方法的总则是使每个模块执行(C)功能,模块间传送(D)参数,模块通过(E)语句调用其他模块,而且模块间传送的参数应尽量(F)。
此外,SD方法还提出了判定的作用范围和模块的控制范围等概念。
SD方法认为,(G)应该是(H)的子集。
供选择的答案:
A:
①友好性②坚固性③清晰性④安全性
B:
①偶然性②功能性③通信性④顺序性
C:
①一个②多个
D:
①数据型②控制型③混合性
E:
①直接引用②CALL③中断④宏调用
F:
①少②多
G,H:
①作用范围②控制范围
6.从供选择的答案中选出应该填入下列关于软件设计的叙述的( )内的正确答案。
在众多的设计方法中,SD方法是最受人注意的,也是最广泛应用的一种,这种方法可以同分析阶段的(A)方法及编程阶段的(B)方法前后衔接,SD方法是考虑如何建立一个结构良好的程序系统,它提出了评价模块结构质量的两个具体标准——块间联系和块内联系。
SD方法的最终目标是(C),用于表示模块间调用关系的图叫(D)。
另一种比较著名的设计方法是以信息隐蔽为原则划分模块,这种方法叫(E)方法。
供选择的答案:
A,B:
①Jackson②SA③SP④Parnas
C:
①块间联系大,块内联系大②块间联系大,块内联系小 ③块间联系小,块内联系大④块间联系小,块内联系小
D:
①PAD②HCP③SC④SADT ⑤HIPO⑥NS
E:
①Jackson②Parnas③Turing④Wirth ⑤Dijkstra
7.从供选择的答案中选出应填入下列叙述中的( )内的正确答案。
软件设计中划分程序模块通常遵循的原则是要使各模块间的耦合性尽可能(A)。
三种可能的模块耦合是:
(B):
例如,一个模块直接引用另一模块中的数据。
(C):
例如,一个模块把开关量作为参数传送给另一个模块。
(D):
例如,一个模块把一个数值量做为参数传送给另一模块。
其中,(E)的耦合性最强。
供选择的答案:
A:
①强②适中③弱
B-E:
①公共耦合②数据耦合③逻辑耦合④外部耦合 ⑤内容耦合⑥控制耦合
11.从供选择的答案中,选出应填入下面叙述中的( )内的最确切的解答。
软件设计中划分模块的一个准则是(A)。
两个模块之间的耦合方式中,(B)耦合的耦合度最高,(C)耦合的耦合度最低。
一个模块内部的内聚种类中(D)内聚的内聚度最高,(E)内聚的内聚度最低。
供选择的答案:
A:
①低内聚低耦合③高内聚低耦合 ②低内聚高耦合④高内聚高耦合
B、C:
①数据②非直接③控制④内容
D、E:
①偶然②逻辑③功能④过程
8.从供选择的答案中选出应填入下列叙述中的( )内的正确答案。
结构化分析方法(SA)、结构化设计方法(SD)和Jackson方法是在软件开发过程中常用的方法。
人们使用SA方法可以得到(A),这方法采用的基本手段是(B);使用SD方法时可以得到(C),并可以实现(D),而使用Jackson方法可以实现(E)。
供选择的答案:
A,C:
①程序流程图②具体的语言程序 ③模块结构图及模块功能说明书 ④分层数据流程图和数据字典
B:
①分解与抽象③归纳与推导 ②分解与综合④试探与回溯
D,E:
①从数据结构导出程序结构 ②从数据流程图导出初始结构图 ③从模块结构导出数据结构④从模块结构导出程序结构
体系结构设计的目标是什么?
简述体系结构设计准则。
1、目的:
开发一个模块化的程序结构,并给出各个模块之间的控制关系。
另外,体系结构设计融合了程序结构和数据结构,接口定义能使数据流经程序。
2、体系结构设计的一组原则:
(1)模块大小(应该适中)
(2)深度和宽度与扇出和扇入(都应适当)
(3)判定的作用域和模块的控制域
一个好的结构,其作用域和控制域应满足下述条件:
对任何出现的条件或判定,作用域应当是条件或判定所在模块控制域的一个子集。
即所有受条件或判定影响的模块应从属于作出条件或判定的那个模块。
什么是模块的影响范围?
什么是模块的控制范围?
它们之间应该建立什么关系?
A、模块的影响范围:
受该模块内的一个判定影响的所有模块的集合。
B、模块的控制范围:
模块本身及其所有下属模块(直接或间接从属于它的模块)的集合。
C、一个模块的影响范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。
9.从下列关于模块化程序设计的叙述中选出5条正确的叙述。
供选择的答案:
(1)程序设计比较方便,但比较难以维护。
(2)便于由多个人分工编制大型程序。
(3)软件的功能便于扩充。
(4)程序易于理解,也便于排错。
(5)在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
(6)模块之间的接口叫数据文件。
(7)只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
(8)模块间的单向调用关系叫做模块的层次结构。
(9)模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
(10)一个模块实际上就是一个进程。
什么是"变换流"?
什么是"事务流"?
A、变换型数据流图是一个线性结构,由输入、变换和输出组成,变换是系统的中心。
变换输入端的数据流为系统的逻辑输入,输出端为系统的逻辑输出。
B、事务流的数据流图有一个事务处理中心。
它将输入分为许多相互平行的加工路径,然后根据输入的属性,选择某一加工路径。
.试述“变换流设计","事务流设计"的设计步骤。
变换流设计:
A.确定DFD中的变换中心。
B.设计软件结构的顶层和第二层-------变换结构。
①变换中心确定以后,就相当于决定了主模块的位置。
这就是软件结构的顶层,把它画在与变换中心相对应的位置上,其功能是对所有模块的控制。
②确定软件结构的第二层。
一般至少有三种功能的模块:
输入、输出和变换模块,它们可能是一个或多个。
C.设计中下层模块。
(输入模块下属模块的设计,输出模块下属模块的设计,变换模块下属模块的设计,设计的优化)
事务流设计:
a.确定事务处理中心和每条要加工路径。
b.设计事务流的DFD的软件结构。
软件结构包括一个接收分支和一个分派分支。
与变换流设计一样,接收分支的结构,就是从事务处理中心开始,向前移动,把一个一个变换转换为一个一个模块;分派分支的结构有一个分派模块,它管理所有下属的事务处理模块。
每个事务加工路径设计为相应的结构。
c.对事务处理中心的结构和每个事务加工路径的结构进行细化。
已知有一抽象的DFD图如下所示,请用SD方法画出相应的结构图。
高考录取统分子系统有如下功能:
(1)计算标准分:
根据考生原始分计算,得到标准分,存入考生分数文件;
(2)计算录取线分:
根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流程图,并将其转换为软件结构图。
(1)、数据流图:
(2)软件结构图:
图书馆的预定图书子系