我虽毕业于华中理工大学工民建专业,可是由于自己的学习兴趣不在此,而是对软件编程情有独中,在随后的几年踏入了IT行业,成为一名java程序员。虽几经磨难也还算有些心得体会借此抒发一下,我感觉软件编程作为一项工程项目与建筑工程项目有十分相似的地方,很想在此通过自己的所学和体会与大家探讨一下。
首先作为一个建筑工程项目,我们需要设计图纸,也就是设计方案(是根据客户的需求和成本核算来制定的),同样在软件工程项目中也需要一份设计图纸(UML统一建模语言),虽然国内软件公司还未普及这项先进的软件设计方法,但是一份详尽的需求报告以及软件设计人员(系统架构师)事先设计的软件原型应该相当于设计图纸(或方案文档)。而在软件开发过程中就相当于建设施工阶段,我们知道建筑要先搭好框架(钢结构或者框架结构)然后才能在框架的基础之上建设楼梯、墙板隔断、水电管网等配套设施,同样的软件开发过程也需要事先搭好框架(软件的架构),如三层结构如何实现,是使用现成的开源框架还是自己建设?如先编写接口,面向接口的编程方式,就象建筑上的按图纸施工,由设计人员编写接口,编码人员实现这些接口,就象建筑上的工人拿到图纸,按照规定的尺寸下料、砌墙。在建筑中普遍使用建筑模板,使用模板给水泥沙浆定型,而且效率非常高,水泥干后拆掉模板我们的楼板就做好了。同样在软件工程领域也有模板技术,使用模板可以大大提高代码的复用率。建筑是通过许多不同的功能来实现她的价值,如电梯、中央空调、安全监控、水电管网等子系统给人们营造了一个安全舒适的环境;而软件也是通过许多不同的功能模块来完成自己的使命,方便人们仅需轻点鼠标、敲动键盘就可完成极其复杂的信息处理工作(某些自动控制系统甚至可以完成许多人力无法完成的工作)。
当一个建筑工程经过了基础建设,框架建设,墙体施工后就会进入到内外装修阶段,只有经过内外装修,建筑的美感才真正显示在人们的面前,而这个内外装修就好比软件工程的界面层,直接给用户一个舒服易用的使用环境。
分享到:
相关推荐
通过这个毕业设计,学生可以深入理解Java编程语言、Java EE平台以及MySQL数据库的综合运用,同时提升软件工程实践能力,包括需求分析、系统设计、编码实现、测试和文档编写等各个环节。这样的实践经历对于未来的软件...
建筑工程预算系统是一款专门针对建筑行业的软件应用,它利用计算机编程技术来实现对建筑项目的成本估算、预算编制和管理。在本文中,我们将深入探讨这个系统的构成、主要功能以及相关源码的重要性和应用。 建筑工程...
本资源摘要信息主要介绍 Java 工程师的入职全攻略,涵盖了 Java 工程师的职业发展、软件产业的特点、程序员的分类、软件企业需要的人才、软件工程管理、软件系统建模、软件测试与管理、数据库应用开发等方面的知识点...
综上所述,这个“北邮软件工程-分布式温控系统”项目涵盖了物联网技术、软件工程、数据库设计、多线程编程等多个领域,是理解和实践分布式系统及软件开发的一个良好实例。通过深入研究这些文件,可以提升在这些领域...
《Java房地产工程管理系统源码详解》 在信息技术日益发达的今天,软件在各行各业的应用日益广泛,尤其是在房地产领域。本文将详细解析一个名为"Java房地产工程管理系统"的源码,帮助读者深入理解其背后的编程思想、...
在深入探讨土木工程与软件工程相结合的培养方案之前,我们需要了解这两个领域的基本概念及其相互之间的联系。 首先,土木工程是一门涵盖设计、建造以及维护土木设施的工程学科,这些设施可能包括道路、桥梁、水坝、...
作者:亚历山大(美)著名建筑学家 内容简介:一本介绍建筑学的经典之作, 中间包含了许多关于建筑理论的阐述,不仅仅 对建筑学产生了深远影响,对软件工程等等学科也影响深远,被称之为没有代码的Java经典之作
可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 开发语言:Java ...
本课件集合由周锦舒教授精心编制,旨在深入讲解如何将软件工程的理论与实践应用于城市规划、建设与管理之中。 一、软件工程基础知识 软件工程是一门系统化、规范化的科学,它涵盖了软件开发的全过程,包括需求分析...
软件工程师不仅需要掌握编程语言,如Java、Python、C++或JavaScript,还需要理解软件开发的整个生命周期,包括需求分析、系统设计、编码、测试和维护。在描述中提到的例句中,可以看到软件工程师可能会因为编程错误...
开发者通过学习和实践,不仅掌握了基础的编程技能,也对软件工程的实践有了更深入的理解。这个项目不仅是一个教学实例,也是一个提升技术能力的好平台,对于后来的学习者具有宝贵的参考价值。通过不断的改进和完善,...
通过Java对BIM软件进行二次开发,可以解决设计、施工、后期管理等方面的固有问题,提高BIM在工程中的应用效率。已有研究中,Santos等人结合生命周期评估和生命周期成本方法,对BIM技术进行了二次开发,以评估建筑的...
- **软件工程与AI的结合**:人工智能技术应用于软件设计和开发过程中,可以显著提高软件的质量、效率和可维护性。 - **人工智能辅助设计的核心思想**:利用机器学习、自然语言处理等AI技术自动化或半自动化地完成...
1. **编程语言与框架**:软件工程师应精通至少一种编程语言,如Java、C++或.NET,并熟悉Web开发框架,如.NET Framework、ASP.NET、AngularJS或ReactJS。在上述项目经验中,提到的Lotus Notes Web和.Net Web应用开发...
- **工程项目管理**:适用于建筑、制造等领域的大型工程项目管理。 - **研发项目管理**:适用于软件开发、产品设计等领域的项目管理。 - **服务项目管理**:适用于咨询服务、技术支持等服务型项目的管理。 #### 六...
【基于Springboot+Vue的设计与实现】高分通过项目,已获导师指导。 本项目是一套基于Springboot+Vue的管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。也可作为课程设计、期末...
软件工程考试 - Java 应用程序 由 Marco Taraborrelli、Luca Michele Gallo 和 Angelo Nicola Di Martino 开发的 Java 应用程序。 Coedil99 是一家从事建筑行业的公司,应用程序是关于他的管理。 该软件是为 ...