软件是一个通用术语,为组织的计算机数据和指令的集合,通常分为两大类:系统软件,提供非特定任务的基本功能的计算机,它是由用户的应用软件来完成特定的任务。
系统软件是负责控制,集成和管理的计算机系统各个硬件部件,而无需关注低级别的细节,如数据传输,让其他的软件和系统的用户看到它作为一个功能单位从内存到磁盘,或渲染上显示的文字。一般情况下,系统软件包括操作系统和一些基本工具,如磁盘格式化,文件管理器,显示管理器,文本编辑器,用户认证(登录)和管理工具,以及网络和设备控制软件。
应用软件,在另一方面,是用来完成特定的任务以外只是运行的计算机系统。应用软件包括一个单独的程序,比如一个图像浏览器,一个小程序集合(通常被称为一个软件包)紧密合作,共同完成某项任务,如电子表格或文字处理系统,一个更大的集合(通常所谓的软件套件)的相关但独立的程序包,有一个共同的用户界面或共享数据格式,如MicrosoftOffice,其中包括紧密结合起来的文字处理器,电子表格,数据库等;或一个软件系统,如一个数据库管理系统,这是一个收集的基本程序,可能会提供一些??其他独立的应用程序的各种服务。
软件与编程语言和相关的工具,这可能会在几个形式:等程序的脚本解释器,编译器,连接器和其他工具包和大型套房(通常被称为集成开发环境),包括编辑器,调试器和其他工具多国语言。
有关软件的第一个理论是由阿兰·图灵提出的,在他1935年的文章可计算的应用程序可判定数(决策问题)。[3]通俗地说,这个词经常被用来指应用软件。在计算机科学和软件工程,软件是信息处理的计算机系统,程序和数据。学习软件是计算机科学和软件工程的学科领域。
随着越来越多的程序进入的境界固件和硬件本身变得更小,更便宜和更快的摩尔定律所预测的,首先考虑的是软件计算的元素,加入这一行列的硬件。今天,大多数硬件公司有更多的软件程序员的工资比硬件设计[需要的引证],由于软件工具,自动化的印刷电路板工程师的许多任务。就像汽车行业,软件行业已经从一些有远见的经营他们的车库原型。史蒂夫·乔布斯和比尔·盖茨是他们的时代的亨利·福特和路易斯·雪佛兰[需要的引证],利用已经俗称的想法然后才开始的业务。在软件开发的情况下,这一刻被普遍认为是在20世纪80年代出版的规格为IBM个人电脑公布的IBM雇员菲利普·唐Estridge。今天,他的举动将被视为一种类型的人群采购。
直到此时,软件与硬件捆绑在一起的原始设备制造商(OEM),如数据,数字设备和IBM[需要的引证]。当一个顾客买了一台小型机,当时??市场上最小的电脑,电脑并没有配备预装软件,但需要安装的OEM工程师采用。计算机硬件公司不仅捆绑他们的软件,他们还放置的WWW.HM888888.ComWWW.HAo1990.infoWWW.HAo126.infoWWW.HAomen998.infoWWW.HAomen77.infoWWW.moneY888.info
WWW.bAijiAle888.infoWWW.bAijiAle666.infoWWW.PAijiu888.infoWWW.123pAijiu.infoWWW.LunpAn888.infoWWW.LunpAn168.info
位置,在硬件上的要求在冷藏空间,称为一个计算机房。0元,无法要求它作为一种资产(这是类似的流行音乐在那些日子里融资)的书籍,大多数公司有自己的软件。当数据介绍了通用数据新星,一家名为Digidyne想用自己的硬件克隆其RDOS操作系统。数据拒绝许可他人使用其软件(这是很难做到的,因为它是书本上的一个免费的资产),并声称他们的“捆绑的权利”。最高法院的先例Digidyne诉通用数据于1985年。最高法院让一个第9电路决定的立场,和数据一般被最终被迫进入许可的操作系统软件,因为它被排除,限制的许可证只DG硬件是一个非法搭售安排。[4]无法维持的损失从律师的费,数据一般由EMC公司被接管。最高法院的裁决使人们有可能价值的软件,和也购买软件专利。
今天有很多成功的公司只销售软件产品,但还是有很多常见的软件许可问题,是由于设计的复杂性和质量很差的文档,从而导致专利钓饵。
开放软件规格和软件许可的可能性,产生了新的机遇,然后成为了事实上的标准软件工具,如DOS操作系统,而且各种专有的文字处理和电子表格程序。类似的增长模式,专有的开发方法成为标准的软件开发方法。
[编辑]软件类型
位于一个典型的台式电脑上运行时的层结构显示在操作系统软件和应用软件WWW.ErbAgAng666.infoWWW.ErbAgAng.infoWWW.ErsHiYidiAn.infoWWW.men1234.infoWWW.mz999.infoWWW.HHH888.info
WWW.HAomen66.infoWWW.HAomen99.ComWWW.HAomen168.infoWWW.HM1234.infoWWW.queenie998.infoWWW.love168.info
软件包括所有的各种形式和角色,数字化存储的数据可以具有和播放的计算机(或类似的系统)中,无论数据是否被用作代码的CPU,或其他解释器,或它是否表示其他信息种。软件涵盖了广泛的产品可能使用不同的技术,如普通的编程语言,脚本语言,微码,或FPGA配置。
该类型的软件,包括网页开发语言和框架,如HTML,PHP,Perl中,JSP,ASP.NET,XML,和桌面应用程序,如OpenOffice.org,微软Word?的语言一样,C++,Objective-C语言,Java的开发,C#,Smalltalk的。通常运行在底层软件的操作系统,如Linux或微软Windows的应用软件。也被用在视频游戏和逻辑系统,汽车,电视机,和其他消费电子产品的配置的部分的应用软件(或固件)。
实用的计算机系统划分为三大类[引文需要]:系统软件,编程软件和应用软件的软件系统,但区别是任意的,而且往往含糊不清。
[编辑]系统软件
主要文章:系统软件
系统软件是计算机软件,计算机硬件设计工作提供基本的功能,并提供了一个平台上运行的应用软件。[5][6]系统软件包括设备驱动程序,操作系统,服务器,公用事业和窗口系统。
系统软件是负责管理各种独立的硬件组件,使他们能和谐相处。它的目的是,以表白的应用软件程序员的往往是复杂的细节正在使用特定的计算机,包括等配件通信设备,打印机,设备的读者,显示器和键盘,并还进行分区计算机的资源,如内存和处理器时间在一个安全和稳定的方式。
[编辑]编程软件
主要文章:编程工具
编程软件工具程序或应用程序软件开发人员使用来创建,调试,维护,或以其他方式支持其他程序和应用程序的形式。该术语通常指的是相对简单的程序,如编译器,调试器,口译,连接器,文本编辑器,可以结合在一起,完成一项任务,就像一个手可能会使用多个工具来解决物理对象。编程工具的目的是帮助一个程序员在编写计算机程序,它们可以结合在一个集成开发环境(IDE)更轻松地管理所有这些功能。
WWW.HAomen66.infoWWW.HAomen99.ComWWW.HAomen168.infoWWW.HM1234.infoWWW.queenie998.infoWWW.love168.info
WWW.ToubAo168.infoWWW.ZHenqiAnlongHu.infoWWW.HAomen66.ComWWW.HM1231.infoWWW.HM6789.infoWWW.HM1232.info
主要文章:应用软件
应用软件开发执行任何任务,从计算的好处。它是一组程序,允许计算机执行为用户特定的数据处理作业。这是一个广泛的类别,涵盖了多种软件,包括正在使用的网络浏览器显示该网页。
[编辑]软件主题
[编辑]建筑
另请参阅:软件体系结构
用户经常会看到不同的事情不是程序员。使用现代通用计算机的(反对嵌入式系统,模拟计算机和超级计算机)的人通常会看到三个执行各种任务的软件平台,应用程序和用户层软件。
§平台软件平台包括固件,设备驱动程序,操作系统,和典型的图形用户界面,在总,允许用户进行交互的计算机及其外围设备(相关设备)。平台软件往往捆绑的电脑。在PC通常有能力改变平台软件。
§应用软件:应用软件或应用程序是大多数人的想法时,他们认为软件。典型的例子包括办公套件和视频游戏。从计算机硬件,应用软件往往是单独购买。有时,应用程序捆绑在一起的计算机,但不会改变的事实,他们作为独立的应用程序运行。应用程序通常是独立的程序从操作系统,但他们往往是专为特定平台。大多数用户认为编译器,数据库和其他应用程序的“系统软件”。
§用户编写的软件最终用户开发的裁缝系统,以满足用户的特定需求。用户软件,包括电子表格模板和字处理器模板。即使邮件过滤器是一种用户软件。用户可以创建这个软件本身,往往忽略了它是多么的重要。根据胜任用户编写的软件已经被集成到默认的应用程序包,很多用户可能不知道之间的区别原始包,与已加入的同事。
[编辑]文档
主要文章:软件文档
大多数软件软件文档,从而使最终用户可以理解的程序,它做什么,以及如何使用它。如果没有清晰的文档,软件可以使用,尤其是如果它是非常专业的,比较复杂,如Photoshop或AutoCAD中的。
开发者文档也可能存在,无论是意见和/或作为单独的文件中,详细介绍了如何的程序,可以修改的代码。
WWW.tiYubocAi123.infoQipAiYouxi.infoWWW.YulepingtAi.infoWWW.HM1616.ComWWW.HM1616.netWWW.HM5858.Com
主要文章:软件库
一个可执行程序几乎总是不够完整,可直接执行。软件库包括可嵌入在其他应用程序中的功能和功能的集合。操作系统包括了许多标准的软件库和应用程序往往分布有自己的图书馆。
[编辑]标准
主要文章:软件标准
由于软件的设计,可以使用许多不同的编程语言,在许多不同的操作系统和操作环境,需要软件标准,使不同软件可以了解和彼此之间的信息交换。例如,从雅虎从微软Outlook发送的电子邮件应该是可读的邮件,反之亦然。
[编辑]执行
主要文章:执行(计算)
计算机软件“装”到计算机的存储器(如硬盘驱动器或内存)。一旦加载软件,计算机能够执行的软件。这包括通过指令,通过系统软件,应用软件的硬件,最终获得机器代码指令。每个指令会导致计算机进行操作-移动数据,进行计算,或改变控制流的指令。
数据移动通常是在存储器从一个地方到另一个。有时,它涉及到实现高速的数据在CPU访问的存储器和寄存器之间移动数据。移动数据,特别是大量的,可以是昂贵的。所以,这是有时避免数据的“指针”,而不是使用。计算包括简单的操作如递增一个变量的值的数据元素。可能涉及许多更复杂的计算操作和数据元素。
[编辑]质量和可靠性
主要文章:软件质量,软件测试,软件可靠性
软件质量是非常重要的,特别是对商业和系统软件,如微软Office,微软Windows和Linux的。如果软件出现故障(越野车),它可以删除一个人的工作,使计算机崩溃和做其他意想不到的事情。故障和错误,被称为“错误“。发现和消除许多错误(调试),通过软件测试。然而,软件测试很少-如果有的话-消除所有的bug;,一些程序员说,“每个程序都有至少一个或多个错误”(Lubarsky法)。所有主要的软件公司,如微软,Novell和Sun微系统公司,有自己的软件测试部门的具体目标,只是测试。软件可以通过单元测试,回归测试和其他方法进行测试,这是手动完成,或最常见的,自动,由于要测试的代码量可以相当大。例如,美国航空航天局有非常严格的软件测试程序,用于许多操作系统和通信功能。许多美国航空WWW.HAomen77.ComWWW.HAomenYule.infoWWW.HAomenbet.infoWWW.bbsbocAi.ComWWW.bocAi365.infoWWW.tiYutouzHu.info
WWW.HAomenbAijiAle.ComWWW.zHenqiAn888.netWWW.HM2012.orgWWW.Yule888.orgWWW.HM5858.netWWW.LunpAn168.info
航天局的业务互动和相互识别的命令程序,称为软件。这使得许多人在NASA工作的检查和评估功能系统的整体。包含命令软件程序,使硬件工程和系统操作更容易发挥作用。
[编辑]许可证
主要文章:软件许可证
该软件的许可证为用户使用该软件的权利,在许可的环境。一些软件的许可证时,购买现成的,或与硬件捆绑在一起的OEM许可证。其他软件自带一个免费的软件许可,授予收件人的权利,修改和重新发布软件。软件,也可以在免费软件或共享软件的形式。
[编辑]专利
主要文章:软件专利和软件专利的辩论
软件可以申请专利的一些,但不是所有的国家,然而,软件专利是有争议的,在软件行业中有很多人持有不同的看法。软件专利的争论是有关该软件中包含的具体算法或技术,可能不被他人复制,并认为知识产权和版权侵权的严重程度。
[编辑]的设计与实现
主要文章:软件开发,计算机程序设计,软件工程
软件的设计和实施取决于上的复杂的软件。例如,设计和创造的微软Word软件将花费更多的时间比设计和开发Microsoft记事本,因为在每一个功能的差异。
软件设计和创建(编码/写/编程)的Eclipse,Emacs的和微软的VisualStudio,可以简化程序和编译的程序的集成开发环境(IDE)。在不同的部分,正如软件通常是建立在上面现有的软件和应用程序编程接口(API),底层软件提供了GTK+,JavaBeans或摇摆等。库(API)的分类,不同的用途。例如,JavaBean的库用于企业应用程序设计,设计的图形用户界面(GUI)应用程序,如MicrosoftWord中使用Windows窗体库,用于设计Web服务和WindowsCommunicationFoundation的。相关计算机编程快速排序,哈希表,数组和二叉树的概念可以用于创建软件。当一个程序被设计的,它依靠的API。例如,如果用户设计的MicrosoftWindows桌面应用程序时,他/她可能会使用。NETWindows
WWW.HAomen998.ComWWW.HM6789.ComWWW.HAomen6789.ComWWW.HM888888.ComWWW.HAomen1688.ComWWW.HAomen1688.net
窗体库设计的桌面应用程序,并调用它的API像Form1.Close()和Form1.Show()[7],以关闭或打开应用程序,写的他/她,它需要有。如果没有这些API,程序员需要写这些API的他/她。SunMicrosystems公司,Novell公司,微软等公司提供了自己的API,使许??多应用程序都使用他们的软件库,通常有许多在他们的API编写的。
计算机软件具有特殊的经济特征,使得其设计,制作,和大多数其他经济物品的分布不同。指定][8][9]
创建软件的人,谁被称为程序员,软件工程师,软件开发人员,或“代码猴子”的条款也有类似的含义。