软件工程(四)

来源:互联网 发布:天心软件集团 编辑:程序博客网 时间:2024/06/06 22:08

总体设计

设计过程

  1. 设想供选择的方案
  2. 选取合理的方案
  3. 推荐最佳方案
  4. 功能分解
    • 结构设计
    • 过程设计
  5. 设计软件结构
  6. 设计数据库
  7. 制定测试计划
  8. 书写文档
    • 系统说明文档
    • 用户手册
    • 测试计划
    • 详细的实现计划
    • 数据库设计结果
  9. 审查和复审

设计原理

  • 模块化

    模块化是把程序划分成一个独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求
    模块成本和接口成本共同决定系统开发成本,模块数目分隔的越小越多,模块成本越低,但是系统将所有模块整合起来的接口成本随之增加,因此存在接口成本和模块数目的最小成本区

  • 抽象

一个复杂的动态系统首先可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一些低级的概念构造和理解。

  • 逐步求精

先指定系统打框架,然后再往框架里面填充细节

  • 信息隐藏和局部化

局部化:把一些模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的
隐藏:有效的模块化可以通过定义一组独立的模块二实现,这些独立的模块彼此之间仅仅交换哪些为了完成系统功能二必须交换的信息。

  • 模块独立

模块独立是模块化、抽象、信息隐藏和局部化的直接结果
独立程度定性标准
耦合:一个软件结构内不同模块之间互连程度的度量
非直接耦合:如果两个模块中的每一个都能独立地工作而不需
要另一个模块的存在,那么它们完全独立。
数据耦合:两个模块彼此间通过参数交换信息,而
且交换的信息仅仅是数据
特征耦合:把整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素
控制耦合:如果两个模块彼此间传递的信息中有控制信息
外部耦合:模块与外部环境(操作系统函数、数据库、通信功能等)连接在一起
公共耦合:两个或多个模块通过一个公共数据环境相互作用
内容耦合
这里写图片描述
内聚:标志一个模块内各个元素彼此结合的紧密程度
偶然内聚:一个模块完成一组任务,这些任务彼此间即使有关系,关系也是很松散的,就叫做偶然内聚
逻辑内聚:一个模块完成的任务在逻辑上属于相同或
相似的一类
时间内聚:一个模块包含的任务必须在同一段时间内执行
过程内聚:一个模块内的处理元素是相关的,而且必须以特定次序执行
通信内聚:模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据
顺序内聚:果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行
功能内聚:模块内所有处理元素属于一个整体,完成一个单一的功能

高内聚:功能内聚 10分
顺序内聚 9分
中内聚:通信内聚 7分
过程内聚 5分
低内聚:时间内聚 3分
逻辑内聚 1分
偶然内聚 0分

启发规则

  1. 改进软件结构提高模块独立性
  2. 模块规模应该适中
  3. 深度、宽度、扇出和扇入都应适当
  4. 模块的作用域应该控制在控制域中
  5. 力争降低模块接口的复杂程度
  6. 设计单入口单出口模块
  7. 模块功能应该可以预测
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 钻石外汇跑路怎么办 华为p9音质不好怎么办 蝰蛇音效不处理怎么办 停机错过的短信怎么办 手机卡丢了信息怎么办 手机qq消息延迟怎么办 手机无法注册qq怎么办 邮箱发ppt打不开怎么办 263邮箱网页打不开怎么办 电脑网页打不开邮箱怎么办 OPPO邮件卸载了怎么办 刘海扎起来了怎么办 车子过户行驶证怎么办 车辆过户登记证怎么办 当泥石流时应该怎么办 无法接通激活服务器怎么办 金蝶提示服务器怎么办 怎么办word发到qq邮箱 iphone邮箱账户错误怎么办 mac邮箱账户错误怎么办 速腾邮箱打不开怎么办 附近功能已屏蔽怎么办 网易支付被冻结怎么办 华为账号服务器繁忙怎么办? 电脑服务器删了怎么办 感觉自己没排卵怎么办 淘宝卖家骂人怎么办 淘宝遇到恶意买家怎么办 起诉不知道地址怎么办 不知道被告地址怎么办 被报复收到冥币怎么办 划伤伤口肿了怎么办 小孩跳舞不肯跳怎么办 买的豆沙馅太干怎么办 买的豆沙馅太甜怎么办 卷筒发型不会做怎么办 变频器stop灯亮怎么办 增压泵频繁启停怎么办 大理石地面没铺平怎么办 瓷砖拼花压平机跳匝怎么办 五笔不会拆字怎么办