软件世界与真实的,物理的世界有着本质的不同,其中一点在于软件中的规则是根据需求制订的而不是先验的。我们在研究物理世界的时候,多少会有些唯物主义,
即纷繁芜杂的表象下蕴含着自恰的,不变的规律。物理学的建模是多方位的,多层次的。同一个规律,在不同的简化条件和不同的环境中我们会赋予它不同的名字。
在不同的抽象层面上,我们也可能会建立不同的模型。严格的说起来,这些模型之间可能存在着不一致性,但我们相信,存在着一个绝对精确的模型:无限的细节,
无限的关联,完美的,自恰的,而我们所建立的所有物理模型都只是对该终极模型在某个层次,某个角度上的近似抽象,而每一个模型都有着自己的适用范围。很多
时候物理学的建模是粗鲁的,抛弃了大量似乎必须的要素,只因为物理学家相信物理学的直觉能够将我们引导到正确的道路,不论我们做出什么样的简化和假设,只
要它是物理的,最终都会回归到真实的世界。
软件是人为构造出来的,其体现的运行规律由外部需求所决定,而无法形成自我的证明。领域模型(Domain
Model)隐喻式的期望能够建立稳定的逻辑层,可这注定是困难的。我们在软件设计中希望分层,职责单一,进行正交化设计。可是一个复杂系统的逻辑分解注
定是无法正交化的。非此即彼只存在于抽象的世界。多个复杂性层次上的结构交织在一起,使得我们难以建立稳定的根基。因为缺乏先验的支配规则,我们鼓吹需求
到实现的1:1映射,实际上只是希望通过贫乏的唯一性来维护演变中的自恰性。真正实现了1:1映射是不是在系统中引入了人为的刚性?
在一定的情景下,为了达到最适的模型,我们需要各种Facade,我们需要1:n映射,抑或是m:n映射。被割裂了的联系仍然需要通过各种service
在系统中重建出来。
在建筑学的隐喻中,建筑设计师与建筑工人之间还存在着一个角色:土木工程师。他在物理结构的层面上而不是应用意义上把握整体
工程。在结构层次上我们是能够进行有效的推理和判断的。在软件中也是一样,抛去对象的业务含义,我们可以把它理解为一个Map,那对它可以进行那些操作是
可以预知的。只是我们对于软件结构层面的了解还是太肤浅了。每个项目,大量的时间花费在编写那些低层的与业务无关的模块(或者说可以抽象出这些模块),这
就如同每次建筑,都从制造砖块开始一样。材料的准备不是一朝一夕之功。在结构层上我们必须对系统形成深刻的理解,这不仅仅是业务建模的问题。
分享到:
相关推荐
3D建模软件:Blender二次开发.docx 3D建模软件:Blender二次开发all.docx 3D建模软件:Blender二次开发_Blender与外部工具的集成.docx 3D建模软件:Blender二次开发_Blender二次开发项目实战.docx 3D建模软件:...
3D建模软件:Rhino二次开发.docx 3D建模软件:Rhino二次开发all.docx 3D建模软件:Rhino二次开发_3D建模核心概念.docx 3D建模软件:Rhino二次开发_3D打印与Rhino二次开发.docx 3D建模软件:Rhino二次开发_...
3D建模软件:Maya二次开发.docx 3D建模软件:Maya二次开发all.docx 3D建模软件:Maya二次开发_MayaAPI基础.docx 3D建模软件:Maya二次开发_Maya与其他软件的集成开发.docx 3D建模软件:Maya二次开发_Maya二次开发...
3D建模软件:3D Studio Max二次开发_(10).3DStudioMax二次开发项目管理与团队协作.docx 3D建模软件:3D Studio Max二次开发_(1).3DStudioMax二次开发入门.docx 3D建模软件:3D Studio Max二次开发_(2).3...
3D建模软件:3D Studio Max二次开发.docx 3D建模软件:3D Studio Max二次开发all.docx 3D建模软件:3D Studio Max二次开发_3DStudioMax与外部程序的集成开发.docx 3D建模软件:3D Studio Max二次开发_3DStudioMax二...
数学建模大赛:智能交通灯控制系统优化; 数学建模大赛:智能交通灯控制系统优化; 数学建模大赛:智能交通灯控制系统优化; 数学建模大赛:智能交通灯控制系统优化; 数学建模大赛:智能交通灯控制系统优化; 数学...
本资源摘要信息涵盖了UML软件建模的基础知识和技术要点,包括模型的概念、软件模型的特征、软件建模技术、软件模型的分类、软件建模工具、UML的发展过程、UML的组成部分、元模型理论、模型元素的可见性等。...
软件建模与设计是软件开发过程中的核心环节,它涵盖了从需求分析到系统实现的整个流程。本资源包包含了五个PPT课件和一本名为《Software Modeling and Design》的PDF电子书,旨在深入探讨这一主题。 首先,软件建模...
本资源是一个UML软件建模教程的习题和答案,涵盖了软件建模的基础知识、UML语言、软件建模技术、软件模型的特征、软件建模工具等方面的内容。 【软件建模基础知识】 1. 软件建模的作用:软件建模可以帮助人们更好...
高清中文,你值得拥有. 难道一寻的UML建模用例分析
Matlab/Simulink:Matlab是一种数学计算和科学建模的软件,Simulink是其附带的一个用于进行系统建模和仿真的工具。 仿真建模:通过使用计算机软件建立模型,模拟和分析实际系统的行为和性能。 光伏电池是一种利用...
《软件方法 上 业务建模和需求》是潘加宇先生的一部著作,该书深入探讨了软件开发过程中的业务建模与需求分析这一关键环节。业务建模旨在理解和表述组织的业务流程,而需求分析则是为了明确软件系统应具备的功能和...
GTMS3.0是一款基于灰色系统理论的建模软件,用于帮助用户分析和预测复杂系统的动态行为。这个软件提供了多种灰色建模方法,包括但不限于灰色关联分析、灰色预测模型(如GM(1,1)模型)、灰色决策模型等。这些模型对于...
在IT行业中,软件建模是一项至关重要的技能,它帮助开发者理解和设计复杂的系统,确保软件项目的高效性和可维护性。"软件建模技术4"这个主题很可能是一个关于高级建模概念和实践的教程或讲座资料,可能包含了一些...
《gocad三维建模软件入门教程:从基础到实践》 gocad是一款强大的三维建模软件,尤其在地质、工程和科学研究领域广受欢迎。它的用户友好界面和易学性使得初学者能够快速上手,掌握基本的建模技术。本教程将深入探讨...
《UML2软件建模入门与提高》是一个涵盖了软件开发中的统一建模语言(Unified Modeling Language,简称UML)的全面教程。UML是软件工程领域广泛应用的一种可视化建模工具,用于描述、构造和文档化软件系统的设计。本...
《软件系统建模:从入门到精通》 在软件工程领域,建模是设计和分析复杂系统的关键技术,尤其在中科大软件学院的教学体系中,建模能力的培养被视为软件工程师的重要素质。陈博教授的课程,专注于软件系统建模,旨在...
在ANSYS软件中,建模和CAD导入是两个至关重要的步骤,它们构成了数值模拟和仿真分析的基础。ANSYS是一款强大的工程模拟工具,广泛应用于机械、航空航天、汽车、电子等多个领域,帮助工程师解决复杂的工程问题。 **...
### 软件全程建模:深度解析需求模型、分析模型、设计模型、物理模型 在软件工程领域,全程建模是一种系统性的方法,旨在利用模型而非传统的文字描述来贯穿软件开发的整个生命周期,从需求分析到最终产品的实现。...
【UML软件建模技术实验报告】 本实验报告主要针对新仁医院的住出院流程,通过UML(统一建模语言)技术进行软件建模,旨在优化和自动化医院的业务流程,以符合政府推行的e化医院项目要求。报告分为六个部分:概述、...