zoukankan      html  css  js  c++  java
  • 系统的结构化分析与设计方法

    1、结构化方法的主要思想:

    (1)软件是有组织、有结构的逻辑实体,其结构为自顶向下的形式 (2)软件由程序和数据组成,其结构呈现三层组织形式,即系统、子系统、功能模块/数据体 (3)软件结构中的各部分既独立又关联

    2、结构化方法的特点: (1)抽象性:抽象描述系统的本质内容 (2)结构化、模块化、层次化: 分而治之,由分到合 (3)分析与设计线索: 面向过程(处理) – 过程驱动 面向数据 – 数据驱动

    3、总体规划: 为所规划的软件系统作出一个战略的、宏观的、全局的技术方案 构建宏观结构模型,为后期的分析与设计奠定基础 三个工作内容: (1)需求调查 (2)结构模型建立 (3)总体规划文档撰写

    4、过程与数据间的关系建立 – U/C矩阵

    (1)过程(处理)对数据的操作可以分为2类: Use – 使用,包括Select、Insert、Delete、Update Create – 建立,即创建数据 (2)U/C矩阵 二维矩阵表 横向业务 – 过程 ;纵向 – 主题数据库 (3)U/C矩阵的作用 为子系统划分提供帮助

    5、子系统规划:

    (1)建立U/C矩阵 (2)整理成“基本U/C矩阵” 在原始的U/C矩阵基础上,反复调换列,使得尽可能多的“C”标记处于矩阵的对角线附近 (3)子系统划分 按照“职能域”对U/C矩阵进行划分 (4)子系统定义 含业务过程和主题数据库

    6、用传统结构化和oo的观点看待系统的比较:

    1)传统方法:系统是处理的集合,处理与数据实体的交互,处理接受输入并产生输出

    2)OO方法:系统是交互对象的集合,对象与人或其他对象交互,对象发送和响应信息

    7、结构化分析:

    分析基础:总体规划说明书;分析每个业务过程的详细流程;分析每个主题数据库的数据结构; 建立分析模型:系统业务流程图、详细的数据流图、数据字典;结构化系统分析结果:系统分析说明书

    8、系统流程图:

    对不同计算机程序、文件、数据库和相关手工过程设计的表达;主要从较高的层次描述系统的相对独立的子系统和程序模块;用图形化的方式描述了对子系统的组织;可以表明系统业务类:Batch(批处理) Real time(实时处理)

    9、

    10、基于数据流的系统分析 -- 数据流图

    数据流图:用处理、外部实体、数据流以及数据存储来表示系统需求的图表

    DFD的特点:图形元素少且符号简单易懂;较充分表达系统的主要需求:输入、输出、处理和数据存储;最终用户、管理人员和系统开发人员只需稍加培训即可读懂DFD图,方便交流。

    11、

    DFD图可以描述高层次的具有高度概括的系统处理 也可以描述低层次的具有更详细分解的系统处理

    抽象层次:把系统分解成一个逐步细化的分层集合的建模技术

    11、关联图:在单个处理符号中概括系统内所有处理活动的DFD

    关联图在表达系统边界时用处很大 系统的范围是通过单个的处理和外部实体所表示的事物来定义的 数据存储不画在关联图中是因为它本身被认为是系统内部的内容

    当一个系统响应事件较多时,常常将系统分成多个子系统, 并为每个子系统创建一张关联图

    12、DFD片段:用一个单一处理符号表示系统响应一个事件的DFD

    在DFD片段中,展示了处理、外部实体和内部数据存储之间的 交互细节 每个DFD片段仅显示要响应该事件的那些数据存储 一个DFD片段是为事件表中的每一个事件创建的

    14、事件分离的系统模型/0层图:    将一个系统或子系统的所有DFD片段组合到一个单个的DFD图     中,这样的DFD图称为事件分离的系统模型/0层图

    0层DFD图:“处理”的编号为i

    0层图对整个系统或子系统进行比关联图更加详尽的描述 但是,有时不使用0层图,因为: 1)包含的信息与DFD片段重复; 2)图表比较复杂,特别是对于需要响应较多事件的大系统 好处: 可以直观地分析各个“处理”之间的数据流的关联关系 适当规模的子系统可以使用0层图

    分解“处理”-理解“处理”的细节: 一个DFD片段中的处理也可

    1层DFD图:将0层DFD中的处理进一步细化等到的DFD图 “处理”的编号为“i.j” 2层DFD图:将1层DFD中的处理进一步细化等到的DFD图 “处理”的编号为“i.j.k”

    包含多个更小的处理 有时分析员需要将该DFD片段进一步细化,生成更 详细层次的DFD图

    15、DFD质量评估:

    高质量的DFD: 可读性强、内部一致、能够准确描述系统需求 措施: 最小化复杂度 (就是使每幅DFD图尽量简单易懂,避免信息超量(信息超量: 当太多的信息同时显现时所发生的难以理解的情况))保证数据流一致性。

    最小化复杂度:措施:采用分层结构将DFD划分为小的且相对独立的子集 这样可以逐级阅读、考察DFD

    构造DFD图的7±2规则: 单个DFD中不应有超过7±2个处理 单个DFD中不应超过7±2个数据流进出同一个处理/数据存储

    接口最小化: DFD中各个元素之间的连接数越少越好

    保证数据流一致性:

    数据流一致性表现在三个方面: 一个“处理”和该“处理”被详细分解后在数据流内容上应该一致 对一个“处理”,有数据流入却没有相对应的数据流出 对一个“处理”,有数据流出却没有相对应的数据流入

     黑洞 --- 带有输入数据的但并不用其产生输出数据的 “处理”或数据存储

     奇迹 --- 没有足够数据元素作为输入或产生来源的一个 “处理”或“数据存储”

    DFD总结:

    在关联图中不画数据存储 数据流不反映处理顺序,显示数据通过系统的流程, 因此“处理”可以并行工作 ;

    “处理”过程既有输入,又有输出;有输入无输出称之为黑洞;若无输入而产生输出称之为奇迹;输出内容不全部依赖于输入为灰洞

    在传统方法中,DFD图在一个图中描述了三种元素:

    处理 -- 每个最底层“处理”需要详细描述其细节

    数据流 -- “数据流”包含的数据元素需要定义

    数据存储 -- “数据存储”需要在ERD中定义

    处理方法:

    1. “处理”细分解,层层分解,直到可详细描述细节 2. 结构化语言/伪代码 3. 决策表/决策树

    16、数据字典—数据分析:

    数据字典是数据分析的描述模型,包括: 数据项定义,数据结构定义,数据流描述,数据存储描述

    数据项定义:定义特定数据项的组成和意义 数据结构定义:定义有数据项组成的表达数据的基本数据 数据流描述:描述数据流的数据构成,并指明其来源或去向 数据存储描述:描述保存在存储介质上的数据文件或数据库 表的格式和内容

    广义的数据字典,也可以包含对“处理”的描述

    数据结构:由数据项组成,它给出了数据基本结构单位 数据结构名 数据结构说明 数据结构组成:{数据项/数据结构} 数据结构约束

     数据流是数据元素的集合,数据流定义就是列出其  包含的所有数据项

    数据元素还需进一步的定义: 说明类型、长度等 数据元素一般在设计阶段详细定义

    数据存储:数据结构保存或停留之处,数据文件或数据库表 数据存储名 数据存储说明 输入的数据流 输出的数据流 数据存储组成:{数据结构} 数据量 存取频度 存取方式

    数据处理:给出处理的流程和说明信息 数据处理名 数据处理说明 输入数据: {数据结构} 输出数据: {数据结构} 处理过程简要描述

    17、结构化的系统设计主要考虑: 模块的层次化、模块之间的接口、数据库设计和用户界面设计的关联性; 用系统流程图记录各个子系统间的关联 为每个模块设计内部逻辑 采用自顶向下的方法进行设计 具有系统自动化边界的DFD ;结构图

    18、结构图定义:以模块为基础、以模块间的调用为关联所构成的图称模块结构图,简称结构图

  • 相关阅读:
    计算机网络:packet tracer模拟RIP协议避免路由回路实验
    计算机网络: 交换机与STP算法
    计算机网络:RIP协议与路由向量算法DV
    Flink-v1.12官方网站翻译-P002-Fraud Detection with the DataStream API
    Flink-v1.12官方网站翻译-P001-Local Installation
    DolphinScheduler1.3.2源码分析(二)搭建源码环境以及启动项目
    DolphinScheduler1.3.2源码分析(一)看源码前先把疑问列出来
    netty写Echo Server & Client完整步骤教程(图文)
    docker第一日学习总结
    Linux下统计CPU核心数量
  • 原文地址:https://www.cnblogs.com/huhaibo/p/3409664.html
Copyright © 2011-2022 走看看