下载此文档

农房建筑图集.pdf


文档分类:建筑/环境 | 页数:约62页 举报非法文档有奖
1/62
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/62 下载此文档
文档列表 文档介绍
第四章总体设计 (System Design)
开始考虑“How”,但仍属高层设计(确定黑盒关系)
§1. 过程
1、确定最佳方案:
从DFD出发进行任务分解,不同的划分方法即对应不同的方案。每个合理的方案应配备下列4份资料:
⑴系统流程图
⑵组成系统的物理元素清单
⑶成本/效益分析
⑷进度计划
选择最佳方案并制定详细的实现计划(主要技术详见第十三章)
§1. 过程
2、结构设计——模块化思想:
将DFD细化,至每个子功能都明白易懂;每个模块完成一个子功能;每层模块合成一个高一级的功能。
主要工具有层次图及HIPO图等。
3、数据库设计(略)
5、文档、审查
4、测试计划(详见第七章)
§
1、原理:
经验1:工作量 E(P1+P2)>E(P1)+E(P2)
经验2:
成本
成本/ 模块
最小成本区
接口成本
软件总成本
模块数目
§
2、抽象(Abstraction):
忽略细节,分层理解问题,自顶向下层层加细。
软件工程过程的每一步都是对软件解法的抽象层次的一次精化。
在可行性研究阶段,软件作为系统的一个完整部件;在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述的;
当由总体设计向详细设计过渡时,抽象的程度也就随之减少了;
最后,当源程序写出来以后,也就达到了抽象的最低层。
逐步求精和模块化的概念,与抽象是紧密相关的。
3、逐步求精(step-wise refining)
“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。”
逐步求精最初是由Niklaus Wirth提出的一种自顶向下的设计策略。
“我们对付复杂问题的最重要的办法是抽象,因此,对一个复杂的问题不应该立刻用计算机指令、数字和逻辑符号来表示,而应该用较自然的抽象语句来表示,从而得出抽象程序。抽象程序对抽象的数据进行某些特定的运算并用某些合适的记号(可能是自然语言)来表示。对抽象程序做进一步的分解,并进入下一个抽象层次,这样的精细化过程一直进行下去,直到程序能被计算机接受为止。这时的程序可能是用某种高级语言或机器指令书写的。”
§
抽象与求精是一对互补的概念。
抽象使得设计者能够说明过程和数据,同时却忽略低层细节。
可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。
求精则帮助设计者在设计过程中逐步揭示出低层细节。
这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。
§
4、信息隐蔽(Information hiding)
信息隐藏原理指出:一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的.
局部化的概念和信息隐藏概念是密切相关的。所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。
在模块中使用局部数据元素是局部化的一个例子。显然,局部化有助于实现信息隐藏。
§
5、模块独立性(Module independence)
好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。
开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。
§
第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。
第二,独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“插入”模块。
总之,模块独立是好设计的关键,而设计又是决定软件质量的关键环节
§
§
⑴耦合(Coupling):不同模块间互连程度的度量
Great deal of dependence
Independent
 Highly coupled
Loosely coupled
Uncoupled 
独立性的度量:耦合(Coupling)&内聚(Cohesion)
(Yourdon & Constantine,1978)
非直接耦合:块间无联系(不可能存在、调用)

农房建筑图集 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数62
  • 收藏数0 收藏
  • 顶次数0
  • 上传人经管专家
  • 文件大小0 KB
  • 时间2011-10-11