新的开发工具几乎每天都在出现,框架也变得越来越强大。此外,基于人工智能(AI)的工具也在不断涌现,为开发过程提供支持,与此同时,也对数据安全以及系统和网络的保护也提出了新的要求。
纵观全局——从机械、自动化和数字化不断发展和相互影响可以看出:在这个高速运转的环境中,尤其是在机械工程领域,建立良好的软件开发基础是当前必须要考虑的特殊要求。
直到 20 世纪 80 年代中期,软件在机械工程中几乎没有发挥任何作用。机械工程的重点是开发和优化机械或电气部件(即:硬件)。
机械工程领域的软件开发始于20 世纪80年代早期的计算机应用。当时,软件主要用于控制生产流程等简单任务的自动化。这些程序通常比较专业,以硬件为导向,并为特定机器量身定制。早期,对程序的要求还相对简单。机械工程师通常自己开发产品,并掌握必要的知识。
图1:1983 年的 KLINGELNBERG(克林贝格) PNC 40 VA 测量仪清楚地展现了过去四十年来技术发展的巨大飞跃。
其中的一些软件内容至今仍在实际应用中使用。多年来,这些软件内容不断随着新的专业知识而升级,因此非常有效。然而,今天的标准架构在当时基本上还是未知的。尽管当时开发的内容蕴藏着丰富的知识,但其中一些是非结构化的,因此很难获取。
随着机器和系统变得越来越复杂,对软件的要求也随之提高。程序变得更加复杂,需要新的开发方法和技术。20 世纪 90 年代末,面向用户的编程语言开始普及,这促进了复杂软件系统的开发。同时,也引入了软件架构和软件工程等新方法,旨在提高程序的质量和可靠性。
图2:许多机械行业产品在20世纪90年代就已高度成熟。自那时起,大多数产品都在软件领域进行了进一步开发。在KLINGELNBERG(克林贝格)公司,通过闭环系统等概念和 GearEngine® 等软件平台嵌入工业 4.0 。
当时,许多机械工程产品已经非常成熟,因此大多数产品都在软件领域得到了进一步发展。这一趋势一直延续至今。
Distinctive Aspects of
Mechanical Engineering
与消费领域的产品不同,机械工程领域的软件产品需要遵守特殊的规则。它们通常包含多年积累的专有技术,必须符合可靠性、可维护性、安全性和使用寿命的最高标准。
功能强大的用户界面是必不可少的。近年来,在系统和数据库联网、各种安全问题以及用户档案变化等方面也出现了新的要求。在开发KLINGELNBERG(克林贝格)软件的过程中,重要的是要确保该软件能够完美地与客户现有的数据库系统相匹配。通过这种方式,重要的信息就可以跨系统连接起来,作为零件跟踪的基础,并在客户的质量保证系统中进行无缝跟踪。
自机械工程领域早期使用软件以来,所开发的数字产品已变得越来越复杂,但却往往没有一个合理的系统结构。在很多情况下,这是由于程序随着时间的推移而大幅增加,而架构的结构原理在开发阶段尚未普及。因此,结构可能会变得错综复杂,以至于在保留现有源代码的同时进行现代化改造已不再可行。
缺乏足够的测试覆盖率往往是对现有系统进行修改时必须保持极为谨慎的原因。由于担心意外的交互或难以发现的错误,必要的清理工作(现在称为“重构”)往往被忽视。这必然会导致现代化进程陷入僵局,从而形成恶性循环。因此,我们需要一种全新的方法。
这就产生了如下问题: 如何才能在保留传统软件(即:随着时间推移不断开发的现有系统)的丰富知识的同时又能建立新的结构?
Modernizing With a Greenfield
or Brownfield Approach?
一个显而易见的解决方案就是所谓的“绿地”方法,即:在现有系统的基础上开发“绿地”新系统。一旦新系统能够复制旧系统的所有功能,旧系统就会停止使用。至少,理论上是这样的。
然而,在实践中可能会遇到一些困难。新系统的开发需要较长的时间,而在整个开发过程中仍需使用旧系统。与此同时,旧系统仍在继续增长,导致了新旧系统之间的竞争。
一开始,由于缺乏现场经验,新系统还没有做好进入市场的准备。磨合期的问题几乎都是“预想的”。
当一个全新的开发团队生成新系统时,另一个困难就出现了。“新晋”开发人员通常在现代开发环境和现代工具使用方面接受较好的培训,但他们对遗留软件的历史、客户需求或技术领域的特殊性一无所知。 因此,与维护遗留系统的开发小组进行深入合作是绝对有必要的。然而,这在日常工作中往往很难做到,因为负责维护和保养遗留系统的小组通常都在满负荷地工作。
所有这些都让我们痛苦地认识到,在大多数情况下,必须采用一种更为复杂的方法,即:所谓的 “棕地方法”。换言之,我们必须逐步对现有系统进行改造。旧系统将以模块化的方式逐步转换为新系统。
图3:“绿地 ”和 “棕地 ”方法描述了开发新系统的不同方法:程序可以从头开始开发,也可以逐步将现有系统升级至全新的水平。
机械工程中的软件开发:为什么“绿地方法”不是很有效?
在软件开发中,在“绿地”上编程新软件并停止使用原有系统是一种高效可行的方法。但机械工程中的情况略有不同,其目的是在建立新结构的同时保留以前演变的旧系统的丰富知识。现有系统必须逐步重新设计。在模块化的基础上,将旧系统逐步转换为新系统。
步与狭义上的软件开发无关,但它为现代软件开发的正确思维方式奠定了基础。流程优化旨在确保流程在后台正常运行。
这其中的原因显而易见:没有良好的用户需求说明,就会开发出错误的软件;没有有效的优先级排序,就会在错误的时间获得正确的软件;没有良好的设置,软件就无法为客户正常工作;没有配置管理,软件最终会出现错误配置;没有测试,错误就会一对一地传递给客户。
在早期内部软件开发时,KLINGELNBERG(克林贝格)就坚持遵循着这些指导原则,因此KLINGELNBERG(克林贝格)设备的工作效率和客户满意度都得到了不断的提高。
■哪些是好的、必须保留的?哪些是一定需要做出改变的?
■内部核心竞争力在哪里?如今外部模块在哪里可以获得?
■模块化并包含适当的接口,将再造过程划分为 “一小块”;
■开发一种接口技术,用于跨技术边界的流程内通信
■只在新技术模块中进一步开发,并集成到原有系统中;
■用新技术的功能模块逐步取代现有的功能模块。
■引入测试程序并逐步扩大测试覆盖范围。
图4:在KLINGELNBERG(克林贝格),机械工程部门的软件进一步开发完全是在模块中进行的。这些模块随后被相继集成至原有的系统中,然后取而代之。
Potential and Risks of
AI Tools
现代 AI工具极有可能造成混乱,也很有可能提高效率、创新和员工满意度。我们应充分利用机遇,同时间将风险降至最低水平。
■数据录入等重复性工作的自动化
■ 通过智能代码补全、重构和通用技术问题帮助,加速开发流程;
■通过自动代码分析和错误检测,从而提高代码质量;
■快速创建独立的软件组件,进而解决界定明确的任务。
■处理版权方面的法律不确定性;
■机密信息和专有技术外流;
■大型语言模型(LLM)错觉导致的错误。
基于人工智能的工具在软件开发领域的实际应用已有多年。目前的AI 系统(例如:ChatGPT)的显著特点体现在大型语言模型(LLM)中,它首次实现了通过自然语音访问人工智能。
■生成简单的程序;
■分析大量数据并编写报告;
■通过对话访问知识数据库;
■生成和优化文本。
人工智能的影响必将改进现有的开发工具,还会影响到所有其他业务领域,包括那些与软件开发无关的领域。
总之,机械工程的软件开发经历了一场惊人的变革。近几十年来的发展不仅提高了机器的效率和性能,还从根本上改变了工程师的工作方式。随着技术的进步和数字化的发展,未来机械工程领域的软件开发会有怎样的创新,让我们拭目以待。
如今,软件已成为每台机器和测量仪器不可分割的一部分。软件开发(尤其是机械工程领域的软件开发所面临的挑战)是开发易于维护和扩展的现代、可靠的软件模块,同时保留多年积累的专有技术。这些专有技术往往存在于传统软件中。KLINGELNBERG(克林贝格)每天都在迎接这一挑战。
源文件:GEARS inline 11 | 2024
大昌华嘉齿轮技术编译