Ontology与OO作为一种需求分析或软件构建方法的存在意义

面向功能,面向对象,ONTOLOGY(其实是一种面向概念的手段),强调的其实只不过描述的层次或角度而已。

一切形式系统的目的都是为了表达。形式系统的工作原理或者说内在特征其实与人体大脑是一样的。人类的思维系统其实本身也是一个形式化系统,或者说至少我们可以把它假设为一个形式系统。只有在有了这个形式系统以后,才有可能存在或发生建立在这个系统基础上的行为。

符合化即人脑外形式系统与人脑内形式系统的区别在于,人脑系统的基于机理仍不清楚。但显然绝对是比功能,对象,概念层次都要深得多的东西。

如果不讨论应用建模,计算机的底层元素其实非常简单。在冯诺依曼体系中就是内存或者指令。没有别的东西。再往下抽象的话其实已经没有意义了。因为计算机只提供这个层次的服务。所有的上层服务都是在内存与指令的基础上建立起来的。

但实际上现在要讨论的或者说值得讨论的正是应用建模。

应用建模。

好好思考一下这个词。什么是“应用”?

应用这个词的语义,正是所有建模技术或方法的“发源地”。

“应用”意味着作为一种人类认识的“应用”。它首先是一种人类认识。然后才是一种拥有“应用”语义的人类认识。记住它是一个认识这一点很重要,因为对它的一步步深入认识,正是建模方法史的根本发展动力。

而“功能”是对“应用”的第一步,也是最直接解释。因为所谓“应用”,那么肯定就是为了“用”而产生的东西嘛。既然目的是“用”而不是东西,那么显然一个正确的划分就是对“用”本身进行划分。这是一种最自然不过的逻辑手段。也是人们始终都没有或说不能摆脱“功能”这个概念进行软件分析,建模或构建的原因。

是的,它是一种最“自然”的软件构建方法。

我要把它曲解成“朴素”。贡文说naive。这个词其实比朴素更有说服力。因为它有点“傻瓜”的意思!

But it turned out to be a very bad methodology. It has to be a reason? And we're not worried yet, because we are human, we have brains. We can think!

其实原因就是:软件太复杂。

如果“用”是清楚的,或者说人们最终能够清楚地说清楚对软件的“用”,那么显然面向功能将是一种最简单,最直接且最高效的建模方法。为什么我要拐着弯去形式化那些没有直接使用价值的其它任何东西比如说,“对象”或“概念”呢?再者,就算你真正在软件内部形式化了这个东西,因为软件的无外在形式的原因,用户也“看”不到啊!

并且,仅仅思考上的不方便,也并不足以推动人们去形式化它们。因为虽然你不方便,但有的人比方主专家们,对于他们来说,思考,特别是在他们领域内的思考,没有什么是比那更方便的事情了。比如摩天大楼的设计,飞机的设计,,,这些东西都不是很“方便”的东西,但那并不影响或并不严重地影响行业本身的发展。事实上,从某个程度讲,“不方便”正是很多人选择进入某些行业的原因。因为那样才更容易造成稀缺价值。难道不是吗?

对象,概念,它们本身并不能帮助构建者提供“应用”或“用”以外的价值。也就是说,有了它们并不能帮肋我们构建比一开始的假设更多的东西。也就是说,它们并不能或者说并没有,拓展软件本身的价值。价值仍旧是一样的。这说明面向对象或面向概念,与面向功能一样,其目标仍然是那个老目标:应用。

价值系统本身并没有发生改变。

改变的是构建这个价值系统或者说完善这个价值的方法。

这样一来,就可以很容易地看清楚,面向对象也好,面向概念也好,它们都只在方法论的范围内有意义。除了方法论,它们并没有任何其它范围上的意义。因为它们并没有提供增量价值。也正因为此,所以用户不知道也不必要知道它们。

对象与概念,对应的是一种更好的功能构建手段。它们更好的原因是,它们在整个人类认识系统中的位置更低,因此它们拥有更强的表达能力。

一个拥有更强表达能力的形式系统,当然是我们想要的东西。因为它意味着一个更好的工具。

 

 

 

 

 

 

 

你可能感兴趣的:(Ontology与OO作为一种需求分析或软件构建方法的存在意义)