软件设计中的“自上而下”和“自下而上”
2011-12-17 10:32
197 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明,否则将追究法律责任。
http://blog.csdn.net/hzliyun/article/details/7079464。
在切入主题之前先要了解“上”与“下”的含意是什么,这需要从图1中找答案。图中,应用层在最上面,其下依次是框架、平台、库和操作系统层,因此“上”是指靠近应用层,而“下”则是指靠近操作系统层。
![](http://blog.chinaunix.net/attachment/201112/11/26470037_1323572049Z3LS.jpg)
图1
对于一个被设计的软件模块,存在两个视角。一个是从上向下看,这一看,看到的是模块向上层提供的是什么样的接口,或者说“长什么样”;另一个则是从下向上看,即模块的具体实现是什么,是如何通过使用其下的库(或其它的模块)来塑造它自己的“模样”的。
那一个软件模块的设计之初,是应当自上而下呢,还是自下而上?
软件设计最为重要的是塑造形象,即打算将软件设计成什么样,这是软件设计阶段真正要做的事。软件设计时,最重要的不是数据结构的组织,而是形象塑造,当形象有了以后,数据结构的组织就是一件很自然的事了。因此,软件设计应当先是“自上而下”。显然,光有自上而下也不行,当塑造好了模块的形象以后,还得“自下而上”地考虑如何去实现被设计模块。自下而上时还可以审视,现有的哪些模块能被将要设计的模块所重用,从而提高现有软件模块的复用性。
宏观上讲,两种方法各有特点。自上而下更容易把握整体性,但难度更大,成本也相对高;而自下而上则更容易做到复用,进而获得更好的经济性。在进行软件设计审查(注意,不是代码审查)时,审查者需要注意,不能从自下而上的角度去审视被审查的设计,相反,应当采用自上而下的方式,检查被审查的模块是否很好地体现了它的概念或“模样”。
本文出自 “李云” 博客,请务必保留此出处 http://blog.csdn.net/hzliyun/article/details/7079464。
http://blog.csdn.net/hzliyun/article/details/7079464。
在切入主题之前先要了解“上”与“下”的含意是什么,这需要从图1中找答案。图中,应用层在最上面,其下依次是框架、平台、库和操作系统层,因此“上”是指靠近应用层,而“下”则是指靠近操作系统层。
![](http://blog.chinaunix.net/attachment/201112/11/26470037_1323572049Z3LS.jpg)
图1
对于一个被设计的软件模块,存在两个视角。一个是从上向下看,这一看,看到的是模块向上层提供的是什么样的接口,或者说“长什么样”;另一个则是从下向上看,即模块的具体实现是什么,是如何通过使用其下的库(或其它的模块)来塑造它自己的“模样”的。
那一个软件模块的设计之初,是应当自上而下呢,还是自下而上?
软件设计最为重要的是塑造形象,即打算将软件设计成什么样,这是软件设计阶段真正要做的事。软件设计时,最重要的不是数据结构的组织,而是形象塑造,当形象有了以后,数据结构的组织就是一件很自然的事了。因此,软件设计应当先是“自上而下”。显然,光有自上而下也不行,当塑造好了模块的形象以后,还得“自下而上”地考虑如何去实现被设计模块。自下而上时还可以审视,现有的哪些模块能被将要设计的模块所重用,从而提高现有软件模块的复用性。
宏观上讲,两种方法各有特点。自上而下更容易把握整体性,但难度更大,成本也相对高;而自下而上则更容易做到复用,进而获得更好的经济性。在进行软件设计审查(注意,不是代码审查)时,审查者需要注意,不能从自下而上的角度去审视被审查的设计,相反,应当采用自上而下的方式,检查被审查的模块是否很好地体现了它的概念或“模样”。
本文出自 “李云” 博客,请务必保留此出处 http://blog.csdn.net/hzliyun/article/details/7079464。
相关文章推荐
- 软件设计中的“自上而下”和“自下而上” 推荐
- 软件设计中的“自上而下”和“自下而上”
- 软件测试中自上而下与自下而上的区别
- 软件架构简介及用例图、活动图、顺序图自上而下的设计
- 自上而下的软件开发和自下而上软件开发
- 软件工程课程设计 -- 类图,权限表,界面设计,时序图,状态图
- 软件架构设计之Utility模块——DateTime
- 包的设计原则,读敏捷软件开发 原则、模式和事件总结
- 软件分层设计思路
- RS-232-C端口实时监控软件的设计实现
- 软件收集-建筑设计辅助软件
- 软件的架构设计
- 在纸张上设计软件产品原型的方法
- 微信、陌陌等著名IM软件设计架构详解
- 设计模式(Design Patterns)-可复用面向对象软件的基础 08:外观模式(Facade)
- 软件项目研发的设计流程
- 面向对象软件设计说明书模板
- 结合领域驱动设计的SOA分布式软件架构
- 软件设计和优化的基本原则
- 非常好用的原型设计软件Balsamiq Mockups