不知道为什么,很多软件开发的新人都是从C或VC的入门书籍开始的。 这就好比,要去打仗的人先熟悉兵器一样。 为什么不从战略战术层面开始学习呢?如果战略和战术出了问题,兵器再熟练又有什么用呢?还不是一样吃败仗? 打仗的目的是追求胜利,不是兵器耍得如何漂亮。而软件开发的目的是解决用户在处理其业务时遇到的问题。 所以,软件开发新人更应该先去培养自己了解用户需求,解决用户问题的能力。 一提到用户需求,我们常常会想到需求建模。那么,软件开发伊始,为什么要进行需求建模呢?是因为“一图胜千言”吗? 要回答这个问题,我们先来了解一下什么是模型。
我们进行软件开发是为了解决用户在业务中遇到的问题,而这些用户的问题领域对于软件开发团队来说是一整套庞大的知识体系,软件开发人员要弄清楚这些问题领域所需知识的广度可能令人望而生畏,庞大而复杂的信息也可能超乎想象。而模型正是解决此类信息庞大问题的工具。使用模型可以对庞大的知识信息进行了选择性的简化和有意的结构化,帮助开发人员理解信息的意义,并专注于用户问题本身。 模型是一种工具,它把庞大、复杂、零乱的信息通过抽象简化这样的整理,让人更容易理解。 而且模型不一定就得用某种特殊的图表示,模型最重要的是它所要传达的思想。模型是对知识或信息进行严格的组织且有选择的抽象。用图可以表示和传达这一思想,同样,好的代码或文字也能达到同样的目的。 所以,建模的目的并不仅仅是借用图形来表述需求,帮助人们理解需求,它更是对需求的有效组织和抽象,把复杂的问题简单化。 基于这样的认识,建模并不是要尽可能建立一个符合“现实”的模型。你建立的模型再具体,再有真实感,它也不过是对事物的一种模拟。
模型有3个基本用途:
一旦完成建模,开发人员不仅有了一个简化、集中的需求体,可以方便地与用户和领域专家进行交流,还能为后续的开发指明了方向。 这正是: 模型意义在抽象,能把复杂化简单 模型无疑是核心,影响维护和实现 参考文献:领域驱动设计:软件核心复杂性应对之道(修订版),[美]埃里克 埃文斯,译者:赵俐等,人民邮电出版社 |
|