软件工程之结构化方法

结构化方法

  • 结构化分析
    • 结构化分析模型
      • 数据流图
    • 结构化分析过程
    • 需求规格说明书
      • 需求验证
  • 结构化设计
    • 总体设计
      • 体系结构设计
      • 接口设计
      • 数据设计
    • 详细设计
      • 详细设计工具
    • 软件设计规约

结构化分析

结构化方法是一种特定的软件开发方法学。

结构化方法就软件需求分析而言,即:系统化地使用问题域术语,给出该问题的模型(即“系统必须做什么”的一个估算)。从问题域映射(分析)到需求,得到该系统的概念模型或称系统的需求规约

需求分析的目标
对需求陈述进行分析,解决其中的歧义、不一致等问题,以系统化的形式表达用户的需求,即给出问题的形式化或半形式化的描述(称为系统的概念模型,或系统的需求规约或需求规格说明)。作为开发人员和客户间技术契约的基础,并作为而后开发活动的一个基本输入。

实现软件需求分析的目标对方法学的需求

  • 提供一组术语(符 ),指导需求抽象中需要关注的主要。方面,并用于表达分析中所使用的信息。这些术语形成一个特定的抽象层,即需求层。
  • 依据这些术语所形成的“空间”,给出表达模型的工具,支持表达系统功能形态。
  • 给出过程指导,以支持系统化地使用相关信息建造系统模型。

结构化分析模型

数据流图

数据流图(Data Flow Diagram):简称DFD,是表达系统功能模型的工具。它是一种描述数据变换的图形工具,从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。它包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。它标志了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

数据流图也称为气泡图。DFD是系统设计自上而下方法中使用的一种设计工具。

一个抽象层是由一组确定的术语定义的,为支持需求分析中有关要使用的那些信息的表达,结构化分析方法给出了以下五个术语/符 :

有关SRS ( Software Requirements Specification)内容方面:

  1. 正确性:指的是SRS中陈述的每个需求都表达了将要构造的系统的某个要求。
  2. 无二义性:指的是SRS中陈述的每个需求都只有一种解释。
  3. 完整性:若一个SRS具有以下三个特性,则它是完整的:
    未来系统所做的任何事情都包含在SRS的陈述中;
    未来系统响应所有可能的输入(包括有效和无效);
    SRS中没有被标识为“待定”的内容。
  4. 可验证性:SRS中陈述的每个需求都是可验证的一即当且仅当存在一一个有限代价的过程(人工或机器可以检查构造的软件产品是否符合用户的需求。
    任何二义性必然导致不可验证性
    任何不可度量的量,如“通常”或“时常”等
    任何等同于停机问题的需求是不能被验证的,如“程序将不
    进入一个无限循环”等同于停机问题,因而是不可验证的。
  5. 一致性:SRS中陈述的需求没有与以前的文档发生冲突;SRS中陈述的各个需求之,间没有发生冲突。
  6. 可理解性:有关SRS格式与风格方面
  7. 可修改性:指的是SRS的结构和风格使任何对需求的必要修改都易于完整、一致的进行。
  8. 可被跟踪性:指的是SRS中的每个需求的出处都是清楚的,这意味着SRS中包含对前期支持文档的引用表。
  9. 可跟踪性:指的是SRS的书写方式有助于对其中陈述的每个
    需求进行引用。
  10. 设计无关性:指的是SRS不暗示特定的软件结构和算法。
  11. 注释:向开发机构提供了每个需求是否重要的指导意见。
    如: E (Essential)、D (Desirable)或0 (Opti onal)。

结构化设计

定义:一种软件开发活动,定义实现需求规约所需的软件结构

结构化软件设计是一种面向数据流的方法

目标是建立系统软件模型、建立软件体系结构和详细处理算法、产生设计规格说明书

设计目标:依据需求规约,在一个抽象层上建立系统软件模型,包括软件体系结构(数据和程序结构),以及详细的处理算法,产生设计规格说明书.
即:要回答如何解决问题一给出软件解决方案

结构化设计分为:

  • 总体设计:确定系统的整体模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。包括体系结构设计、接口设计、数据设计。
  • 详细设计:详细描述模块。包括模块和内部设计(算法和数据结构)。

启发规则是软件结构设计优化准则,软件概要设计的任务就是软件结构的设计,为了提高设计的质量,必须根据软件设计原理设计软件,利用启发规则优化软件结构。

  1. 改进软件结构提高模块独立性
  2. 模块规模适中
  3. 适当控制深度、宽度、扇出、扇入
  4. 模块的作用域应该在控制域之内
  5. 力争降低模块接口的复杂程度
  6. 设计单入口单出口的模块7.模块功能可预测

总体设计

实现软件设计的目标对结构化设计方法的需求
(1)提供可体现“原理/原则”的一组术语(符 ),形成一个特定的抽象层,用于表达设计中所使用的部件。
(2)依据术语所形成的“空间”,给出表达软件模型工具。
(3)给出设计的过程指导。

体系结构设计

定义软件模块及其之间的关系,从分析模型(如数据流图)导出。

模块: 一种可独立标识的软件成分。

调用: 模块间的一种关系,某一模块依赖其他模块实现其功能

模块化基本原则:高内聚,低耦合

模块结构图(MSD):表达软件系统的静态结构。

总体设计分为三个阶段:

  • 第一阶段:初始设计。在对给定的数据流图进行复审和精化的基础上,将其转化为初始的模块结构图。根据穿越系统边界的数据流初步确定系统与外部的接口。
  • 第二阶段:精化设计。依据模块“高内聚低耦合”的原则,精化初始的模块结构图,并设计其中的全局数据结构和每一模块的接口。
  • 第三阶段:设计复审阶段,对前两个阶段得到的高层软件结构进行复审,必要时还可能需要对软件结构做一些精化工作。

变换设计:复审并精化需求模型;确定输入、变换、输出三部分的边界;系统模块结构图;自顶向下,逐步求精。

接口设计

包括外部接口设计和内部接口设计:

  • 外部接口设计依据分析模型中的顶层数据流图
  • 外部接口包括:
    用户界面
    目标系统与其他硬件设备、软件系统的外部接口;
  • 内部接口是指系统内部各种元素之间的接口。

接口设计
模块或软件构件间的接口设计;软件与其他软硬件系统之间的接口设计;软件与人(用户)之间的交互设计。

系统的接口设计(包括用户界面设计及与其他系统的接口设计)是由穿过系统边界的数据流定义的。在最终的系统中,数据流将成为用户界面中的表单、 表或与其他系统进行交互的文件或通信。

数据设计

根据数据字典来确定软件涉及的文件系统的结构及数据库的表结构

确定使用的数据库:关系型;非关系型。

确定数据结构

详细设计

定义每一个模块,确定数据结构和操作,产生详细设计文档

详细设计工具

伪代码

程序流程图

PAD图

N-S图

判定表和判定树

软件设计规约

软件设计规约对软件的组织或其组成部分的内部结构的描述,满足系统需求规约所指定的全部功能及性能要求。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月12日
下一篇 2021年3月12日

相关推荐