软件工程考试试题.doc

上传人:pu****.1 文档编号:562236666 上传时间:2023-07-02 格式:DOC 页数:6 大小:52.52KB
返回 下载 相关 举报
软件工程考试试题.doc_第1页
第1页 / 共6页
软件工程考试试题.doc_第2页
第2页 / 共6页
软件工程考试试题.doc_第3页
第3页 / 共6页
软件工程考试试题.doc_第4页
第4页 / 共6页
软件工程考试试题.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《软件工程考试试题.doc》由会员分享,可在线阅读,更多相关《软件工程考试试题.doc(6页珍藏版)》请在金锄头文库上搜索。

1、1.什么是软件危机,为什么会产生软件危机答:软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)原因:1)软件本身特点造成;2)软件开发与维护的方法不正确。主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护;2.软件工程方法学(传统方法学(结构范型)答:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。软件工程方法学的3要素:方法、工具和过程。传统方法学也称为生命周期方法学或结构化范型。结构化方法有:1)结构化设计方法;2)结构化分析方法;3)结构化分析与设计技术4)JACKS

2、ON方法5)WARNIER方法3.软件生存周期的定义,包含的阶段。答:软件生命周期:指软件从提出到最终被淘汰的这个存在期。软件生命周期组成:1)软件定义;A.问题定义B.可行性研究C.需求分析2)软件开发;D.总体设计E.详细设计F.编码和单元测试 G.综合测试3)运行维护。软件生命周期各个阶段:1.问题定义;2.可行性研究;3.需求分析;4.总体设计(概要设计);5.详细设计;6.编码与单元测试;7.综合测试;8.维护。4生命周期模型各自的基本思想是什么。答:瀑布模型1阶段间具有顺序性和依赖性2.推迟实现的观点3质量保证的观点。优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交

3、出的产品必须经过验证。快速原型模型优点:不带反馈环,基本上是线性顺序进行。增量模型优点:能较短时间内提交可完成部分工作的产品;可以使用户有充裕的时间学习和适应新产品。螺旋模型:可把它看作在每个阶段之前都增加风险分析的快速原型模型。喷泉模型:典型的面向对象软件开发过程模型之一。Rational 统一过程:1. RUP软件开发经验(1)迭代式开发(2)管理需求(3)使用基于构件的体系结构(4)可视化建模(5)贯穿于开发过程的软件质量验证(6)控制软件变更敏捷过程与极限编程1.敏捷过程:具有高效、快速响应变化的开发过程。(1)个体和交互胜过过程和工具;(2)可以工作的软件胜过面面俱到的文档;(3)客

4、户合作胜过合同谈判;(4)响应变化胜过遵循计划。2.极限编程:敏捷过程中最著名的一种,指把好的开发实践运用到极致,多应用于软件需求模糊的场合。微软过程:1.微软过程准则2.微软软件生命周期(1)规划阶段(2)设计阶段(3)开发阶段(4)稳定阶段(5)发布阶段3.微软过程模型1.需求分析的任务是什么答:一.确定对系统的综合要求1功能需求2性能需求3. 可靠性和可用性需求4. 出错处理需求5. 接口需求6. 约束7. 逆向需求 8. 将来可能提出的要求 二. 分析系统的数据要求通过建立数据模型来分析,如数据字典、层次方框图、Warnier图,并将数据结构规范化。三. 导出系统的逻辑模型包括完善的数

5、据流图、实体联系图、状态转换图、数据字典、主要的处理算法(IPO图)等。四. 修正系统开发计划修订前期制定的开发进度计划、等。2.需求规格说明书由那些部分构成答:(1) 引言:编写目的、背景说明、术语定义及参考资料等。(2) 概述主要功能、约束条件或特殊需求。(3) 数据流图与数据字典。 (4) 用户接口、硬件接口及软件接口。(5) 性能需求、属性等。(6) 其它需求,如数据库、操作及故障处理等。3.数据字典:数据字典:对数据流图中包含的所有元素的定义的集合;可行性研究阶段,数据流图与数据字典共同构成系统的逻辑模型。数据字典的内容数据字典应该对下列元素进行定义:1)数据流;2)数据元素(数据流

6、分量);3)数据存储;4)处理。定义数据的方法1)数据元素字典定义:其定义的基本内容有:A数据元素编号、名称及其含义;B数据类型和长度;C合理取值;D其他内容,如它与其它数据的逻辑关系等。1.设计原理答1 模块化2抽象3逐步求精4信息隐蔽和局部化 5模块独立:模块的独立性很重要,因为:1)有效的模块化的软件比较容易开发出来;2)独立的模块比较容易测试和维护。模块独立程度可以由两个定性标准度量:耦合与内聚。耦合:指软件结构内不同模块彼此之间相互依赖(连接)的紧密程度。 模块的偶合分四类:1)数据耦合2)控制耦合3)公用耦合4)内容耦合内聚:一个模块内部各个元素彼此结合的紧密程度。它是衡量一个模块

7、内部组成部分间整体统一性的度量。常见的内聚有七类。 1)功能内聚2)顺序内聚 3)通信内聚4)过程内聚5)时间内聚6)逻辑内聚7)偶然内聚 软件设计中应该:力求做到高内聚,尽量少用中内聚,不用低内聚。 2.面向数据流的设计方法答:面向数据流设计是与数据流分析对应的结构化软件设计技术。 面向数据流的设计将得到以数据流图为基础的软件模块结构图。 1 变换流与事务流:数据流可以分为两种类型:1)变换型数据流2)事务型数据流 2 面向数据流设计的步骤:1)复审并精化数据流图;2)确定数据处理流图的类型;3)确定变换中心或事务中心;4)将数据流图映射成软件模块结构图,设计出该数据流图对应的第一层模块结构

8、;5)基于数据流图逐步分解,设计下层模块;6)运用模块设计和优化准则优化软件结构;7)描述模块的接口。3变换设计:变换设计就是从变换型数据流图映射出软件模块结构的过程,也称以变换为中心的设计。变换设计的基本方法有两步:1)分解第一层模块结构2)分别设计输入、输出和处理的下层模块结构4事务设计:事务设计就是从事务型数据流图映射出软件模块结构的过程,也称为以事务为中心的设计。事务设计的基本方法有两步:1)建立主控模块、接收输入类型分析模块和事务调度模块;2)分别设计输入类型分析模块和调度模块的下层模块结构。3.详细过程设计的工具答:1程序流程图:程序流程图:是一种描述程序的控制结构流程和指令执行情

9、况的有向图。程序流程图的缺点:1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。3)程序流程图不易表示数据结构。2盒图(N-S图) 盒图的特点有:1)功能域明确,可以从盒图上一眼就看出来;2)不可能任意转移控制;3)很容易确定局部和全程数据的作用域;4)很容易表现嵌套关系,也可以表示模块的层次结构。 3 PAD图:PAD(Problem Analysis Diagram)是问题分析图。日立公司发明和推广(1973)。 PAD图的优点:1

10、)使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序;2)PAD图所描绘的程序结构十分清晰。3)用PAD图表现程序,通俗易懂,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点;4)容易将PAD图转换成高级语言源程序,这种转换可以用软件工具自动完成;5)可用于表示程序逻辑,也可用于描绘数据结构;6)PAD图的符号支持自顶向下、逐步求精的方法。4判定表:判定表由四部分组成:1.左上部列出所有条件2.左下部是所有可能做的动作3.右上部表示各种条件组合4.右下部是和每种条件组合相对应的动作 5判定树:判定树是判定表的变种。 6过程设计语言(PDL)PDL的

11、优点:1)可以作为注释直接插在源程序中间;2)可以使用普通的正文编辑程序或文字处理系统来完成PDL的书写和编辑工作;3)现在已经有一些自动处理程序可以自动地把PDL生成程序代码。PDL的缺点:不如图形工具形象直观。4.面向数据结构的设计方法答:1Jackson图1)顺序结构 2)选择结构 3)重复结构 2改进的Jackson图 3 Jackson方法 Jackson方法的目标是:得出对程序处理过程的详细描述。Jackson结构程序设计方法由五个步骤组成:1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构;2)找出输入数据结构和输出数据结构中有对应关系的数据单元;

12、3)用三条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:A为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框;B根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;C根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;4)列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置;5)用伪码表示程序。5.程序复杂程度的定量度量答:定量度量程序复杂度的作用:(1)可估算软件中错误的数量及软件开发工作量;(2)度量

13、的结果可用来比较不同设计或不同算法的优劣;(3)程序的复杂度可作为模块规模的限度。 1 McCabe方法(1)流图“退化”的程序流程图,仅描绘程序的控制流程,不表现对数据的具体操作及循环、选择的条件。(2)计算环形复杂度的方法1)环形复杂度 V(G)等于流图中的区域数;2)环形复杂度 V(G)EN+2,其中E是流图中边的条数,N是结点数;3)环形复杂度 V(G)P1,其中P为流图中判定结点的数目。(3)环形复杂度的用途:对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。实践表明,模块规模以V(G)10为宜。2 Halstead方法:根据程序中运算符和操作数的总数来度量程序复杂度。N

14、 = N1 + N2其中:N定义为程序长度;N1为程序中运算符出现的总次数;N2为操作数出现的总次数。 1.软件测试的目的与任务答:软件测试的目标(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。 软件测试准则1)所有测试都应该能追溯到用户需求;2)应该远在测试前就制定出测试计划;3)把Pareto原理应用到软件测试中;4)应该从“小规模”测试开始,并逐步进行“大规模”测试;5)穷举测试是不可能的;6)为了达到最佳测试效果,应该由独立的第三方从事测试工作。2.测试与调试的区别答

15、:软件测试:发现错误;软件调试:诊断并改正错误1.错误定位2.纠正错误3.回归测试3.测试的种类答:1.按是否需要执行被测软件的角度:可分为静态测试和动态测试2、按阶段划分1单元测试2 集成测试3系统测试 4 验收测试5 回归测试 6 Alpha 测试7 Beta 测试3、按测试方法划分:1 白盒测试 2 黑盒测试 3 ALAC(Act-like-a-customer)测试4.黑盒测试等价类划分(根据具体问题设计测试用例)答:黑盒测试:如果已经知道软件应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这种测试称黑盒测试。也称功能测试。等价类划分是一种黑盒测试技术。穷尽的黑盒测试需要使

16、用所有可能的输入数据(有效的和无效的)进行测试,通常是不现实的。因此产生了等价类划分。等价类划分的思想:如果将所有可能的输入数据(有效的和无效的)划分为若干个等价类,就可以假定用每一个等价类中的代表值作为测试用例来进行测试时,等价于用该类中所有值进行了测试。用等价类划分设计测试用例时,主要分两步:划分等价类、确定测试用例。1)等价类划分:划分等价类需要经验,以下给出一些规则A如果某输入条件规定了输入的范围,那么可以划分为一个有效的等价类和两个无效的等价类。B如果某个输入条件规定了一组可能的值,且程序可以对不同的值作出不同的处理,那么可以为每种值确定一个有效的等价类,同时还有一个无效等价类。 2)确定测试用例A给每个等价类规定一个唯一的编号;B设计一个新的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号