钱乐秋清华大学出版社软件工程复习要点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章概论
✧(掌握)计算机软件:指计算机系统中的程序及其文档。
✧(掌握)软件生存周期:计算机系统工程,需求分析,设计,编码,测试,运行和维护。
✧(了解)软件过程模型:瀑布模型、演化模型、增量模型、原型模型、螺旋模型、喷泉
模型、基于构件的开发模型、形式化方法模型。
第二章系统工程
✧基于计算机的系统的元素主要有:软件、硬件、人员、数据库、文档和规程。
✧可行性分析:经济可行性、技术可行性、法律可行性、方案的选择和初衷。
第三章需求工程
✧需求工程分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证、需求管
理。
第四章设计工程
✧软件设计工程的任务:数据、类设计,体系结构设计、接口设计、部件设计。
✧软件设计原则:抽象与逐步求精,模块化,信息隐藏,模块独立。
✧结构化程序设计方法
第五章结构化分析与设计
分层数据流图的画法:
1、画出系统的输入和输出
用顶层图来描述,
•确定源或宿:考生、阅卷站和考试中心
它们都既是源又是宿
•顶层图唯一的加工:软件系统(考务处理系统)
•确定数据流:系统的输入/输出信息
输入数据流:报名单(来自考生)、成绩清单(来自阅卷站)、合格标准(来自考试中心)
输出数据流:准考证(送往考生)、考生名单(送往阅卷站)、考生通知书(送往考生)、统计分析表(送往考试中心)
额外的输出流(考虑系统的健壮性):不合格报名单(返回给考生),错误成绩清单(返回给阅卷站)
•顶层图通常没有文件
顶层图
2、画出系统内部
0层图:将顶层图的加工(即系统)分家成若干个子加工,并用一些新定义的数据流进行连接,使得系统的输入数据流(即顶层的输入数据流)经过一连串的加工处理后,变换成系统的输出数据流(即顶层的输出数据流)
数据流图的审查
•检查图中是否存在错误或不合理(不理想)的部分
一致性:分层DFD中不存在矛盾和冲突
完整性:分层DFD本身的完整性,即是否有遗漏的数据流、加工等元素
分层数据流图的一致性:
•父图与子图平衡
任何一张DFD子图边界上的输入/输出数据流必须与其父图中对应的加工的输入/输出数据流保持一致
•数据守恒
一个加工所有输出数据流中的数据,必须能从该加工的输入数据流中直接获得,或者能通过该加工的处理而产生
多余的数据流:加工未使用其输入数据流中的某些数据项
•局部文件:
考虑分层数据流中一个文件应画在哪些DFD中,而不该画在哪些DFD中
•一个加工的输出数据流不能与该加工的输入数据流同名
分层数据流图的完整性:
•每个加工至少有一个输入数据流和一个输出数据流
•在整套分层数据流中,每个文件应至少有一个加工读该文件,有另一个加工写该文件
•分层数据流图中的每个数据流和文件都必须命名(除了流入或流出文件的数据流),并保持与数据字典的一致
•分层DFD中的每个基本加工(即不再分解子图的加工)都应有一个加工规约
字典条目的种类:数据流、文件、数据项(组成数据流和文件的数据)、加工、源和宿
数据字典使用的描述符号
结构化设计概述:、
第七章面向对象的分析和设计
面向对象分析的一般步骤如下:
1.获取客户对系统的需求:包括标识场景(scenario)和用况(use case,也称用例),及
建造需求模型
2.用基本的需求为指南,来选择类和对象(包括属性和操作)。
3.定义类的结构和层次。
4.建造对象—关系模型。
5.建造对象—行为模型。
6.利用用况/场景来复审分析模型。
面向对象设计的一般步骤如下:
1.系统设计
✧将子系统分配到处理器
✧选择实现数据管理、界面支持和任务管理的设计策略
✧为系统设计合适的控制机制
✧复审并考虑权衡(折衷)
2.对象设计
✧在过程级别(procedural level)设计每个操作,即设计每个操作的实现细节
✧定义内部类
✧为类属性设计内部数据结构
3.消息设计
使用对象间的协作和对象--关系模型,设计消息模型
4.复审
复审设计模型并在需要时迭代。
用况建模步骤
创建用况模型的步骤包括:
1.定义系统
2.确定执行者
3.确定用况
4.描述用况
5.定义用况间的关系
6.确认模型
第九章人机界面设计
第十章程序设计语言和编码
程序设计风格:
编程风格主要包括:
✧源程序中的内部文档
✧数据说明
✧语句构造
✧输入/输出
第十一章软件测试
1.软件测试的目的:发现软件中的错误和缺陷,并加以改正。
2.软件测试的基本原则
✧所有的测试都应可追溯到客户需求。
✧应该在测试工作真正开始前的较长时间就进行测试计划。
✧Pareto原则金额应用于软件测试。即如果测试模块A时发现的错误比测试模块B
时发现的错误多,那么模块A中潜藏的错误可能仍比模块B中潜藏的错误多。
✧测试应从“小规模”开始,逐步转向大规模。
✧穷举测试是不可能的。
✧为了达到最有效的测试,应由独立的第三方来策划策划来承担测试。
✧在设计测试用例时,应包括合理的输入条件和不合理的输入条件。
✧严格执行测试计划,排除测试的随意性。
✧严格对每一个测试结果进行全面的检查。
✧妥善保管测试计划,测试用例,出错统计和最终分析报告。
✧检查程序是否做了应作的事仅是成功的一半,另一半是检查程序是否做了不该做的
事。
3.白盒测试
●白盒测试:又称为结构测试,把测试对象看做是一个透的盒子,测试人员根据程序
内部的逻辑结构及有关信息从设计测试用例,检查程序中所有逻辑路径是否都按规
定的要求正确的进行工作。
●白盒测试主要用于对程序模块的测试,包括:
✧程序模块中的所有独立路径至少执行一次。
✧对所有逻辑判定的取值(“真”和“假”)都至少测试一次。
✧在上下边界及可操作范围内运行所有的循环。
✧测试内部数据结构的有效性等。
4.黑盒测试
●黑盒测试:又称行为测试,把测试对象看做一个黑盒子,测试人员完全不考虑程序
内部的逻辑结构和内部特性,只一句程序的需求说明书,检查程序的功能是否符合
它的功能需求。
●黑盒测试适用于任何测试,试图发现以下类型的错误:
✧不正确或遗漏的功能。
✧接口错误,如输入输出参数的个数类型等。
✧数据结构错误或外部信息(如外部数据库)访问错误。
✧性能错误。
✧初始化和终止错误。
5.白盒测试:主要有逻辑覆盖测试、基本路径测试。数据流测试、循环测试。
逻辑覆盖测试