第十四章 结构化软件开发方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机软件技术基础
° (3)模块间信息传递 ≥ 在结构图中,用一些带有圆圈的小箭头来表 在结构图中, 示模块之间的通信, 示模块之间的通信,即模块调用时数据或控 制信息的传递,箭头的方向表示传递的方向。 制信息的传递,箭头的方向表示传递的方向。 ° (4)辅助符号 ≥ 在结构图中,有时还要用到一些辅助符号。 在结构图中,有时还要用到一些辅助符号。
计算机软件技术基础
° (3)需求分析 ≥ 在这个阶段中,根据可行性研究阶段提交的文 在这个阶段中, 档,特别是从数据流图出发,对目标系统提出 特别是从数据流图出发, 清晰、准确和具体的要求,即要明确系统必须 清晰、准确和具体的要求, 做什么。 做什么。
计算机软件技术基础
± 2.软件开发期 ° (1)系统设计 ≥ 这一阶段任务是划分出构成系统的各物理元 素以及设计出软件的结构 。 ° (2)详细设计 ≥ 详细设计的任务是对系统作出精确的描述, 详细设计的任务是对系统作出精确的描述, 以便在编码阶段可直接将这一描述用程序设 计语言编制成程序。 计语言编制成程序。
≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ ≥ 通常,软件生命周期包括八个阶段: 通常,软件生命周期包括八个阶段: 问题定义 可行性研究 需求分析 系统设计 详细设计 编码 测试 运行维护
计算机软件技术基础
≥ 为使各时期的任务更明确,又可以分为以下 为使各时期的任务更明确, 三个时期: 三个时期: ± 1.软件定义期 ° (1)问题定义 ° (2)可行性研究 ≥ 可行性研究的目的是进一步研究上一阶段所 定义的问题是否可解。 定义的问题是否可解。
± 3.测试的层次 ° (1)模块测试 ≥ 模块测试又称单元测试。 模块测试又称单元测试。 ≥ 模块测试的目标是发现局部模块的逻辑与功能上 的错误和缺陷。 的错误和缺陷。 ≥ 它主要对以下几个方面进行测试。 它主要对以下几个方面进行测试。
计算机软件技术基础
↓ ① 模块接口 ↓ ② 局部数据结构 ↓ ③ 重要路径 ↓ ④ 错误处理的能力 ↓ ⑤ I/O错 I/O错
计算机软件技术基础
° (2)程序的动态分析 ≥ 程序的动态分析是使用测试用例在计算机上运 行程序,使程序在运行过程中暴露错误。 行程序,使程序在运行过程中暴露错误。 ° (3)自动测试工具 ≥ 自动测试工具实际上是人们编制的用于测试的 软件,并用它来代替人工测试。 软件,并用它来代替人工测试。
计算机软件技术基础
计算机软件技术基础
≥ 在数据字典中,通常有四种类型的条目。 在数据字典中,通常有四种类型的条目。 ± 1.基本数据项条目 ± 2.数据流条目 ± 3.文件条目 ± 4.加工条目 ↓ (即数据处理条目) 即数据处理条目)
计算机软件技术基础
″ 14.2.4 功能说明 ≥ 功能说明又称为“小说明”,它是对数据流程 功能说明又称为“小说明” 图中每个加工的详细描述, 图中每个加工的详细描述,从而也是结构化分 析的主要工具之一。 析的主要工具之一。
计算机软件技术基础
″ 14.3.3 模块独立性的评价 ≥ 评价模块独立性的主要标准有两个:一是模块 评价模块独立性的主要标准有两个: 之间的耦合, 之间的耦合,它表明两个模块之间互相独立的 程度;二是模块内部之间的关系是否紧密,称 程度;二是模块内部之间的关系是否紧密, 为内聚。 为内聚。
计算机软件技术基础
计算机软件技术基础
° (3)编码 ≥ 编码是将系统设计与详细设计阶段中的结 果翻译成用某种程序设计语言书写的程序。 果翻译成用某种程序设计语言书写的程序。 ° (4)测试 ≥ 测试的目的是要尽量发现程序中的错误, 测试的目的是要尽量发现程序中的错误, 但绝不能证明程序的正确性。 但绝不能证明程序的正确性。 ± 3.软件维护期
计算机软件技术基础
° (2)半自动形式的开发方法 ↓ ① 软件需求工程法 ↓ ② 问题说明语言/分析器 问题说明语言/ ± 3.自动形式的系统开发方法
计算机软件技术基础
14.2 结构化分析方法
″ 14.2.1 SA方法的特点 SA方法的特点 ± 1.分解和抽象 ± 2.文档的规范化 ± 3.面向用户 ± 4.系统的逻辑设计和物理设计分开进行
计算机软件技术基础
″ 14.3.2 结构图
± 1.结构图 结构图( Chart,SC) ≥ 结构图(Structured Chart,SC)的基本 元素是模块,一般用矩形框表示。 元素是模块,一般用矩形框表示。 ≥ 结构图将一个系统分解为若干个模块,每 结构图将一个系统分解为若干个模块, 个模块可以看成一个“黑盒” 个模块可以看成一个“黑盒”,在图中表 示它的层次、构成和相互之间的关系。 示它的层次、构成和相互之间的关系。
计算机软件技术基础
≥
测试具有以下三个重要特征。 测试具有以下三个重要特征。 ° (1)测试的挑剔性 ° (2)完全测试的不可能性 ° (3)测试的经济性
计算机软件技术基础
± 2.测试的过程 ≥ 程序的测试一般按三种方式进行:静态分析, 程序的测试一般按三种方式进行:静态分析, 动态测试和自动测试。 动态测试和自动测试。 ° (1)程序的静态分析 ≥ 静态分析指不执行程序,而只人工对程序文本 静态分析指不执行程序, 进行检查,通过阅读和讨论, 进行检查,通过阅读和讨论,分析和发现程序 中的错误。 中的错误。
计算机软件技术基础
计算机软件技术基础
° (1)耦合 ≥ 耦合模块之间的耦合反映了模块的独立性,也反 耦合模块之间的耦合反映了模块的独立性, 映了系统分解后的复杂程度。 映了系统分解后的复杂程度。 ↓ ① 数据耦合 ↓ ② 同构耦合 ↓ ③ 控制耦合 ↓ ④ 公用耦合 ↓ ⑤ 内容耦合
计算机软件技术基础
计算机软件技术基础
计算机软件技术基础
± 3.判定表 ≥ 判定表是判定树的表格形式。 判定表是判定树的表格形式。 ≥ 例如,图4所示的判定树用判定表表示,如图5 例如, 所示的判定树用判定表表示,如图5 所示。 所示。
计算机软件技术基础
计算机软件技术基础
± 4.三种表达方式的比较 ≥ 表14.1是这三种表达工具的比较。 14.1是这三种表达工具的比较。 是这三种表达工具的比较
计算机软件技术基础
计算机软件技术基础
≥ 一般来说,结构图包括以下四种成分。 一般来说,结构图包括以下四种成分。 ↓ (1)模块 ≥ 模块用矩形框表示,矩形框中标明模块的名称, 模块用矩形框表示,矩形框中标明模块的名称, 它反映该模块的功能。 它反映该模块的功能。 ° (2)调用 ≥ 在结构图中,用带有箭头的连线表示模块之间 在结构图中, 的调用关系。 的调用关系。
计算机软件技术基础
± 2.由数据流程图导出结构图 2.由数据流程图导出结构图 ≥ SD方法实际上是面向数据流程图的,即它的工 SD方法实际上是面向数据流程图的 方法实际上是面向数据流程图的, 作对象实际上是在SA方法中形成的数据流程图。 作对象实际上是在SA方法中形成的数据流程图。 SA方法中形成的数据流程图 ≥ 因此,可以由数据流程图来导出结构图。 因此,可以由数据流程图来导出结构图。 ° (1)变换型 ° (2)事务型
计算机软件技术基础
14.1.1 软件工程的概念
软件工程学的主要研究对象: ≥ 软件工程学的主要研究对象: ≥ 包括软件开发与维护的技术、方法、工具和管理等 包括软件开发与维护的技术、方法、 方面。在软件研制开发过程中, 方面。在软件研制开发过程中,若能严格遵循软件 工程的方法论,便可提高软件开发的成功率,减少 工程的方法论,便可提高软件开发的成功率, 软件开发和维护中出现的问题。 软件开发和维护中出现的问题。
计算机软件技术基础
计算机软件技术基础
14.3 结构化设计方法
″ 14.3.1 SD方法的特点 SD方法的特点 ≥ 结构化设计(Structured Design,SD)方法采取 结构化设计( Design,SD) “分解”的手段来控制系统的复杂性,即把一个大 分解”的手段来控制系统的复杂性, 型系统分解成若干个相对独立、功能单一的模块。 型系统分解成若干个相对独立、功能单一的模块。
计算机软件技术基础
″ 14.1.3 应用软件开发的原则和方法 ± 1. 应用软件开发的基本原则 ° (1)自顶向下的系统结构开发原则 ° (2)模块化结构开发原则
计算机软件技术基础
± 2.应用软件的开发方法 ° (1)非自动形式的开发方法 ↓ ① 系统流程图法 ↓ ② 结构化分析方法 ↓ ③ 结构化设计方法 ↓ ④ 数据结构法 ↓ ⑤ 层次输入—处理—输出方法 层次输入—处理—
计算机软件技术基础
″ 14.1.2 软件生命周期 ≥ 某一软件从被提出并着手开始实现,直到 某一软件从被提出并着手开始实现, 软件完成其使命为止的全过程被划分为一 软件生命周期。 些阶段,并称这一全过程为软件生命周期 些阶段,并称这一全过程为软件生命周期。
计算机软件技术基础
14.1.2 软件生命周期
计算机软件技术基础
± 3.画数据流程图的方法 ° (1)自顶向下逐层分解方法 ° (2)由外向里逐渐深化方法
计算机软件技术基础
″ 14.2.3 数据字典 ≥ 数据字典是结构化分析方法的另一个重要 工具。 工具。 ≥ 数据字典主要是给数据流程图中的每一个 数据流名、 数据流名、文件名以及处理名建立一个条 在这些条目中给出各名字的定义。 目,在这些条目中给出各名字的定义。
第十四章
应用软件设计与开发技术
王静
信息科学与技术学院
计算机软件技术基础
第十四章 应用软件设计与开发技术
≥ 14.1 ≥ 14.2 ≥ 14.3 ≥ 14.4
软件工程概述 结构化分析方法 结构化设计方法 测试与调试基本技术
计算机软件技术基础
14.1 软件工程概述
″ 14.1.1 软件工程的概念 ≥ 软件工程: 软件工程: ≥ 是指采用工程的概念、原理、 是指采用工程的概念、原理、技术和方法指导软 件的开发与维护。 件的开发与维护。
计算机软件技术基础
计算机软件技术基础
″ 14.2.2 数据流程图 ± 1.数据流程图的概念 ≥ 图2所示的是一个描述研究生从入学到毕业的 业务活动的数据流程图。 业务活动的数据流程图。
计算机软件技术基础
计算机软件技术基础
± 2.数据流程图的组成符号 ≥ 一般来说,数据流程图由四种基本成分构成: 一般来说,数据流程图由四种基本成分构成: 数据流、数据处理、数据存储和外部实体。 数据流、数据处理、数据存储和外部实体。 ≥ 它们的符号如图3所示。 它们的符号如图3所示。
计算机软件技术基础
计算机软件技术基础
计算机软件技术基础
14.4 测试与调试基Байду номын сангаас技术
″ 14.4.1 测试 ± 1.测试的基本概念 ≥ 软件测试的目标是在精心控制的环境下执行程序, 软件测试的目标是在精心控制的环境下执行程序, 以发现程序中的错误,给出程序可靠性的鉴定。 以发现程序中的错误,给出程序可靠性的鉴定。
计算机软件技术基础
计算机软件技术基础
计算机软件技术基础
° (2)内聚 ≥ 内聚是对一个模块内部元素之间功能上相互 联系强度的测量。 联系强度的测量。 ↓ ① 功能内聚 ↓ ② 序列内聚 ↓ ③ 通信内聚 ↓ ④ 过程内聚 ↓ ⑤ 时间内聚 ↓ ⑥ 逻辑内聚 ↓ ⑦ 偶然内聚
计算机软件技术基础
计算机软件技术基础
± 1.结构化语言 ≥ 结构化语言是介于形式语言与自然语言之间 的一种语言。 的一种语言。 ≥ 在结构化语言中,使用顺序结构、选择结构 在结构化语言中,使用顺序结构、 和循环结构来描述加工处理中的各种功能操 作。
计算机软件技术基础
± 2.判定树 ≥ 判定树又称决策树,它是一种图形工具。在判 判定树又称决策树,它是一种图形工具。 定树中,树根在最左边,它是判定的起点;后 定树中,树根在最左边,它是判定的起点; 面依次是各个分支, 面依次是各个分支,每一个分支中包括表示问 题的条件和根据该条件所做的行动。 题的条件和根据该条件所做的行动。 ≥ 例如,图4所示的是组织春游活动的一棵判定 例如, 树,它根据天气情况以及交通工具来决定春游 地点。 地点。
计算机软件技术基础
计算机软件技术基础