读书-思考-总结  
我的菜园


     做软件开发两年多了,不是计算机专业毕业的,新手入门级别.没有接受过很多的专业性的教育及培训,
就最近的OO和领域模型发表一些自己不成熟的见解.由于没有接受过专业的教育,所有有些词语是自己自创的,希望大家谅解.:)
这篇文章也是自己胡乱思考的,有什么不妥的地方,希望大家指正。

纵向抽象:对具体业务的抽象.业务抽象
这个阶段最重要的是确定系统的功能和其交互的对象甚至是系统的内部对象.
即这个系统能做什么,给谁使用这个系统
比如最近讨论比较的热烈的图书馆例子.
用户,管理员和图书管理系统的鉴定就是在这个时期完成的.我非常同意小生的观点.
用户是这个系统的Actor,而不应该是系统的对象.
同时图书管理员也不应该是置于系统之外的对象,他其实担当了一部分系统的责任.


横向抽象:对于具体应用的抽象.编码抽象.
在这个阶段涉及的部分:可复用代码,可复用模块,设计模式甚至是整个软件的架构方案和硬件的部署方案.
为什么这样说呢,因为这个阶段的抽象复用性很高,甚至和具体的业务一点关系都没有.
如上,举个例子
语法,算法,AOP,ORM,IOC
以上这些通用的东西.是对编码阶段的抽象.

领域模型,对象:在需求确认之后,开始建模,建立领域模型,之后就应该确立对象,


纵向抽象,软件开发的Y轴
横向抽象,软件开发的X轴
领域模型、对象,软件开发中的X轴和Y轴中间的夹角

针对提出的以上的三个方面,我们应该对应的考虑自己的应该重点研究以及发展的方向。
同时,针对对象,领域的讨论也不能割裂纵向(具体需求)来讨论。
也许正是领域模型的出现,能把横向和纵向的部分结合起来.使软件的开发真正的和设计阶段的原型不再脱离。

如果有对我的文章有意见的,欢迎大家讨论。我就是来学习的。:)

最后提出自己的问题
how 怎么样建立领域模型
when 什么时候建立领域模型
希望达人能给出一些建设性的意见

posted on 2007-10-17 15:24  思考-总结  阅读(1722)  评论(2编辑  收藏  举报