06-软件的设计工程

nobility 发布于 2020-10-30 2401 次阅读


软件的设计工程

概要设计

设计原则

  • 抽象、逐步求精
  • 模块化
  • 信息隐蔽与局部化
  • 复用性

模块独立性衡量标准

耦合:模块之间相对独立性
  1. 非直接耦合:模块之间没有联系
  2. 数据耦合:不同模块之间传递简单参数(数值型)
  3. 标记耦合:不同模块之间穿的的参数是某个复杂数据结构的一部分
  4. 控制耦合:不同模块之间传递的参数包含的控制信息
  5. 外部耦合:不同模块能访问简单的全局变量(数值型)
  6. 公共耦合:不同模块能访问复杂的公共的区域(数组、结构体、类...)
    1. 紧密公共耦合:不同模块对公共区域,同时具有读写权限
    2. 松散公共耦合:不同模块对公共区域,只有读或写权限
  7. 内容耦合:访问其他模块内部数据,非正常入口进入模块内部,模块间有代码重叠,模块有多个入口
内聚:模块内部元素的紧密成度
  1. 功能内聚:一个模块完成一个功能
  2. 信息内聚:多个功能,对同一个操作对象进行操作,且入口唯一
  3. 通信内聚:内部多个功能使用相同输入数据,产生不同的输出结果;或使用不同的输入数据,产生相同的输出结果
  4. 过程内聚:模块内部多个功能都要执行,时间上串行执行按照一定顺序要求,且无数据传递(同一操作对象)
  5. 时间内聚:模块内部多个功能都要执行,时间上串行执行无顺序要求,(同一操作对象)
  6. 逻辑内聚:根据参数的控制信息反应出不同的功能,(同一操作对象)
  7. 巧合(偶然)内聚:模块内部元素没有联系,(不同操作对象)

软件体系结构图

模块调用
  • 一般调用:调用模块箭头指向被调用模块
  • 条件调用:菱形
  • 循环调用:弧形
数据通信
  • 数据信息:尾部空心箭头
  • 控制信息:尾部实心箭头
结构图的相关概念

好的体系结构:顶层高扇出,中层和底层高扇入

  • 结构的深度:层数
  • 结构的宽度:最大宽度层的宽度
  • 扇出:一个模块直接调用的模块数量
  • 扇入:一个模块直接被调用的模块数量

体系结构设计方法

结构化设计方法(SD数据流图转换为体系结构图)

变换分析策略

多条输入经过变换中心输出一条输出

事务分析策略

一条输入经过事务中心输出多条输出

面向对象设计方法

详细设计

代码设计(编号)

  • 顺序码
  • 分段码
  • 字母码:首字母缩写
  • 组合码:顺序、分段、字母编码方式组合
  • 混合码:字符、数字混合
  • 特征组合码:人为规定的标记码

数据库设计(物理数据库)

步骤
  1. 数据需求分析:在系统分析阶段以数据流图和数据字典为依据
  2. 数据概念模型设计:ER图
  3. 将概念模型转换为数据模型
  4. 结构规范化
  5. 物理设计
ER图
  • 实体:矩形
  • 关系:菱形
    • 关系的类型
      • 一对一:实体各自对应一张表,任意一段存外键,该外键是另一端的主键
      • 一对多:实体各自对应一张表,多的一端存外键,该外键是少的一端的主键
      • 多对多:实体各对应一张表,将实体中的主键拿到关系表中充当联合主键
    • 关系的元或度
      • 自关联:一张表,增加一个自关联外键参照该表主键
      • 二元关系
      • 多元关系:每个实体对应一张表,将每个实体中的主键拿到关系表中充当联合主键
  • 属性:椭圆
    • 主键属性:下划线
    • 外码属性:波浪线
    • 域:属性的取值范围

人机界面设计

  • 置用户于控制之下
  • 减少用户的记忆负担
  • 保持界面一致

交互设计

菜单方式:合理分类,合理分级

会话方式:提示和警告确认

错误消息:简洁,礼貌,明了

输入输出设计

输出类型:外部输出,内部输出

输入类型:外部输入、计算机输入

输入格式注意顺序

处理过程设计

目的:为编程和测试提供依据

方式:

  • 程序流程图
  • 盒图
  • 问题分析图(PAD图)

系统设计说明书

此作者没有提供个人介绍
最后更新于 2020-10-30