第一章概论
? (掌握)计算机软件:指计算机系统中的程序及其文档。
? (掌握)软件生存周期:计算机系统工程,需求分析,设计,编码,测试,运行和维护。 ? (了解)软件过程模型:瀑布模型、演化模型、增量模型、原型模型、螺旋模型、喷泉
模型、基于构件的开发模型、形式化方法模型。 第二章系统工程
? 基于计算机的系统的元素主要有:软件、硬件、人员、数据库、文档和规程。 ? 可行性分析:经济可行性、技术可行性、法律可行性、方案的选择和初衷。 第三章 需求工程
? 需求工程分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证、需求管
理。
第四章设计工程
? 软件设计工程的任务:数据、类设计,体系结构设计、接口设计、部件设计。 ? 软件设计原则:抽象与逐步求精,模块化,信息隐藏,模块独立。 ? 结构化程序设计方法 第五章结构化分析与设计 分层数据流图的画法: 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. 白盒测试:主要有逻辑覆盖测试、基本路径测试。数据流测试、循环测试。
逻辑覆盖测试