软件工程(四)
来源:互联网 发布:天心软件集团 编辑:程序博客网 时间:2024/06/06 22:08
总体设计
设计过程
- 设想供选择的方案
- 选取合理的方案
- 推荐最佳方案
- 功能分解
- 结构设计
- 过程设计
- 设计软件结构
- 设计数据库
- 制定测试计划
- 书写文档
- 系统说明文档
- 用户手册
- 测试计划
- 详细的实现计划
- 数据库设计结果
- 审查和复审
设计原理
模块化
模块化是把程序划分成一个独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求
模块成本和接口成本共同决定系统开发成本,模块数目分隔的越小越多,模块成本越低,但是系统将所有模块整合起来的接口成本随之增加,因此存在接口成本和模块数目的最小成本区抽象
一个复杂的动态系统首先可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一些低级的概念构造和理解。
- 逐步求精
先指定系统打框架,然后再往框架里面填充细节
- 信息隐藏和局部化
局部化:把一些模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的
隐藏:有效的模块化可以通过定义一组独立的模块二实现,这些独立的模块彼此之间仅仅交换哪些为了完成系统功能二必须交换的信息。
- 模块独立
模块独立是模块化、抽象、信息隐藏和局部化的直接结果
独立程度定性标准
耦合:一个软件结构内不同模块之间互连程度的度量
非直接耦合:如果两个模块中的每一个都能独立地工作而不需
要另一个模块的存在,那么它们完全独立。
数据耦合:两个模块彼此间通过参数交换信息,而
且交换的信息仅仅是数据
特征耦合:把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素
控制耦合:如果两个模块彼此间传递的信息中有控制信息
外部耦合:模块与外部环境(操作系统函数、数据库、通信功能等)连接在一起
公共耦合:两个或多个模块通过一个公共数据环境相互作用
内容耦合:
内聚:标志一个模块内各个元素彼此结合的紧密程度
偶然内聚:一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚
逻辑内聚:一个模块完成的任务在逻辑上属于相同或
相似的一类
时间内聚:一个模块包含的任务必须在同一段时间内执行
过程内聚:一个模块内的处理元素是相关的,而且必须以特定次序执行
通信内聚:模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据
顺序内聚:果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行
功能内聚:模块内所有处理元素属于一个整体,完成一个单一的功能
高内聚:功能内聚 10分
顺序内聚 9分
中内聚:通信内聚 7分
过程内聚 5分
低内聚:时间内聚 3分
逻辑内聚 1分
偶然内聚 0分
启发规则
- 改进软件结构提高模块独立性
- 模块规模应该适中
- 深度、宽度、扇出和扇入都应适当
- 模块的作用域应该控制在控制域中
- 力争降低模块接口的复杂程度
- 设计单入口单出口模块
- 模块功能应该可以预测
- 软件工程(四)
- 软件工程(四)
- 软件工程(四)软件维护
- 软件工程:(四)概要设计
- 软件工程视频学习笔记(四)
- 软件工程(四)面向对象技术
- 软件工程(四)——生存周期
- 四十年软件工程故事
- 软件工程实践四
- 四十年软件工程故事
- 四十年软件工程故事
- 四十年软件工程故事
- 软件工程总结四:软件设计
- 软件工程基础<四>
- 软件工程作业四
- 软件工程复习资料(四)
- 软件工程 工具之二—— PowerDesigner v12(四)
- 中兴笔试题目总结(四)软件工程部分
- 【iOS】数据库Core Data的使用
- Android Studio编译大工程报错:java.exe'' finished with non-zero exit value 1
- 冒泡排序和插入排序(直接插入、折半插入、希尔排序)(殷人昆版)
- C中的结构体
- Touch事件理解
- 软件工程(四)
- android 两数相除取小数点后n位
- 量化派重磅推出"量化派开放平台"
- iframe中js创建dom,高度自适应
- 随笔(2015.12)
- 高精度运算
- 手机网络
- Windows Store App异步返回刷新页面
- handler机制原理之精简版