软件工程复习要点.docx
- 文档编号:23837400
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:19
- 大小:331.54KB
软件工程复习要点.docx
《软件工程复习要点.docx》由会员分享,可在线阅读,更多相关《软件工程复习要点.docx(19页珍藏版)》请在冰豆网上搜索。
软件工程复习要点
软件工程复习要点
目录
第一章软件工程学概述3
1.软件工程定义3
2.基本原理3
3.软件工程方法学3
4.软件生命周期3
5.软件过程3
第二章可行性研究4
1.可行性研究的任务4
2.可行性研究的过程5
3.系统流程图的用途:
5
第三章需求分析6
1.需求分析任务6
2.需求分析步骤6
3.结构化方法6
4.面向对象方法6
5.需求规格说明6
第四章软件设计概述6
1.任务:
系统应该如何实现6
2.原理:
7
3.启发式规则:
7
4.人机界面设计问题:
7
第五章传统的设计方法8
1.掌握层次图的绘制,理解HIPO图的功能8
2.面向数据流的设计方法9
3.各种图、表、树9
第六章面向对象设计12
1.面向对象设计的任务12
2.面向对象设计的过程12
第七章编码12
1.语言的选择:
12
2.编码规范12
第八章测试12
1.测试的目标:
12
2.测试方法:
12
3.测试步骤:
13
4.单元测试、集成测试、确认测试的任务和方法13
5.白盒设计技术逻辑覆盖方法14
6.黑盒设计技术边界值分析和等价划分15
7.调试的目的:
15
第九章维护15
1.软件维护的定义:
15
2.软件维护分类:
16
3.主要活动:
16
第十章软件项目管理16
1.软件项目管理目的:
16
2.项目规划:
16
3.软件配置管理:
16
第一章软件工程学概述
1.软件工程定义:
软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
(Theestablishmentanduseofsoundengineeringprinciplesinordertoobtaineconomicallysoftwarethatisreliableandworksefficientlyonrealmachines
)
2.基本原理:
●用分阶段的生命周期计划严格管理
●坚持进行阶段评审
●实行严格的产品控制
●采用现代程序设计技术
●结果应能清楚地审查
●开发小组的人员应该少而精
●承认不断改进软件工程实践的必要性
3.软件工程方法学:
在软件生命周期全过程中使用的一整套技术方法的集合,也称范型(paradigm)
传统方法学:
结构化技术,分阶段,技术和管理审查
面向对象方法学:
面向对象方法=对象+类+继承+用消息通信
4.软件生命周期:
软件从定义、开发、运行和维护,直到最终被废弃所经历的时期称为软件生命周期。
各阶段任务:
软件定义(问题定义、可行性研究、需求分析)
软件开发(总体设计、详细设计、编码和单元测试、综合测试)
软件维护
5.软件过程定义:
软件过程指为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
通常使用生命周期模型描述软件过程。
瀑布模型
快速原型模型
增量模型
第二章可行性研究
1.可行性研究的任务
目的:
确定项目是否可能实现和值得进行
主要活动:
1)可行性分析(技术、经济、操作可行性)
2)制定计划
文档:
1)可行性研究报告
2)项目开发计划
2.可行性研究的过程
(1)复查系统目标和规模
(2)研究正使用的系统
(3)导出新系统高层逻辑模型
(4)进一步定义问题
(5)导出和评价供选择的方案
(6)推荐行动方针
(7)草拟开发计划
(8)书写文档提交审查
3.系统流程图的用途:
描绘物理系统,用图形符号描述系统中每一个部件,以及信息在系
统各个部件之间的流动情况
第三章需求分析
1.需求分析任务
基本任务:
确定目标系统必须做什么
文档:
需求规格说明书
任务:
确定对系统的综合要求
分析系统的数据要求
导出系统的逻辑模型
修正系统开发计划
2.需求分析步骤
需求获取、分析建模、需求规格说明书编写、需求验证
3.结构化方法
建立模型,数据流图、数据字典、实体联系图、状态转换图、层次方框图、Warner图、IPO图
4.面向对象方法
建立模型,状态转换图、顺序图、活动图
5.需求规格说明
第四章软件设计概述
1.任务:
系统应该如何实现
使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计。
数据/类设计:
将分析类模型变换成类的实现和软件实现所需要的数据结构
体系结构设计:
体系结构设计定义了软件的整体结构
接口设计:
接口设计描述了软件内部、软件和协作系统之间以及软件同人之间如何通信
部件级设计(过程设计):
部件级设计将软件体系结构的组成部件变换为对软件组件的过程性描述
2.原理:
模块化(把程序划分成模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求)
抽象(抽出事物的本质特征而暂时不考虑它们的细节)
逐步求精(为了能集中精力解决主要问题而尽量推迟对问题细节的考虑)
信息隐藏和局部化(模块内包含的信息对于不需要这些信息的模块来说,是不能访问的;将一些关系密切的软件元素物理地放得彼此靠近)
模块独立(度量标准:
耦合、内聚)
3.启发式规则:
改进软件结构提高模块独立性
模块规模应该适中
深度、宽度、扇入和扇出都应适当
模块的作用域应该在控制域之内
力争降低模块接口的复杂程度
设计单入口单出口的模块
模块功能应该可以预测
4.人机界面设计问题:
系统响应时间、用户帮助设施、出错信息处理、命令交互
设计原则:
用户控制式、界面一致性、界面容错性、界面可适应性
第五章传统的设计方法
1.掌握层次图的绘制,理解HIPO图的功能
2.面向数据流的设计方法
事务分析和变换分析
(1)确定数据流边界
●变换流:
输入流、输出流的边界,从而孤立出变换中心
●事务流:
输入流边界,事务中心,活动通路
(2)完成“第一级分解”
初始框架
•完成“第二级分解”
细化各分支
3.各种图、表、树
掌握程序流程图、盒图的绘制;理解PAD图、判定表、判定树、过程设计语言的功能
第六章面向对象设计
1.面向对象设计的任务
●根据已经建立的分析模型,运用面向对象的技术,进行系统的软件设计。
●数据和过程被封装为类、对象的属性和操作;接口被封装为对象间的消息;体系结构的设计则表现为具有控制流程的对象间的协作。
●通常包括系统设计和对象设计。
系统设计确定实现系统的策略和高层结构;对象设计确定类、关联、接口形式和实现服务的算法。
这两者的界限模糊。
2.面向对象设计的过程
第七章编码
1.语言的选择:
用户要求
可用的软件工具
开发人员知识
软件可移植性要求
应用领域
2.编码规范
第八章测试
1.测试的目标:
测试的目标是发现程序中的错误,是为了证明程序有错,而不是证明程序无错;能够发现错误的测试是成功的测试,否则是失败的测试
2.测试方法:
(1)黑盒测试(不深入代码细节,测试员充当客户来使用它)
●如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用。
(2)白盒测试
●如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
(3)白盒测试和黑盒测试的比较
●黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试。
白盒测试是根据程序内部逻辑结构进行测试。
3.测试步骤:
(1)模块测试(单元测试)
发现的常是编码和详细设计的错误
(2)子系统测试
着重测试模块的接口
(3)系统测试
发现的常是软件设计的错误,也可能发现需求说明中的错误
2和3通常称为集成测试
(4)验收测试
发现的常是需求说明中的错误
(5)平行运行
同时运行新开发的系统和将被它取代的系统,比较新旧两个系统的处理结果
4.单元测试、集成测试、确认测试的任务和方法
单元测试:
一般由编写该代码的开发人员执行,该人员负责设计和运行一系列的测试以保证该单元符合需求。
主要使用白盒测试技术。
1)计算机测试
2)模块不是独立的程序,自己不能运行,要为每个单元测试开发
(1)驱动程序(主程序):
相当于主模块
(2)存根程序(虚拟子程序):
代替所测试模块调用的子模块
集成测试:
主要目标是发现与接口有关的问题,数据穿越接口可能丢失;一个模块对另一个模块可能由于疏忽造成有害影响;子功能组装可能未产生所要求的主功能;全程数据结构可能出问题;误差累积问题
通常采用黑盒测试技术
1)非渐增式测试
2)渐增式测试(自顶向下结合(深度优先、广度优先)、自底向上)
3)回归测试:
●重新执行已经做过的测试的某个子集,以保证变化没有带来非预期的副作用。
●用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。
●回归测试集
(1)检测软件全部功能的代表性测试用例
(2)专门针对可能受修改影响的软件功能的附加测试
(3)针对被修改过的软件成分的测试
确认测试:
验收测试,验证软件的有效性;如果软件的功能和性能如同用户所合理地期待的那样,则软件是有效的;需求规格说明书是进行确认测试的基础。
●必须有用户积极参与,或者以用户为主进行。
●一般使用黑盒测试
●测试结果测试完成后可能出现两种情况:
(1)功能与性能与用户要求一致,软件可接受。
(2)功能与性能与用户要求有差距,列出软件缺陷表,与用户协商解决。
5.白盒设计技术逻辑覆盖方法
●目标:
确定一组最可能发现某个错误或某类错误的测试数据.
●设计技术
白盒测试:
逻辑覆盖法,控制结构测试
黑盒测试:
等价划分,边界值分析,错误推测
●所谓逻辑覆盖是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。
●从覆盖源程序语句的详尽程度分为
(1)语句覆盖(使程序中每个语句至少执行一次)
(2)判定覆盖(每个语句至少执行一次,而且每个判定的每个分支都至少执行一次)
(3)条件覆盖(不仅每个语句至少执行一次,而且每个判定表达式中的每个条件都取到各种可能的结果)
(4)判定/条件覆盖(判定表达式中的每个条件都取到各种可能的值,同时每个判定表达式也都取到各种可能值)
(5)条件组合覆盖(每个判定表达式中条件的各种可能组合都至少出现一次)
●从对程序路径覆盖程度分为
(6)点覆盖(程序的执行路径至少经过程序流图中的每个结点一次,点覆盖的标准和语句覆盖的标准是相同的)
(7)边覆盖(程序的执行路径至少经过程序流图中的每条边一次,边覆盖和判定覆盖是一致的)
(8)路径覆盖(程序的每条可能的执行路径都至少执行一次,如果图中有环,则每个环至少经过一次)
6.黑盒设计技术边界值分析和等价划分
1)等价划分:
●把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集(称为等价类),使得每个子集中的一个典型值在测试中的作用与这一子集中所有其它值的作用相同.
●可从每个子集中选取一组数据来测试程序,这样选取的数据最有代表性,最可能发现程序中的错误。
2)边界值分析:
●经验表明,处理边界情况时程序最容易发生错误,因此设计使程序运行在边界情况附近的测试方案暴露出程序错误的可能性更大一些。
可以使用刚好等于,稍小于和稍大于等价类边界值的数据作为测试数据。
7.调试的目的:
任务:
确定错误的性质和位置(95%);改正错误
●软件可靠性的定义
程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。
●软件可用性的定义
程序在给定的时间点,按照规格说明书的规定,成功地运行的概率。
第九章维护
1.软件维护的定义:
软件维护是指在软件交付使用之后,为了改正错误或满足新的需要而修改软件的过程
2.软件维护分类:
改正性维护(17%-21%)、适应性维护(18%-25%)、完善性维护(50%-66%)、预防性维护(4%)
3.主要活动:
各类维护活动的根本目的是延长软件生存期
软件可维护性定义:
指维护人员理解,改正,改动和改进这个软件的难易程度
决定软件可维护性的因素:
(1)可理解性
(2)可测试性
(3)可修改性
(4)可移植性
(5)可重用性
第十章软件项目管理
1.软件项目管理目的:
通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标
2.项目规划:
项目管理者对资源、成本和进度作出合理的估算,制定出切实可行的软件项目计划
项目规划步骤:
任务分解(workbreakdownstructure,WBS)
规模成本估算
资源、进度安排
3.软件配置管理:
在软件的整个生命周期内管理变化的一组活动,标识和确定系统中的配置项,在系统整个生命期内控制这些项的发布和变更,记录并报告配置的状态和变更要求,验证配置项的完整性和正确性。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习 要点