视频加载失败

课程

2880 字
约 9 分钟

04-general-design

软件工程notes/se-review-obsidian·更新于 2026-09-15

设计过程

定义:结构化方法学的结构化设计阶段SD可分为总特设计和详细设计 总体设计又称为概要设计或初步设计,总体设计的主要工作是回答“系统应该如何实现”这个问题。总体设计的结果要产生一份《总体设计说明书》

任务:将数据流图映射为软件系统结构图

  • 划分出组成系统的物理元素:程序、文件、数据库、文档等
  • 设计软件的结构:确定模块及模块间的关系

设计过程: 1、系统设计阶段:确定系统的具体实现步骤

  1. 设想供选择方法
  2. 选择合理的方案
  3. 推荐最佳方案

2、结构化设计阶段:确定软件结构

  1. 功能分解
  2. 设计软件结构
  3. 设计数据库
  4. 制定测试计划
  5. 书写文档
  6. 审查和复查

选择题

  1. 软件总体设计是指软件总体结构和数据设计,该阶段的主要任务不包括()。
  • A 设计软件的模块结构
  • B 定义接口并建立数据结构
  • C 生成概要设计规格说明书和组装测试计划
  • ==D 模块设计==
  1. 总体设计的目的是确定整个系统的()。
  • A 规模
  • ==B 功能及模块结构==
  • C 费用
  • D 测试计划
  1. 概要设计中,开发人员要解决的最重要的问题是()。
  • A 要让软件做什么
  • B 要给该软件提供哪些信息
  • C 要求软件工作效率怎样
  • ==D 要让该软件模块具有哪些结构==
  1. 软件设计阶段一般又可分为()。
  • A 逻辑设计与功能设
  • ==B 概要设计与详细设计==
  • C 概念设计与物理设计
  • D 模型设计与程序设计

设计原理

模块:是由边界元素限定的相邻元素的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件。

模块化:模块化就是把程序划分为独立命名且可独立访问的模块,每个模块完成一个子功能,是软件应该具备的唯一属性。

抽象:抽出事物的本质特性而暂时不考虑他们的细节

  • 过程抽象
  • 数据抽象
  • 控制抽象

逐步求精

  • 软件工程技术的基础,为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。
  • Miller法则:注意力集中在(7±27\pm2)

信息隐藏和局部化

  • 信息隐藏:一个模块内包含的信息对于不需要这些信息的模块来说是不能访问的,主要指模块的实现细节
  • 局部化:把一些关系密切的软件元素的物理地址放的彼此接近,有助于实现信息隐藏

模块独立性:划分系统模块时最重要的原则

开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。其质量标准是耦合和内聚,软件设计目标是高内聚、低耦合

耦合:衡量不同模块彼此间相互依赖地紧密程度

  • 是对一个软件结构内不同模块间互连程序的度量。
  • 耦合强度取决于模块接口的复杂程度、通过接口的数据等。
  • 耦合度越高,模块独立性越弱
非直接耦合
数据耦合
特征耦合
控制耦合
外部耦合
公共耦合
内容耦合

内聚:衡量模块内部各个元素结合的紧密程度

  • 用来度量一个模块内部各个元素彼此结合的紧密程度。
  • 内聚度越高,紧密程度越高
偶然内聚
逻辑内聚
时间内聚
过程内聚
通信内聚
顺序内聚
功能内聚

选择题

  1. 好的软件结构应该是()。
  • A 高内聚、低耦合
  • B 低耦合、高内聚
  • ==C 高内聚、低耦合==
  • D 低耦合、低内聚
  1. 为了提高模块的独立性,模块内部最好的是()。
  • A 逻辑内聚
  • B 事件内聚
  • ==C 功能内聚==
  • D 通信内聚
  1. 在SD方法中全面指导模块划分的最重要的原则是()。
  • A 程序模块化
  • B 模块高内聚
  • C 模块低耦合
  • ==D 模块独立性==
  1. 下列模块的独立性的耦合方式中,最好的是()。
  • A 公共耦合
  • B 控制耦合
  • ==C 数据耦合==
  • D 内容耦合
  1. 关于内容耦合的描述正确的是()。
  • ==A 内容耦合是最高程度的耦合==
  • B 应该尽量使用内容耦合
  • C 高级语言一般设计成允许内容耦合的形式
  • ==D 如果一个模块有多个入口,可能发生内容耦合==

启发规则

  • 改进软件结构提高模块独立性
  • 模块的大小要适当
  • 深度、宽度、扇入和扇出都应适当
  • 模块的作用域应在控制域之内
  • 力争降低模块接口的复杂程度
  • 设计单入口单出口的模块
  • 模块功能应该可预测,避免对模块施加过多限制

选择题

  1. 模块()定义为受该模块内一个判断影响的所有模块集合
  • A 控制域
  • ==B 作用域==
  • C 宽度
  • D 接口
  1. 划分模块时,一个模块的()。
  • ==A 作用域应处于其控制域范围内==
  • B 控制域应处于其作用域范围内
  • C 作用域与控制域互不包含
  • D 作用域与控制域不受任何限制

设计工具

  • 层次图
  • HIPO图
  • 结构图

![[assets/Pasted image 20260111153555.png|400]] ![[assets/Pasted image 20260111153618.png|400]] ![[assets/Pasted image 20260111153642.png|500]]

  1. 用于概要设计所采用的描述手段是()。
  • A DFD
  • ==B 结构图==
  • C 程序流程图
  1. 软件结构图的形态特征能反映程序复用率的是()。
  • A 深度
  • B 宽度
  • ==C 扇入==
  • D 扇出
  1. 软件结构图中,模块框之间若有直线连接,表示它们之间存在()。
  • ==A 调用关系==
  • B 组成关系
  • C 链接关系
  • D 顺序执行关系

结构化设计方法

结构化设计方法SD是面向数据流的设计方法,以结构化分析(SA)产生的数据流图为基础,将数据流图DFD按一定的步骤映射成软件结构图SC

  • 变换流:输入、变换(主加工)和输出
  • 事务流:根据输入数据类型在多个事务中选择一个执行 ![[assets/Pasted image 20260111155342.png|400]] ![[assets/Pasted image 20260111155402.png|300]]

选择题

  1. 结构化设计方法是面向()的设计。
  • ==A 数据流==
  • B 数据编码
  • C 数据库
  • D 数据类型
  1. 在面向数据流的设计方法中,一般将数据流图划分为()两种类型。
  • A 数据流和事务流
  • B 变换流和数据流
  • ==C 变换流和事务流==
  • D 控制流和事务流
  1. 银行计算机储蓄管理信息系统中,根据客户提出的要求(如存款、取款、查询、挂失、咨询等)进行相应的业务处理的该数据流图是()。
  • 变换型
  • ==事务性==
  • 既不是A也不是B
  • 不一定
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录