计算机软件computer software为了运行、管理、维修、开发和应用计算机而编制的各种程序的统称,简称软件。它包括操作系统、编译程序、监控程序、调试程序、诊断程序、程序库、应用程序和有关文件等。程序是计算机任务中处理对象和处理规划的描述。文件是为了便于了解程序所需的资料说明。硬件建立了计算机应用的物质基础,软件担负计算机的指挥功能,扩大了计算机的应用,以及便于用户使用。硬件和软件相结合,才是一个完整的计算机系统。 发展概况 软件和硬件是计算机科学技术的两个重要方面。二者既有分工,又有配合。硬件是发展软件的基础,软件的发展又促进硬件的发展。软件的发展过程大致分为三个阶段:1946~1956年为第一阶段,计算机的主要应用领域是科学计算,使用低级语言,程序设计和编制工作复杂、烦琐、费时、易出错、功效低。1956~1968年为第二阶段,计算机的应用领域逐步扩大,出现了实用的高级程序设计语言、操作系统和数据库管理系统等。主要问题是软件越来越复杂,使软件研制周期很长,出错率高,可靠性差,效率低,研制费用大,出现了所谓的“软件危机”。1968年以后为第三阶段,计算机应用领域迅速扩大,为了克服“软件危机”,产生了软件工程,即用结构程序设计方法和工程方法编制软件。这一阶段增加了嵌入式软件、网络软件和分布式软件,软件生产向工程化、形式化、自动化、模块化、集成化方向发展。软件与计算机系统结构、超大规模集成电路技术、知识工程相结合,将加速第五代、第六代计算机系统和软件系统的研制。第五代计算机的重要标志是智能化和知识化,将研制出智能化、知识化的软件系统;第六代计算机的重要标志是仿生,将研制具备特异功能的软件。 分类 软件可按照应用和虚拟机的观点,分为系统软件、支援软件和应用软件。系统软件是软件子系统的最内层,最靠近硬件的一层。一般情况下,其他软件均通过系统软件发挥作用。它由操作系统和编译程序等组成。操作系统负责管理控制计算机系统的各种软、硬件资源。编译程序将高级程序设计语言所编写的源程序翻译成等价的汇编语言或机器语言的目标程序。支援软件是支援其他软件的编制和维护的软件,能支持用机的环境,提供软件研制工具。70年代中、后期发展起来的软件支援环境,是现代支援软件的代表。它包括环境数据库、各种接口软件和工具组,直接促进软件的发展。软件系统的最外层是应用软件,它是专门解决某个应用领域的具体任务而编制的软件,借助系统软件来运行。应用软件的质量直接影响系统的实际效果,所以它的作用越来越大。 结构 软件结构是软件各组成成分构造软件的过程、方法和表示。它是影响软件质量的内在因素,结构良好的软件可以提高软件的可靠性和易维护性。软件结构主要包括程序结构和文件结构。❶程序结构是指由比程序低一级的程序单位(模块)组成程序的过程、方法和表示。有代表性的结构是块结构和嵌套结构。 ❷文件结构是指对程序说明的结构形式。文件结构应简明、清晰和有层次。有的程序是单模块结构,有的是多模块结构。模块是组合成较大程序的单位,可多次使用。由一组模块组成的大程序可有三种结构:顺序结构、并发结构和分布结构。 程序设计 是设计、编制和调试程序的过程。程序设计是一种复杂的智力活动。软件的质量主要通过程序质量来体现,所以程序设计工作在软件研究中占有非常重要的地位。程序设计的基本思维方法是抽象、枚举和归纳。程序设计的内容包括基本概念、规范、工具和方法。程序设计的基本概念有程序、数据、子程序、子程式、协同程式、模块、顺序性、并发性和分布性等。程序设计的规范是进行程序设计的具体规定。程序设计的工具包括用以编写程序的语言和软件研制工具。软件研制工具是辅助和支援其他软件的研制和维护的工具,如在设计阶段所使用的工具有描述图形、表格和语言的工具,图示工具,语言工具等。程序设计的方法有两种: ❶全局性的程序设计方法,如结构程序设计方法是按照一定的原则和原理,组织和编制正确而且易读的程序的软件技术。它的思维方法是把复杂问题简化,采用逐步精化和分层模块的设计方法。 ❷局部性的程序设计方法,如并发程序设计和分布式程序设计。并发程序设计是由若干个可同时执行的程序模块组成程序的程序设计方法。该设计方法可以使外围设备和处理器并行工作,缩短程序执行时间,提高计算机的运行效率。分布式程序设计方法是将一个程序分成若干个可独立执行的程序模块,可在分布计算机系统的几台计算机上同时协调执行的程序设计方法。该方法的主要特征是分布和通信。 程序设计语言 用于书写计算机程序的语言(见程序设计语言)。语言的好坏将影响所编写程序的质量和使用,是软件的一个重要方面。 数据库系统 计算机科学中发展最快的领域之一。在数据处理系统中,需要建立数据库。对数据库中的数据进行组织和管理的软件称为数据库管理系统(DBMS)。70年代以来,数据库技术发展十分迅速,在信息处理、情报检索,以及各种管理系统中得到日益广泛应用(见数据库)。 软件工程 采用工程的方法研制和维护软件的过程和有关技术。软件研制包括需求定义、设计、实现和测试等阶段。软件维护指使用过程中对已有软件的修改和完善(见软件工程。) 计算机软件 计算机软件jisuanji ruanjian为计算机的运行、管理、维护和应用开发所编制的各种程序,以及开发、使用和维护程序所需要的全部文档资料的统称.有人把程序就称作软件,而从软件工程学的角度讲,还应包括开发、使用和维护程序所需要的全部文档.没有详细的文档资料,要开发软件是比较困难的,开发出来后,也难以保证其正确,不便于维护和修改,难以推广应用。 计算机软件可分为系统软件和应用软件两大类.系统软件包括操作系统、监控程序、管理程序、诊断程序、各种高级语言的语言处理程序(如编译程序),以及各种程序的文档资料等.应用软件是解决用户各种实际问题的软件,随着计算机应用的普及和提高,各种应用软件和软件包应有尽有,大多是用户开发的,也有计算机设计生产厂家提供的。 ☚ 磁卡 操作系统 ☛ 计算机软件 计算机软件Jisuanji ruanjian为了运行、管理、维修和开发计算机所编制的各种程序以及数据文件的总和,称为计算机软件。硬件是计算机的所有电磁的、光的、机械的基本结构的总合, 它是计算机的物质基础,没有硬件当然也就无所谓计算机。但是仅有硬件计算机仍然不能工作。这好比一所学校,校园、教室、黑板、桌椅及照明设备等,是学校的物质基础,是硬件,没有这些就谈不上学校,但只有这些也不行,还需要有校长、教师、管理规则、教学内容和计划以及办学指导思想等,这些就是学校的软件,两者结合才是一个完整的学校。 计算机软件可分为系统软件与应用软件两大类。系统软件包括操作系统、监控程序、诊断程序、编辑程序、调试程序、编译和解释程序、汇编程序和数据库管理系统等;应用软件则面向一切计算机应用,如计算机辅助设计、计算机辅助诊断、办公自动化、财物管理等,是各种应用程序与文档资料的总和。 当代计算机发展的突出特点之一是软件的地位日益重要,软件产业不仅诞生,而且形成了与硬件各占半边天的格局。随着软件产业的发展,还产生了一门新的学科——软件工程学。这一新学科的目标是使软件生产科学化、工程化,其内容包括:对用户的要求进行分析与描述、软件系统的设计与审查、对设计进行测试、检查、可靠性评价及软件维护、成本估价等。目的在于以较少时间、较小开支获得高质量的软件产品。总之软件工程学把软件生产,也看作一种工程,它把软件生产分为工程分析、设计及设计论证、成本估计施工、测试维护等几个阶段, 各阶段有其明确的标准与要求。此外,由于软件工程化、软件工具系统应运而生,软件工具是支持软件开发的软件, 对于软件开发的不同阶段有不同的工具系统为其服务。软件工具系统可以看作软件生产的工作母机。 ☚ 二进制、八进制与十六进制 程序 ☛ 计算机软件 计算机软件众所周知,计算机是用来处理信息的。如何处理确是软件的功能,因此,没有好的软件,计算机就好像是智能低下的儿童。特别是高级软件的开发尤为关键,以至于许多人都赞同在开发的重要性方面软件已超越了硬件,有人甚至断言未来寄托在 “无计算机的计算机公司” 身上。 软件领域发展的主要障碍之一是急需使日常软件的生产自动化。目前,正在开发几种能加速编程的方法,最具前景的计算机辅助软件工程和面向目标编程。如果这些手段能使众人期望的潜能成为现实,则系统设计人员很快就能简单规定出软件应用所需的逻辑,在智能计算机对标准化的软件包进行检索并将其综合成工作软件包后,系统的实际构筑就能自动完成。上文描述过的功能更强的硬件设施,能使软件系统实现几十年来人们所期望的人工智能在这些方面的应用。 目前,应用智能的概念似乎成为一种比较现实的目标。据报道,现在约有3000个专家系统被用于解决各种日常技术问题,此数字的年增长速度是50%。除去教授数学、语言等标准化课目,培训雇员,查找文献等工作外,像有效地应用科学知识等更复杂的任务,在10年左右的时间恐怕还不足以解决相应的难题。声音互作用可能有很大程度地改进,因而我们可以很方便地与计算机对话。语言自动翻译也会大幅度改进,但偶尔有些语法错误。目前针对个人软件所作的实验反映出人们对更有效的信息系统具有很强烈的需求。这类渐进的发展最终将形成一种智能软件包,它可以起到 “精明助手”、“智能机器人” 或是代表 “主人” 行事的 “仆人”的作用。随着个人数字化助手(PDA)的发展,一些简单的软件已现雏形: 有些软件包可以从复杂数据中搜寻所需信息,进行简单分析,回答询问以及其他大多数现在由秘书和助手承担的工作。人们相信PDA最终地具有学习功能,人们在不断的重复使用中提高软件自身的能力。同在的信息技术尚处在原始发展阶段,所以实际上我们无法把握今后一二十年更加智能化的系统究竟是什么样的。 信息技术提供了全然不同的潜力,它需要人们通过大规模的科学活动去了解人类怎样才能更有效地思考。大多数专家认为,在今后十年内,更拟人化的软件将具备如下能力: 迅速解决复杂的科学问题;对全球经济中吞吐的资金进行自动化管理,对明确的主题给予有个人特点的说明; 更准确迅速地诊断疾病以及管理其它事务这一复杂世界所需完成的各类工作。总的来说,目前社会中大多数靠人与人直接打交道完成的工作似乎都可以借助计算机软件转化成靠人机交流来实现。这种趋势表明: 信息服务,作为商务活动及其他社会交往的一种变通方式,将很快被广泛采用,从而在很大程度上改变人们的工作和生活方式。除了录像会议、无线电通信等方式外,其他处在开发阶段的信息服务形式几乎涉及到人类活动的各个方面: 电子银行、贸易担保、项目管理、政治选举、家庭电影与娱乐、公用电视系统、医生所称的电子屋、通过闭路电视进行的心理治疗、电子出版以及通过电视和计算机系统提供的医疗及培训服务。另外,信息技术威力的另一体现是 “电子工作中心站”。它是一个装备了信息技术设备的卫星式办公室,可以使做不同工作的人们在离家较近的地方从事各自的业务,当然有些是某家公司为其雇员专设的,如太平洋贝尔公司在加利福尼亚开设的电子工作中心站,而它在夏威夷设立的中心站则是面向当地公司和政府机构的。欧洲和日本也都在举行类似的尝试。如果这种趋势能够持续下去,那么 “是在家还是在办公室工作” 的矛盾就可以解决了——到离家很近的卫星办公室去。 ☚ 计算机硬件 现代通信技术发展新趋势 ☛ 计算机软件 计算机软件众所周知,计算机是用来处理信息的,如何处理却是软件的功能,因此,没有好的软件,计算机就好像是智能低下的儿童。特别是高级软件的开发尤为关键,以至于许多人都赞同在开发的重要性方面软件已超越了硬件,有人甚至断言未来寄托在 “无计算机的计算机公司”身上。 软件领域发展的主要障碍之一是急需使日常软件的生产自动化。目前,正在开发几种能加速编程的方法,最具前景的是计算机辅助软件工程和面向目标编程。如果这些手段能使众人期望的潜能成为现实,则系统设计人员很快就能简单规定出软件应用所需的逻辑,在智能计算机对标准化的软件包进行检索并将其综合成工作软件包后,系统的实际构筑就能自动完成。上文描述过的功能更强的硬件设施,能使软件系统实现几十年来人们所期望的人工智能在这些方面的应用。 目前针对个人软件所作的实验反映出人们对更有效的信息系统具有很强烈的需求。这类渐进的发展最终将形成一种智能软件包,它可以起到 “精明助手”、“智能机器人”或是代表 “主人”行事的 “仆人”的作用。随着个人数字化助手 (PDA) 的发展,一些简单的软件已现雏形: 有些软件包可以从复杂数据中搜寻所需信息,进行简单分析,回答询问以及其他大多数现在由秘书和助手承担的工作。人们相信PDA最终地具有学习功能,人们在不断的重复使用中提高软件自身的能力。同在的信息技术尚处在原始发展阶段,所以实际上我们无法把握今后一二十年更加智能化的系统究竟是什么样的。 大多数专家认为,在今后十年内,更拟人化的软件将具备如下能力: 迅速解决复杂的科学问题;对全球经济中吞吐的资金进行自动化管理,对明确的主题给予有个性特点的说明;更准确迅速地诊断疾病以及管理其他事务这一复杂世界所需完成的各类工作。总的来说,目前社会中大多数靠人与人直接打交道完成的工作似乎都可以借助计算机软件转化成靠人机交流来实现。这种趋势表明: 信息服务,作为商务活动及其他社会交往的一种变通方式,将很快被广泛采用,从而在很大程度上改变人们的工作和生活方式。除了录像会议、无线电通信等方式外,其他处在开发阶段的信息服务形式几乎涉及到人类活动的各个方面: 电子银行、贸易担保、项目管理、政治选举、家庭电影与娱乐、公用电视系统、医生所称的电子屋、通过闭路电视进行的心理治疗、电子出版以及通过电视和计算机系统提供的医疗及培训服务。另外,信息技术威力的另一体现是 “电子工作中心站”。它是一个装备了信息技术设备的卫星式办公室,可以使做不同工作的人们在离家较近的地方从事各自的业务,当然有些是某家公司为其雇员专设的,如太平洋贝尔公司在加利福尼亚开设的电子工作中心站,而它在夏威夷设立的中心站则是面向当地公司和政府机构的。欧洲和日本也都在举行类似的尝试。如果这种趋势能够持续下去,那么 “是在家还是在办公室工作” 的矛盾就可以解决了——到离家很近的卫星办公室去。 ☚ 计算机硬件 现代通信技术发展新趋势 ☛ 计算机软件 计算机软件Computer Software计算机程序、程序所使用的数据以及有关的文档资料的集合。计算机软件是以硬件为基础的。软件的主要作用在于决定计算机做什么以及怎么做。根据软件功能及其所面向的工作对象可将其分为五类:(1)系统软件。指直接控制和协调计算机、通信设备及其它外部设备,使之发生作用及方便用户使用的软件。这类软件一般紧靠硬件,是计算机用户与计算机之间的第一层界面,它们与具体应用无关,只是在系统一级提供服务。(2)通讯软件。是指负责处理计算机间信息传递的软件。这类软件通过计算机网络来实现信息共享和分布式处理。(3)工具软件。指用于辅助软件开发的软件。通常供开发人员使用,其中包括:程序设计语言、语言编译器、应用开发工具等。(4)支持软件。这类软件本身不直接产生有用的结果,只是提供中间支持和运行环境,但与其它软件结合起来,可以产生最终的程序和系统。(5)应用软件。是指直接完成某种具体应用无需用户编程的软件。这类软件的范围最广、产品最多。但上述分类不是绝对的,而是相互交叉、相互联系的。衡量软件质量的标准是软件的功能性、可靠性、可移植性、兼容性、可维护性、界面的友善性等。早期软件主要注重功能性,现在则更注重用户的友善性。 ☚ 模块 程序 ☛ 计算机软件 计算机软件程序以及开发、使用和维护程序需要的所有文档。包括需求规范说明、结构规范说明、测试规范说明等。程序是文档代码化的表现形式。软件大致可分为系统软件和应用软件二大类。系统软件主要有操作系统、语言处理程序、辅助系统、数据库管理系统等; 应用软件主要有程序库、数据库应用系统等; 专用软件主要有各种程序语言的用户程序。软件不仅能使计算机按照人们所规定的步骤自动地进行计算、处理或控制,而且具有扩大计算机的功能和用途,提高计算机的使用效率,简化程序设计或程序设计自动化,简化使用方法等。软件是计算机不可缺少的组成部分。 ☚ 计算机网络 计算机硬件 ☛ 计算机软件computer software |