【概要设计之软件设计的基本原理】

1.模块化

模块在程序中是数据说明可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等。

模块具有以下基本属性:

接口:指模块的输入与输出

功能:指模块要实现的功能

逻辑:描述内部如何实现要求的功能及所需数据

状态:该模块的运行环境,即模块的调用与被调用关系

模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。在划分模块时,模块的规模应当取决于它的功能和用途,同时减少接口的代价,提高模块独立性。

特性:抽象(用层次的方式构造和分析复杂系统)、信息隐蔽(只对特定或者需要的模块进行访问)、局部化

2.模块的独立性

指每个模块只完成系统要求独立的子功能,并且与其他模块的联系最少且接口简单。

衡量标准:

A.耦合性,也称块间耦合。指软件系统结构中各模块间相互联系的紧密程度的一种度量。

无直接耦合:模块间没有联系,不相互传递信息。

数据耦合:指传递简单的数据值。

标记耦合:指两个模块传递的是数据结构的地址(传址)

控制耦合:两个模块传递的是控制变量(如开关、标志)该模块通过控制变量的值有选择的执行块某一功能。

公共耦合:指通过一个公共数据环境相互作用的某些模块间的耦合,公共数据环境可以是全局变量或者数据结构共享的通信区,内存的公共覆盖区以及任何存储介质上的文件、物理设备等

内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常的入口转入到另一个模块内部;两个模块有一部分程序代码重迭;一个模块有多个入口。

B.内聚性,又称块内联系。指模块功能强度的度量,即一模块内各个元素彼此结合的紧密程度的度量。

偶然内聚:一个模块间没有联系

逻辑内聚:模块内执行几个逻辑相似的功能,通过参数确定该模块完成哪一个功能。

时间内聚:吧需要同时执行的模块动作组合在一起形成的模块为时间内聚模块。

过程内聚:把流程图作为工具设计程序时,流程图中的某一部分划分出组成模块,就得到过程内聚模块。

通信内聚:模块内所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者是产生相同的输出数据。

顺序内聚:一个模块内的处理元素和同一个功能密切相关,这些处理必须顺序执行,通常一个处理元素的输出数据作为另一个处理单元的输入数据。

功能内聚:模块内所有元素共同完成一个功能,缺一不可。因为它的功能是单一的明确的,因此与其他模块的耦合是最弱的。

模块的耦合性和内聚性是模块独立性的两个定性标准,将软件系统划分成模块时,做到高内聚低耦合,提高模块独立性。但有时出现内聚性和耦合性矛盾的情况,应更加关注耦合性。

【详细设计之软件设计的基本技术】

层次图(H图)和HIPO图:层次图和IPO图结合共同组成HIPO图

结构图(SC):

面向数据流的设计方法(SD)

详细设计的描述方法

程序流程图:

盒图:

问题分析图(PAD图):

判定表:

判定树:

软件工程——软件的系统设计相关推荐

  1. 软件工程-软件开发的工程思维

    软件工程-软件开发的工程思维 目录 软件工程-软件开发的工程思维 前言 什么是软件工程? 定义 出现的背景 软件工程核心知识 与项目管理的区别 软件工程的目标 为什么需要软件工程 如何做好软件工程:原 ...

  2. 【软件工程】软件工程系统开发——系统设计概述

    halo~我是bay_Tong桐小白 本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言.指点 软件工程系统开发--系统 ...

  3. [软件工程]软件生存周期过程与管理————(2020.6.29学习笔记)

    目录 第一节 软件生存周期过程概述 第二节 过程描述 第三节 应用说明 第四节 软件生存周期模型 第五节 过程规划与管理 第一节 软件生存周期过程概述 软件生存周期(SDLC,软件生命周期) 是软件的 ...

  4. 软件工程软件开发成本度量规范_软件开发成本度量方法

    软件成本度量一直都是软件行业的一个痛点问题.软件度量一度乱象丛生.拍脑袋的定价方式曾大行其道.软件成本度量的乱象直接导致了软件价格的诸多问题.比如预算费用存在浪费或不足的现象,招标存在投标额过低过高等 ...

  5. 软件工程 软件设计 步骤_好的软件设计特点 软件工程

    软件工程 软件设计 步骤 For good quality software to be produced, the software design must also be of good qual ...

  6. 软件工程 软件工程师的誓言

    有人说 程序 = 算法 + 数据结构 有人说 软件 = 程序 + 软件工程,  软件企业 = 软件 + 商业模式. 程序本身没有伦理和职业道德, 但是程序员和软件企业要有. 我们听说过很多例子: 一个 ...

  7. 软件工程-软件生存周期模型

    软件工程-软件生存周期模型 软件工程-软件测试 软件工程-软件测试-测试方法 概念 同任何事物一样,一个软件产品或软件系统也要经过孕育.诞生.成长.成熟.衰亡的许多阶段,一般称为软件生存周期. 软件的 ...

  8. 软件工程-软件系统设计

    文章目录 软件系统设计 软件体系结构概念 软件设计原则 软件体系结构风格 软件设计过程 Web系统架构设计 数据库选择策略 测试题 软件系统设计 软件体系结构概念 软件体系结构包括构成系统的设计元素的 ...

  9. 软件设计师考试 | 第五章 软件工程基础知识 | 系统设计

    文章目录 (一)概要设计 1.设计软件系统总体结构 2.数据结构及数据库设计 3.编写概要设计文档 4.评审 (二)详细设计 在系统分析阶段,把需求通过规格说明书描述了出来,这是目标系统的逻辑模型:在 ...

  10. 软件工程--软件危机-生命周期-软件过程

    文章目录 软件危机 问题 现象 危机产生的原因 途径 软件 定义 特点 软件工程方法学 软件生命周期(过程模型) 软件定义时期 软件开发时期 运行维护 软件过程 理想瀑布模型 实际瀑布模型 快速原型模 ...

最新文章

  1. java 正则 任意字符_Java正则表达式 去掉括号内任意字符
  2. ava RMI 框架(远程方法调用)
  3. MAC版Eclipse的常用快捷键
  4. 数据结构与算法 | 栈
  5. python中的 descriptor
  6. linux中脚本循环语句,Shell脚本循环语句
  7. 样条曲面_SolidWorks肥皂块曲面建模,你的肥皂掉了
  8. 如何在macOS中得到“另存为”快捷方式
  9. stm32波特率计算
  10. ApacheCN 数据科学译文集 20211109 更新
  11. Linux基础-磁盘阵列RAID
  12. 猜字游戏的各种玩法(附详细源码+演示结果),你都玩过吗?
  13. uniapp设置输入框金额效果demo(整理)
  14. Android#studio@快捷键
  15. linux编写多时区时间显示程序,Linux系统时区时间修改
  16. virtualhackinglabs靶机 ANTHONY 10.12.1.113
  17. Codeforces Round #829B CF1753B Factorial Divisibility
  18. 计算机默认网关不可用如何解决问题,Win10网络诊断后提示“默认网关不可用”的问题怎么解决?...
  19. 卷积神经网络(CNN):乳腺癌识别
  20. 天载理财解读国家大基金跌超五个点

热门文章

  1. 为什么女程序员很孤独?
  2. poj 1900 Game
  3. codeforces1608C. Game Master题解(图论)
  4. Python转义字符及用法
  5. C语言/C++基础之大炮打飞机
  6. 魔兽各服务器位置,魔兽世界怀旧服矿点分布位置介绍 全地图采矿位置一览
  7. 堡垒机(运维审计系统)的基本原理与部署方式
  8. 2021年微软研究博士奖研金名单出炉!三位华人博士生入选,每人42000美元
  9. 疯狂的程序员 兼职(下)
  10. 桌面上的计算机图标是一个,电脑桌面上计算机图标不见如何找回