软件建模的困境
来源:互联网 发布:网络技术员培训 编辑:程序博客网 时间:2024/04/28 02:24
软件世界与真实的,物理的世界有着本质的不同,其中一点在于软件中的规则是根据需求制订的而不是先验的。我们在研究物理世界的时候,多少会有些唯物主义,即纷繁芜杂的表象下蕴含着自恰的,不变的规律。物理学的建模是多方位的,多层次的。同一个规律,在不同的简化条件和不同的环境中我们会赋予它不同的名字。在不同的抽象层面上,我们也可能会建立不同的模型。严格的说起来,这些模型之间可能存在着不一致性,但我们相信,存在着一个绝对精确的模型:无限的细节,无限的关联,完美的,自恰的,而我们所建立的所有物理模型都只是对该终极模型在某个层次,某个角度上的近似抽象,而每一个模型都有着自己的适用范围。很多时候物理学的建模是粗鲁的,抛弃了大量似乎必须的要素,只因为物理学家相信物理学的直觉能够将我们引导到正确的道路,不论我们做出什么样的简化和假设,只要它是物理的,最终都会回归到真实的世界。
软件是人为构造出来的,其体现的运行规律由外部需求所决定,而无法形成自我的证明。领域模型(Domain Model)隐喻式的期望能够建立稳定的逻辑层,可这注定是困难的。我们在软件设计中希望分层,职责单一,进行正交化设计。可是一个复杂系统的逻辑分解注定是无法正交化的。非此即彼只存在于抽象的世界。多个复杂性层次上的结构交织在一起,使得我们难以建立稳定的根基。因为缺乏先验的支配规则,我们鼓吹需求到实现的1:1映射,实际上只是希望通过贫乏的唯一性来维护演变中的自恰性。真正实现了1:1映射是不是在系统中引入了人为的刚性? 在一定的情景下,为了达到最适的模型,我们需要各种Facade,我们需要1:n映射,抑或是m:n映射。被割裂了的联系仍然需要通过各种service在系统中重建出来。
在建筑学的隐喻中,建筑设计师与建筑工人之间还存在着一个角色:土木工程师。他在物理结构的层面上而不是应用意义上把握整体工程。在结构层次上我们是能够进行有效的推理和判断的。在软件中也是一样,抛去对象的业务含义,我们可以把它理解为一个Map,那对它可以进行那些操作是可以预知的。只是我们对于软件结构层面的了解还是太肤浅了。每个项目,大量的时间花费在编写那些低层的与业务无关的模块(或者说可以抽象出这些模块),这就如同每次建筑,都从制造砖块开始一样。材料的准备不是一朝一夕之功。在结构层上我们必须对系统形成深刻的理解,这不仅仅是业务建模的问题。
软件是人为构造出来的,其体现的运行规律由外部需求所决定,而无法形成自我的证明。领域模型(Domain Model)隐喻式的期望能够建立稳定的逻辑层,可这注定是困难的。我们在软件设计中希望分层,职责单一,进行正交化设计。可是一个复杂系统的逻辑分解注定是无法正交化的。非此即彼只存在于抽象的世界。多个复杂性层次上的结构交织在一起,使得我们难以建立稳定的根基。因为缺乏先验的支配规则,我们鼓吹需求到实现的1:1映射,实际上只是希望通过贫乏的唯一性来维护演变中的自恰性。真正实现了1:1映射是不是在系统中引入了人为的刚性? 在一定的情景下,为了达到最适的模型,我们需要各种Facade,我们需要1:n映射,抑或是m:n映射。被割裂了的联系仍然需要通过各种service在系统中重建出来。
在建筑学的隐喻中,建筑设计师与建筑工人之间还存在着一个角色:土木工程师。他在物理结构的层面上而不是应用意义上把握整体工程。在结构层次上我们是能够进行有效的推理和判断的。在软件中也是一样,抛去对象的业务含义,我们可以把它理解为一个Map,那对它可以进行那些操作是可以预知的。只是我们对于软件结构层面的了解还是太肤浅了。每个项目,大量的时间花费在编写那些低层的与业务无关的模块(或者说可以抽象出这些模块),这就如同每次建筑,都从制造砖块开始一样。材料的准备不是一朝一夕之功。在结构层上我们必须对系统形成深刻的理解,这不仅仅是业务建模的问题。
- 软件建模的困境
- 巧妇难为无米之炊 走出软件测试的困境
- 巧妇难为无米之炊 走出软件测试的困境
- 软件渠道管理的两难困境
- 软件随想录之囚徒的困境
- 企业软件领域前端开发的困境
- 国产的建模软件
- 软件建模的误区
- 软件建模的事务模式
- 如何摆脱软件开发中各方的沟通困境?
- 软件需求的困境 分析代替了需求
- 软件建模
- 软件建模
- 软件开发和运营的建模
- 编写建模软件的工具选择?
- 【推荐】TrueFun建模软件的在线OnlineHelp
- 系统的软件建模方法研究
- UML软件建模之UML的构成
- 关于轮子
- 今天早上给我的宝贝排了个全身照,纪念纪念
- 今天迟到了
- log4cpp总结
- doxygen总结
- 软件建模的困境
- 谈谈Google Talk
- 利用递归重命名文件名
- 汤普金斯的日记
- 设置控件的字体(API)
- 2005.08.22-2005.08.24
- 从一个政客同儿子的谈话中得到的感想(二)
- Learning Standard C++ as a New Language
- 发生错误1069