购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 软件的基本概念

1.1.1 软件的概念

在信息时代的今天,各行各业都在不同程度地使用计算机。随着计算机技术不断应用于社会生活、生产与科研等领域,用户与硬件之间一直需要有效的接口,这个接口就是软件。软件起初是指按照一定顺序组织的指令与计算机程序的集合,目的是方便用户与计算机交流。当前,随着程序的不断复杂化,还需要对程序功能进行描述以及对操作步骤进行说明。这样的话软件就包含与计算机系统操作有关的程序、规程、规则以及可能有的文件、文档和数据。简言之,软件是程序、数据、文档的有机整体。

1.1.2 软件发展历史

软件的发展与计算机技术和软件开发工具(编程语言)的发展息息相关,几乎是作为计算机的孪生兄弟一起发展的。从1946年第一台计算机问世以来,软件的发展经历了如下三个阶段。

1.低级语言时代

这个时期大概经历了10年左右的时间(1946—1956),这一时期,计算机体积大(占地可能达到上百平方米、有的重达10余吨)、可靠性差、功耗高、内存小、速度慢,主要应用于科学计算和国防领域。这一时期的程序采用机器语言(由0与1组成的二进制代码)和汇编语言编写,一般是针对某个特定的科学计算问题,程序设计者一般都精通某个领域的知识。编写程序需要依赖于具体的计算机硬件,程序只能在某个特定的计算机上运行、不可移植且修改困难。在编程语言经历了机器语言、汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。因此需要设计一个不依赖计算机硬件、可以在不同机器上运行的程序。

2.高级语言时代

这个时代从20世纪50年代后期开始到20世纪60年代中后期结束(1956—1968)。这一时期,计算机运算性能由于集成电路的使用而逐步提升,使得原先占地上百平方米的庞大计算机,可以被只有火柴盒大小的一块微处理器所代替。高速度、大容量计算机开始出现。此外,这一时期高级编程语言开始出现,比如1954年世界上第一种广为使用的高级程序设计语言FORTRAN问世了,1956年10月FORTRAN语言第一个编程指南发布,标志着它被广泛认可。此时,程序设计不需要依赖计算机硬件、可以在不同机器上执行。高级编程语言可读性强,能够更好地描述需要的算法、灵活地体现程序功能。此外,FORTRAN语言类似于自然语言和数学语言,很容易被初学者学习,软件设计相对容易。程序设计者只需重点掌握编程语言即可,对专业领域知识的要求逐渐降低。与此同时,随着计算机的日益普及,软件的需求也逐渐增多,软件自身也逐渐变得复杂,有的程序需要多人合作才能完成。但是,因为管理技术落后、软件开发方式陈旧,一些软件出现了无法满足需求的状况,甚至开始出现了“软件危机”。

3.软件工程时代

这个时代从1968年开始至今,这一时期,随着电子技术的进步,微型机在20世纪60年代后期开始出现并逐步流行,直到现在达到普及化,另一方面微型机性能越来越好,使用越来越方便,众多中小企业可以方便地购买微型机并使用。相应地,软件功能需求越来越多样化,应用领域越来越广,应用场景越来越多。特别是一些大型软件的复杂度和规模急剧上升。由于大型软件开发是一项系统性的任务,采用个体方式效率低、可靠性差,而且难以完成任务,必须采用工程化方法才能高质量和高效率开发软件,因而在1968年的大西洋公约组织的学术会议上提出软件工程概念,强调用工程化的思想来解决软件开发问题。随着软件领域新特点的不断出现,软件工程发展主要经历瀑布模型、迭代模型和敏捷开发等阶段。

1.1.3 软件的属性

软件是一种无形的产品,没有具体的形态,只有通过软件的运行才能了解它的功能与质量。

软件具有复用性,软件一旦被开发出来,就很容易被复制。

软件可能存在技术缺陷,需要不断维护和改进,或者技术更新,但是与一般有形产品存在损耗相比,软件没有损耗。

软件是由软件工程师通过掌握的技术,进行逻辑思考和智力活动得到的体现脑力劳动的产品。软件充分体现了开发者的脑力活动。软件的开发者享有软件的知识产权。

软件的开发与运行需要依赖硬件,为了降低对硬件的依赖性,一般要考虑软件的可移植性。

1.1.4 软件分类

1.按应用范围划分

一般来说,如果按照软件的应用范围来划分的话,可以把软件分为系统软件和应用软件两大类。

(1)系统软件

系统软件为使用计算机提供最基本的功能,控制、协调计算机及外部设备,为应用软件开发与运行提供支持。系统软件主要包括操作系统、支撑软件等。

操作系统是计算机系统的核心,是用户与计算机系统之间的接口。操作系统管理计算机硬件、软件资源,管理与分配内存、进程调度、输入输出设备、文件系统等。常见的操作系统种类有针对计算机的Windows、Linux、Unix等系统,针对手机的Android、iOS等系统。

支撑软件也叫软件开发环境,是一组相关的软件工具集合,按照一定的软件开发模型组织,支持相关的软件开发方法,主要功能是为软件的开发和维护提供支撑,又称为软件开发环境(SDE)。主要包括数据库系统、各种编程语言、编译器等,也包含工具组件和接口软件。比如IBM公司的WebSphere Studio、微软公司的Visual Studio等。

(2)应用软件

应用软件是根据特定的用户需求、特定的领域或某些共性的需求而开发的软件。可以分为通用软件和专用软件。

通用软件一般是为解决某种共性问题而开发的。比如办公自动化软件(金山公司的WPS Office,微软公司的Microsoft Office系列软件等)、图像处理软件(Photoshop等)、绘图软件等。

专用软件一般是针对不同行业或企业开发的具有特定功能的软件。比如工业控制软件、财务管理软件、辅助教育软件、科学数据处理软件等。

2.按授权类别来分

软件设计是软件开发者智力活动的充分体现,因此开发者对软件享有无可争辩的知识产权。因此,用户必须在合法的授权下才能使用相应的软件。根据授权方式不同,可以分为以下几类。

专有软件:此类软件是软件公司的私有财产,源码一般是严格保密的,未经允许不能复制、修改与散布。

开源软件:一般为了软件功能不断地丰富和强大,开发者同意将源代码公开出来,允许其他设计者研究与改进,通常只作少许的限制,比如Linux等。

共享软件:通常用户可以免费获得软件基本功能的使用权且可以自由传播它,付费用户才能获得功能完整的软件版本。

免费软件:用户没法获得软件源代码,但可以免费获取、使用和转载软件。

公开软件:软件拥有者放弃对软件的所有权利,用户可以自由使用。 HhXBIChM2hjoG9PmOYrwed5N1uPs3VkmpQz395igmejvbISKWJhgtO3Q4lHs0Cec

点击中间区域
呼出菜单
上一章
目录
下一章
×