软件工程复习提纲答案

软件工程复习提纲答案
软件工程复习提纲答案

复习提纲

第一章软件工程概述

1、分析60年代末出现的软件危机的原因。如何理解“越早潜伏的错误越晚发现,越晚发现的错误,修正的费用越高”。

答:软件危机是指在软件开发过程中遇到的一系列严重问题,如:开发周期延长,成本增加,可靠性降低等。

开发大型软件与编制小程序主要有以下区别:

⑴人员:小程序从确定要求、设计、编制、使用,直到维护通常由一个人完成;大型

软件则由用户、项目负责人、分析员、程序员、资料员、操作员等组成一支开发队伍来协同完成。

⑵文档:小程序很少有书面文档;大型软件则是集体劳动的“产物”,必须有规范化

的文档,便于开发和维护。

⑶产品。小程序工作量小,如果需作大的修改,可舍弃旧程序而重新编写;但大型软

件的开发耗费了大量的人力与物力,一般不会轻易抛弃,而总是在旧软件的基础上一再改动,以延长它的使用期,因此“版本”在不断升级。

大型软件的开发提出了许多新的问题,而开发方法却还停留在编制小程序的方法上,经验和技巧已不能满足开发大型软件的需要,导致软件开发过程混乱;使用的开发方法和技术不当,没有适当的文档,不易交流,维护困难,开发成本高,软件质量低等,这些问题是造成软件危机的主要原因。

2、软件复用的概念及两类软件复用技术:合成技术和生成技术。

答:软件复用是指在构造新的软件系统过程中,对已存在的软件产品(设计结构、源代码、文档等)重复使用的技术。

(1)合成技术

利用部件(component,组件,构件)合成软件系统的技术。

部件是可复用的一小段软件(可为二进制形式),可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成分的抽象,封装了功能细节和数据结构,有详细的接口。

(2)生成技术

利用可复用的模式,通过生成程序产生一个新的程序或程序段,产生的程序可以看成是模式的实例。

可复用的模式有两种:代码模式和规则模式。

①代码模式

可复用的代码模式存在于应用生成器中,通过特定的参数替换,生成抽象软件模块的具体实体。各种程序生成器。

②规则模式

利用程序变换系统,把用超高级规格说明语言编写的程序转化成某种可执行语言的程序。IDL——CORBA的接口定义语言。

第二章 需求分析工程

3、简述需求分析工程的重要性。

答:(1)在软件生命周期中,一个错误发现越晚,修复错误的费用越高。

(2)许多错误是潜伏的,且在错误产生后很长一段时间才被检测出。

(3)需求分析中会产生大量错误。

(4)需求分析中的错误多为疏忽、不一致和二义性。

(5)需求错误是可以被检测出来的。

4、掌握和分析Petri 网的有关问题;会用可达树分析死锁问题。分析饿死现象并改进。

答:Petri 网的局限性

1、令牌缺乏表示信息内容的能力

令牌只是表示动作控制的流向,无法表达信息的内容。

2、缺乏描述选择“使能”变迁的策略

3、Petri 网不能描述有定时要求的计算问题,而很多系统的定时问题则很重要。 用可达树分析死锁问题:

若出现叶结点,则系统中有死锁。

分析饿死现象并改进:

图中存在激发序列无限循环,而 被“饿死”,原因是Petri 网不能

P1 P 2

描述选择策略。

修改Petri 网,强制它使用一种选择策略,避免了t3在t4激发之前激发两次。如下图:

5、分析、理解电梯运动的Petri 网。

PPT 第二章49

t t

min

(C)=

t max (C)=

第三章软件开发的结构化方法

6、传统的瀑布模型将软件开发分为几个步骤,每一步得到什么结果。

问题定义的结果:《问题目标和规模报告书》

可行性研究的结果:《可行性研究报告》。

需求分析的结果:《需求规格说明书》

7、简述结构化方法需求分析的综合要求。

答:需求分析阶段的任务主要是确定目标系统必须具备哪些功能。

结构化需求分析的综合要求:

⑴功能要求:指系统必须完成的所有功能。

⑵性能要求:如联机系统的响应时间,系统的存储容量、健壮性和安全性等方面

的要求。

⑶运行要求:指系统运行所需要的软硬件环境。

⑷未来要求:指系统将来可能的扩充要求。

⑸数据要求:指系统所要处理的数据以及它们之间的联系。

需求分析的结果:《需求规格说明书》

8、能绘制DFD,并能将DFD映射为软件结构图。

PPT第三章18

例子:某工厂采购部门每天要开出定货清单,清单中包括订购部件的部件号、部件名、规格、说明、

订购量、当前价格、主要供应商和辅助供应商。

部件入库或出库称为业务,通过仓库中的终端把业务报告给定货系统,处理库存业务。

当某种部件的库存量少于标准线以下时,仓库管理员就应该及时通知定货系统开出定货清单,交由采购员采购。

根据画数据流图的步骤画出定货系统的数据流图。

(不需要答)(1)从系统的简述中提取数据流图的四个成分;

1) 源点和汇点。仓库管理员视为源点,采购员视为汇点

2) 处理。处理通常是系统简述中的动词短语,如产生定货清单,处理库存业务等。

3)数据流。从系统的源点流出和流入汇点的数据流即是系统的输入数据流和输出数据流。

4)数据存储。确定哪些数据应保存在数据存储中。库存业务一旦产生就立即被处理,所以不必保

存。定货清单一天只产生一次,故需要保存产生定货清单的数据。有关库存零部件的信息包括定货标准线也应作为数据存储,统称为库存数据。

(2)定货系统数据流图的基本成分

源点/汇点处理数据流数据存储

管理员产生定货清单定货清单定货数据

采购员处理库存业务库存业务库存数据

(3)画出系统的高层数据流图;

图在PPT第三章28、29

将DFD映射为软件结构图

图在PPT第三章90

9、简述软件测试的三个步骤、黑盒和白盒测试方法。内聚、耦合类型分析。

(1)单元测试:又称模块测试

测试对象是软件设计中最小的单元——模块,其目的是发现模块内部存在的错误。

单元测试发现编码阶段的错误。

测试内容:

(a)模块间的接口;

(b)模块内的局部数据结构

(c)模块内的重要通路尤其是错误处理的通路和影响上述各方面的边界条件。

(2)集成测试:又称组装测试或联合测试

集成测试发现软件设计阶段的错误。

在单元测试的基础上,需要将所有模块按设计要求组装成系统。在经过单元测试未发现错误的模块,组装之后仍可能出现各种问题。集成测试的基本方法:边组装边测试。有自顶向下或自底向上两种方法。

(a)自顶向下测试

从主控模块开始,沿着模块层次,边组装边测试已组装部分的功能,直到全部组装完毕,系统达到设计的功能和性能要求为止。为保证测试的进行,必须提供保证测试条件的桩模块。

桩模块:用来模拟被测模块的下层模块的模块。

再用实际的下层模块代替桩模块,并进行回归测试。

回归测试是相对于原始测试而言的,它部分或全部地重复前面进行过的测试工作。(b)自底向上测试

与自顶向下测试相反,它先组装最低层模块,向上逐步组装。每组装一个模块,便测试由此模块及其下层模块组成的子功能。直到全部装配完毕,达到系统设计的功能和性能要求为止。

为保证测试的进行,必须提供保证测试条件的“驱动程序”。

用实际的上层模块代替该驱动程序。

(3)确认测试:又称有效性测试或验收测试

确认测试检查系统的功能和性能是否达到系统分析说明书提出的设计指标,即是否满足用户要求,检查文档是否齐全等。

确认测试发现软件分析阶段的错误。

黑盒测试法是根据程序的功能和性能进行测试的方法。它把被测程序看成一个黑盒子,完全不考虑程序内部的数据结构和逻辑通路。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能和性能是否满足预期需要,程序是否能适当地接收输入数据产生正确的输出数据,并保持外部信息的完整性。

产生黑盒测试的测试用例的方法有如下几种:

等价类划分法边界值分析法、因果图法、错误推测法

白盒测试法是根据程序的逻辑结构进行测试的方法。它把程序看成是装在一个透明的白盒中,也就是完全了解程序内部的结构和处理过程。这种方法按程序内部的逻辑来测试程序,检验程序的每条通路是否都能按规定要求正确工作。

产生白盒测试用例的方法有如下几种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。一般而言,测试时以黑盒测试法为主,白盒测试法为辅。

模块间的耦合程度按从低到高分类如下:

⑴无耦合。如果两模块之间没有任何联系,每一个都能独立地工作而不需要另一模块

的存在,是彼此完全独立的,则这两个模块间属于无耦合的情况。

⑵数据耦合。如果两个模块是通过参数表仅传递数据型信息,则这种耦合称为数据耦

合。

数据耦合是松散的耦合,模块间的独立性较强。软件结构中至少有这种耦合。

⑶特征耦合。若两个模块通过参数表传递的是某一数据结构的子结构,而不是简单变

量,这就是特征耦合。

是数据耦合的一种变种。增加出错的机会,不易改动(数据结构变化时)。将该数据结构上的操作全部集中在一个模块中,就可消除这种耦合。

⑷控制耦合。如果传递控制型信息,这就是控制耦合。

对被控制的模块做任何修改,都会影响到控制模块,降低模块的独立性。

⑸公共耦合。若一组模块使用了公共数据,则它们之间的耦合称为公共耦合。

公共数据包括全程变量、共享的通信区、内存的公共覆盖区等。公共数据的使用,必然降低软件的可读性、可修改性和可靠性。

⑹内容耦合。如果发生下列情况之一,两个模块间就是内容耦合:

?一个模块直接访问另一个模块的内部数据;

?一个模块通过不正常入口直接转入另一模块内部;

?一个模块有多个入口;

?两模块有一部分代码重叠(只在汇编语言中出现);

内容耦合是耦合性最高的耦合,即是模块间最坏的联系方式,现在大多数高级程

序设计语言中已经不会出现这种耦合。

在进行设计时应该采取以下原则:以数据耦合为主,特征耦合为辅,少用控制耦合,限制公共耦合,杜绝内容耦合。

模块的内聚性按从低到高分类如下:

⑴偶然内聚。如果模块中各组成成分间彼此没有实质联系,即使有联系也是很松散的,

模块功能模糊,则称为偶然内聚。

例如有时写完一段程序后,发现一组语句在程序中多处出现,便将其组织在一个模块内以节省内存,就出现了偶然内聚的模块。在模块设计时,如果发觉一个模块难以命名,就应考虑是否出现偶然内聚。

⑵逻辑内聚。如果一个模块完成的是逻辑上相同或相似的一组功能,则称为逻辑内聚。

例如,设计一个模块打印各种报表,如固定资产报表、产品成本报表、利润报表等,打印何种报表靠传递控制参数调用。由于不同功能在一个模块中,通常在设计模块时会出现几种功能共用部分代码,从而使得修改、添加或去掉功能都很困难。

⑶时间内聚。若一个模块中包含的任务必须在同一时间内执行,而这些任务的次序无关

紧要,则叫时间内聚。

例如各种初始化工作由初始化模块完成,而各种结束工作被组合到结束模块中,这样它的执行将涉及到其它许多模块。

⑷过程内聚。如果一个模块内的处理成分间是相关的,而且必须以特定顺序执行,则称

为过程内聚。

例如把程序流程图中的循环、判断和计算分成三个模块,则这三个模块就是过程内聚的模块。

⑸通信内聚。模块内的所有成分都通过公共数据而发生关系的内聚就是通讯内聚。

例如对同一文件进行输入、修改、输出操作。模块中各成分经模块的局部的公共数据进行通信。

⑹顺序内聚。若模块中每个处理成分对应一个功能,且这些处理必须按顺序执行,则称

为顺序内聚。

例如一个处理成分的输出是下一个处理成分的输入的模块就是顺序内聚。

⑺功能内聚。模块中各处理成分属于一个整体,都为了完成同一功能,很难分割,这就是功能内聚。

这种模块通常有明确表达模块功能的名称。

第四章软件开发的面向对象方法

10、与OO方法相比,传统方法存在哪些问题。OO方法有哪些优点。

答:传统方法存在下列问题:

(1)对现实世界的认识与编程之间存在理解上的鸿沟;

功能与数据相分离造成。

(2)修改困难;

系统是围绕如何实现一定的行为进行,当需求变化时,数据常常发生变化,最终导致数据的结构变化,难于修改。

(3)维护困难;

为了得到“好的软件结构”,使作用域在控制域之中,导致系统总体结构混乱,难于维护。

(4)自顶向下功能分解的分析方法限制了软件的可复用性。

面向对象方法的优点

(1)与人类习惯的思维方法一致

核心是对象,它是现实世界实体的正确抽象。

而传统方法忽略了数据和操作之间的联系。

(2)稳定性好

它基于构造问题领域的对象模型,以对象为中心构造软件系统,当功能发生需求变化时,不会引起软件结构的整体变化。

而传统方法基于功能分析和分解,以算法为核心,功能变化通常会引起软件结构的整体变化。

(3)可重用性好

对象类固有的封装性和信息隐蔽以及很好的继承机制,使得面向对象方法具有很好的可复用性。

传统方法只是库一级的复用。

(4)可维护性好

OO方法的模块机制、继承机制、多态性机制,使得设计的软件易于理解、修改、测试,更易于维护。

而传统方法及其面向过程开发的软件是难以维护的。

11、找出问题域有关对象的两种方法:LIA和3VM.

简述LIA和3VM及其作用,并比较之。

答:(1)基于语言的信息分析方法(LIA)

主要思想:先对要建立的系统及其需求用自然语言描述,然后对这些描述进行语法分析。

名词对象,形容词属性,动词服务

填进一张OOA/OOD工作表格。最后对表中的项进行分析,从中确定问题域中的对象。

(2)三视图模型法(3VM)

观察一个事物的角度不同,将得到不同的视图。从多个角度观察得到的同一个事物的多个视图更能完整地、全面地反映该事物。

LIA方法要求分析员从众多的侯选对象中识别出目标系统的对象,这依赖于分析员的抽象和分析能力,随意性大,可操作性不强。

LIA方法提供了一个发现对象的出发点,一般将该方法用于对象模型建立的初始阶段。

3VM法也依赖于分析人员的抽象和分析能力,但运用建立3VM的方法,确实提供了分析对象的入口点和细化的方法,具有相对较好的操作性。

该方法一般用于对象模型的细化。

12、分析电梯到达调度楼层的事件-响应对象交互图、实例连接图。

电梯到达调度楼层的事件-响应对象交互图PPT第四章93

1.当电梯到达某一楼层时,就会产生一个电梯到达事件Arrival Event。其属性有:

该到达事件的唯一标识:

arrival_id

生成到达事件的电梯:

elevator_id

生成该到达事件的楼层:

arrival_floor

2.电梯到达事件生成后,将会向与elevator_id相关联的到达面板发送一个单向的消息,该消息是:(arrival_floor)

(电梯elevator_id所到达的楼层)

与elevator_id 相关联的到达面板根据收到的消息刷新到达面板的显示

3.电梯到达事件将会向与 floor_id相关联的floor发送一个单向的消息,该消息是: (到达事件的唯一标识,电梯唯一标识,到达的楼层号)

(arrival_id, report_elevator_id,report_arrival_floor_id)

4.楼层Floor收到上述消息后,由服务处理。该服务将向电梯report_elevator_id发送一个双向的消息:(report_status_direction?,report_current_direction?)

电梯report_elevator_id收到该消息后,会有相应的服务和

服务向楼层Floor报告电梯当前的运行方向和状态方向。

发给与report_elevator_id所关联的电梯的目的面板一个双向消息:

(report_arrival_floor,destination_pending_above?,destination_pending_beloow?)

目的面板收到该消息后,即可知道楼层report_arrival_floor是否是调度楼层。

发给与arrival_floor所关联的召唤面板一个双向消息:

(report_summons_pending_up? report_summons_pending_down?)

该楼层的召唤面板收到该消息后,相应的服务即可报告该楼层的召唤请求是上、下或是没有请求。知道该楼层是否有召唤,以及电梯的状态方向和当前运行方向等信息,即可判定

该楼层是否是调度楼层。

7.如果是调度楼层(这里假设是该楼层的召唤导致的),则

(1) Floor向与其相关联的召唤面板对象发消息,使其刷新面板;

(2)向与report_elevator_id所关联的电梯发消息。电梯接受到消息后,更新其当前状态(current_status)、(current_direction)、

(status_direction)等;

(3)电梯向与其关联的电梯电机对象发送停止消息(Stop)。

8.到达事件结束。

实例连接图:

实例连接分类

有3种类型的实例连接:

(1)一对一型:一个对象只依赖于另外一个对象。

如一个飞行员驾驶一架飞机。

(2)一对多型:一个对象同时依赖多个对象。

如一个教师指导5个学生的毕业设计。

(3)多对多型:相互依赖的对象数在一个以上。

如全班30名学生学习6门课程。

对下图分析

13、在Coad和Yourdon的OOD中,从哪四个方面对OOA进行了扩充,简述其内容。

答:Coad和Yourdon提出从以下四个方面考虑:

(1)问题域部分(Problem Domain Component,PDC)

问题域部分是为了消除系统的存贮容量无限及对象间的通信速度无限快等假设的。(2)人-机接口部分(Human Interface Component, HIC)

人-机接口部分是为了将系统和外界的通信任务由特定的对象承担,使得系统的功能和实现相分离。这样,如果系统与外界的接口发生改变时,只需要改变这部分对象即可。(3)任务管理部分(Task Management Component,TMC)

任务管理部分是为了将系统和具体的操作系统提供的任务调用由特定的对象来承担。如果操作系统的环境改变,只需要改变这部分对象即可。(4)数据库管理部分(Database Management Component,DMC)

数据库管理部分为了将系统和由特定数据库系统所管理的数据的访问有特定的对象来承担。如果系统所应用到的一些由数据库管理的数据,而数据库的类型或结构发生改变时,只需要改变这部分对象。

14、分析电梯控制系统中召唤事件和图书管理系统中借阅事件的完整执行机制。

当按钮按下时,将产生一个中断,即“所发出的信号”中应包含楼层的信息或编码,这个编码应存放到该中断对应的中断寄存器中。

图书管理系统中借阅事件的完整执行机制。

借阅一本书的过程,涉及了三个实体:

“Reader”实体存储借阅者;

“Book”实体存储书;

“Reader-Boo k”存储某个借阅者借阅某本书的记录。

对象“Borrow” 来负责处理“借阅”事件。

第五章统一建模语言UML与实例

15、简述UML中的状态图和活动图以及它们之间的差异。

答:(1)状态图:

状态机对类的对象可能生命历史建模。

状态机用来描述一个特定对象的所有可能状态及其引起状态转移的事件。

状态描述了一个类对象生命期中的一个时间段,对对象生命期中的一段时间建模,该时间内对象满足一定的条件。当事件发生时,它可能导致迁移的激发,使对象改变至新状态。当迁移激发时,附属于迁移的移动可能被执行。状态机显示为状态图(State Diagram) 。状态图可用于描述用户界面、设备控制和其它交互式子系统。状态机和OOA中的状态迁移图一致。

(2)活动图:

活动图显示动作及其结果。活动图着重描述操作(方法)实现中所完成的工作以及用例实例或对象中的活动。活动图是另一种描述交互的方式,描述采取何种动作,做什么(对象状态改变),何时发生(动作序列)。

差别:

活动图描述动作执行的工作和活动及对象状态改变的结果,不需指定任何事件。

当状态中的动作被执行(不象状态图需指定任何事件)时,活动图中的状态(称为动作状态)直接转移到下一个阶段。

活动图可以用作下述目的:

(1)描述操作执行过程中所完成的工作(动作);

(2)描述对象内部的工作;

(3)显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象;

(4)显示用例的实例是如何执行动作以及如何改变对象状态;

(5)说明一次商务活动中的角色、工作流组织和对象是如何工作的。

16、理解、分析和绘制UML的各种视图(戏院管理系统、汽车租赁系统、教学管理系统等)。

戏院管理系统:PPT第五章:用例图(23)、类图(32)、顺序图(36)协作图(39)、状态图:(42)、活动图(46)

教学管理系统:PPT第五章用例图(71、72)、类图(78、79)、

顺序图(86、87)、协作图(88)、状态图:(89、90)、活动图(91)

第六章面向对象开发中的设计模式

17、简述设计模式的作用、设计模式的四个基本要素。

答:作用:有经验的软件员总是将面向对象软件设计的经验记录成“设计模式”,以便在今后的软件开发中复用以往的成功设计。

四个基本要素:

模式名称、问题、解决方案和后果(

1)模式名称:通常用来描述一个设计问题、它的解法和后果,由一到两个词描述。

模式名称可以在更高的抽象层次上进行设计并交流设计思想。

(2)问题:描述模式使用的时间、条件、解释问题及其背最。它可能描述诸如如何将一个算法表示成一个对象这样的特殊设计问题。

(3)解决方案:描述设计的基本组成要素,如它们的关系、各自的任务以及相互之间的合作。它并非针对某个特殊问题。设计模式提供有关设计问题的一个抽象描述以及如何安排这些基本要素以解决问题。

(4)后果:描述应用设计模式后的结果和利弊。对于软件设计来说,通常要考虑的是空间和时间的权衡,还有语言问题和实现问题。对于OO设计,可重用性很重

要。此外,后果还包括对系统灵活性、可扩充性及可移植性的影响。

18、理解ModelView合约。

答:(1)形式合约是一种描述框架设计的方法,它强调组成框架的对象间的交互关系。

(2)形式合约的特点:

①符号少且能映射到OO编程语言中的概念,如参与者映射到对象。

②考虑到了复杂行为由简单行为组成的事实,合约的修订和扩充操作使得合约灵

活,易于应用。

(3)形式合约的基本元素:

参与者:形式合约的第一个组成部分。对每个参与者要规定它应承担的责任。责任有:

类型责任:与实例变量和方法有关的责任。

因果责任:描述与类型责任相关的操作与条件

“->”:表示方法调用。

如s->Update()表示对Subscribers中的方法Update()的调用。

“v”:表示对实例变量v赋值。

”:表示用操作符o将所有满足条件c的变量v所构成的表达式

e连接起来。

如<|| s:s∈Subscriber:s->Update( )>意味着s1->Update()

||s2->Update()|| ...,即对Subscriber集合中的所有对象发送Update()消

息。

“{}”:表示参与者必须满足的条件的说明。

如AttachSubscriber(s:Subscriber)=>{s∈Subscriber}:表示一个条件,s

是Subscriber集合的成员在以s为参数执行AttachSubscriber后必须为

真。

19、简述选择设计模式的方法。

答:设计模式依据其目的可分为创建型、结构型、行为型三种。共23个模式

下面是几个帮助选择设计模式的方法:

·考虑设计模式是怎样解决设计问题的:对设计模式的讨论,能帮助找到合适的对象、决定对象的粒度、指定对象接口以及设计模式解决设计问题的几个其他方法。

·浏览模式的意图部分:通读每个模式的意图,找出和问题相关的一个或多个模式。可以使用前表所显示的分类方法缩小搜查范围。

·研究模式怎样互相关联:前图以图形方式显示了设计模式间的关系。研究这些关系能获得合适的模式或模式组。

·研究目的相似的模式:通过比较和对照,能够洞察具有相似目的的模式之间的共同点和不同点。

·检查重新设计的原因:找出哪些模式可以帮助你避免这些会导致重新设计的因素。

·考虑你的设计中哪些是可变的:在设计模式允许独立变化的方面,你可以改变它们而又不会导致重新设计。

第七章软件体系结构

20、什么是软件体系结构?简述其四个方面的特征,体系结构风格的四个要素。

答:在系统设计的最初阶段,决策系统设计的总原则和确定整个系统的总体框架,能在软件系统的整个生命期中,保持系统体系结构可以很方便地进行维护和调整以适应发生的变化。一个非常重要的概念——软件系统的体系结构就代表了这种整体性问题。

软件体系结构的四个特征:

(1) 是一个高层次上的抽象,并不涉及具体的系统结构(比如是B/S还是C/S),也

不关心具体的实现。(2) 必须支持系统要求的功能,设计时必须考虑系统的动态行为。

(3) 在设计软件体系结构的时候,必须考虑与现有系统的兼容性、安全性和可靠性。

同时还要考虑系统以后的扩展性和伸缩性。所以有时候必须在多个不同方向的目标中进行决策。

(4) 定义软件部件及部件交互。这里的部件是一个更广泛的概念,一个对象、进程、

库商业产品等都是部件。

体系结构风格的四个要素:

一个词汇表

包括与设计元素有关的部件、连接器类型。如管道过滤器、客户、服务器、语法解释器、数据库等。

一套配置规则或系统的拓扑限制

用来明确这些元素的合法组成方式。如客户/服务器组织的多对一的关系。

一套语义解释原则

该原则使得设计元素的组成可以适当地约束于配置规则中。

可以对基于该风格建立的系统所进行的分析

如分析客户/服务器的时时处理过程和死锁检测的可调度性。另可产生代码。

21、分析KWIC问题的数据抽象体系结构。

PPT第七章56

22、简述“瘦客户”和“胖客户”及其优缺点。

胖客户端,主要像CS模式的项目,把数据库,业务逻辑,显示界面等都安装在客户端,这样客户端计算机就要承担很多责任,而相对而言,瘦客户端,就是把这些数据库操作,业务逻辑放到服务器,客户端只需通过运行显示页面,它通过服务器提供的接口完成业务操作,这样客户端负荷就相对小了很多,而且维护也简单很多

如果你要实现的功能大部分在服务器上完成,客户机上很少,则是胖服务器/瘦客户机。

当然,既然大部分功能都在服务器上完成,服务器的处理能力就必须强,相应的,客户机的处理能力就没有必要那么强。

这也是现在的发展潮流,服务器来完成信息的存储和处理,客户机只是一个交互的工具。

从网络的方面来说,如果服务器的功能较弱而工作站的功能较强,则称胖客户瘦服务,反之亦然。

软件工程复习考试题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行(B)维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法?B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工

软件工程期末考试题含答案

一、选择题 1.瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和_。 ( C ), A .详细计划 B .可行性分析 C .运行阶段 D.测试与排 错 2.在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试年勺系统测试阶段的目标( A ) A .需求分析阶段 B .详细设计阶段 C.概要设计阶段 D .可行性研究阶段, 3.软件工程的出现主要是由于(C ) , A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展, 4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实旅的主要保证是(C) A.硬件环境 B.软件开发的环境 C.软件开发工具和软件开发的环境 D.开发人员的素质 5.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B) A.相互排斥B相互补充C独立使用 D.交替使用 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C) A.基于瀑布模型的结构化方法 B.基于需求动态定义的原型化方法 C.基于对象的面向对象的方法 D.基于数据的数据流开发方法 7.在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B) A.结构化方法B原型化方法C面向对象的方法 D.控制流方法 8.结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的(B) A.控制流 B.数据流 C.程序流 D.指令流 9.软件开发的结构化生命周期方法将软件生命周期划分成(A) A.计划阶段.开发阶段.运行阶段 B.计划阶段.编程阶段.测试阶段 C.总体设计.详细设计.编程调试 D.需求分析.功能定义.系统设计 10.软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C) A.分析阶段 B.设计阶段 C.编码阶段 D.测试阶段

软件工程试题及答案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、在软件开发的各种资源中,(B)是最重要的资源。 A开发工具B方法C硬件环境D人员 2、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A固有的B人为的C可消除的D不可降低的 3、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A )系统。 A需求不确定的B需求确定的C管理信息D决策支持 4、单元测试的测试用例主要根据( D )的结果来设计。 A需求分析B源程序C概要设计D详细设计 5、(A )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。 A软件过程B软件工具C软件生存周质量保证D软件工程 6、(A )意味着一个操作在不同的类中可以有不同的实现方式。 A多态性B类的复用C封装 7、软件测试计划开始于需求分析阶段,完成于(D )阶段。 A需求分析B软件设计C软件实现D软件测试 8、在软件生存周期的瀑布模型中一般包括计划、(C )、设计、编码、测试、维护等阶段。 A可行性分析B需求采集C需求分析D问题定义 9. 软件需求分析阶段的测试手段一般采用( C )。 A总结B阶段性报告C需求分析评审D不测试 10. (C )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。 A多态性B继承C封装D消息 11. 软件测试是为了(B )而执行程序的过程。 A纠正错误B发现错误C避免错误D证明正确 12. 在结构化分析方法中,(C )表达系统内部数据运动的图形化技术。 A数据字典B实体关系图C数据流图D状态转换图 13. 软件工程的基本要素包括方法、工具和( A )。 A过程B软件系统C硬件环境D人员 14. TURBO PASCAL是(A)软件。

软件工程复习试题及答案

一、填空题(在下划线上填写正确的答案,每题2分,共20分) 1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。 2.数据流图和数据字典共同构成了系统的逻辑模型。 3.盒图也称为 N-S图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 4.软件有效性,指软件系统的时间和空间效率。 5.IPO 6.数据流图有四种基本成分:源、终点,处理,存储,数据流。 7. 其中数据项是组成数据流和数据存储的最小元素。 8.软件工程中的结构化分析SA是一种面向数据流的分析方法。 9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。 2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、

单元测试、运行与维护阶段。 3.软件测试的步骤:单元、集成、系统、验收。 4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。5.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。 7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。 8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。 9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。 10.常用的测试方法有黑盒测试和白盒测试。 1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和 社会效益可行性等方面研究。 2.构化程序设计中程序主要的3种基本控制结构是顺序结构、选择结构、循环 结构。 3.软件生存周期中时间最长、花费精力和费用最多的一个阶段是维护 阶段。 4.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功 能需求。

软件工程期末考试题3

试卷一 中南大学考试试卷 2006--2006 学年学期时间110分钟 专业年级:总分100分,占总评成绩 100% 注:此页不作答题纸,请将答案写在答题纸上 填空题(本题20分,每小题2分) 1. 瀑布模型是以文档为驱动、适合于()软件项目的开发。 2. 需求分析的基本任务是()。 3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是()。 4. 根据程序流程图划分的模块通常是()内聚的模块。 5. 软件的分类,按其功能可分为:系统软件、()和应用软件。 6. UML的定义包括UML语义和()两个部分。 7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和( )。 8. IDEF1X图用来描述系统的()模型,主要有实体、联系和()三种成分,其中实体可分为独立实体和(),且一个实体只能在图中出现一次。 二、简答题(本题30分,每小题5分) 1. 什么是软件工程?软件工程和计算机科学有何区别?

2. 面向对象方法和结构化方法有何区别与联系? 3. 什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内? 4. 什么是设计模式?试举例说明组合设计模式的应用。 5.什么是依赖倒置原则?它和开闭原则有何联系? 6. 软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点? 三、绘图题(本题34分) 1. 某单位拟开发一个计算机房产管理系统,要求系统具有分房、调房、退房和查询统计等功能。房产科将用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表,系统拒绝接收;对合法的申请表根据类型分别进行处理。 (1) 如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阀值分数时,按分数高低将申请单插到分房队列的适当位置。在进行分房时,从空房文件中读出空房信息,如房号、面积、等级、单位面积房租等,把好房优先分给排在分房队列前面的符合该等级房条件的申请者;从空房文件中删掉这个房号的信息,并从分房队列中删掉该申请单,再把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租,并将算出的房租写到房租文件中。 (2) 如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。

软件工程试题及答案

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、软件重用的效益是什么?

软件工程试题与答案

安徽三联学院2011-2012学年度第一学期 《软件工程》期终考试试卷(A卷) 一、选择题(每小题2分,计20分) 1.请按顺序写出软件生命期的几个阶段__F__,__D__ ,__C__,___E_,__B__,___A_。 A.维护B.测试C.详细设计D.概要设计E.编码F.需求分析 2.一个模块直接控制(调用)的下层模块的数目称为模块的_____B__。 A.扇入数 B、扇出数 C、宽度 D、作用域 3.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试 (A) A.单元测试 B.系统测试 C.集成测试D.确认测试 4.一个软件项目是否进行开发的结论是在___B___文档中作出的。 A.软件开发计划B、可行性报告C、需求分析说明书D、测试报告 5.系统开发人员使用系统流程图或其他工具描述系统,估计每种方案的成本和效益的工作是在 (B)阶段进行的。 A.需求分析B.总体设计C.详细设计D.编码阶段 6.CMMI标准的5个级别分别是完成级、管理级、定义级、量化管理级和( C ) A.初始级B.可重复级C.优化级D.过程级 7.PAD(Problem Analysi s Diagram)图是一种____工具。( B) A.系统描述B.详细设计C.测试D.编程辅助 二、填空题(每空格1分,计20分) 1、软件的通俗解释是软件= 程序+ 数据+ 文档资料。 4、系统测试包括的4种类型:恢复测试、安全测试、强度测试和性能测试。 6、统一建模语言(UML)提供的9种图分别是:用例图、类图、对象图、 状态图、顺序图、协作图、活动图、组件图和部署图。 7、软件工程标准的5个级别:国际标准、国家标准、行业标准、企业 规范 和项目规范。 三、名词解释题(每题4分,计20分) 1、软件工程: 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 2、再工程: 软件再工程是指对既存对象系统进行调查,并将其重构为新形式代码的开发过程3.模块化: 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性 四、简答题(每题5分,计20分) 1、简述软件工程的基本原理? 1.严格按照软件生命周期计划进行管理.2.坚持进行阶段评审.3.实行严格的产品控制. 4.采用先进的程序设计技术. 5.结果应能清楚的审查.6.开发小组成员应少而精.7.承认不断改进软件工程实践的必要性

软件工程复习题及答案

软件工程复习题(一) 一、选择题 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、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 8、软件详细设计主要采用的方法是( ) A、模块设计 B、结构化设计 C、PDL语言 D、结构化程序设计 9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、.软件工程 B、软件周期 C、软件危机 D、软件产生 10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作() A、需求分析 B、概要设计 C、详细设计 D、软件维护 11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是() A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型 12、程序设计语言的工程特性之一为( ) A、软件的可重用性 B、数据结构的描述性 C、抽象类型的描述性 D、数据库的易操作性 13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A、可用性 B、可靠性 C、正确性 D、完整性 14、模块设计中,最不希望的内聚是() A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内聚 15、实施快速原型模型方法开发软件的关键在于() A、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持 D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。 A、数据流 B、控制流 C、调用关系 D、组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。 A、0 B、1 C、3 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.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B) A) 可行性研究,问题定义,需求分析。 B) 问题定义,可行性研究,需求分析。 C) 可行性研究,需求分析,问题定义。 D) 以上顺序都不对。 2.可行性研究主要从以下几个方面进行研究:(A) A)技术可行性,经济可行性,操作可行性。 B)技术可行性,经济可行性,系统可行性。 C)经济可行性,系统可行性,操作可行性。 D)经济可行性,系统可行性,时间可行性。 3 耦合是对软件不同模块之间互连程度的度量。各种耦合按从强到弱排列如下:(C) A) 内容耦合,控制耦合,数据耦合,公共环境耦合。 B) 内容耦合,控制耦合,公共环境耦合,数据耦合。 C) 内容耦合,公共环境耦合,控制耦合,数据耦合。 D) 控制耦合,内容耦合,数据耦合,公共环境耦合。4.在详细设计阶段所使用到的设计工具是:(A) A) 程序流程图,PAD图,N-S图,HIPO图,判定表,判 定树. B) 数据流程图,Yourdon 图,程序流程图,PAD图, N-S图,HIPO图。 C) 判定表,判定树,PDL,程序流程图,PAD图,N-S 图。 D) 判定表,判定树,数据流程图,系统流程图,程序流程 图,层次图。 5 按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A) A)模块的作用域应在模块的控制域之内。 B)模块的控制域应在模块的作用域之内。

C)模块的控制域与模块的作用域互相独立。 D)以上说法都不对。 6在软件生命周期中,能准确确定软件系统的体系结构的功能阶段是(C) A.概要设计 B.详细设计 C.需求分析 D.可行性分析 7下面不是软件工程的3个要素的是(C) A过程 B.方法 C.环境 D.工具 8.下面不属于软件的组成的是(B) A程序 B.记录 C.文档 D.数据 9在瀑布模型中,将软件分为若干个时期,软件项目的可行性研究一般归属于(C) A.维护时期 B.运行时期 C.定义时期 D.开发时期 10.在瀑布模型中,下面(C)是其突出的缺点。 A.不适应平台的变动 B.不适应算法的变动 C.不适应用户需求的变动 D.不适应程序语言的变动 11下面不属于软件的特点的是(D)。 A软件是一种软件产品 B软件产品不会用坏,不存在磨损、消耗问题 C软件产品的生产主要是研制 D软件产品非常便宜 12 软件开发工具是协助开发人员进行软件开发活动所使用的软件或环境。下面不是软件开发工具的是(A)。 A.维护工具 B.编码工具 C.测试工具 D.需求分析工具 13.下列叙述中不属于软件生命周期模型的是(D)。 A.原型模型 B.瀑布模型 C.螺旋模型 D.快速组装模型 14.软件设计中,用抽象和分解的目的是(B)。 A.提高易读性 B.降低复杂性 C.增加内聚性 D.降低耦合性 15软件生命周期中所花费用最多的阶段是(D)。 A.详细设计 B.软件编码 C.概要设计 D.软件测试和维护 16.开发软件时对提高开发人员工作效率至关重要的是(B)。

软件工程试题及答案

综合练习一答案 一.选择题: 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.需求分析说明书不能作为______。

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

软件工程考试题 简答题 1、什么叫软件? 软件就是计算机系统中与硬件相互依存的另一部分,它就是包括程序,数据及其相关文档的完整集合 2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因就是什么? 软件危机就是指在计算机软件开发与维护过程中所遇到的一系列严重问题。包括两点: (1)如何开发软件,以满足对软件日益增长的需求; (2)如何维护数量不断膨胀的已有软件。 软件开发与维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也与软件开发与维护的方法不正确有关。具体表现如下: (1)软件就是逻辑部件而不就是物理部件。 (2)软件的规模越来越大,复杂性越来越大。 (3)轻视需求分析的重要性,轻视软件维护的错误观点与方法。 3、什么叫软件工程? 1968年在第一届NATO会议上的早期定义: “建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”。 1993年IEEE的定义: “①软件工程就是:把系统的、规范的、可度量的途径应用于软件开发、运行与维护过程,也就就是把工程应用于软件;②进而研究①实现的途径”。 我们国家最近定义:软件工程就是指导计算机软件开发与维护的工程学科。它采用工程的概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来。 4、两种软件工程方法学开发软件时要建立哪些模型? 软件工程方法学包括:传统方法学与面向对象方法学。常用的开发模型有: 瀑布模型(需求稳定,而且可以预先指定) 原型模型(需求模糊或者随时间变化) 增量模型(分析员先作出需求分析与概要设计,用户参与逐步完善) 螺旋模型(将瀑布模型与原型化模型结合起来,并加入了风险分析) 喷泉模型(使开发过程具有迭代性与无间隙性) 5、软件过程模型有哪些?简述它们的特点。 过程模型分为五大类:1、管理过程模型。2、瀑布模型(又称为生命周期模型)。3、增量过程模型:包括增量模型,,RAD模型。4、烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。5、专用过程模型:包括机遇构建的开发模型,形式化方法模型,面向方面的软件开发模型。 6、什么就是软件生命周期? 一个软件从定义,开发,使用与维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长时期称为生命周期 7、软件生命周期有哪几个阶段与步骤? 三个阶段:定义、开发、维护 八个步骤:问题定义、可行性研究、需求分析;总体设计、详细设计、编码与单元测试、综合测试;运行维护。 8、计算机软件的开发经过哪三个大阶段? 三个阶段:定义、开发、维护 9、软件开发的各阶段的任务就是什么? 定义阶段:问题定义--任务:关于规模与目标的报告书;可行性研究--任务:系统的高层逻辑模型:数据流图,成本/效益分析;需求分析--任务:系统的逻辑模型:数据流图,数据字典,算法描述。 开发阶段:总体设计--任务:系统流程图,成本/效益分析,推荐的系统结构:层次图/结构图;详细设计--任务:HIPO图或PDL 图;编码与单元测试--任务:源程序清单,单元测试方案与结果;综合测试--任务:综合测试方案,结果集成测试,验收测试,完整一致的软件配置。 维护阶段:软件维护--任务:维护记录以及改正性维护,适应性维护,完整性维护与预防性维护

《软件工程》期末考试题及答案++精华版!!

《软件工程》期末考试样题 一、填空题 1.软件开发模型有(瀑布模型)(螺旋模型)第四代技术模型(原型模型)构件组装模型、混合模型。 2.可行性研究一般可以从(经济)可行性、(技术) 可行性、运行可行性、法律可行性和开发可行性等方面来研究。 3.现在向银行存款,年利率为i,若希望在n 年后从银行得到F元,现在应该存入的钱数为 (F/(1+i)n)。 4.数据流图的基本符号包括(数据输入的源 点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。 5.Jackson图除了可以表达程序结构外,还可以 表达(数据结构),它首先要分析(数据结构),并用适当的工具来描述。 6.详细设计的工具有图形工具)、表格工具和(语言工具)。 7.IPO图由(输入)、处理和(输出)三个框组 成。这个图的特点是能够直观的显示三者之间的关系。 8.面向对象技术是一整套关于如何看待(软件系统)和(现实世界)的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。面向对象方法是一种运用(对象)、(类)、(继承)、(封装)、聚集、消息传送、多态性等概念来构造系统的软件开发方法。 二、单项选择题 1.下列( A )属于系统软件。 A.WINDOWS 2000 B.Word C.Flash D.3D MAX 2.下列哪个图是N-S图的构件( C )。 A. B.

3.对于螺旋模型,下列( D 卡尔坐标表达的活动。 A. 制定计划 B. 实施工程 C. 风险分析 D. 程序编码 三、多项选择题 1.软件危机可以表现为(ABXD A.产品不符合用户的需要 B.软件产品的质量差 C.软件的可维护性差 D.软件的价格昂贵 2.Jackson图中一般可能包括(A.表头 B.表体 C.表名 D.字段名 AD )。、内容耦合是最高程度的耦合 、应该尽量使用内容耦合 、高级语言一般设计成允许内容耦合的形式、如果一个模块有多个入口,可能发生内容.下列属于不标准的书写格式( BCD )。、书写时适当使用空格分隔 、一行写入多条语句 、嵌套结构不使用分层缩进的写法 、程序中不加注释 ,错误的) 软件生存周期是从软件开始开发到开发结束 () 系统流程图是一个典型的描述逻辑系统的传() 数据流图和数据字典共同构成系统的逻辑 A

软件工程试题库集及答案

综合练习一答案 选择题: 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。用户和软件人员的领导

最新软件工程期末考试题

41.软件是一种产品。 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.项目开发计划B.可行性分析报告C.设计说明书D.需求分析说明书√7.需求分析中,开发人员要从用户那里解决最重要的问题是。 A.要让软件做什么√B.要给软件提供哪些信息 C.要求软件工作效率怎样D.要让该软件具有何种结构 8.分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的。 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.可行性研究主要从方面进行研究。 A.技术可行性,经济可行性,操作可行性B.经济可行性,系统可行性,时间可行性 C.经济可行性,系统可行性,操作可行性D.技术可行性,经济可行性,社会可行性√ 14.可行性分析研究的目的是。 A.项目值得开发与否√B.开发项目C.争取项目D.规划项目 15.需求分析中开发人员要从用户那里了解。 A.输入的信息B.用户使用界面C.软件做什么√D.软件的规模 16.需求分析阶段研究的对象是。 A.软硬件要求B.系统要求C.分析员要求D.用户需求√ 17.系统流程图用于可行性分析中的的描述。 A.目标系统B.当前逻辑模型C.当前运行系统√D.新系统 18.数据字典是用来定义中的各个成分的具体含义的。

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

一、填空题(每空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提出的,它是一种面向()的软件 设计方法。

软件工程试题与答案

《软件工程模拟试题及参考答案》(一) 一、单向选择题(四选一、每小题3分,共18分) 1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。 对应 映射 反映 反射 2、盒图也称为(D)或Chapin图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 流程图 框图 判定表 N-S图 3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。 程序 数据 逻辑 物理 4、人机界面的风格大致经过了(B)代的演变。

三 四 五 六 5、以下不属于白盒测试技术的是(D) 逻辑覆盖 基本路径测试 循环覆盖测试 等价类划分 6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。 纠错性维护 适应性维护 改善性维护 预防性维护 二、填空题(每空2分,共18分) 1.文档—一种数据媒体和其上所记录的(数据)。 2.机器语言、汇编语言:依赖于机器,面向(机器) 3.软件有效性,指软件系统的时间和(空间)效率。 4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。 5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。 6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。

7.一个软件的深度是指其控制的(层数)。 8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终 可运行的代码的过程叫(编码)过程。 9.软件维护是软件生命周期的(最后)一个阶段。 三、判断题(每小题2分,共24分,错误打X、正确打√) 1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之 一。(√) 2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。(X) 3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第 一手资料,并从中提取出有价值的需求。(√) 4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计 一些复杂的算法等场合。(√) 5.流程图也称为程序框图是最常用的一种表示法。(√) 6.面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和重复三 种基本形式表示数据等步骤。(√) 7.理想的人机界面应针对具有典型个性的特定的一类用户设计。(√) 8.数据输入的一般准则中包括尽量增加用户输入的动作。(X) 9.用穷举测试是较现实的测试方法。(X) 四、简答题(每小题4分,共20分)

相关文档
最新文档