[拼音]:ruanjian
[外文]:software
计算机系统中的程序和有关的文件。程序是计算任务的处理对象和处理规则的描述;文件是为了便于了解程序所需的资料说明。程序必须装入机器内部才能工作,文件一般是给人看的,不一定装入机器。程序作为一种具有逻辑结构的信息,精确而完整地描述计算任务中的处理对象和处理规则。这一描述还必须通过相应的实体才能体现。记载上述信息的实体就是硬件。
软件是用户与硬件之间的接口界面。使用计算机就必须针对待解的问题拟定算法,用计算机所能识别的语言对有关的数据和算法进行描述,即必须编程序和有软件。用户主要是通过软件与计算机进行交往。软件是计算机系统中的指挥者,它规定计算机系统的工作,包括各项计算任务内部的工作内容和工作流程,以及各项任务之间的调度和协调。软件是计算机系统结构设计的重要依据。为了方便用户,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。
计算机科学技术的发展促进了软件学的兴起。它是研制和维护软件过程中所涉及的理论和技术。
发展计算机科学技术,软件和硬件都是不可缺少的重要方面。二者既有分工,又有配合。硬件是物质基础,软件担负指挥功能。软件的发展以硬件为基础,其发展也促进了硬件、计算机科学技术和其他科学技术的发展。它在社会信息化和人类文化的发展中具有重要的作用。
发展过程软件的发展受到应用和硬件发展的推动和制约,发展过程大致可分为三个阶段。
从第一台计算机上的第一个程序的出现到实用的高级程序设计语言出现以前为第一阶段(1946~1956年)。计算机的工作是由储存在其内部的程序指挥的。这是诺伊曼式计算机的重要特色,当时计算机的应用领域较窄,主要是科学计算。就一项计算任务而言,输入、输出量并不大,但计算量却比较大,主要是处理一些数值数据。机器结构以中央处理器为中心,存储容量较小。编制程序(简称编程)用的工具是低级语言,即以机器基本指令集为主的机器语言和在机器语言基础上稍加符号化的汇编语言。突出的问题是,程序的设计和编制工作复杂、烦琐、费时和易出差错。衡量程序质量的标准主要是功效,即运行时间省,占用内存小,很少考虑到结构清晰、易读性和易维护性。设计和编制程序采用个体工作方式,强调编程技巧,主要研究科学计算程序、服务程序和程序库。研究对象是顺序程序。
第二阶段是从实用的高级程序设计语言出现以后到软件工程出现以前(1956~1968年)。随着计算机应用领域的逐步扩大,除了科学计算继续发展以外,出现了大量的数据处理问题,其性质和科学计算有明显的区别,涉及到非数值数据。就一项计算任务而言,计算量不大,但输入、输出量却很大。这时,机器结构转向以存储控制为中心,出现了大容量的存储器,外围设备发展迅速。为了提高程序人员的工作效率,出现了实用的高级程序设计语言。为了充分利用系统资源,出现了操作系统。为了适应大量数据处理问题的需要,开始出现数据库及其管理系统。软件的复杂程度迅速提高,研制周期很长,正确性难以保证,可靠性问题非常突出。到了60年代中期,出现了人们难以控制的局面,即所谓软件危机。为了克服这一危机,人们进行了以下三方面的工作:
(1)提出结构程序设计方法;
(2)提出用工程方法编制软件;
(3)从理论上探讨程序正确性和软件可靠性问题。这一阶段的研究对象增加了并发程序。虽然后期提出了结构程序设计方法,但实际仍未使用。这一阶段着重研究高级程序设计语言、编译程序、管理程序、操作系统。计算机系统的处理能力得到加强。设计与编制程序的工作方式逐步转向合作方式。
软件工程出现以后为第三阶段(1968年以来)。由于大型软件的编制是一项工程性任务,采用个体或合作方式不仅效率低,产品可靠性差,而且很难完成。只有采用工程方法才能适应。在这一阶段中,应用领域迅速扩大,出现了嵌入式应用,其特点是受制于它所嵌入的宿主系统,而不是受制于功能要求。为了适应计算机网的需要,出现了网络软件。随着微型计算机的出现,分布式应用和分布式软件得到发展。同时,也开始了有关方法学的研究工作。这一阶段的研究对象增加了嵌入式软件、网络软件和分布式软件。编制方法主要是结构程序设计方法和软件工程方法。这一阶段普遍采用现代高级语言,即具有并行成分和实时成分的模块化语言。编制软件的工作方式逐步转向工程化。
分类按照应用和虚拟机的观点,软件可分为系统软件、支援软件和应用软件三类。
系统软件居于计算机系统中最靠近硬件的一层。其他软件一般都通过系统软件发挥作用。它与具体的应用领域无关,如编译程序和操作系统等。编译程序把程序人员用高级语言书写的程序翻译成与之等价的、可执行的低级语言程序;操作系统则负责管理系统的各种资源、控制程序的执行。在任何计算机系统的设计中,系统软件都要优先予以考虑。
支援软件支援其他软件的编制和维护的软件。随着计算机科学技术的发展,软件的编制和维护代价在整个计算机系统中所占的比重很大,远远超过硬件。因此,支援软件的研究具有重要意义,直接促进软件的发展。当然,编译程序、操作系统等系统软件也可算作支援软件。但是,70年代中期和后期发展起来的软件支援环境,可看成为现代支援软件的代表,主要包括环境数据库、各种接口软件和工具组。三者形成整体,协同支援其他软件的编制。
应用软件特定应用领域专用的软件。例如,人口普查用的软件就是一种应用软件。对于具体的应用领域,应用软件的质量往往成为影响实际效果的决定性因素。70年代出现的嵌入式应用,其相应软件的复杂程度高,编制工作量大,促进了软件的发展。模拟应用导致模拟语言(SIMULA)的出现。应用软件的作用越来越大。上述分类不是绝对的,而是互相交叉和变化的。有些软件如编译程序和操作系统,既可看作是系统软件,又可看作是支援软件。它们在一个系统中是系统软件,而在另一个系统中却是支援软件;也可以在同一系统中既是系统软件,又是支援软件。系统软件和应用软件之间也有类似情况。有的软件如数据库管理系统、网络软件和图形软件,原来算作应用软件,后来又被看作为系统软件。而且系统软件、支援软件和应用软件三者的编制技术基本相同。因此,这三者既有分工,又有结合,并不截然分开。
程序设计设计、编制和调试程序的过程。它是目标明确的智力活动。由于软件的质量主要是通过程序的质量来体现的,程序设计工作在软件研究中的地位就显得非常重要,内容涉及有关的基本概念、规范、工具、方法以及方法学。
程序设计的基本概念有程序、数据、子程序、子程式、协同程式、模块,以及顺序性、并发性和分布性等。程序是程序设计中最为基本的概念。子程序和协同程式都是为了便于进行程序设计而建立的程序基本单位。顺序性、并发性和分布性反映程序的内在特性。
程序设计规范是进行程序设计的具体规定。程序设计是软件编制工作的重要部分,而软件编制是工程性的工作,所以要有规范。程序设计规范是软件规范的组成部分,是衡量和影响程序设计质量的重要因素。
程序设计工具包括用以书写程序的语言和为了便于进行程序设计而提供的各种专用程序等。语言影响程序设计的功效,以及软件的可靠性、易读性和易维护性。专用程序为软件人员提供合适的环境,便于进行程序设计工作(见软件研制工具)。
程序设计方法有两类。一类是全局性的,如结构程序设计方法。它不仅要求编出的程序结构良好,而且要求程序设计过程也是结构化的、层次式的、逐层降低抽象级别的。另一类则是局部性的,如子程式方法、协同程式方法、顺序程序设计、并发程序设计和分布式程序设计等。全局性的方法与规范的关系密切,而且互有影响。
程序设计方法学不仅研究各种具体的方法,而且着重研究各种具体方法的共性,涉及规范的全局性方法,以及这些方法的现实背景和理论基础。
程序设计的发展可归结为从顺序程序设计到并发程序设计、分布程序设计;从非结构程序设计到结构程序设计;从低级语言工具到高级语言工具;从具体方法到方法学。
软件工程采用工程方法编制和维护软件的过程以及有关的技术。软件研制包括需求定义、设计、实现和测试等阶段。其中各步依次串行,每步结束都有详细的文件资料。软件维护主要有三层含义。
(1)校正性维护:软件在交付使用后仍可能发现潜在的错误,一经发现便及时纠正。
(2)适应性维护:软件在使用中随着环境条件的改变必须加以改动,使之适应新的环境。
(3)完善性维护:在使用过程中不断使之充实完善。因此,软件维护同一般意义下的维护具有本质的区别。
60年代中期,软件的复杂程度增加, 不仅研制周期长,而且更为严重的是正确性难以保证。导致这种情况的一个重要原因,就是由于软件的研制和维护本身是工程性的任务,但软件人员所采取的方式却未能工程化。这样,便促使人们开始考虑采用工程方法和工程途径来研制和维护软件。于是,1968年提出了软件工程这个概念。软件工程发展迅速。虽然软件工程的对象和方法与传统工程差别很大,对“软件工程”一词还有异议,但是,应该采用工程方法研制和维护软件却是公认的。从现实和发展来看,软件工程不仅对软件发展,而且对计算机科学技术的发展所起的作用都是巨大的。软件工程的研究内容涉及对象、结构、方法、工具和管理等方面。
发展趋势60年代以来,软件发展极为迅速。但是,发展状况仍远远不能适应社会信息化的要求。核心问题是改进功能,提高质量和生产率。
软件与计算机系统结构、超大规模集成电路技术、智能工程相结合,有助于研制第五代、第六代计算机系统和软件系统。第五代计算机的重要标志是智能化和知识化。为此,就必须研制智能化、知识化的软件系统。第六代计算机的重要标志是仿生,不仅能模拟人脑的正常功能,而且能模拟生物的特异功能。为此,必须研制具备特异功能的软件。
软件技术与软件理论相结合奠定软件理论基础,以发展新型软件技术。为了从根本上解决软件问题,必须建立理论基础。
工程化和形式化相结合,将推进软件自动研制系统。为了从根本上提高软件生产率,软件研制和维护过程中尽量多的工作将由机器来承担,发展软件自动研制系统。为此,工程化与形式化将紧密结合。在软件工程中采用形式方法,使得软件生存周期中各阶段的规格说明都能用合适的形式体系表示出来。再根据合适的变换规则,通过专用软件进行自动变换,产生出所需的软件。
参考书目徐家福:《系统程序设计语言》,科学出版社,北京,1983。参考文章手机炒股软件的分类股票基金怎祥下载PLC的资料和软件?自动化电力工程计算机辅助设计应用软件中测量子系统?电气技术电力工程应用软件中三维模型建立的细度要求?电气技术电力工程应用软件中图案的规定?电气技术未摊销完的专用软件能否一次性计入研发费?财务税务臭氧发生器的软件设计废水治理电力工程应用软件中主厂房三维模型的建立?电气技术企业购进的软件可否采用缩短年限法摊销折旧?财务税务企业购进某种财务软件应如何列支?财务税务严正声明:本文由历史百科网注册或游客用户安瑷自行上传发布关于» 软件的内容,本站只提供存储,展示,不对用户发布信息内容的原创度和真实性等负责。请读者自行斟酌。同时如内容侵犯您的版权或其他权益,请留言并加以说明。站长审查之后若情况属实会及时为您删除。同时遵循 CC 4.0 BY-SA 版权协议,尊重和保护作者的劳动成果,转载请标明出处链接和本声明内容:作者:安瑷;本文链接:https://www.freedefine.cn/wenzhan/27239.html