软件是为了达到特定的结果而创建的一系列指令。软件主要用于不同的数字系统,如计算机、笔记本电脑、智能手机、冰箱、汽车等,但大多数软件是为计算机、笔记本电脑、智能手机等IT系统创建的。
软件组件
软件是人类创造的最复杂的产品之一,其中包含许多不同的组件。但我们将提供一些最常用的组件。软件组件为不同的用途和功能提供部分软件。
-
Library
是可由其他软件用于特定功能的现有软件。 -
Code
用于指定软件指令的文本 -
Data
用于读取、写入和更改与软件相关的持久性或易失性数据的数据 -
DLL
通常包含库和数据的文件类型 -
Files
用于读取、写入和更改文件中的数据 -
Database
是软件的结构化标准数据容器 -
Driver
是用来消耗系统和硬件资源(如网络、内存等)的基本软件。 -
API
是软件和服务的可调用结构化资源表示 -
GUI
是软件的用户友好的图形表示。
软件历史
软件历史短至70年,现代软件史始于20世纪70年代。 这里将定义有关软件的重要日期。
- 软件问题是由艾伦·图灵在1935年以
Decision problem
. - 克劳德香农创造了二进制逻辑来编程和开发软件。
- 第一个可重编程软件创建于1950年,用于名为ENIAC的系统/硬件
- 在20世纪50年代后期,Fortran、COBOL和Basic编程语言应运而生。
- 1970 为Unix操作系统软件创建的C程序设计语言。
- 1980年IBM个人计算机(PC) 它的创建改变了其用户的软件环境。
- 最流行的操作系统软件Windows是由微软创建的。
- 1990年,Linux Torvalds创建了开源软件和一个名为Linux的操作系统。
- 20世纪90年代及以后,出现了许多用于PC体系结构系统的软件。
相关文章: 如何设置C开发环境
软件使用类型
近30年来,有很多软件都有不同的用户类型。并根据用户需求创建新的软件类型。这里我们将提供一些流行的软件使用类别和类型。

-
Security & Privacy
软件用于保护用户及其数据的安全,同时保护其隐私 -
Development
软件主要用于创建新的软件和工具 -
Backup & Sync
软件用于备份以便恢复或与其他系统和平台同步 -
Office & Productivity
软件用于与办公室相关的任务,如文档编写、演示、时间和任务跟踪等 -
Gaming Software
是最流行的类别之一,其中包含不同类型的游戏 -
Social &Communcation
是另一个流行的类别,其中包含社交网络应用程序与通信软件 -
Web browser
提供在网上冲浪的软件 -
File Management
软件提供了一种简单有效的方式来管理文件和目录。 -
file Sharing
用于通过internet共享媒体、电影、音乐和照片文件 -
Network & Admin
IT人员使用软件来管理IT系统、网络和操作系统 -
Education & Reference
软件用于教育目的 -
Home & Family
软件是为家庭使用而设计的 -
Audio & Music
软件主要用于听、编辑、转换和创作音乐 -
Video & Movies
软件用于观看、编辑和转换视频文件 -
Photos & Graphics
软件用于打开、编辑、创建图像和图形 -
OS & Utility
软件用于操作系统和管理人员 -
Game
软件就是我们玩的游戏 -
Travel & Location
-
Sport & Health
-
Business & Commerce
-
News & Books
软件提供阅读、跟踪新闻和书籍的工具 -
CD/DVD Tool
软件用于刻录、编辑CD/DVD媒体内容 -
Online Services
-
System & Hardware
用于获取信息和更改硬件设置
相关文章: Visual Studio Express安装
软件许可证类型
创建软件需要时间和工作,它是创造者的知识产权,创造者可以是个人、团体或公司。因此,为了使用软件,我们必须遵守软件创建者的规则,这被称为 Software License
. 软件许可证为用户提供详细的用法。许多软件都使用一些流行的许可证类型。
-
Public Domain
软件许可证是最允许的许可证,任何人都可以修改和使用软件而不受任何限制。 -
Permissive License
是一个有点限制的公共领域,在那里它也被称为Apache Style
或BSD Style
许可证。 -
LGPL
主要用于其他项目中的开源库。如果您复制或修改库,您应该以类似的LGPL条款提供您的软件 -
Proprietary
通常用于付费软件,是限制性最强的许可证。Microsoft、Adobe使用这种类型的许可证。
软件下载站点
在旧时代,由于软件的尺寸和网速的限制,软件通过软盘、CD和DVD重新分发。同时,为软件提供一个实体对公司来说也是一个很好的营销技巧。目前,随着互联网接入和速度的提高,通过互联网下载提供软件下载。甚至软件生产商也为他们的软件提供下载 Software Download Sites
它们是软件的中心。
FileHippo是一个新一代的软件下载网站,它提供了一个流行的老版本软件。

Softpedia
是另一个流行的下载网站,提供了许多不同类型的软件。
相关文章: 如何用GCC编译C和C++应用程序?

SourceForge
是一个软件下载规模,它专注于开源和自由软件。它还提供一些商业服务。

软件体系结构
Software Architecture
定义需求、组件以及软件与内部和外部组件的关系。软件可以用许多详细而复杂的体系结构来设计,但一般来说,我们可以将软件体系结构分类如下。
-
Standalone Simple Software
将在安装的系统上工作,不需要任何网络或internet连接即可工作。 -
Client-Server Software
将工作在系统和远程服务器上,其中的网络或因特网可以用来与服务器进行通信的部分软件。
软件开发
软件是通过开发工作创建的。软件开发是软件开发人员使用编程语言、库、平台来创建、开发和维护软件的技术过程。通常,集成开发环境(IDE)用于软件开发。 软件开发生命周期(SDLC)是软件开发的标准过程,它包含以下几个阶段
- 规划
- 实施
- 测试
- 文档
- 部署和维护
- 维护
软硬件关系
软件是一堆数字指令,需要一些硬件来运行。硬件用于运行软件并提供不同的资源,如内存、中央处理器、存储器、网络等。每个软件都需要物理硬件才能运行。软件是根据要运行的硬件开发的。一般来说,硬件架构如x86、86μ64、ARM用于软件开发。