第3章 软件工程基础

合集下载

计算机应用基础3软件工程基础

计算机应用基础3软件工程基础

存折格式
存折=户名+所号+帐号+开户日+性质+(印密)+1{存取 行}50 户名=2{字母}24 所号=“001”..“999” 帐号=“00000001”..“99999999” 开户日=年+月+日 性质=“1”..“6” 注:“1”表示普通户,“5”表示工资户等 印密=“0” 注:印密在存折上不显示 存取行=日期+(摘要)+支出+存入+余额+操作+复核
第3章 软件工程基础
全国等级考试考试大纲要求


主要内容
1. 软件工程基本概念,软件 工具与软件开发环境。 2. 结构化分析方法,数据流 图,数据字典,软件需求 规格说明书。 3. 结构化设计方法,总体设 计与详细设计。 4. 软件测试的方法,白盒测 试与黑盒测试,测试用例 设计,软件测试的实施, 单元测试、集成测试和系 统测试。 5. 程序的调试,静态调试与 动态调试。
不合格报名单报名单准考证考生通知单合格标准错误成绩清单统计分析表略过统计分析表考生名册略过考生名册考生名单略过检查成绩清单21审定合格者22考生名册正确成绩清单制作通知单23分析统计成绩24分析试题难度25试题得分清单考生通知单难度分析表合格标准分类统计表成绩清单错误成绩清单经审定的成绩清单略过32322结构化分析方法数据字典1定义是所有与系统相关的数据元素的一个有组织的列表以及精确严格的详细定义
经审定的 成绩清单 考生 2.3 制作 通知单 通知单
2.4 分析 统计成绩
难度 分析表
分类 统计表
考生名册
3.2 结构化分析
3.2.2 结构化分析方法

结构化分析方法使用的常用工具
2. 数据字典 (1)定义 是所有与系统相关的数据元素的一个有组织的列表,以 及精确、严格的详细定义。 (2)作用 对DFD中出现的被命名的图形元素的确切解释,数据词 典与数据流图配合,能清楚地表达数据处理的要求。

软件工程基础

软件工程基础

软件开发工具与软件开发环境 软件开发工具和环境是软件工程方法得以实施
的重要保证。
❖ 1)软件开发工具 早期的软件开发由于缺少工具的支持,使编程
信息隐蔽 模块化
将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。即信息封装,使用与 实现分离的原则 模块化有助于信息隐蔽和抽象,有助于表示复杂的系统
局部化 确定性
要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合关系,模块内部 具有较强的内聚,这有助于控制分解的复杂性 软件开发过程中所有概念的表达应是确定的、无歧义的、规范的
一致性 完备性 可验证性
整个软件系统的各个模块应使用一致的概念、符号和术语;程序内外部接口应保持一致;软件和硬件、操 作系统的接口应保持一致;系统规格说明与系统行为应保持一致 软件系统不丢失任何重要成分,可以完全实现系统所要求的功能;为了保证系统的完备性,在软件开发和 运行过程中需要严格的技术评审 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解时应遵循系统易于检查、测试、评审的原 则,以确保系统的正确性
过规定日期的情况经常发生; ❖ 软件质量难以保证; ❖ 软件不可维护或维护程度非常低; ❖ 软件成本不断提高; ❖ 软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
总之,可以将软件危机归结为成本、质量、生产率等问题。
软件过程与软件生命周期
❖ 软件过程包括两方面内涵:
内涵一:软件工程是指为获得软件产品,在软件工具支 持下由软件工程师完成的一系列软件工程的活动。基于这个 方法,软件工程过程通常包括4种基本活动: ❖ P(Plan)——软件规格说明,规定软件的功能及运行时
间限制; ❖ D(Do)——软件开发,产生满足规格说明的软件; ❖ C(Check)——软件确认,确认软件能够满足用户的要求; ❖ A(Action)——软件演进,为满足客户要求,软件必须

软件工程基础胡思康第3章课件图文.pptx

软件工程基础胡思康第3章课件图文.pptx

S
1 2 3 4 5
软件设计概述 软件体系结构设计
模块化设计 界面设计
软件设计评审
➢软件体系结构为系统设计提供了一套关于数据、行为、结 构的指导性框架,该框架提供了描述系统数据、数据间关系 的静态特征,也对数据的操作、系统控制和通信等活动提供 了具有动态特征的描述过程。 ➢系统的静态特征体现了系统的组织结构,系统的动态特征 体现系统操作流程的拓扑结构,共同构成设计决策的基本指 导方针。

计 内
界面设计

数据设计
过程设计
➢概要设计也称总体设计,主要任务是基于数据流 图和数据字典,确定系统整体软件结构,划分软件 体系结构的各子系统或模块,确定它们之间的关系。
➢体系结构设计:确定各子系统模块间的数据传递、 调用关系。在结构化设计中,体现为模块划分,并 通过数据流图和数据字典进行转换。在面向对象设 计中,体现为主题划分,主要确定类及类间关系。
➢详细设计是在概要设计的基础上,具体实现各部分的细节, 直至系统的所有内容都有足够详细的过程描述。 ➢过程设计包括确定软件各模块的具体实现过程及局部数据 结构。在结构化设计中,模块独立性约束了数据结构与算法 相分离的情况,使得两者在设计时务必有局部性,减少外部 对两者的影响。在面向对象设计中,类的封装较好地体现了 算法和数据结构的内部性。类的继承性提供了多个类(类家 族)共同实现过程设计的机制。
➢缺点: 随着网络技术的发展,数据共享带来的访问控制的复杂性、
安全性、效率、备份、存储、恢复策略等一系列问题,影响 了仓库模型的有效利用。
➢集中式数据仓库模型在带来数据一致性访问优势 的同时,也造成网络环境下难以分布应用的缺陷。 ➢分布式结构模型是充分利用、整合网络中计算机 各自的计算能力,从而提高整个网络系统运行的能 力和效率。

软件工程课件 第三章

软件工程课件 第三章

软件工程课件第三章在软件工程的领域中,第三章通常聚焦于软件设计的核心概念与方法。

软件设计是软件开发过程中的关键环节,它将需求分析阶段所确定的功能和性能要求转化为具体的软件架构和模块结构,为后续的编码和测试工作奠定坚实的基础。

软件设计的目标是创建一个高效、可靠、可维护且易于理解的软件系统。

这需要综合考虑诸多因素,如系统的功能需求、性能要求、安全性要求、用户体验等。

同时,还要考虑软件的可扩展性,以适应未来可能的变化和升级。

在软件设计中,架构设计是至关重要的一环。

架构设计就像是为一座大楼绘制蓝图,它决定了软件系统的整体结构和组织方式。

一个良好的软件架构应该具有清晰的层次结构,各个模块之间的职责明确,并且能够有效地支持系统的功能和性能需求。

例如,常见的分层架构将软件系统分为表示层、业务逻辑层和数据访问层。

表示层负责与用户进行交互,业务逻辑层处理核心的业务逻辑,数据访问层则负责与数据库进行交互。

这种分层架构使得各个层次之间的职责清晰,便于开发和维护。

模块设计也是软件设计的重要组成部分。

模块是软件系统中的基本单元,具有相对独立的功能。

在进行模块设计时,需要遵循高内聚、低耦合的原则。

高内聚意味着模块内部的各个元素紧密相关,共同完成一个特定的功能;低耦合则表示模块之间的依赖关系尽量少,使得一个模块的修改对其他模块的影响最小化。

例如,一个负责用户登录的模块,应该只专注于处理登录相关的功能,而不涉及其他诸如用户信息管理等功能。

接口设计在软件设计中也不容忽视。

接口是模块之间进行交互的桥梁,定义了模块之间的通信方式和数据格式。

良好的接口设计能够提高模块之间的协作效率,降低系统的复杂性。

例如,在设计一个数据存储接口时,需要明确规定数据的读写方法、参数类型和返回值类型等。

数据结构的选择也是软件设计中的一个关键决策。

不同的数据结构适用于不同的场景,选择合适的数据结构能够提高软件的性能和效率。

例如,对于频繁插入和删除操作的场景,链表可能是一个更好的选择;而对于快速查找操作,二叉搜索树或者哈希表可能更为合适。

软件工程课件第3章 软件设计基础

软件工程课件第3章  软件设计基础
例:将问题(P1+P2)分解为P1,P2 设函数C(x)定义问题 x 的复杂程度,函数E(x)确定解决问题 x 需要的工作量。对问题P1和P2,如:
C(P1) > C(P2) 显然: E(P1) > E(P2) 有规律:C(P1+P2) >= C(P1)+C(P2)
E(P1+P2) >= E(P1)+E(P2)
客户N 请求
服务器M
两层Client/Server结构
C/S的工作模式是一种远程过程调用(RPC,Remote Procedure
Call)模式,允许客户端和服务器端有不同的软硬平台。
第3章 软件设计
第 13 页13
软件体系结构设计
层次模型——又称为分层模型,通常用于建立子系统的接口 模型。每层提供一组服务,每层定义一个抽象机。
第3章 软件设计
第 3 页3
软件设计概述
开发阶段信息流描述了软件设计从软件需求到软件编码,起 到承上启下的作用。
信息描述
功能 描述
行为描述
设计
数据设计
总体结构设计
其它需求
过程设计
编码
程序模块
测试
开发阶段的信息流 第3章 软件设计
集成并确认软件
第 4 页4
软件设计概述
软件设计的任务
设计任务:将需求阶段获得的需求说明(模型)转换为计算 机中可实现的系统。
……
a 数据集
第3章 软件设计
……
集中式数据仓库
b
数据集
N 数据集
c
数据集
第 9 页9
软件体系结构设计
仓库模型的主要优缺点: 优点: ➢ 数据统一存储和管理,确保了数据的实时性。

二级-公共基础知识-第3章-软件工程基础ppt课件

二级-公共基础知识-第3章-软件工程基础ppt课件
第3章 软件工程基础
本章考纲中要求的考试内容
1. 软件工程基本概念,软件生命周期概念,软件 工具与软件开发环境。
2. 结构化分析方法,数据流图,数据字典,软件 需求规格说明书。
3. 结构化设计方法,总体设计与详细设计。 4. 软件测试的方法,白盒测试与黑盒测试,测试 用例设计,软件测试的实施,单元测试、集成测试和 系统测试。 5. 程序的调试,静态调试与动态调试。
3
软件指的是计算机系统中与硬件相互依 存的另一部分,包括程序、数据和相关文档 的完整集合。
程序是软件开发人员根据用户需求开发 的、用程序设计语言描述的、适合计算机执 行的指令序列。数据是使程序能正常操纵信 息的数据结构。文档是与程序的开发、维护 和使用有关的图文资料。
4
可见,软件由两部分组成: 机器可执行的程序和数据; 机器不可执行的,与软件开发、运行、
8
1.3.2 软件危机与软件工程 软件危机:是泛指在计算机软件的开发和
维护过程中所遇到的一系列严重问题。 可以将软件危机归结为成本、质量、生产
率等问题。 软件工程概念的出现源自软件危机。 软件工程:就是试图用工程、科学和数学
的原理与方法研制、维护计算机软件的有关技 术及管理方法。
9
软件工程的主要思想就是强调在软件开发过 程中需要应用工程化原则。 软件工程包括3个要素,即方法、工具和过程。
19
定义阶段(或称分析阶段)是保证软件质量 的第一步,它的任务是复杂的,如何分析用户 要求,软件需求规格说明书用什么形式表示等 都需要有一定的技术来指导。由于在分析阶段 软件人员需要同用户进行讨论,这个阶段的方 法、模型、语言和工具都必须考虑到用户的特 点,既能完整精确地描述用户要求,又简单易 懂可以被广大用户接受。

公共基础知识3软件工程基础

•的构造设计优化原那么 •软件概要设计的根本任务 •编写概要设计文档 •模块独立性** •模块分解时应遵循的原那么
4、详细设计
•为每个模块设计其实现的细节 •主要方法:构造化程序设计 •工具:图形描述工具、语言描述工具和表 格描述工具
程序流程图
•方框:处理过程 •菱形框:逻辑判断条件 •箭头〔流线〕:控制流 •缺点:不能很好地描述程序的全局构造
• “各个击破〞是解决复杂问题的一个重要策略 • 从时间角度出发,对软件开发和维护的复杂问题
进展分解,把软件生存的漫长周期依次划分为假 设干个阶段 • 每个阶段有相对独立的任务 • 前一阶段任务的完成是后一阶段工作的前提和根 底 • 后一阶段任务的完成使前一阶段提出的解法更加 化 • 每一阶段完毕前都有严格的技术检查和管理复审
• 常见的生命周期模型:瀑布模型*、原型模 型*、增量模型、螺旋模型、喷泉模型、变 换模型、基于知识的模型
瀑布模型*
• 图见教材P67
• 强调了阶段的顺序性和依赖性,前一阶段 的输出是后一阶段的输入,
• 每一阶段工作的完成都需要确认,确认过 程是一个严格的回溯过程,后一阶段中出 现的问题要通过前一阶段的重新确认来解 决。问题发现得晚那么解决该问题的代价 就越大
〔2〕、判定覆盖
• 每个判定的所有结果都 至少出现过一次 • A=3、B=0、X=3〔覆盖SACBD〕 • A=2、B=1、X=1〔覆盖SABED〕
4、黑盒测试的测试用例设计
• 等价类划分法 • 边界值分析法 • 错误推测法 • 因果图法
3.5 调试
计算机系统开展的早期-个体化 〔20世纪60年代中期以前〕
软件生命周期的各个阶段*
• 软件可行性研究与工程开发方案:完成“要解决 的问题是什么〞和“该问题是否有解〞

Access考点 第三章

第3章软件工程基础3.1 软件工程基本概念1.软件定义与软件危机(1)软件的定义:软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

软件的三个要素:程序、数据和文档。

(2)软件分类:软件按功能可分为应用软件、系统软件和支撑软件(或工具软件)三大类。

(3)软件危机的定义:软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.软件工程定义与软件生命周期(1)软件工程定义:软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。

软件工程的三个要素:方法、工具和过程。

(2)软件生命周期定义:软件生命周期就是软件产品从提出、实现、使用维护到停止使用退役的全过程。

软件生命周期包括软件定义、软件开发及软件维护三个阶段。

软件定义阶段的任务包括可行性研究与计划制定、需求分析;软件开发阶段的任务包括概要设计、详细设计、软件实现、软件测试;软件维护的任务包括软件的运行、维护和退役。

3.软件开发工具与软件开发环境(1)软件开发工具:软件开发工具的发展是从单项工具的开发逐步向集成工具发展的,软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。

(2)软件开发环境:软件开发环境或称软件工程环境是全面支持软件开发全过程的软件工具集合。

这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。

3.2 结构化分析和设计方法1.结构化分析方法(1)关于结构化分析方法结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。

结构化分析的常用工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。

其中最重要的工具是数据流图。

(2)结构化分析的常用工具①数据流图是描述数据处理过程的工具,是通过对需求的理解构造出逻辑模型的图形表示,它直接支持系统的功能建模。

②数据字典是结构化分析方法的核心。

数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。

二级基础知识第三章 软件工程基础


3.3 结构化设计方法ቤተ መጻሕፍቲ ባይዱ
1、软件设计的基本概念 软件设计:软件需求转换为软件表示 原则:抽象、信息隐蔽、模块化独立性(内聚、 耦合)高内聚,低耦合 结构化的设计方法 2、概要设计 任务:设计软件系统结构、数据结构与数据库设 计、编定概要设计文档、文档评审
常用工具:结构图(sc) 扇入、扇出、原子模块(叶) 面向数据流的设计方法 数据流类型:变换型(重结果)、事务型(看 处理) 3、详细设计 程序流程图、N-S图、PAD图、PDL伪码
3.4 软件测试
1、软件测试的目的 发现错误而执行程序的过程 2、软件测试的准则 3、软件测试技术与方法 静态测试与动态测试 白盒法穷举路径测试 逻辑覆盖(语句、路径、判定、条件、判断-条 件、基本路径) 黑盒法:等价类划分法(有效、无效)、边界值 分析法、错误推测法
4、软件测试的实施 单元测试、集成测试(桩模块;自顶向下的增 量方式、自底向上的增量方式)、确认测试、 系统测试
3、软件工程过程与软件生命周期 可行性分析、需求分析、概要设计、详细设计、 实现、测试、使用、维护、退役 4、软件工程的目标与原则 目标:满足用户需求(有效性、可靠性、可理 解性、可维护性、可重用性、可适应性、可 移植性、可追踪性和可操作性)两个方面开 发技术和工程管理 原则:抽象、信息隐蔽、模块化、局部化、确 定性、一致性、完备性、可验证性
3.5 程序的调试
1、基本概念 调试即排错(定位、修改、回归测试) 2、软件调试的方法 强行排错法、回溯法、原因排除法(归纳、演 绎、二分法)
5、软件开发工具与软件开发环境 工具 环境:工具的集合 Case:计算机辅助软件工程
3.2 结构化分析方法
1、需求分析与方法 需求分析:需求获取、需求分析、需求规格说 明书、需求评审 方法:结构化sa、jsd、dssd 面向对象 ooa 2、结构化分析方法 工具:数据流图、数据字典、判定树、判定表 3、软件需求规格说明书(srs)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章 软件工程基础 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。 详细重点学习知识点: 1.软件的概念、软件生命周期的概念及各阶段所包含的活动 2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具 3.软件测试的目的、软件测试的4个步骤、 4.软件调试的任务

3.1软件工程基本概念 考点1 软件定义与软件特点 考试链接: 考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。

小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。

考点2 软件工程过程与软件生命周期 考试链接: 考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期 的定义,主要活动阶段及其任务。 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如图3-1所示。 图3-1软件生命周期 还可以将软件生命周期分为如上图所示的软件定义、软件开发和软件运行维护3个阶段。 生命周期的主要活动阶段是:可行性研究与计划制定、需求分析、软件设计、软件实施、软件测试及运行与维护。 3.2结构化设计方法

考点3 软件设计的基本概念 考试链接: 考点3在笔试考试中,是一个经常考查的内容,考核中几率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点掌握内容,读者应该识记模块独立性中的耦合性和内聚性。 误区警示: 在程序结构中,各模块的内聚性越强,则耦合性越弱。软件设计应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。 1.软件设计的基础 从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。 (1)结构设计定义软件系统各主要部件之间的关系; (2)数据设计将分析时创建的模型转化为数据结构的定义; (3)接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信; (4)过程设计则是把系统结构部件转换为软件的过程性描述。 从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。 (1)概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式; (2)详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。 2.软件设计的基本原理 (1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级别。抽象的层次从概要设计到详细设计逐步降低。 (2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部分。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。 (3)信息隐蔽:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。 (4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展。一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。 内聚性是度量一个模块功能强度的一个相对指标。内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。内聚有如下种类,它们之间的内聚度由弱到强排列:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。 耦合性是模块之间互相连接的紧密程度的度量。耦合性取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。耦合可以分为下列几种,它们之间的耦合度由高到低排列:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。 在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

小提示:上面仅是对耦合机制进行的一个分类。可见一个模块与其他模块的耦合性越强则该模块独立性越弱。原则上讲,模块化设计总是希望模块之间的耦合表现为非直接耦合方式。但是,由于问题所固有的复杂性和结构化设计的原则,非直接耦合是不存在的。

考点4 详细设计 考试链接: 考点4在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记过程设计包括哪些常用工具。 详细设计的任务是为软件结构图中的每个模块确定实现算法和局部数据结构,用某种选定的表达表示工具算法和数据结构的细节。 详细过程设计的常用工具有: (1)图形工具:程序流程图,N-S,PAD,HIPO。 (2)表格工具:判定表。 (3)语言工具:PDL(伪码)。 程序流程图的5种控制结构:顺序型、选择型、先判断重复型、后判断重复型和多分支选择型。 方框图中仅含5种基本的控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。 PAD图表示5种基本控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。 过程设计语言(PDL)也称为结构化的语言和伪码,它是一种混合语言,采用英语的词汇和结构化程序设计语言,类似编程语言。 PDL可以由编程语言转换得到,也可以是专门为过程描述而设计的。

疑难解答:程序流程图,N-S图,PAD图的控制结构的异同点是什么? 相同点是三种图都有顺序结构,选择结构和多分支选择,并且N-S图和PAD图还有相同的WHILE重复型、UNTIL重复型;不同点是程序流程图没有WHILE重复型、UNTIL重复型而有后判断重复型和先判断重复型。 3.3软件测试

考点5 软件测试的目的 考试链接: 考点5在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为理解内容,读者应该理解测试是为了发现错误。 软件测试是在软件投入运行前对软件需求、设计、编码的最后审核。其工作量、成本占总工作量、总成本的40%以上,而且具有较高的组织管理和技术难度。 (1)软件测试是为了发现错误而执行程序的过程; (2)一个好的测试用例是能够发现至今尚未发现的错误的用例; (3)一个成功的测试是发现了至今尚未发现的错误的测试。

考点6 软件测试的实施 考试链接: 考点6在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件测试过程的4个步骤,单元测试的两种测试方式。 软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。 单元测试是对软件设计的最小单位--模块(程序单元)进行正确性检验测试。单元测试的技术可以采用静态分析和动态测试。 集成测试是测试和组装软件的过程,主要目的是发现与接口有关的错误,主要依据是概要设计说明书。集成测试所设计的内容包括:软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等。集成测试时将模块组装成程序,通常采用两种方式:非增量方式组装和增量方式组装。 确认测试的任务是验证软件的功能和性能,以及其他特性是否满足了需求规格说明中确定的各种需求,包括软件配置是否完全、正确。确认测试的实施首先运用黑盒测试方法,对软件进行有效性测试,即验证被测软件是否满足需求规格说明确认的标准。 系统测试是通过测试确认软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试。 系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。 3.4软件的调试

考点7 软件调试的基本概念 考试链接: 考点7在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点识记内容,读者应该识记软件调试的概念。 误区警示: 程序经调试改错后还应进行再测试,因为经调试后有可能产生新的错误,而且测试是贯穿生命周期的整个过程。 在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。程序的调试任务是诊断和改正程序中的错误。调试主要在开发阶段进行。 程序调试活动由两部分组成,一是根据错误的迹象确定程序中错误的确切性质、原因和位置;二是对程序进行修改,排除这个错误。程序调试的基本步骤: (1)错误定位。从错误的外部表现形式入手,研究有关部分的程序,确定程序中出错位置,找出错误的内在原因; (2)修改设计和代码,以排除错误; (3)进行回归测试,防止引进新的错误。 调试原则可以从以下两个方面考虑: (1)确定错误的性质和位置时的注意事项 分析思考与错误征兆有关的信息;避开死胡同;只把调试工具当作辅助手段来使用;避免用试探法,最多只能把它当作最后手段。 (2)修改错误原则

相关文档
最新文档