软件工程导论复习宝典.docx

上传人:b****7 文档编号:15274313 上传时间:2023-07-03 格式:DOCX 页数:20 大小:952.77KB
下载 相关 举报
软件工程导论复习宝典.docx_第1页
第1页 / 共20页
软件工程导论复习宝典.docx_第2页
第2页 / 共20页
软件工程导论复习宝典.docx_第3页
第3页 / 共20页
软件工程导论复习宝典.docx_第4页
第4页 / 共20页
软件工程导论复习宝典.docx_第5页
第5页 / 共20页
软件工程导论复习宝典.docx_第6页
第6页 / 共20页
软件工程导论复习宝典.docx_第7页
第7页 / 共20页
软件工程导论复习宝典.docx_第8页
第8页 / 共20页
软件工程导论复习宝典.docx_第9页
第9页 / 共20页
软件工程导论复习宝典.docx_第10页
第10页 / 共20页
软件工程导论复习宝典.docx_第11页
第11页 / 共20页
软件工程导论复习宝典.docx_第12页
第12页 / 共20页
软件工程导论复习宝典.docx_第13页
第13页 / 共20页
软件工程导论复习宝典.docx_第14页
第14页 / 共20页
软件工程导论复习宝典.docx_第15页
第15页 / 共20页
软件工程导论复习宝典.docx_第16页
第16页 / 共20页
软件工程导论复习宝典.docx_第17页
第17页 / 共20页
软件工程导论复习宝典.docx_第18页
第18页 / 共20页
软件工程导论复习宝典.docx_第19页
第19页 / 共20页
软件工程导论复习宝典.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

软件工程导论复习宝典.docx

《软件工程导论复习宝典.docx》由会员分享,可在线阅读,更多相关《软件工程导论复习宝典.docx(20页珍藏版)》请在冰点文库上搜索。

软件工程导论复习宝典.docx

软件工程导论复习宝典

复习课

第一章

1、什么是软件危机

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2、什么是软件工程,软件工程的本质特性

概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。

它采用工程的概念,原理,技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效得维护它。

本质特性:

1)软件工程关注于大型程序的构造

2)软件工程的中心课题是控制复杂性

3)软件经常变化

4)开发软件的效率非常重要

5)和谐地合作是开发软件的关键

6)软件必须有效地支持它的用户

7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品

3、瀑布模型、快速原型模型、增量模型、螺旋模型--的:

基本思想、特点

瀑布模型:

将软件开发活动中的各项活动规定为按线性顺序联接的若干阶段工作

特点:

1)阶段间具有顺序性和依赖性

2)推迟实现的观点

3)质量保证的观点

适用场合:

适合于功能和性能明确、完整、无重大变化的软件开发。

快速原型模型:

快速建立起来的、可在计算机上运行的程序,它所能完成的功能往往是最终的软件产品所能完成的功能的子集。

优点:

1)使用这种软件过程开发出的软件产品通常能满足用户的真实需求;

2)软件产品的开发过程基本上是线性顺序过程。

适用场合:

适合于不能预先确切定义需求的软件系统的开发,或项目组成员不能很好的交流或通信有困难的情况。

增量模型(渐增模型):

把软件产品作为一系列的增量构件来设计、编码、集成和测试,并且能够完成特定的功能。

优点:

1)能在较短时间内向用户提交可完成部分工作的产品;

2)逐步增加产品功能,从而使用户有较充裕的时间学习和适应新产品,减少一个全新的软件给客户组织带来的冲击。

适用场合:

适合于项目规模较大,比较容易分解;项目分解后的子项目独立性强;对已有基础的系统进行功能的改善和补充。

螺旋模型:

使用原型及其他方法来尽量降低风险。

(可看成是在每个阶段之前都增加了风险分析过程的快速原型模型)

优点:

1)有利于已有软件的重用

2)有助于把软件质量作为软件开发的一个重要目标

3)减少了过多测试或测试不足所带来的风险

4)软件维护与软件开发没有本质区别

适用场合:

适合于大型软件项目的开发,要求项目所有阶段直接考虑技术风险,即需要有相当丰富的风险评估经验和专门知识的人。

喷泉模型:

一种以用户需求为动力,以对象为驱动的模型,且软件开发过程自下而上周期的各阶段是相互迭代和无间隙的。

适用场合:

适合于面向对象的软件开发。

4、在软件工程中,软件工具所起的作用

软件工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。

提高开发效率和软件质量。

第二章

1、什么是:

经济可行性、技术可行性、运行与操作可行性、法律可行性

技术可行性:

使用现有的技术能否实现这个系统吗?

经济可行性:

这个系统的经济效益能否超过它的开发成本?

操作可行性:

系统的操作方式在这个用户组织内是否行得通?

法律可行性:

系统的开发使用,在当国当地当时合法吗?

2、物理模型的简单描述工具

1)系统流程图的定义:

是概括地描绘物理系统的传统工具。

它用图形符号以黑盒子形式描绘组成系统的每个部件。

系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,是物理数据流图而不是程序流程图。

2)数据流图的定义:

它是一种图形化技术,它描述信息和数据从输入移动到输出过程中所经历的变换。

在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。

数据流图的基本符号:

正方形(或立方体)表示数据的源点或终点;

圆角矩形(或圆形)代表变换数据的处理;

开口矩形(或两条平行横线)代表数据存储;

箭头线表示数据流,即特定数据的流动方向。

3)数据字典的定义:

是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。

数据字典的内容:

数据流、数据流分量、数据存储、处理

第三章

1、需求分析的任务

需求分析的任务:

(1)确定对系统的综合要求:

功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求

(2)分析系统的数据要求:

(3)导出系统的逻辑模型(4)修正系统开发计划

2、数据流图、状态转换图、E-R图、数据字典,的详细结构(组成元素、描述的内容)

1)E-R图的定义:

即实体--联系图,是表示数据对象及其之间关系的图形语言机制,是建立数据模型的图形工具。

E-R图的基本成份和使用的符号:

实体(即数据对象)----矩形框,

关系----菱形框,

属性----椭圆形或圆角矩形。

E-R图描述的模型:

用来建立数据模型,ER模型使用简单的图形符号表达系统分析员对问题域的理解

2)状态转换图的定义:

通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

状态转换图的基本成份和使用的符号:

基本成分是状态、事件、状态转换。

状态转换图描述的模型:

用来建立系统的行为模型。

3、结构化分析应建立哪三大模型,分别用什么工具描述

建模的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。

(1)数据模型,用实体-联系图描述;

(2)功能模型,用数据流图描述;

(3)行为模型,用状态转换图描述。

4、需求采集的各种方法

1)访谈

2)问卷调查

3)观察用户工作流程

4)情景分析技术

5、数据规范化的目的和方法

目的:

为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程

方法:

范式定义

6、需求分析阶段结束形成的完整文档包含哪两部分

软件需求规格说明书包含详细的数据流图和数据字典

第五章

1.软件总体结构的描述工具是什么,结构图和层次图的区别

(1)软件层次图

定义:

是用来描绘软件层次结构的图形工具。

一个矩形框代表一个模块,方框间的连线表示模块间的调用关系。

软件层次图的示例:

(2)HIPO图

定义:

即层次图+输入/处理/输出图,由一张H图和一组IPO图组成。

通常将HIPO图作为软件结构的描绘,列入设计文档。

H图,是给每个模块加上编号的层次图。

IPO图,即为H图中的每个模块画一张IPO图。

(3)结构图(SC)

定义:

描述了软件的模块结构,表示了一个系统的层次分解关系;反映了模块间的联系以及块内联系;反映了模块间的信息传递。

结构图一般不列入设计文档,只用于设计阶段检查模块设计的正确性和模块独立性。

结构图(SC)的基本符号:

A

方框,内有名称,表示模块;

直线,表示上层模块对下层模块的调用;

尾部带空心圆的箭头,表示按方向传递的数据信息;

尾部带实心圆的箭头,表示按方向传递的控制信息;

判定为真时调用A,为假时调用B模块M循环调用模块A、B、C

2.两种不同类型的数据流图分别是什么、结构如何

数据流分类:

SD方法把信息流(数据流图)映射成软件结构,信息流的类型决定了映射的方法。

DFD中的数据流可分为两类:

变换型数据流、事务型数据流;可转换为相应的软件结构:

变换型结构、事务型结构。

3.如何将两种不同类型的数据流图映射(设计)为初始软件结构图/层次图

(1)变换分析----从变换流到变换型结构的映射过程:

(2)事物分析----从事物流到事物型结构的映射过:

4、软件工程的中心课题是控制软件的复杂度;在总体设计阶段,软件复杂度主要体现为模块独立性;描述模块独立性的两个指标分别是耦合和内聚;软件设计要做到高内聚、低耦合。

耦合的含义,各级耦合的具体含义,如何判断两个模块间的耦合级别

(1)耦合定义:

它是对一个软件结构内不同模块之间互连程度的度量;

耦合分类:

耦合使用原则:

尽量使用数据耦合,小用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合,最终降低模块间接口的复杂性。

内聚的含义,各级内聚的具体含义,如何判断一个模块的内聚级别

(2)内聚定义:

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

内聚分类:

内聚使用原则:

设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

(3)耦合和内聚两者关系:

耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。

其中内聚更重要。

内聚与耦合密切相关。

同其它模块强耦合的模块意味着它自己是弱内聚的;强内聚模块意味着与其它模块间松散耦合。

所以设计的目标应该是力争高内聚、低耦合。

5.信息隐藏的定义和原因

信息隐藏是指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。

原因:

信息隐藏主要是为了提高软件的可重用性和可维护性。

由于信息隐藏造成了系统各个部分耦合性低,而系统是由各个部分构成的,如果这些部分耦合性低的话,那么将会提高模块的独立性,从而减少修改或维护时的影响面。

6.总体设计阶段结束形成的文档包含哪些部分

(1)系统说明

(2)用户手册

(3)测试计划

(4)详细的实现计划

(5)数据库设计结果

第六章

1.什么是结构化程序

结构化程序设计,模块内部是由顺序结构、选择结构和循环结构三种控制结构连接起来的。

2.详细设计的描述工具:

程序流程图、盒图(N-S图)、PAD图、判定表/判定树----什么是,基本符号和含义,画法,工具的具体作用

(1)程序流程图

定义:

又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。

程序流程图的基本符号:

(2)盒图(N-S图)

定义:

出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图。

它有下述特点:

(1)功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。

(2)没有箭头,不可能任意转移控制。

(3)很容易确定局部和全程数据的作用域。

(4)很容易表现嵌套关系,也可以表示模块的层次结构。

盒图(N-S图)的基本符号:

(a)顺序;(b)IF_THEB_ELSE型分支;(c)CASE型多分支;(d)循环;(e)调用子程序

(3)PAD(问题分析图)

定义:

1973年由日本日立公司发明。

它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。

PAD(问题分析图)的基本符号:

(a)顺序;(b)选择(IFCTHENP1ELSEP2);(c)CASE型多分支;(d)WHILE型循环(WHILECDOP);(e)UNTIL型循环(REPEATPUNTILC);(f)语句标号;(g)定义

3.在详细设计阶段,软件复杂度主要体现为程序的复杂程度,可用程序模块的环形复杂度(McCabe方法)来度量,或用Halstead方法来度量

4.程序的环形复杂度:

计算工具:

流图--退化了的程序流程图

计算方法:

3种方法,其中第一种方法最常用。

环形复杂度的定义:

即程序的逻辑复杂度,主要是指模块内程序的复杂性。

计算方法:

(1)流图中的区域数等于环形复杂度

区域:

由边和结点围成的面积称为区域。

当计算区域数时应该包括图外部未被围起来的那个区域。

即流图的封闭区域数加1。

(2)流图的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。

(3)流图的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。

环形复杂度与模块中独立路径数量间的联系

程序的环形复杂度取决于程序控制流的复杂程度,也即是取决于程序结构的复杂程度。

当程序内分支数或循环个数增加时,环形复杂度也随之增加,因此它是对测试难度的一种定量度量,也能对软件最终的可靠性给出某种预测。

McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。

实践表明,模块规模以V(G)≤10为宜,也就是说,V(G)=10是模块规模的一个更科学更精确的上限。

5.详细设计阶段结束形成的文档包含哪些部分

软件结构、模块详细设计

第七章

1.程序设计语言应如何选择

通常把编码和测试统称为实现。

(1)系统用户的要求

(2)可以使用的编译程序

(3)可以得到的软件工具

(4)工程规模

(5)程序员的知识

(6)软件可移植性要求

(7)软件的应用领域

2.编码风格涉及的一系列内容,重点是代码文档化和程序效率问题

3.单元测试、集成测试、确认/验收测试,测试计划(包括用例)在什么时候书写,形成文档;测试又在什么时候进行,由谁执行测试

(1)模块测试(单元测试)

目的:

保证每个模块作为一个单元能正确运行。

在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。

内容:

(1)模块接口测试----检测数据能否正确无误地进入和流出模块

(2)路径测试

(3)出错处理测试----测试程序中包含的出错处理是否有效

(4)边界条件测试----检测在数据边界处,模块能否正常工作

单元测试计划的时间:

在详细设计结束时制定,主要使用白盒测试技术

一般认为单元测试应紧接在编码之后,当源程序编制完成并通过复审和编译检查,便可开始单元测试。

由开发人员执行。

(2)集成测试

任务:

在单元测试的基础上,需要将所有模块按照设计要求组装成为系统,发现并排除在模块连接的接口中可能出现的问题,最终构成所要求的软件系统。

内容:

(1)把各个模块连接起来后,考察穿越模块接口的数据是否会丢失或产生错误

(2)各个子功能组合起来,能否达到预期要求的主要功能

(3)一个模块的功能是否会对另一个模块的功能产生不利的影响

(4)全局数据结构是否有错误

(5)单个模块的误差累积起来,是否会被放大,从而达到不能被接受的程度

集成测试计划的时间:

在总体设计结束时制定,详细设计结束时补充

(3)确认测试

目的:

也称为称验收测试。

它的主要目标是验证软件的有效性。

证实软件功能与用户需求是否一致,即测试软件能否按照软件需求规格说明书(合同)的要求运行。

内容:

有效性测试、软件配置复查、验收测试

确认测试计划的时间:

在需求分析时制定,后续阶段补充,通过黑盒测试技术。

4.测试用例由什么组成

测试用例由输入数据和预期的输出数据组成。

(1)软件或项目的名称;

(2)软件或项目的版本(内部版本号);

(3)功能模块名;

(4)测试用例的简单描述,即该用例执行的目的或方法;

(5)测试用例的参考信息(便于跟踪和参考);

(6)本测试用例与其他测试用例间的依赖关系;

(7)本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限;

(8)用例的编号(ID),如可以是软件名称简写-功能块简写-NO.;

(9)步骤号、操作步骤描述、测试数据描述;

(10)预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略);

(11)开发人员(必须有)和测试人员(可有可无);

(12)测试执行日期。

5.软件测试的方法

静态测试----什么是;动态测试----什么是

白盒测试----针对逻辑结构测试

白盒测试的定义:

也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

应用时间:

白盒测试在测试过程的早期阶段进行

白盒测试技术:

(1)逻辑覆盖:

语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖;

(2)控制结构测试:

基本路径测试、条件测试、循环测试。

黑盒测试----针对功能测试

黑盒测试的定义:

着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

应用时间:

黑盒测试主要用于测试过程的后期。

黑盒测试技术:

(1)等价划分;

(2)边界值分析;(3)错误推测。

例子1:

时间报表(需8个测试实例)

例子2:

学号(需10个测试实例)

6.黑盒测试技术中等价类划分测试和边界值分析测试,测试用例的设计

等价类划分测试和边界值分析测试,都属于黑盒测试,可以用来完成功能测试,设计用例前都要首先划分等价类。

注意两种方法在设计测试用例时的区别。

同上

后面各章

1.什么是软件维护

软件维护定义:

就是在软件已经交付使用之后,为了改正错误或满足新的需要而修正软件的过程。

维护分为四种类型:

(1)改正性维护:

把整断和改正错误的过程称为改正性维护

(2)适应性维护:

为了和变化的环境适当的配合而进行的修改软件的活动,

(3)完善性维护:

在使用软件的过程中用户常常提出新增功能或修改已有功能的建议,为了满足这类要求的活动

(4)预防性维护:

为了改进将来的可维护性或可靠性;

所占比例:

完善性维护:

50%~66%改正性维护:

17%~21%适应性维护:

18%~25%其他维护:

4%

2.什么是软件配置项、什么是软件配置(完整的软件配置由哪些内容组成)

软件配置项:

(1)计算机程序(源代码和可执行程序);

(2)描述计算机程序的文档(供技术人员或用户使用);

(3)数据(程序内包含的或在程序外的)。

软件配置:

是指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。

3.什么是基线(在什么时候产生)?

基线的定义:

通过了正式复审的软件配置项称为基线,只有通过正式的变化控制过程才能改变它。

是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化。

4.如何逐步完成工程网络图,估算工程进度

5.什么是软件再工程,它包括哪些软件工程活动

软件再工程,。

它将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式,改进它的综合质量。

活动分为库存目录分析,文档重构,逆向工程,代码重构,数据重构,正向工程。

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2