软件工程各章节提纲解析.docx
- 文档编号:8869571
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:15
- 大小:90.95KB
软件工程各章节提纲解析.docx
《软件工程各章节提纲解析.docx》由会员分享,可在线阅读,更多相关《软件工程各章节提纲解析.docx(15页珍藏版)》请在冰豆网上搜索。
软件工程各章节提纲解析
第4章需求分析
1.什么是软件需求?
用户对目标系统在功能、行为、性能等方面的要求
2.什么是需求分析?
对软件需求的理解、分析与表达
3.需求工程的六个阶段是什么?
需求获取、需求分析与协商、系统建模、需求规约、需求验证、需求管理
4.什么是需求工程?
运用相关的方法与技术进行需求分析的过程
5.需求获取的方法?
建立顺畅的沟通渠道、访谈与调查、组成联合小组(FAST法、用例)、观察用户的使用流程。
6.需求分析的原则是什么?
必须理解分析软件的信息域、功能、行为、服务以及操作,划分子系统,并逐步求精。
7.软件模型的分类有哪些?
需求模型、设计模型
8.软件建模有哪些方法?
结构化法(E-R图,功能模型)、面向对象法
9.什么是需求规格说明?
对软件需求的书面描述,是需求分析阶段的最终产物。
10.需求规格说明的最基本内容是什么?
描述软件的功能、数据与行为、运行环境、接口、必要的非功能约定
11.什么是需求管理?
对系统需求变更、了解和控制的过程。
12.需求管理的目标是什么?
为软件需求提供一个基线,提供给软件工程和管理使用。
使得软件计划、产品、活动与软件需求保持一致
第5章结构化分析与设计
1.结构化分析模型的描述形式有哪些?
数字字典、数据流图(加工规约)、状态转换图(控制规约)、实体—关系图(数据对象描述)
2.结构化分析方法的概念
结构化分析方法是面向数据流进行分析的方法,利用抽象模型,按照软件内部数据之间的传递、变换的关系,自顶向下地分解,直到找到所有需要的功能的软件为止。
3.结构化分析的工具有哪些?
数据流图、数据字典、结构化英语、判定表以及判定树
4.数据流图有哪些画法规则?
a)顶层图只能有一个加工,就是系统本身,并且不能有文件
b)父图与子图的输入、输出要守恒
c)一个新出现的文件应该含有文件的输入输出,同时,还应该是不同是加工进行读写
d)父图中读取的文件应该要在子图中画出
e)DFD图中每个加工都应该有一个加工规约进行说明,同时,每个加工都应该至少有一个输入、输出
f)在数据流图中,需按层给加工框编号。
编号表明该加工所处层次及上下层的亲子关系
5.数据字典要点:
a)数据流条目:
名称+数据流组成
b)文件条目:
名称+文件组成
c)数据项、加工项、源或宿条目
6.结构化英语的做法:
英语命令动词、数据字典中定义的名词、有限的自定义词、逻辑关系词IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。
7.判定表的大致画法:
8.判定树:
一种分叉数表示各种情况的动作。
9.状态转移图:
状态由三部分组成
(当前状态)、
(状态转换的方向,上面要标注发生的时间)、Ti(发生事件)
第6章软件设计基础
1.什么是软件设计?
软件设计是把软件需求变成软件表示的过程。
软件设计包括两个阶段:
概要设计(体系结构设计)与详细设计(构件级设计);
2.软件设计的任务是什么?
通过一种设计方法,把软件分析模型中软件功能、行为、性能的需求分析实现为数据/类设计、系统设计、接口设计、构件级设计、界面设计
3.软件设计的过程:
制定规范,把软件分析模型中软件功能、行为、性能的需求分析实现为数据/类设计、系统设计、接口设计、构件级设计、界面设计
4.软件设计有什么原则?
a)抽象化与逐步求精(模块化与逐步求精)
b)信息隐藏(模块内的过程、数据对其他不需要这些数据的模块不可访问)
c)模块独立
5.模块独立的衡量标准有什么?
a)内聚:
表示模块内部的数据之间的联结程度
b)耦合:
表示各个模块之间的联结程度
c)模块独立性强的表现是高内聚低耦合
6.体系结构有哪些常见的结构?
a)单主机结构、C/S、B/S结构
b)以数据为中心、数据流风格的(大量输入输出的)、调用返回风格、面向对象、层次性的、评估可选
7.什么样的程序是称为结构化的?
如果一个程序的结构中只有选择、循环、顺序这三种结构并且每个代码块只有一个输入输出的就认为这个程序是结构化的。
8.程序的结构或者说部件级设计的表示方法:
程序流程图(只有五种结构)、N—S图
第7章结构化设计方法
1.什么是概要设计?
概要设计是将程序分解成相应的模块,分清各个模块的接口、功能以及调用关系,并用模块与其模块调用构建软件的结构体系。
2.什么结构图?
描述模块与模块之间的调用关系的结构图。
3.结构图中的几种特殊符号:
a)
条件调用b)循环调用c)递归调用
4.
结构图中有什么模块?
传入模块、传出模块、变换模块、协调模块
5.变换流结构图有什么特征?
结构图可以明显的分为输入、输出、变换模块的结构图
6.事物流图有什么特征?
数据流沿着输入路径到达一个事务中心,事务中心根据输入数据的类型在若干条动作路径中选择一条来执行
7.由数据流图映射到结构图有什么方法?
a)复审和精化数据流图
b)确定结构图的类型(变换、事务)
c)将DFD图转换为初步结构图(变换法、事务法)
d)精化初步结构图
8.变换分析的步骤的什么?
从DFD图中确定变换中心(逻辑输入输出),精化各个物理输入输出端
9.事务分析的步骤:
确定事务中心,分解输入模块,分解动作路径模块
10.软件模块如何进行优化?
a)模块功能完善化(错误处理)
b)高内聚低耦合,深度以及扇度适合
c)模块的作用范围应在控制范围之内
d)减少使用病态联接(直接病态联接、公共数据域病态联接、通信模块联接)
e)模块大小适中
f)降低冗余,提高一致
第8章人机界面设计
1.界面设计中人的因素有哪些?
a)人对感知过程的认识
b)用户的技能和行为方式
c)用户所要求的整个任务以及用户对界面的要求
2.人机界面风格的历史:
a)第一代:
命令和询问方式的界面
b)第二代:
简单的菜单式界面
c)第三代:
窗口、图标、菜单、指示器四位一体的界面
d)第四代:
第三界面与超文本、多任务概念相结合的界面,用户可同时执行多个任务
3.图像用户界面的特点:
以窗口管理系统为核心,使用键盘和鼠标器作为输入设备。
窗口管理系统除基于可重叠多窗口管理技术外,广泛采用的另一核心技术是事件驱动(Event-Driven)技术。
4.界面的分类有哪些?
a)直接操纵用户界面
b)多媒体用户界面
c)多通道用户界面
5.人机界面设计的过程有哪些?
a)用户、任务和环境分析及建模
b)界面设计
c)界面构造
d)界面确认
6.界面设计应注意的问题有?
a)系统响应时间
b)用户求助设施
c)错误信息处理
d)命令标记
7.系统响应时间长会使用户感到不安和沮丧。
稳定的响应时间(如1秒)比不定的响应时间(如0.1秒到2.5秒)要好。
8.界面设计的黄金原则是什么?
让用户拥有控制权、减少用户的记忆负担、保持界面一致
9.界面设计评估有什么方法?
专家评审和可用性测试。
第9章程序设计语言与编码
1.程序设计语言的发展历史有?
第一代:
机器语言和汇编语言;
第二代:
早期高级语言
第三代:
具有很强的数据结构和过程描述能力,支持结构化编码
第四代:
面向领域的
2.源程序文档的标示符有什么相关规则?
1.选择含义明确的名字,使其能正确提示标识符所代表的实体
2.名字不要太长,太长会增加打字量,且易出错。
必要时可使用缩写
3.不用相似的名字,相似的名字容易混淆,不易发现错误
4.不用关键字作标识符
5.同一个名字不要有多个含义
6.名字中避免使用易混淆的字符。
3.程序注析有什么类型?
a)序言性注释:
通常置于每个程序模块的开头部分,主要描述:
模块的功能;模块的接口、局部变量、开发历史:
包括模块的设计者、评审者、评审日期、修改日期以及对修改的描述
b)功能性注释:
通常嵌在源程序体内,主要描述程序段的功能。
书写功能性注解时应注意的问题:
注解要正确;为程序段作注解,而不是为每一个语句作注解;用缩进和空行,使程序与注释容易区分;注解应提供一些从程序本身难以得到的信息,而不是语句的重复。
4.什么叫做代码的视觉组织?
通过在程序中添加一些空格、空行和缩进等技巧,帮助人们从视觉上看清程序的结构。
5.程序编码时数据的说明有什么规范?
a)数据说明的次序应当规范化
b)说明语句中变量安排有序化
c)使用注解说明复杂数据结构
6.程序编写时语句的构造有什么规则?
1.在一行内只写一条语句
2.程序编写首先应当考虑清晰性
3.让编译程序做简单的优化
4.尽可能使用库函数
5.避免不必要的转移。
6.尽量只采用三种基本的控制结构来编写程序。
第10章软件测试
1.软件测试用例的设计方法分为哪些?
黑盒测试、白盒测试
2.白盒测试有哪些方法?
a)语句测试:
对程序中每个可执行的语句都至少进行一次测试
b)判定测试:
对程序中的每个判定的分支至少执行一次
c)条件测试:
对程序中的每个判定的结果(trueorfalse)都执行一次
d)条件/判定测试:
判定的分支以及结果都至少执行一次
e)条件组合测试:
所有判定的结果的组合都至少执行一次
f)路径测试:
对所有判定的结果的组合都至少执行一次
3.测试的目的是什么?
测试是一个为了发现错误而执行程序的过程。
4.黑盒测试的方法有哪些?
a)等价类测试:
将输入输出分为两个等价类:
有效等价类与无效等价类,来测试程序的反应;
b)边界值测试:
相对于输入输出等价类,直接在其边界值、比边界值大或少的一些情况作为测试用例
5.等价类测试有哪些输入等价类的情况?
a)如果输入条件规定了取值范围,则可以确定一个有效等价类(输入值在此范围内)和两个无效等价类(输入值小于最小值及大于最大值)
b)如果输入条件规定了值的个数,则可以确定一个有效等价类(输入值的个数等于规定的个数)和两个无效等价类(输入值的个数小于规定的个数和大于规定的个数)
c)如果输入条件规定了输入值的集合(即离散值),而且程序对不同的输入值做不同的处理,那么每个允许的值都确定为一个有效等价类,另外还有一个无效等价类(任意一个不允许的值)
d)如果输入条件规定了输入值必须遵循的规则,那么可确定一个有效等价类(符合此规则)和若干个无效等价类(从各个不同的角度违反此规则)
e)如果输入条件规定输入数据是整型,那么可以确定三个有效等价类(正整数、零、负整数)和一个无效等价类(非整数)
f)如果输入条件规定处理的对象是表格,那么可以确定一个有效等价类(表有一项或多项)和一个无效等价类(空表)
6.什么叫比较测试?
由不同的两支开发队伍进行相同的软件开发,然后将两者进行比较。
但也有可能全错。
7.什么叫错误推测法?
凭直觉和经验对软件可能存在的错误进行测试
8.软件的测试策略有哪些以及其相应对象是什么?
单元测试(编码)、集成测试(设计)、确认测试(需求分析)、系统测试(系统工程)
9.单元测试有什么内容?
a)1.模块接口:
确保模块的输入/输出参数信息是正确的。
b)局部数据结构:
确保临时存储的数据在算法执行的整个过程中都能维持其完整性
c)边界条件:
确保程序单元在极限或严格的情况下仍能正确地执行。
d)所有独立路径:
确保模块中的所有语句都至少执行一次。
e)所有错误处理路径:
单元测试应该对所有的错误处理路径进行测试。
10.单元测试过程的模型是怎样的?
11.什么是桩模块,驱动模块?
a)桩模块的功能是替代被被测模块调用的模块,它接受被测模块的调用,验证入口信息,把控制连同模拟结果返回给被测模块。
b)驱动模块接收测试数据,调用被测模块,把测试数据传送给被测模块,被测模块执行后,驱动模块接收被测模块的返回数据,并打印相关结果。
12.集成测试有什么类型?
非增量集成、增量集成
13.增量集成有哪些方法?
a)自顶向下(深度优先、广度优先)
b)自底向上
14.自顶向下以及自底向上各自有什么优缺点?
a)自底向上的优点:
不需要驱动模块;能尽早对程序的主要控制和决策机制进行检验,能较早发现整体性的错误;深度优先的自顶向下集成能较早对某些完整的程序功能进行验证。
缺点:
测试时低层模块用桩模块替代,不能反映真实情况;重要数据不能及时回送到上层模块。
b)自底向上的优点:
不需要桩模块,所以容易组织测试;将整个程序结构分解成若干个簇,对同一层次的簇可并行进行测试,可提高效率。
缺点:
整体性的错误发现得较晚。
15.确认测试的概述
确认测试以软件需求规约为依据,以发现软件与需求不一致的错误。
主要检查软件是否实现了规约规定的全部功能要求,文档资料是否完整、正确、合理,其他的需求,如可移植性、可维护性、兼容性、错误恢复能力等是否满足。
16.什么是α测试和β测试?
a)α测试是由一个用户在开发者的场所进行的,软件在开发者对用户的“指导下”进行测试。
经α测试后的软件称为β版软件。
b)β测试与α测试不同在于开发者不在场,由测试者自由测试并将相关结果反馈给开发人员
17.测试完成的标准是什么?
观察单位时间内出现错误的数目的曲线,若成上升趋势则不可停止测试。
18.调试的方法有哪些?
a)蛮力法:
设置断点,测试所有变量的值
b)回溯法:
从错误的地方开始,数据回流
c)归纳法:
从一些错误的线索出发,对他们的关系进行归纳,找出错误原因
d)演绎法:
找出所有可能出错的原因,一个个测试
19.循环测试中的简单测试有什么办法?
0次测试》》N次测试》》比N次测试多一次的循环或比N次测试少一次的循环
20.循环测试中的嵌套循环有什么步骤?
a)先测试最内层循环:
所有外层的循环变量置为最小值,最内层按简单循环测试;
b)由里向外,测试上一层循环:
测试时此层以外的所有外层循环的循环变量取最小值,此层以内的所有嵌套内层循环的循环变量取“典型”值,该层按简单循环测试;
c)重复上一条规则,直到所有各层循环测试完毕;
d)对全部各层循环同时取最小循环次数,或者同时取最大循环次数
21.为什么要进行回归测试?
在集成测试过程中,每当增加一个(或一组)新模块时,原先已集成的软件就发生了改变。
新的数据流路径被建立,新的I/O操作可能出现,还可能激活新的控制逻辑,这些改变可能使原本正常的功能产生错误。
第11章软件的维护与再工程
1.什么叫软件的演化?
软件在交付以后,对软件进行的一系列活动的总称。
2.软件演化包括什么?
软件维护与再工程
3.什么叫软件维护?
软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程
4.软件的维护活动有哪些?
纠错性维护、适应性维护、改善性维护、预防性维护
5.如何区分结构性维护和非结构性维护?
a)结构化维护:
采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档
b)非结构化维护:
如果不采用软件工程方法开发软件,软件只有程序而欠缺文档,则维护工作将变得十分困难
6.维护工作的工作量模型公式是什么?
7.影响维护工作的工作量的因素有哪些?
a)系统的规模
b)程序设计语言
c)系统年龄
d)数据库技术的应用
e)先进的软件开发技术
8.维护流程有哪些?
9.软件维护人员进行修改之前着重看中什么?
维护申请报告、软件修改报告
10.什么叫软件的可维护性?
指理解、改正、调整和改进软件的难易程度。
11.软件可维护性的主要因素是什么?
a)可理解性:
指理解软件的结构、接口、功能和内部过程的难易程度。
b)可测试性:
指测试和诊断软件(主要指程序)中错误的难易程度。
c)可修改性:
指修改软件(主要指程序)的难易程度。
d)可移植性:
指程序转移到一个新的计算环境的难易程度。
12.提高软件可维护性的方法?
a)确定质量管理目标和优先级
b)规范化程序设计风格
c)选择可维护性高的程序设计语言
d)改进程序文档
e)保证软件质量审查方法
13.什么叫再工程?
指在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本
14.再工程的主要目的是什么?
为遗留系统转化为可演化系统提供一条现实可行的途径
15.什么叫逆向工程?
逆向工程是把软件源程序还原为软件文档或软件设计的过程。
第12章软件度量与配置管理
1.软件的度量有哪些方法?
a)第一类分解:
i.面向规模的度量用于收集与直接度量有关的软件工程输出信息和质量信息(软件大小)
ii.面向功能的度量的则集中在程序的“功能性”和“实用性”
iii.面向人的度量则收集有关人们开发计算机软件所用方式的信息和人员理解有关工具的方法和效率的信息
b)第二种分类:
i.软件生产率度量集中在软件工程过程的输出
ii.软件质量度量可指明软件满足明确的和隐含的用户需求的程度
iii.技术度量主要集中在软件产品的某些特征(如逻辑复杂性、模块化程度)上,而不是软件开发的全过程
2.什么叫软件质量?
与软件产品满足明确或隐含需求的能力有关的特征和特性的总和
3.软件质量的模型有哪些?
a)McCall模型:
质量要素反映软件的质量,决定产品质量的软件属性用作评价准则,量化的度量体系可测量软件质量属性的优劣
b)Boehm模型:
c)ISO/IEC9126质量模型
4.程序复杂性有什么判定原则?
a)程序复杂性与程序大小的关系不是线性的
b)控制结构复杂的程序较复杂
c)数据结构复杂的程序较复杂
d)转向语句使用不当的程序较复杂
e)循环结构比选择结构复杂,选择结构又比顺序结构复杂
f)语句、数据、子程序和模块在程序中的次序对复杂性有影响
5.什么叫程序的复杂性?
指理解和处理软件的难易程度,包括程序复杂性和文档复杂性,主要体现在程序复杂性中。
6.什么叫软件的可靠性?
指在规定的条件下和规定的时间内软件按规格说明要求不引起系统失效的概率。
7.可靠性的度量有什么标准?
a)MTTF(MeanTimetoFailure)平均失效等待时间,理解为平均无故障时间,系统平均能够正常运行多久才发生一次故障;
b)MTBF(MeanTimeBetweenFailures)平均失效间隔时间,是指两次相继失效之间的平均时间。
c)MTBF=MTTF+MTTR
(其中:
MTBF(mean time between failer)是平均故障间隔时间,MTTF(mean time to failer)是平均故障时间,MTTR(mean time to repair)是平均修复时间)
8.软件可用性的概念及其度量的方法为?
a)软件可用性(availability)【稳定性】是指软件在投入使用时能实现其指定的系统功能的概率。
b)度量的公式为:
,越大越好。
9.软件管理中,什么叫软件配置项?
为配置管理设计的软件的集合,它在配置管理过程中作为单个实体对待。
10.什么叫软件配置?
软件产品在不同时期的组合。
该组合随着开发工作的进展而不断变化。
11.什么叫做基线?
作业已经过正式审核与同意,可用作下一步开发的基础,并且只有通过正式的修改管理过程方能加以修改的规格说明或产品。
12.软件配置管理的主要活动有什么?
a)版本控制
b)变更控制
c)配置审计
d)配置状态报告
e)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 各章 提纲 解析