当前位置:文档之家› 软件工程课后习题参考答案

软件工程课后习题参考答案

软件工程课后习题参考答案
软件工程课后习题参考答案

1.简述软件开发的本质。

答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19

2.简述实施软件开发的基本途径。

答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19

3.简述何谓模型以及软件开发中所涉及的模型。

答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。

需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。

6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可分为性能需求,外部接口需求、设计约束和质量属性需求。P23 Array 7、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如

非功能需求可作用于一个或多个功能需求

其中,非功能需求1作用于功能需求1和功能需求3

8、有哪几种常用的初始需求发现技术?

答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26

9、简述需求规约的3种基本形式。

(1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一

篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。P29

10、简述软件需求规约的内容和作用。

答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28

需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31

11、简述需求规约在项目开发中的基本作用。

答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31

12、简述需求规约和项目需求的不同。

答:需求规约和项目需求是两个不同的概念。需求规约是软件开发组织和用户之间一份事实上的技术合同书,即关注产品需求,回答“交付给客户的产品/系统是什么”;而项目需求是客户和开发者之间有关技术合同——产品/系统需求的理解,应记录在工作陈述中或其他某一项目文档中,即关注项目工作与管理,回答“开发组要做的是什么”。P30

13、何谓模块耦合?简述模块耦合的类型。

答:耦合是不同模块之间相互依赖程序的度量。

内容耦合:当一个模块直接修改或操作另一个模块的数据,或一个模块不通过正常入口而转入到另一个模块时;

公共耦合:两个或两个以上的模块共同引用一个全局数据项;

控制耦合一个模块通过气喘吁吁向另一个模块传递一个控制信息,接收信号的模块根据信号值进行适当的动作;

标记耦合:若一个模块A通过接口向两个模块B和C传递一个公共参数;

数据耦合:模块之间通过参数来传递数据。

14、何谓模块内聚?简述模块内聚的类型。

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

偶然内聚:一个模块的各成分之间基本不存在任何关系;

逻辑内聚:几个逻辑上相关的功能被放在同一个模块中;

时间内聚:一个模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素关联在一起;

过程内聚:一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行;

通信内聚:一个模块的所有成分都操作同一数据集或生成同一数据集;

顺序内聚:一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入;

功能内聚:最理想的内聚,模块的所有成分对于完成单一的功能都是基本的。功能内聚的模块对完成其功能而言是充分必要的。

15、何谓模块的控制域和模块的作用域?并举例说明

答:控制域:模块本身以及所有直接或间接从属于它的模块的集合。

作用域:受该模块内的一个判定所影响的所有模块的影响

16为了表达系统功能模型,结构化分析方法给出了哪些基本概念?他们是如何表示的?其基本作用是什么?使用中应注意哪些问题?

答:给出的基本概念:数据流、加工、数据存储、数据源和数据潭。表示方法:(注:表示方法都是图形,请按文字提示画图)数据流表示方法:方向向右的箭头;加工的表示方法:椭圆;数据存储表示方法:两条平行线;数据源表示方法:一个长方形;数据源和数据潭表示方法:两个并列的长方形。作用:数据流:用于表达在分析中所使用的、用于表达“客体”的信号。加工:用于表达在分析中所使用的、用于表达“处理”的信号。数据存储:用于表达在分析中所使用的、用于表达“结构化客体”的信号。数据源和数据潭:表示系统的环境,可以使用它们和相关数据流来定义系统的边界,表达系统/产品“边界”的信息。

17以结构化分析方法建立的系统功能模型由哪些部分组成?每一部分的基本作用是什么?

答:组成部分:数据流、加工、数据存储、数据源和数据潭。基本作用:(同上面第一小题里的“作用”)

18解释结构符“+”、“|”、“{}”的含义,并举例说明。

答:顺序结构是指数据A是由数据B和数据C顺序构成的,记为“+”。例:学生成绩=姓名+姓名+性别+学号+科目+成绩。选择结构是指由数据A或是由数据B0或是有数据C0定义的,即数据B不可能同时是B0 C0,并记为“|”。

例:性别=男|女。重复结构是指数据A是由多个重复出现的数据B构成,并记为“{}”。例:学生成绩表={学生成绩}。

19就一个特定系统而言,系统功能模型与系统模型的主要区别是什么?

答:区别:系统功能模型分为数据流、加工、数据存储、数据源和数据潭这四部分组成。系统模型分为两类:一类称为概念模型,描述了系统是什么;另一类系统称为软件模型,描述了实现概念模型的软件解决方法。

20简述结构化方法总体设计的任务及目标。

答:任务:在需求分析的基础上,定义满足需求所需要的结构。目标:建立系统的模块结构。

21简述结构化方法详细设计的任务及目标。

答:任务:具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构,从而精确地定义了满足需求所规约的结构。目标:将总体设计阶段所产生的系统高层结构映射为以这些术语所以澳大的低层结构,也是系统的最终结构。

22简述变换设计与事务设计之间的区别。

答:区别:变换设计的目标是将变换型数据流图映射为模块结构图,而事务设计的目标是将事务型数据流图映射为模块结构图。

23简述启发式规则的基本原理。

答:启发式规则“基于高内聚低耦合的原理,采用一些经验性的启发式规则,对初始的模块结构图进行精化,形成最终的模块结构图”。启发式规则包括:1)改进软件结构,提高模块独立性。2)力求模块规模适中。3)力求深度、宽度、扇出和扇入适中。4)尽力使模块的作用域在其控制域之内。5)尽力降低模块接口的复杂度。6)力求模块功能可以预测。

24简述依据一个系统的DFD,将其转换为MSD的基本思路。

答:结构化设计方法在分类DFD的基础上,基于自顶向下、功能分解的设计原则,定义了两种不同的“映射”,即变换设计和事务设计。其基本步骤是,首先将系统的DFD图首先转化为初始的模块结构图,再基于“高内聚低耦合”这一软件设计原理,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图(MSD)。

25为什么说结构化分析与结构化设计之间存在一条“鸿沟”?

答:从软件方法学习研究的角度,结构化方法仍然存在一些问题,其中最主要的问题是仍然没有“摆脱”冯·诺依曼体系结构的影响,捕获的“功能(过程)”和“数据”恰恰是客观失误的易变性质,由此建造的系统结构很难与客观实际系统的结构保持一致。

26.举例说明结构化方法给出的控制复杂性机制。

答:1上层数据流可以打包,实例研究数据流查询要求就是一个打包数据,并以*作一特殊标志。上下层数据流之间的对应关系通过数据字典予以描述。2为便于理解,把一幅图中图元个数尽量控制在7加减2个以内。3检查与每个加工相关的数据流是否有太多的输入/输出数据流,并寻找可降低该加工接口复杂性的,对数据流进行划分的方法。4分析数据内容,确定是否所有的输入信息都用于产生输出信息,相应的由一个加工产生的所有信息是否都能由进入该加工的信息导出。

27.试分析结构化方法在建造系统模型中存在的问题。

答:最主要的问题是没有摆脱冯·诺依曼体系结构的影响,捕获的功能过程和数据恰恰是客观事物的易变性质,由此建造的系统结构很难与客观实际系统的结构保持一致。在某种意义上说就是这些问题促使面向对象方法学的产生和发展。

28.举例说明变换设计的步骤。

答:第一步,设计准备,复查并精化系统模型。第二步,确定输入,变换,输出这三部分之间的边界。第三步,第一级分解,系统模块结构图顶层和第一层设计。第四步,第二级分解,自顶向下,逐步求精。

29.举例说明事务设计的步骤。

答:第一步,设计准备,复查并精化系统模型。第二步,确定事务处理中心。第三步,第一级分解,系统模块结构图顶层和第一层设计,以数据流图为基础,按自顶向下逐步细化的原则进行。第二级分解自顶向下逐步求精。

30.一种软件开发方法学,应该由哪些基本部分组成?

答:包括结构化分析方法、结构化设计方法、结构化程序设计方法

31.为了表达客观事物,UML给出了哪些基本术语?

答:为了支持抽象分析和设计中的事物,UML给出了8个基本术语,即类、接口、协作、用况、主动类、构件、制品、结点,并给出了这些基本术语的一些变体。

32.为了表达客观事物之间的关系,UML给出了哪些基本术语?这些术语之间是什么关系?

答:关联、泛化、细化和依赖,以及它们的一些变体。.结构关系,继承关系,精化关系,依赖关系.

33.什么是对象的构成与表示?并说明。

答类是一组具有相同属性、操作、关系和语义的对象的描述。对象是类的一个实例

34.什么是类图的构成成分?

答:类图是可视化地表达系统表态结构模型的工具,通常接口、关联、泛化和依赖

35.什么是状态图的构成成分?

答:在规约一个状态时,主要涉及一下内容

(1)名字(2).进入/退出效应.(3).do动作活动.(4).被延迟事件.

36.什么是顺序图的构成成分?

答:顺序图是一种交互图,即由一组对象以及按时序组织的对象之间的关系组成,其中还饮食这些对象之间所发送的消息

37.如何描述对象之间的关联语义?

答:关联是目录之间的一种结构关系,是对一组具有相同结构、相同链接的描述。链是对象之间具有特定语义关系的抽象,实现之后的链接通常称为对象之间的链接.

38.用况之间有哪几种关系?

答:一个用况图通常包含6个模型元素,它们是主题、用况、参与者、关联、泛化、依赖

39.在什么情况下需要建立状态图?

答:状态图可用于创建有关系统(或系统成分)的行为生存周期模型,表达有关系纺(或系统成分)的一种动态结构,给出有关系统(或系统成分)在生存期间有哪些阶段、每一阶段可从事的活动以及对外所呈现的特征等方面的信息

40.在一个类的描述中,同时引入“操作”和“方法”的目的是什么?

答:表达模型化包之间的关系

41.为什么使用包?如何划分包

答:包的最初来源是用例,包划分的最初来源是用例模型,对用例按功能分组,可以得到用例包。

用例包在分析阶段很自然的可以对应得到分析包,在分析阶段还可以找到其它的一些分析包,比如某个相对底层的服务(如用于表示持久化机制的包)。

分析包通常会对应到设计阶段的应用子系统,除此之外,还有其它的一些设计子系统,比如负责封装通讯机制的Corba服务子系统。

42.使用UML可以从那些角度来刻画一个系统的行为?为什么?

静态、动态

43.在描述客观事物方面,面向对象方法与结构化方法提取信息的不同角度是什么?各自的角度将对建造的系统模型产

生什么影响?

答:结构化方法的提出,是基于看待客观世界的基本观点,即一切信息系统都是由信息流构成的,每一信息流都有自己的起点-数据源,有自己的归宿-数据潭,有驱动信息流动的加工,所谓信息处理主要表现为信息的流动。

结构化方法作为一种特定的软件开发方法学,是从系统分析和软件设计的一种思想工具。

面向对象方法认为,世界是由客体组成的,客体有自己的属性和活动规律,客体之间的相互依赖和相互作用构成了大千世界的各式各样系统。所以就应充分运用人类认识客观世界、解决实际问题的思维方式和方法。

眠功效对象方法是一种根据客体之间的关系来建造系统模型的系统化方法。

44.比较面向对象方法与结构化方法在控制信息组织复杂性方面所引入的机制?

答:结构化方法主要体现在三个方面。一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。

三、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。

面向对象方法主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其它对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等。

45类与对象之间的关系,举例说明?

答:类是一组具有相同书、操作、关系、和语义的对象的描述,对象是类的一个实例。一个类可以有多个属性,也可以没有属性。而类的一个对象对其所属类的每一个属性应有特定的值。

46.关联与链之间的关系,试举例说明

答:关联是类目的一种结构关系,是对一组具有相同结构、相同链的描述,链是对象之间具有特定语意关系的抽象,实现之后的链通常称为对象之间的连接,关联用一条连接两个类目的线段表示,并可对其命名

47.何谓对象状态,如何描述一个对象的状态?试举例说明

答:一个状态是类目的一个实例在其生存中的一种条件或情况,期间该实力满足这一条件,执行某一活动或等待某一消息;在UML中,通常把一个状态表示成一个具有圆角的矩形,分为名字栏和内部转换栏,主要包括:名字,是一个表示状态的文本串,作为状态名;进入/退出效应,为了有效地抽取一个对象的状态,控制状态抽取的复杂性,UML在规约一个状态时引入进入/退出效应;状态内部转移,是指没有导致该状态改变的内部转移;do动作或活动,是指状态中一动作或活动没有完成,就一直执行之,并当该动作或活动完成时,可能会产生一个完成事件,导致该状态的转移。

48.何谓组合状态?举例说明之

答:含有子状态的状态称为组合状态,组合状态包含两种类型的字状态机,即顺序子状态和并发子状态机

49何谓非正交子状态机,并简述非正交子状态机的转入与转出

答:非正交子状态机就是顺序子状态机

50.何谓正交子状态机,并简述正交子状态机的转入与转出

答:正交子状态就是并发子状态机

51.何谓事件?对信号事件和调用事件作一比较

答:事件是指对确定的时空内一个有意义的规约信号;事件是指消息的一个类目,是一个消息类型,调用事件是指对象接受到一个操作的请求,信号事件是一种异步事件,信号通常由状态处理机,调用事件往往是一个同步事件,即发送者和接受者都处在该操作执行期间的一个汇合点,发送者的控制流一直被挂起,直到该操作执行完成52何谓顺序图中的控制操作子?试举例说明

答:为了控制交互行为描述的复杂性,以便更清晰地表达顺序图中的复杂控制,UML给出了4种最常用的控制操作子;例如,选择执行操作子:该控制操作子记为“Opr”,由两部分组成,条件执行操作子:该操作子记为“alt”,控制体通过水平线将其分为一部分,每一部分表示一个条件分支,每一分支有一个监护条件,并发执行操作子:该操作子记为“par”,该控制操作子的体通过水平线将其分为多个部分,迭代执行操作子:该操作子记为“loop”,其中一个监护条件出现在控制体中一条生命线的顶端

53何谓顺序图中的控制操作子?试举例说明。

答:为了控制交互行为描述的复杂性,以便更清晰地表达顺序图中的复杂控制,给出了个个控制操作子,选择、条件、并发、迭代操作控制子。

54.演化模型与“RUP增量、迭代开发”之间关系

答:RUP迭代、增量式开发是演化模型的一个变体,即规定了“大的”迭代数量-4个阶段,并规定了每次迭代的目标初使阶段:获得与特定腹部和平台无关的系统体系结构轮廓,以此建立产品功能范围;编制实例业务实例,从业务角度指出该项目的价值,减少项目主要的错误风险;精华阶段:通过捕获并描述系统的大部分需求,建立系统体系结构基线的第一个版本,主要包括用况模型和分析模型,减少次要的错误风险,到该阶段未,就能够估算成本、进步,并能详细地规划构造阶段;构造阶段:通过演化,形成最终的系统体系结构基线,开发完整的系统,确保产品可以开始向客户交付,即具有初始操作能力;移交阶段:确保有一个实在的产品发布给用户群。期间培训用户如何使用该软件。

55.RUP与UML之间关系

答:RUP与UML是一对“姐妹”,它们构成了一种特定的软件开发方法学。其中,UML作为一种可视化建模语言,给出了表达事物和事物之间关系的基本术语,给出了多种模型的表达工具;而RUP利用这些术语定义了需求获取层、系统分析层、设计层、实现层,并给出了实现各层模型之间映射的基本活动以及相关指导。

56什么是特征(Teature)?举例如何描述它。

答:从客户、用户、计划者、开发者想法和意愿中搜取特征,形成特征表。特征是一个新的项及其简要描述

“按不同科目计算平均成绩”计算平均成绩:按所学的不同科目计算每一个学生的期末考试平均成绩,给出分数段并描述其状态(如提议、批准、合并和验证等)、实施的代价及风险、重要程度以及对其他特征的影响等,特征可作为需求,并被转换为其它制品。

58.需求获取模型的基本组成

答:使用UML中的用况、参与者以及依赖等术语来抽象客观实际问题,形成系统的需求获取模型

59.建造一个系统需求获取模型的活动和任务,以及各活动的输入和输出

答:发现描述参与者和用况,输入:业务模型或领域模型,补充需求,特征表;输出:用况模型[概述],术语表赋予用况优先级:输入:用况模型[概述],补充需求,术语表;输出:体系结构描述[用况模型视角];

精华用况:输入:用况模型[概述],补充需求,术语表;输出:用况[精化]构造人机接口原型:输入:用况[精华],用况模型[概述],补充需求,术语表;输出:人机接口原理;

用况模型结构化:输入:用况[精华],用况模型[概述],补充需求,术语表;输出:用况模型[精化]。

60.如何描述系统的参与者和用况?举例说明

答:参与者:发现参与者与描述参与者:1)之前已经存在业务用况模型,可依据业务模型直接发现一些候选参与者,2)没有业务用况模型,即使存在领域模型,也需要系统分析人员与客户一起来标识系统参与者。用况是系统向它的参与者提供结果(值)的功能块,表达参与者使用系统的方式,因此一个用况可用于规约系统可执行的、与参与者进行交互的一个动作序列,包括其中一些可选动作序列,并且用况还有自己的属性。

61.需求分析层及相关概念

答:在系统用况模型的基础上,创建系统分析模型以及在该分析模型视角下的体系结构描述,系统分析模型是系统的一种概念模型,解决系统用况模型中存在的二义性和不一致性问题,并以一种系统化的形式准确地表达用户的需求。

62.需求分析模型的基本组成

答:RUP的分析如同结构化分析,其目标之一是在一个特定的抽象层上建立系统分析模型。为此,RUP首先给出了3个术语:分析包、分析类和用况细化,用于表达需求中“大粒度”的概念,开发人员使用这些术语可以规约系统

分析中所要使用的信息。

分析类:是类的一种衍型,很少有操作和特征标记,而用责任来定义其行为,并且其属性和关系也是概念性的,包括:边界类、实体类、控制类。

用况细化:是一个针对一个用况,其行为可用多个分析类之间的相互作用来细化,并记为用况细化[分析]

分析包:分析包是一种控制信息组织复杂性的机制,提供了分析制品的一种组织手段,形成了一些可管理的部分。

63.建造一个系统需求分析模型的活动和任务,以及各活动的输入和输出.

答:体系结构分析:输入:用况模型、补充需求、业务模型或领域模型、体系结构描述[用况模型];输出:分析包[概述]、分析类[概述]、体系结构描述[分析];细化用况:输入:用况模型、补充需求、业务模型或领域模型、体系结构描述[分析];输出:用况细化[分析]、分析类[概述]对类分析:输入:用况细化[分析]、分析类[概述] 输出:分析类[完成];对包进行分析:输入:系统体系结构描述[分析]、分析包[概述]输出:分析类[完成]。

64需求分析模型对以后开发工作的影响

答:对设计中子系统的影响。分析包一般将影响设计子系统的结构对设计类的影响。分析包可以作为类设计时的规格说明。对用况细化[设计]的影响。用况细分[分析]对用况细化[设计]有两方面影响,一个是它们有乃至于为用况创建更精确的规格说明,另一个是当对用况进行设计时,用况细化[分析]可作为其输入。

65.需求获取模型与需求分析模型之间比较

答:语言描述不同:客户语言与开发语言视图:系统外与系统内

结构:使用用况予以结构化,给出外部视角系统结构与使用衍型类结构化,给了部视角系统结构作用:标注“系统应该做什么,不应该做什么”与可以做出开发者理解系统如何勾画、如何设计和如何实现基础问题:可能存在冗余、不一致和冲突等问题与解决了上述问题捕获系统功能,包括体系结构方面具有意义的功能与给出细化系统功能,包括在体系结构方面具有意义的功能定义一些进一步需要在分析模型中予以分析用况与定义每一个用况细化。66.设计层及相关概念

答:设计目标:定义满足系统/产品分析模型所规约需求的软件结构基本术语:设计子系统、设计类、用况细化[设计]、接口、以及用于表达子系统之间关系的依赖、用于表达设计类之间关系的关联等,这些术语确定了系统设计模型的各种形态。

67.设计模型的基本组成

答:设计子系统、设计类、用况细化[设计]、接口、以及用于表达子系统之间关系的依赖、用于表达设计类之间关系的关联等,这些术语确定了系统设计模型的各种形态。

68.建造一个系统设计模型的活动和任务,以及各活动的输入与输出

答:体系结构设计:输入:用况模型、补充需求、分析模型、体系结构描述[分析模型角度];输出:子系统[概述]、接口[概述]、设计类[概述]、部署模型[概述]、体系结构描述[设计];设计用况:输入:用况模型、补充需求、分析模型、部署模型;输出: 用况[设计-实现]、设计类[概述]、子系统[概述]、接口[概述];对类设计:输入: 用况[设计-实现]、设计类[概述]、接口[概述] 、分析类[完成];输出:设计类[完成] ;设计子系统:体系结构描述[设计]、子系统[概述]、接口[概述];输出:子系统[完成]、接口[完成]。

69.测试过程模型,并分析这一模型在软件测试技术研究以及实践中的作用

答:软件测试是一个有程序的过程,包括测试设计、测试执行、以及测试结果比较等

环境模型、被测模型和错误模型在软件测试中扮演了一种很重要的角色;这些模型的质量,特别是程序模型的质量,对发现错误具有关键性的作用软件测试的错误假定是,实际结果与预期结果不符,而后在此基础上可进一步分析是什么错误。

70.软件测试与调度的区别

答:1)..测试从一侧面证明程序员的“失败”。调度为了证明程序员是正确的;2).测试以已知条件开始,使用预告定义的程序且有预知的结果,不可预见的仅是程序是否通过测试;3).测试是有计划的,并要进行测试设计。高度是不受时间约束的;4).测试是发现错误、改正错误、重新测试的过程。调试是一个推理过程;5).的执行是有规程的。

调试的执行往往要求程序员进行必要推理;6).测试经常由独立的测试组在不了解软件技术的条件下完成的。高度必须由了解详细设计的程序员完成;7)大多数测试的执行和设计可由工具支持。调试时,程序员能利用的工具主要是调试器。

71.程序流程图的作用及构成

答:流程图的作用是着重于过程属性描述。

72.简述语名覆盖、分支覆盖、条件组合覆盖、路径覆盖的含义及它们之间的关系

答:路径覆盖:执行所有可能穿过程序控制流程的路径语句覆盖:至少执行程序中所有语句一次分支覆盖:至少将程序中的每一个分支执行一次条件覆盖:指每个判定中的所有可能的条件取值至少执行一次条件组合覆盖:设计足够测

试,使每个判定中的所有可能的条件聚会组合至少执行一次存在以下关系语句覆盖<分支覆盖<条件组合覆盖<…路径覆盖。

73简术单元测试、集成测试、有效性测试的含义及它们之间的区别.。

答:单元测试:主检验软件设计的最小单元――模块。该测试以详细设计文档为指导,测试模块内的重要控制路径。

集成测试:是软件组装的一个系统化技术,其目标是发现与接口有关的错误

有效性测试:发现软件实现的功能与需求规格说明书不一致的错误

74.简述路径测试技术、事务流测技术的主要依据

答:一个依据程序逻辑结构,一个依据软件行为描述

75简述程序流程图与事务流程图之间的主要区别,并分析这些区别的主要原因

答:1)基本模型元素所表达的语义不同;2)一个事务不等同于路径测试中一条路径,可能在中间某处就完成了某一用户工作,终结了一个事务;3).事务流程图中的分支和节点可能是一个复杂的过程。

76、简述白盒测试技术的要点,并举例说明

答:白盒测试技术依据程序的逻辑结构,以控制流程图作为被测对象建模工具,其中涉及过程块、分支、节点、链以及路径,并针对测试民,给出了4种覆盖策略:语名覆盖、分支覆盖、条件组合覆盖和路径覆盖,它们之间具有偏序关系,并且可根据项目需求给出其他覆盖策略。

77、事务流测试技术的要点,并举例说明

答:事务流测试技术是一种功能测试技术,目前提出了很多功能测试技术,如定义域测试技术、等价类测试技术以及基于因果图的测试技术等,统称为黑盒子测试技术。黑盒测试将被测软件看成黑盒子,只通过外部的输入和输出来发现软件中的错误,因此黑盒测试是一种基于软件规约的测试。

78、简述软件开发中的过程类,以及它们的基本作用和它们之间的基本关系

答:分为3类:基本过程:那些软件生产直接相关的活动集,分5个过程:获取过程、供应过程、开发过程、运行过程和维护过程支持过程:有关各方面按他们的目标所从事的一系列相关支持活动集,有助于提高系统或软件产品的质量,分为:文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程和问题解决过程等组织过程:与软件生产组织有关的活动集,分管理过程、基础设施过程、培训过程、改进过程

79、在ISO/IEC12207-2008中如何描述一个过程?举例说明

答:①.为获取方获取一个软件产品或服务,为供应方开发、运行、维护、提供和销毁一个软件产品,建立了一种软件生存周期框架,包含过程、活动和任务,并通过过程分类、过程描述,给出它们之间的内在关系

②.为软件生存周期过程的定义、控制和改进提供了一个过程,即生存周期模型管理过程

供应过程:为获取方提供满足所协商需求的产品或服务软件实现过程:软件实现过程是为了生产一个已规约系统元素,作为一个软件产品或服务而实现

软件需求分析过程:建立系统软件部分的需求

软件体系结构设计:为软件的实现及其可以按需求进行验证,提供一种设计

软件验证过程:证实一个过程或项目的每一个软件工作产品/服务是否正确地反映所规约的需求

软件确认过程:证实所期望的软件工作产品是否满足其需求。

80、什么是软件开发特定的过程类?举例说明。

答:为了更有效的描述软件开发活动和任务,把一个系统在其生存周期内可执行的活动分为两大类:系统语境的过程,针对软件开发的过程,在此基础上,把生存周期分成7个过程组针对软件开发的过程类。

81、什么是验证和确认?简述它们的作用和区别

答:验证:证实一个过程或项目的每一个软件工作产品/服务是否正确地反映所规约的需求验证和确认是有区别的。

验证是通过提供的客观证据,证实规约的需求是否得以满足确认是通过提供的客观证据,证实有关特定期望的使用或应用的需求是否得以满足软件确认过程:证实所期望的软件工作产品是否满足其需求

82、简述瀑布模型以及可适应的情况

瀑布模型将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到产品适应情况:需求已被很好的理解,并且开发组织非常熟悉为实现这一模型所需求的过程。

83、简述演化模型以及可适应的情况

答:表达了一种弹性的过程模式,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量,通过这些迭代,最终完成软件产品的开发。

主要针对事先不能完整定义需求的软件开发。

84、简述增量模型的优缺点

答:优点1)第一个可交付版本所需要的成本和时间是较少的,从而可减少开发由增量表示的小系统承担的风险;2)

由于很快发布第一个版本,因此可以减少用户需求的变更;3)允许增量投资,即在项目开始时可以仅对一个或两个增量投资。缺点:1)如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;

2)如果需求不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;3)由于进度和配置的

复杂性,可能会增大管理成本,超出组织的能力。

85、简述螺旋模型以及它与其它模型之间的主要区别

答:螺旋模型是瀑布模型与深化模型的基础上,加入两者所忽略的风险分析所建立的一种软件开发模型螺旋模型关注解决问题的基本步骤,即标识问题,标识一些可选方案,选择一个最佳方案,遵循动作步骤并实施后续工作,突出特征,在开发的迭代中实际上只有一个迭代过程真正开发了可交付的软件2)与深化模型和增量模型相比,同样使用了瀑布模型作为一个嵌入的过程,即分析、设计、编码、实现和维护的过程,并且在框架和全局体系结构方面是等同的。但是,螺旋模型所关注的阶段以及它们的活动是不同的,如增加一些管理活动和支持活动。尽管增量模型也有一些管理活动,但它基于以下假定:需求是最基本的、并且是唯一的风险源,因而在螺旋模型中增大了决策和风险的空间,螺旋模型扩大了增量模型的管理范围。如果项目的开发风险很大或客户不能确定系统需求,在更广泛的意义上来讲,还包括一个系统或系统类型的要求,这时螺旋模型就是一个好的生存周期模型.

86. 简述语句覆盖、分支覆盖、条件组合覆盖、路径覆盖的含义及他们之间的关系

答:语句覆盖:至少执行程序中所有语句一次,如果遵循这一规定,则达到了100%语句覆盖率(用C1表示)。语句覆盖是一种最低的测试度量,因此发现程序错误的能力很弱。分支覆盖:至少至少将程序中的每一个分支执行一次。如果遵循这一规则,则达到了100%分支覆盖率(用C2表示)。分值覆盖是一种语句覆盖稍强的覆盖,因为通过了各个分支,则各语句也都覆盖率了。但分支覆盖还不能保证一定能查出在判定条件中存在的错误。条件组合覆盖:是指设计足够的测试用例,是每个判定中的所有可能的条件取值组合至少执行一次。如果遵循这一规定,则实现了条件组合覆盖。只要满足了条件组合覆盖,就一定能满足分支覆盖。路径覆盖:执行所有可能穿过程序控制流程的路径,一般情况下,这一测试严格地限制为所有可能的入口/出口路径。如果遵循这一规定,则达到了100%覆盖率。在路径测试中,该亮度是最强的,一般是不可实现的。

87. 单元测试、集成测试、有效性测试的含义及它们之间的区别。

答:单元测试主要检测软件设计的最小单位——模块。该测试以详细详细设计文档为指导,测试模块中的重要控制路径。一般来说,单元测试往往采用白盒技术。在单元测试期间,通常考虑模块的四个特征,以及与之相关的边界条件:1)模块接口。2)局部数据结构。3)重要的执行路径。4)错误执行路径。集成测试是软件组装的一个系统化技术,其目标是发现与接口有关的错误,将经过单元测试的模块构成一个满足设计要求的软件结构。集成测试可“自顶向下”地进行,称为自顶向下的集成测试,也可“自底向上”地进行,称为自底向上的集成测试。

有效测试的目标是发现软件实现的功能与需求规格说明书不一致的错误。因此,有效性测试通常采用黑盒技术。

为了实现有效性测试,制定的测试计划应根据采用的测试技术给出要进行的一组测试,并给出测试用例和预期结果的设计。通常在测试执行之前应进行配置复审,其目的是保证软件配置的所有元素已被正确的开发并编排目录,具有必要的细节以支持和软件生存周期的维护阶段。区别:单元测试集中于单个模块的功能和结构检测;集成测试集中于模块组合的功能和软件结构检测;有效性测试验证软件需求的可追溯性。

88. 简述路径测试技术、事务流测试技术的主要依据.

答;路径测试技术支持测试过程模型的中间部分;路径测试技术是一种简单,实用的单元测试技术,通过程序中的控制逻辑可以发现数据错误、基本计算错误等;路径测试技术是基于程序逻辑结构的,对错误的假定是软件通过了与预想不同的路径;在路径测试技术中,采用控制流程图作为模型表达工具,支持创建被测试程序的模型;

基于路径的基本属性,路径测试技术给出了几种常见的测试路径覆盖,包括语句覆盖、分支覆盖、条件组成覆盖和路径覆盖等,这几种覆盖是一个偏序。根据软件特定需要,可以在条件组合覆盖和路径覆盖之间定义其他类型的覆盖;路径选取是测试用例世纪的基础。事务流测试技术的要点:玉路径测试一样,支持测试过程模型的中间部分;事务流测试技术是将路径测试技术用于功能测试的产物,通过事物的操作逻辑发现软件中的逻辑错误、数据错误、计算错误等;事务流测试技术是基于软件规约的,对错误的假定是软件通过了与预想不同的事务路径;

在事务流测试技术中,采用事务流程图作为模型表达工具,支持创建被测试软件的模型;基于事务的基本属性,事务流测试技术最大的问题和最大的代价是获得事务流程图以及用例设计;一般,事务流程测试要求达到基本事务的覆盖,但是大部分错误将在奇异的、不受注意的或非法的操作流中发现,更为重要的是,在事务处理流程测试中,如果设计测试用例时能与设计者讨论,将可以发现比运行测试更多的错误。

89.针对程序流程图中出现的各种循环,如何选取测试路径?

答:循环结构可分为单循环、嵌套循环、级联循环和混杂循环。由于循环结构的错误容易发生在控制变量的边界上,对于不同的循环给出相应的路径选取规则。1)单循环。1.最小循环次数为0,最大次数为N,且无跳跃值。

选取:循环控制变量为-1、0、1典型重复次数、N-1、N、N+1的路径。 2.非0最小循环次数,且无“跳跃”值。

选取:循环控制变量次数为“最小循环次数-1”、“最小重复次数加1”、“典型重复次数”、“最大重复次数-1”、“最大重复次数”、“最大重复次数加1”。 3.具有活跃值的单循环,除把每一个跳跃边界按“最小循环次数”、“最大循环次数”处理外,其他规则与前两种一样。2)嵌套循环。1.从最深层的循环开始,设定所有外层循环取他的最小值。2.测试最小值减一、最小值、最小值加一、典型值、最大值减1、最大值、最大值加1。与此同时,测试“跳跃”值边界。 3.设定内循环在典型值处,按2循环外层循环,直到覆盖所有循环。3)级联循环。

如果级联循环中每个循环的控制变量有关,则可视为嵌套循环。如果级联循环中每个循环的控制变量无关,则可视为单循环。

90.CMMI于的基本思想

答:该模型基于过程途径思想,通过过程把软件质量的3个支撑点――受训的人员、规程和方法、工具和设备进行集成,以开发所期望的系统/产品。为此,CMMI紧紧围绕开发、维护和运行,把经过证明的“最佳实践“放在一个结构中。该结构有乃至于指导组织确定其过程的发送优先次序;有乃至于指导这些改善的实施,以提高其过程能力和成熟度,并且还支持其它领域(如获取和服务)能力成熟度模型开发。

91么是过程制度化?在CMMI把过程制度化分几个等级?简要回答每一等级主要特征

答:重现已定义过程的的特征. 分5个等级:1级为初始级,2级为已管理等级,3级为已定义级,4级为已定量管理级,5级为持续优化级。

92述CMMI模型支持两种过程改善路径

答:CMMI提供了两种改善路径,一是称为能力等级是一种过程改善路径,该路径可使组织针对单一过程域不断改善该过程域;二是称为成熟度等级也是一种过程改善路径,该路径可使组织通过关注一组过程域不断改善一组相关过程域。

93述CMMI模型的模型部件及部件间关系

答:1过程域,2专用目标,3专用实践,4公用目标,5共用实践,6典型工作产品,7子实践,8共用实践的精化,9意图陈述,10简介性注释,11相关过程域。

94用实践与共用实践关系

答:专用实践:每一个过程域中都有一个或多个“专用实践”,这些专用实践被认为对于达到该过程域的专用目标是重要活动,即期望以专用实践所描述的活动,会导致达到一个过程域的专用目标共用实践:每一个过程域中都有一个或多个“共用实践”,这些共用实践被认为对于达到该过程域相关的共用目标是重要活动,例如,对共有目标“该过程予以制度化,使之成为一个已管理过程“而言,一个共用实践是”为该过程的执行、工作产品的开发以及该过程的服务,提供充足的资源“。之所以称为“共用实践“,是因为同一实践可应用于多个过程。

95每一成熟度等级所包含的过程域。

答:在成熟度等级,把开发、维扩、运行中的过程分为4个组。包含7个过程域:配置管理、测量与分析、项目监控、项目规划、过程和产品质量保证、需求管理、提供方协议管理。包含11个过程域:决策分析与解决、集成项目管理、组织过程定义、缓缓过程关注、组织培训、产品集成、需求开发、风险管理、技术解决方案、验证、确定组织过程性能和定量项目管理原因分析与解决和组织创新和部署

96述项目规划过程域的专用目标与专用实践

答:专用目标1:SG1建立估算,4个专用实践SP1.1估算项目规模,SP1.2 建立工作产品和任务属性的估算SP1.3定义项目生存周期SP1.4确定工作量和成本的估算专用目标2:SG2 开发项目计划,7个专用实践:SP2.1建立预算和进度,SP2.2标识项目风险SP2.3规划数据管理SP2.4规划项目资源SP2.5规划需要的知识和技能SP2.6规划利益攸关方参与SP2.7建立项目计划专用目标3:SG3获得对该计划的承诺:SP3.1评审该项目的计划SP3.2调和工作和资源等级,使之一致。SP3.3获得计划承诺。

97述开发过程的专用目标与专用实践

答:专用目标1:SG1开发客户需求,2个专用实践SP1.1引出要求SP1.2开发客户需求

专用目标2:SG2开发产品需求,3个专用实践SP2.1 建立产品和产品构件的需求SP2.2分配产品构件需求SP2.3标识接口需求专用目标3:SG3分析并验证需求,5个专用实践SP3.1建立操作概念和场景SP3.2建立所需功能的定义SP3.3分析需求SP3.4分析需求,达到权衡SP3.5确认需求。

98述共用目标2及其相关的共用实践

答:共用目标2:GG2把过程制度化为一个已管理过程,10个共用实践GP2.1建立组织策略GP2.2规划该过程GP2.3提供资源GP2.4指定责任GP2.5培训人员GP2.6管理配置GP2.7标识相关利益方的参与GP2.8监控该过程GP2.9客观地评估过程的符合性GP2.10以高层管理的视觉评审状态.

99.RUP的定义及主要特点

答:RUP是一种软件开发过程框架,基于面向对象符号体系给出了有关软件开发过程组织及实施的指导。该框架体现了

3个突出特征,即以用况驱动、体系结构为中心以及迭代、增量式开发。

1.简述软件开发的本质。

2.简述实施软件开发的基本途径。

3.简述何谓模型以及软件开发中所涉及的模型。

4.简述软件开发所涉及的两大类技术。

5、简述需求与需求规约的基本性质。

6、简述软件需求的分类。

7、举例说明功能需求和非功能需求之间的基本关系。

8、有哪几种常用的初始需求发现技术?

9、简述需求规约的3种基本形式。

10、简述软件需求规约的内容和作用。

11、简述需求规约在项目开发中的基本作用。

12、简述需求规约和项目需求的不同。

13、何谓模块耦合?简述模块耦合的类型。

14、何谓模块内聚?简述模块内聚的类型。

15、何谓模块的控制域和模块的作用域?并举例说明

16为了表达系统功能模型,结构化分析方法给出了哪些基本概念?他们是如何表示的?其基本作用是什么?使用中应注意哪些问题?

17以结构化分析方法建立的系统功能模型由哪些部分组成?每一部分的基本作用是什么?

18解释结构符“+”、“|”、“{}”的含义,并举例说明。

19就一个特定系统而言,系统功能模型与系统模型的主要区别是什么?

20简述结构化方法总体设计的任务及目标。

21简述结构化方法详细设计的任务及目标。

22简述变换设计与事务设计之间的区别。

23简述启发式规则的基本原理。

24简述依据一个系统的DFD,将其转换为MSD的基本思路。

25为什么说结构化分析与结构化设计之间存在一条“鸿沟”?

26.举例说明结构化方法给出的控制复杂性机制。

27.试分析结构化方法在建造系统模型中存在的问题。

28.举例说明变换设计的步骤。

29.举例说明事务设计的步骤。

30.一种软件开发方法学,应该由哪些基本部分组成?

31.为了表达客观事物,UML给出了哪些基本术语?

32.为了表达客观事物之间的关系,UML给出了哪些基本术语?这些术语之间是什么关系?

33.什么是对象的构成与表示?并说明。

34.什么是类图的构成成分?

35.什么是状态图的构成成分?

36.什么是顺序图的构成成分?

37.如何描述对象之间的关联语义?

38.用况之间有哪几种关系?

39.在什么情况下需要建立状态图?

40.在一个类的描述中,同时引入“操作”和“方法”的目的是什么?

41.为什么使用包?如何划分包

42.使用UML可以从那些角度来刻画一个系统的行为?为什么?

43.在描述客观事物方面,面向对象方法与结构化方法提取信息的不同角度是什么?各自的角度将对建造的系统模型产生什么影响?

44.比较面向对象方法与结构化方法在控制信息组织复杂性方面所引入的机制?

45类与对象之间的关系,举例说明?

46.关联与链之间的关系,试举例说明

47.何谓对象状态,如何描述一个对象的状态?试举例说明

48.何谓组合状态?举例说明之.

49何谓非正交子状态机,并简述非正交子状态机的转入与转出

50.何谓正交子状态机,并简述正交子状态机的转入与转出

51.何谓事件?对信号事件和调用事件作一比较

52何谓顺序图中的控制操作子?试举例说明

53何谓顺序图中的控制操作子?试举例说明

54.演化模型与“RUP增量、迭代开发”之间关系

55.RUP与UML之间关系

56什么是特征(Teature)?举例如何描述它。

58.需求获取模型的基本组成

59.建造一个系统需求获取模型的活动和任务,以及各活动的输入和输出

60.如何描述系统的参与者和用况?举例说明

61.需求分析层及相关概念

62.需求分析模型的基本组成

63.建造一个系统需求分析模型的活动和任务,以及各活动的输入和输出.

64需求分析模型对以后开发工作的影响

65.需求获取模型与需求分析模型之间比较

66.设计层及相关概念

67.设计模型的基本组成

68.建造一个系统设计模型的活动和任务,以及各活动的输入与输出

69.测试过程模型,并分析这一模型在软件测试技术研究以及实践中的作用

70.软件测试与调度的区别

71.程序流程图的作用及构成

72.简述语名覆盖、分支覆盖、条件组合覆盖、路径覆盖的含义及它们之间的关系

73简术单元测试、集成测试、有效性测试的含义及它们之间的区别.

74.简述路径测试技术、事务流测技术的主要依据

75简述程序流程图与事务流程图之间的主要区别,并分析这些区别的主要原因

76、简述白盒测试技术的要点,并举例说明

77、事务流测试技术的要点,并举例说明

78、简述软件开发中的过程类,以及它们的基本作用和它们之间的基本关系

79、在ISO/IEC12207-2008中如何描述一个过程?举例说明

80、什么是软件开发特定的过程类?举例说明。

81、什么是验证和确认?简述它们的作用和区别

82、简述瀑布模型以及可适应的情况

83、简述演化模型以及可适应的情况

84、简述增量模型的优缺点

85、简述螺旋模型以及它与其它模型之间的主要区别

86. 简述语句覆盖、分支覆盖、条件组合覆盖、路径覆盖的含义及他们之间的关系

87. 单元测试、集成测试、有效性测试的含义及它们之间的区别

88. 简述路径测试技术、事务流测试技术的主要依据.

89.针对程序流程图中出现的各种循环,如何选取测试路径?

90.CMMI于的基本思想

91么是过程制度化?在CMMI把过程制度化分几个等级?简要回答每一等级主要特征92述CMMI模型支持两种过程改善路径

93述CMMI模型的模型部件及部件间关系

94用实践与共用实践关系

95每一成熟度等级所包含的过程域。

96述项目规划过程域的专用目标与专用实践

97述开发过程的专用目标与专用实践

98述共用目标2及其相关的共用实践。99RUP的定义及主要特点

软件工程试题及答案34385

软件工程期末试卷(A) 说明:本试卷为04级计算机专业(专升本)软件工程期末试卷,总计100分,时间100分钟 一、选择题:(每题1分,共20分)(将答案写在题号前的()中) ( C )1. 软件是()。 A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统 ( B )2. 软件需求规格说明的内容不应包括()。 A. 主要功能 B. 算法的详细描述 C. 用户界面及运行环境 D. 软件的性能 ( B )3. 程序的三种基本控制结构是()。 A. 过程、子程序和分程序 B. 顺序、选择和重复 C. 递归、迭代和回溯 D. 调用、返回和转移 ( D) 4. 面向对象的分析方法主要是建立三类模型,即( )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型 D) 对象模型、动态模型、功能模型 ( C ) 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体 B) 控制、联系、对象 C) 实体、联系、属性 D) 实体、属性、操作 ( A ) 6. 各种软件维护的类型中最重要的是( )。 A) 完善性维护B) 纠错性维护C) 适应性维护D) 预防性维护 ( B ) 7.软件测试的目标是()。 A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 ( D )8.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测试 D.软件维护 ( C )9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 ( D )10、详细设计的基本任务是确定每个模块的( )设计 A.功能 B.调用关系 C.输入输出数据 D.算法 ( A )11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:() A.模块化的根据B.逐步求精的根据C.抽象的根据D.信息隐藏和局部化的根据 ( D )12.下面几种白箱测试技术,哪种是最强的覆盖准则() A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖

软件工程习题及答案

软件工程习题及答案 一、选择题: 1. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、项目开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、项目开发计划 D、合同文档

6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出 11. 分析员是。 A、用户中系统的直接使用者 B、用户和软件人员的中间人 C、软件的编程人员 D、用户和软件人员的领导 12. 在软件开发中,有利于发挥集体智慧的一种做法是。

软件工程试题及答案

4. 面向对象的分析方法主要是建立三类模型,即( D )。 A) 系统模型、ER模型、应用模型 B) 对象模型、动态模型、应用模型 C) E-R模型、对象模型、功能模型D) 对象模型、动态模型、功能模型 5. 在E-R模型中,包含以下基本成分( )。 A) 数据、对象、实体B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、操作 9.若有一个计算类型的程序,它的输入量只有一个X,其范围是[, ],现从输入的角度考虑一组测试用例:, , , . 设计这组测试用例的方法是( c ) A.条件覆盖法 B.等价分类法C.边界值分析法 D.错误推测法 10、详细设计的基本任务是确定每个模块的( d )A.功能B.调用关系C.输入输出数据 D.算法 11.设函数C(X)定义问题X的复杂程序,函数E(X)确定解决问题X需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:( a ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据13.面向数据流的设计方法把( D )映射成软件结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 14.内聚程度最低的是( A.偶然 )内聚A.偶然 B.过程 C.顺序 D.时间 15.确定测试计划是在( D )阶段制定的.A.总体设计 B.详细设计 C.编码 D.测试 16.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表D.需求规格说明书 17.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护 18.( D )引入了“风险驱动”的思想,适用于大规模的内部开发项目。 A.增量模型 B.喷泉模型 C.原型模型D.螺旋模型 (×)2、系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。 (×)4、软件需求分析的任务是建立软件模块结构图。 (√)5、尽可能使用高级语言编写程序(×)6、以结构化分析方法建立的系统模型就是数据流图。 (×)7、进行总体设计时加强模块间的联系。(×)8、编码时尽量多用全局变量. (√)9、用CASE环境或程序自动生成工具来自动生成一部分程序.(×)10、软件测试是要发现软件中的所有错误。 1. 软件生命期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么?

软件工程部分课后练习题答案

第一章 1.计算机系统是由计算机硬件系统和软件系统这两个密不可分的部分组成的。 2.计算机软件系统通过运行程序来实现各种不同应用,包括用户为自己的特定目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等。 3.在软件工程学中,软件开发技术包括软件开发方法学、软件工具和软件工程环境。 4.在软件工程层次结构中,包括工具层、方法层、过程、技术层和质量保证层。 5.在面向对象概念中,消息传递是其与外部世界相互关联的唯一途径。 第三章 1.软件需求分析,可以把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础。 2.软件需求工作基本上包括收集用户、市场等方面对项目的需要,经过分析建立解题模型,细化模型,抽取需求。 3.结构化分析方法的基本步骤是采用由顶向下对系统进行功能分解,画出分层数据流图;由后向前定义系统的数据和加工,绘制数据词典和加工说明;最终写出软件需求和规格说明书。 4.面向对象分析方法总是从理解系统的“使用实例”开始,基本步骤是:定义系统的用例,在领域分析的基础上建立问题域的类(对象模型),然后开始建立对象——关系和对象——行为模型。 5.需求分析评审过程由以下5个步骤组成:规划、准备、召开审查大会、修改缺陷、重审。 第四章 1.与软件需求分析一样,软件设计也有两种主要设计方法:以结构化设计为基础的结构化软件设计和面向对象方法指导的面向对象软件设计。 2.传统的软件设计任务通常分两个阶段完成。第一个阶段是概要设计,包括体系结构设计

和接口设计,并编写概要设计文档;第二阶段是详细设计,其任务是确定各个软件的数据结构和操作,产生描述各软件组件的详细设计文档。 3.结构化的软件设计方法是一种面向数据流的设计方法,在面向数据流的方法中,数据流是考虑一切问题的出发点。 4.在数据流图中所代表的结构化设计模型中,所有系统均可纳入两种典型的形式,因此系统结构图也有两种类型:变换型系统结构图,事务型系统结构图。 5.Jackson表示法包括图形描述(Jackson图)和文本描述(Jackson伪代码)两种形式。 第五章 1.与结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型,应用数据设计(对象属性设计)、接口设计(消息模型开发)以及过程设计(子系统级设计)。 2.当两个子系统相互通信时,可以建立客户机/服务器连接或端对端连接。 3.系统设计不仅包括主要的业务需求子系统设计,还包括用户界面子系统设计、任务管理子系统设计、数据管理子系统设计。 4.对象设计强调从问题域的概念转换成计算机领域的概念,通过对象的描述、算法和数据结构设计、程序构件和接口,实现相关的类、关联、属性和操作。 5.在面向对象设计中系统设计的主要目标是表示软件体系结构。对象设计着重于对象及其交互的描述 第八章 1.软件程序测试的目的是发现程序中的错误,其主要任务是通过在计算机上执行程序,暴露

软件工程课后习题参考答案

1.简述软件开发的本质。 答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。P19 2.简述实施软件开发的基本途径。 答:实施软件开发的基本途径是系统建模。所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。P19 3.简述何谓模型以及软件开发中所涉及的模型。 答:模型是一个抽象。该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。 软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。 4.简述软件开发所涉及的两大类技术。 答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。 5、简述需求与需求规约的基本性质。 答:需求的基本性质:1) 必要的,该需求是用户所要求的。2)无歧义的,该需求只能用一种方式解释。3)可测的,该需求是可进行测试的。4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。5)可测量的,该需求是可测量的。 需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。 3)完整的:没有被遗漏的需求。4)一致的:不存在互斥的需求。 6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可 7、举例说明功能需求和非功能需求之间的基本关系。 答: 非功能需求可作用于一个或多个功能需求,例如 非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。P24 8、有哪几种常用的初始需求发现技术 答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。P26 9、简述需求规约的3种基本形式。 (1) 非形式化的需求规约。非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。(2) 半形式化的需求规约。半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。(3)形式化的需求规约。形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 P29 10、简述软件需求规约的内容和作用。 答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。P28 需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求规约是一个管理控制点。3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。4)需求规约是创建产品验收测试计划和用户指南的基础。P31 11、简述需求规约在项目开发中的基本作用。 答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。2)对于项目的其余大多数工作,需求

软件工程习题及答案

软件工程习题及答案

软件工程习题及答案 一、选择题: 1. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、项目开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、项目开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

《软件工程》试题及参考答案(第6套)

第一部分选择题 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1、()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A 软件过程 B 软件工具 C 质量保证 D 软件工程 2、在各种不同的软件需求中,功能需求描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。 A 业务需求 B 功能要求 C 非功能需求 D 用户需求 3、软件测试计划开始于需求分析阶段,完成于()阶段。 A 需求分析 B 软件设计 C 软件实现 D 软件测试 4.下面关于面向对象方法中消息的叙述,不正确的是( )。 A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息 B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息 C. 应用程序之间可以相互发送消息 D.发送与接收消息的通信机制与传统的子程序调用机制不同 5.美国卡内基—梅隆大学SEI提出的CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是( )。 A.工作无序,项目进行过程中经常放弃当初的计划 B.建立了项目级的管理制度 C.建立了企业级的管理制度 D.软件过程中活动的生产率和质量是可度量的 6.在McCall软件质量度量模型中,()属于面向软件产品修改。 A.可靠性B.可重用性C.适应性 D.可移植性 7.软件生命周期中所花费用最多的阶段是() A.详细设计 B.软件编码 C.软件测 试 D.软件维护 8.需求分析阶段的任务是确定() A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能

软件工程课后习题(含答案)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。 (2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规范的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程试题及答案

综合练习一答案 一.选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末 B.60年代初C.60年代末 D.70年代初 A.运筹学B.工程学 C.软件学 D.软件学 E.数字 2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用 5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护 B.测试 C.详细设计 D.概要设计 E.编码 F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员 D。用户和软件人员的领导 10.下列叙述中,_______不属于数据字典的作用。 A、作为编码阶段的描述工具 B、为用户与开发人员之间统一认识 C、作为概要设计的依据 D、为需求分析阶段定义各类条目 11.使用结构化分析方法时,采用的基本手段是____。 A.分解和抽象 B.分解和综合C.归纳与推导D.试探与回溯12.结构化系统分析主要是通过____进行分析的。 A.算法分解B.控制结构分解 C.数据结构分解D.处理功能分解13.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的____。 总貌B.细节C.抽象D.软件的作者 13.变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于____。 A.变换型 B 事务型 14.需求分析说明书不能作为______。

软件工程试题及答案(B)

B卷 一、选择题(每题2分,共40分) 1.软件项目的可行性研究要进行一次( C )需求分析。 A.详细的B.全面的C.简化的、压缩的D.彻底的 2、系统流程图用于可行性分析中的( A )的描述。 A.当前运行系统B.当前逻辑模型C.目标系统D.新系统 3、程序的三种基本控制结构的共同特点是( D ) A.不能嵌套使用B.只能用来写简单程序 C.已经用硬件实现D.只有一个入口和一个出口 4、维护中,因误删除一个标识符而引起的错误是( C )副作用。 A.文档B.数据C.编码D.设计 5、( D )是以提高软件质量为目的的技术活动。 A.技术创新B.测试C.技术创造D.技术评审 6、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、设计和 实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的;( C );对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 A.开发过程基于功能分析和功能分解B.强调需求分析重要性 C.把对象划分成类,每个对象类都定义一组数据和方法D.对既存类进行调整 7、原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。 A.需求不确定性高的B.需求确定的C.管理信息D.实时 8、为了提高测试的效率,应该( D )。 A.随机地选取测试数据B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据 9、使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。 A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能 10、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 11、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性 称为( B )。 A.可用性 B.可靠性 C.正确性 D.完整性 12、瀑布模型的关键不足在于( B ) A.过于简单 B.不能适应需求的动态变更 C.过于灵活 D.各个阶段需要进行评审 13、软件维护的副作用主要有以下哪几种( C ) A.编码副作用、数据副作用、测试副作用 B.编码副作用、数据副作用、调试副作用 C.编码副作用、数据副作用、文档副作用 D.编码副作用、文档副作用、测试副作用 14、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高( B)。 A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法 15、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主 要保证是( C)。 A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的 素质 16、软件开发模型是指软件开发的全部过程、活动和任务的结构框架。主要的开发模型有瀑 布模型、演化模型、螺旋模型、喷泉模型和智能模型。螺旋模型将瀑布模型和演化模型相结合,并增加了(1),它建立在(2)的基础上,沿着螺线自内向外每旋转一圈,就得到(2)的一个新版本。喷泉模型描述了(3)的开发模型,它体现了这种开发方法创建软件的过程所固有的(4)和(5)的特征。 B(1) A、系统工程 B、风险分析 C、设计评审 D、进度控制 D(2) A、模块划分 B、子程序分解 C、设计; D、原型 A(3) A、面向对象 B、面向数据流 C、面向数据结构 D、面向事件驱动 D(4) A、归纳 B、推理 C、迭代 D、递归 A(5) A、开发各阶段之间无“间隙” B、开发各阶段分界明显 C、部分开发阶段分界明显 D、开发过程不分段 二、判断题(每题2分,共30分) 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活 动。( T ) 2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 ( F ) 3.JAVA语言编译器是一个CASE工具。( T )。

软件工程试题库集及答案

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 A.运筹学B.工程学C.软件学D.软件学E.数字2.开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。 A.软件投机B.软件危机C.软件工程D.软件产生 3.产生软件危机的原因有如下几点,除了______。 A、软件开发过程未经审查 B、软件开发不分阶段,开发人员没有明确的分工 C、所开发的软件,除了程序清单外,没有其他文档 D、采用工程设计的方法开发软件,不符合软件本身的特点 4.软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是____。 A.引入新技术提高空间利用率B.用较少的投资获得高质量的软件 C.缩短研制周期扩大软件功能D.硬软件结合使系统面向应用5.请按顺序写出软件生命期的几个阶段____,____ ,____,____,____,____。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

《软件》课后习题答案

第一章 1.什么是程序,程序有哪些特性? 程序:是一个用计算机语言描述的某一问题的解决步骤,它的表示是静态的。 特性:静态与动态属性,由程序语言抽象的符号表达,是对数据施行算法的过程,是分层嵌套的。2.软件有哪些特性? 特性:功能、性能相对完备的程序系统,具有使用性能的软设备,软件是信息商品,易大批量生产、成本低,是极具竞争性的商品,投入的资金主要是人工费,是只有过时而无“磨损”的商品。 3.什么是群件,目前常见的群件产品有哪些? 群件:是近几年开发的一种基于电子邮件的应急系统软件,它拓 宽了电子邮件的的内涵,涵盖了很多通信协调功能。目前常见的群件产品有:IBM公司的lotus Note、Microsoft公司的Exchange Server 、Novell公司的Group Wise等 4.计算机的软件是由哪几部分组成的,各自的作用是什么? 软件由:软件程序(解题步骤)+数据(描述事物的属性和状态)+文档(功能性能的说明性信息)组成。 5.什么是程序开发环境,常见的开发环境有那些? 程序开发环境:即现在作用到的编程语言,一般以一个集成环境的形式出现。 此环境中包含了语言编辑器,调试工具,编译工具,运行工具,图标图像制作工具等。 6.常见的Internet工具有哪些? Web服务器软件、web浏览器、文件传送工具FTP、远程访问工具Telnet、邮件软件、网络聊天、多媒体等。 7.操作系统的作用(功能)是什么? 1、处理器管理 2、存储器管理 3、设备管理 4、文件管理 5、作业管理。 8.文件系统足以支持程序运行,数据库的作用是什么? 克服文件系统的缺陷。 9.软件开发的核心是编制可运行的程序,还有比这跟重要的工作么? 系统分析和数据分析。 10.程序设计语言本身是软件么? 是,而且是系统软件。 第二章 1.程序设计语言有哪两种实现方式,各有什么优缺点? 方式一:编译(优:可进行优化,目标码效率很高。缺:费时)方式二:解释(优:可以逐句读入源代码,比较灵活,小巧。解释器不大,工作空间也不大,且能根据程序的执行情况决定下一步需做什么。缺:一句一句的难于优化,效率低) 2.结构化程序设计语言有那几种基本控制结构? 顺序、选择、循环。 3.为什么要引进过程,过程和函数的区别有哪些? 引进了过程或函数可以让程序语言更清晰,可以多次调用。使用过程还可以降低程序的复杂性,使程序结构变得清晰明了。过程是不带返回值,函数是带返回值。 4.什么是全局变量,什么是局部变量? 全局变量:出了程序便失去定义,作用范围,整个程序。 局部变量:局部的程序块中有定义。 5. 什么是指针变量? 指向数据的地址的变量。 6.过程参数传递的方式有哪几种,各有什么特点? 传值:优:很安全,不会改变全局变量的值。缺:占用双倍存储单元,传值时不能带回值。 引用:优:能带返回值,存储空间小。缺;局部有可能改变全局变量的值。

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

《软件工程》复习题及答案

软件工程复习题 一、选择题: 1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。 A.软件工程 B.软件周期 C.软件危机 D.软件产生 2.瀑布模型本质上是一种(A )模型。 A.线性顺序 B.顺序迭代 C.线性迭代 D.早期产品 3.瀑布模型存在的问题是(B )。 A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通 D.适用可变需求 4.螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。 A.增量模型B.专家系统C.喷泉模型D.变换模型 5.原型化方法是用户和设计者之间执行的一种交互构成,适用于(A)系统。 A.需求不确定性高的 B.需求确定的C.管理信息 D.实时 6.下列有关软件工程的标准,属于国际标准的是(C ) A.GB B.ANSI C.ISO D.IEEE 7.结构化方法是一种基于(D)的方法。 A.数据结构 B.程序结构 C.算法 D.数据流 8.软件可行性研究实质上是要进行一次( A)需求分析、设计过程。 A、简化、压缩的 B、详细的 C、彻底的 D、深入的 9.可行性研究的目的是(D) A、分析开发系统的必要性 B、确定系统建设的方案 C、分析系统风险 D、确定是否值得开发系统 10.可行性研究是在(A)之前 A、系统开发 B、测试 C、试运行 D、集成测试 11.可行性研究需要的时间长短取决于系统的规模,一般来说,可行性研究的成本只是预期总成本的 (C)。 A、1% B、20% C、8% D、50% 12.我国正式颁布实施的(B)对计算机病毒的定义具有法律性、权威性。 A.《计算机软件保护条例》 B.《中华人民共和国计算机信息系统安全保护条例》 C.《中华人民共和国著作权法》 D.《计算机病毒防治管理办法》 13.效率是一个性能要求,因此应当在以下哪个阶段规定?B A、可行性分析 B、需求分析 C、概要设计 D、详细设计 14.需求规格说明书的作用不包括(D) A、软件验收的依据 B、用户与开发人员对软件要做什么的共同理解 C、软件可行性研究的依据 D、软件设计的依据 15.数据字典是用来定义(D)中的各个成份的具体含义的。 A、程序流程图 B、功能结构图 C、系统结构图 D、数据流程图 16.数据流程图是(A)方法中用于表示系统逻辑模型的一种图形工具。 A、SA B、SD C、SP D、SC 17.DFD中的每个加工至少有(A)。 A、一个输入流或一个输出流 B、一个输入流和一个输出流 C、一个输入流 D、一个输出流 18.需求分析阶段的关键任务是确定(D) A、软件开发方法 B、软件开发工具 C、软件开发费 D、软件系统的功能 19.在SD方法中全面指导模块划分的最重要的原则是(D)。 A、程序模块化 B、模块高内聚 C、模块低耦合 D、模块独立性

软件工程考试试题(含答案)

一、填空题(每空1分,共25分) 1.软件生存周期一般可以划分为,问题定义、____________、____________、设计、 编码、测试和____________。 2.基于软件的功能划分,软件可以划分成__________、__________、__________三种。 3.可行性研究,应从、技术可行性、运行可行性、和开 放方案可行性等方面研究。 4.系统流程图是描绘的传统工具。它的基本思想是用图形符号以 描绘系统里面的每个部件。 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、、 和。 6.结构化分析方法是面向________________进行需求分析的方法。结构化分析方法使 用________________与________________来描述。 7.是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为3类,即________________、________________和 ________________。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、 复查和管理复审、________________。 10.大型软件测试包括、、确认测试和 四个步骤。 1、可行性研究需求分析运行与维护 2、系统软件支撑软件应用软件 3、经济可行性法律可行性 4、物理系统黑盒子形式 5、加工数据流数据存储文件 6、数据流数据流图DFD 数据字典DD 7、继承性 8、图示工具、设计语言表格工具 9、审查测试 10、单元测试集成测试系统测试 二、单项选择题(每小题2分,共20分) 1 2 3 4 5 C C C A C 6 7 8 9 10 D D A C B 1.软件设计中划分模块的一个准则是()。 A、低内聚低耦合 B、低内聚高耦合 C、高内聚低耦合 D、高内聚高耦合 2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向()的软件 设计方法。

软件项目管理课后习题参考答案

第一章项目管理概述 一.选择题 1.项目是(D)。 A.一个实施相应工作围的计划 B.一组以协作式管理、获得一个期望结果的主意 C.创立独特的产品或服务所承担的临时努力 D.必须在规定的时间、费用和资源约束条件下完成的一次性任务 2.你刚被指派在你的公司的一个不同的部门中管理一个大的项目。你正试图了解项目是关于什么的,谁是主要的项目干系人,为了管理好此项目,你首先应该做(C)。 A.所有的项目计划 B.会见以前的项目经理,以找出他离开的原因 C.与你的老板见面,了解他对项目的看法 D.与你的新项目团队见面,认识他们和了解他们对项目的看法 3.不属于项目的活动是(B )。 A.一种新型罐头产品的开发 B.罐头产品的生产 C.罐头产品的试制 D.罐头产品的营销策划 4.项目是一个特殊的将被完成的有限任务,它是在一定的时间,满足一系列特定目标的多项相关工作的总称。此定义实际包含的含义有(D)。 A.项目是一项有待完成的任务,且有特定的环境与要求 B.在一定的组织机构,利用有限资源(人力、物力、财力等)在规定时间完成任务C.任务要满足一定性能、质量、数量、技术指标等要求

D.项目的实施具有一定的风险

第二章项目实施的环境与过程 一.选择题 1.项目管理中应用最广泛的组织形式是(C )。 A.项目式B.职能式C.矩阵式D.网络式 2.下面有关矩阵式组织环境的描述,不正确的是( A )。 A.项目的经理必须是职能部门领导,这样才能取得公司总经理对项目的信任B.项目经理和职能经理必须就谁占主导地位达成共识 C.矩阵式项目组织能够充分利用人力资源 D.矩阵式项目组织能够对客户的要求作出快速响应 3.在下列组织结构形式中,团队建设最困难的是( C )。 A.直线式结构B.职能式结构C.矩阵结构D.项目结构4.职能式项目组织形式中项目经理的权限( A )。 A.很小B.有限C.中等D.很高 5.项目在哪种组织中最不被重视(D)。 A.平衡矩阵型B.强矩阵型C.项目协调员型D.职能型6.下面各种类型的组织中,哪种最常发生冲突( B )。 A.职能型组织B.矩阵型组织 C.项目型组织D.项目协调员型组织 7.传统组织结构的不利因素是(B)。 A.与客户接触渠道单一B.对客户需求反应缓慢 C.项目领导拥有太多的正式权力D.直接项目报告太多

软件工程课后习题答案第五版

软件工程课后习题答案第五版 《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。

(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。

(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

软件工程试题及答案

1. 软件生命期各阶段的任务是什么? 答:软件生命期分为7个阶段: 1、问题定义:要解决的问题是什么 2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性 3、需求分析:系统必须做什么 4、总体设计:系统如何实现,包括系统设计和结构设计 5、详细设计:具体实现设计的系统 6、实现:编码和测试 7、运行维护:保证软件正常运行。 2、软件重用的效益是什么? 答:1、软件重用可以显著地改善软件的质量和可靠性。 2、软件重用可以极大地提高软件开发的效率。 3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。 3、自顶而下渐增测试与自底而上渐增测试各有何优、缺点? 答: ①自顶而下渐增测试 优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。 缺点:需要存根程序,底层错误发现较晚。 ②自底而上渐增测试 优点与缺点和自顶而下渐增测试相反。 4 、提高可维护性的方法有哪些? 答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前

的审查和复审中,应着重对可维护性进行复审。 在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。 在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。 在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。 在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。 在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。 为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。 简述软件测试要经过哪几个步骤,每个步骤与什么文档有关。 【解答】 测试过程按 4 个步骤进行,即单元测试(模块测试)、集成测试(子系统测试和系统测试)、确认测试(验收测试)和平行运行。 单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。 平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。 36.简述容错技术的四种主要手段,并解释。

相关主题
相关文档 最新文档