跳转到主要内容

软件是提供指令和数据以执行用户命令的计算机程序。它是你看不到的机器中不可缺少的一部分,但它可以让你使用计算机。[1]软件是存储在存储程序数字计算机内存中的程序指令,供处理器执行。软件是人类历史上的最新发展,是信息时代的基础。

软件,从最一般的意义上说,是一组指令或程序,指示计算机执行特定任务。软件是一个通用术语,用于描述在 PC、手机、平板电脑或其他智能设备上运行的计算机程序。软件通常用于描述不涉及其物理组件(硬件)的计算机的所有功能方面。脚本、应用程序、程序和一组指令都是经常用来描述软件的术语。在计算机上“运行”的所有东西,从操作系统到诊断工具、视频游戏或应用程序,都可以定义为软件。 

软件历史概述


1940 年代后期用于早期存储程序数字计算机的第一代软件的指令直接用二进制代码编写,通常是为大型计算机编写的。后来,随着家用计算机的进步,现代编程语言的发展将极大地拓宽可用软件的范围和广度,从汇编语言开始,一直到函数式编程和面向对象的编程范式。
第一个已知的计算机算法是由查尔斯巴贝奇在 19 世纪为他计划中的分析引擎编写的,用于将 Luigi Menabrea 的伯努利数的工作转化为机器指令。然而,这仍然只是理论上的——这两位数学家一生中较低的工程状态被证明不足以构建分析引擎。

第一个现代软件理论是由艾伦·图灵在他 1935 年的文章 Computable numbers with an application to the Entscheidungsproblem(决策问题)中提出的。

这最终导致了计算机科学和软件工程这两个学术领域的创建,它们都研究软件及其创造。计算机科学更具理论性(图灵的论文是计算机科学的一个例子),而软件工程则专注于更实际的问题。

然而,在 1946 年之前,我们现在所理解的软件——存储在存储程序数字计算机内存中的程序——还不存在。最早的电子计算设备被重新布线以“重新编程”它们。 ENIAC 是最早的电子计算机之一,主要由以前作为人类计算机工作的女性编程。工程师会给程序员提供 ENIAC 接线的蓝图,并希望他们弄清楚如何对机器进行编程。作为程序员的女性为 ENIAC 的首次公开展示做准备,将接线板连接在一起进行演示。 Kathleen Booth 于 1950 年开发了汇编语言,以便更轻松地对她在伯贝克学院工作的计算机进行编程。

格蕾丝·霍珀 (Grace Hopper) 是哈佛 Mark I 的首批程序员之一。她后来为该计算机创建了 500 页的手册。当 Hopper 在 Mark II 中发现一只飞蛾并导致故障时,她经常被误认为创造了“bug”和“debugging”这两个词。然而,当她发现飞蛾时,这个词实际上已经在使用了。 Hopper 开发了第一个编译器,并将她的想法从在 Mark 计算机上工作到 1950 年代在 UNIVAC 上工作。 Hopper 还开发了编程语言 FLOW-MATIC 来对 UNIVAC 进行编程。同样在 UNIVAC 工作的 Frances E. Holberton 开发了 C-10 代码,它允许程序员使用键盘输入,并于 1951 年创建了 Sort-Merge Generator。Adele Mildred Koss 和 Hopper 还创建了报告生成器的前身。


谁创造了软件?


软件的定义意味着必须有人坐在某处的计算机前并为其编写计算机代码。这是真的;有独立的编码专家、工程师团队和大公司都在开发软件并争夺你的注意力。 Adobe 制作 Adob​​e Reader 和 Adob​​e Photoshop;微软制作微软办公套件; McAfee 制作防病毒软件; Mozilla 制作 Firefox;苹果制造 iOS。第三方为 Windows、iOS、Android 等开发应用程序。现在全世界有数百万人在编写软件。

软件类别


软件分为两类

1) 系统软件:

旨在操作、控制和扩展计算机本身处理能力的程序集合,称为系统软件。计算机制造商准备系统软件。它包括用低级语言编写的程序,这些程序在非常基本的级别上与硬件交互。
系统软件是一种通用软件,它作为应用程序(最终用户)和计算机硬件之间的接口。
系统软件管理系统资源并提供运行应用软件的路径。
例如,操作系统和语言翻译器是一种系统软件。操作系统 (OS) 是充当最终用户和计算机硬件之间的接口的软件。它提供了一个特定的图形用户界面 (GUI) 来控制计算机。
这些是系统软件的一些最大功能如下,

  • 离系统很近
  • 它速度更快,体积更小
  • 设计难,也难懂
  • 交互性较差且难以操作
  • 它是用机器语言编写的

2) 应用软件:

应用软件是用户用来执行特定任务的专用软件。


应用软件旨在满足特定环境的特定要求。用户编写的所有软件应用程序都是应用程序软件。
我们可以将这个软件安装到我们的操作系统上。它包括一个程序,就像微软的记事本一样,用于编写和编辑简单的文本。在各种操作系统下,这些应用程序软件被编写为在操作系统上运行。
如果应用程序包含一组程序,则这些程序称为软件包。它协同工作以完成一项任务,例如电子表格包。
其他示例,例如工资单软件、学生记录软件、库存、所得税软件、铁路预订软件、Microsoft Office 套件软件、Microsoft Word、Microsoft Excel、Microsoft PowerPoint 等。
这些是应用软件的一些功能如下,

  • 贴近用户
  • 易于设计和更具交互性
  • 它通常用高级语言编写
  • 它需要更多的存储空间,因为它的尺寸更大

Software Categories

系统软件与应用软件的区别


系统软件旨在管理系统的资源,如内存管理、进程管理、保护和安全等,并为应用软件的运行提供路径。另一方面,应用软件旨在满足用户执行特定任务的要求。
系统软件是用汇编语言或机器语言等低级语言编写的。但是,高级语言用于编写应用软件。高级语言,如 Java、C++、.net、VB 等。


系统软件在系统开机时开始运行,一直运行到系统关机。应用软件在用户启动时启动,在用户停止时停止。
系统只能使用系统软件运行,而系统始终在没有应用软件的情况下运行,因为它们仅适用于用户。
系统软件有操作系统、编译器、汇编器、调试器、驱动程序等,而应用软件的例子有VLC播放器等、Photoshop等。
系统软件是通用软件,而应用软件属于专用软件。

软件分类[6]


为特定目的开发的可用软件种类繁多,程序的数量逐年呈指数增长,我们可以将不同的概念识别和分类为:

安装位置:

 

  • 网络软件 - 这些是托管在 Internet 或服务器中并通过网络连接提供客户服务的程序和应用程序,其主要特点是无需在终端本身安装、配置和维护它,例如 Office 365 等程序,使用 Dropbox 或 Google Docs 是其中的示例。
  • 本地软件 - 也称为桌面软件,是那些需要安装并存储在您运行的计算机上的软件,与网络软件不同,Microsoft 的 Office 套件、图形设计程序 Photoshop 或 Windows 操作系统都是此类软件的示例。


使用自由度:

 

  • 自由软件 - 代表用户可以完全自由地复制、共享和更改它的程序集,因为它通常可以访问程序本身的源代码。 Linux 操作系统、图像编辑器 Gimp 或 OpenOffice 套件就是此类程序的示例。
  • 所有者或专有软件 - 代表用户在未经软件所有者明确许可的情况下限制编辑、共享或复制的程序集,例如 Windows 操作系统、图像编辑器 Photoshop 或 Microsoft Office 套件。


功能类型:

 

  • 系统软件 - 也称为操作系统,此类软件管理和管理电子设备的硬件以及其他程序的执行。 Windows、iOS、Linux 或 Solaris 就是其中的例子。
  • 编程软件 - 代表允许我们开发、创建和修改其他程序的程序集,使用这种类型的软件,我们以给定语言编写指令集,称为程序代码,例如 Apple Xcode、Microsoft Visual Studio或谷歌的安卓。
  • 应用软件 - 是用于特定目的的其他程序,它是我们在市场上找到的最全面的软件,反过来可以对软件进行分类:
  • Office - 是所有促进办公任务的程序,例如电子表格、文本编辑器、图形设计、发票管理、POS 等。
  • 业务 - 所有专注于其在业务领域中的应用程序,例如管理和管理整个企业的 SAP、支持结构和复杂机器的设计和计算的 Solidworks 或为操作工业机器人而开发的 Scada。
  • 通信 - 代表在人们、网络浏览器、电子邮件管理器、社交网络应用程序(如 twitter 或 Facebook 和 Facetime、Whatsapp 或 Skype)之间建立和促进通信和信息的一组程序,是此类软件的示例。
  • 安全性 - 代表一组防病毒软件,可检测和消除可能改变我们电子设备功能的程序。诺顿、熊猫或卡巴斯基就是其中的例子。
  • 恶意 - 与以前的此类程序相反,未经用户同意更改和操纵计算机的信息和操作。
  • 娱乐 - 是所有娱乐节目,如视频游戏、音乐和视频播放器、数字图书阅读器等。
  • 教育 - 旨在教授和学习特定或一般主题,可以引用 Encarta 数字百科全书或 Matlab 数学程序等示例。

See Also

本文: