软件工程期末复习简答题.docx

上传人:b****6 文档编号:7756904 上传时间:2023-01-26 格式:DOCX 页数:13 大小:256.27KB
下载 相关 举报
软件工程期末复习简答题.docx_第1页
第1页 / 共13页
软件工程期末复习简答题.docx_第2页
第2页 / 共13页
软件工程期末复习简答题.docx_第3页
第3页 / 共13页
软件工程期末复习简答题.docx_第4页
第4页 / 共13页
软件工程期末复习简答题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

软件工程期末复习简答题.docx

《软件工程期末复习简答题.docx》由会员分享,可在线阅读,更多相关《软件工程期末复习简答题.docx(13页珍藏版)》请在冰豆网上搜索。

软件工程期末复习简答题.docx

软件工程期末复习简答题

1.如何做好软件质量保证工作?

答案:

软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下几个方面的工作:

(1)采用技术手段和工具。

质量保证活动要贯彻开发过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。

(2)组织正式技术评审。

在软件开发的第一个阶段结束时,都要组织正式的技术评审。

国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。

(3)加强软件测试。

软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。

(4)推选软件工程规范(标准)。

用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。

(5)对软件的变更进行控制。

软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。

(6)对软件质量进行度量。

即对软件质量进行跟踪,及时记录和报告软件质量情况。

2.如何控制因修改而引起的副作用?

答案:

为了控制因修改而引起的副作用,要做到:

(1)按模块把修改分组;

(2)自顶向下地安排被修改模块的顺序;(3)每次修改一个模块;(4)对每个修改了的模块,在安排修改下一个模块之前要确定这个修改的副作用,可使用交叉引用表、存储映像表、执行流程跟踪等。

3.渐增模型有几种?

各有何特点?

答案:

渐增模型是瀑布模型的变种,它有两类:

(1)增量构造模型。

它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。

也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开发。

(2)演化提交模型。

它在瀑布模型基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量提交。

4.对软件开发环境的基本要求有那些?

答案:

(1)软件开发环境应是高度集成的一体化的系统。

(2)软件开发环境应具有高度的通用性。

(3)软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性。

(4)软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统。

(5)软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。

一、什么是软件危机?

它有哪些典型表现?

为什么会出现软件危机?

软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。

它包括两方面:

如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。

软件危机的典型表现:

(1)对软件开发成本和进度的估计常常很不准确。

常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。

而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。

这些都降低了开发商的信誉,引起用户不满。

(2)用户对已完成的软件不满意的现象时有发生。

(3)软件产品的质量往往是靠不住的。

(4)软件常常是不可维护的。

(5)软件通常没有适当的文档资料。

文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6)软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。

(7)开发生产率提高的速度远跟不上计算机应用普及的需求。

软件危机出现的原因:

(1)来自软件自身的特点:

是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。

(2)软件开发与维护的方法不当:

忽视需求分析;认为软件开发等于程序编写;轻视软件维护。

(3)供求矛盾将是一个永恒的主题:

面对日益增长的软件需求,人们显得力不从心。

二.瀑布模型优点与缺点:

瀑布模型优点:

它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板

下有一个共同的指导。

虽然有不少缺陷但比在软件开发中随意的状态要好得多。

瀑布模型缺点:

(1)实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。

(2)经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。

(3)客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。

(4)会经常在过程的开始和结束时碰到等待其他成员完成其所依赖的任务才能进行下去,有可能花在等待的时间比开发的时间要长。

称之为“堵塞状态”。

它是软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。

31.简述需求的基本性质。

1.必要的:

该要求是用户所要求的。

2.无歧义的:

该需求只能以一种方式解析。

3.可测的:

该需求可进行测试的。

4.可跟踪的:

该需求可从一个开发阶段跟踪到另一个阶段。

5.可测量的:

该需求是可测量的。

32.简述在进行软件系统/产品的需求工作中所面临的挑战和应对方法。

面临的挑战:

1.问题空间的理解;2.人与人之间的通信;3.需求的变化性

对应方法:

提出了系列软件开发方法:

结构化方法、面向对象的方法、面向数据结构的方法

33.什么是类?

什么是对象?

什么是类的构成成分?

类是一组具有相同属性、操作、关系和语义对象的描述;对象是类的一个实例;类的构成包括:

类名、属性、操作

34.什么是RUP?

它有什么特点?

定义:

RUP即通一软就开发过程,它是一种基于UML的一种过程框架,为软件的开发,即为进行不同抽象层之间的“映射”安排其开发活动的次序,指定任务和需要开发的制品,提供了指导;并为对项目中的制品和活动进行监控和度量,提供了相应的准则。

特点:

以用况为驱动,以体系结构为中心的迭代、增量式开发方法。

35.简述人们关于软件测试目的的认识所经历的几个阶段。

1.第一阶段认为软件测试和调试没有任何区别;

2.第二阶段认为测试是为了表明软件能正常工作;

3.第三阶段认为测试是为了表明软件不能正常工作;

4.第四阶段认为测试仅是为了将已察觉的错误风险降低到一个可接受的层程;

5.第五阶段认为测试不仅是一种行为而且是一种理念,即测试是产生低风险软件的一种训练

36.简述喷泉模型以及可适应的情况。

1.喷泉模型体现了软件创建所固有的跌代和无间隙的特征。

2.喷泉模型说明了软件活动需要多次重复

3.喷泉模型还说明了软件活动之间没有明显的间隙

4.该模型主要用于面向对象技术的软件开发方法

37.一个简化的机票销售系统需求描述如下:

售票员根据旅客需要的航班,首先查询有无该航班机票。

若有,则负责录入旅客的基本信息,并将指定的机票标志设置为售出;售票部经理可随时查询每一个航班的售票情况,并在当日结算时能计算出日营业额。

请画出该系统的0层DFD图和1层DFD图(注:

1层分解为查询和录入、统计和计算两个处理)。

38.设被测试的程序段为:

begins1;

if(x=1)and(y>3)

thens2;

if(x<2)or(y=2)

thens3;

s4;

end

可供选择的测试用例为:

编号

x

y

A

l

4

B

2

3

C

0

3

D

4

2

请分别找出实现语句覆盖、条件覆盖、分支覆盖最少所需的测试用例及其对应的编号。

语句覆盖:

A

条件覆盖:

A、D(依次为:

真真真假和假假假真)

分支覆盖:

A、B

31.什么是需求规约?

简述需求规约的作用。

P31

需求规约是一个软件项/产品/系统所有需求陈述的正式文档,是一个软件产品/系统的概念模型。

1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。

2)对于项目的其余大多数工作,需求规约是一个管理控制点。

3)对于产品系统的设计,需求规约是一个正式的、受控的起始点。

4)需求规约是创建产品验收测试计划和用户指南的基础。

32.通过长期的软件开发实践,人们总结出了哪些模块设计的启发式规则?

不论是变换设计还是事务设计,都会涉及到一个公用的目标既“基于一个高内聚低耦合”的原理

✓改进软件结构,提高模块独立性

✓力求模块规模适中

✓力求深度。

宽度、扇出和扇入适中

✓尽量使模块的作用域在其控制之内

✓尽力降低模块接口的复杂性

✓力求模块功能可以预测

33.什么是类?

什么是对象?

简述类在建模中的主要用途。

类是一组具有相同属性,操作,关系和语义的对象的描述,对象是类的实例,类在建模中的主要

✧模型化待建系统中的概念形成类图的基本元素。

✧模型化待建系统中的各种关系,形成系统的初始类图。

✧模型化系统中的协作,给出该系统的最终类图。

✧模型化逻辑数据库的模式

34.为什么RUP要与UML一起才称得上是一种面向对象开发的方法学?

RUP与UML是一对“姐妹”,它们构成了一种特定的软件开发方法学。

其中,UML作为一种可视化建模语言,给出了表达事物和事物之间关系的基本术语,给出了多种模型的表达工具;而RUP利用这些术语定义了需求获取层、系统分析层、设计层、实现层,并给出了实现各层模型之间映射的基本活动以及相关指导

 

35.简述软件测试和软件调试之间的区别。

1)测试从一侧面证明程序员的“失败”。

调度为了证明程序员是正确的

2).测试以已知条件开始,使用预告定义的程序且有预知的结果,不可预见的仅是程序是否通过测试

3).测试是有计划的,并要进行测试设计。

高度是不受时间约束的

4).测试是发现错误、改正错误、重新测试的过程。

调试是一个推理过程

5).的执行是有规程的。

调试的执行往往要求程序员进行必要推理

6).测试经常由独立的测试组在不了解软件技术的条件下完成的。

高度必须由了解详细设计的程序员完成

7)大多数测试的执行和设计可由工具支持。

调试时,程序员能利用的工具主要是调试器程序流程图的作用及构成

36.简述演化模型以及可适应的情况。

答:

表达了一种弹性的过程模式,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量,通过这些迭代,最终完成软件产品的开发主要针对事先不能完整定义需求的软件开发

37.题37图是银行活期存取款业务处理系统的数据流图,请根据图示完成以下填空:

(1)数据源或数据潭包括:

_储户_______;

(2)加工包括:

审查单据,业务分类,修改1A,修改1B,修改2A,修改2B________;

(3)数据存储包括:

__储户______;

(4)“业务分类”的输入流是:

____合格存取单存折____;

(5)“业务分类”的输出流是:

_____合格存折存款单,合格存折取款单___。

38.有一个程序:

输入3个整数ABC,把这3个数看成是一个三角形的3条边。

这个程序要输出信息,来说明这个三角形的几种情况:

是三边不等的、是等腰的、还是等边的。

请根据给出的说明,用等价类划分法设计该问题的测试用例(要求写出设计过程)。

解:

等价类测试方法

(1)建立等价类表:

输入数据

有效等价类

无效等价类

3个数A、B、C

(1)三边不等三角形

(2)等腰三角形

(3)等边三角形

(4)不能构成三角形

A、B、C数值的范围

(5)A、B、C都大于0

(6)A小于等于0

(7)B小于等于0

(8)C小于等于0

(2)为有效等价类设计测试用例

测试数据

期望结果

覆盖范围

A=3、B=4、C=5

输入有效

(1),(5)

A=3、B=3、C=4

输入有效

(2),(5)

A=4、B=4、C=4

输入有效

(3),(5)

(3)为无效等价类设计测试用例

测试数据

期望结果

覆盖范围

A=1、B=1、C=4

输入无效

(4)

A=0、B=1、C=4

输入无效

(6)

A=1、B=0、C=4

输入无效

(7)

A=4、B=1、C=0

输入无效

(8)

31.简述软件需求的分类及其关系。

P23-24;

答:

软件需求可以分为功能需求和非功能需求2大类;功能需求规定了系统及构件必须执行的功能;非功能需求又可以分为性能需求、外部接口需求、设计约束和质量属性需求。

功能需求是整个软件需求的主体,没有功能需求就没有性能、外部接口、设计约束和质量的需求;一个非功能需求可以作用于1个或多个功能需求。

32.什么是模块?

什么是模块内聚?

请列出从低到高的常见内聚类型。

P56、57、58、59

答:

模块是执行一个特殊任务的过程以及相关的数据结构。

内聚是指一个模块内部各个成分之间相互关联程度的度量。

从低到高的内聚类型:

偶然内聚;逻辑内聚;时间内聚;过程内聚;通信内聚;顺序内聚;功能内聚。

33.什么是状态?

什么是状态图?

简述实际应用中使用状态图的作用。

107、108、113

答:

状态是类目的一个实例在其生存中的一种条件或情况;期间该实例满足这一条件,就执行某一活动或等待一个消息。

状态图是现实状态机的图,强调从一个状态到另一个状态的控制流。

在实际使用中状态图的作用:

创建一个系统的动态图和创建一个场景的模型。

34.简述RUP中需求获取的基本步骤和相关制品。

P132

答:

需求获取的步骤和相关制品:

第1步是列出候选的特征,相关制品是特征表;

第2步是理解系统语境,相关制品是领域模型或业务模型;

第3步是捕获系统功能需求,相关制品是用况模型(usecase模型);

第4步是捕获非功能需求,相关制品是补充的需求或针对特殊需求的用况。

35.简述黑盒测试技术的要点。

P186

答:

黑盒测试技术的要点:

(1)支持测试工程模型的中间部分;

(2)事务流测试技术是将路径测试技术用于功能测试的产物,是一种实用的功能测试技术,通过事务的操作逻辑发现软件中的错误;

(3)事务流测试技术是基于软件规约的,对错误的假定是软件通过了与预想不同的事务路径;

(4)基于事务的基本操作;事务流测试技术的最大问题和最大代价是获取事务流程图及用例设计;

(5)事务处理流程测试要达到基本的测试覆盖。

36.简述增量模型以及可适应的情况。

P224

答:

增量模型意指需求可以结构化分组,形成一个个增量,并形成一个结构,之后对每一个增量进行瀑布开发。

用增量模型开发的前提是需求的结构化,模型适合“技术驱动”的软件产品开发。

36.简述容错技术的四种主要手段,并解释。

结构冗余:

包括静态冗余、动态冗余和混合冗余。

信息冗余:

为检测或纠正信息在运算或传输中的错误,须外加一部分信息。

时间冗余:

指重复执行指令或程序来消除瞬时错误带来的影响。

冗余附加技术:

指为实现上述冗余技术所需的资源和技术。

37.以G.J.Myers的观点,简述对软件测试的目的。

软件测试是

(1)为了发现错误而执行程序的过程;

(2)一个好的用例能够发现至今尚未发现的错误的测试。

(3)一个成功的测试是发现至今尚未发现的错误的测试。

38.就程序设计语言的工程特性而言,对程序编码有哪些要求?

就程序设计语言的工程特性而言,对程序编码有如下要求:

(1)可移植性

(2)开发工具的可利用性(3)软件的可重用性(4)可维护性

39.模块的内聚性包括哪些类型?

模块的内聚性包括:

(1)偶然内聚

(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚

36.可行性研究报告的主要内容有哪些?

    解:

一个可行性研究报告的主要内容如下:

   

(1)引言:

说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。

   

(2)可行性研究前提:

说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。

   (3)对现有系统的分析:

说明现有系统的处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。

   (4)所建议系统的技术可行性分析:

所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。

   (5)所建议系统的经济可行性分析:

说明所建议系统的各种支出,各种效益;收益投资比;投资回收周期。

   (6)社会因素可行性分析:

说明法律因素,对合同责任、侵犯专利权、侵犯版权等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。

   (7)其他可供选择方案:

逐一说明其他可供选择的方案,并说明未被推荐的理由。

   (8)结论意见:

说明项目是否能开发;还需要什么条件才能开发;对项目目标有什么变动等。

    [解析]做软件的可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为八个基本内容。

  37.系统设计的内容是什么?

    解:

系统设计阶段先从高层入手,然后细化。

系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。

   

(1)系统分解。

系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。

每次分解的各子系统数目不能太多,最底层子系统称为模块。

   

(2)确定并发性。

分析模型、现实世界及硬件中不少对象均是并发的。

系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。

后者可以放在一起,而综合成单个控制线或任务。

   (3)处理器及任务分配。

各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:

估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。

   (4)数据存储管理。

系统中的内部数据和外部数据的存储管理是一项重要的任务。

通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。

   (5)全局资源的处理。

必须确定全局资源,并且制定访问全局资源的策略。

全局资源包括:

物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。

   如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。

   (6)选择软件控制机制。

分析模型中所有交互行为都表示为对象之间的事件。

系统设计必须从多种方法中选择某种方法来实现软件的控制。

   (7)人机交互接口设计。

设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。

  38.什么是软件危机?

软件危机的表现是什么?

其产生的原因是什么?

    解:

软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。

一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。

在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。

   软件危机表现在以下四个方面:

   

(1)经费预算经常突破,完成时间一再拖延。

由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。

主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。

由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。

   

(2)开发的软件不能满足用户要求。

开发初期对用户的要求了解不够明确,未能得到明确的表达。

开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。

   (3)开发的软件可维护性差。

开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。

程序结构不好,运行时发现错误也很难修改,导致维护性差。

   (4)开发的软件可靠性差。

由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。

   造成软件危机的原因是:

   

(1)软件的规模越来越大,结构越来越复杂。

(2)软件开发管理困难而复杂。

(3)软件开发费用不断增加。

(4)软件开发技术落后。

(5)生产方式落后。

6)开发工具落后,生产率提高缓慢。

  39.软件质量保证应做好哪几方面的工作?

    解:

软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:

   

(1)采用技术手段和工具。

质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。

   

(2)组织正式技术评审。

在软件开发的每一个阶段结束时,都要组织正式的技术评审。

国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。

   (3)加强软件测试。

软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。

   (4)推行软件工程规范(标准)。

用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。

   (5)对软件的变更进行控制。

软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。

   (6)对软件质量进行度量。

即对软件质量进行跟踪,及时记录和报告软件质量情况。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1