好文档 - 专业文书写作范文服务资料分享网站

软件工程习题及参考答案

天下 分享 时间: 加入收藏 我要投稿 点赞

? 在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。子类继承了多

个父类的数据结构和方法,则称为多重继承。 ? 由于数据流是流动中的数据,所以必须有流向。除了与数据存储之间的数据流不用命名

外,数据流应该用名词或名词短语命名。

? 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。项目的纯收入是指

在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。 ? 程序设计语言的简洁性是指人们必须记住的语言成分的数量。人们要掌握一种语言,需

要记住的成分数量越多,简洁性越差。

? 不同对象的同一属性可以具有相同或不同的属性值。

? 软件开发划分的各阶段任务尽可能相对独立,同一阶段任务性质尽可能相同。 ? 瀑布模型是将生存周期各活动规定为线性顺序联接的若干阶段的模型。 ? 成本效益分析的目的是从经济角度评价开发一个软件项目是否可行。

? 在需求分析阶段要进行以下几方面的工作:问题识别、分析与综合、导出软件的逻辑模

型、编写文档。

? 静态冗余常用的有:三模冗余TMR和多模冗余。

? McCabe质量度量模型,针对面向软件产品的运行、修正、转移。

? 程序设计语言的局部性是指语言的联想性。在编码过程中,由语句组合成模块,由模块

组装成系统结构,并在组装过程中实现模块的高内聚,低耦合,使局部性得到加强。 ? 软件复杂性度量的参数主要有规模、难度、结构和职能度。

? 项目开发计划的主要内容有:项目概述、实施计划、人员组织及分工、交付期限。 ? 可行性研究要在较高层次上以较抽象方式进行需求分析和设计。 ? 软件工程是一门综合性交叉学科,计算机科学着重于原理和理论,软件工程着重于建造

软件系统。

? 维护的副作用有编码副作用、数据副作用、文档副作用三种。 ? 若年利率为I,不计复利,P元在n年后的价值F=P*(1+n*i) ? 软件结构是以模块为基础而组成的一种控制层次结构。 ? 软件设计阶段产生的最重要的文档之一是概要设计说明书。 ? 独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独

立路径是至少包含有一条在其它独立路径中未有过的边的路径。 ? 各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关的软件系

统结构的有关问题。

? 开发过程管理包括项目计划和控制和任务管理等。

? 临时维护小组采用―同事复审‖或―同行复审‖等方法来提高维护工作的效率。 ? 数据字典中的加工逻辑主要描述该加工做什么,即实现加工的策略,而不是实现加工的

细节,它描述如何把输入数据流变换为输出数据流的加式规则。

? 为了较完整的描述用户对系统的需求,DFD应与数据库中的ER图结合起来。 ? 纯收入是软件生存周期内累计经济效益与投资之差。

? 反映软件结构的基本形态特征是深度、宽度、扇入和扇出。

? 若年利率为I,不计复利,n年后能收入F元的现在价值p=F/(1+n*i)。

? 在一个模块中,功能状态与接口反映模块的外部特性,逻辑反映它的内部特性。 ? 硬件与软件一起构成完整的计算机系统。 ? SA方法中主要描述工具是DFD与DD。

? 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

? 结构化设计对数据流有两种分析方法,他们是变换分析设计和事务分析设计。

? 数据字典中有四类条目:数据流、数据项、数据存储、加工。 ? 常借用硬件可靠性的定量度量方法来度量软件的可靠性与可用性。常用指标有平均失效

等待时间MTTF和平均失效间隔时间MTBF。

? Lisp是一种函数型语言,Prolog是一种逻辑性语言。

? Jackson结构图能对结构进行自顶向下分解,因此可以表示层次结构。 ? 变换模型是一种适合于形式化开发方法的模型,从软件需求形式化说明开始,经过一系

列变换,最终得到系统的目标程序。

? 软件开发环境的主要目标是提高软件开发的生产率,改善软件质量和降低软件成本。 ? ―软件‖包含计算机程序及其说明程序的各种文档。

? 开发过程依序包括需求分析、设计、编码、集成、软件安装和验收等活动。

? 社会可行性研究包括合同、责任、侵权、用户组织的管理模式及规范,其他一些技术人

员常常不了解的陷阱等。

? IDEF0方法中,将系统功能称为活动,将表示系统功能的图形称为活动图形。

? 数据库的设计指数据存储文件的设计,主要进行的设计方面有:概念设计、逻辑设计、

物理设计。

? 如果只有两个模块之间有公共数据环境,这种公共耦合有两种情况:一是一个模块只是

给公共数据环境送数据,另一个模块是只从公共环境中去数据,这是比较松散的公共耦合;二是两个模块都往公共环境中送数据又从里面取数据,这是紧密的数据耦合。 ? Jackson方法是面向数据结构的设计方法。早期的Jackson方法用于开发模型较少的数

据处理系统的设计,简称JSP。

? 工程网络图只有一个开始点和一个终止点,开始点没有流入箭头,称为入度为零;终止

点没有流出箭头,称为出度为零。 ? 为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验,

检验的实施有实际运行检验(即白盒测试和黑盒测试)和鉴定两种形式。 ? 瀑布模型是由W. Royce于1970年提出来的。又称为软件(生存周期)模型。

? 程序设计语言的(可维护)性通常指这种语言编写的程序被理解,被修改及调整和改进

的难易程度。

? 软件测试是执行程序发现并排除程序中潜伏的(错误)的过程。 ? 动态测试有两种测试方法:黑盒测试和(白盒)测试。 名词解释 ? 经济可行性

进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。 ? 社会可行性

要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。 ? 投资回收期

投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。 ? 需求分析

需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。 ? 白盒法

该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。白盒法也不可能进行穷举测试。 ? 黑盒法

该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件接口处进行测试,依照需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。 ? 结构化分析

是根据分解与抽象的原则,按照系统中数据处理的流程,用数据图来建立系统的功能模型,从而完成需求分析工作。 ? 原型

是指模拟某种产品的原型模型。软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特征 ? 模块化

是指解决一个复杂问题是自顶向下逐层把软件系统划分成若干模块的过程,每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

? 路径覆盖

指设计足够的测试用例,覆盖被测程序中所有可能的路径。 ? 判定/条件覆盖

指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。 ? 条件组合覆盖

是指设计足够的测试用例,使的每个判定表达式中条件的各种可能的值的组合都至少出现一次,条件组合覆盖是比较强的覆盖标准。 ? 条件覆盖

是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。满足条件覆盖并不一定满足判定覆盖。 ? 原型模型

又称快速原型模型,它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。 ? 软件工程环境

美国国防部在STARS计划中定义如下:―软件工程环境是一组方法、过程及计算机程序(计算机化的工具)的整体化构件,他支持从需求定义、程序生成知道维护的整个软件生存期‖。 ? 程序图:

是退化的程序流程图。也就是说,把程序流程图中每个处理符号都退化成一个结点,原来连接不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫程序图。 ? 流程图:

是描绘物理系统的工具,它用图形符号来表示系统中的各元素。它表达了系统中各个元素之间的信息流动的情况。

? 结构化分析方法(SA)

是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。 ? 软件生存周期模型

是描述软件开发过程中各种活动如何执行的模型。 ? 数据字典(DD)

数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。 ? 内聚性

内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

问答题

1、什么是软件危机,软件危机有哪几种表现?

答:软件开发和维护的过程中所遇到的一系列严重的问题。 具体表现在:

(1)产品不能符合用户的实际需求; (2)软件开发的效率较低; (3)软件产品的质量差;

(4)软件开发成本和进度的估算不准确; (5)软件可维护性差;

(6)软件开发文档资料不完整也不合格; (7)软件的价格昂贵。

2、什么是数据流图?为什么数据流图要分层? 答:数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。数据流图是结构化系统分析的主要工具,它表示了系统内部信息的流向,并表示了系统的逻辑处理的功能。

为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。描述一个复杂的系统,不可能一下子引进太多的细节。否则用一张数据流图画出所有的数据流和处理逻辑,这张图将及其庞大、复杂,难以绘制,难以理解。因此数据流图需要进行分解,用几个数据流图来表示。 3、软件的质量反应在哪些方面?

答: 软件质量反映了以下三方面的问题。

(1)软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。

(2)在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。

(3)往往会有一些隐含的需求没有明确地提出来。例如,软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。 4、什么是编码风格?为什么要强调编码风格? 答:编码风格又称程序设计风格或编程风格。

随着软件技术的发展,编码的目标已经从强调效率转变为强调清晰。良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不注意风格就很难写出高质量的程序。尤其当多

个程序员合作编写一个很大的程序时,需要强调良好而一致的编码风格,以便相互通讯,减少因不协调而引起的问题。总之,良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。

5、什么是需求分析?需求分析阶段的基本任务是什么?

答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的 基础上,进一步了解、确定用户需求。准确地回答 “系统必须做什么?” 的问题。获得 需求规格说 明书。还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和 软件系统运行的环境。它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的 关系。

需求分析的基本任务包括:

(1)抽取需求 分析现行系统存在需要解决的问题。获取足够多的问题领域的知识,需求 抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方 法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的 知识获取等 。

(2)模拟和分析需求 需求分析和模拟又包含三个层次的工作。首先是需求建模。需求模 型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。需 求概念模型的要求包括实现的独立性:不模拟数据的表示和内部组织等;需求模拟技术又 分为企业模拟、功能需求模拟和非功能需求模拟等。

(3)传递需求 传递需求的主要任务是书写软件需求规格说明。

(4)认可需求 就是对需求规格说明达成一致,其主要任务是冲突求解,包括定义冲突和 冲突求解两方面。常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些 只能用人的因素去控制。

(5)进化需求 客户的需要总是不断(连续)地增长,但是一般的软件开发又总是落后于客 户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。对于传统的变化 管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件 家族法,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不 一致性, 并进行关于变化的推理。 6、等价分类法的基本思想是什么?

答:根据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”, 从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类 其他值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中 其他测试用例也会有错误。

7、模块的内聚性包括哪些类型? 模块的内聚性包括: (1) 偶然内聚 (2) 逻辑内聚 (3) 时间内聚 (4) 过程内聚 (5) 通信内聚 (6) 顺序内聚 (7) 功能内聚

8、分析软件危机产生的主要原因有哪些? 答:导致软件危机的主要原因有:

(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产

软件工程习题及参考答案

?在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。子类继承了多个父类的数据结构和方法,则称为多重继承。?由于数据流是流动中的数据,所以必须有流向。除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。?投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。项目的纯收入是指在整个生存周期之内
推荐度:
点击下载文档文档为doc格式
0yc5t4426a05ej31u7w0
领取福利

微信扫码领取福利

微信扫码分享