当前位置:文档之家› 软件工程复习资料

软件工程复习资料

一、单选题(共20题,40分)

1、使用数据流图,并不断细化的需求获取方法是()。(2.0)

A、简易的应用规格说明

B、面向数据流自顶向下逐步求精

C、访谈

D、快速原型法

正确答案: B

2、Z语言是以()为基础的形式化规格说明语言。(2.0)

A、微积分

B、概率

C、图形

D、一阶谓词演算

正确答案: D

3、HIPO是指

(2.0)

A、层次输入处理输出图或表

B、层次功能结构图

C、功能结构图

D、输入处理输出图或表

正确答案: A

4、高铁调用系统最适宜采用()方法。(2.0)

A、有穷状态机

B、 Petri网

C、 Z语言

D、一阶线性时态逻辑

正确答案: B

5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。(2.0)

A、可划分为2个有效等价类,2个无效等价类

B、可划分为1个有效等价类,2个无效等价类

C、可划分为2个有效等价类,1个无效等价类

D、可划分为1个有效等价类,1个无效等价类

正确答案: B

6、用于并发系统,解决定时问题的形式化方法是()。(2.0)

A、 VDM

B、 Z语言

C、 Petri网

D、一阶线性时态逻辑

正确答案: C

7、软件生命周期中所花费费用最多的阶段是

(2.0)

A、需求分析

B、软件总体设计

C、软件维护

D、软件实现

正确答案: C

8、软件质量保证措施SQA不包括:

(2.0)

A、复审或评审

B、

软件测试

C、程序正确性证明

D、

软件代码编写

正确答案: D

9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。(2.0)

A、单元测试

B、有效性测试

C、确认测试

D、集成测试

正确答案: C

10、总体设计不包括:(2.0)

A、体系结构设计

B、数据库设计

C、模块内算法设计

D、逻辑数据结构设计

正确答案: C

11、关于类和对象的说法,正确的是

(2.0)

A、一个类只能有一个角色

B、类的命名必须用动词

C、类的所有对象都具有相同的属性和操作

D、类是对象的实例,对象是类的抽象

正确答案: C

12、数据字典的基本功能是

(2.0)

A、数据库设计

B、数据通信

C、数据定义

D、数据维护

正确答案: C

13、软件需求规格说明的内容不应该包括

(2.0)

A、主要功能

B、算法的描述

C、用户界面及其运行环境

D、软件性能

正确答案: B

14、增量模型在添加新的模块时,有一个要求是()(2.0)

A、需要更多的测试

B、有足够的开发人员

C、软件体系结构开放

D、各个模块都要进行评审

正确答案: C

15、在软件详细设计过程中不采用的工具是

(2.0)

A、判定表

B、PDL

C、程序流程图

D、DFD

正确答案: D

16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试

(2.0)

A、结构合理性

B、

软件外部功能

C、

程序正确性

D、程序内部逻辑

正确答案: B

17、耦合是模块之间的相对独立性的度量。耦合程度不取决于:(2.0)

A、调用模块的调用方式

B、各个模块之间接口的复杂程度

C、通过接口的信息类型

D、模块提供的功能数

正确答案: D

18、与用户获取需求的方法中,使用分发调查表的是

(2.0)

A、快速原型

B、

简易的应用规格说明

C、访谈

D、自顶向下逐步求精的数据流程图

正确答案: C

19、软件测试的目标是

(2.0)

A、证明软件是正确的

B、发现错误、降低错误带来的风险

C、排除软件中所有的错误

D、与软件调试相同

正确答案: B

20、虚拟作业,事实上并不存在的作业,表示( )(2.0)

A、作业的结束

B、依赖关系

C、作业的开始

D、持续时间

正确答案: B

二、多选题(共5题,10分)

1、一个设计地比较好的面向对象系统具有()特征。(2.0)

A、低内聚

B、高内聚

C、低耦合

D、高耦合

正确答案: BC

2、数据流图中对数据存储的描述正确的是()。(2.0)

A、动态的数据

B、一个文件

C、文件的一部分

D、数据的元素

正确答案: BCD

3、要获取用户需求,起关键作用的参与者是()。(2.0)

A、用户

B、程序员

C、分析员

D、项目主管

正确答案: AC

4、形式化方法中,基于代数的描述方法是()(2.0)

A、有穷状态机

B、 Petri网

C、 Z语言

D、 VDM

E、一阶线性时态逻辑

正确答案: CD

5、有穷状态机包括以下部分()。(2.0)

A、有穷非空状态集

B、有穷非空输入集

C、由状态到输入的转换函数

D、一个初始状态

E、终态集

正确答案: ABCDE

三、判断题(共10题,20分)

1、内聚标志一个模块内各个元素彼此结合的紧密程度,功能内聚的内聚性是最高的。(2.0)正确答案:正确

2、响应时间要求在需求分析中属于功能需求。(2.0)

正确答案:错误

3、软件设计优化应该力求做到在有效的模块化的前提下使用最少量的模块。(2.0)

正确答案:正确

4、多态存在的必要条件是:继承、重写、特殊类的引用指向一般类的对象。

(2.0)

正确答案:错误

5、软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。

(2.0)

正确答案:正确

6、在一个设计得很好的系统中,模块的控制域应该在作用域之内。(2.0)

正确答案:错误

7、简易的应用规格说明技术,开发者与用户不分彼此,齐心协力,密切协作。(2.0)

正确答案:正确

8、判定覆盖是指语句覆盖的基础上,每个判定的每个分支至少执行一次。(2.0)

正确答案:正确

9、极限编程具有对变化和不确定性的更快速、更敏捷的反应特性.(2.0)

正确答案:正确

10、采用面向对象的思想,用属性表示事物的动态特征,操作表示事物的静态特征。(2.0)正确答案:错误

一、单选题(共20题,40分)

1、约占全部维护活动的4%的维护是

(2.0)

A、改正性维护

B、

完善性维护

C、适应性维护

D、预防性维护

正确答案: D

2、HIPO的含义是:(2.0)

A、层次、输入、处理、输出

B、高速、信息、程序、目标

C、顶层的IPO图

D、关于输入、处理、输出的层次

正确答案: A

3、HIPO是指

(2.0)

A、层次输入处理输出图或表

B、层次功能结构图

C、功能结构图

D、输入处理输出图或表

正确答案: A

4、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],先从输入的角度考虑了一组测试用例:-1.001,-1.0,1.0,1.00设计这组测试用例的方法是:

(2.0)

A、条件覆盖法

B、等价划分法

C、错误推测法

D、边界值分析法

正确答案: D

5、描述作为外部事件结果的软件行为,要求建立()(2.0)

A、数据模型

B、功能模型

C、行为模型

D、静态模型

正确答案: C

6、写代码属于软件开发的()个阶段。(2.0)

A、软件定义

B、软件实现

C、软件总体设计

D、软件维护

正确答案: B

7、封装是把对象的()结合在一起,形成一个独立的单元。

(2.0)

A、属性和操作

B、信息流

C、消息和事件

D、数据的集合

正确答案: A

8、现实世界中客观存在的任何事物都可以被看作是()。(2.0)

A、类

B、对象

C、属性

D、系统

正确答案: B

9、以下白盒测试技术,覆盖能力最强的是

(2.0)

A、条件组合覆盖

B、判定覆盖

C、条件覆盖

D、语句覆盖

正确答案: A

10、基线就是通过了正式复审的()。(2.0)

A、软件

B、软件配置项

C、相关文档

D、数据

正确答案: B

11、软件开发的不同阶段进行修改需要付出的代价是不同的,后期引入变动的话,付出的代价要()(2.0)

A、剧小

B、剧增

C、变化不大

D、较小

正确答案: B

12、下面说法哪个不属于设计准则:(2.0)

A、提高模块的内聚,降低模块间的耦合

B、降低模块接口的复杂程度

C、模块大小要适中

D、模块要有重用性

正确答案: D

13、关于模块的作用域和控制域说法正确的是:(2.0)

A、模块的作用域在模块的控制域之内

B、模块的控制域在模块的作用域之内

C、模块的作用域和模块的控制域相同

D、模块的作用域和模块的控制域都是一种层次结构

正确答案: A

14、以下关于模块化设计的叙述中,不正确的是:(2.0)

A、尽量考虑高内聚、低耦合,保持模块的相对独立性

B、模块的控制范围在其作用范围内

C、模块的规模适中

D、模块的宽度、深度、扇入和扇出适中

正确答案: B

15、软件需求规格说明的内容不应该包括

(2.0)

A、主要功能

B、算法的描述

C、用户界面及其运行环境

D、软件性能

正确答案: B

16、有穷状态机不包括

(2.0)

A、状态集

B、输入集

C、转换函数

D、标记

正确答案: D

17、Jackson方法是一种面向()的方法

(2.0)

A、对象

B、数据结构

C、数据流

D、控制流

正确答案: B

18、约占全部维护活动的50~66% 的维护是

(2.0)

A、改正性维护

B、

完善性维护

C、

适应性维护

D、预防性维护

正确答案: B

19、耦合是模块之间的相对独立性的度量。耦合程度不取决于:(2.0)

A、调用模块的调用方式

B、各个模块之间接口的复杂程度

C、通过接口的信息类型

D、模块提供的功能数

正确答案: D

20、软件是

(2.0)

A、处理对象和处理规则的描述

B、程序

C、程序、数据及其文档的集

D、计算机系

正确答案: C

二、多选题(共5题,10分)

1、调试的方法包括()。(2.0)

A、对分法

B、回溯法

C、试探法

D、错误推测

正确答案: ABC

2、实体联系图中的基本成分有()。(2.0)

A、实体

B、联系

C、属性

D、关键字

E、属性值

正确答案: ABC

3、JavaBean构件系统具有以下特征()。(2.0)

A、可移植

B、平台独立

C、使用C++语言开发

D、基于构件

正确答案: ABD

4、Rational 统一过程(RUP)核心支持工作流有()。(2.0)

A、业务建模

B、项目管理

C、配置与变更管理

D、环境

正确答案: BCD

5、要获取用户需求,起关键作用的参与者是()。(2.0)

A、用户

B、程序员

C、分析员

D、项目主管

正确答案: AC

三、判断题(共10题,20分)

1、实体关系图描述数据对象及数据对象之间的关系,是用于建立数据模型的图形。

(2.0)

正确答案:正确

2、软件体系结构是软件需求分析阶段的一种工作产品。(2.0)

正确答案:错误

3、用况图是一种结构图。(2.0)

正确答案:错误

4、瀑布模型的特点是不带反馈环。(2.0)

正确答案:错误

5、模块内部各成分联系越紧,即内聚程度越大,模块独立性就越强,系统就越容易理解和维护。

(2.0)

正确答案:正确

6、形式化规格说明建模之后,进行形式化验证。(2.0)

正确答案:正确

7、采用面向对象的方法进行分析和设计,在整个过程中都紧紧围绕着对象和类进行。(2.0)

正确答案:正确

8、主程序员组的组织方式切合实际。(2.0)

正确答案:错误

9、逻辑模型表达了系统分析员对新系统必须作什么工作、完成什么任务的理解。(2.0)

正确答案:正确

10、极限编程具有对变化和不确定性的更快速、更敏捷的反应特性.(2.0)

正确答案:正确

一、单选题(共20题,40分)

1、版本控制是指联合使用规程和工具,以管理在软件工程过程中所创建的配置对象的()。(2.0)

A、相关文档

B、软件配置项

C、不同版本

D、数据

正确答案: C

2、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],先从输入的角度考虑了一组测试用例:-1.001,-1.0,1.0,1.00设计这组测试用例的方法是:

(2.0)

A、条件覆盖法

B、等价划分法

C、错误推测法

D、边界值分析法

正确答案: D

3、描述作为外部事件结果的软件行为,要求建立()(2.0)

A、数据模型

B、功能模型

C、行为模型

D、静态模型

正确答案: C

4、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。(2.0)

A、可划分为2个有效等价类,2个无效等价类

B、可划分为1个有效等价类,2个无效等价类

C、可划分为2个有效等价类,1个无效等价类

D、可划分为1个有效等价类,1个无效等价类

正确答案: B

5、一位同学学多门课程,任意一门课程可以由多个同学学习,这个关系是()。(2.0)

A、一对一

B、一对多

C、多对多

D、都不是

正确答案: C

6、详细设计的任务是确定每个模块的

(2.0)

A、内部特征

B、外部特征

C、算法和使用的数据

D、功能和输入输出数据

正确答案: C

7、软件生命周期中所花费费用最多的阶段是

(2.0)

A、需求分析

B、软件总体设计

C、软件维护

D、软件实现

正确答案: C

8、假设月收入≤5000元者免税,现用5000元和5001元作为测试数据,所采用的是()。(2.0)

A、等价类划分

B、边界值分析

C、条件覆盖

D、路径覆盖

正确答案: B

9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。(2.0)

A、单元测试

B、有效性测试

C、确认测试

D、集成测试

正确答案: C

10、下面说法哪个不属于设计准则:(2.0)

A、提高模块的内聚,降低模块间的耦合

B、降低模块接口的复杂程度

C、模块大小要适中

D、模块要有重用性

正确答案: D

11、关于模块的作用域和控制域说法正确的是:(2.0)

A、模块的作用域在模块的控制域之内

B、模块的控制域在模块的作用域之内

C、模块的作用域和模块的控制域相同

D、模块的作用域和模块的控制域都是一种层次结构

正确答案: A

12、数据字典的基本功能是

(2.0)

A、数据库设计

B、数据通信

C、数据定义

D、数据维护

正确答案: C

13、以下关于模块化设计的叙述中,不正确的是:(2.0)

A、尽量考虑高内聚、低耦合,保持模块的相对独立性

B、模块的控制范围在其作用范围内

C、模块的规模适中

D、模块的宽度、深度、扇入和扇出适中

正确答案: B

14、封装实现了(),使对象的生产者和使用者分离,使对象的定义和实现分开。(2.0)

A、系统维护

B、工程化

C、信息隐藏

D、模块化

正确答案: C

15、用数据流图对工资系统进行需求分析建模,外部实体是

(2.0)

A、接受工资单的银行

B、工资系统代码

C、工资单

D、工资数据库维护

正确答案: A

16、以一阶谓词演算为主要理论基础的规约语言,是一种功能性语言,它是

(2.0)

A、Z语言

B、有穷状态机

C、Petri网

D、通信顺序进程

正确答案: A

17、数据流图和数据字典共同构成了系统的()。(2.0)

A、物理模型

B、原型

C、目标模型

D、逻辑模型

正确答案: D

18、订货系统应该能够产生订货报表,这是软件的()。(2.0)

A、性能需求

B、功能需求

C、设计约束

D、外部接口需求

正确答案: B

19、SD(结构化设计)方法设计的结果是:(2.0)

A、模块

B、模块结构图

C、模块的算法

D、数据流图

正确答案: B

20、变换型结构的数据流呈:(2.0)

A、线性形状

B、辐射状

C、椭圆形

D、阶梯形

正确答案: A

二、多选题(共5题,10分)

1、数据字典不需要定义()。(2.0)

A、外部实体

B、数据流

C、数据存储

D、处理

正确答案: ABCD

2、关于信息隐藏的作用,描述正确的是

(2.0)

A、对象操作的实现算法对于其他对象而言是隐藏的

B、信息隐藏可通过对象的封装实现

C、隐藏了对象内部的实现细节,保证了对象的安全性

D、降低了系统的复杂度

正确答案: ABCD

3、对成本估计中任务分解技术的描述,正确的是()。(2.0)

A、是一种定量估算方法

B、把软件开发工程分解为若干个相对独立的任务

C、需要估计完成每个任务需要的人力

D、累加所有任务的成本作为总成本

正确答案: BCD

4、关于封装和信息隐藏的描述正确的是()。(2.0)

A、信息隐藏使对象能够集中而完整地描述并对应一个具体事物。

B、封装会造成一定程度上的执行效率的损失。

C、封装能够描述对象之间的层次关系。

D、信息隐藏指的是对象在与外界交互中,尽可能隐藏对象的内部细节,仅保留有限的对外接口和外部联系。

正确答案: BD

5、下列说法正确的是()(2.0)

A、学生是人的特殊类。

B、人是学生的一般类。

C、学生是人的泛化。

D、人继承了学生。

正确答案: AB

三、判断题(共10题,20分)

1、面向对象软件开发方法的继承和多态促进了软件的可重用性.(2.0)

正确答案:正确

2、开发软件就是写程序。

(2.0)

正确答案:错误

3、最早时刻和最迟时刻相同的事件(机动时间为0的作业)定义了关键路径。(2.0)

正确答案:正确

4、响应时间要求在需求分析中属于功能需求。(2.0)

正确答案:错误

5、使用形式化方法的同时就不应该使用传统方法。(2.0)

正确答案:错误

6、软件开发人员多数比较缺乏经验的时候多采用民主制程序员组。(2.0)

正确答案:错误

7、软件质量就是“软件与明确地和隐含地定义的需求相一致的程度”。

(2.0)

正确答案:正确

8、形式化化方法并不能保证软件的正确性,是有助于开发高质量软件的一种手段。(2.0)

正确答案:正确

9、总体设计通过对系统的结构表示进行细化,得到软件的数据结构和算法。(2.0)

正确答案:正确

10、要想实现操作上的多态,不同的一般类实现同一操作的时候,实现方式各不不同。(2.0)正确答案:错误

一、单选题(共20题,40分)

1、HIPO的含义是:

(2.0)

A、层次、输入、处理、输出

B、高速、信息、程序、目标

C、顶层的IPO图

D、关于输入、处理、输出的层次

正确答案: A

2、写代码属于软件开发的()个阶段。(2.0)

A、软件定义

B、软件实现

C、软件总体设计

D、软件维护

正确答案: B

3、如果一个模块访问另一个模块的内部数据,则模块间的耦合属于

(2.0)

A、控制耦合

B、内容耦合

C、数据耦合

D、公共耦合

正确答案: B

4、可行性研究的成本只是预期工程总成本的()。(2.0)

A、 15%-20%

B、 5%-10%

C、 1%-5%

D、 25-30%

正确答案: B

5、关于OOD,下列说法不正确的是()。(2.0)

A、是运用面向对象的方法进行系统设计。

B、主要工作是理解问题和需求建模。

C、可以在OOA的基础上进行。

D、可以考虑和实现相关的因素。

正确答案: B

6、能够在较短开发周期(一般为60-90天)通过基于构件的方法实现快速开发的软件过程模型是()。(2.0)

A、原型模型

B、增量模型

C、 Rational统一过程

D、快速应用开发模型

正确答案: D

7、软件质量保证措施SQA不包括:

(2.0)

A、复审或评审

B、

软件测试

C、程序正确性证明

D、

软件代码编写

正确答案: D

8、下面说法哪个不属于设计准则:(2.0)

A、提高模块的内聚,降低模块间的耦合

B、降低模块接口的复杂程度

C、模块大小要适中

D、模块要有重用性

正确答案: D

9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称

(2.0)

A、

软件工程

B、

软件危机

C、

软件周期

D、软件产生

正确答案: B

10、关于模块的作用域和控制域说法正确的是:(2.0)

A、模块的作用域在模块的控制域之内

B、模块的控制域在模块的作用域之内

C、模块的作用域和模块的控制域相同

D、模块的作用域和模块的控制域都是一种层次结构

正确答案: A

11、按照形式化的程度,软件开发过程中,用数据流图或实体关系图建立模型,是典型的:

(2.0)

A、

形式化方法

软件工程复习大纲

第一章软件工程学概述 1.什么是软件危机?软件危机表现在哪些方面? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(1)软件开发成本和进度难以控制(2)用户需求不明确、变更过多⑶软件质量差(4)软件维护困难(5)软件成本日益增长(6)开发进度难以控制(7)软件产品“供不应求” 2.软件工程是指什么?软件工程的性质是什么? 软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。 或者:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程;②研究①中提到的研究。 1)软件工程关注于大型程序的构造 2)软件工程的中心课题是控制复杂性 3)软件经常变化 4)开发软件的效率非常重要 5)和谐地合作是开发软件的关键 6)软件必须有效地支持它的用户 7)在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人 3.软件工程面临的问题有哪些? 4.什么是软件工程过程?它包含哪些过程? 5.什么是软件生存周期,它包括哪些活动? 软件生存周期由定义、开发、运行维护三个时期组成,每个时期又进一步可划分为若干个阶段。问题定义,可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试,共七个。 6.什么是软件生存周期模型?它有哪些主要模型,各个的含义及适用场合是什么? 软件生命周期模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。 目前常见的模型有瀑布模型(历史悠久、广为人知,它的优势在于它是规范的 文档驱动的方法;这种模型的问题是,最终开发出的软件产品可能不是哟偶那个湖真正需要的)、快速原型模型(为了克服瀑布模型的缺点而设计,通过一个快速构建起来起一个

软件工程导论复习重点总结很全(第六版)

软件工程导论复习重点总结很全(第六版) 软件工程导论复习重点总结很全(第六版) 软件工程是一门研究如何以系统化的、可管理的和可维护的方式来 构建高质量的软件的学科。在软件工程导论中,我们学习了软件开发 的基本概念、原理和方法。本文将对软件工程导论的重点内容进行总结,帮助读者巩固所学知识,为学习和工作提供帮助。 1. 软件工程概述 软件工程的定义、目标和原则;软件生命周期和过程模型;软件开 发的重要性和挑战;软件工程中的质量保证和风险管理。 2. 软件需求工程 软件需求的定义和分类;需求获取、分析和建模;需求验证和确认;需求变更和配置管理。 3. 软件设计 软件设计原则和方法;面向对象设计和结构化设计;软件架构设计;设计模式的应用。 4. 软件测试与调试 软件测试的概念和目的;测试策略和技术;测试用例的设计和执行;测试评估和管理;软件错误调试和修复。 5. 软件项目管理

软件项目管理的基本概念和流程;项目计划和进度管理;团队组织 和沟通;风险管理和变更管理;质量管理和配置管理;软件工程伦理 与法规。 6. 软件开发过程 软件开发过程模型的选择和应用;瀑布模型、迭代模型和敏捷开发 等常用模型的特点和比较;敏捷开发方法的原理和实践。 7. 软件工具与环境 软件开发工具的选择和使用;集成开发环境、版本控制工具、测试 工具和调试工具等的功能和特点;软件工程中的自动化工具和技术。 8. 软件工程的前沿技术 软件工程的新兴技术和趋势;人工智能、大数据、云计算等技术在 软件开发中的应用;软件工程的创新与创业。 通过对上述主要内容的学习和理解,我们可以全面掌握软件工程导 论的核心知识和方法。在今后的学习和实践中,我们应该注重理论与 实际的结合,不断提高自己在软件开发和项目管理方面的能力。只有 不断学习和实践,我们才能成为优秀的软件工程师,为社会和企业创 造更大的价值。 总结:软件工程导论是软件工程领域中的重要基础课程,通过对软 件开发过程和管理原理的学习,我们可以掌握软件工程的基本概念、 原则和方法。在软件工程导论的学习中,我们应该注重理论与实践的 结合,不断提高自己的实际操作能力。相信通过对本文的阅读和理解,

软件工程期末复习重点

1.软件危机的介绍 在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2.产生软件危机的原因 与软件本身特点有关: 软件开发与维护的方法不正确有关: 3.消除软件危机的途径 4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。 5.软件定义时期的任务是: 确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。 软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。 6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。 7.维护时期的主要任务是使软件持久地满足用户的需要。 8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。 9.常用软件模型区别原理: (1)瀑布模型: 按照传统的瀑布模型开发软件,有下述的几个特点。 a)阶段间具有顺序性和依赖性: 两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶 b) 推迟实现的观点 瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。 c)质量保证的观点: 软件工程的基本目标是优质、高产。为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。 每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。 每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。 瀑布模型有许多优点: a可强迫开发人员采用规范的方法(例如,结构化技术); b严格地规定了每个阶段必须提交的文档; c要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 (2)快速原型模型 概念: 快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。 快速原型模型是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上是线性顺序进行的。能基本上做到线性顺序开发的主要原因如下:

软件工程复习资料

软件工程 1、软件的概念:软件是计算机系统中与硬件相依存的另一部分,包括程序、数据、以及相 关的文档。 2、软件的组成:程序、数据、文档。 3、软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 4、软件危机消除的办法:P5 1、必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概 念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开发的经验教训。 2、应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更 好更有效的技术和方法,尽快消除在计算机系统早起发展阶段形成的一些错误概念和做法 3、应该开发和使用更好的软件工具。 总之,解决软件危机,既要有技术措施,又要有必要的组织管理措施 。 5、软件工程的含义:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间 考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 6、软件生命周期的过程以及任务。 (1)问题定义 (2)可行性研究 (3)需求分析 (4)总体设计 (5)详细设计 (6)编码和单元测试 (7)综合测试 (8)软件维护 ****************************以上为第一章****************** 第二章 ●数据流图有四种成分:源点或终点,处理,数据存储,数据流 ●画DFD(数据流图)的指导原则: 1.符号要使用标准符号

2.恰当的命名 3.流入流出的数据流的条数一致 4.名字要保值一致(平衡) 5.遵守加工编号规则 6.处理必须既有输入流又有输出流 (注意:源点和终点可以相同也可以不同) ●数据字典的作用:数据字典(DD)的作用也正是在软件分析和设计过程中给人提供关于 数据的描述信息。 ●数据字典的内容:(1)、数据流(2)、数据流分量即数据元素(3)、数据存储 (4)、处理 *********************** *******以上为第二章************************************ 第三章 ●实体-联系图(ER)图的概念:ER图中包含了实体、联系和属性3中基本成分,通常用矩 形框代表实体,用连接先关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线吧实体(或关系)与其属性连接起来。 *打印机的状态转换图P73 ****************************** * *以上为第三章********************************** ●模块:模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序 列,而且总有一个总体标识符代表它。P94 ●模块化:模块化就是把程序划分成为独立命名且可以独立访问的模块,每个模块完成一 个子功能,把这些模块集合起来构成一个整体,可以完成指定的功能满足用户的需求。 ●局部化的概念:所谓局部化就是指把一些关系密切的软件元素物理地放的彼此靠近 (在模块中使用局部数据元素是局部化的一个例子,显然局部化有助于实现信息的隐藏) ●耦合:耦合是对一个软件结构内不同模块黄子健相互连接的度量P97 数据耦合:如果两个模块彼此之间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为:数据耦合 ●控制耦合:如果传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现) 则这种耦合称为控制耦合 ●特征耦合:当把整个数据结构做为参数传递而被调用的模块只需要使用其中一部分数据 元素时,就出现了特征耦合 ●公共环境耦合:当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合 称为公共环境耦合 ●内容耦合:最高程度的耦合,出现下列情况之一,两个模块之间就发生了内容耦合: *一个模块访问另一个模块的内部数据 *一个模块不通过正常入口而转到另一个模块内部 *两个模块有一部分程序代码重叠(只可能出现在汇编语言中) *一个模块有多个如口(这意味着一个模块有几种功能) 原则:低耦合,高内聚。尽量使用数据耦合,少使用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。 ●内聚:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概 念的自然扩展。 P99 ●偶然内聚:如果一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散

软件工程复习知识点

1.软件危机的概念,内容,原因及消除的途径; 软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 概括地说,软件危机包含两方面问题: 如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机产生的原因: 软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。 消除软件危机的途径: (1)对计算机软件应当有一个正确的认识; (2)应当有组织、有计划、通过严格的管理手段进行软件的开发; (3)及时总结软件开发的成功技术和方法并加以推广; (4)开发和使用更好的软件工具; 总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。 2.软件工程的定义,基本原理; 定义:软件工程是指导计算机软件开发和维护的一门工程学科。 基本原理:软件工程的7条基本原理: (1)用分阶段的生命周期计划严格管理 (2)坚持进行阶段评审 (3)实行严格的产品控制 (4)采用现代程序设计技术 (5)结果应能清楚地审查 (6)开发小组的人员应该少而精 (7)承认不断改进软件工程实践的必要性 3.软件工程方法学的基本概念、内容; 基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。 内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。 4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目 主要分那几个个阶段。 ①问题定义:确定要求解决的问题是什么 ②可行性研究:决定该问题是否存在一个可行的解决办法 ③需求分析:深入了解用户的要求,在要开发的目标系统必须做什么问题和用户取得完全一致的看法。 ④概要设计:概括回答怎样实现目标系统。概要设计又叫逻辑设计、总体设计、高层设计。 ⑤详细设计:把解法具体化,设计出程序的详细规格说明。详细设计也叫模块设计、底层设计。 ⑥编码和单元测试:编写程序的工作量只占软件开发全部工作量的10%-20%。 ⑦综合测试:软件测试的工作量通常占软件开发全部工作量的40%-50%。 ⑧软件维护:软件维护的费用通常占软件总费用的55%-70%。 ①②③为软件定义时期,④⑤⑥⑦为软件开发阶段。④⑤为系统设计,⑥⑦为系统实现。

软件工程复习资料

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

软件工程复习资料(整理)

什么是软件?什么叫软件工程?它的目标是什么? 软件:程序与文档。定义一:应用于计算机软件的定义,开发和维护的一整套方法、工具、文档、实践标准和工序。定义二:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。软件工程目标:用较少的投资获得高质量的软件。 什么是软件危机?主要表现? 软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。表现在:⑴对软件开发成本和进度的估计常常很不准确。⑵用户易对“已完成的”软件系统产生不满。⑶软件质量不可靠。⑷软件常常是不可维护的。⑸软件通常没有适当的文档资料。⑹软件成本越来越高。⑺软件开发生产率提高速度慢,跟不上发展。 可行性研究的目的是什么? 用最小的代价在尽可能短的时间内确定问题是否能够解决。若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱) 数据流图的基本要点是什么? 描绘“做什么”,而不考虑“怎样做”。 软件生成期分几个阶段?几阶段的主要工作是? 生命周期各阶段的基本任务:1、问题定义:要解决的问题是什么?2、可行性研究:问题是否有行得通的解决办法?3、需求分析:确定目标系统必须具备哪些功能。4、总体设计:应如何解决这个问题。5、详细设计:如何具体实现这个系统?6、编码和单元测试:写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。7、综合测试:通过各种类型的测试使软件达到预定的要求。8、软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。 何为功能模块?设计模块? 功能模块:在分析阶段由系统分析员对该系统应完成的功能进行规定的模块。设计模块:在后面设计阶段对如何实现这些功能进行描述的模块。 HIPO PSL PAD SADT 中文意思 SADT:结构分析设计方法。PSL:问题说明。PSA:问题说明分析器。HIPO:H图加IPO,即层次图加输入/处理/输出图。PAD:问题分析图的英文缩写。 何为模块化?评价好的模块的标准是? 模块化是指把整个系统按照一定的规则分隔成各个模块的过程。评价标准:主要从四方面来评价:模块大小、模块之间的联系程度、模块内的联系程度、模块的信息隐蔽程度。 模块间的调用方式有哪几种? 调用方式一般有二种:直接引用、通过CALL语句调用(实践即为过程调用或子程序调用)

软件工程复习资料

一、单选题(共20题,40分) 1、使用数据流图,并不断细化的需求获取方法是()。(2.0) A、简易的应用规格说明 B、面向数据流自顶向下逐步求精 C、访谈 D、快速原型法 正确答案: B 2、Z语言是以()为基础的形式化规格说明语言。(2.0) A、微积分 B、概率 C、图形 D、一阶谓词演算 正确答案: D 3、HIPO是指 (2.0) A、层次输入处理输出图或表 B、层次功能结构图 C、功能结构图 D、输入处理输出图或表 正确答案: A 4、高铁调用系统最适宜采用()方法。(2.0) A、有穷状态机 B、 Petri网 C、 Z语言 D、一阶线性时态逻辑 正确答案: B 5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。(2.0) A、可划分为2个有效等价类,2个无效等价类 B、可划分为1个有效等价类,2个无效等价类 C、可划分为2个有效等价类,1个无效等价类 D、可划分为1个有效等价类,1个无效等价类 正确答案: B 6、用于并发系统,解决定时问题的形式化方法是()。(2.0) A、 VDM

B、 Z语言 C、 Petri网 D、一阶线性时态逻辑 正确答案: C 7、软件生命周期中所花费费用最多的阶段是 (2.0) A、需求分析 B、软件总体设计 C、软件维护 D、软件实现 正确答案: C 8、软件质量保证措施SQA不包括: (2.0) A、复审或评审 B、 软件测试 C、程序正确性证明 D、 软件代码编写 正确答案: D 9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。(2.0) A、单元测试 B、有效性测试 C、确认测试 D、集成测试 正确答案: C 10、总体设计不包括:(2.0) A、体系结构设计 B、数据库设计 C、模块内算法设计 D、逻辑数据结构设计 正确答案: C 11、关于类和对象的说法,正确的是

软件工程复习资料

一.概述 1.什么是软件?什么是软件工程? --软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。软件具有不可见性,是抽象的、形式化和逻辑化的。 --软件会逐渐退化而不会磨损的原因是不断地变更使组件接口之间引起错误。 --软件工程要素:过程、方法、工具。 --软件工程的基本目标是开发高质量的软件。 2.现代软件工程师关注的问题 开发过程中遇到的各种困扰。 3.软件生存周期模型 --软件生存期由软件定义、软件开发和运行维护3个时期组成,每个时期又可划分若干阶段,即可行性研究、需求分析、概要设计、详细设计、编码、测试、使用与维护。 --软件生存周期模型包括瀑布模型、原型模型、增量模型、螺旋模型。 4.软件开发的各种模型(瀑布、快速原型等)的特点 --瀑布模型:1)阶段间具有顺序性和依赖性。2)推迟实现的观点。3)质量保证的观点。瀑布模型适用于需求被清晰定义的情况。 --快速原型模型:适用于客户需求难以清楚定义的情况。 --增量模型:适用于一种需要快速构造可运行程序的方法。 --螺旋模型:螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析。 螺旋模型只适合于大规模的软件项目。 --喷泉模型:喷泉模型是典型的面向对象生命周期模型。 二.需求分析 1.需求分析的目的 --需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。 --需求分析中开发人员从用户那里了解软件做什么。 --可行性研究要进行一次“简化的、压缩的”需求分析。 2.主要任务 --获取并理解用户的需求是软件工程师所面对的最困难的任务之一

软件工程复习资料

软件工程总复习 第一章软件工程介绍 1. 软开发人员面临的问题。 1) 为什么软件需要如此长的开发时间? 2) 为什么开发成本高居不下? 3) 为什么在将软件交付顾客使用之前,我们无法找到所有的错误? 4) 为什么维护已有的程序要花费高昂的时间和人力代价? 5) 为什么软件开发和维护的过程难以度量? 2. 软件的定义:软件是指令的集合,通过执行这些指令可以满足预期的特征、功能和性能需求;数据结构, 它使得程序可以充分利用信息;描述程序操作和使用的文档。软件和硬件具有完全不同的特征: 1) 软件是设计开发的,而不是传统意义上生产直走的。 2) 软件不会“磨损” 。 3) 虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的。3. 软件工程面临的持续挑战。 1) 系统软件:一套服务于其他程序的程序。 2) 应用软件:一些可以满足特定业务需要的独立应用程序。 3) 工程/ 科学软件:带着“数字处理”算法的标签。 4) 嵌入式软件:存在于某个产品或者系统中,而哭实现和控制面向最终使用者和系统本身的特性和功 能。 5) 产品线软件:为多个不同用户的使用提供特定功能,关注有限的特点市场。 6) Web应用软件:Web应用 7) 人工智能软件:利用非数值算法解决计算和直接分析无法解决的复杂问题。 4. 软件工程新的挑战。 1) 遍在计算2 )网络资源3 )开源软件4 )“新经济” 5. 统一软件演化理论之潜在规律。 1) 持续变化规律2 )复杂性增长规律3 )自我调控规律4 )组织稳定性守恒规律 4) 保证通晓性规律6 )持续增长规律7 )质量衰减规律8 )反馈系统规律 第二章过程综述 1. 软件工程:一种层次化技术。 (英文出题) 定义:软件工程是( 1)将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。(2)在( 1)中所述方法的研究。 Software Engineering:(1)The application of a systematic,disciplined,quantifiable approach to the development,operation,and maintenance of software;that is,the application of engineering to software. (2)The study of approaches as in(1).

软考复习资料

软考复习资料 软考复习资料 软件工程师考试(简称软考)是我国软件行业的一项重要认证考试,是评价软件工程师专业水平的重要标准之一。参加软考需要准备充足的复习资料,下面将介绍一些常用的软考复习资料和学习方法。 一、教材类资料 1. 《软件工程师考试指南》 这本教材是软考的官方指南,涵盖了软考各个科目的考点和知识点,是软考备考的基础教材。考生可以根据教材的内容进行系统的学习和复习,掌握软考的考试要求和考点。 2. 《软件工程师考试大纲》 软考大纲是软考各个科目的详细内容和考试要求,是备考过程中必备的参考资料。考生可以根据大纲的要求,有针对性地进行复习,提高备考效果。 3. 《软件工程师考试辅导教材》 这类教材是针对软考的具体科目编写的辅导资料,通常包含了大量的例题和练习题,有助于考生巩固和提高知识点的理解和掌握。考生可以根据自己的情况选择适合自己的辅导教材进行学习和练习。 二、在线学习平台 1. 慕课网 慕课网是国内知名的在线学习平台,提供了丰富的软考相关课程。考生可以通过观看视频课程、参与在线讨论等方式进行学习和交流,提升自己的软考备考水平。

2. 网易云课堂 网易云课堂也是一个非常受欢迎的在线学习平台,提供了众多软考相关的课程 资源。考生可以根据自己的需求选择适合自己的课程进行学习,提高备考效果。 三、题库类资料 1. 软考题库软件 软考题库软件是备考过程中非常重要的辅助工具,可以帮助考生进行题目的练 习和模拟考试。考生可以通过做题来检验自己的学习成果,查漏补缺,提高解 题能力。 2. 考试真题 考试真题是了解软考考试形式和难度的重要途径,也是备考过程中必不可少的 资料。考生可以通过做真题来熟悉考试的题型和要求,提前感受考试的紧张氛围,为考试做好充分准备。 四、学习方法 1. 制定合理的学习计划 软考的复习范围较广,考生需要制定合理的学习计划,合理安排学习时间,有 针对性地进行复习。可以根据自己的时间和能力情况,将复习内容分解成小模块,逐步完成。 2. 多做练习题 做题是巩固和提高知识点的有效方法,考生可以通过做大量的练习题,熟悉题 目的解题思路和方法,提高解题能力。同时,做题也可以帮助考生发现自己的 薄弱环节,有针对性地进行复习。 3. 多参加模拟考试

软件工程师复习资料推荐

软件工程师复习资料推荐 在成为一名合格的软件工程师的道路上,学习和复习是非常重要的 环节。而选用适合的复习资料,可以帮助我们更加高效地掌握知识点,提升自己的技能。本文将推荐一些优质的复习资料,供软件工程师们 参考。 一、编程语言学习资料 1.《Java核心技术》:由SUN公司的两位工程师编写,系统全面地 介绍了Java语言的基础知识和进阶技巧,是Java程序员的必备参考书。 2.《Python编程:从入门到实践》:一本适合初学者的Python编程 入门书籍,通过实际案例的演示和习题的训练,帮助读者快速入门Python编程。 3.《C++ Primer》:这是一本C++领域的经典教材,可以帮助读者 全面掌握C++语言的基本概念和高级特性。 二、系统设计和架构学习资料 1.《大型网站技术架构》:由阿里巴巴集团首席架构师李智慧所著,内容详尽介绍了大型网站的设计原理和重要技术,对于理解和掌握系 统设计和架构非常有帮助。 2.《设计模式:可复用面向对象软件的基础》:这本书介绍了23种 常用的设计模式,对于应用程序的设计和可维护性有着重要的指导作用。

三、数据库学习资料 1.《SQL必知必会》:适合初学者的SQL学习资料,通过简单明了的语言和大量实例,帮助读者快速掌握SQL的基本知识和操作技巧。 2.《MongoDB权威指南》:对于学习和使用MongoDB的人来说,这本书是一本非常有价值的参考书,它详细介绍了MongoDB的各种特性和使用方法。 四、软件开发工具学习资料 1.《Git权威指南》:介绍了Git版本控制工具的基本概念和使用方法,对于团队协作开发和代码管理非常有帮助。 2.《Maven实战》:Maven是Java项目构建和管理的重要工具,这本书详细介绍了Maven的使用和配置,对于软件工程师来说是一本不可或缺的参考资料。 以上是我为软件工程师们推荐的一些复习资料,希望能够对大家的学习有所帮助。当然,选择适合自己的学习资料也需要根据自身的实际情况和学习需求来确定。希望大家通过不断学习和复习,不断提升自己的技能,成为一名优秀的软件工程师!

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

软件工程复习题库带答案完整版 1、白盒测试法是通过分析程序的内部逻辑来设计测试用例的。 2、风险预测从两个方面评估风险,即风险发生的可能性以及风险发生所产生的后果。 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和反馈和勇气。 4、等价分类法的关键是划分等价类。 5、下列不属于黑盒测试的技术是程序段或语句的功能。 6、为了提高模块的独立性,模块之间最好是数据耦合。 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用角色来表述“谁做”。

8、功能性注释嵌入在源程序内部,它是用来说明程序段或语句的功能。 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有有结构化语言、判定树和判定表。 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行适应性维护。 11、软件危机的主要原因是软件本身特点与开发方法。 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是加工、数据流、数据存储和外部实体。 13、软件工程管理是对软件项目的开发管理。具体地说,就是对整个软件生存期的一切活动进行管理。

14、在面向数据流的软件设计方法中,一般将信息流分为输入、输出、外部实体和加工。 A.白盒测试 B.黑盒测试 C.灰盒测试 D.集成测试 15、参与人员之间的通信困难是不随参与人数增加而使软件生产率增加的主要原因。因为通信困难会导致信息不畅通,任务分配不明确,进度无法掌握等问题,从而影响软件开发效率。 16、有形性与可控性不是软件的特征。软件的特征包括系统性与复制性、抽象性与智能性、依附性与泛域性。 17、面向对象的设计是面向对象分析进一步的细化和更高的抽象,不是另一种思维方式。 18、在软件的可行性分析中,可以从经济可行性、技术可行性、操作可行性、法律可行性等角度对软件进行研究。从软件的功能可行性角度考虑属于技术可行性。 19、确定软件系统的运行平台不属于软件工程需求分析阶段。 20、没有给出问题,无法回答。 21、信息隐蔽是通过对象的封装性来实现的,继承性和共享性与信息隐蔽无关。

自考_软件工程复习资料

第一章 1软件生产率、软件质和量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为软件危机 2软件工程定义:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品工程,或以此为研究对象的学科 3软件开发的本质概括为:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”两大类技术:过程方向、过程途径。基本途径:系统建模 4所谓模型,是待建系统的任意抽象,其中包括所有的基本能力、特性或其他一些方面,而没有任何冗余的细节。进一步说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述 5系统模型分为软件模型、概念模型软件模型分为设计模型、部署模型、实现模型 第二章软件需求与软件需求规约 6一个需求是有关一个“要与构造”的陈述,描述了待开发产品、系统功能上的能力、性能或者其他性质 7需求性质:必要的、无歧义的、可测的、可跟踪的、可测量的 8需求分类:功能需求、非功能需求(性能、外部接口、设计约束、质量属性需求) 9功能需求规约了系统或系统构建必须执行的功能功能需求是整个需求的主体 10接口需求分为:用户接口、硬件接口、软件接口、通信接口、内存约束、运行、地点需求 11质量属性:可靠性存活性可维护性用户友好性 12需求发现技术:自悟交谈观察小组会提炼 13需求规约定义,是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统概念模型性质:重要性和稳定性程度可修改的完整的一致的 14需求规约的作用:需求规约是软件开发组和用户之间一份事实上的技术合同书,是产品功能及其环境的体现对于项目的其余大多数工作,需求规约是一个管理控制点对于产品/系统的设计,需求规约是一个正式的、受控的起始点需求规约是创建产品验收测试计划和用户指南的基础,是基于需求规约一般还会产生另外两个文档(初始测试计划和用户系统操作描述) 第三章结构化方法 15需求工作挑战:问题空间理解人与人之间的通信需求的变化性 16好的需求技术具备特征: 提供方便的通信机制鼓励需求分析人员使用问题空间的术语思考问题,编写文档提供定义系统边界的方法提供支持抽象的基本机制为需求分析人员提供多重可供选择的方案提供天特定的技术化、适应需求变化 17结构化方法:结构化分析方法结构化设计方案机构化程序设计方法 18数据流加工数据存储数据源和数据潭 19需求分析的首要任务是建立系统功能模型工具:数据流图DFD图是一种描述数据变化的图形工具20建模过程:建立系统环境图,确定系统语境自顶向下逐步求精,建立系统层次数据流图定义数据字典描述加工(结构化自然语言判定表判定树) 21需求阶段的主要任务是完整地定义问题,确定系统的功能和能力 22需求验证验证需求规格说明书的每一单一需求是否满足5个性质(必要性无歧义性可测性可跟踪型可测量性),需求沿着我难过规格说明属否满足4个性质(重要性和稳定性程度可修改型完整性一致性)23结构化设计的主要任务是在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给出该问题的软件解决方案,确定“怎么做”的问题 24结构化设计分为总体设计(目标,建立系统的模块结构)和详细设计 25模块指软件中具有特定标识的独立成分模块调用指模块之间的一种使用关系 26总体设计阶段的基本任务是把系统的功能需求分配到一个特定的软件体系结构中工具(Yourdon模块结构图层次图HIPO图)步骤:将系统的DFD图转化为初始的模块结构图,再基于高内聚低耦

软件工程复习资料

第一章绪论 什么是软件工程? 软件=程序+数据+文档 什么是软件危机? 软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件,从而导致软件开发与维护过程中出现一系列严重问题的现象。 什么是软件工程? 采用工程化的原理和方法对软件进行计划开发和维护。 软件工程三范型:1.过程式编程范型2.面向对象编程范型3.基于构件技术的编程范型 软件工程的发展时期: (1)传统软件工程或者经典软件工程: 开发过程:结构化分析一>结构化设计一>面向过程的编码一>软件测试(2)面向对象软件工程 开发过程:OO分析与对象抽取一》对象详细设计一》面向对象编码与测试 (3)基于构件的软件工程: 以软件复用为目标、领域工程为基础,其开发过程一般包括包括以下阶段: 领域分析和测试计划定制一一》领域设计一一》建立可复用构件库一一》按 “构件集成模型,,查找与集成构件 第二章生存周期 什么是软件生存周期? 计划阶段:需求分析,软件分析 开发阶段:软件设计,编码(测试)软件测试

维护阶段:运行维护 模型特点和使用场合 可行性研究 1.经济可行性 2.技术可行性 3.运行可行性 4.法律可行性 第三章结构化分析与设计结构化程序设计的特点以及论述 (1)整个程序的模块化 (2)每个模块只有一个入口和出口 (3)每个模块都应能单独执行,且无死循环 (4)采用自顶向下,逐步细化的方法

SA结构化分析 设计(结构化) 从内容分: 1.系统结构设计 2.接口设计 3.数据设计 4.过程设计 按照步骤分: 1.概要设计 2.详细设计 第四章OO与面向对象+UML OO的特征 1.抽象 2.封装 3.继承 4.多态 为什么用面向对象 1.符合人类习惯的思维方式 2.提高软件系统的可复用性 3.提高软件系统的可扩展性 4.提高软件系统的可维护性

《软件工程》复习

《软件工程》复习 1.二义性是指读者可以用不同方式理解的陈述。 2.总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由 哪些模块组成的,以及这些模块相互间的关系。 3.总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结 构设计阶段,确定软件结构。 4.(软件为何要模块化?)模块化是为了使一个复杂的大型程序能被人的智力所管理,是 软件应该具备的唯一属性。如果一个大型程序仅由一个模块组成,它将很难被人所理解。 5.为什么模块的独立性很重要呢?主要有两个理由:第一,有效的模块化(即具有独立的 模块)的软件比较容易开发出来。第二,独立的模块比较容易测试和维护。 6.深度、宽度、扇出和扇入都应适当。 7.模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是这个 模块本身以及所有直接或间接从属于它的模块的集合。 8.模块的作用域和控制域: 9.层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系。 10.面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。 11.详细设计的结果基本上决定了最终的程序代码的质量。 12.在设计人机界面的过程中,总会遇到下述4个问题:系统响应时间、用户帮助设施、出 错信息处理和命令交互。

13.描述程序处理过程的工具称为过程设计的工具,它们可以分为图形、表格和语言3类。 14.程序流程图又称为程序框图。 15.Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法。 16.在流图中用圆表示结点,一个圆代表一条或多条语句。程序流程图中的一个顺序的处理 框序列和一个菱形判定框,可以映射成流图中的一个结点。 17.计算环形复杂度的3种方法:V(G)=区域数=E-N+2=P+1(其中E是流图中边的条数, N是结点数,P是流图中判定结点的数目)。 18.实践证明,模块规模以V(G)≤10为宜。 19.Halstead方法是另一个著名的方法,它根据程序中运算符和操作数的总数来度量程序的 复杂程度。 20.通常把编码和测试统称为实现。 21.软件测试的目标:测试是为了发现程序中的错误而执行程序的过程。 22.验收测试定义:按照软件任务书或合同,供需双方约定的验收依据进行测试,决定是否 接收。验收测试也称为确认测试。 23.平行运行定义:同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个 系统的处理结果。 24.自底向上集成P158 25.回归测试是指重新执行已经做过的测试的某个子集,以保证上述这些变化没有带来非预 期的副作用。 26.确认测试也称为验收测试,它的目标是验证软件的有效性。 27.Alpha测试由用户在开发者的场所进行,并且在开发者对用户

软件工程复习资料

第一章概论 1.软件工程的主要内容:为了有限的资金、资源和时间条件下开发满足客户要 求的高质量软件,就需要研究与软件开发和管理相关的模型、方法、技术、过程、工具和环境等。 2.计算机软件:指的是计算机系统中的程序及其文档, 3.程序:指的是计算任务的处理对象和处理规则的描述. 4.计算任务:任何以计算机为处理工具的任务都是计算任务。 5.处理对象:是数据(如数字、文字、图形、图像、声音等,它们只是表示, 而无含义)或信息(数据及相关的含义)。 6.处理规则:一般指处理的动作和步骤. 7.文档:是为了便于了解程序所需的阐述性资料. 8.软件工程:是应用计算机科学,数学及管理科学等原理,开发软件的工程。软 件工程借鉴传统工程的原则、方法、以提高质量、降低成本为目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 9.杨芙清院士指出软件工程的框架可概括为:目标、过程和原则。 10.软件工程目标:只生产具有正确性、可用性和开销合宜的产品。正确性:指 软件产品达到预期功能的程度。可用性:只软件基本结构、实现及文档为用户可用的程度。开销合宜:只软件开发,运行的整个开销满足用户要求的程度。 11.软件工程原则包括围绕工程设计、工程支持和工程管理所提出的4条基本原 则:(1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑(4)重视软件工程的管理。 12.软件的生存周期:软件孕育、诞生、成长、衰亡的生存过程。软件生存周期 是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。软件生存周期大致可以分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。 13.软件过程:是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。 过程是活动的集合,活动是任务的集合。 14.软件过程有3层含义:(1)、个体含义:指软件产品或系统存在生存周期中 的某一类活动的集合,如软件开发过程、软件管理过程等。(2)整体含义:指软件产品或系统系统在所有上述含义下的软件过程的总体;(3)工程含义:指解决软件过程的工程,应用软件工程的原则、方法来构造软件过程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件生产率,降低成本。 15.软件过程模型:习惯上也称为软件开发模型,是软件开发全部过程、活动和 任务的结构框架。 16.瀑布模型:给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向 下一阶段的活动过渡,最终得到所开发的软件产品。 17.瀑布模型特征:(1)接受上一阶段活动的结果作为本阶段活动的输入。(2) 依据上一阶段活动的结果实施本阶段应完成的活动。(3)对本阶段的活动进行评审。(4)将本阶段活动的结果作为输出,传递给下一阶段。 18.18.瀑布模型的不足:(1)客户常常难以清晰地描述所有的需求,而且在开 发过程中,用户的需求也常常会有所变化,使得不少软件的需求存在着不确

相关主题
文本预览
相关文档 最新文档