沈师软件工程期中考试复习材料.docx
- 文档编号:12273451
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:17
- 大小:26.08KB
沈师软件工程期中考试复习材料.docx
《沈师软件工程期中考试复习材料.docx》由会员分享,可在线阅读,更多相关《沈师软件工程期中考试复习材料.docx(17页珍藏版)》请在冰豆网上搜索。
沈师软件工程期中考试复习材料
填空:
2.软件工程方法学三个要素:
(方法)(工具)(过程)
3.软件工程方法学包含(技术)、(管理)两方面内容,是(技术)与(管理)紧密结合所形成的学科。
5.可行性研究阶段的任务中一般来说应该从(技术)可行性、(经济)可行性、(操作)可行性等3个方面研究每种实现方案的可行性
7.需求分析过程应该建立3种模型,它们分别是(数据模型)、(功能模型)和(行为模型)。
8.按照形式化的程度,可以把软件工程使用的方法划分成(非形式化)(半形式化)(形式化)等3类
9.验证软件需求应该从以下4个方面进行验证,即(一致性)、(完整性)、(现实性)和(有效性)
10.需求分析的任务包括系统综合需求、数据需求、导出逻辑模型和修正系统开发计划等。
其中常见的接口需求有:
用户接口需求、(硬件接口需求)、(软件接口需求)和通信接口需求等等。
11.需求分析的任务包括(确定对系统的综合要求)、(分析系统的数据要求)、(导出系统的逻辑模型)和修正系统开发计划等。
12.需求分析的任务包括系统综合要求、数据要求、导出逻辑模型和修正系统开发计划等。
其中设计约束或实现约束常见的有:
(精度)、工具和语言约束、(设计约束),应该使用的标准和应该使用的(应该使用的硬件平台)等
13.总体设计过程通常由(系统设计阶段)和(结构设计阶段)两个主要阶段组成。
14.软件结构图中,模框之间若有直线连接,表示他们之间存在(调用)关系。
15.模块设计中,最不希望的内聚是(偶然)内聚。
16.软件设计一般包括(总体设计)和详细设计阶段等两个阶段,在软件设计过程中应遵循的基础原理和相关概念有(模块化)(抽象)(逐步求精)(信息隐藏和局部化)和(模块独立)。
17.结构设计是一种应用最广泛的系统设计方法,是以(数据流)图为基础、自顶向下、逐不求精和模块化的过程。
18.面向数据流的软件设计方法,一般把数据流图中数据流划分为(交换流)和(事务流),再将事务流图映射为软件结构。
19.在设计人机界面的过程中,必须充分重视并认真处理好(系统响应时间)、(用户帮助设施)、(出错信息处理)、和(命令交互)等四个问题。
20.程序的三种基本控制结构是(顺序)、(选择)、和(循环)。
21.在详细设计阶段、采用的工具有(程序流程图)、(盒图)、(PAD图)、(判定表)、(判定树)、和(过程设计语言)。
22.详细设计的目标包括(逻辑上正确地实现每个模块的功能)和(设计出的处理过程应该尽可能的简明易懂)。
23.Jackson图既可用表达程序结构、也可用表达(数据结构)。
24.衡量系统响应时间的两个重要性是(长度)和(易变形)。
25.用户界面设计指南只要包括(一般交互指南)、(信息显示指南)和(数据输入指南)。
26.为算法中包含多重嵌套的条件选择时,使用(判定表)能够清晰的表示复杂的条件组合与应作的动作的对应关系。
大型软件的测试应该分阶段进行,通常至少分为(单元测试)、(集成测试)和(验收测试)三个基本阶段。
27.软件测试的两类基本方法是白盒测试和黑盒测试,通常在测试过程的早期阶段使用(白盒测试),而在后期阶段使用(黑盒测试)。
28.大型软件系统的测试过程基本上是模块测试、(子系统测试)、系统测试、(验收测试)、平行运行。
一般来说,软件调试途径主要有以下3种,即(蛮干法)、(回溯法)、(原因排除法)。
名词解释:
1.软件工程:
是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
2.软件过程:
为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
3.软件危机:
计算机软件的开发和维护过程中所遇到的一系列严重问题。
4.软件生命周期:
是指软件从提出到最终被淘汰的这个存在期。
5.数据流图:
数据流图是一种图形化技术,它描绘信息流和数据从输入到输出的过程中所经受的变换。
6.数据字典:
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
7.系统流程图:
系统流程图是概括的描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。
8.软件项目的纯收入:
衡量工程价值的另一项经济指标是工程的纯收入,也就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。
9.技术可行性:
使用现有技术能实现这个系统。
10.实体—联系图(ER图):
描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。
11.状态转换图:
简称状态图。
通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
12.IPO图:
IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便的描绘输入数据、对数据的处理和输出数据之间的关系。
13.Petri网:
Petri网包含4种元素:
一组位置P、一组转换T、输入函数I以及输出函数O。
14.HIPO图:
是层次图加输入/处理/输出图,为了能使HIPO图具有可追踪性,在H图里除
了最顶层的方框之外,每个方框都加了编号。
15.模块独立:
模块化、抽象、信息隐藏和局部化概念的直接结果。
16.耦合:
是对一个软件结构内不同模块之间互连程度的度量。
17.内聚:
标志着一个模块没各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
18.抽象:
就是抽出事物的本质特性而暂时不考虑他们的细节。
19.模块:
是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符。
20.模块化:
就是把程序划分成独立命名且课独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
21.变换流:
进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。
当数据流图具有这些特征时,这种信息流叫做变换流。
22.事物流:
这种数据流是“以事物为中心”,也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。
23.结构化程序设计:
如果一个程序的代码块仅仅通过顺序、选择、和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
24.软件测试:
为了发现程序中的错误而执行程序的过程。
25.软件可靠性:
程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
26.软件可用性:
程序在给定的时间点,按照规格说明书的规定成功地运行的概率。
27.白盒测试:
如果已经知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
28.黑盒测试:
如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用。
29.集成测试:
测试和组织软件的系统化技术,主要目标是发现与接口有关的问题。
30.确认测试:
也称为验收测试,它的目标是验证软件的有效性。
简述题:
1.软件工程包括哪7条基本原理?
1)用分析阶段的生命周期计划严格管理;
2)坚持进行阶段评审;
3)实行严格的产品控制;
4)采用现代程序设计技术;
5)结果应能清楚地审查;
6)开发小组的人员应该少而精;
7)承认不断改进软件工程实践的必要性。
2.简要说明软件生命周期包括哪三个时期?
各个时期包括哪些阶段活动?
概括说明传统瀑布模型软件开发有哪些特点?
答:
软件生命周期包括软件定义、软件开发、运行维护3个时期。
软件定义时期包括问题定义、可行性研究、需求分析。
软件开发时期包括总体设计、详细设计、编码和单元测试、综合测试。
运行维护时期的主要任务是使软件持久地满足用户的需要。
瀑布模型开发的特点:
1、阶段间具有顺序性和依赖性;2、推迟实现的观点;3、质量保证的观点。
3.软件生命周期的8个阶段分别是什么?
答:
问题定义;可行性研究;需求分析;总体设计;详细设计;编码和单元测试;综合测试;软件维护。
4.什么是软件危机?
它有哪些典型表现?
为什么会出现软件危机?
答:
软件危机是计算机软件的开发和维护过程中所遇到的一系列严重问题。
1)对软件开发成本和进度的估计常常很不准确;
2)用户对完成的软件系统不满意的现象经常发生;
3)软件产品的质量往往靠不住;
4)软件常常是不可维护的;
5)软件通常没有适当的文档资料;
6)软件成本在计算机系统总成本中所占的比例逐年上升;
7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。
出现软件危机,一方面与软件本身特点有关,另一方面也和软件开发与维护的方法不正确有关。
5.什么是软件工程?
它有哪些本质特性?
怎么样用软件工程消除软件危机?
答:
软件工程是指导计算机软件开发和维护的一门工程学科。
软件工程的本质特性:
1)软件工程关注于大型程序的构造;
2)软件工程的中心课题是控制复杂性;
3)软件经常变化;
4)开发软件的效率非常重要;
5)和谐地合作是软件开发的关键;
6)软件必须有效地支持它的用户;
7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。
消除软件危机的基本原理:
1)用分阶段的生命周期计划严格管理;
2)坚持进行阶段评审;
3)实行严格的产品控制;
4)采用现代程序设计技术;
5)结果应能清楚地审查;
6)开发小组的人员应该少而精;
7)承认不断改进软件工程实践的必要性。
6.简述结构化范型和面向对象范型的要点,并分析它们的优缺点。
答:
结构化范型采用了结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
优点:
把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。
缺点:
当软件规模庞大时,或者对软件的需求是模糊的时候,开发出的软件往往不成功,而且维护起来仍然很困难。
面向对象范型有四个要点:
1)把对象作为融合了数据及在数据上的操作行为的统一的软件结构;
2)把所有对象都划分成了类;
3)按照父类和子类的关系,把若干个相关类组成一个层次结构的系统;
4)对象彼此间仅能通过发送信息互相联系。
优点:
降低了产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。
还促进了软件的可重用性。
7.什么是软件过程?
它与软件工程方法学有何关系?
答:
软件过程:
是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件工程方法学:
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型。
8.什么是软件生命周期模型?
试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
答:
对于软件的整个生命周期过程的简要描述方法叫软件生命周期模型。
瀑布模型:
优点:
采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。
缺点:
可能不满足客户的需求。
适用范围:
需要定义非常明确,并且没有很强的时间压力的系统。
快速原型模型:
优点:
不带反馈环,基本上是线性顺序进行;原型能够快速与用户交付而得到验证;开发人员从原型中获得经验,从而避免犯错误。
缺点:
原型的设计和修改量大,增加了系统的开发成本。
适用范围:
可适用于目前大部分的MIS系统。
增量模型:
优点:
能在较短时间内提交可完成部分工作的产品;逐步增加产品功能可以使用户有充裕的时间学习和适应新产品。
缺点:
把每个构件集成到现有软件体系结构中时,必须不破坏已经开发出来的产品,必须在软件体系结构设计得便于按照这种方式进行扩充。
即:
软件系统是开放的。
适用范围:
各模块间依赖不强的系统。
螺旋模型:
优点:
是风险驱动的。
缺点:
开发成本较高;风险分析人员需要有经验且经过充分训练。
适用范围:
内部开发的大规模软件项目。
9.简述可行研究的工程步骤有哪些?
答:
(1)复查系统规模和目标;
(2)研究目前正在使用的系统;
(3)导出新系统的高层逻辑模型;
(4)进一步定义问题;
(5)导出和评价供选择的解法;
(6)推荐行动方针;
(7)草拟开发计划;
(8)书写文档提交审查。
10.在软件开发的早期阶段为什么要进行可行性研究?
应该从哪些方面研究目标系统的可行性?
答:
可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
三个方面:
(1)技术可行性使用现有技术能实现这个系统。
(2)经济可行性这个系统的经济效益能超过它的开发成本。
(3)操作可行性系统的操作方式在这个用户组织内行得通。
11.简述需求分析的原则。
答:
(1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型。
(2)必须定义软件应完成的功能,这条准则要求建立功能模型。
(3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。
(4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
12.简述形式化方法的准则。
答:
(1)应该选用适当的表示方法。
(2)应该形式化,但不要过分形式化。
(3)应该估算成本。
(4)应该有形式化方法顾问随时提供咨询。
(5)不应该放弃传统的开发方法。
(6)应该建立详尽的文档。
(7)不应该放弃质量标准。
(8)不应该盲目依赖形式化方法。
(9)应该测试、测试再测试。
(10)应该重用。
13.为什么要进行需求分析?
通常对软件系统有哪些需求?
答:
为了确定系统必须完成哪些工作。
(1)功能需求
(2)性能需求(3)可靠性和可用性需求(4)出错处处理需求(5)接口需求(6)约束(7)逆向需求(8)将来可能提出的要求
14.怎样与用户有效的沟通以获取用户的真实需求?
答:
(1)访谈
(2)面向数据流自顶向下求精(3)简易的应用规格说明技术(4)快速建立软件原型
15.举例对比形式化方法和欠形式化方法的优缺点。
答:
不可能考
16.什么情况下应该使用形式化说明技术?
使用形式化说明技术时应遵守哪些准则?
答:
开发大型软件系统。
(1)应该选用适当的表示方法
(2)应该形式化,但不要过分形式化(3)应该估算成本(4)应该有形式化方法顾问随时提供咨询(5)不应该放弃传统的开发方法(6)应该建立详尽的文档(7)不应该放弃质量标准(8)不应该盲目依赖形式化方法(9)应该测试、测试再测试(10)应该重用
17.为什么模块独立性很重要?
主要有两条理由:
第一,有效的模块化的软件比较容易开发出来。
第二,独立的模块比较容易测试和维护。
18.总体设计的两个主要任务是什么?
回答“概括地说,系统应该如何实现?
”这个问题,因此,总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素----程序、文件、数据库、人工过程和文档等,但在每个物理元素仍然处于黑盒子级,这些黑盒子里德具体内容将在以后仔细设计。
总体设计的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块互相间的关系。
19.总体设计过程包括哪两个阶段?
1)系统设计阶段,确定系统的具体实现方案。
2)结构设计阶段,确定软件结构。
20.说明典型的总体设计包括的9个步骤?
1)设想供选择的方案
2)选取合理的方案
3)推荐最佳方案
4)功能分解
5)设计软件结构
6)设计数据库
7)定制测试计划
8)书写文档
9)审查和复查
21.简述软件结构设计的启发式原则?
1)改进软件结构提高模块独立性
2)模块规模应该适中
3)深度、宽度、扇出和扇入都应该适当
4)模块的作用域应该在控制域之内
5)力争降低模块接口的复杂程度
6)设计单入口单出口的模块
7)模块功能应该可以预测
22.模块的耦合性包括哪些类型?
1)非直接耦2)数据耦合3)标记耦合4)控制耦合5)外部耦合6)公共耦合7)内容耦合
23.简述变换分析或事物分析的7个过程?
1)复查基本系统模型
2)复查并精化数据流图
3)确定数据流图具有变换特性还是事务特性
4)确定输入流和输出流的边界,从而孤立出变换中心
5)完成“第一级分解”
6)完成“第二级分解”
7)使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化
24.在设计用户帮助设施时,必须解决哪5个重要问题?
(1)在用户与系统交互期间,是否在任何时候都能获得关于系统任何功能的帮助信息?
有两种选择:
提供部分功能的帮助信息和提供全部功能的帮助信息。
(2)用户怎样请求帮助?
有三种选择:
帮助菜单,特殊功能键和HELP命令。
(3)怎样显示帮助信息?
有三种选择:
在独立的窗口中,指出参考某个文档和在屏幕固定位置显示简短提示。
(4)用户怎样返回到正常的交互方式中?
有两种选择:
屏幕上的返回按钮和功能键。
(5)怎样组织帮助信息?
有三种选择:
平面结构,信息的层次结构和超文本结构。
25.简述用户界面的评估周期?
完成初步设计之后就创建第一级原型;用户试用并评估该原型,直接向设计者表述对界面的评价,直接向设计者表述对界面的评价;设计者根据用户意见修改设计实现下一级原型。
26.简述Jackson方法的5个步骤?
(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。
(2)找出输入数据结构和输出数据结构中有对应关系的数据单元。
(3)用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图。
(4)列出所有操作和条件。
(5)用伪码表示程序。
28.黑盒测试力图发现哪些类型的软件错误?
答:
(1)功能不正确或遗漏了功能
(2)界面错误(3)数据结构错误或外部数据库访问错误(4)性能错误(5)初始化和终止错误
29.简述软件测试的基本准则?
答:
(1)所有测试都应该能追溯到用户需求
(2)应该远在测试开始之前就制定出测试计划(3)把Pareto原理应用到软件测试中(4)应该从“小规模”测试开始(5)穷举测试是不可能的(6)为了达到最佳的测试效果,应该有独立的第三方从事测试工作
30.简述软件测试的任务、目的与类型
答:
任务:
发现并改正软件中的错误。
目的:
尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。
类型:
单元测试、集成测试、验收测试。
31.为什么软件测试不应该由程序的编程人员来做?
答:
测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的,因此,不应该由程序的编程人员来做。
32.简述选择程序设计语言的实用标准?
答:
(1)系统用户的要求
(2)可以使用的编译程序(3)可以得到的软件工具(4)工程规模(5)程序员的知识(6)软件可移植性(7)软件的应用领域
33.简述软件测试的步骤
(1)模块测试
(2)子系统测试(3)系统测试(4)验收测试(5)平行运行
判断题:
1.形式化方法有许多优点,因此在事迹软件工作中应该依赖形式化方法来保证开发出的软件绝对正确和降低由于设计缺陷产生的维护代价。
(F)
2.可以用形式化方法证明软件的需求和设计的正确性和合理性,因此如果为了降低软件的测试成本和改正错误代价等,可以不用对软件进行测试,也可以保证软件的质量和降低开发成本等软件工程的目标。
(F)
3.验证软件需求的方法主要靠人工审查的方法。
(T)
4.软件测试一般包括黑盒测试和白盒测试两种方法,测试是为了竭力证明已经建造好的软件系统的正确性和适用性。
(F)
5.在软件系统开发中,选择程序设计语言的主要实用标准是根据程序员的知识。
(F)
6.代码审查方法没有计算机测试方法好。
(F)
7.编码风格由个人喜欢决定,没有固定格式。
(F)
8.如果测试过程没有发现任何错误,则说明软件没有错误。
(F)
9.软件测试是对软件规格说明、软件设计和编码的最全面也是最后的审查。
(T)
10.测试计划、测试用例、出错统计和有关的分析报告一般不用长期保存。
(F)
11.用穷举测试是较现实的测试方法。
(F)
12.程序中的注解越少越好。
(F)
13.不同的程序设计语言在程序的效率上差异并不大。
(F)
14.编码的依据是详细设计说明书。
(T)
15.程序文档应该包括代码的功能、代码的完成者等内容。
(T)
16.判定覆盖必然满足语句覆盖。
(T)
17.编程中应采用统一的标准和约定、降低程序的复杂性。
(T)
一、单选题
1.软件危机是指软件开发和软件维护中出现的一系列问题
2.软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的生产工程化问题
3.软件工程学涉及软件开发技术和工程管理两方面的内容,下述内容中软件工程经济不属于开发技术范畴
4.软件工程学中除重视软件开发的研究外,另一重要组成内容是软件的工程管理
5.软件工程方法学的研究内容,包含软件开发技术和软件工程管理两部分,其期望达到的最终目标是软件开发工程化
6.软件生命周期是指软件系统开始研制到软件系统被废弃的过程
7.软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为瀑布模型
8.进行可行性研究的依据是对系统的高层次分析与设计
9.数据字典是对数据定义信息的集合,它所定义的对象都包含于数据流图中
10.白盒测试方法重视测试出错误的多少的度量
11.提高软件的可维护性可采取很多措施,下列哪个不在措施之列?
提供没有错误的程序
12.软件系统生命周期的第一阶段是软件分析阶段
13.在软件工程实施中,产生软件生命周期的概念是由于软件开发规律
14.属于计算机软件的是存储在磁盘上的文件
15.在软件质量因素中,软件在异常条件下仍能运行的能力称为软件的可靠性
二、填空题
1.作为计算机科学技术领域中的一门新兴学科,“软件工程”主要是为了解决___软件危机___问题。
2.软件设计方法中的Jackson方法是一种面向__数据结构_____的设计方法。
3.在软件测试中黑盒测试的主要认为是通过测试来检查程序的__功能____
4.螺旋模型的主要优势在于,它是___风险____驱动的。
5.系统流程图中的标示符号
代表___输入输出___含义。
三、名词解释
1.软件工程——①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径
2.面向对象方法——尽量模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。
3.软件可靠性——是程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
4.事务流——这类数据流是以事物为中心的,即数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,这类数据流称为事物流
四.简答题
1.简述软件危机主要体现在哪两个方面?
答:
1。
如何开发软件,以满足对软件日益增长的需求;2。
如何维护数量不断膨胀的已有软件
2.与用户沟通获取需求的方法有哪些?
答:
1。
访谈2。
面向数据流自顶向下求精3。
简易的应用规格说明技术4。
快速建立软件原型。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 期中考试 复习 材料