在面向过程软件开发中 ,软件模块设计是关键
降低模块之间的耦合性,提高模块的内聚性,目的提高模块的独立性模块结构的深度,宽度,扇出,扇入应适当 → 深度:指软件结构中模块的层次数,能粗略的反映系统规模和复杂程度 →宽度:指同一层次中最大的模块个数,影响宽度的最大因素是扇出 → 扇出:指一个模块直接调用的模块数目 →扇入:指有多少个上级模块直接调用它模块的作用范围应该在控制范围内 作用范围(作用域):指受该模块内一个判断影响的所有模块的集合 控制范围(控制域:)指模块本身及其所有直接或间接从属于他的模块集合模块接口设计要简单,以便降低复杂程度和冗余度设计功能可预测并能得到验证的模块适当划分模块规模,以保持其独立性人类认识自然界中的复杂事务和复杂现象过程中使用的一种思维工具,在模块化问题求解时,可以提出不同层次的抽象
随着对抽象不同层次的进展。建立了过程抽象和数据抽象
过程抽象:是一个命名的指令序列,它具有一个特定的受限的功能数据抽象:是一个命名的说明数据对象的数据集合控制抽象:隐含程序的控制机制,逐步求精:为了能集中精力解决主要问题,精良推迟对细节问题的考虑,实际上是一个细化过程,与抽象是互补的概念
局部化概念:指把一些关系密切的软件元素物理的放的彼此靠近,局部化有利于信息隐蔽
模块独立性的概念是模块化,抽象,信息隐蔽和局部化概念的直接结果
具有独立功能且和其他模块没过多作用
应使每个模块完成一个相对独立的特定功能,并且和其它模块接口简单
模块的独立性可以从两个方面来度量,即模块之间的耦合和模块本身的内聚
耦合:
1,软件结构内模块之间联系程度用耦合来度量,
2,耦合强弱取决与模块相互之间接口的复杂程度,一般由模块之间的调用方式,传递信息的类型和数量来决定
3,无直接耦合 不传递任何消息
4,数据耦合 相互传递的消息以参数的形式给出,
5,标记耦合 传递的是数据结构,而且被调用模块不需要作为参数传递过来的整个数据结构,只需要里面一部分数据元素
6,控制耦合 当一个模块调用另一个模块时,,传递的消息控制了该模块的功能
7,公共环境耦合 两个或多个模块公用一个数据环境,公共环境可以是全程变量,内存的公共覆盖区
8,内容耦合 一个模块直接访问另一个模块的内部数据,一个模块有多个入口,不通过正常入口进入另一个模块,内容耦合属于最高程度的耦合,也是最差的耦合,避免使用
结论: 尽量使用数据耦合,少用标记耦合,和控制耦合,限制公共环境耦合的范围,完全不用内容耦合
内聚:
1,模块内部各个元素之间的联系称为内聚,也称块内联系 它是从功能角度来度量模块内的联系,又称模块强度
2,偶然内聚 将模块分成更小的模块,每个小模块执行一个操作,不仅不易修改,而且无法定义其功能,增加程序的模糊性
3,逻辑内聚→模块分解 将逻辑上相同或相似的一类任务放在同一个模块中,每次被调用,有传送给模块的参数来确定该模块应完成的某一功能
4,时间内聚 把需要同时执行的动作嘴和到一起形成的模块称为时间内聚模块
5,通信内聚 模块中所有都使用相同的输入数据或者产生相同的输出数据,例如:利用同意数据生成各种不同形式报表的模块具有通信内聚性
6,过程内聚 模块内处理元素相关,特定次序执行,如吧流程图中循环部分,判定部分,计算部分分成三个模块,都是过程内聚
7,顺序内聚 一个模块中各个处理元素都紧密相关与同一个功能且必须顺序执行
8,功能内聚 模块内所有元素属于一个整体,共同完成一个单一功能
结论: 偶然内聚,逻辑内聚和时间内聚属于低内聚,通信内聚属于中内聚,顺序内聚和功能内聚属于高内聚E-R模型无法在计算机中直接使用,所以要数据库E-R模型向关系模型特定逻辑模式转化
主要包括逻辑结构设计,物理结构设计和数据规范化
它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述
外模式是模式的子集,每一个数据库可以有多个外模式,但一个应用程序只能使用一个外模式外模式在关系模型中对应视图,视图时应用程序保证数据库安全性的方法之一数据逻辑设计应该选择最适合与相应概念结构的数据模型,一般DBMS支持关系,网状,层次3中模式
每个实体转换为一个关系模式,实体的属性就是关系的属性,尸体的码就是关系的码根据实体之间的联系可以按照 1:1, 1:n,m:n软件结构图是软件系统的模块层次结构,用来表达软件的组成模块及其调用关系 结构图的主要内容:
模块。用方块表示模块的调用关系,用单向箭头或直线连接起来表示他们的调用关系,通常还有带注释的箭头表示模块调用过程中来回传递的信息辅助符号,弧形箭头表示循环调用,菱形表示选择或条件调用层次图是进行软件结构设计的另一种图形工具,用来描述软件的层次结构
每一个矩形代表一个模型,矩形框之间的关系表示调用关系层次方框图中方框代表一个数据,方框之间的连线表示组成关系适用于自顶向下设计软件结构过程层次图加上输入-处理-输出图的英文缩写
表示软件开发常用的一种层次结构的描述工具,也可以看成自顶向下按功能逐层分解的设计方法为了HIPO图具有可追踪性,每个方框加了编号结构化设计方法是一种把需求分析阶段得到的数据流图变为软件结构图的一种基于数据流的设计方法
👉是以数据流图为基础设计系统的软件结构, 👉数据流图往往式变换型和事务型的混合, 👉以变化分析为主,事务分析为辅进行设计
变换型数据流图 呈线性形状的结构,由输入(逻辑输入),变换(核心的数据加工处理模块),输出(逻辑输出)3部分组成
事务型数据流图 当一个数据项到达处理某个模块时,将有分类处理 →这种数据流图呈辐射状 →发出多条路径的数据流中枢被称为“事务中心”
输入模块:接收输入数据和数据转换,两者缺一不可输出模块:接收输出数据和数据转换,协调输出信息的产生过程变化中心:管理对内部形成的数据的所有操作它是详细设计,编码的基础,也是进行测试的依据之一
花神博客生涯之软件工程(4)结束了哦~ 接下来会持续更新(⊙o⊙)!