当前位置:文档之家› 软件工程复习资料(提纲+答案)

软件工程复习资料(提纲+答案)

第一章软件工程的实质
1、什么是软件?由什么组成?
软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。

可以写作为:软件=程序+数据+文档。

2、什么是软件危机?为什么会产生?(原因)
软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。

原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高
3、为什么要进行软件开发?
4、软件工程的三段论?
三段论:软件项目管理论、软件项目开发论、软件过程改进论
5、软件工程生存期模型概念、类型、每种类型的特点?
答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。

软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。

常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。

6、了解复用的原则
第二章软件项目的需求分析
1、需求分析的主要任务?(基本任务)
答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。

本阶段要主要有以下几方面工作:
(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。

(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。

(3)编写文档,也就是完成“需求规格说明书”的编写工作。

2、需求分析分两大块(功能与非功能)
功能需求描述系统所预期提供的功能或服务。

非功能需求是对系统提供的服务或功能给出的约束。

包括时间约束、开发过程的约束、标准等。

3、(P27)需求建模的基本方法?
答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)
4、结构化方法的代表?(P29)
7
状态图活动图
8、理解好数据流图为什么要分层?
9、UML中常用的9种图?(P32 把包图去掉)
静态图:类图、对象图、构件图、实施图和包图。

动态图:用例图、顺序图、协作图、状态图和活动图
10、用例图的4种关系?(PPT)
泛化关系(Generalization)、包含关系(Include/uses)、扩展关系(Extend)、关联
11、类图的4种关系(P69)
继承关系、关联关系(Association)、集合关系(aggregation)、组成关系(composition)
PPT:类与类之间的的关系:关联、泛化(继承)、依赖和实现等4种关系
12、UML建模画图(一定要会)(UML中关系主要有4种:关联、依赖、泛化和实现)
用例图、顺序图(只描述一个用例)、类图(把主要的类图写出来即可)
第三、四章
(设计阶段:概要设计和详细设计)
1、概要设计的主要内容?(页面设计、框架设计、、、、、)
概要设计就是根据软件需求规格完成软件模块的划分并描述软件模块之间的关系。

设计模块:数据设计、架构设计、界面设计、模块设计。

核心设计:框架设计、数据库设计;页面设计;环境设计
2、数据设计
3、功能模块图(扇入、扇出、深度、广度)P61
4、内聚与耦合的概念(PPT)(高内聚,低耦合)
(1)耦合(Coupling):表示软件结构内不同模块彼此之间相互依赖(连接)的紧密程度,是衡量软件模块结构质量好坏的度量,是对模块独立性的直接衡量指标。

(耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。


分别有:数据耦合、控制耦合、公共环境耦合、内容耦合
最高程度的耦合是内容耦合。

应该采用如下设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合。

(2)内聚(Cohesion):内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。

(理想内聚的模块只做一件事情)
分别有:功能内聚信息内聚通信内聚逻辑内聚
功能内聚是最高程度的内聚。

5、模块独立性的重要性?(百度)
模块独立性是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。

重要性:具有独立的模块的软件比较容易开发出来。

这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。

独立的模块比较容易测试和维护。

这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够"插入"模块。

总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。

6、面向数据流设计
根据数据流,采用自顶向下逐步求精的设计方法,按照系统的层次结构逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。

基本原理:系统的信息以“外部世界”的形式进入软件系统,经过处理后再以“外部世界”的形式离开系统。

7、面向对象的特点?UML的图(以类图为主)
(百度)面向对象的特点:对象唯一性。

分类性。

继承性。

多态性(多形性)
(P64)面向对象设计的主要特点是建立了非常重要的4个软件设计概念:抽象性,信息隐藏性,功能独立性和模块化。

8、ER图的三要素?
实体、关系、属性
9、体系结构(P83)
10、框架(MVC是什么?)P85
11、传统化的详细设计方法?(3种)
12
13、判定表、 PDL(不用会写,但要会看)
第五、六章编码、测试
1、(P151)图5-1
2、(P192)测试
●测试的定义?(有两种描述,要理解好)
软件测试是对软件需求分析、设计、编码实现的审查。

通常有两种描述:
(1)软件测试是为了发现错误而执行程序的过程;
(2)软件测试是根据软件开发的各个阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些用例来运行程序及发现错误的过程。

●测试的分类?(静态、动态)
静态:个人的代码走查、小组的代码检查、代码评审
动态:白盒测试、黑盒测试、灰盒测试
3、黑、白盒测试方法的定义,原理、,测试方法?
●白盒测试:又称为结构测试,是一种逻辑测试。

4、测试级别?分别用于什么阶段?
级别:单元测试、集成测试、系统测试、(接收测试)
每次测试的过程中可能伴随着回归测试。

V测试模型
5、每种测试的主要内容?(要知道是什么)PS:3分超纲题:CMM。

相关主题