软件工程第五章———总体设计

总体设计阶段的任务该解决“怎样做”的问题了。

 


一、设计过程

总体设计过程通常由两个主要阶段构成:1⃣️系统设计阶段,确定系统具体实现方案。2⃣️结构设计阶段,确定软件结构。

典型的总体设计过程包含九个步骤:

  1. 设想供选择的方案
  2. 选取合理的方案
  3. 推荐最佳方案
  4. 功能分解
  5. 设计软件结构
  6. 设计数据库
  7. 制定测试计划
  8. 书写文档
  9. 审查和复审

 


二、‼️设计原理‼️

1、模块化

模块是构成程序的基本构件。

内容:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定功能满足用户的需求。

效用:使软件容易测试和调试,有助于提高软件的可靠性。模块化使得变动往往只涉及少数几个模块,所以模块化能提高软件的可修改性。

 

2、抽象

人类认识复杂现象过程中最强有力的思维工具是抽象。

含义:现实世界中一定事物、状态或过程之间存在着某些相似的方面(共性)把这些相似的方面集中和概括起来暂时忽略其中的差异,这就是抽象。

随着抽象层次的由高到低,复杂的问题也从 定义 走向 实现。

效用:自顶向下由抽象到具体的方式分配控制,简化了软件的设计和实现,提高了软件的可理解性,可测试性。

 

3、逐步求精

逐步求精是人类解决复杂问题时采用的基本方法。

定义:为了集中精力解决主要问题而尽量推迟对问题细节的考虑。

求精实质上是一个细化的过程,与抽象互补:

                 抽象使得设计者能够说明过程和数据,同时却忽略底层细节;

                 求精帮助设计者在设计过程中揭示底层细节。

 

4、信息隐藏和局部化

信息隐藏:设计和确定一个模块,使得该模块内包含的信息(过程和数据)对于不需要这些信息的模块来说是不能访问的。

效用:给软件维护带来了极大好处

 

局部化:把一些关系密切的软件元素物理地放得彼此靠近。

效用:有助于实现信息隐藏

 


五、模块独立(坚持“低耦合高内聚”)

模块独立的概念是模块化、抽象、信息隐藏、局部化概念的直接结果。

模块独立性重要的理由:

  • 具有独立的模块的软件比较容易开发出来。
  • 独立的模块比较容易测试和维护。

🟡模块独立程度可以由两个定性标准度量:内聚、耦合

1⃣️耦合(衡量不同模块彼此间相互依赖(连接)的紧密程度

耦合强度取决于模块间 接口 的复杂程度

⚪️数据耦合(低耦合):交换的信息仅仅是数据

🟢控制耦合:传递的信息中有控制信息

🟠公共环境耦合:两个或多个模块通过一个公共数据环境相互作用「公共环境可以是全程变量、共享的通信区、内存的公共覆盖区…

🔴内容耦合(最高程度耦合):

  • 一个模块访问另一个模块的内部数据
  • 一个模块不通过正常入口而转到另一个模块的内部
  • 两个模块有一部分程序代码重叠(只可能出现在汇编程序中
  • 一个模块有多个入口(意味着一个模块有几种功能

 

2⃣️内聚(衡量模块内部各个元素彼此结合的紧密程度

低内聚:

           偶然内聚 - 写完一个程序之后,发现一组语句在多处出现,于是把这些语句作为一个模块以节省内存

           逻辑内聚 - 一个模块完成的任务在逻辑上属于相同或相似的一类

           时间内聚 - 一个模块包含的任务必须在同一段时间内执行

中内聚:

            过程内聚 - 模块内的处理元素是相关的,而且必须以 特定次序 执行

            通信内聚 - 模块中所有元素都使用同一个输入数据或产生同一个输出数据

高内聚:

             顺序内聚 - 根据数据流图划分模块时,通常得到顺序内聚的模块

             功能内聚 - 模块内所有处理元素属于一个整体,完成单一的功能

 

ae54a164ef3941a6b7545cb372769dc0.png


 

六、启发规则

  1. 改进软件结构提高模块独立性
  2. 模块规模应适中
  3. 深度、宽度、扇入和扇出都应适当
  4. 模块的作用域应该在控制域之内 {两种改进办法:判定点上移。    作用域下移。}
  5. 力争降低模块接口复杂程度(即降低模块耦合
  6. 设计单入口单出口的模块(即为了避免内容耦合
  7. 模块功能应该可以预测

 


七、面向数据流的设计方法(S D)~也是结构化设计方法

面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值