自上而下v.自下而上设计方法

Cha*_*hap 6 architecture

重复:设计和编码 - 从上到下或从下到上?

我想我在最近的经历中发现,我设计软件的方式与大多数同行不同.在收集到足够的要求以获得软件中组件的高级概念之后,我倾向于采用增量自下而上的方法.

因此,在设计一个支持多个具体类的接口的情况下......我将看看每个具体候选人的共同点,询问我如何为每个具体的候选人完成工作(同时考虑强健为了未来的具体).然后我采用这组共性并建立一个界面,我认为这是一种"自下而上"的方法.

在自顶向下方法的情况下,我认为设计人员会查看接口的客户端以及客户端如何与接口交互,然后尝试实现具体类.

所以我可以看到自上而下/自下而上的优点和缺点.我只是想知道哪个更有效率,并根据您以前的经验提供更好的结果?

注意:我不是在谈论开发方法(敏捷,瀑布等),我在谈论设计方法.

Roe*_*ler 16

我相信,对于优秀的软件设计师(在我看来,所有软件开发人员也应该是某种程度上的软件设计师),神奇的是能够同时进行自上而下和自下而上的工作.

我的导师所做的"教育"是从上到下非常简短地了解所涉及的实体,然后自下而上找出我想要创建的基本元素,然后备份并看看我是怎样的可以降低一级,知道我对自下而上的结果的了解,等等,直到"他们在中间相遇".

希望有所帮助.

  • +1同意 - 没有"一个解决方案",而是两者的混合 (2认同)