软件工程 结构化设计方法 第3篇随笔

3.2、结构化设计方法

何谓设计?

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

1.对设计方法的需求

  • 提供可体现“原理/原则”的一组术语(符号),形成一个特定的抽象层,用于表达设计中所使用的部件
  • 依据术语形成的“空间”,给出表达软件模型工具
  • 给出设计的过程指导

2.总体设计层

  • 引入两个术语/符号

    • 模型:一种可独立标识的软件成分

    • 调用:模块间的一种关系,模块A为了完成其任务必须依赖其他模块

      ​ ——————>

  • 引入了模块结构图

    用于表达软件系统的静态结构

  • 过程指导

    为了实现水目标,总体设计的具体任务:将DFD转化为MSD

    分两步实现:


    第一步:如何将DFD转化为MSD

    ​ 分类:变换型数据流图

    ​ 事务型数据流图

    ​ 变换设计

    ​ 事务设计

    数据流图分类:

    变换型:

    事务型:

    变换设计:

    事务设计:


    第二步:基于模块化原理—高内聚 低耦合

    ​ 给出一些设计规则—经验规则

    ​ 用于精化初始的MSD

    ​ — 体现设计人员的创造

    耦合:

    不同模块之间相互依赖程度的度量

    耦合类型:

    • 内容耦合
    • 公共耦合
    • 控制耦合
    • 标记耦合
    • 数据耦合

    内聚:

    一个模块之内各个成分之间相互依赖程度的度量

    内聚类型:

    • 偶然内聚
    • 逻辑内聚
    • 时间内聚
    • 过程内聚
    • 通信内聚
    • 顺序内聚
    • 功能内聚

    启发性规则—建经验的总结

    • 改进软件结构,提高模块独立性
    • 模块规模适中-每页60行语句
    • 深度、宽度、扇入和扇出适中
    • 模块的作用域力争在控制域之内
    • 降低模块接口的复杂性
    • 模块功能应该可以预测

3.详细设计层

主要引入了关于三种动作控制结构的术语/符号

三种控制结构:顺序,选择和循环

  • 第一种表达-伪代码

    顺序:
    	begin s1;s2;...;sn end;
    选择:
    	if 条件表达式	then s1
    				   else s2;
    循环
    	while 条件表达式  do  s;
    
  • 第二种表达-框图

  • 第三种表达-PAD图

  • 第四种表达-N-S图

posted @ 2022-08-29 15:23  水三丫  阅读(201)  评论(0编辑  收藏  举报