《软件工程导论》第六版期末复习总结.docx
《《软件工程导论》第六版期末复习总结.docx》由会员分享,可在线阅读,更多相关《《软件工程导论》第六版期末复习总结.docx(19页珍藏版)》请在冰豆网上搜索。
《软件工程导论》第六版期末复习总结
软件工程
一、名词解释与问答
1、SA——结构化分析方法
2、画数据流图应注意什么事项?
(1)数据流名称只能是名词或是名词短语;
(2)每个加工至少有一个输入数据和一个输出数据流,反映出
此加工数据的来
源与加工的结果;
(3)编号:
某个加工分解成一张数据流图时,上层图为父类,
下层图为子类;
父图与子图的平衡:
子图的输入输出数据流同父类相应的输入输出数据流必须一致;
(4)注意数据流图的易理解性;
3、什么是软件生存周期?
它有那几个活动?
一个软件从提出开发要求开始直到该软件报废为止的整个时
期。
包括:
可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
4、什么是数据流图?
作用是什么?
其中的基本符号表示什么含
义?
以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。
箭头,表示数据流数据流是数据在系统内传播的路径,由一组
成分固定的数据项组成;
圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工;
双杆,表示数据存储指暂时保存的数据;方框,数据源点或终点软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中;
什么是数据字典简述数据字典与数据流图的关系.答案:
数据字典是关于数据的信息的集合,对数据流程图中的各
个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用.数据流图和对数据流图中每个元素的精确定义放在一起,才能共同
构成系统的规格说明.(3分)简述编码风格的重要性.答案:
阅读程序是软件开发和维护过程中的一个重要组成部分,
程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格
有助于编写出可靠而又容易维护的程序,编码的风格在很大程度
上决定着程序的质量.
简述软件测试的任务、目的与类型。
答:
软件测试是一个为了寻找软件错误而运行程序的过程。
目的就是为了发现软件中的错误。
一个好的测试用例是指很可能找到迄今为止尚未发现
的错误的用例。
一个成功的测试是指揭示了迄今为止尚未发现的
错误的测试。
软件测试
主要分为白盒测试和黑盒测试两大类。
可行性分析的目的和主要任务是什么?
答:
可行性分析的目的不是解决问题,而是确定问题是否值得去
解决。
主要任务是从下面几方面研究每种解法的可行性:
技术可行性,
经济可行性,操作可行
性,社会可行性,抉择可行性。
需求分析的目的和主要任务是什么?
答:
进行需求分析是为了准确地回答“系统必须做什么”这个问
题,决定可以做什么不做什么。
需求分析的主要任务是描述系统的功能需求、性能需求、数据需求、可靠性/可用性需求、出
错处理需求、接口需求、约束条件、其他需求。
软件维护的目的和主要任务是什么?
维护的类型有哪些?
答:
软件维护是软件生命周期中最后一个、持续时间最长的阶段。
主要任务是在软件已经交付使用之后,为了改正错误或满足新
的需要而修改软件,目的是提高软件的可靠性、可用性,延长软件的寿命。
维护的类型有:
改正性(错误)、适应性(环境)、
完善性(功能)、预防性(新产品)
什么是耦合?
模块的耦合包括哪些类型?
答:
耦合是对一个软件结构内不同模块之间互连程度的度量。
模块的耦合包括以下几种类型:
数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合,标记耦合,无耦合/非直接耦合
什么是内聚?
模块的内聚包括哪些类型?
答:
内聚标志着一个模块内各个元素彼此结合的紧密程度,它是
信息隐蔽和局部化概念的自然扩展模块的内聚包括以下几种类型:
低内聚一偶然内聚,逻辑内聚,时间内聚中内聚一过程内
聚,通信内聚;高内聚一顺序内聚,功能内聚
什么是编码风格?
为什么要强调编码风格?
答:
编码风格包括以下内容:
程序内部良好的文档(注释)、数据说明、语句构造、输入输出和效率保障等。
因为编码风格对软件的可读性、可维护性、可靠性、可用性很重要,所以要强调编码风格。
二、综合应用题
1、用PAD图描述下面问题的控制结构。
有一个表A
(1)、A
(2)、•…A(n),按递增顺序排列。
给定一个
Key值,在表中用折半法查找。
若找到,将表位置i送入X,否
则将零送到x,同时将key值插入表中。
算法:
置初值H=1(表头),T=N(表尾)。
置i=[(H+T)/2](取整)
若Key=A(i),则找到,i送到x;若Key>A(i),则Key在表的后半部分,i+1送入H;若KeyvA(i),则Key在表的前半部分,i-1送入T,重复第二步查找直到H>T为止。
查不到时,将A(i),……A(N)移到A(i+1)……A(N+1),Key
值送入A(i)中。
T「
Txi-1
Key^A[i]<
IT二:
X1l
wkile]and(HUT]
7
rt—1T1
T
!
=[Q{+T)]/2
7X=L
Key=A[订
討x=0
J=N
A[j+l]=A[j]
j=j-l
k[i]=K*y
四、填空题
1:
结构化方法是一种面向数据流的开发方法。
又结构化分析、_
结构化程序设计—、构成
2:
为了减少软件开发费用,缩短软件开发周期、减少软件内部潜在的错误,可以减少程序复杂性,以提高软件的简单性和—可理解性。
3:
结构化程序设计方法是使用三种基本控制结构—构造
程序。
4:
与编码风格有关的因素有数据说明、语句构造、输入输出、
效率等,其中还有一个重要的因素是_源程序文档化
5:
结构化程序设计方法是提倡开发人员的组织形式是—主程序
员组
6:
增量模型在开发过程中以一系列增量方式开发系统,忽略某
些阶段的细节,从而尽早产生—工作软件
7:
数据流图仅反映系统必须完成的逻辑功能,所以它是一种
功能模型
判断题:
1.在进行总体设计时应加强模块间的联系。
(N)
2.系统结构图是精确表达程序结构的图形表示法。
因此,有时
也可以将系统结构图当作系统流程图使用。
(N)
3.用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(N)
4.在程序调试时,找出错误的位置和性质比改正该错误更难。
(Y)
5.以对象、类、继承和通信为基础的面向对象设计方法(00D
也是常见的软件概要设计方法之一。
(Y)
6.如果通过软件测试没有发现错误,则说明软件是正确的。
(N)
7•快速原型模型可以有效地适应用户需求的动态变化。
(Y)
8.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于
得到高内聚,低耦合度的软件产品。
(Y)
9.集成测试主要由用户来完成。
(N)
10.软件危机完全是由于硬件问题引起的。
(N)
Warnier方法也是一种面向数据结构的设计方法,其逻辑更严
格.(x)
PAD图在设置了五种基本控制结构后,还允许递归调用.(x)
为了加快软件维护作业的进度,应尽可能增加维护人员的数
目.(x)
当验收测试通过,软件开发就完成了.(x)完成测试作业后,为了缩短源程序的长度应删除程序中的注
解.(x)
第二章:
可行性研究
1:
可行性研究实质上是一次简化,压缩了的(需求分析和设
计)
2:
可行性研究的三个方面是技术可行性、操作可行性、社会可行性和(经济可行性)
1.—数据流图和—数据字典―共同构成系统的逻辑
模型
1:
技术可行性要研究的问题之一是(D)
A:
存在侵权否B:
成本效益问题C:
运行方式可行
否D:
技术风险问题
2:
研究硬件资源的有效性是进行(A)研究的一
方面
A:
技术可行性B:
经济可行性C:
社会可行性D:
操
作可行性
三:
名词解释
1.可行性研究:
可行性研究实质上是要进行一次大大压缩简化
了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程;
2.技术可行性:
对待开发的系统进行功能、性能和限制条件的分析,确定在现有的资源条件下,技术风险有多大,系统能否实
现;
3.经济可行性:
这个系统的经济效益能超过它的开发成本吗?
4.社会可行性:
实用性怎样
四•问答题
1.可行性研究的任务是什么:
可行性研究最根本的任务是对以后
的行动方针提出建议。
2.可行性研究有那些步骤:
(1)复查系统规模和目标;
(2)
研究目前正在使用的系统;(3)导出新系统的高层逻辑模型;
(4)进一步定义问题;(5)导出和评价供选择的解法;(6)推荐行动方针;(7)草拟开发计划;(8)书写文档提交审查;
3.可行性研究的目的•:
可行性研究的目的不是解决问题,而是确定问题是否值得去解决;
五、数据流图的基本符号:
(1)正方形(或立方体)表示数据的源点或终点;
(2)圆角矩形(或圆形)代表变换数据的处理;
(3)开口矩形(或两条平行横线)代表数据存储;(4)箭头表示数据流,即特定数据的流动方向。
数据流图的作用:
1、便于用户表达功能需求和数据需求及其联系;
2、便于两类人员共同理解现行系统和规划系统的框架;
3、清晰表达数据流的情况;
4、有利于系统建模。
什么是数据流图:
数据流图从数据传递和加工的角度,以图形
的方式刻画数据流从输入到输出的移动变换过程。
六、数据字典:
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合;数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息;
七、成本/效益分析方法是可行性研究的一项重要内容,是客户组织负责人从经济角度判断是否继续投资于这项工程的主要依据;
应考虑:
①货币的时间价值;②投资回收期;③纯收入;④投资回收率
成本估计有:
①代码行技术;②任务分解技术;③自动估计
成本技术
第三章:
需求分析
一.填空题
1.需求分析阶段,分析人员要确定对问题的综合需求,其中最主
要的是(功能)需求
3.数据字典中,一般不出现的条件是(D)
A数据流B数据存储C加工D源点与终
占
八、、
8.需求分析阶段不适用于描述加工逻辑的工具是(D)
A结构化语言B判定表C判定树D流程
图
四.简答题
1.什么是需求分析?
该阶段的基本任务是什么:
需求分析是
发现、求精、建模、规格说明和复审的过程;准确定义未来系统
目标,确定为了满足用户的需要系统必须做什么;
2.简述结构化分析的步骤:
(1)系统分析员应该从不同的角度抽象出目标系统的特性;
(2)使用精确的表示方法构造系统的模型;(3)验证模型是否满足用户对目标系统的需求;(3)在
设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程
序实现模型;
第四章:
第五章:
总体设计
一.填空题
1.在软件概要设计阶段,建立软件结构后,还应该为每个模块写一份处理说明和(接口说明)
2.两个模块都使用同一张表,模块的这种耦合称为
(公共耦合)
3.一个模块内部各程序段都在同一张表上操作,这个模块
的内聚性称为(通信内聚)
4.软件结构是以(模块)为基础而组成的一种控制层次结
构
5.反映软件结构的基本形态特征是(深度,宽度,扇
入,扇出)
6.一个模块把数值作为参数传送给另一个模块,这种耦合方
式称为(数据耦合)
7.两个模块通过全程变量相互作用,这种耦合方式称为
(公共耦合)
8.一个模块的作用范围指(受该模块内一个判定影响的所有
模块)的集合
9.一个模块的控制范围指(模块本身以及其所有从属模
块)的集合
10.结构化设计以(数据流图)为基础映射成软件结构
11.为了防止软件概要设计的错误传播到开发后续阶段,在概要
设计文档完成以后,要进行(软件评
审)
5.耦合性:
耦合是指一个模块与其它模块之间的联系,又称为
块间联系,是模块之间相对独立性的度量;
6.内聚性:
内聚是指模块内部各个成分之间的关系,又称为块
内联系,是模块功能相对强度的度量;
7.模块的控制范围:
一个模块的控制范围是指该模块本身及其所属的(直接或间接调用的)所有模块的集合;
8.模块的作用范围:
受该模块内一个判定影响的所有模块的集合;9.软件结构:
软件结构图;
10.模块:
在软件中,通常把用一个名字就可以调用的一段程序称为模块;
3.模块的耦合性,内聚性包括那些内容?
其含义:
(1)低耦合:
非直接耦合,数据耦合,标记耦合;
(2)中耦合:
控制
耦合,外部耦合;(3)高耦合:
公共耦合,内容耦合;(4)低内聚:
偶然内聚,逻辑内聚,时间内聚;(5)中内聚:
过程内
聚,通讯内聚;(6)高内聚:
顺序内聚,功能内聚;
4.
为了提高模块
的
独
立
性,模块
内
部
最好
是
(
C)
A
逻辑内聚
B
时间内聚
C
功能
内
聚
D通信内聚
5.
为了提高模块
的
独
立
性,模块
之
间
最好
是
(
D)
A
公共耦合
B
控制耦合
C
内容
耦
合
D数据耦合
6.
结构化设计
方
法
在
软件开发中
卞,
用
于
(
B)
A测试用例设计
B
软件概要设计
C
程
序设计D软件详细设计
7.划分模块时,一个模块的(A)
A作用范围应该在其控制范围之内B控制范
围应该在其作用范围之内
制范围不受任何限制
第六章:
一.填空题
1.结构化程序设计方法的要点是使用(三种基本控制结
构),自顶向下,逐步求精地构造算法或程序
2.结构化分析的基本思想是采用(自顶向下逐步分解)方法,能有效的控制系统的复杂性
3.当数据流图中某个加工的一组动作存在着多个条件复杂组合
的判断时,其加工逻辑用(判定表或判定树)描述较好.
4.数据流图中有四种符号元素,它们是(数据流,加工,数据存储,数据源点和终点)
3.在详细设计阶段,一种历史悠久,使用最广泛的描述
程序逻辑结构的工具是(程序流程图)
4.结构化程序设计技术指导人们用良好的思想方法开发(容易
理解,容易验证)的程序
5.详细描述处理过程常用的三种工具是图形,语言和
(表格)
6.详细设计的目标不仅是逻辑上正确的实现每个模块的功
能,还应该使设计出的处理过程(清晰易读)
7.在详细设计阶段,除了对模块内的算法进行设计,还应该
对模块内的(数据结构)进行设计
A
数据流
B
数
据
结
构
C
数据库
D
程
序
1.
结构化程序
设计主
要
强调
的
是
(
C
)
A
程序的效率
B
程序的执行速
度
C程序的易读性
D
程序的规模
2.
详细设计的任务是确定每个模块的(
A
)
A
算法B
功能
C调
用
关
系
D输入输出数据
3.
结构化程序设计的种基本方法是(
D)
A
筛选法
B递归法
C
迭代
法
D逐步求精法
4.
程序的三
种基本
控
制结
构
是
2.结构化设计方法是一种面向(
方法
)的设计
(D)
3.详细设计主要使用那一个描述工具:
程序流程图,盒图,PAD
图,判定表,判定树。
4.结构化程序设计:
如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序时结构华的;
第七章:
实现
1.为了提高程序的易读性,同时减少错误,提高软件
开发效率,编码时注意养成良好的(程序设计风格)
1.
软件测试程序不在机器上运行,而是采用人工检测和计算
能多的)尚未被覆盖的合理等价类
)不合理等价类
模块)
增式)
序的过程
7.运行被测试程序的方法称为(动
态)测试
8.动态测试中,主要测试软件功能的方法称为(黑
盒)法
9.运行测试用例,使得被测试程序中每个判定分支至少执
行一次,这种逻辑覆盖标准称为(判定覆
)来设计测试用例的
例的
D输入数据
D输入数据
).
随机地选取测试数据取一切可能的输入数据作为测试数据在完成编码以后制定软件的测试计划
选择发现错误可能性大的数据作为测试用例
件组合覆盖
9.
(
软件测试过程中的集成测试主要是为了发现
B)阶段的错误
A
需求分析B
概要设计
C详细设
计
D编码
10.
不属于白盒测试的技术是
(D
)
A
路径覆盖B
判定覆盖
C循环覆
盖
rm
D边界值分析
11.
确认测试以(
A
)文挡作为测试的基
础
A
需求规格说明书
B设计说明书C源程
序
D开发计划
2.
与选择编程
语言无
关的因素是
(
C)
A
软件开发的方法
B软件执
行的环境
C程序设计风格D软
件开发人员的知识
3.源程序文档化要求在每个模块之前加序言性注释,该注释
内容不应该有(B)
A模块的功能B语句的功能C模块的
接口
D开发历史
1.
在结构化程序设计思想提出之前,
程序设计中曾强调程
序
的效率,
现
在人们
更重
视
程序的
(
D
)
A
技巧
性
B
保密
性
C
致性
D可理
解性
4.
提高程序
效率
的根本
途径
并
非在于
(
D
)
A
选择良好的设计方法
B
选择良好
的数据结构
C
法
选择
良
好的算
D对程序语句作调
整
5.
为了提高易读性,
源程序
内部应该加功能性注
释,
用于说明(
B
)
A
模块总的功能
B程序段或
语句的功能
C
模
块
参
数的
用
途
D
数据的用途
1.软件维护时,对测试阶段未发现的错误进行测试、诊断、定
位、纠错,直至修改的回归测试过程称为A
B、适应性
A、改正性维护
维护
C、完善性维护D、预防性
维护
三.名词解释
1.编码:
所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序;
2.程序设计风格:
所谓程序设计风格是指书写源程序的习
惯、程序代码的逻辑结构与习惯的编程技术。
从软件工程要求出发,程序设计风格应包括以下要素:
①源程序文档
化②数据说明③语句构造④输入输
出
白盒测试技术:
逻辑覆盖和基本路径覆盖
黑盒测试技术:
等价类划分、边界测试、错误推测、因果
图
软件测试步骤:
单元测试、集成测试和确认测试
四.简答题
1.在项目开发时,选择程序设计语言通常考虑那些因素:
人的思维和解题方式;人和计算机通信的方式和质量;其他人阅读和理解程序的难易程度;
2.什么是程序设计风格?
应该在那些方面注意培养良
好的设计风格?
(1)程序内部的文档;
(2)数据说明;(3)
语句构造;(4)输入输出;(5)效率;
第八章:
维护
1.填空题
1.为了识别和纠正软件在运行中的错误而进行的维护称为
(校正性)维护
2.在软件维护中,因修改软件而导致出现的错误或其它情
况称为(维护的副作用)
3.维护阶段是软件生存周期中时间最长的阶段,也是花费精
力和费用(最多)的阶段
4.在软件交付使用后,由于在软件开发过程中产生的错误
没有完全彻底在开发阶段发现,必然有一部分隐含错误带到
(维护)阶段
5.采用手工方法开发软件只有程序而无文挡,这是一种
(非结构化)维护
6.所有的软件维护申请报告要按规定方式提出,该报告也称
(软件问题)报告
2.选择题
1为了增加软件功能和性能而进行的软件修改维护过程是
(C)
A校正性维护B适应性维护C完善性维护D预防性维护
2.维护中,因修改全局或公共数据而引起的错误是
A文档副作用B数据副作用C编码副
作用D设
计副作用3.在软件生存周期中,时间长,困难大的阶段
是(D)
A
需求分析B编码
C测
试
D维护
4.
软件维护困难的主要原因是(C
)
A
费用低B人员少
C
开发方法的缺
陷
D维护难
5.
产生软件维护的副作用,是指(
C
)
A
开发时的错误B隐含的错误
C
因修改软件而造
成的错误D运行时误操作
3.名词解释
1.校正性维护:
满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的;
2.适应性维护:
对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件的活动;
3.完善性维护:
满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作;
4.预防性维护:
为了改善未来的可维护性或可靠性而修改软件的工作。
5.软件可维护性:
维护人员理解、改正、改动或改进这个软件的难易程度。
6.软件维护的副作用:
(1)编码副作用。
在使用程序设计语言修改原代码时可能引入的错误;
(2)数据副作用。
在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软
件错误。
数据副作用是修改软件信息结构导致的错误。
但它可以
通过详细的设计文档加以控制;(3)文档副作用。
如果对可执行软件的修改没有反映在文档中,就会产生文档副作用;
4.问答题
1.维护有那些类型?
其内容:
(1)校正性维护;
(2)适应性维护;(3)完善性维护;(4)预防性维护;