首页 > 软件设计 > 软件分析 Vs. 架构设计

软件分析 Vs. 架构设计

2007年9月5日 发表评论 阅读评论

一个用来区分软件分析与设计(design)的普遍方法是认为分析指“做什么” ,而设计指“怎么做”。乍听起来很有信服力,很显然,如果能在一开始就知道想要系统“做什么”,那至于系统应该“怎么做”就会更容易。实际上,过去在尝试区分“做什么”与“怎么做”上花费了大量的人力。在一间会议室里,与会人员都在不停的争论着到底他们现在做的是分析还是设计。像上述情形其实屡见不鲜。

这样的争论比比皆是的原因是,对于这样一个特定的情形来说,每一个“做什么”也是“怎么做”,而每一个 “怎么做”也是“做什么”。讨论是不会有结果的,那是因为其实双方都是对的。如果用“做什么”和“怎么做”来定义分析和设计的话,那么任何一个分析的概念也是设计的概念,反之亦然。

下面来示范一下任何一个“做什么”也是“怎么做”与反之的情况,仔细考虑一下我现在所做的。

我现在在做什么呢?我在写一篇blog。

我现在在怎么做呢?我在笔记本上打字;

我现在在做什么呢?我在笔记本上打字。

我现在在怎么做呢?我在移动手指去敲击键盘,随之,这些所敲击的字母就组成了单词;

我现在在做什么呢?我在移动手指去敲击键盘,随之,这些所敲击的字母就组成了单词。

我现在在怎么做呢?我大脑中的感知部分正把一些单词组织在一起,接着指导大脑的行动部分就发送信号到了肌肉,然后就控制了手指。

我可以一直这样做下去。实际上,我可以一直做下去的意思是,“做什么”和“怎么做”是相辅相成的,它们共同引导着朝向细节的递归过程。任何一个“怎么做”都是下一个阶段递归里的“做什么”;任何一个“做什么”都是上一个阶段中的“怎么做”。递归的阶段数目非常巨大,甚至可能是无穷大。这就意味着,“做什么” 与“怎么做”的区别仅仅相差一个无穷小,所以实质上是相同的。

所以,对于所有的实际情况来说,如果我们视分析为“做什么”而设计为“怎么做”的话,它们就是互不分离的同等过程。所有的分析都是设计,所有的设计也都是分析。

分类: 软件设计 标签: 2,031 次阅读
原文链接:http://www.wenhq.com/article/view_116.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.