《软件工程》试题及参考答案

《软件工程》试题及参考答案
《软件工程》试题及参考答案

第一部分选择题

一、单项选择题(本大题共20小题,每小题1分,共20分)

1.经济可行性研究的范围包括(C)

A.资源有效性 B.管理制度C.效益分析 D.开发风险

2.结构化设计方法在软件开发中用于(A)。

A、概要设计

B、详细设计

C、程序设计

D、测试用例设计

3.程序的三种基本控制结构是(B)

A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移--`

4.软件测试中,白盒法是通过分析程序的(B)来设计测试用例的。

A、应用范围

B、内部逻辑

C、功能

D、输入数据

5.软件维护费用高的主要原因是(C)。

A、人员少

B、人员多

C、生产率低

D、生产率高

6.软件质量必须在(D)加以保证。

A、开发之前

B、开发之后

C、可行性研究过程中

D、设计与实现过程中

7.确认测试主要涉及的文档是(A)。

A、需求规格说明书

B、概要设计说明书

C、详细设计说明书

D、源程序

8.模块的内聚性最高的是( D )

A.逻辑内聚

B.时间内聚

C.偶然内聚

D.功能内聚

9.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫( D)

A.生存期 B.面向对象设计C.面向对象程序设计D.面向对象分析

10.原型化方法是用户和设计者之间执行的一种交互构成,适用于( A )系统。

A.需求不确定性高的 B.需求确定的C.管理信息D.实时

11、 CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。

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. 为了提高模块的独立性,模块之间最好是( D)

A. 控制耦合

B. 公共耦合

C. 内容耦合

D. 数据耦合

17.产生软件维护的副作用,是指 ( C )

A.开发时的错误 B.隐含的错误C.因修改软件而造成的错误 D.运行时误操作

18.把一组具有相似特性的对象组合在一起,称之为( C )

A. 多态性

B.继承性

C.类

D.消息

19、时序图反映对象之间发送消息的时间顺序,它与(D)是同构的。

A 用例图

B 类图

C 活动图

D 协作图

20、单元测试的测试用例主要根据(D)的结果来设计。

A 需求分析

B 源程序

C 概要设计

D 详细设计

第二部分非选择题

二、填空题(本大题共10小题,每小题2分,共20分)

1、软件的定义阶段包括: 问题定义、可行性研究、需求分析。

2、好的软件开发环境应采用CASE工具和集成化CASE环境。

3、需求建模主要有: 需面向数据流的分析方法、面向数据的分析方法、面向对象的分析方法。

4、包图描述系统的分解,表示包(package)以及包之间的关系。包之间的关系包括继承、设计规格说明书与依赖关系。

5、软件设计阶段的输出结果为设计规格说明书,此文档经严格复审后将作为编码阶段的输入文档。

6、数据流图用图形符号表示数据流、加工、数据源及外部实体

7、设计用户界面要充分考虑到人的因素,还要考虑界面的风格,可用的软、硬件技术及应用本身产生的影响。

8、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是依赖关系。

9、软件项目的规模是影响软件项目成本和工作量的重要因素。软件项目代码行和功能点估算是成本和工作量估算的基础。

10、软件测试既是软件开发阶段的最后一个活动,又是软件质量保证的最后一项措施。它所用的主要技术是黑盒测试和白盒测试。

三、名语解释题(本大题共5小题,每小题3分,共15分)

1、软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。

2、信息隐藏模块中的软件设计决策信息封装起来的技术,只知道它的功能以及对外的接口,而不知它的内部细节

3、对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。

4、软件可维护性指软件被理解、改正、调整和改进的难易程度。

5、原型是目标软件系统的一个可操作模型,它实现了目标软件系统的某些重要方面。

6、可行性研究

7、技术可行性是从现行系统开发,在现有的技术条件下估算开发项目的可行性。

8、经济可行行对组织的经济状况和投资能力进行分析,对系统建设,运行和维护费用进行估算,对系统建成后可能取得的社会及经济效益进行估计。

9、需求分析是指开发人员要准确理解用户的需求,进行细致的调查分析,将用户非形式的需求陈述转化成完整的需求定义,再由需求定

义转换到相应的形式功能规约(需求规格说明)的过程。

10、目标系统

11、SA

12、DFD

13、软件测试指为了发现软件中的错误而执行软件的过程。它的目标是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。

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

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

16、渐增式测试逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。

17、非渐增式测试首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试。

18、调试

19、编码就是把软件设计结果翻译成用某种程序设计语言写的程序。

20、程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等。在程序设计中要使程序结构合理、清晰,形成良好的编程习惯,对程序的要求不仅是可以在机器上执行,给出正确的结果,而且要便于程序的调试和维护,这就要求编写的程序不仅自己看得懂,而且也要让别人能看懂。

四、简答题(本大题共5小题,每小题5分,共25分)

1.在软件开发过程中,为了达到软件开发目标,必须遵循哪些原则?

抽象、模块化、信息隐藏、局部化、一致性、完全性、可验证性

2. CMM的能力成熟度共分哪五级?

L1初始级、L2可重复级、L3己定义级、L4己管理级、L5优化级

3.用例实现方案的设计方法分为哪三个步骤?

提取边界类、实体类和控制类;构造交互图;根据交互图精化类图。

4.单元测试任务主要有哪些?

模块接口测试;模块局部数据结构测试;模块边界条件测试;模块中所有独立执行通路测试;模块的各条错误处理通路测试

5.面向功能的度量有哪些优点和缺点

优点

①与程序设计语言无关,它不仅适用于过程式语言,也适用于非过程式的语言;

②软件项目开发初期就能基本上确定系统的输入、输出等参数,功能点度量能用于软件项目的开发初期。

缺点

①它涉及到的主观因素比较多,如各种权函数的取值;

②信息领域中的某些数据有时不容易采集;

③FP的值没有直观的物理意义。

6.简述软件的特点。

7、简述软件危机的产生及表现。

8、试比较结构化方法和面向对象方法。

9、什么是软件过程?它与软件工程是何关系?

软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。

软件过程是软件工程方法学的3个重要组成部分之一。

10、什么是软件的生命周期?软件生命周期分哪几个阶段?

软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期是指从软件开发要求开始,直到该软件报废不用为止的整个过程。这个时期又分为若干个阶段,对软件生产的管理和精度控制有重要作用,使软件的开发有相应的模式、流程、工序和步骤。

简述软件生命周期开发方法的基本过程及每个阶段的任务。

1.问题定义阶段:尽可能清除的描述问题,搞清除要解决的问题是什么;

2.可行性研究阶段:主要是确定待解决的问题是否有可行的解决办法。需要做经济可行性分析、技术可行性分析、操作可行性分析和法律可行性分析;

3.需求分析阶段:主要是确定目标系统必须具备的功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型;

4.总体设计阶段:从总体上解决问题日,确定可实现的方案,并设计出软件的层次结构图;

5.详细设计,把解法具体化,确定如何具体的实现这个系统,针对每个模块设计相应的算法;

6.编码和段媛测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进行单元测试。

7.测试阶段,系统的设计测试用例,尽可能多的发现软件中的错误,并调试改正软件中的错误;

8.软件维护,主要目的是通过修改软件使所开发的软件能够持久的满足用户需要。

11、试比较瀑布模型、原型模型、螺旋模型和增量模型。

1、瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界弃.

2、快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。

3、增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。

4、螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。但是,螺旋模型也有一定的限制条件。

12、可行性研究的任务是什么?

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

需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。

基本任务: ⑴问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。

⑵分析与综合,导出软件的逻辑模型

⑶编写文档:包括编写"需求规格说明书","初步用户使用手册","确认测试计划","修改完善软件开发计划"

14、简述结构化分析方法的步骤。

实现的步骤:⑴了解当前系统的工作流程,获得当前系统的物理模型。⑵抽象出当前系统的逻辑模型。⑶建立目标系统的逻辑模型。⑷作进一步补充和优化。

15、数据流图与数据字典的作用是什么?画数据流图应注意什么?

数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具;

16、如何理解模型的独立性?用什么指标来衡量模块的独立性?

模块独立性是指每个模块只完成系统要求的独立的子功能(即:功能单一),并且与其他模块的联系最少且接口简单(比如:只有一个接口)。模块的独立程度可以由两个定性标准度量;内聚和耦合耦合衡量不同模块之间互相依赖的紧密程度,内聚衡量一个模块内部各个元素彼此结合的紧密程度。

17、结构设计有那些原则?

18、软件详细设计的主要任务是什么?

详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。

19、软件详细设计的原则是什么?

20、详细设计的工具有那几类?请比较它们的优缺点?

21、软件测试的目的是什么?软件调试的目的是什么?

软件测试的目的:为了发现程序中的错误而执行程序的过程

软件调试的目的;A. 发现错误B. 改正错误C. 改善软件的性能D. 挖掘软件的潜能

22、白盒子有哪些逻辑覆盖标准?这些标准有什么关系?

23、属于黑盒法的测试用例设计方法有哪几种?试对这些方法作比较。

1.等价类划分方法

2.边界值分析方法

3.错误推测方法

4.因果图方法

5.判定表驱动分析方法

6.正交实验设计方法

7.功能图分析方法

24、软件测试要经过哪几个阶段?各个阶段与什么文档有关?

25、渐增式测试与非渐增式测试有哪些区别?用渐增式测试时具体采用什么方法和策略组装模块?

26、在项目开发时,选择程序设计语言考虑哪些因素?

1、项目的应用领域,是选择语言的关键因素。

2、软件开发方法:选择语言有时依赖该因素。

3、软件执行环境;对软件生存率、错误率和软件质量有影响。

4、算法和数据结构的复杂性。

5、软件开发人员的知识。与开发人员的知识水平和心理因素有关,有时对语言选择有影响。

27、什么是程序设计风格?应在哪些方面注意培养良好的设计风格?

28、简述什么是对象,什么是类。

29、简述面向对象的开发过程。

30、简述UML的建模机制有哪两种?每种建模机制通过哪些图来表达?

31、试分别举例说明UML中类之间的关系有哪些?

32、简述面向对象分析的步骤。

1)标识对象和类。可以从应用领域开始,逐步确定形成整个应用的基础类和对象。这一步需要分析领域中目标系统的责任,调查系统的环境,从而确定对系统有用的类和对象。

(2)标识结构。典型的结构有两种,即一般—特殊结构和整体—部分结构。一般—特殊结构表示一般类是基类,特殊类是派生类。比如,汽车是轿车和卡车的基类,这是一种一般—特殊结构。整体部分结构表示聚合,由属于不同类的成员聚合成为新的类。比如,轮子、车体和汽车底盘都是汽车的一部分,这些不同功能的部件聚合成为汽车这个整体。

(3)标识属性。对象所保存的信息称为它的属性。类的属性描述状态信息,在类的某个实例中,属性的值表示该对象的状态值。需要找出每个对象在目标系统中所需要的属性,并将属性安排在适当的位置,找出实例连接,最后再进行检查。应该给出每个属性的名字和描述,并指定该属性所受的特殊限制(如只读、属性值限定在某个范围之内等)。

(4)标识服务。对象收到消息后执行的操作称为对象提供的服务。它描述了系统需要执行的处理和功能。定义服务的目的是为了定义对象的行为和对象之间的通信。

(5)标识主题。为了更好地理解包含大量类和对象的概念模型,需要标识主题,即对模型进行划分,给出模型的整体框架,划分出层次结构。可以按照如下步骤来标识主题。 33、简述需求获取的主要方法。

34、面向对象设计阶段包括那几项任务?每项任务的主要内容是什么?

35、在为一个面向对象系统选择程序设计言语时,需要考虑哪些方面因素和影响。 五、综合应用题(第一小题5分,第二小题8分,第三小题7分,共20分) 1.

在下列用例图中,哪些是系统角色(执行者)?

1. 答:3. Bank network 、Manager 、Clerk 2、根据下列条件使用等价类划分法设计测试用例。

某八位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065 2.答:用等价划分法

(1)划分等价类并编号,如下表示: 八进制整型常量输入条件的等价类表

输入数据

合理等价类

不合理等价类

八进制整数

1、2-4位以0打头的数字串

2、以-0打头的3-5位数字串

3、以非0非-打头的串

4、0打头含有非数字字符的串

5、以-0打头含有非数字字符的串

6、多于5个字符

7、-后非0的多位串 8、-后有非数字字符 9、-后多于4个数字 八进制数范围

10、在-177-177之间

11、小于-177

12、大于177

(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子

测试数据 期望结果 覆盖范围 023 显示有效输入 1,10 -0156

显示有效输入

2,10

(3)为不合理等价类测试用例,至少设计一个测试用例

测试数据

期望结果

覆盖范围

102 显示无效输入 3

0A12 显示无效输入 4

-0X33 显示无效输入 5

-02212 显示无效输入 6

-1A1 显示无效输入7

-12a4 显示无效输入8

-2771 显示无效输入9

-0200 显示无效输入11

0223 显示无效输入12

3.用SA方法画出下列问题的顶层和0层数据流图。(7分)

某运动会管理系统接受来自运动员的报名单、裁判的比赛项目及项目成绩,产生运动员号码单发送给运动员,项目参加者发送给裁判,单项名次、团体名次发送给发布台。该系统有两部分功能:

(1)登记报名单:接受报名单、比赛项目,产生运动员号码单、项目参加者,形成运动员名单及团体成绩表两种数据存储。

(2)统计成绩:接受项目成绩,查询运动员名单,产生单项名次,填写团体成绩,最后产生团体名次。

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件工程复习试题及答案.

一、填空题(在下划线上填写正确的答案,每题2分,共20分) 1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数。 2.数据流图和数据字典共同构成了系统的逻辑模型。 3.盒图也称为N-S图。这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。 4.软件有效性,指软件系统的时间和空间效率。 6.数据流图有四种基本成分:源、终点,处理,存储,数据流。 7 中数据项是组成数据流和数据存储的最小元素。 8.软件工程中的结构化分析SA是一种面向数据流的分析方法。 9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程。 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。 1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型。2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段。 3.软件测试的步骤:单元、集成、系统、验收。 4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点。5.IPO图由输入、处理和输出三个框组成。这个图的特点是能够直观的显示三者之间的关系。 6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法。 7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。 9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块。10.常用的测试方法有黑盒测试和白盒测试。 1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益

软件工程试题与答案 (6)

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

软件工程试卷A

安徽农业大学经济技术学院2011―2012学年第二学期 《软件工程》试卷(A 卷) 考试形式: 闭卷笔试,2小时 适用专业: 计算机科学与技术 (注:分大类或全校等) 一、单项选择题(每小题1分,共计20分) 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、需求分析阶段的任务是确定( ) 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、软件需求是度量软件质量的基础,不符合需求的软件就不具备() A、软件的特点 B、质量 C、软件产品 D、功能 14、软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作 () A、正确性 B、移植性 C、可靠性 D、完 整性 15、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减 少返工,所以()的编制是很重要的。 A、需求说明 B、概要说明 C、软件文档 D、测试 计划 16、汽车有一个发动机,因而汽车与发动机之间的关系是()关系。 A、一般与特殊 B、整体与部分 C、分类关系 D、is a 关 系 17、在有多重继承的类层次结构图中,它的类层次结构图是()层次结 构 A、树型 B、网状性 C、星型 D、 环型 18、软件部件的内部实现与外部可访问性的分离,是指软件的()。 A、继承性 B、共享性 C、封装性 D、抽 象性 19、在结构图中,不是其主要成分的是()。 A、模块 B、模块间传递的数据 C、模块内部数据 D、模块的控制 关系 20、结构化设计方法在软件开发中,用于()。 A、测试用例设计 B、软件概要设计 C、程序设计 D、软件详细 设计 二、名词解释(每小题2分,共计20分) 21、软件质量 与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体,是所有描述计算机软件优秀程度 的特性的组合。

软件工程复习资料2012秋(1)

软件工程复习题一 一、选择题,请从四个可选项中选择正确答案。 1.以下哪一项不是软件危机的表现形式() A.成本高 B.生产率低 C.技术发展快 D.质量得不到保证 2.哪种模型分批地逐步向用户提交产品,每次提交一个满足用户需求子集的可运行的产品。() A.演化模型 B.喷泉模型 C.原型模型 D.螺旋模型 3.可行性研究的目的不包括() A.分析开发系统的必要性 B.确定系统建模的方案 C.分析系统风险 D.确定是否值得开发系统 4.可行性分析研究的费用大约是项目总经费的()。 A.2% B.8% C.20% D.50% 5.在E-R 模型中,包含以下基本成分()。 A.数据、对象、实体 B.控制、联系、对象 C.实体、联系、属性 D.实体、属性、联系 6.软件需求分析产生一个重要文档是()。 A.软件维护说明书 B.需求规格说明书 C.可行性报告 D.初步用户手册 7.内聚程度较低的是()。 A.通信内聚 B.过程内聚 C.顺序内聚 D.时间内聚 8.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是() A.把软件划分成模块 B确定模块之间的调用关系 C.确定各个模块的功能 D.设计每个模块的伪代码 9.UML 语言支持的建模方式不包括有()。 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.DFD中的每个加工至少需要() A.一个输入流 B.一个输出流 C.一个输入或输出流 D.一个输入流和一个输出流 17.PDL是描述处理过程()。 A.做什么 B.为什么做 C.怎么做 D.对谁做 18.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()A.数据耦合 B.公共耦合 C.标记耦合 D.内容耦合 19.按照模块独立性,耦合程度由弱至强正确的顺序是()。 A.数据耦合、控制耦合、外部耦合、内容耦合 B.控制耦合、数据耦合、内容耦合、外部耦合 C.内容耦合、外部耦合、控制耦合、数据耦合 D.外部耦合、内容耦合、数据耦合、控制耦合 20.UML 中,包图是一种()。 A.集合 B.数据结构 C.分组机制 D.对系统的动态描述

软件工程复习题

一、单选题 1.软件结构图的形态特征能反映程序重用率的是() a)A、深度 B、宽度C、扇入 D、扇出 2.在大型数据处理系统的功能分析和设计中,数据库的概念设计对应于系统开发的( ) a)A、需求分析 B、概要设计C、详细设计 D、程序设计 3.为了提高模块的独立性,模块内部最好是() a)A、逻辑内聚 B、时间内聚C、功能内聚 D、通信内聚 4.需求分析最终结果是产生() a)A、项目开发计划 B、需求规格说明书C、设计说明书D、可行行分析报告 5.软件是一种() a)A、程序 B、数据C、逻辑产品 D、物理产品 6.信息隐蔽概念与()概念有直接的关系 a)A、模块的独立性 B、模块类型的划分C、软件结构定义 D、软件生命周期 7.不属于序言性注释的有() a)A、模块设计者B、修改日期C、程序的整体说明D、语句功能 8.单元测试阶段主要涉及()的文档。 a)A、需求设计 B、编码和详细设计C、详细设计D、概要设计 9.在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。( ) a)A、应用范围B、内部逻辑C、功能 D、输入数据 10.需求分析是系统分析师经了解用户的需求,认真仔细的调研、分析,最终建立目标系统 的逻辑模型并写出() a)A、模块说明书B、软件规格说明书C、项目开发计划 D、合同文档 11.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为( ) a)A、系统软件B、容错软件C、测试软件 D、操作系统 12.产品管理包括版本管理和() a)A、质量管理 B、性能管理C、开发过程管理 D、配置管理 13.ISO9001质量管理体系认证等同于能力成熟度模型中的第几级() a)A、CMM1 B、CMM2 C、CMM3 D、CMM4 E、CMM5 14.ISO9001质量管理体系认证只做到() a)A、历史记录可查询B、错误原因可查询 15.为了克服软件危机,人们提出了用()的原理来设计软件,这就是软件工程诞生的基础。 a)A、数据B、软件学C、运筹学D、工程学 16.可行性研究的目标是() a)A、开发项目B、项目是否值得开发C、规划项目 D、维护项目 17.结构化程序设计思想的核心是要求程序只由顺序、循环和()三种结构组成A、 选择 B、单入口C、单出口D、有规则的GOTO 18.纠错是由()完成的

软件工程试卷

一、名词解释(15分) 1.软件工程 2.结构化方法 3.软件可靠性 4.对象与类 5.变更控制 二、填空(20分) 1.增量模型适合于________不明确、设计方案有一定风险的软件项目。 2.结构化分析方法的分析策略是__________。 3.可行性研究实质上是要在较高层次上以较抽象的方式进行___________的过程。 4.衡量模块独立性的两个定性标准是_________。 5.Jackson方法是一种面向______________的设计方法。 6.软件集成测试的方法主要有两种,它们是__________。 7.维护阶段是软件生存周期中花费精力和费用_____________的阶段。 8.继承性是子类自动共享其父类的______________机制。 9.在面向对象方法中,人们常用状态图描述类中对象的___________。 10.规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称该软件为_________软件。 三、选择(20分) 1.需求分析中,开发人员要从用户那里解决的最重要的问题是( )。 A、要让软件做什么 B、要给该软件提供哪些信息 C、要求软件工作效率怎样 D、要让该软件具有何种结构 2.DFD中的每个加工至少有( )。

A、一个输入流或一个输出流 B、一个输入流和一个输出流 C、一个输入流 D、一个输出流 3.详细设计与概要设计衔接的图形工具是( )。 A、DFD图 B、SC图 C、PAD图 D、程序流程图 4.下列几种类型中,耦合性最弱的是( )。 A、内容型 B、控制型 C、公共型 D、数据型 5.确认测试中,作为测试依据的文档是( )。 A、需求规格说明书 B、设计说明书 C、源程序 D、开发计划 6.为了适应软硬件环境变化而修改软件的过程是( )。 A、校正性维护 B、完善性维护 C、适应性维护 D、预防性维护 7.瀑布模型是一种( )。 A、整体开发模型 B、非整体开发模型 C、风险驱动模型 D、对象驱动模型 8.用于描述对象模型的工具是( )。 A、数据流图 B、结构图 C、状态图 D、对象图 9.基线可作为软件生存期中各开发阶段的一个检查点。当采用的基线发生错误时,可以返回到最近和最恰当的( )上 A.配置项 B.程序 C.基线 D.过程

软件工程期末试卷(A卷)

《软件工程》期末试卷(A卷) 一.单项选择题(每小题1分,共22分) 1.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合B.隐藏C.封装D.抽象 2.软件生命周期中所花费用最多的阶段是( D )。 A.详细设计B.软件编码C.软件测试D.软件维护 3.需求分析中开发人员要从用户那里了解( A )。 A.软件做什么B.用户使用界面 C.输入的信息D.软件的规模 4.测试的关键问题是( D )。 A.如何组织对软件的评审B.如何验证程序的正确性 C.如何采用综合策略D.如何选择测试用例 5.( D )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。 A.软件过程B.软件测试 C.软件生命周期D.软件工程方法学 6.( A )意味着一个操作在不同的类中可以有不同的实现方式。 A.多态性B.多继承C.类的可复用D.信息隐藏 7.单元测试的测试用例主要根据( D )的结果来设计。 A.需求分析B.源程序C.概要设计D.详细设计 8.随着软硬件环境变化而修改软件的过程是( B )。 A.校正性维护B.适应性维护 C.完善性维护D.预防性维护 9.在白盒测试技术测试用例的设计中,( A )是最弱的覆盖标准。 A.语句覆盖B.路径覆盖 C.条件组合覆盖D.判定覆盖 10.结构化程序设计的一种基本方法是( C )。 A.筛选法B.迭代法 C.逐步求精法D.递归法11.不适合作为科学工程计算的程序设计语言是( D )。 A.Pascal B.C C.Fortran D.Prolog 12.只有单重继承的类层次结构是( C )层次结构。 A.网状型B.星型 C.树型D.环型 13.面向对象的开发方法中,( C )将是面向对象技术领域内占主导地位的标准建模语言。 A.Booch方法B.Coad方法C.UML语言D.OMT方法 14.瀑布模型本质上是一种( A )。 A.线性顺序模型B.顺序迭代模型 C.线性迭代模型D.及早见产品模型 15.软件维护产生的副作用,是指( C )。 A.开发时的错误B.隐含的错误 C.因修改软件而造成的错误D.运行时误操作 16.软件详细设计的主要任务是确定每个模块的( A )。 A.算法和使用的数据结构B.外部接口 C.功能D.编程 17.软件结构图的形态特征能反映程序重用率的是( C )。 A.深度B.宽度C.扇入D.扇出 18.为了提高模块的独立性,模块内部最好是( C )。 A.逻辑内聚B.时间内聚 C.功能内聚D.通信内聚 19.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A )。 A.调用关系B.组成关系 C.链接关系D.顺序执行关系 20.“软件危机”是指( C )。 A.计算机病毒的出现 B.利用计算机进行经济犯罪活动 C.软件开发和维护中出现的一系列问题 D.人们过分迷恋计算机系统 21.具有风险分析的软件生命周期模型是( C )。 A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 22.数据流图(DFD)中的每个数据处理至少需要( D )。 A.一个输入数据流 B.一个输出数据流 C.一个输入或者输出数据流 D.一个输入数据流和一个输出流

软件工程方法与实践 期末考试复习资料(江理)

软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。 软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点 CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。 极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。它的的核心有四个要点:交流、简单、反馈、勇气 软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。 软件需求分类:功能需求、非功能需求和领域需求 结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC) 面向对象的一些概念:类是具有相同或相似性质的对象的抽象。实例是类的具体化。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。消息是指对象间相互联系和相互作用的方式 数据流类型:变换型数据流、事务型数据流、混合型数据流 Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。Jackson方法用某种形式的伪码给出程序的过程性描述。伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。

软件工程复习题及答案

软件工程复习题(一) 一、选择题 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、不确定的

软件工程试题及答案

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

软件工程复习提纲(20160615)

软件工程复习提纲 Chapter1 1.开发文档都有哪些?用图来表示它们之间的关系。 2.说明软件工程研究的内容。 3.软件工程的7条基本原理有何现实意义。 4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别? 5.怎样理解CMMI,如何用CMMI去管理软件企业? 6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000 模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么? 7.软件工程与信息系统工程有何异同? 8.怎样理解元数据? Chapter2 1.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系? 2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。 3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么? 4.你对“生存周期模型裁剪指南”有什么看法? 5.“图书馆信息系统”的开发选用什么开发模型合适? Chapter3 1.立项的具体表现形式是什么? 2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员? 3.什么叫风险分析,技能风险与技术风险有何区别? 3.合同、任务书、立项建议书三者有何异同?有何关系? 4.对软件项目和产品的“功能、性能、接口”三项指标如何理解? Chapter4 1.需求分析的目的是什么,需求分析的难点在哪里? 2.需求分析的理论基础有哪几条? 3.为什么说需求分析是面向流程的? 4.解释术语:元数据、实体、中间数据。 5.用户需求报告与需求规格书有何差异? 6.需求描述有哪几种工具?你喜欢哪一种,为什么?

软件工程试题与答案

《软件工程模拟试题及参考答案》(一) 一、单向选择题(四选一、每小题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分)

软件工程复习资料

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.下面说法正确的是 A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化 B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产 C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功 D.购买大多数计算机系统所需的硬件比软件更昂贵 8.Ariane 5火箭发射失败的事例告诉我们 A.(2)软件后备系统可以通过复制生成 B.(3)软件重用必须重新进行系统论证和系统测试 C. 选项(1)和(3) D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制

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.正确 15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。 A. 正确 B.错误 16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。 A.正确 B.错误 17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是 A.功能模型 B.数据模型 C.行为模型 D.动态模型 18、下列叙述中,()不属于数据字典的作用。 A.为用户与开发人员之间统一认识 B.为需求分析阶段定义各类条目

软件工程复习题答案

软件工程复习题答案 Final approval draft on November 22, 2020

一、选择题 1.软件工程研究的主要内容有(ABCD) 2.A. 软件开发方法、技术 B. 软件开发工具及环境 3.C. 软件管理技术 D. 软件规范(国际规范) 4.目前典型的软件开发模型有(ABCD): 5.A. 瀑布模型 B. 增量模型 C.螺旋模型 D.喷泉模型 6.包含风险分析的软件工程模型是(C): 7.A. 瀑布模型 B. 增量模型 C.螺旋模型 D.喷泉模型 8.软件危机的主要表现是(BD) 9.A. 软件成本太高 B. 软件产品的质量低劣 10. C. 软件开发人员明显不足 D. 软件生产率低下 11.以下属于非功能需求的有(ABC) 12. A. 机构需求 B. 产品需求 C. 外部需求 D. 领域需求 13.需求分析的作用是(ABCD) 14. A. 定义软件的范围及必须满足的约束 15. B. 确定软件的功能和性能及与其他系统成分的接口 16. C. 建立数据模型、功能模型和行为模型 17. D. 最终提供需求规格说明,并用于作为评估软件质量的依据 18.需求工程的基本活动包括(ABCD) 19. A. 获取需求 B. 需求分析与建模 C. 确认需求 D. 进化需求 20.需求获取之所以困难,其主要原因有(ABCD) 21. A. 缺乏领域知识 B. 存在默认的知识 22. C. 存在多个知识源 D. 客户可能的偏见 23.常用的需求分析方法有(BCD) 24. A. 功能分析方法 B. 结构化分析方法 25. C. 信息建模法 D. 面向对象的分析方法 26.数据词典中可包含的条目有(ABCD) 27. A. 数据流 B. 数据项 C. 文件 D. 加工 28.属于分布式的软件体系结构有(B) 29. A. 仓库模型 B. 客户/服务器模型 C. 分布式对象结构 D. 中间件30.对于以下给出的几种类型的耦合,按照耦合性由高到低排列的是(A) 31.(1)内容耦合(2)公共耦合(3)控制耦合(4)复合耦合(5)数据耦合 32. A. 1 2 3 4 5 B. 1 3 4 2 5 C. 1 2 5 3 4 D. 5 4 3 2 1 33.对于块内部联系的类型,内聚性由弱到强的是(A) 34.(1)偶然型(2)逻辑型(3)瞬时型(4)通信型(5)顺序型(6)功能型 35. A. 1 2 3 4 5 6 B. 1 2 4 5 3 6 C. 3 2 4 1 5 6 D. 6 5 4 3 2 1 36.(C)是指相同的操作(或函数、过程)作用于不同的对象上并获得不同的结果 37. A. 继承性 B. 封装性 C. 多态性 D. 动态绑定 38.以下UML的几种图中,属于动态模型的有(ACD)

相关文档
最新文档