软件工程期末复习.docx
- 文档编号:25784968
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:11
- 大小:21.73KB
软件工程期末复习.docx
《软件工程期末复习.docx》由会员分享,可在线阅读,更多相关《软件工程期末复习.docx(11页珍藏版)》请在冰豆网上搜索。
软件工程期末复习
第一章概述
1、软件工程方法学的三个要素:
方法、工具和过程
2、目前广泛使用的软件工程方法学是传统方法学(结构化范型)和面向对象方法学
3、软件生命周期分成哪几个阶段?
软件定义、软件开发、运行维护(软件维护)3个时期
软件定义分为3各阶段:
问题定义、可行性研究和需求分析
软件开发:
总体设计、详细设计、编码和单元测试、综合测试(系统设计和系统分析)
4、典型的生命周期模型包括瀑布模型、快速原型模型、螺旋模型、喷泉模型、RUP等
第二章可行性研究
1、可行性研究的目的
就是用最小的代价在尽可能短的时间内确定问题是否能够解决
3种解法的可行性:
技术可行性、经济可行性、操作可行性
2、什么是系统流程图?
它包括哪些符号?
基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。
处理(能改变数据值或数据位置的加工或部件)输入输出(表示输入或输出)连接换页连接数据流
3、什么是数据流图?
它包括哪些符号?
(符号:
正方形、圆角矩形、开口矩形、箭头)
4、数据流图为什么要分层?
在一张数据流图中包含多少个元素合适?
一般来说,如果一张数据流图中包含的处理多于9个,人们就难于领会它的含义,因此数据流图应该分层,并且在功能级数据流图细化后得到的处理超过9个时,应该采用画分图的方法,也就是把每个主要功能都细化为一张数据流分图,而原有的功能级数据流图用来描绘系统的整体逻辑概貌。
5、什么是数据字典?
它的用途是什么?
它包括哪四类元素的定义?
(元素定义:
数据流、数据流分量(即数据元素)、数据存储、处理)
6、成本估计的三种技术
代码行技术、任务分解技术、自动估计成本技术
第三章需求分析
1、需求分析的基本任务是什么?
主要包括哪几项?
(任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题)主要包括:
确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统开发计划。
2、需求分析的结果以软件需求规则说明书的形式提交
3、需求分析应该建立三种模型,分别是数据模型、功能模型和行为模型。
4、实体-联系图是用于建立数据模型的图形。
5、数据模型包括三种相互关联的信息:
数据对象、数据对象的属性及数据对象彼此之间相互连接的关系。
6、ER图用什么图形符号表示实体、关系和属性这三种基本成分。
P64
7、什么是状态图?
它的作用是什么?
它使用了哪些符号?
p66
8、需求分析可能用到的另外三种图形工具:
层次方框图、Warnier图和IPO图
第五章总体设计
1、总体设计通常由两个主要阶段组成:
系统设计阶段和结构设计阶段。
2、典型的总体设计包括哪九个步骤?
p91
设想供选择的方案、选取合理的方案、推荐最佳方案、功能分解、设计软件结构、设计数据库、制定测试计划、书写文档、审查和复查
3、软件设计过程中应该遵循的基本原理包括哪些?
p94
模块化、抽象、逐步求精、信息隐藏和局部化、模块独立
4、度量模型的独立程度的两个标准是内聚和耦合。
(尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合)
5、描述软件结构的图形工具包括:
层次图和HIPO图、结构图。
6、面向数据流的设计方法的原理和过程。
P104
7、什么是变换流?
什么是事务流?
p105
信息沿输入通路进入系统,同时由外部形式交换成内部形式,进入系统的信息通过交换中心,经过加工处理以后再沿输出通路交换成外部形式离开软件系统。
当数据流图具有这些特征时,这种信息流叫做交换流。
数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,这类数据流应该划为一类特殊的数据流,称为事务流。
第六章详细设计
1、详细设计的目标和任务是什么?
p117
目标是确定应该怎样具体地实现所要求的系统
任务是要设计出程序的“蓝图”,以后程序员将根据蓝图写出实际的程序代码。
2、什么是结构程序设计?
结构程序设计是尽可能少用GOTO语句的程序设计方法,最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前向GOTO语句。
3、过程设计的工具可以分为图形、表格和语言三类。
4、什么是程序流程图?
它包括哪些符号?
p124
又称程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而也是用的最混乱的一种方法。
5、什么是盒图(即N-S图)?
盒图的表示方法?
p125
方法:
顺序、if-then-else型分支、case型多分支、循环、调用子程序A
6、什么是PAD图?
它的基本符号有哪些?
p126
是用二维树形结构的图来表示程序的控制流!
7、什么是判定表和判定树?
它们起什么作用?
P128
作用:
判断表能够简洁而又无歧义地描述处理规则。
当把判定表和布尔代数或卡诺图结合起来使用时,可以对判定表进行校验或化简。
判断树:
能清晰表示复杂的条件组合与应做的动作之间的对应关系。
是一种比较常用的系统分析和设计工具。
8、什么是伪码?
(PDL)过程设计语言也称为伪码,是用正文形式表示数据和处理过程的设计工具。
9、Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法。
10、定量度量程序复杂性的两种方法:
McCabe方法和Halstead方法
第七章实现
1.什么编码?
就是把软件设计结果翻译成用某种程序设计语言书写的程序。
P145
2、软件测试的目标和目的是什么?
在测试阶段测试人员努力设计出一系列测试方案,目的是为了“破坏”已经建造好的软件系统---竭力证明程序中有错误,不能按照预定要求正确工作。
根本目标:
尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。
3、软件测试过程由哪几个步骤组成?
模块测试、子系统测试、系统测试、验收测试、平行运行
4、什么是单元测试?
单元测试着重从哪五个方面测试?
模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件
5、什么是集成测试?
是测试和组装软件的系统化技术。
6、什么是白盒测试技术?
P1627、什么是黑盒测试技术?
第八章维护
1、什么是软件维护?
就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
2、什么是软件再工程过程?
P198
第九章面向对象方法学引论
1、什么是对象?
什么是类?
什么是实例?
类:
一个类及属于该类的对象;实例:
(对象模型把面向对象的概念与传统方法中常用的信息建模概念结合起来,从而改进与增宽了普通的信息模型,增强了信息的可理解性和表达能力)
2、什么是消息?
什么是方法?
什么是属性?
消息是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。
方法是对象所能执行的操作,也就是类中所定义的服务。
属性是类中所定义的数据,是对客观世界实体所具有的性质的抽象。
3、什么是封装?
什么是继承?
什么是多态性?
什么是重载?
封装是把某个事物包起来,使外界不知道该事物的具体内容。
继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
多态性:
在类等级的不同层次中可以共享一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。
重载:
函数重载和运算符重载
4、用面向对象的方法开发软件,通常需要建立三种形式的模型,它们分别是对象模型、动态模型和功能模型。
5、通常用UML提供的类图来建立对象模型。
6、UML的类图中包括哪些基本符号?
P217
7、类与类之间的关系通常有关联、泛化(继承)、依赖和细化等四种。
8、通常用UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)。
9、什么是用例图?
它包括哪些模型元素?
P225
系统、用例、行为者、用例之间的关系
第十章面向对象分析
1、面向对象建模得到的模型包含系统的三个要素,即静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)。
2、复杂问题的对象模型通常由五个层次组成:
主题层、类与对象层、结构层、属性层和服务层。
3、建立对象模型的典型的工作步骤包括哪些?
确定类与对象、确定关联、划分主题、确定属性、识别继承关系、反复修改
第十一章面向对象设计
1、面向对象设计的准则包括哪些?
模块化、抽象、信息隐藏、弱耦合、强内聚、可重用
2、什么是重用?
一是尽量使用已有的类(包括开发环境提供的类库,及以往开发类似系统时创建的类),二是如果确实需要创建新类,则在设计这些新类的协议时,应该考虑将来的可重复使用性。
3、典型的可重用的软件成分包括哪些?
项目计划、成本估计、体系结构、需求模型和规格说明、设计、源代码、用户文档和技术文档、用户界面、数据、测试用例
4、类构件的重用方式有哪三种?
实例重用、继承重用、多态重用
5、大多数面向对象的系统,从逻辑上都可以划分为四个子系统,分别是问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统。
6、设计关联时,可以采用哪三种方法来实现双向关联?
关联的遍历、实现单向关联、实现双向关联、关联对象的实现
第十二章面向对象实现
1、面向对象实现主要包括两项工作:
一是把面向对象设计结果翻译成用某种程序设计语言书写的面向对象程序;二是测试并调试面向对象程序。
2、良好的面向对象程序设计风格准则包括:
提高可重用性、提高可扩充性和提高健壮性。
3、面向对象的测试策略是什么?
面向对象的单元测试、面向对象的集成测试、面向对象的确认测试
4、测试类的技术主要有随机测试、划分测试和基于故障的测试等。
名词解释:
软件生命周期:
表明一个计算机软件从功能确定、设计、到开发成功投入使用,并在使用中不断地修改、增补和完善,直至被新的需要所替代而停止该软件的使用的全过程。
需求分析:
是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?
”这个问题
系统流程图:
是概括地描绘物理系统的传统工具。
他的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。
它表达的是数据在系统各部件之间流动的情况。
数据流图;(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的交换
数据字典:
是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合
实体-联系图:
是用于建立数据模型的图形
状态转换图:
是通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
内聚:
是信息隐藏和局部化概念的自然扩展。
耦合:
是对一个软件结构内不同模块之间互连程度的度量
单元测试:
通常在编写出每个模块之后就对它做必要的测试,模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一个阶段。
(又称模块测试,集中对软件设计的最小单元—模块进行测试,主要是为了发现模块内部可能存在的各种错误和不足)
白盒测试法:
也称为结构测试或逻辑驱动测试,已知产品的内部工作过程,对它的每种内部操作进行测试,看是否按照规格说明书的规定正常运行。
黑盒测试法:
也称为功能测试或数据驱动测试,已知产品的功能的基础上,对它的每一个功能进行测试,看是否都达到了预期的要求。
确认测试:
也称为验收测试,目标是验证软件的有效性。
集成测试:
是测试和组装软件的系统化技术。
软件的质量保证:
SQA(是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度)
对象:
是对问题域中某个实体的抽象,设立某个对象就反映了软件系统具有保存有关它的信息并且与它进行交互的能力。
简答题:
1、简要介绍软件生命周期每个阶段的基本任务。
问题定义:
要解决的问题是什么
可行性研究:
及时终止不值得投资的工程项目,可以避免更多的浪费
需求分析:
用正式文档准确地记录对目标系统的需求,这份文档被称为规格说明书
总体设计:
设计工作确定了解决问题的策略及目标系统中应包含的程序和设计程序的体系结构,也就是确定程序由哪些模块组成以及模块间的关系
详细分析:
将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构
编码和单元测试:
写成正确的容易理解、容易维护的程序模块
综合测试:
通过各种类型的测试使软件达到预定的要求
2、可行性研究的任务是什么?
3、需求分析阶段的基本任务是什么?
4、什么是数据流图?
其作用是什么其中的基本符号各表示什么含义?
数据流图;(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的交换。
作用:
描绘数据在软件中流动和被处理的逻辑过程;是分析人员与用户之间极好的通信工具;是今后进行软件设计的很好出发点。
正方形(或立方体)表示数据的源点或终点;圆角矩形(或圆形)代表交换数据的处理;开口矩形(或两条平行横线)代表数据存储;箭头表示数据流,即特定数据的流动方向
5、什么是数据字典?
简述数据字典与数据流图的关系。
数据字典:
是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据流图就不严格,然而没有数据流图,数据字典也难于发挥作用。
只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
6、详细设计的基本任务是什么?
有哪几种描述方法?
目标是确定应该怎样具体地实现所要求的系统
任务是要设计出程序的“蓝图”,以后程序员将根据蓝图写出实际的程序代码。
工具:
程序流程图、盒图、PAD图、过程设计语言(PDL)、判定表、判定树
7、白盒测试法有哪些覆盖标准?
试对它们的检错能力进行比较。
语句覆盖是很弱的逻辑覆盖标准、判定覆盖比语句覆盖强,但是对程序逻辑的覆盖程度仍然不高、条件覆盖通常比判定覆盖强、判定/条件覆盖有时也并不比条件覆盖更强、条件组合覆盖:
满足条件覆盖标准的测试数据,也一定满足判定覆盖、条件覆盖和判定/条件覆盖标准,是前述几种覆盖标准中最强的、点覆盖和与语句覆盖标准时相同的、边覆盖通常和判定覆盖式一致的、路径覆盖。
8、采用黑盒技术设计测试用例有哪几种方法?
这些方法各有什么特点?
等价划分、边界值分析、错误推测
9、什么是单元测试和集成测试?
它们各有什么特点?
特点:
单元测试集中检测软件设计的最小单元—模块,单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行地进行。
测试重点:
模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件。
集成测试有两种策略:
自顶向下集成和自底向上集成
10、决定软件可维护性的因素主要包括哪几个?
简要介绍一下每个因素。
P195
可理解性、可测试性、可修改性、可移植性、可重用性。
11、面向对象方法学包含哪些核心概念?
简述之。
12、叙述面向对象方法中三种模型的主要功能?
对象模型:
表示静态的、结构化的系统的”数据性质”,它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构,对象模型为建立动态模型和功能模型,提供了实质性的框架。
动态模型:
要对一个系统了解得比较清楚,首先应当考察它的静态结构,即在某一时刻它的对象和这些对象之间相互关系的结构,然后应当考察在任何时刻对象及其关系的改变。
系统的这些涉及时序和改变状况,用动态模型来描述。
动态模型着重于系统的控制逻辑。
功能模型:
更直接地反映了用户对目标系统的要求。
建立功能模型有助于软件开发人员更深入地理解问题域,改进和完善自己的设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 期末 复习