《软件工程》复习提纲Word格式文档下载.docx

上传人:b****4 文档编号:16832933 上传时间:2022-11-26 格式:DOCX 页数:17 大小:52.81KB
下载 相关 举报
《软件工程》复习提纲Word格式文档下载.docx_第1页
第1页 / 共17页
《软件工程》复习提纲Word格式文档下载.docx_第2页
第2页 / 共17页
《软件工程》复习提纲Word格式文档下载.docx_第3页
第3页 / 共17页
《软件工程》复习提纲Word格式文档下载.docx_第4页
第4页 / 共17页
《软件工程》复习提纲Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

《软件工程》复习提纲Word格式文档下载.docx

《《软件工程》复习提纲Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《软件工程》复习提纲Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

《软件工程》复习提纲Word格式文档下载.docx

一个软件从定义、开发、运行维护,直到最终被废弃要经历一个漫长的时期,这个时期称为软件生命周期。

(1)问题定义阶段:

通过调研,提出关于问题的性质、工程目标和工程规模的书面报告,并且需要得到客户的确认。

●回答“要解决的问题是什么?

●文档:

问题定义报告

(2)可行性研究阶段:

用最小的代价在尽可能短的时间内确定问题是否能够解决。

①进一步了解用户需求

②提出若干种可能的系统实现方案

③分析每种方案的技术、经济、社会可行性

④最终确定这项工程的可行性

●回答“是否有行得通的解决方法?

●文档:

可行性研究报告,项目开发计划

(3)需求分析阶段:

对目标系统提出完整、准确、清晰、具体的要求。

①得出经过用户确认的系统需求

②用正式文档(需求规格说明)准确表达系统需求

回答“系统必须做什么?

文档:

需求规格说明书

(4)概要设计阶段:

①设计系统实现方案

②设计程序的体系结构,即确定程序由哪些模块

组成以及模块间的关系。

概括地回答“怎样实现目标系统?

 

概要设计说明书

5)详细设计阶段:

设计实现每个模块功能所需要的算

法和数据结构

回答“应该怎样具体地实现这个系统?

文档:

详细设计说明书

(6)编码和单元测试:

写出正确的、易理解、易维护的程序模块代码;

测试编写出的每一个模块

经过测试的程序源代码、

程序开发记录(模块开发卷宗)

(7)综合测试阶段:

通过各种类型的测试(及相应的调试)

使软件达到预定的要求。

①集成测试(组装测试)。

②验收测试

测试文档:

测试计划、详细测试方案、实际测试结果

(8)软件维护阶段:

通过各种必要的维护活动使系统持久地满足

用户的需要。

四类维护活动:

改正性维护、适应性维护、完善性维护、

预防性维护

软件维护申请、软件修改报告

2.需理解的问题:

(1)软件与程序的区别和联系?

程序:

能够完成特定功能和性能的可执行的指令序列

(2)开发一个软件项目包括哪些基本的步骤?

每一步骤完成哪些工作?

(3)主要的软件过程模型(生命周期模型)有哪些?

各自有什么特点?

软件生命周期模型也称为软件过程模型,它直观地描述了把软件生命周期划分成哪些阶段及各个阶段的执行顺序

主要有:

瀑布模型、增量模型、螺旋模型、喷泉模型、统一软件过程。

(2)瀑布模型的特点

①阶段间具有顺序性和依赖性

②推迟实现的观点

③阶段质量保证观点(文档驱动)

瀑布模型的优点:

强迫采用规范方法开发软件;

严格规定了各阶段提交的文档;

各阶段结束前必须经过技术审查和管理复审。

瀑布模型缺点:

分析和设计阶段只考虑逻辑模型;

过分依赖文档,可能导致最终的软件产品不能完全满足用户需求

瀑布模型适用的软件项目:

规模小、需求明确、无须维护

2)快速原型模型的优点:

通过原型获得准确的用户需求;

通过原型积累了开发经验,软件开发时期的各阶段基本上是线性顺序过程、提高了总开发效率。

快速原型模型适用的软件项目:

规模小、需求不够明确、无须维护

3)增量模型的优点:

①便于并行完成开发工作;

②逐步提交软件产品;

③软件的可维护性和可扩充性较好

增量模型适用的软件项目:

强调开发进度、可维护性要求高、可扩充性要求高

螺旋模型是一个演化的软件过程模型,是在每个阶段之

前都增加了风险分析过程的快速原型模型。

在螺旋模型中,螺旋线的每个周期对应一个软件生命周

期的开发阶段。

每个阶段包括四个方面的活动:

①制定计划-确定目标,选定方案,设定约束条件

②风险评估-评估所选方案,识别风险,考虑如何消除风险

③实施工程

④评估工程-评价开发工作,提出修正建议。

使用螺旋模型需要丰富的风险评估经验和专门知识;

螺旋模型适用于内部开发的大型软件项目

1、喷泉模型也称为面向对象的生命周期模型

2、软件开发过程阶段之间是迭代的、无间隙的

对象概念贯穿整个开发过程,只用对象类及其关系表达分析、设计、实现等活动

在分析、设计和编码等开发活动之间并不存在明显的边界,开发各阶段同步进行、可以提高开发效率

3、各开发阶段重叠、可能随时增加新的需求和各种信息,

因此喷泉模型要求严格管理文档,审核难度加大,对项目管理要求较高。

RUP首先建立整个项目的不同时间阶段,体现开发过程的动态结构,包括:

初始阶段、细化阶段、构造阶段、移交阶段。

同时以内容来组织项目的活动,体现开发过程的静态结构。

RUP融入了瀑布模型的线性结构和演化模型的增量及迭代思想

(3)有哪些主流的软件工程方法?

①传统方法学(生命周期方法、结构化方法):

●从时间角度对软件问题进行分解,将软件开发维护过程划分成若干阶段。

②面向对象方法学:

面向对象方法学的出发点和基本原则:

尽量模拟人类习惯的思维方式,使开发软件的方法与

过程尽可能接近人类认识世界解决问题的方法与过程,使问题空间与实现空间在结构上尽可能一致。

(4)如何消除软件危机(如何解决软件危机?

一、概念:

软件过程,软件生命周期,软件生命周期模型

6、具体说明:

针对不同的软件项目,应该如何选择软件生

命周期模型

7、你如何理解RUP的特点

8、敏捷过程的主要特点和优势

1.什么是软件生命周期,分哪几个阶段、各阶段的任务是

什么?

2.常用的软件生命周期模型有哪些?

总结它们的特点。

3.谈谈下列三者之间的区别和联系:

软件工程、软件过程、软件生命周期模型

二、结构化分析-面向数据流的分析方法

1.什么是软件需求?

需求分析过程(步骤)?

软件需求:

软件系统必须符合的条件和具备的功能

需求分析的任务(过程):

1.准确了解用户情况和需要解决的问题:

◆与用户沟通的途径:

访谈、参考类似系统、快速原型技术

2.对需求反复求精和细化,得出对目标系统完整、准确

和具体的要求

3.需求建模:

对获得的需求做出抽象、即进行无歧义描述。

◆模型是为了理解事物而对事物做出的一种抽象,是对事物的一种

无歧义的书面描述。

4.编制需求规格说明书

5.进行需求分析的评审

2.需求分析模型:

(1)功能模型(数据流图DFD)的含义、描述符号、画法步骤及规则

(2)数据模型(E-R图)的作用

(3)行为模型(状态转换图)的作用

(4)数据字典的作用

三、结构化设计

1.软件设计的任务?

结构化设计与结构化分析的区别和联系?

2.软件设计遵循的基本原理及规则:

(1)模块化的含义、如何划分模块(降低成本、提高独立性)?

(2)抽象与逐步求精的含义、二者间关系如何?

(3)信息隐藏的含义

(4)如何完善软件结构(深度、宽度、扇入、扇出、作用域、控制域)?

3.模块独立性:

(1)模块独立性含义?

(2)模块独立性的度量标准:

耦合的分类、含义及应用;

内聚的分类、含义及应用。

4.概要设计(面向数据流的设计方法)

(1)概要设计的任务?

(2)数据流图的类型及特征(变换型、事务型)

(3)变换分析设计方法的应用(步骤)

(4)事务分析设计方法的应用(步骤)

4.详细设计(过程设计)

(1)详细设计的任务

(2)结构化程序(设计)的特征

(3)详细设计结果的描述工具:

程序流程图、N-S图、PAD图、PDL、判定表

一、理解以下问题:

1、什么是软件需求?

软件需求如何分类?

2、需求分析的作用和重要性

3、需求分析阶段需要完成的工作

4、结构化分析模型的内容

5、E-R图的内容和作用;

数据流图的内容和作用;

状态转换图的内容和作用;

数据字典的内容和作用

二、掌握以下建模技术和工具:

1、使用E-R图建立软件系统的数据模型

2、使用分层数据流图建立软件系统的功能模型

3、使用状态转换图建立软件系统的行为模型

4、使用数据字典定义结构化分析模型中的数据对象

1、某高校选课系统的功能包括:

教师提交开课申请,系统根据开课计划审核教师的开课申请,审核通过后向教师下发开课通知。

学生可以通过系统进行选课,首先提交选课单,系统进行审核通过后,告知学生选课结果。

教师可以查询本人任教课程的选课名单。

请使用分层数据流图描述选课系统的功能。

2、某运动会管理系统的功能为:

接受来自运动员的报名单,生成运动员号码单发送给运动员,产生参赛人员报表发送给裁判。

接受来自裁判的比赛项目及成绩,产生比赛结果发送给发布台。

请用分层数据流图表示上述系统的功能。

四、软件测试

1.软件测试基础

(1)软件测试的含义和目的?

(2)测试用例的内容(输入数据、预期输出结果)?

(3)主要测试方法(黑盒测试、白盒测试)的含义?

2.主要的白盒测试技术及应用-------逻辑覆盖法?

基本路径测试方法?

3.主要的黑盒测试技术及应用-------等价类法?

边界值分析法?

4.软件测试的过程?

(1)单元测试(采用的测试方法;

测试内容)

(2)集成测试(采用的测试方法;

测试内容;

模块组装策略)

(3)确认测试(采用的测试方法;

α测试与β测试?

(4)辅助模块的含义及作用(驱动模块、存根模块?

一、理解以下概念:

1、模块、模块化、抽象、信息隐藏;

2、模块独立性、耦合、内聚;

二、理解以下问题:

1、软件设计阶段的任务?

2、概要设计和详细设计的区别和联系?

3、结构化分析为结构化设计提供了哪些信息?

4、指导软件设计的基本原理和启发规则有哪些?

理解这些原理的具体含义和作用。

5、软件设计中,如何合理划分模块才能保证软件的开发成本达到最小?

6、什么是模块独立性?

如何度量和设计模块独立性?

7、软件设计中应该如何设计耦合性?

如何设计内聚性?

8、表示软件结构的工具有哪些?

能够正确使用以下工具:

H图、IPO图、软件结构图

9、理解变换型数据流图和事务型数据流图的特点。

10、使用面向数据流方法设计软件结构的过程是什么?

、理解以下问题:

11、结合实例,掌握变换分析设计方法的步骤

12、结合实例,掌握事务分析设计方法的步骤

13、结构化程序的基本特征是什么?

14、表示结构化程序逻辑的工具有哪些?

能够正确使用以下工具:

程序流程图、N-S图、PAD图、

PDL、判定表、判定树

1、什么是模块独立性?

2、根据下面变换型的数据流图,设计出对应的初始软件结构图并简述相应的设计步骤。

五、面向对象方法学基础

1.基本概念:

(1)对象的含义及特点?

(2)类的含义?

类与对象的关系?

(3)消息及消息传递的含义及作用?

(4)继承的含义?

多态性机制?

2.面向对象建模技术中的三种模型及各自作用?

3.对象模型及描述(类图):

对象(类)的图形表示;

关系(关联、聚集、继承)的图形表示;

4.事件追踪图、状态图、用例图的作用

、理解以下概念:

软件测试、测试用例、黑盒测试、白盒测试、

单元测试、集成测试、确认测试、系统测试、

驱动模块、存根模块、等价类、边界值分析测试、

调试

二、理解以下问题:

1、软件测试的含义及目标?

2、软件测试的过程(步骤)?

3、测试方案包含的内容?

4、白盒测试的含义及作用?

黑盒测试的含义及作用?

5、各种逻辑覆盖测试的含义及使用?

6、基本路径测试法的使用?

7、等价划分法的含义、测试步骤?

8、软件测试各阶段与前期的哪些文档相关?

9、软件测试过程如何体现“测试应该从小规模开始,

并逐步进行大规模测试”的测试准则?

10、如何进行单元测试、集成测试、确认测试?

各阶段重点测试的内容?

12、测试和调试的区别和联系?

◆第5章习题

1.什么是软件测试?

2.什么是测试用例?

设计测试用例时,应该考虑哪些因素?

3.阐述单元测试、集成测试、有效性测试之间的区别。

4.下列伪码程序的功能是“输入三角形的三个边长,判断

构成何种三角形”。

(1)使用条件覆盖法,为上述程序设计白盒测试用例。

(2)使用等价类划分法,为上述程序设计黑盒测试用例

START

READ(A,B,C)

IF(A≤0)OR(B≤0)OR(C≤0)

THENWRITE(“三角形边长不能为零”)

ELSEIF(A+B≤C)OR(A+C≤B)OR(B+C≤A)

THENWRITE(“不能构成三角形”)

ELSEIF(A=B)AND(B=C)

THENWRITE(“等边三角形”)

ELSEIF(A=B)OR(B=C)OR(A=C)

THENWRITE(“等腰三角形”)

ELSEWRITE(“一般三角形”)

STOP

六、面向对象分析与设计过程

1.面向对象分析(OOA)的任务?

OOA的基本过程?

2.面向对象设计(OOD)的主要任务?

OOD与OOA的区别和联系?

3.OOD模型的组成(四部分)及内容?

一、理解下列基本概念:

1、对象的含义及特点?

2、类的含义?

3、消息及消息传递的含义及作用?

4、继承的含义?

5、面向对象软件开发方法的要点

6、UML的含义及用途?

二、需要掌握的内容:

1、面向对象建模的主要工作?

三种面向对象模型(对象模型、动态模型、功能模型)之间的关系?

2、对象模型的含义及其表示(类图);

对象之间的关系?

类之间的关系?

3、动态模型的含义及其表示(事件追踪图、状态图)

4、功能模型的含义及其表示(数据流图、用例图)

◆第6章习题

1.解释以下概念并通过一个例子加以说明:

对象;

类;

关联;

继承;

聚集

2.为什么面向对象方法要从多个侧面(对象模型、动态模型、功能

模型)建立系统模型。

3.建立符合下列陈述的对象模型

某图书馆有许多名职员为之工作,职员又进一步划分为馆长

和管理员两类;

馆长可对图书借阅工作进行管理,每名管理员可

管理多本图书,每本图书可由多名管理员管理;

图书拥有许多读

者,借书证号惟一地确定一个读者;

读者又可分为教师和学生两

类,每名教师或学生可以借阅数本图书,每一种图书可供多名教

师或学生借阅。

七、软件维护

1.软件维护的含义及类型?

2.软件维护过程?

3.◆需要掌握的内容:

4.1、面向对象分析(OOA)的任务?

5.面向对象分析(OOA)过程中包括哪些活动?

6.2、三种面向对象模型各自表示的内容?

7.3、对象模型的表示工具?

动态模型的表示工具?

功能模型的表示工具?

8.4、结合软件开发实例,理解三种面向对象模型之间的关系

9.以及面向对象分析环节完成的主要工作。

10.

11.

-----------------------------------------------------------------------------

●课堂练习题目

一、填空题

1.软件主要包括程序、和三部分内容。

2.软件可行性研究的任务是从技术、和三个方面分析软件项目的可行性。

3.软件测试的目的是;

通常把软件测试方法分为和两大类。

4.结构化分析方法中,功能模型用描述;

数据模型用描述。

5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以按照自己的需要为同名行为设计不同的算法,此性质称为类的__。

二、选择题

1.产生软件危机的主要原因有(C)。

软件本身的特点

用户使用不当

硬件可靠性差

程序员水平

缺乏好的开发方法和管理手段

A.

B.

C.

D.

2.需求分析阶段,开发人员需从用户那里获得的最重要信息是(C)。

A.用户能接受的开发费用B.用户能接受的开发周期

C.用户要让软件做什么D.软件应具有何种结构

3.数据流图中的每个处理至少有(B)。

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

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

4.在面向数据流的设计方法中,一般把数据流图划分为(C)两种类型。

  A.数据流和事务流 B.变换流和数据流 C.变换流和事务流 D.控制流和事务流

5.数据流图所描述的是实际系统的(A)。

A.逻辑模型B.物理模型C.程序流程D.数据结构

6.由变换型数据流图转换成模块结构图,其中包括变换模块,则(B)。

A.变换模块就是主模块B.变换模块的功能是将逻辑输入变换为逻辑输出

C.变换模块没有下层模块D.变换模块只能有一个输入量、一个输出量

7.为了提高软件测试的效率,应该(C)。

A、在完成编码以后制定软件的测试计划B、取一切可能的数据作为测试数据

C、选择发现错误可能性大的数据作为测试用例D、随机地选取测试数据

8.有一个计算程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:

-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是(C)

A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法

9.关于单元测试,正确的是(C)。

A.单元测试的依据是概要设计说明书B.单元测试中不需要使用白盒测试法

 C.单元测试包括模块接口测试D.单元测试时不需要辅助模块

10.有关集成测试的叙述中,(A)是正确的。

A.测试底层模块时不需要桩模块B.自底向上测试方法有利于提前预计测试结果

C.驱动模块的作用是模拟被调模块D.自顶向下测试方法易于设计测试用例

11.(D)表示了类之间的“一般__特殊”关系。

  A.聚集    B.关联    C.消息传递   D.继承

12.OOA模型规定了一组对象如何协同才能完成软件系统所指定的工作。

这种协同在模型中是以表明对象通信方式的一组(A)连接来实现的。

A.消息B.记录C.数据D.属性

13.面向对象开发方法定义了三种模型来描述系统,(B)可以用数据流图来表示

A.对象模型  B.功能模型   C.动态模型  D.数据模型

14.面向对象分析(OOA)的主要活动不包括(D)。

A.确定对象B.确定属性C.确定关联D.确定方式

15.软件开发中,阶段评审是非常重要的环节,其主要目的和作用是(B)。

A.减少测试工作量B.避免后期付出高代价

C.保证软件质量D.缩短软件开发周期

三、概念解释

1.软件危机2.软件生命周期3.需求分析4.概要设计

5.内聚6、多态性7、软件测试8、驱动模块

四、简答题

1.什么是软件危机?

如何消除软件危机?

2.作为某软件公司的工程师,你将采用结构化方法开发一套适用于住宅小区的智能家庭保安系统。

简述开发步骤和每个步骤完成的主要任务。

3.什么是需求分析?

简述需求分析的基本任务。

4.什么是模块独立性?

5.简述变换分析设计方法的步骤。

6.简述对象和类的概念,二者关系如何?

7.什么是等价类划分测试法?

该方法设计测试用例的主要步骤是什么?

8.软件测试要经过哪几个阶段?

各阶段完成哪些主要工作?

五、应用题

1..某商品进销存管理系统的部分功能如下:

(1)仓库管理员负责输入商品的入/出库清单、维护商品库存信息;

定时统计、打印商品库存的月报表给商品销售经理。

(2)销售员负责输入商品销售、退换信息,并打印购货清单给客户;

商品销售的相关信息要存

入相应文件。

请画出描述上述功能的分层数据流图。

(画出顶层、1层和2层数据流图)

2.设有下列语句序列:

read(x,y);

if(x>

1)and(y<

=5)

thenz=x*y

elsez=x+y;

ifz=12thenz=2*z;

write(z).

分别使用语句覆盖、判定覆盖、条件覆盖方法设计测试用例

3、使用PAD图描述下列算法逻辑:

4.建立描述下列信息的对象模型:

一所高校包括若干个系和若干名学生;

每个系由若干名教师组成;

学生分为研究生和本科生两类;

每个系开设若干门课程、任何一门课程只能由一个系开出;

每个教师可以讲授的课程不超过三门、每门课程允许一到两个教师讲授。

————————————————————————————————————

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1