什么是设计?怎么进行设计?
1、什么是设计
设计不是一个结果,而是一个过程。
为什么这么说呢?如下:
2、软件开发的本质是:需求总是在变化的,而且还会一直变下去。
将软件腐化、退变的原因归结于需求的变化,是一种推卸责任。---------------阅读 Copy程序的演化有感。
3、程序开发者,或者团队,不是从一开始设计该模块时,就试图预测程序将如何变化。相反,团队是以最简单的方法编写该模块。仅当需求最终确实变化时,才修改模块的设计,使之对这种变化具有弹性。这时敏捷软件开发的灵魂所在。
注意:(1)、“设计”这个行为介入的时机,不是从一开始,而是在需求发生变化的时候。
(2)、还要说明的是,此次设计的目的,不仅是适应此次变化,团队还应根据此次需求变化,对后续的需求变化作出预期,以使此次程序的变更适应未来的需求变更。这才是设计要追究的本质。如果仅仅是修改程序,以响应此次需求变更,那么这称之为变更而非设计。
用一个Copier程序的演化,说明什么是设计,怎么进行设计,什么时间进行设计。
初始需求:设计一个copy程序,能够从键盘读取字符,并输出到打印机。
(第一种设计思路):
阶段一:代码实现如下(注:原书是用C# 实现的,这里用C++进行书写):