首页 > 其他分享 >软件工程 结构化设计方法 第3篇随笔

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

时间:2022-08-29 15:33:49浏览次数:49  
标签:结构化 MSD 表达 软件工程 模块 内聚 耦合 设计 随笔

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图

标签:结构化,MSD,表达,软件工程,模块,内聚,耦合,设计,随笔
From: https://www.cnblogs.com/shuisanya/p/16636097.html

相关文章

  • 软件工程周总结
    、运算符1、**: 幂运算 用法:a**b a乘以b的幂次方2、//:整除 用法:a//b a整除3、三目运算符:结果 if 表达式 else 结果 案例:result=(a+b)if a>b else (a-b)4、* :......
  • 随笔
     梦里路过求知中学门口,九月的晚风萧瑟,用力踮起脚尖从外面远远眺望进去,呀!还是和以前一样充满着喧闹和快乐。理所应当的从脑中蹦出一个俗词:“真好”,又想到这份活泼承载的......
  • VUE 笔试题随笔-01
    vue的8个⽣命周期函数?1.beforeCreated2.created3.beforeMount4.mounted5.beforeUpdate6.updated7.beforeDestory8.destoryedv-show与v-if的区......
  • 【随笔】OI 回忆录
    说起OI,最早接触还是在初一,不过当时不知道OI有什么用,纯粹是课余爱好。每个星期大概上\(1\)个小时的课,就这样基础C++语法学了快一年。第一次知道OnlineJudge还是......
  • 学习随笔——codeforces题目Build Permutation解答
    摘要:本题属于构造算法,虽然简单但对思维提升有一定帮助题目原地址如下:https://codeforces.com/problemset/problem/1713/C题目截图如下:  关键词:构造算法,动态规划,*120......
  • 深度工作随笔
     深度工作:深度工作是在无干扰的状态下从事的职业活动,使个人认知能力达到极限.这种活动能够创造价值,提升技能,且无法复制.深度工作对个人是非常有帮助的,是一种非常......
  • 从外部存储的结构化文件创建DataFrame---常用的一种方式
    1.从txt文件中创建DataFrame从txt文件中创建DataFrame如果是从普通的文本文件创建DataFrame文件中的列和列的分隔符不清楚所以创建的DataFrame只有一列,一......
  • VRay6.0汉化·安装教程-VRay6.0详细安装步骤(2022年8月随笔)
    有很多人不会安装VRay6.0,其实很简单,下面由我带给大家VRay6.0安装教程,希望可以帮到需要的用户VRay6.0安装教程1,根据3dmax版本下载VRay对应的版本,解压并打开下载的安装包,双......
  • 第十五章 面向对象编程OPP随笔
    面向对象编程的三个核心为数据抽象、继承和动态绑定。继承:派生类需要通过派生列表指明它从哪个或哪几个基类继承过来,这样,派生类将继承基类的所有成员(多继承将继承多个基......
  • python语法随笔:{!r}、*a, = 、enumerate、dic[1]和dic[1.0]、dis、isinstance(True,in
    f"{!r}"等价与'{!r}'.format()输出会带上引号和print('%r'%a)相同a='2'print(f"{a}")print("{}".format(a))print(f"{a!r}")print("{!r}".format(a))输......