总体设计

总体设计的基本且的就是回答“概括地说,系统应该如何实现”这个问题。因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

设计原理

1、模块化:模块是由边界元素限定的相邻程序元素(例如,数据说明,可执行的语句)的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件。模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

2、抽象

3、逐步求精

4、信息隐藏和局部化

5、模块独立

  耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。

模块耦合分为数据耦合、控制耦合、特征耦合、公共环境耦合和内容耦合

  1. 数据耦合:两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。数据耦合是低耦合。系统中至少必须存在这种耦合。
  2. 控制耦合:传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现),则这种耦合称为控制耦合。控制耦合是中等程度的耦合。
  3. 特征耦合:当把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时,就出现了特征耦合。
  4. 公共环境耦合:当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。公共环境可以是全程变量、共享的通信区、内存的公共覆盖区、任何存储介质上的文件、物理设备等。公共环境耦合的复杂程度随耦合的模块个数而变化,当耦合的模块个数增加时复杂程度显著增加。

  内聚衡量一个模块内部各个元素彼此结合的紧密程度。内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚分为三大类低内聚、中内聚和高内聚

高内聚,低耦合的系统有什么好处呢?

事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。
高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。

面向数据流的设计方法

1、面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。信息流有下述两种类型。

  1. 变换流:信息沿输入通路进入系统,由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。

  2. 事务流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。图中的处理T称为事务中心,它完成下述任务。

2、常见的数据流图:

转载于:https://www.cnblogs.com/gede/p/11148005.html

软件工程期末考试复习(四)相关推荐

  1. 山东大学软件学院2022-2023软件工程期末考试(回忆版)

    山东大学软件学院2022-2023软件工程期末考试(回忆版) 前言 1.考试时间:2023/2/17 14:30-16:30 (因疫情推迟到开学考的期末考试) 2.考试科目:软件工程(老师:LuXuD ...

  2. 2018人工智能期末考试复习资料(一):学术篇

    机器之心知识委员会 机心通知函[2018]002号 2018 年人工智能专业期末考试复习资料:学术篇 各人工智能研究者.工程师.从业人: 2018 年是人工智能迅猛发展的一年,从技术研究到产业应用都取 ...

  3. 我们身边的知识产权单元测试答案(期末考试复习)【湘潭大学】

    我们身边的知识产权单元测试答案(期末考试复习)[湘潭大学] 第一章 第二章 第三章 第四章 第五章 第六章 第一章 我国历史上第一部以著作权为保护中心的法律是1910年清政府制定颁布的<大清著作 ...

  4. 大学操作系统期末考试复习经典计算题快速回顾

    操作系统期末考试复习经典计算题 1.银行家算法 2.计算周转时间 2.1 先来先服务(FCFS) 2.2 短作业优先调度算法(SJF) 2.3 优先级调度算法和高响应比优先调度算法 3.页面置换算法( ...

  5. 人工智能期末考试复习(贲可荣 张彦铎)

    人工智能期末考试复习(贲可荣 张彦铎) 人工智能的3个主流学派: 逻辑学派(符号主义方法):物理符号系统(即符号操作系统)假设和有限合理性原理 仿生学派(联结主义方法):神经网络及神经网络间的连接机制 ...

  6. 软件工程期末考试复习题

    软件工程期末考试复习题 时间:2019年7月5日考 作者:玄月二五 1.8 练习题 -.填空题 1.软件工程是一门综合性的交叉学科,它涉及计算机学科.工程学科.管理学科和数学学科. 2.软件工程研究的 ...

  7. 计算机文化基础期末考试复习

      计算机文化基础期末考试复习以下是咱们期末考试的复习题,希望大家认真学习: 一.选择题 1. 第一台计算机ENIAC淡生于1946年,是电子管计算机:第二代是晶体管计算机:第三代是中小规模集成电路: ...

  8. 电子电路期末考试复习预测题一(内附详细解析)

    电子电路期末考试复习预测题(一) 目录 电子电路期末考试复习预测题(一) 复习题一 试题库(1)直流电路 试题库(2)直流电路 试题库(3)暂态电路 复习题一 试题库(1)直流电路 三.单项选择题 1 ...

  9. 嵌入式系统设计与开发期末考试复习

    嵌入式系统设计与开发期末考试复习 STM32学习笔记 第一章:嵌入式系统概述 1.嵌入式系统概念,应用与特点 2.嵌入式系统的硬件(CPU,外设) 3.主要嵌入式软件系统(应用及OS) 4.嵌入式系统 ...

最新文章

  1. 独家 | 如何用Python编写你最喜欢的R函数?
  2. 微处理器含有高速缓存和什么_天天说芯片,芯片到底是什么?
  3. 推荐10款纯css3实现的实用按钮
  4. Linux系统中磁盘创建管理(一)
  5. grep检索关键字的命令_linux系统中java线上问题常用排查命令
  6. Scala集合:List增加元素及集合拼接操作
  7. 我的Git使用-资料查询,名博笔记
  8. 在Linux内核使用Kasan
  9. qt添加菜单纯代码_Qt Creator 插件开发(3):添加菜单项
  10. python自带的解释器叫做_21条python面试题,值得收藏!
  11. 【华为云技术分享】华为专家亲述:如何转型搞 AI?
  12. IntelliJ Idea学习笔记004---IDEA中maven没有了
  13. JQ实现王者荣耀手风琴效果
  14. Pikachu实验过程3(XSS的分析)
  15. 查找单词个数案列实现(字符串流)
  16. EDA技术实用教程 | 复习十 | 移位寄存器的行为级描述
  17. 服务器SSH 22端口关闭
  18. NexT 主题自定义侧边栏图标
  19. android 动画入门(一)
  20. SuperMemo概念初识(摘录)

热门文章

  1. Flask 项目布局
  2. 【C语言】 Linux内核源码-- do...while(0)解析
  3. matlab中存档算法代码,MATLAB 智能算法超级学习手册中程序代码
  4. php nsdata,在iPhone中加密nsdata并在php中解密
  5. mysql 链接慢_mysql连接非常慢的觖决办法及其它常见问题解决办法
  6. 笔记本平板电脑推荐_ONETALK 亦说便携式平板电脑推荐
  7. 最新 Docker 部署nginx Tocmat跑项目(解决springBoot启动两次的问题)
  8. springBoot Maven改成war包
  9. 每天一道LeetCode-----实现一个栈,提供一个接口用于返回栈中最小值
  10. 每天一道LeetCode-----有序数组右移n位后查找某个元素