Binormal

The genuine programmers use C++

 

自顶向下还是自底向上

        软件系统的架构不外乎两种:自顶向下和自底向上,究竟哪一种比较好呢?
        先谈谈自顶向下,也就是传统的瀑布模型,先确定系统的规模和体系,然后具体化。这种方法的优点是包和类的构造规范,组件间的相互依赖明确。这里最主要的是一个可行性问题,架构合不合理,最终需要编程来检验。一个通常的误区是架构提得太完美以至于难以实现。例如在开发游戏系统的初期就提出要把系统建立在多线程的基础上,数据库一个线程,网络一个线程,图形一个线程,甚至每个角色一个线程,的确很完美,但是难度太大了,不是吗?
        再谈谈自底向上,也就是原型模型。先以最快的速度构建一个模型,然后不断优化它。这种方法的特点是将软件看成一种循环过程,可以不断地扩展和优化,所以系统在任何时候都可以工作,并且将越来越好。这里有一个问题,就是有时为了增加新功能需要修改原有的架构,对于这一点只有在平时通过不断的优化来减少复杂度。
        两种方法的关键一个在于规划,一个在于优化。就像打仗一样,是先制订全盘计划呢还是随机应变呢?我现在一般使用自底向上的方法,因为我觉得首先验证系统的可行性是最重要的,而且可以随时应付需求的变化,最重要的是我喜欢那种不断推出最新版本的感觉。

posted on 2006-06-15 10:12 Binormal 阅读(913) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(2)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜