软件基本概念
软件的定义
一个完整的计算机系统是由硬件系统和软件系统协同工作来完成某一给定的任务的。
只有硬件的计算机称为裸机,裸机必须安装了计算机软件后才可以完成各项任务。
从广义地讲,软件是指计算机程序、数据以及开发、使用和维护程序所需要的所有文档的集合 。
通常将软件分为系统软件和应用软件两大类
软件=程序+数据+文档
- 程序是按照事先设计的功能和性能要求执行的指令序列
- 数据是程序运行的基础和操作的对象
- 文档是有关程序开发、维护和使用的各种图文材料
计算机软件具有以下特点:
- 不可见性:软件是二进制编码,仅能看到物理载体,看不见软件本身
- 适用性:不是只满足一种特定应用的需要,而是适应一类应用问题的需要
- 依附性:软件依附于特定的计算机硬件、网络或其他软件环境
- 复杂性:软件规模越来越大,结构越来越复杂,成本越来越高
- 无磨损性:软件不像其他物理产品会有损耗或产生物理老化现象
- 易复制性:软件以电、磁、光等形式存储和传输,非常容易且毫无失真的进行复制
- 不断演化性:软件存在生命周期,需要进行软件版本的升级,适应不断变化的环境
- 有限责任:软件厂商不对软件的正确性、精确性、可靠性和通用性做任何承诺
- 脆弱性:操作系统和通信协议存在漏洞,软件容易被篡改和破坏
软件的分类
系统软件和应用软件
从功能角度区分,可以将计算机软件分为系统软件和应用软件两大部分,
系统软件是建造在裸机(计算机硬件系统)之上,应用软件是以系统软件为工作平台
系统软件
系统软件用于发挥和扩大计算机的功能及用途,提高计算机的工作效率,为用户开发应用系统提供一个平台,用户可以使用它,一般不随意修改它。
系统软件主要包括操作系统、程序设计语言及其处理程序(如汇编程序、编译程序、解释程序等)、数据库管理系统、系统服务程序以及故障诊断程序、调试程序、编辑程序等工具软件。
操作系统
操作系统是配置在计算机硬件上的最底层软件,是对硬件系统功能的第一次扩充,它直接控制,管理各种硬件资源。
当计算机安装了操作系统以后,就为其他软件和用户提供了良好的工作环境,用户就不再直接操作计算机硬件,而是利用操作系统所提供的命令来操作和使用计算机。目前典型的操作系统有Windows、UNIX、Linux、Mac OS 等。
语言处理程序
用各种程序设计语言编写的源程序,计算机是不能直接执行的,必须经过翻译(对汇编语言源程序是汇编,对高级语言源程序则是编译或解释)才能执行,这些翻译程序就是语言处理程序,包括汇编程序、编译程序和解释程序等,它们的基本功能是把用高级语言或汇编语言编写的源程序翻译成机器可执行的二进制语言程序。语言处理程序也称为翻译程序或翻译器
应用软件
应用软件是软件开发人员为解决各种实际问题而编制的计算机程序和相关资料。
目前,应用软件为专用软件和通用软件两种。随着计算机应用领域的扩大,应用程序越来越多。使用部门已研制出许多通用性好的应用软件,逐渐商品化,并形成系统化软件,提供用户使用。因此,通用软件和专用软件之间没有严格的界限。
按照开发方式和使用范围的不同,可将应用软件分成两类,即通用应用软件和定制应用软件
通用应用软件
- 办公自动化:如Microsoft Office、金山WPS等。
- 动画制作:如3D Max、Flash、Adobe After Effects等
- 图形图像处理:如 AutoCAD、Adobe Photoshop、CorelDRAW、Corel PHOTO-PAINT 等。
- 网络通信软件:如IE、mail等
- 网页制作:如 FrontPage、Dreamweaver 等。
- 多媒体制作:如Authorware、Director等
- Internet服务:WWW浏览器、电子邮件软件、文件传输软件等。
定制应用软件
定制应用软件是针对具体实际问题而开发的软件,它们完全是按照用户的特定需求而专门开发的。如某商场的销售管理和市场预测系统、某制造企业的集成制造系统、某机场的飞机订票系统、某大学的教务管理系统等。这类软件专用性强,运行效率高,成本较高。
开源软件和非开源软件
从是否开放软件的源代码的角度分类,软件可以分为开源软件和非开源软件。
- 开放源码软件是指其源码可以被公众使用的软件,用户可以自由地使用、复制、散发以及修改源码。
- 相对的是非开源软件,如来自微软的软件,这类软件的源代码是保密的,只有公司的开发人员才代码。
传统客户端软件和在线软件
从是否需要在客户端计算机安装软件的角度分类,软件可以分为客户端软件和在线软件
客户端软件
传统的软件需要用户在购买软件使用许可后,将软件在客户端计算机上安装并输人软件序列号才能使用,这种模式成就了以微软为代表的一大批软件公司。
在线软件
在线软件指软件供应商提供软件在线服务,是随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式。
在这种模式下,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己的实际需求,通过互联网向厂商订购所需的应用软件服务,按订购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。
用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无须对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其订购的软件和服务。
专属软件、自由软件、共享软件、免费软件和公共软件
不同的软件一般都有对应的软件授权,软件的用户必须在同意所使用软件的许可证的情况下才能够合法的使用软件。
依据许可方式的不同,大致可将软件区分为以下几类:
专属软件
此类软件通常不允许用户随意地复制、研究、修改或散布。传统的商业软件公司通常采用此类授权,例如微软的Windows和办公软件。专属软件的源码通常被公司视为私有财产而予以严密的保护
自由软件
此类软件与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其他限制。如Linux、Firefox和OpenOffice等。
免费软件
可免费取得和转载该类软件,但并不提供源码,也无法修改
公共软件
原作者已放弃权利,著作权过期,或作者已经不可考究的软件。在使用上无任何限制。
共享软件
共享软件是以先使用后付费的方式销售的享有版权的软件。根据共享软件作者的授权,用户可以从各种渠道免费得到它的备份,也可以自由传播它,但在功能或使用日期上受到限制。用户总是可以先使用或试用共享软件,认为满意后再向作者付费