1.1 软件的内涵
软件是一系列按照特定顺序组织的计算机数据和指令的集合。《软件产品分类》(GB/T 36475—2018)将“软件产品”定义为:向用户提供的计算机软件、信息系统或设备中嵌入的软件或在提供计算机信息系统集成、应用服务等技术服务时提供的计算机软件。
软件是计算机的灵魂。20世纪40年代,世界上第一台电子计算机诞生。此后,随着信息技术的进步和信息化的发展,软件不断升级,从计算机的内置程序发展为独立存在的硬件及跨区域、跨行业的服务。软件不仅是电子产品中嵌入的代码,也不仅是使移动设备更加智能的工具。软件的功能越来越丰富、性能越来越强大、应用越来越广泛,已经成为支撑物理世界和人类社会运行的基础元素。无所不在的软件,逐渐走出信息世界的范畴,深度渗透到物理世界和人类社会中。正如C++程序设计语言的发明者Bjarne Stroustrup所说:“人类文明运行在软件之上。”
可以将软件的体系架构分为基础层、中间层和应用层。在基础层,基础软件与底层硬件一同进化,计算部件和存储层次的异构性和复杂性不断增加,面向体系结构的编译优化技术持续发展。作为加载、支撑和管控下游应用的基础设施,基础软件不断适应变化的应用软件形态,各类平台和应用软件的功能在操作系统、中间件、数据库等载体上得以实现。在中间层,云计算、大数据、人工智能、区块链等新一代信息技术不断加速创新和应用步伐,逐步形成良性互动的发展模式,高性能的通用化、标准化软件服务平台和解决方案纷纷涌现。作为智能制造的基础要素,工业软件对生产流程的支持范围不断扩大、力度不断加大。在应用层,数字技术深入改造企业生产、研发、销售、管理等环节,能够在多种应用场景下满足各行业用户的多样化需求,应用软件已成为企业实现战略布局和差异化竞争的重要支撑,应用软件技术呈现网络化、智能化、服务化、平台化及融合化趋势[1]。