软件工程——软件的系统设计
来源:互联网 发布:小区网络监控系统方案 编辑:程序博客网 时间:2024/06/05 23:44
【概要设计之软件设计的基本原理】
1.模块化
模块在程序中是数据说明可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等。
模块具有以下基本属性:
接口:指模块的输入与输出
功能:指模块要实现的功能
逻辑:描述内部如何实现要求的功能及所需数据
状态:该模块的运行环境,即模块的调用与被调用关系
模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。在划分模块时,模块的规模应当取决于它的功能和用途,同时减少接口的代价,提高模块独立性。
特性:抽象(用层次的方式构造和分析复杂系统)、信息隐蔽(只对特定或者需要的模块进行访问)、局部化
2.模块的独立性
指每个模块只完成系统要求独立的子功能,并且与其他模块的联系最少且接口简单。
衡量标准:
A.耦合性,也称块间耦合。指软件系统结构中各模块间相互联系的紧密程度的一种度量。
无直接耦合:模块间没有联系,不相互传递信息。
数据耦合:指传递简单的数据值。
标记耦合:指两个模块传递的是数据结构的地址(传址)
控制耦合:两个模块传递的是控制变量(如开关、标志)该模块通过控制变量的值有选择的执行块某一功能。
公共耦合:指通过一个公共数据环境相互作用的某些模块间的耦合,公共数据环境可以是全局变量或者数据结构共享的通信区,内存的公共覆盖区以及任何存储介质上的文件、物理设备等
内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常的入口转入到另一个模块内部;两个模块有一部分程序代码重迭;一个模块有多个入口。
B.内聚性,又称块内联系。指模块功能强度的度量,即一模块内各个元素彼此结合的紧密程度的度量。
偶然内聚:一个模块间没有联系
逻辑内聚:模块内执行几个逻辑相似的功能,通过参数确定该模块完成哪一个功能。
时间内聚:吧需要同时执行的模块动作组合在一起形成的模块为时间内聚模块。
过程内聚:把流程图作为工具设计程序时,流程图中的某一部分划分出组成模块,就得到过程内聚模块。
通信内聚:模块内所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者是产生相同的输出数据。
顺序内聚:一个模块内的处理元素和同一个功能密切相关,这些处理必须顺序执行,通常一个处理元素的输出数据作为另一个处理单元的输入数据。
功能内聚:模块内所有元素共同完成一个功能,缺一不可。因为它的功能是单一的明确的,因此与其他模块的耦合是最弱的。
模块的耦合性和内聚性是模块独立性的两个定性标准,将软件系统划分成模块时,做到高内聚低耦合,提高模块独立性。但有时出现内聚性和耦合性矛盾的情况,应更加关注耦合性。
【详细设计之软件设计的基本技术】
层次图(H图)和HIPO图:层次图和IPO图结合共同组成HIPO图
结构图(SC):
面向数据流的设计方法(SD)
详细设计的描述方法
程序流程图:
盒图:
问题分析图(PAD图):
判定表:
判定树:
- 软件工程——软件的系统设计
- 软件工程——详细设计,编码,软件测试,软件维护
- 软件工程——第一章 软件和软件工程的基本概念
- 软件工程—软件计划
- 软件工程——软件维护
- 软件工程——软件计划
- 软件工程——软件测试
- 软件工程——软件计划
- 软件工程——软件测试
- 软件工程——软件计划
- 软件工程——软件测试
- 【软件工程】——软件测试
- 【软件工程】——软件维护
- 软件工程——软件管理
- 软件工程——软件实现
- 软件工程——软件测试
- 软件工程——软件计划
- 软件工程——软件测试
- 生成格雷码
- 查看 Linux 系统信息
- 7个小时
- vs2013设置winp#cap开发环境
- eclipse cdt c++用法
- 软件工程——软件的系统设计
- poj 1979 Red and Black(BFS)
- 二分-PATA1010
- memcached简介及java使用方法
- Spark2.0 特征提取、转换、选择之二:特征选择、文本处理,以中文自然语言处理(情感分类为例)
- VTK能干什么?VTK大部分功能的细节简介,VTK能打开的文件格式
- [完]机器学习实战 第五章 Logistic回归(Logistic Regression)
- 快速排序算法C++实现
- 配置apache的80、443端口