前几天看到了大家对建筑与软件构建的讨论。我个人认为这两个方面到是很有比较的必要。其实无论建筑本身质量如何,它的建筑流程大体是固定的,因为经过几千年人类建筑文明的沉淀,人们能够了解如何盖起一座符合自己要求的建筑。无论何时,地基还是房屋的基础。寒冷的地方,墙体要厚实。沿海的房屋要有抵抗台风的能力。建筑流程的程序化在于对需求的了解,并由此形成了各地不同的建筑文化,乃至建筑艺术。
就我看来,软件开发是人们在海量信息时代对有效信息的需求产生的无形建筑。通过模拟人类在信息处理中大脑的行为方式,来提高信息处理的速度和质量。呵呵,所以我一直认为软件开发的难点其实是如何将人的思维方式通过电脑来体现并高效地执行。这其中有一道天然的鸿沟,就是人和机器不能够有真正意义上的沟通,为了弥补这个鸿沟,各种语言脱离了简单的对机器的命令,以面向对象的方式来让我们更有效的理解机器中的信息,也可以使机器更有效地模拟人脑的方式来进行信息处理,OO就是这样产生的。
现在让我们看看软件开发和建筑到底有什么相似之处,我认为两者最大的相似之处在于:我们解决问题的途径是一致的。
开始阶段,
软件构建:我们需要知道我们想把什么样的思考和处理信息的方式转换到软件中(需求分析),软件的受众是谁?
建筑:我们需要知道我们想要什么样的房子。建在那里?谁会去用这个建筑?用来干什么?
框架设计阶段,
软件构建:我们知道了我们想把什么样的思考和处理信息的方式转换到软件中。如何去做?选择可以让大众方便访问的B/S结构还是特定人群使用的C/S结构?
建筑:我们知道了想建什么样的房子,这样的房子是否需要特殊的结构,是否需要抵御强风和地震。
发现和解决问题阶段,
软件构建:设计模式
建筑:设计模式
结束阶段,
软件构建:我们花费了金钱和宝贵的时间,我们得到的是一个能部分减少我们劳动的软件。我们需要一段时间来运行,保证它的质量满足我们的需求。
建筑:我们得到理论上满足我们需求的房子,但是要需要时间检验。
下面的问题可能更有意义,软件开发人才和建筑人才的成长是否有相似之处呢?糟糕的软件开发和糟糕的建筑是否有相似之处呢?它们犯的错误是否相同呢?何止这两个行业,所有制造行业可能都有同样类似的问题。
那位大师说的很对,可是如果你把“软件”替换成任何一种你已知的人类文明产物,它都能成立。绘画是遗憾的艺术。从这方面来说,软件从来都不应该是遗憾的,因为我们不应该寄予所有的期望在于软件。说到底,它只不过是个工具而已。
分享到:
相关推荐
首先根据影响建筑废弃物管理活动经济有效性的主要因素的相互作用关系, 描绘了所研究系统的反馈回路, 然后借助系统动力学软件Vensim, 构建了用于建筑废弃物管理经济有效性评估的动态模型. 实证研究结果表明: 所构建...
鉴于建材产品质量风险相互依赖的多属性特征和建筑材料质量风险问题的复杂性,运用网络分析法和模糊综合评价的思想,构建了基于模糊网络分析方法的建材产品质量风险评价模型;通过Super Decision软件计算各指标的权...
绿色建筑象征着人类生态文明与...为使绿色建筑的建设又快又好地推进,必须要构建一个科学合理的绿色建筑体系,在绿色建筑体系硬件建设的同时,还必须要加强绿色建筑体系软件建设。针对如何构建绿色建筑体系进行了探讨。
基于建筑信息模型(BIM),运用VB SQL Server软件开发技术,构建了基于BIM的运维阶段建筑构件预警管理系统,实现了BIM模型中的构件、设备预警信息完整导入到预警管理系统中进行监控与管理。在系统中制作了待检设备...
系统运用软件工程的思想进行设计,为了确保电商系统符合需求,对系统进行了系统测试,及时纠正错误,确保数据准确。 带论文 带论文 带论文 带论文 带论文 带论文 带论文 带论文 带论文 带论文 带论文 带论文 带论文 ...
高迪可以被看作是类似于,因为它太也抽象与从操作系统构建软件客场命令(例如:erase ,而不是rm ,在UNIX喜欢或del Windows上); 但不同之处在于: 它的构建文件基于格式而不是 XML 格式。 它不是专门为特定编程...
将社会网络理论与博弈论相结合,建立建筑工人的社会关系网络和博弈关系网络双层平行联动网络,构建既能反映建筑劳务市场中个体的行为选择过程又能涵盖劳务组织中的关系结构网络的多智能体仿真模型,运用仿真软件进行...
本文构建了建筑安全主体身份特征与安全认知模型研究这种社会属性制约,基于SEM方法提出了4个因子15个观测变量,并采用LISREL8.53软件验证因子及观测变量之间的关系。个案研究发现:主体身份特征对建筑安全管理、...
针对楼宇自动化通信协议和接口多种多样的现状,分析楼宇自动化智能系统软件及硬件整合控制的关键因素,构建了楼宇自动化集成管理系统的结构模型,设计楼宇自动化通信协议的包结构,并解析特有协议模型的实现.
介绍振弦式传感器的基本工作原理、特点和工程中的应用情况,并以其为主要传感器构建监测节点模块,给出一种钢构建筑集散式监测预警系统设计方案和监测软件的设计方法。监测预警系统由中心站、区域子站和监测节点模块...
在管道的第三个也是最后一个阶段,将先前解析的窗口和门矩形与输入的LOD2模型对齐,以构建LOD3模型。 详情 。 项目文件夹结构 :用于全景图像和建筑物分析实现的文件夹 :Faster / Mask R-CNN实施的文件夹
多组实验结果表明,所提出的算法能够显著改善过分割及欠分割问题,准确识别建筑物、道路等地理对象的完整轮廓,在定性分析及定量精度评价中均显著优于商业软件eCongnition及传统多尺度分割算法。
经验和如何与建筑和城镇相联系的。有一天,当Alexander使用了一次又一次后,他发现某些设计结构会导致做 出的效果是最好的。 在Sara Ishikawa和Murray Silverstein的协作下,Alexander发明了一种可以帮助授权任何人...
第一章 企业网构建需求分析 2 1.2 网络设计目标 2 1.3 网络应用需求 2 1.4 网络技术需求 3 1.5 用户需求 3 1.6 功能需求 4 1.7 网络安全需求 4 第二章 网络方案设计与实施 5 2.1 网络设计原则 5 2.2 主要技术路线 6...
第13章 软件架构:面向对象与面向函数 299 13.1 概述 299 13.2 函数式示例 302 13.3 函数式解决方案的模块性评价 305 13.4 面向对象视图 313 13.5 面向对象模块性的评价和改进 319 13.6 代理:将操作封装到...
第一部分 论架构 第1章 架构概述 13 1.1 简介 13 1.2 创建软件架构 19 1.3 架构结构 23 1.4 好的架构 27 1.5 美丽的架构 28 致谢 30 参考文献 31 第2章 两个系统的故事:现代软件神话 33 2.1 混乱大都市 34 ...
阐述了建筑墙面纹理快速重建需要解决的问题和实现策略,并从实用、经济的角度出发,对纹理影像数据源的选择、获取方式,纹理快速提取系统的构建以及重建过程中影像方位元素获取、轮廓线影像匹配关键算法的实现等各方面...
这项研究验证了马来西亚建筑业背景下的技术... 因此,根据分析结果,建议使用TO工具适合测量TO的所有结构,以研究马来西亚建筑公司如何结合其能力来构建组织的资产并允许将其用于资产负债表中。井井有条,高效的方式。
第13章 软件架构:面向对象与面向函数 299 13.1 概述 299 13.2 函数式示例 302 13.3 函数式解决方案的模块性评价 305 13.4 面向对象视图 313 13.5 面向对象模块性的评价和改进 319 13.6 代理:...
第一部分 论架构第1章 架构概述 131.1 简介 131.2 创建软件架构 191.3 架构结构 231.4 好的架构 271.5 美丽的架构 28致谢 30参考文献 31第2章 两个系统的故事:现代软件神话 332.1 混乱大都市 342.2 设计之...