文档库 最新最全的文档下载
当前位置:文档库 › 软件工程复习

软件工程复习

软件工程复习
软件工程复习

一、单项选择题

1. PDL是描述处理过程( )。

A.做什么

B.为什么做

C.怎么做

D.对谁做

2.通过()可以完成数据流图的细化。

A.结构分解B、功能分解 C、数据分解D、系统分解

3.数据流程图上的数据流必须封闭在()之间。

A.外部过程

B.内部数据

C.内部过程

D.外部实体

4.根据软件工程的7条基本原理判断下面正确的选项是()。

A.软件错误发现的时机不重要,重要的是错误的严重程度

B.软件错误只能通过运行代码才能发现

C.软件错误发现的越早改正的成本越低

D. 需求阶段一般不会引入错误

5.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立()。

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. PAD图为( )提供了有力的工具。

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. CMM 表示( )。

A 软件过程成熟度模型

B 软件过程工业化控制

C 国际软件质量认证 D过程一致性标准

16. 软件是一种( )。

A. 程序

B. 数据

C. 逻辑产品

D. 物理产品

1.从下列A、B、C三个选项中,选出正确答案描述(1)-(10)共10个小题中各对事物之间的关系,将正确选项填写在每个小题后面的括弧中。(每小题2分,共20分)

A.继承B.聚集C.一般关联

(1)课题组---- 成员()

(2)作家---- 计算机()

(3)交通工具---- 船()

(4)班级---- 学生()

(5)男人---- 女人()

(6)公交车---- 司机()

(7)软件开发人员---- 计算机()

(8)列车---- 餐车()

(9)学生---- 中学生()

(10)图形---- 多边形()

2.以下哪种测试方法不是白盒测试技术()。

A基本路径测试 B 边界值分析测试 C 循环覆盖测试 D 逻辑覆盖测试

3.以下哪一项不属于面向对象的软件开发方法()。

A Coad方法

B Booch方法

C Jackson方法

D OMT方法

4.在软件开发的各种资源中,()是最重要的资源。

A开发工具B方法 C 硬件环境 D 人员

5.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立()。

A软件结构 B 软件过程 C 软件模型 D 软件模块

6.单元测试的测试用例主要根据()的结果来设计。

A需求分析 B 源程序 C 概要设计 D 详细设计

7.软件工程管理的对象是( )。

A软件开发人员 B 软件工程项目 C 软件开发过程 D 软件开发速度

8.一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行,则这种内聚是()。

A功能内聚 B 顺序性内聚 C 通信内聚 D 逻辑内聚

二、判断题

1.()结构分析的方法就是面向功能自顶向下逐步求精进行需求分析的方法。

2.()瀑布模型本质上是一种线性迭代模型。

3.()软件生命周期中所花费最多的阶段是软件编码。

4.()在软件结构图中,模块框之间若有直线连接,表示它们之间存在顺序执行关系。

5.()数据流图是系统逻辑功能的图形表示。

6.()在软件开发过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。

7.()模块越小,模块化的优点越明显。一般来说,模块的大小都在10行以下。

8.()面向对象范型本身要求经常对开发活动进行迭代或求精。

9.()需求是变化的,因为软件是灵活的,总可以满足需求。

10.()在进行总体设计时应加强模块联系。

1.采用Gantt图表是软件项目进度安排,能够表示哪些任务是关键任务。()

2.模块的内聚性最高的是功能内聚。()

3.关联表示两个类之间某种语义上的联系。()

4.项目应用领域是选择语言的关键因素。()

5.输入/输出风格与人机交互的程度无关。。()

6.数据库设计说明书是一个软件配置项。()

7.用面向对象方法开发的软件系统,可维护性好。()

8.过程描述语言可以用于描述软件结构。()

9.序列图描述对象是如何交互的并且将重点放在消息序列上。()

10.快速原型模型可以有效地适应用户需求的动态变化。()

11.模块化、信息隐藏、抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合的软件产品。()

12.集成测试主要由用户来完成。()

13.确认测试计划应该在可行性研究阶段制定。()

14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。()

15. CMM 是指导软件开发的一种面向对象的新技术。()

三、填空题

(1)绘制数据流图的四要素分别是:

、、、和。(2)软件工程方法学的3个要素是、、和。

(3)软件生命周期可划分为软件定义、软件开发和软件维护3个时期,通常把这三个时期再细分为8个阶段,它们是问题定义、、、、、编码和单元测试、综合测试、软件维护(维护)。

四、简答题

1. 软件是什么?衡量一个软件的模块独立性的要素是什么?

2. 什么是软件过程?请列举出3个常见的软件过程模型名称。

3.简述三种面向对象模型的主要功能。

4.什么是软件危机?

5.简述软件工程的概念

6.数据流图的四种基本符号是什么?

7.什么是软件测试?软件测试的目的是什么?有哪几种类型?

六、综合题

1. 北京某高校可用的电话号码有以下几类:校内电话号码有4位数字组成,第一位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话再接着拨8位数字(第一位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1

位不是0)。

要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。

2.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。试根据要求画出该问题的数据流图,并用实体-联系图描绘系统中的数据对象,最后根据数据流图并把其转换为对应的软件结构图。

3.复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。用状态转换图描绘复印机的行为。

4.对以下程序进行测试:

PROCEDURE EX(A,B:REAL;V AR X:REAL);

BEGIN

IF(A=3)OR(B> 1)THEN X:=A×B

IF(A>2)AND(B=0)THEN X:=A-3

END

要求:先画出程序流程图。再按语句覆盖法设计测试数据。

5. 窗口分为对话窗、图形窗、滚动窗三种;对话窗中有若干对话项,由唯一的项名字来确定,对话项分为按钮、选择项和正文项三种,选择项中有若干选择项入口;图形窗中有若干形状元素,形状元素分为一维形状和二维形状,一维形状又分为直线、圆弧和折线;二维形状分为圆、椭圆、矩形和多边形,其中多边形和折线由若干有序顶点组成,正文窗是滚动窗的一种,而图形滚动窗既是一种图形窗又是一种滚动窗。请建立该窗口系统的对象模型。

6.

选择题

1. C

2.B

3.D

4. C

5. D

6.C

7.C

8.D

9.A10. B

11.C 12.C 13.A14.C 15.A16.C

1. B

2.C

3.A

4. B

5. C

6.C

7.C

8.B

9.A10. A

11.B 12.C 13.D 14.D 15.D 16.B 17.B

判断题

1. ×

2. ×

3. ×

4. ×

5. √

6. ×

7. ×

8. √

9. ×10. ×

1. ×

2. √

3. ×

4. √

5. ×

6. √

7. √

8. ×

9. √10. √

11.√12. ×13. ×14. ×15. ×

选择题:

1、软件需求分析的任务不包括( C)。

A.问题分析

B.信息域分析

C.结构化设计

D.确定逻辑结构

2、在进行需求分析中用到多种描述工具,不包括(C)。

A.数据流图

B.判定表

C.PAD图

D.数据词典

3、软件测试的目的(B)。

A.评价软件的质量

B.发现软件的错误

C.找出软件中的所有错误

D.证明软件是正确的

4、白盒测试法又称为逻辑覆盖法,主要用于( D )。

A.功能测试

B.系统测试

C.a测试

D.单元测试

5、结构化分析方法(SA法)使用的主要描述工具有( D)。

A.数据库

B.模块结构图

C.PAD图

D.分层的DFD图

6、在需求分析过程中,需求分析员要从用户那里解决的重要问题是( A)。

A.要求软件做什么的问题

B.要给软件提供哪些信息

C.要求软件工作效率如何

D.要求软件具有什么样的结构

7、UML中,包是一种( C)。

A.集合

B.数据结构

C.分组机制

D.对系统的动态描述

8、瀑布模型存在的问题是( B)。

A.用户容易参与开发

B.缺乏灵活性

C.用于与开发者易沟通

D.适用可变需求

9、在数据流图中,O(椭圆)代表( C )。

A.源点

B.终点

C.加工

D.模块

10、确定测试计划是在(A)阶段制定的。

A.总体设计B.详细设计

C.编码阶段D.测试阶段

2、结构化程序设计采用的三种基本控制结构是(C )。

A.顺序、分支、选择

B.选择、循环、重复

C.顺序、选择、循环

D.输入、变换、输出

3、在结构化设计中,数据流图的父图与子图的平衡是指子图的输入输出数据流同父图应加

工的输入输出数据流(B)。

A.不一致

B.一致

C.没有一定的关系

D.父图包含在子图的数据中

4、结构化方法是一种什么的软件开发方法(D )。

A.面向用户

B.面向数据结构

C.面向对象

D.面向数据流

5、DFD中的每个加工至少( B )。

A.一个输出流

B.一个输入流和一个输出流

C.一个输入流

D.一个输入流或一个输出流

6、需求分析是回答系统必须( A )。

A.做什么的问题

B.怎么做的问题

C.何时做的问题

D.为谁做的问题

7、面向对象的特征之一是( A )。

A.对象的唯一性

B.数据如何确定

C.对象的共享性

D.数据关系的抽象

8、数据字典是用来定义( D )中的各个成份的具体含义。

A.系统流程图

B.功能结构图

C.系统结构图

D.数据流图

9、瀑布模型存在的问题是( B )。

A.用户容易参与开发

B.缺乏灵活性

C.用于与开发者易沟通

D.适用可变需求

10、数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序关系是( B )。

A.数据耦合→公共耦合→标记耦合→控制耦合

B.数据耦合→标记耦合→控制耦合→公共耦合

C.控制耦合→数据耦合→标记耦合→公共耦合

D.控制耦合→数据耦合→公共耦合→标记耦合

11、对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。

A.结合B.隐藏

C.封装D.抽象

12、结构化程序设计主要强调的是(D)

A.程序的规模

B.程序的效率

C.程序设计语言的先进性

D.程序的易读性

13、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发

的决策依据,因必须给出(B)的答案

A.确定B.行或不行

C.正确D.无二义

14、软件调试技术包括(B)

A.边界值分析B.回溯法

C.循环覆盖D.集成测试

15、软件生命周期中所花费用最多的阶段是(D)

A.详细设计B.软件编码

C.软件测试D.软件维护

16、在白盒法技术测试用例的设计中(A)是最弱的覆盖标准。

A.语句B.路径

C.条件组合D.判定

17、为了提高软件的可维护性,在编码阶段应注意(D)

A.保存测试用例和数据

B.提高模块的独立性

C.文档的副作用

D.养成好的程序设计风格

18、详细设计与概要设计衔接的图形工具是(B)

A.DFD图B.SC图

C.PAD图D.程序流程图

19、针对软件需求分析所进行的软件测试是(B)

A.集成测试B.确认测试

C.黑盒测试D.白盒测试

20、软件开发过程来自用户方面的主要干扰是(A)

A.功能变化B.经费减少

C.设备损坏D.人员变化

1、软件工程管理的具体内容不包括对( D)管理。

A.开发人员B.组织结构

C.控制D.设备

2、用白盒法技术设计测试用例的方法包括(C )。

A.错误推测

B.因果图

C.基本路径测试

D.边界值分析

3、数据流图(DFD)是(A)方法中用于表示系统的逻辑模型的一种图形工具。

A.SA B.SD

C.SP D.SC

4、需求分析的主要任务是准确地定义出要开发的软件系统是(C )。

A.如何做B.怎样做

C.做什么D.对谁做

5、对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。

A.结合B.隐蔽

C.封装D.抽象

6、软件开发阶段中工作比重最重的工作是( D )。

A.详细设计B.软件编码

C.系统概要D.需求分析

7、面向对象的特征之一是( A )。

A.对象的唯一性B.数据如何确定

C.对象的共享性D.数据关系的抽象

8、软件的复杂性主要体现在( B )。

A.数据的复杂性B.程序的复杂性

C.控制的复杂性D.问题的复杂性

9、瀑布模型存在的问题是( B )。

A.用户容易参与开发B.缺乏灵活性

C.用于与开发者易沟通D.适用可变需求

10、可行性分析研究的目的是(B)。

A.争取项目

B.项目值得开发否

C.开发项目

D.规划项目

11、数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序关系是( B )。

A.数据耦合、公共耦合、标记耦合、控制耦合

B.数据耦合、标记耦合、控制耦合、公共耦合

C.控制耦合、数据耦合、标记耦合、公共耦合

D.控制耦合、数据耦合、公共耦合、标记耦合

12、结构化程序设计主要强调的是(D)

A.程序的规模B.程序的效率

C.程序设计语言的先进性D.程序的易读性

13、软件开发过程来自用户方面的主要干扰是(A)

A.功能变化B.经费减少

C.设备损坏D.人员变化

14、针对软件需求分析所进行的软件测试是(B)

A.集成测试B.确认测试

C.黑盒测试D.白盒测试

15、详细设计与概要设计衔接的图形工具是(B)

A.DFD图B.SC图

C.PAD图D.程序流程图

16、为了提高软件的可维护性,在编码阶段应注意(D)

A.保存测试用例和数据

B.提高模块的独立性

C.文档的副作用

D.养成好的程序设计风格

17、结构化程序设计采用的三种基本控制结构是(C )。

A.顺序、分支、选择

B.选择、循环、重复

C.顺序、选择、循环

D.输入、变换、输出

18、Java语言的程序设计方法是一种面向(C)的设计方法

A.控制结构B.数据流

C.面向对象D.数据结构

19、需求规格说明书的作用不包括(C)

A.软件验收的依据

B.用户与开发人员对软件要做什么的共同理解

C.软件可行性研究的依据

D.软件设计的依据

20、UML (Unified Modeling Language)是一种标准的图形化建模语言,是(D)一种标准表示。

A.面向数据流的设计和分析

B.面向结构化的程序设计和分析

C.面向数据结构化的程序设计和分析

D.面向对象分析和设计

软件工程期末复习

软件工程期末复习 一、选择题 1、软件工程的研究者将软件开发和维护过程概括为(c)大活动。 A.5 B.7 C.8 D.3 2、(a)是职业软件工程师的必要条件。 A.自律、善于沟通、具有一定的软件技能 B.编程速度快 C.熟悉众多的软件环境 D.语言天赋 3、计算机病毒是指(b)。 A.计算机系统的漏洞 B. 一组自我复制和自动执行的具有 破坏能力的代码 C.一种细菌 D. 程序中的BUG 4、软件需求具有(d)。 A.主观性 B.不确定性 C.多变性 D.以上全部 5、描述软件需求通常不用哪个工具(c)。 A.数据流程图 B.数据字典 C.模块结构图 D.E-R图 6、软件结构图中没有(d)元素。 A.模块 B.调用参数 C.返回结果 D.判断 7、程序流程图与数据流程图的关系(a)。 A.不确定 B.数据流程图可以转换成程序流程图 C.数据调用关系 D.程序流程图可以转换成数据流程图 8、包含关系用于构造多个用例(b)。 A. 关系 B.共性的部分 C.角色 D.特殊活动 9、如果说用例F被用例T扩展,意思是(a)。 A.F是一个一般用例,T是一个特殊用例 B.F是一个特殊用户,T是一个一般用例 C.都是一般用例 D.都是特殊用例 10、用(c)对需要长久保存的信息进行建模。 A.实体类 B.数据库表 C.E-R图 D.对象类 11、美国卡内基﹒梅隆大学制定的SW-CMM是(c)。 A.软件工作规范 B.软件工作流描述 C.软件成熟度模型 D.软件描述的一般方法 12、螺旋模型是一种将(d)结合起来的软件开发模型。 A.原型化模型和增量模型 B.风险判断和瀑布模型 C.瀑布模型和原型化模型 D.瀑布模型和增量模型 13可行性研究的四大要素是(a)。 A.经济、技术、法律和社会环境 B.经济、技术、开发组织能力和领导者水平 C.经济、技术、计算机硬件环境和网络带宽 D.经济、技术、软件开发工具和人员的稳定性 14、软件调研报告是在(b)提交的。 A. 可行性分析之前 B. 需求分析之前 C.签合同之前 D. 设计的时候 15、系统流程图的主要作用(a). A.描述系统的物理模型 B.业务流程 C.系统处理过程 D. 数据处理过程 16、PDL是一种(d)语言。 A.低级程序设计语言 B.建模语言 C.高级程序设计语言 D.过程设计语言 17、结构化设计方法划分模块的原则是(c)。 A.模块扇出小于5 B.模块扇入小于5 C.低耦合,高内聚 D.模块深度小于7 18、配置视图体现了系统的实现环境,反映系统的(b)。 A. 逻辑架构 B. 物理架构 C.组成结构 D.体系结构 19、角色可以有四种类型:系统的使用者,硬件设备,外部系统和(d)。 A.数据库 B.接口 C.对象 D. 时间 20、功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由(c )实现。 A. 场景描述 B.活动图和场景描述 C. 用例图和场景描述 D.交互图和场景描述 21、下面的哪个选项不是软件工程的宗旨(b)。 A.开发满足用户需求的软件 B.研究算法 C.及时交付软 件 D.生产无故障软件 22、针对需求不确定的软件开发,比较好的模型是(a)。 A. 快速原型化模型 B. 瀑布模型 C.软件成熟度模型 D.系统化模型 23、可行性分析研究的费用大约是项目总经费的(b)。 A.2% B.6% C.20% D.5‰ 24、业务需求描述的是(d)。 A.功能需求 B.用户需求 C.用户的具体业务流程 D.软件的目标、规模和范围 25、一个数据流程图中的图形符号有且仅有(c)种。 A.3 B.5 C.4 D.7 26、非直接耦合的模块独立性最强,(a)的模块独立性最弱。A.内容耦合 B.数据耦合 C.控制耦合 D.外部耦合 27、信息隐藏的核心内容是(c)。 A.把数据都放在公共的区域B.数据不能被其他模块访问 C.一个模块的内部信息不允许其他模块直接访问 D.把信息加密,只能让有密钥的模块访问 28、面向过程的方法最关心的是(a),而过程实施的对象是作为过程参数传递的。 A.参数 B.主体 C.过程 D.数据结构 29、(c)用于描述系统的功能集。 A. 组件视图 B.逻辑视图 C. 用例视图 D.对象视图 30、用(d)模型建立系统组织结构。 A.组织 B.CMM C.数据 D.静态 31、对象模型描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,由(b)实现。 A.顺序图 B.类图 C.状态图 D.组件图 32、如果对象之间的耦合是通过(a)来实现的,则这种耦合就是交互耦合。 A.消息机制 B.参数 C.方法 D.公共数据区 33、定义类的属性类型时尽量使用已有类型,太多自定义类型会降低系统的(c)指标。 A.有效性 B.安全性 C. 可维护性 D. 开发效率 34、在设计测试用例时,应该包括(d)测试用例。 A. 可能产生无效输出的输入情况 B.无效的和不期望的输入情况 C.有效的和期望的输入情况 D.上面所有情况 35、(b)属于功能测试方法。 A.等价类划分和判定覆盖 B.边值分析和等价类划分 C.边值分析和判定覆盖 D.判定覆盖和回归测试 36、一个软件项目大约(a)的工作量在开发阶段,()的工作量在维护阶段。 A.30%,70% B. 70%,30% C. 30%,30% D. 70%,70% 37、软件项目管理的内容不包括(b)。 A.人员的组织与管理 B. 技术和算法 C.软件配置管理 D.软件开发进度计划 38、通俗的说,软件项目管理中常说的基线是(d)。 A.管理的基本思路 B. 一种软件开发的基本策略 C.基本的技术路线 D. 通过正式复审的文档 39、科学计算领域一般选择(b)语言。 A.HTML B.C C.汇编语言 D.XML 40对于嵌套的循环和分支程序,层次不要超过(c)层。 A.1 B.2 C.3 D.5 41、在分析模型内表示协调、顺序、事务处理以及控制其他对象的类是(a)。 A.控制类 B.组件类 C.主函数 D.事务类 42、继承耦合是(b)之间的一种关联形式,设计时应该适当使用这种耦合。 A. 虚类与实体类 B. 一般化类与特殊化类 C.控制类与界面类 D.数据类与处理类 43、构架设计的主要目的是(d),这项工作由经验丰富的构架设计师主持完成。 A.类图 B.确定系统数据结构 C.处理流程 D. 确定系统总体结构 44、测试用例是一组(a)。 A.测试用的输入数据以及对应的预期结果 B.测试驱动程序 C.测试数据 D.测试程序及数据 45、由于面向对象中的继承和消息机制,使得软件测试(b)。 A.更加简单 B.更加复杂 C.没变 D.不确定 46、软件维护过程中产生的副作用,一般是由(b)引起的。 A.算法说明 B.修改程序 C.优先级 D.环境要求 47、项目计划活动的主要任务是(d)。 A.估算项目的进度 B.分配工作量 C.计划资源使用 D.以上全部 48、如果程序代码的(c)好,则调试的成本就可以大幅度降低。 A.性能比 B. 可扩充性 C. 可读性 D.可移植性 49、两个浮点数X0和X1比较相等时,应该用(c)比较。 A.X0==X1 B.X1-X0<ε C. |X0-X1|<ε D.X0=X1 50、瀑布模型存在的问题是(d )。 A.用户容易参与开发B.适用可变需求 C.用户与开发者易沟通 D.缺乏灵活性 51、( b)不是分析建模的目的。 A. 定义可验证的软件需求 B. 开发一个简单的问题解决方案 C. 描述客户需求 D. 建立软件设计的基础 52、对用例进行设计,发现实现用例功能的(d),确定类之间的关系。 A. 算法 B.业务流程 C.数据结构 D. 关键类 53、框架是一组可用于不同应用的(a)的集合。 A.类 B.数据结构 C.函数 D.过程

《软件工程》期末复习题1

考试时间: 16周周一5,6节 考试地点: 二教419 406 408 考试题型: 选择题:20分 简答题:30分 应用题:50分 各章内容及题型总结: 第1,2章本章的主要题型是选择题和简答题。 1. 软件危机的主要表现是什么?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。 2. 软件工程的定义?答:软件工程是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,来解决软件危机。 IEEE的定义:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,②对①中所选方法的研究。 3. 软件工程研究的主要内容是什么?答:软件开发技术和软件开发管理两个方面。软件开发技术方面主要研究软件开发方法、软件开发过程、软件开发工具和环境。软件开发管理方面主要研究软件工程管理学、软件工程经济学、软件工程心理学。 4. 软件工程的7条基本原理是什么?答:①用分阶段的生命周期计划严格管理②坚持进行阶段评审③实行严格的产品控制④采用现代程序设计技术⑤结果应能清楚地审查⑥开发小组的人员应该少而精⑦承认不断改进软件工程实践的必要性。 5. 什么是软件生命周期?答:指一个软件从提出开发要求开始到该软件报废为止的整个时期。通常将软件的生命周期划分为可行性研究、需求分析、设计、编码、测试、集成、维护阶段。 6. 软件过程的定义?答:软件开发过程、活动和任务的结构框架。它能够清晰、直观地表达软件开发全过程,明确规定要完成的主要活动和任务。 7. 你能举出几个典型的软件过程模型吗?答:主要有瀑布模型、演化模型、喷泉模型、螺旋模型、智能模型。模型的选择是基于软件的特点和应用领域。 8. 目前,主流的软件开发方法有哪些?答:结构化方法和面向对象方法。 9. 软件工程师职业道德规范的8组关键词是什么?1999年由ACM/IEEE-CS软件工程师道德规范和职业实践(SEEPP)联合工作组制订了《软件工程师职业道德规范》,规范含有8组由关键词命名的准则:公众、客户和雇主、产品、判断、管理、专业、同行、自身。 10. 职业化软件工程师要注意的十大问题是什么?答:①高质量地完成任务②遵守行业标准,不能肆意按照自己的想象来发挥③积极帮助他人④版权意识敏感⑤严格遵守计划⑥公私分明⑦注意知识更新⑧善于沟通⑨遵守职业规则⑩诚实和正直。 第3章本章的题型主要是选择题。 1. 可行性研究的目的是什么?答:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2. 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。 3. 可行性研究的实质:是要进行一次简化了的系统分析和设计过程。首先要分析和澄清问题定义,导出系统的逻辑模型,探索若可供选择的方案,对每种方案仔细研究它的可行性。推荐一个较好的解决方案和一个初步的计划。 第4,5章本章的题型有选择题。 2. 什么是需求工程?需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。

软件工程专业基础综合

《软件工程专业基础综合》考试大纲 第一部分数据结构与算法 考试题型:问答、分析、编程 总分:60分 一、栈(Stack)、队列(Queue)和向量(Vector) 内容: 单链表,双向链表,环形链表,带哨兵节点的链表; 栈的基本概念和性质,栈ADT及其顺序,链接实现;栈的应用;栈与递归; 队列的基本概念和性质,队列ADT及其顺序,链接实现; 队列的应用; 向量基本概念和性质;向量ADT及其数组、链接实现; 二、树 内容: 树的基本概念和术语;树的前序,中序,后序,层次序遍历; 二叉树及其性质;普通树与二叉树的转换; 树的存储结构,标准形式; 完全树(complete tree)的数组形式存储; 树的应用,Huffman树的定义与应用; 三、查找(search) 内容: 查找的基本概念;对线性关系结构的查找,顺序查找,二分查找; Hash查找法,常见的Hash函数(直接定址法,随机数法), hash冲突的概念, 解决冲突的方法(开散列方法/拉链法,闭散列方法/开址定址法),二次聚集现象; BST树定义,性质,ADT及其实现,BST树查找,插入,删除算法;

平衡树 (AVL) 的定义,性质,ADT及其实现,平衡树查找,插入算法,平衡因子的概念; 优先队列与堆,堆的定义,堆的生成,调整算法;范围查询; 四、排序 内容: 排序基本概念;插入排序,希尔排序,选择排序,快速排序,合并排序,基数排序等排序算法基本思想,算法代码及 基本的时间复杂度分析 五、图 内容:图的基本概念;图的存储结构,邻接矩阵,邻接表;图的遍历,广度度优先遍历和深度优先遍历;最小生成树基本概念, Prim算法,Kruskal算法;最短路径问题,广度优先遍历算法,Dijkstra算法,Floyd算法;拓扑排序 第二部分计算机系统基础 考试题型:问答、分析、编程 总分:40分 一、处理器体系结构 内容:CPU中的时序电路、单周期处理器的设计、流水线处理器的基本原理、Data Hazard的处理、流水线设计中的其他问题 二、优化程序性能 内容:优化程序性能、优化编译器的能力和局限性以及表示程序性能、特定体系结构或应用特性的性能优化、限制因素、确认和消除性能瓶颈 三、存储器结构及虚拟存储器 内容:局部性、存储器层级结构、计算机高速缓存器原理、高速缓存对性能的影响、地址空间、虚拟存储器、虚拟内存的管理、翻译和映射、TLB、动态存储器分配和垃圾收集 四、链接、进程及并发编程

软件工程复习提纲(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.需求描述有哪几种工具?你喜欢哪一种,为什么?

软件工程综合练习题

《软件工程》课程练习题 第一章软件工程概述 一、选择题 1、瀑布模型本质上是一种()。 A、线性迭代模型 B、顺序迭代模型 C、线性顺序模型 D、及早见产品模型 2、计算机辅助软件工程,简称()。 A、SA B、SD C、SC D、CASE 3、以下判断正确的是()。 A、所谓软件开发就是编写程序。 B、利用软件工程的思想,已成功的解决了软件危机。 C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。 D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。 4、_____是以提高软件质量为目的的技术活动。 A.技术创新 B.测试 C.技术创造 D.技术评审 5、瀑布模型的存在问题是()。 A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 6、软件生命周期中所花费用最多的阶段是()。 A.详细设计 B.软件编码 C.软件测试 D.软件维护 7、计算机系统就是() A.主机,显示器,硬盘,软驱,打印机等。 B.CPU,存储器,控制器,I/O接口及设备。 C.计算机硬件系统和软件系统。 D.计算机及其应用系统。 8、产生软件危机的原因主要与两个方面的问题有关: A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。 C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。 D.软件很难理解,硬件也很复杂。 9、软件开发瀑布模型中的软件定义时期各个阶段依次是() A.可行性研究,问题定义,需求分析。 B.问题定义,可行性研究,需求分析。 C.可行性研究,需求分析,问题定义。 D.以上顺序都不对。 10、下列选项中()是软件开发中存在不正确的观念、方法。 A.重编程、轻需求 B.重开发,轻维护 C.重技术,轻管理 D.以上三条都是 二、填空题 1、软件工程的三个基本要素包括()、()和()。 2、一般软件应该有三部分组成:()、()和()。 3、按软件的功能可将软件分成()、()和()等三类。 4、计算机软件的生存期可以分为六个步骤,它们是()、()()、()、软件测试和运行/维护。 5、软件质量是与软件产品满足规定的和隐含的需求的能力有关的()的全体。 6、软件危机是指在()所遇到的一系列严重问题。 7、程序设计时代的生产方式是个体手工,程序系统时代的生产方式是作坊式小团体,软件工程时代的生产方式是()。 8、喷泉模型是一种以需求分析为动力,以()为驱动的模型。 三、名词解释 1、CASE 2、软件工程 3、计算机软件 2、软件生存期 四、简答题 1、什么是软件危机?其主要表现有那些? 2、程序的可移植性 3、为什么说“CASE领域是一个应用、集成和综合的领域”?

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

电子科技大学2018年《软件工程学科基础综合 》硕士研究生考研大纲_电子科技大学考研网

电子科技大学2018年《软件工程学科基础综合》硕士研究生考研大 纲 考试科目860软件工程学科基础综合考试形式笔试(闭卷) 考试时间180分钟考试总分150分 一、总体要求 《软件工程学科基础综合》包括《软件工程》和《网络技术》两门课程,其中《软件工程》要 求考生了解软件工程的基本知识和方法,熟悉软件工程的主要环节,掌握最基础的软件工程理论方法,并能应用到实际的软件项目开发中。《网络技术》要求学生掌握计算机网络的基本概念、基本原理和基本方法;掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理;能够运用计算机网络的基本概念、基本原理和基本方法进行网络系统的分析、设计和应用。两门课程各占总分的50%。 二、内容 《软件工程》考试内容如下: 1.基本概念 重点是软件的特性、软件工程学的研究范畴,以及学习软件工程的意义。掌握软件的概念、特 点和软件工程的基本特征;理解为什么学习软件工程、如何学习。主要知识点: 1)软件的概念和特点 2)软件危机的概念和产生的原因 3)软件工程的定义、三要素和发展过程 2.过程模型 重点是各种实用的软件过程模型,以及不同过程模型的特点比较。掌握几种典型模型的优缺点 和能依据项目特征选择使用不同的模型;理解为什么有不同的模型、不同模型的特征。主要知识点: 1)软件生命周期概念、软件过程概念、能力成熟度模型CMM概念 2)常见的几种软件过程模型:瀑布、增量、原型、螺旋、喷泉等,比较各自优缺点 3.需求分析 重点是需求分析的一般步骤、数据流图、用例图、活动图、需求规格说明文档的编制。掌握结 构化分析模型的导出、数据流图/用例图/活动图的基本画法和需求规格说明文档的编制;理解需求分析的过程、主要步骤。主要知识点: 1)需求分析的概念 2)需求分析的过程:需求确认与需求变更 3)需求确认的步骤:需求获取→需求提炼→需求描述→需求验证 4)需求分析三类建模:功能模型、数据模型、行为模型。面向过程和面向对象的需求分析过 程中,三类模型各包含哪些内容? 5)掌握数据流图和用例图作法。 4.系统设计 重点是面向数据流的设计方法、面向对象的设计方法、过程设计的常用工具。掌握软件设计的 主要技术、主要内容和主要方法,能根据具体项目进行模块划分和软件架构设计;理解软件设计和需求分析之间的相互关系。主要知识点: 1)系统设计分为概要设计和详细设计 2)与设计相关的8个概念:抽象、体系结构、设计模式、模块化、信息隐藏、功能独立、细 化、重构。其中,着重考察体系结构、模块化、信息隐藏、功能独立。

软件工程期末复习填空题

软件工程填空题 1、软件危机是指在计算机软件的_开发和维护_过程中所遇到的一系列严重问题。 2、软件危机包含下述两个方面的问题:一是 _如何开发软件,以满足对软件日益增长的需求;二是_如何维护数量不断膨胀的已有软件_。 3、软件不同于硬件,它是计算机系统中的_逻辑部件_而不是物理部件。 4、一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把这个漫长的时期称为__生命周期__。 5、软件配置主要包括 __程序、文档_和_数据_ 等成分。 6、软件工程学的一个重要目标就是提高软件的 _可维护性、减少 _软件维护_ 的代价。 7、软件工程是指导计算机软件 __软件开发_ 和 __维护_ 的一门工程学科。 8、软件工程包括 _技术_ 和 __管理__ 两方面的内容,是技术与管理紧密结合所形成的工程学科。 9、通常把在软件生命周期全过程中使用的一整套技术方法的集合称为 _方法学_ ,也称为范型。 10、软件工程方法学包含_方法、工具和_过程_ 三个要素。 11、目前使用最广泛的软件工程方法学,分别是 _传统方法学和面向对象方法学 __ 。 12、概括地说,软件生命周期由 _软件定义_ 、 __软件开发_ 和 __运行维护(软件维护)__ 3个时期组成,每个时期又进一步划分为若干个阶段。 13、软件定义时期通常进一步划分为3个阶段,即 _问题定义__ 、 __可行性研究__ 和需求分析。、 14、螺旋模型将 _瀑布、_ 模型和 __快速原型_ 模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。 15、瀑布模型 _不能_ 适应需求可变的软件开发,只有到 _开发结束_ 才能见到整个软件系统。 16、可行性研究阶段当从系统逻辑模型出发,探索若干种可供选择的主要解法,对每种解法都应该从 __技术可行性、经济可行性_和 _操作可行性__ 这三个方面研究每种解法的可行性。

软件工程复习知识点

1.软件危机的概念,内容,原因及消除的途径;软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。概括地说,软件危机包含两方面问题: 如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。软件危机产生的原因: 软件本身的复杂性、难衡量的特点; 2. 软件开发与维护的方法不正确。消除软件危机的途径: (1)对计算机软件应当有一个正确的认识; (2)应当有组织、有计划、通过严格的管理手段进行软件的开发; (3)及时总结软件开发的成功技术和方法并加以推广; (4)开发和使用更好的软件工具; 总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。 2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。基本原理:软件工程的7 条基本原理: (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚地审查 6)开发小组的人员应该少而精 7) 承认不断改进软件工程实践的必要性 3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一

整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3 个要素:方法、工具和过程。 内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。 4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做 软件项目主要分那几个个阶段。 ①问题定义:确定要求解决的问题是什么 ②可行性研究:决定该问题是否存在一个可行的解决办法 ③需求分析:深入了解用户的要求,在要幵发的目标系统必须做什么问题和用户取得完全一致的看法。 ④概要设计:概括回答怎样实现目标系统。概要设计又叫逻辑设计、总体设计、高层设计。 ⑤详细设计:把解法具体化,设计出程序的详细规格说明。详细设计也叫模块设计、底层设计。 ⑥编码和单元测试:编写程序的工作量只占软件幵发全部工作量的10沧20%。 ⑦综合测试:软件测试的工作量通常占软件幵发全部工作量的40沧50%。 ⑧软件维护:软件维护的费用通常占软件总费用的55 %-70% ①②③为软件定义时期,④⑤⑥⑦为软件幵发阶段。④⑤为系统设计,⑥⑦为系统实现。 5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、 螺旋模型、喷泉模型等;瀑布模型内容:瀑布模型是带“反馈环”的。优点:(1)可强迫开发人员采用的规范的方法(结构化技术)。 (2)严格地规定了每个阶段必须提交的文档。

软件工程综合应用复习

8..什么是模块的控制域?什么是模块的作用域?并对比分析题32图中3个模块结构图的优劣。 说明:图中的菱形块代表判定所在的位置,灰色的模块为受该判定影响的模块。 模块的控制域:这个模块本身以及所有直接或间接从属它的模块的集合。 模块的作用域:受该模块内一个判断所影响的所有模块的集合。 原则:尽量使模块的作用域在其控制域内。 从题32图中可以看出,A、B中由于模块D和TOP的作用域超出了其控制域。 C中,模块D的作用域在其控制域内,是最好的模块结构。 1.一个简化的机票销售系统需求描述如下: 售票员根据旅客需要的航班,首先查询有无该航班机票。若有,则负责录入旅客的基本信息,并将指定的机票标志设置为售出;售票部经理可随时查询每一个航班的售票情况,并在当日结算时能计算出日营业额。 请画出该系统的0层DFD图和1层DFD图(注:1层分解为查询和录入、统计和计算两个处理)。 2.设被测试的程序段为: begin s1; if(x=1)and(y>3) then s2; if(x<2)or(y=2) then s3; s4; end

可供选择的测试用例为: 请分别找出实现语句覆盖、条件覆盖、分支覆盖最少所需的测试用例及其对应的编号。 语句覆盖:A 条件覆盖:A,B,C,D 分支覆盖:A,B 3.是银行活期存取款业务处理系统的数据流图,请根据图示完成以下填空: (1)数据源或数据潭包括:________; (2)加工包括:________; (3)数据存储包括:________; (4)“业务分类”的输入流是:________; (5)“业务分类”的输出流是:________。 4.有一个程序: 输入3个整数ABC,把这3个数看成是一个三角形的3条边。这个程序要输出信息,来说明这个三角形的几种情况:是三边不等的、是等腰的、还是等边的。 请根据给出的说明,用等价类划分法设计该问题的测试用例(要求写出设计过程)。 根据三角形的特点:两边之和大于第三边 有效等价类为:A+B>C且A+C>B且B+C>A 无效等价类为:A+B<=C或A+C<=B或B+C<=A 等腰三角形:存在两边相等 等边三角形:三条边都相等。 测试用例:

辽师软件工程期末复习题

说明: 以下试题虽然经过多次整理,但由于时间有限,存在错误或不足之处在所难免。同学们在阅读和使用过程中如发现问题,请你在课程评价的“建议”中指出,具体方法是: 写明大小题号:问题所在;正确内容。 在此谢谢你提供的方便和指正。 一、概念题 1、软工程:是1)将系统性的、规范化的、可定量的方法应用于软件的开发、 运行和维护,即将工程化应用到软件上;2)对1)中所述方法的研究。 2、软件:是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。 3、软件危机:是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 4、软件过程:是软件工程人员为了获得软件产品而在软件工具的支持下实施的 一系列软件工程活动。 5、基线:是已经通过了正式复审的规格说明或中间产品,它可以作为进一步开 发的基础,并且只有通过正式的变化控制过程才能改变。 6、软件配置项:是为配置管理而作为单独实体处理的一个工作产品或软件。 7、对象:是系统中用来描述客观事物的一个实体,它是构成系统给的一个基本 单位,有一组属性和对这组属性进行操作的一组服务组成。 8、软件过程模型:是描述软件过程的整体框架,它是软件过程的一种抽象表示。 9、类:是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提 供了统一的抽象描述,其内部包括属性和服务两个主要部分。 10、实体类:用于描述必须存储的信息及其相关行为,它是对系统核心信息的建 模,通常这些信息需要长久地保存。 11、版本:是确定在明确定义的时间点上某个配置项的状态。

12、耦合度:是表示两个子系统之间的关联程度。当一个子系统发生变化时对另 一个子系统的影响很小,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。 13、软件需求:1)用户解决问题或达到目标所需要的条件或能力。2)系统或系 统部件要满足合同、标准、规范或其他正式规定文档所需要具有的条件或能力。3)一种反映上面1)或2)所描述的条件或能力的文档说明。 14、软件实现:是软件产品由概念到实体的一个关键过程,它将详细设计的结果 翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。 15、内聚性:是子系统内部的相关程度。当子系统中彼此相关的多个对象执行类 似的任务时,则认为该子系统是高内聚的;反之,当子系统内的多个对象彼此不相关时,则认为是低内聚的。 16、软件验证:是指试图证明在软件生存期各个阶段,软件产品或中间产品是否 能够满足客户需求,包括逻辑协调性、完备性和正确性。 17、软件测试:广义上讲,测试是指软件产品生存周期内所有的检查、评审和确 认活动。狭义上讲,测试是对软件产品质量的检查和评价,它一方面检查软件产品中存在的质量问题,同时对产品质量进行客观的评价。 18、软件再工程:是以系统理解为基础,结合逆向工程、重构和正向工程等方法, 将现有系统重新构造成为新的形式。 19、软件确认:是一系列的活动和过程,其目的是保证软件产品能够符合其描述 要求。 20、软件维护:是指在软件运行或维护阶段对软件产品所进行的修改,做这些修 改时可能改正软件中的错误,也可能是增加新的功能以适应新的需求,但是

软件工程导论第五版复习重点(必考题)

(最后部分为每年必考题) 第一章 1. .软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的. 2. 软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。 3. 产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 4. 面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。4.对象彼此间仅能通过发送消息互相联系。 5. 软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要) 6. 瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。 7. 微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。 第二章 1.可行性包括:技术可行性,经济可行性,操作可行性。 2. 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形势描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。4. 书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示。 5. 用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。有数据元素组成的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次

河北工业大学软件工程期末复习

软件工程期末复习总结 第一讲概述(选择U填空U简答) 1.1 软件工程的研究内容 软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题 软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题 1.2 什么是软件? 软件包括:---软件的内涵 ①能够提供客户所需功能与性能的计算机程序; ②使程序能够适当的操作信息的数据结构; ③用以描述程序开发过程及使用的文档。 软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。 软件产品可以分成: 一个新的软件并不一定是全新开发,可以由现有软件或可复用软件成分配置形成。 1.3 什么是软件工程? 软件工程是涉及软件生产各个方面的一门工程学科 软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。 软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法. ——IEEE[IEE93] 1.4 什么是成功的软件项目 一个成功软件项目的三个要素包括: 按时交付不超预算满足用户要求。 1.5 软件过程与软件生命周期的相关概念 软件过程是指开发或制作软件产品的一系列活动及其成果. 所有的软件过程中都包括四个基本活动:(填空) 1. 描述( Specification)- 系统应该提供的功能及其开发约束; 2. 开发( Development)- 软件产品的生产过程; 3. 有效性验证(Validation )- 检验软件产品是否满足了客户的需要; 4. 进化( Evolution )- 按照用户的变更要求不断的改进软件。 软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。 1.6什么是优良软件的属性? P8 (填空U选择) 优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:(选择题,考法内涵匹配) 可维护性(Maintainability) Software must evolve to meet changing needs; 可依赖性(Dependability) Software must be trustworthy;

软件工程复习题复习重点及答案

软件工程复习重点 一、选择题 1、软件工程三要素是指( B )P8 A、技术、方法和工具 B、方法、工具和过程 C、方法、对象和类 D、过程、模型、方法 2、瀑布模型本质上是一种( A )。P23 A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 3、结构化设计是一种应用最广泛的系统设计方法,是以( B )为基础,自顶向下,求精和模块化的过 程。P79 A、数据流 B、数据流图 C、数据库 D、数据结构 4、概要设计的任务是设计系统的( B物理模型)P70 A、逻辑模型 B、物理模型 C、概念模型 D、程序流程图 5、描述软件结构的工具有( A模块结构图) A、模块结构图 B、PAD图 C、数据流程图 D、程序 6、进行需求分析可以使用多种工具,但( C )是不适用的。 A、数据流程图 B、判定表 C、PAD图(详细设计) D、数据字典 7、可行性研究要进行的需求分析和设计应该是( C )。 A、详细的 B、全面的 C、简化的、压缩的 D、彻底的 8、软件生命周期由( C )三个时期组成。 A、概要设计、详细设计和系统实现 B、可行性分析、系统设计和编码 C、定义、开发和运行维护 D、分析、设计和测试 9、以下( D )不是模块。对象是一个实体 A、过程 B、程序 C、函数 D、对象 10、程序流程图、N-S图和PAD图是( B )使用的算法表达工具。 A、设计阶段的概要设计 B、设计阶段的详细设计 C、编码阶段 D、测试阶段 11、一个模块直接控制(调用)的下层模块的数目称为模块的( B扇出)P78 A、扇入数 B、扇出数 C、宽度 D、作用域 12、下列工具哪一个是需求分析阶段常用工具?( D ) A、PAD B、PFD C、N-S D、DFD数据流程图 需求分析常用的是数据流程图和数据字典 13、为了提高测试的效率,应该( D) A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据库 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 14、成功的测试是指( B发现程序的错误) A、运行测试实例后未发现错误项 B、发现程序的错误 C、证明程序正确 D、改正程序的错误 15、软件工程中只根据程序的功能说明而不关心程序内部的逻辑结构的测试方法,称为( C黑盒测试)

软件工程期末复习要点归纳总结

第一章软件工程学概论 1、软件危机产生的原因 软件本身的特点:难于维护、逻辑复杂 软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护 课本表述: 1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件 2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的 增加而呈现指数上升。 3、软件本身特有的特点确实给开发和维护带了一些客观困难 4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护) 5、对用户要求没有完整准确的认识就匆忙开始着手编写程序 6、( 7、在软件不同阶段进行修改需要付出的代价是很不相同的 2、软件危机的表现(什么是软件危机) (1)、成本高: (2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多 (3)、进度难以控制: ●项目延期比比皆是 ●由于进度问题而取消的软件项目较常见 ●只有一小部分的项目能够按期完成 (4)、维护十分困难: ▼软件维护的多样性 ¥ ▼软件维护的复杂性 ▼软件维护的副作用 3、克服软件危机 (1)、管理的角度: 软件开发过程的研究、文档的标准化以及人员的交流方式等 (2)、软件开发方法的研究 结构化软件开发方法, 面向对象的开发

4、软件工程的定义 概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 (1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。 % (2)、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径 总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。 5、软件工程的本质特性 1、关注与大型程序的构造 2、中心课题是控制复杂度 3、软件经常变化 4、开发软件的效率非常重要 5、和谐的合作是开发软件的关键 6、软件必须有效地支持它的用户 7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品 ~ 6、软件工程的基本原理 1、用分阶段的生命周期计划严格管理 2、坚持进行阶段评审 3、实行严格的产品控制 4、采用现代程序设计技术 5、结果应能清楚地审查 6、开发小组应该少而精 7、承认不断改进软件工程实践的必要性 软件工程学包含3个要素:方法、工具和过程

软件工程(研)复习提纲答案

复习提纲 第一章软件工程概述 1、分析60年代末出现的软件危机的原因。如何理解“越早潜伏的错误越晚发现,越晚发现的错误,修正的费用越高”。 答:软件危机是指在软件开发过程中遇到的一系列严重问题,如:开发周期延长,成本增加,可靠性降低等。 开发大型软件与编制小程序主要有以下区别: ⑴人员:小程序从确定要求、设计、编制、使用,直到维护通常由一个人完成;大型 软件则由用户、项目负责人、分析员、程序员、资料员、操作员等组成一支开发队伍来协同完成。 ⑵文档:小程序很少有书面文档;大型软件则是集体劳动的“产物”,必须有规范化 的文档,便于开发和维护。 ⑶产品。小程序工作量小,如果需作大的修改,可舍弃旧程序而重新编写;但大型软 件的开发耗费了大量的人力与物力,一般不会轻易抛弃,而总是在旧软件的基础上一再改动,以延长它的使用期,因此“版本”在不断升级。 大型软件的开发提出了许多新的问题,而开发方法却还停留在编制小程序的方法上,经验和技巧已不能满足开发大型软件的需要,导致软件开发过程混乱;使用的开发方法和技术不当,没有适当的文档,不易交流,维护困难,开发成本高,软件质量低等,这些问题是造成软件危机的主要原因。 2、软件复用的概念及两类软件复用技术:合成技术和生成技术。 答:软件复用是指在构造新的软件系统过程中,对已存在的软件产品(设计结构、源代码、文档等)重复使用的技术。 (1)合成技术 利用部件(component,组件,构件)合成软件系统的技术。 部件是可复用的一小段软件(可为二进制形式),可以是对某一函数、过程、子程序、数据类型、算法等可复用软件成分的抽象,封装了功能细节和数据结构,有详细的接口。 (2)生成技术 利用可复用的模式,通过生成程序产生一个新的程序或程序段,产生的程序可以看成是模式的实例。 可复用的模式有两种:代码模式和规则模式。 ①代码模式 可复用的代码模式存在于应用生成器中,通过特定的参数替换,生成抽象软件模块的具体实体。各种程序生成器。

相关文档
相关文档 最新文档