为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算机软件技术是计算机技术的一个重要组成部分

2017-10-15 25页 doc 51KB 27阅读

用户头像

is_574951

暂无简介

举报
计算机软件技术是计算机技术的一个重要组成部分计算机软件技术是计算机技术的一个重要组成部分 第1章 概 述 计算机软件技术是计算机技术的一个重要组成部分,是计算机技术领域中最为活跃的领域之一,是衡量计算机技术发展阶段的重要标志。计算机软件技术与计算机技术的应用密切相关。目前,在我们的日常生活、工作、学习、娱乐等领域中,处处都可以看到计算机软件技术的应用。登录网站、浏览各种信息,网站就是一种计算机软件技术的应用;去银行办理业务,离不开计算机程序的支持;写年终工作报告、给客户发送电子邮件,同样离不开计算机软件工具。本章将对计算机软件技术的概念、类型、体系架构等内容进行概述。...
计算机软件技术是计算机技术的一个重要组成部分
计算机软件技术是计算机技术的一个重要组成部分 第1章 概 述 计算机软件技术是计算机技术的一个重要组成部分,是计算机技术领域中最为活跃的领域之一,是衡量计算机技术发展阶段的重要标志。计算机软件技术与计算机技术的应用密切相关。目前,在我们的日常生活、工作、学习、娱乐等领域中,处处都可以看到计算机软件技术的应用。登录网站、浏览各种信息,网站就是一种计算机软件技术的应用;去银行办理业务,离不开计算机程序的支持;写年终工作报告、给客户发送电子邮件,同样离不开计算机软件工具。本章将对计算机软件技术的概念、类型、体系架构等内容进行概述。 1.1 什么是计算机软件技术 为了理解什么是计算机软件技术,给出计算机软件技术的定义,本节将研究以下几个问题:什么是计算机软件,什么是计算机程序,计算机软件和计算机程序的关系,计算机软件和计算机硬件的关系。 软件是一个非常宽泛的概念,与硬件相对应,例如电影、电视、音乐、文档记录等都 计算机软件技术基础 • 2 • 是软件。从城市建设角度来讲,下水管道、地铁交通、百货商场等都是硬件设施,而法律制度、规章制度、管理水平等则是软件。 由商务印书馆出版的现代汉语词典中,对软件的解释如下:“?计算机系统的组成部分,是指挥计算机进行计算、判断、处理信息的程序系统或设备。包括汇编程序、操作系统、编译程序、诊断程序、控制程序、数据管理系统等。?借指生产、科研、经营等过程中的人员素质、管理水平、服务质量等。”在这个定义中,软件不仅仅是指计算机软件,还包括其他广义上的含义。 在计算机领域中,计算机软件(computer software),简称为软件,是指在计算机系统中执行特定任务的计算机程序、算法和文档的集合。本书中的软件,如果没有特别强调,均指计算机软件。 软件包含了程序。计算机程序(computer programs),简称程序,是指计算机的指令序列。计算机工作时离不开程序,当计算机的中央处理器执行计算机指令时,就是程序在运行。程序通常分为源代码和可执行程序两大类。源代码是指以程序设计语言编写的、可读的语句和声明的集合,程序设计人员的工作就是使用程序设计语言编写源代码,源代码经过编译后转变为计算机可以执行的程序;可执行程序是指包含了计算机可以直接执行的指令的文件。为了与源代码相区别,可执行程序又被称为二进制代码。当在市场上购买软件时,通常购买的就是程序的可执行版本。从这里来看,计算机软件不等同于计算机程序,其外延要大于计算机程序。 软件也离不开算法。算法(algorithm)是数学、计算机等学科领域中的一个重要概念,是指一种有限指令的序列,是解决特定问题的明确的详细步骤,通常用于计算和数据处理。软件的目的就是完成特定的任务,由程序和算法具体来承担。 文档也是软件的重要内容。软件文档是指伴随软件存在的文本文档,用于解释软件的工作原理、使用方法、技术特点等内容。在软件的设计、开发和使用过程中,常见的文档包括需求分析、系统设计、算法描述、用户手册、技术服务、市场推广计划等。 例如,操作系统作为一种软件,包含了各种操作命令程序、命令中处理数据的各种算法以及用户手册等文档。 计算机软件与计算机硬件是相互协同工作的。计算机硬件指计算机系统的物理部分,包括主板、显视器、CPU、RAM内存、硬盘、键盘、鼠标、电源等,用于存储和运行计算机软件。如果缺少了计算机软件,计算机硬件是毫无用途的。从计算视角来看,计算机软件的有序指令可以按照某种顺序改变计算机硬件的状态,实现用户的需要。从形状上来看,计算机硬件是指有形的、可触摸的实际物体,而计算机软件则是无形的、不可触摸的抽象实体。 经过上面的分析可知,软件是一种产品,涉及到像操作系统、程序设计语言、算法等许多不同的技术。因此,计算机软件技术是与软件的设计、实施和使用相关的多种技术的统称。软件的设计与实施涉及到程序设计语言、算法和数据结构、数据库系统、多媒体、软件工程等技术,软件的使用涉及到质量、可靠性、专利、知识产权、道德、法律等管理和技术。 第1章 概 述 • 3 • 1.2 软件的分类 对软件进行分类是深入认识和理解软件的一种方式。软件的分类方式有很多种,例如,可以根据软件的功能进行分类,也可以根据软件的不同开发方式进行划分,还可以从软件的使用方式进行分类。根据软件的功能来划分是一种主要的分类方式,可以把软件分为系统软件、编程软件和应用软件3大类型。下面,我们将详细分析这些软件类型的特点,最后再讨论一下其他分类方式的软件类型的特点。 1.2.1 系统软件 系统软件(system software)指管理和控制计算机硬件、使计算机工作的软件。系统软件是一种非常重要的软件类型,它为用户提供了一种操作计算机硬件的便捷方法,为其他程序提供了运行的基础。对应用程序编程人员来讲,系统软件可以屏蔽计算机硬件例如打印机、显示器、键盘的访问细节,减轻编程人员的工作负担。另外,系统软件还可以增强计算机内存管理、处理器管理的安全性和稳定性等。 系统软件与应用软件不同,应用软件有助于提高终端用户的生产效率,例如用户使用Word软件来编写文档,通过网络玩游戏,这里的Word软件、游戏软件都是应用软件。系统软件则用于执行像把内存中的数据写入到磁盘中、把从键盘上输入的字符显示在显示器上等任务。 虽然操作系统是最主要的系统软件,但是系统软件并不等同于操作系统。根据系统软件的功能特点,可以继续划分为操作系统、设备驱动程序、实用工具以及其他系统软件。 1. 操作系统 操作系统(operating system,OS)是位于计算机系统中的硬件和软件之间的接口,负责管理和协调计算机硬件的操作和计算机有限资源的共享。各种应用程序都是通过宿主在操作系统中在计算机上运行。几乎所有的计算机,包括手持计算机、桌面计算机以及超级计算机,甚至游戏机,都离不开操作系统的支持。 操作系统为系统程序、用户接口、应用程序和硬件提供了许多服务,应用程序通过系统调用访问这些服务、通过设备驱动程序使用硬件。操作系统作用的层次结构示意图如图1-1所示。 计算机软件技术基础 • 4 • 用户 应用 操作系统 计算机硬件 图1-1 操作系统作用的层次结构示意图 出现于1946年、重达30吨的ENIAC(Electronic Numerical Integrator and Computer)是公认的第一台电子计算机,装有1万7千多个电子管、1万多个电容器和6千多个开关,占地面积160多平方米,耗电174千瓦,制造费用高达45万美元,但是这台“埃尼亚克”计算机是没有操作系统的。到了20世纪60年代初,可以执行作业的批处理系统出现在大型计算机上,一次只能运行一个程序。 1969-70,Ken Thompson在DEC公司的PDP-7小型计算机上使用汇编语言写出了第一个UNIX操作系统。由于该操作系统提供了多任务管理、内存管理、内存保护等诸多新功能,很快地在许多计算机上流行起来。 操作系统可以完成程序的执行,其主要功能包括进程管理、内存管理、设备管理、文件管理、网络支持、安全管理等。 程序的每一次执行,操作系统就会创建一个进程。操作系统为每个进程建立一个用于描述进程状态和资源信息的数据结构,向进程分配资源、允许进程间共享和交换信息、保护进程的资源等。进程管理包括进程创建、进程调度、进程间通信、撤销进程等。 操作系统允许同时执行多个程序,负责管理程序使用的所有系统内存,确保多个程序之间不发生内存使用方面的冲突。内存管理包括分配回收内存、内存保护、内存映射、虚拟内存管理等。 设备主要是指键盘、鼠标、显示器、打印机、磁盘、磁带、光盘驱动器等输入输出设备,设备管理是指操作系统对这些设备进行分配、调度等操作。 为了使访问数据的速度更快、更可靠并且可以更加充分地利用磁盘空间,计算机将数据以文件的形式存储在磁盘上。读取磁盘上的文件是操作系统的一项重要功能。文件管理是指操作系统对存储空间的分配和回收以及对文件的读写、查找、打开、关闭、删除等操作。 计算机网络是指互相连接的计算机和计算机设备的集合,允许计算机之间互相通信、共享资源(文件、打印机等)和信息。当前,绝大多数的操作系统都支持各种网络协议。 安全是计算机的一个重要问题。安全的计算机系统依赖于许多技术的正确运用。操作系统为应用程序提供了访问各种资源的功能,但是操作系统必须能够区分哪些操作请求是合法的,哪些操作请求是非法的。对于合法的操作请求,操作系统还应该能对其进行跟踪。操作系统应该具备安全管理功能。 第1章 概 述 • 5 • 当前,主要的操作系统包括微软公司的Windows系列操作系统、Unix和类Unix操作系统、苹果公司的Mac OS X操作系统、Linux操作系统等。 微软公司发布了多个不同系列、不同版本的操作系统。发布于1982年的MS-DOS 1.0是微软公司最早的操作系统,当然这只是一个字符界面的操作系统。Windows系列操作系统推出之后,从MS-DOS 6.22开始不再单独发布,而是集成在了Windows系列操作系统中,直至2000年微软宣布终止MS-DOS的开发。1985年11月微软公司发布了具有GUI(graphical user interfaces,图形化用户界面)的Windows 1.0系统。当时,该版本的操作系统被认为是MS-DOS的图形化操作工具而已。1987年10月发布的Windows 2.0虽然在多窗口叠盖、扩展内存管理等方面有所增强,但是仍没有引起人们足够的关注。1990年发布的Windows 3.0和1992年发布的Windows 3.2在虚拟内存管理、设备驱动程序等方面有所突破,并且采用汇编语言重写了一些关键命令,提供了一定程度的网络支持、多媒体管理等。1995发布的Windows 95是微软公司最成功的操作系统产品之一,Windows 95完全摆脱了MS-DOS的控制,具有全新的桌面形式、硬件即插即用功能、允许使用长文件名、采用抢占式多任务技术、扩大了网络功能、运行速度更快等,是一个完整的32位操作系统。1998年发布的Windows 98和Windows Me都是从Windows 95演变而来的,被称为9x系列。Windows操作系统的另外一个系列是NT系列。Windows NT是微软于1993年7月发布的,NT是New Technology的缩写。Windows 2000、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008、Windows 7等都是基于Windows NT操作系统的。微软公司发布的系列操作系统的演变示意图如图1-2所示。 MS-DOS系列 1.0 2.0 3.0 1982 1983 1984 6.0 3.2 4.0 5.0 6.22 3.3 基于MS-DOS的Windows和Windows 9x Server系列 1.0 2.0 3.0 95 98 ME Home Server 2.1x 3.1x 98SE Server Server Server Server 2003R2 2008 2008R2 2003 基于NT内核的Windows 3.1 3.51 2000 Vista 7 X64位专业版 3.5 4.0 XP 1985 1987 1989 1991 1993 1995 1997 1999 2001 2003 2005 2007 2009 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 图1-2 微软公司系列操作系统的演变示意图 计算机软件技术基础 • 6 • Unix最早是由AT&T贝尔实验室于1969年开发出来的,主要开发人员包括Ken Thompson、Dennis Ritchie、Douglas McIlroy等人。Unix最初是用汇编语言编写的。1973年,Ken Thompson等人用C语言重新编写了Unix,使得Unix的可移植性大大增强。Unix是一个可移植的、多任务、多用户的操作系统。Unix操作系统有许多特点,例如采用纯文本存储数据、层次性文件系统、把设备看作是文件、包含了许多软件工具等。目前,Unix操作系统有许多不同的系列,主要包括Free BSD、Net BSD、Sun OS、AIX、OpenServer、Solaris、HP/UX等。 Mac OS X是由美国苹果电脑公司开发的操作系统。从2002年开始,该操作系统被安装在所有的Macintosh计算机系统中。Mac OS X中的X表示罗马数字10。该操作系统是基于Unix的操作系统。Mac OS X操作系统在兼容性以及影像模式、颜色、GUI元素、Unicode字符支持、绘图、目录加密、搜索、工作协同等方面都有显著的特点。 Linux操作系统是一套免费使用和自由传播的类Unix操作系统。该系统是由世界各地的成千上万名程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。Linux是1991年由芬兰赫尔辛基大学的学生Linus Torvalds设计的。其最初的想法是设计一个代替Minix系统的操作系统,该操作系统可用于386、486或奔腾处理器的个人计算机上,具有 Unix操作系统的全部功能。Linux以其高效性和灵活性著称,它能在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux属于自由软件,用户无需支付任何费用就可以获得其源代码,然后可以根据自己的需要对它进行必要的修改。Linux可以兼容大部分的UNIX系统。Linux的核心程序的著作权归Linus本人所有,其他应用程序则归各自的作者所有。 2. 设备驱动程序 设备驱动程序(device driver)是一个允许高级计算机软件与硬件进行交互的程序。高级计算机软件一般独立于特定的计算机硬件,只是具备与硬件交互的功能框架。每种特定的设备例如打印机、网卡,都有具备功能框架要求的操作该设备的具体命令,这些具体的命令称为设备驱动程序。设备驱动程序从高级计算机软件处接受一般的命令,然后把这些命令分解成一系列低级的、与特定设备相关的命令,从而驱动该设备的运行。 3. 实用工具 实用工具(utility software)是一种计算机系统软件,其作用是在执行计算任务的过程中有助于管理和优化计算机硬件、操作系统或应用软件。目前,许多实用工具都已经被整合到操作系统中了。 典型的实用工具包括磁盘存储管理工具、系统配置和诊断工具、反病毒软件、文本编辑器、加密和解密工具、应用程式启动器、注册表优化工具、网络管理程序等。 磁盘存储管理工具主要用于磁盘的维护和优化,包括磁盘碎块诊断工具、磁盘检查程序、磁盘文件清理工具、磁盘空间分析工具、磁盘分区工具、磁盘备份工具、磁盘压缩工具、文件管理器、文件归档工具等。 第1章 概 述 • 7 • 4. 其他工具 除了操作系统、设备驱动程序和实用工具之外,系统软件还包括服务器、窗口化系统等。 服务器(server)是指向客户端提供服务的计算机硬件或服务器软件或是他们的组合。有时,服务器是指运行了服务器操作系统的计算机硬件;有时,服务器是指能够提供服务的软件程序。例如,上网浏览网页时,浏览器是客户端程序,网站则是运行在服务器计算机上的服务器端程序。通常情况下,服务器端程序和客户端程序的关系是一对多的关系,即一个服务器端程序通过网络向多个客户端程序提供服务。作为计算机硬件,服务器随着服务器软件的不同需求而不同。在Internet领域,服务器提供了许多服务,包括World Wide Web、域名服务器、电子邮件服务器、FTP服务器、即时通信服务器、在线游戏服务器等。 窗口化系统(windowing system)是图形化用户界面(graphical user interface,GUI)的组成部分,支持窗口管理器,并且为图形化硬件、定位设备(例如鼠标)、键盘提供基本的支持。Microsoft Windows、Mac OS以及许多类Unix等操作系统都包含了与操作系统集成的窗口化系统。窗口化系统允许用户同时使用多个应用程序工作,每一个程序都运行在自己的窗口(屏幕中的一个矩形区域)中。 1.2.2 编程软件 编程软件(programming software)又称为编程工具(programming tool)或软件开发工具(software development tool),是一种软件开发人员用于创建、调试、维护其他程序和应用软件的软件工具。一般地,这些软件工具包括程序设计语言以及编译程序、调试程序、解释程序、链接程序、文本编辑程序等。这些软件工具的集合称为集成开发环境(integrated development environment,IDE),例如Microsoft Visual Studio就是典型的IDE。由于本书第2章将详细介绍程序设计语言,因此下面只重点介绍其他软件工具的特点。 1. 编译程序 编译程序(compiler)是一种把用某种计算机语言编写的源代码程序转变成另一种计算机语言(目标语言,通常是二进制形式,被称为目标代码)的计算机程序。这种编译的目的是使得源代码成为一种可执行的程序。 通常情况下,编译程序用于把高级程序设计语言编写的源代码转变成汇编语言或机器语言等低级语言,以便计算机能够执行。相反,把低级程序语言代码转换为高级程序语言代码的程序称为反编译程序。 ? 编译过程的主要操作包括词法分析、语法分析、语义分析、代码生成和代码优化。 ? 词法分析是指从左至右逐个字符对源程序进行扫描,产生一个个单词符号,把作 为字符串的源程序改造成为单词符号串的中间程序。 ? 语法分析的任务是在词法分析的基础上将单词符号串组合成各类语法短语,如程 序、语句、表达式等。语法分析程序判断源程序在结构上是否正确、是否满足语 法规则等。 ? 语义分析也是编译过程的一个逻辑阶段,其任务是对结构上正确的源程序进行上 计算机软件技术基础 • 8 • 下文有关性质、类型进行审查,并且报告错误。例如常见的语义错误包括:表达 式中数组变量的使用方式错误、赋值语句的右端与左端的类型不匹配等。 ? 代码生成是把源代码的内部表示形式转换为可以由计算机识别和执行的机器码形 式的过程。对于复杂的编译程序,为了对代码进行优化,在生成代码时会生成各 种中间代码形式。 ? 为了使程序执行得更快、占用更少的内存资源、提高程序的效率等,对代码进行 调整的过程称为代码优化。 2. 调试程序 调试程序(debugger)是一种测试和诊断其他程序的计算机程序。在集成开发环境中,当发现了程序的错误时,对于源代码级的错误,调试程序将显示出错误在源代码中的位置。如果是针对低级语言或机器语言的调试,则错误位置会以反汇编的形式显示出来。 另外,调试程序还有其他一些功能,例如逐步运行程序、在设置的断点处中止程序的执行、跟踪特定变量的值等。 3. 解释程序 一般地,解释程序(interpreter)是指执行某种编程语言编写的指令的计算机程序。解释和编译是程序设计语言实现计算的两种主要方式。但是,这两种计算方式并非是绝对不同的,原因是大多数的解释程序也像编译程序一样执行一些翻译工作。 对于一个解释程序而言,它可以以多种方式执行计算机指令:直接执行源代码,例如具有C#语法特点的XMLmosaic语言的解释程序;将源代码翻译成更有效率的中间代码然后执行,例如Perl、Python、MATLAB、Ruby等语言都是这种类型的解释程序;明确执行由解释程序的编译功能生成的预编译代码,例如Java语言,Phthon语言也可以先生成预编译的.pyc代码,然后再执行。 中间代码可以是独立的机器代码,然后被链接程序链接起来,再由解释程序或编译程序来执行。 4. 链接程序 链接程序(linker)是指把一个或多个由编译程序生成的对象合并成为一个可执行程序的计算机程序。 计算机程序通常由多个部分或模块组成。这些并不包含在一个对象文件中的部分或模块也被称为符号。一般地,对象文件包含3种符号:已定义的符号、未定义的符号和本地符号。已定义的符号允许其他模块调用,未定义的符号可以调用其他已定义的符号,本地符号则是指对象文件内部使用的重定位符号。当程序由多个对象文件组成时,链接程序把这些文件合并成一个统一的可执行程序,实现符号之间的调用。 链接程序经常把来自称为库的文件集合的对象作为输入,链接程序的输出往往并不包括整个库文件,而仅仅是包含其他对象文件或库文件调用到的符号。在计算机软件领域,有各种各样的库文件。 第1章 概 述 • 9 • 5. 文本编辑程序 文本编辑程序(text editor)也称为文本编辑器,是用于编辑纯文本文件的计算机程序。很多情况下,文本编辑程序由操作系统或软件开发环境提供,用于对配置文件、源代码进行编辑和修改。例如,Unix操作系统中的vi就是一个文本编辑器,微软的Windows系列操作系统中的记事本也是文本编辑器。 文本编辑程序的一般功能包括:搜索、替换功能;剪切、复制、粘贴功能;文本格式化功能;撤销、重做功能;导入其他功能;过滤等。除此之外,许多文本编辑程序还有一些特殊功能,包括:可以提示语法、提高用户编程效率的源代码编辑功能;用于管理复杂的编程项目的IDE;用于World Wide Web编程的编辑器,例如Dreamweaver、Frontpage等;数学、物理、化学编辑功能等。 6. IDE IDE是一种为计算机编程人员提供的、具备软件开发需要的编辑、编译、调试、链接以及自动化工具的多种功能的计算机软件。IDE也被称为集成设计环境、集成调试环境等。有时,版本控制系统和工具也被集成到IDE中。目前,许多IDE还有类浏览器、对象审查器、类图等面向对象软件开发功能。 使用IDE可以提高编程效率,例如在编写程序时可以随时执行编译操作、当出现语法错误时可以随时反馈错误提示等。目前,大多数的IDE都是可视化的,允许用户通过拖拉的形式创建并设计应用程序。 有些IDE支持多种编程语言,例如基于Java语言的Eclipse、基于C#的MonoDevelop等都是支持多种语言的IDE。在这种IDE中,提供了插件功能,允许同时安装多种语言的插件。例如,可以在Eclipse环境中安装C/C++、Python、Ruby、PHP等插件以支持相应的语言。插件也是一种计算机应用程序,它和主应用程序互相交互,以提供特定的功能。 1.2.3 应用软件 应用软件(application software)是指在计算机上运行的、支持或改进软件用户工作的计算机程序。或者说,应用软件可以直接完成终端用户的工作。从某种意义上来讲,系统软件和编程软件都是为应用软件服务的,应用软件才是真正直接提高用户工作的。从目前的计算机应用现状来看,有各种各样的应用软件,许多专家也从不同的角度提出了多种不同的应用软件分类方式。 一般地,常见的应用软件类型包括:工业自动化软件、业务软件、内容访问软件、教育软件、仿真软件、多媒体开发软件、产品工程软件等。下面,分别介绍这些应用软件的特点。 1. 工业自动化软件 工业自动化(industrial automation)是指对工业生产线、工艺过程、机器进行控制以便减少人工干预的控制系统。工业自动化软件是指用于工业控制系统的应用软件,包括数字化控制、可编程逻辑控制器以及其他工业控制系统等。 计算机软件技术基础 • 10 • 数字化控制(numerical control,NC)是指由编程命令控制的机器工具的自动化。现在的NC又称为计算机数字化控制,其自动化往往是由CAD/CAM程序控制的。 可编程逻辑控制器(programmable logic controller,PLC)是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能够通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程。其主要应用包括:开关量的逻辑控制、模拟量控制、运动控制、过程控制、数据处理、通信联网等。 2. 业务软件 业务软件(business software)是有助于提高业务生产效率或者度量业务生产效率的应用软件。业务软件又可以细分成多种类型,包括企业软件、企业基础设施软件、信息工作者软件等。需要指出的是,各种类型的软件之间的界限并不是很清晰,有时某种业务软件可能同时属于多种不同的类型。 企业软件(enterprise software)是指解决分布式环境中企业级管理流程和数据流程需求的软件。常见的企业软件包括财务管理软件(financial management,FM)、企业资源计划(enterprise resource planning,ERP)、客户关系管理(customer relationship management,CRM)、供应链管理(supply chain management,SCM)、执行信息系统(executive information system,EIS)、管理驾驶舱(dashboard)等。与此相对的是部门软件。部门软件是企业软件的子类,主要用于解决小型组织或大型组织的业务部门的业务管理需求,例如差旅费管理、呼叫中心管理等。 企业基础设施软件(enterprise infrastructure software)是指具有支持企业软件运行的通用功能的应用软件。常见的企业基础设施软件包括业务流程软件(business workflow software)、数据库管理系统(database management system,DBMS)、数字资产管理(digital asset management,DAM)、内容管理系统(content management system,CMS)、文档管理系统(document management system)、地理信息系统(geographic information system,GIS)等。 ? 业务流程软件是指与业务流程建模、管理、优化等相关的应用软件。 ? DBMS是指管理和维护组织数据库的计算机软件。 ? DAM是指与数字图片、动画、视频、音乐等数字资产的添加、注释、目录、存储、 检索等内容相关的活动和决策,DAM系统则是有助于改进数字资产管理流程的应 用软件。有时,DAM也指用于下载、重新命名、备份、排序、分组、归档、优化、 维护、导出文件的计算机协议。 ? CMS是一种用于管理和协调各种数字媒体和电子文本的创建、编辑、评审、索引、 搜索、出版、归档等工作流程的计算机应用软件。CMS常用于存储、控制、确定 版本、出版各种新闻文章、操作手册、技术手册、营销产品目录等文档。CMS管 理的内容包括计算机文件、图像媒体、音频文件、视频文件、电子文档、Web内 容等。 ? 文档管理系统是CMS的一种类型,是用来跟踪和存储电子文档或纸质文档影像的 第1章 概 述 • 11 • 计算机应用软件。 ? GIS是一种捕捉、存储、分析、管理、表示与地理位置相关的应用软件。一般地 认为,人们借助于GIS软件工具可以分析时空信息、编辑地图数据、执行交互式 查询、表示这些操作结果等。 信息工作者软件(information worker software)是一种满足部门内单个人创建和管理信息需要的应用软件。这些软件又可以分为时间管理、资源管理、数据管理、文档、分析、协同工作软件、预订系统、金融软件等。 从时间和资源管理角度来看,信息工作者软件又可以分为会计核算软件、项目管理(project management)软件、现场服务管理(field service management,FSM)软件等。会计核算软件是记录和处理应收、应付、现金、成本核算等会计事务的应用软件;项目管理软件包括与任务和时间管理相关的多种软件,例如成本和预算管理、资源分配、工作协同软件、沟通交流软件、质量管理软件、进度管理软件等;FSM是一种管理派遣技术员工到现场执行设备安装、维修、提供服务的工作流程和相关信息的软件。FSM软件包括客户需求管理、订单管理、零件库存管理、派遣管理、路线管理、客户服务历史数据管理等功能。 从数据管理角度来看,信息工作者软件包括联系管理系统(contact management system)、电子表格、个人数据库等业务软件。联系管理系统是一种集成的办公解决,允许组织和个人记录与客户和供应商的关系和交流,联系管理系统中的信息包括各种电子邮件、文档、工作内容、传真、日历等;电子表格是一种模仿纸质工作表格的应用程序,电子表格有多个单元格,每一个单元格既可以输入文本信息,也可以输入数字信息,多个单元格可以构成由行和列组成的网格,在电子表格的单元格中,输入数学公式,可以进行相应的自动计算和数据更新,Microsoft Excel就是当前最流行的电子表格软件;个人数据库是指个人业务数据进行存储和管理软件,例如Microsoft Access就是典型的个人数据库。 从文档视角来看,信息工作者软件包括文档自动化软件、字处理软件、桌面出版软件、绘制图表软件、表示软件等。文档自动化软件用于帮助用户选择恰当的文档、可以直接使用各种文件数据或案例数据并且把这些数据提取到文档中,可以大大提高文档的编制效率、质量、正确性和一致性,目前,文档自动化软件的应用领域包括法律事务、金融服务、风险管理等;字处理软件是用于生产任何可打印材料的计算机软件,例如,Microsoft Word就是一种典型的字处理软件,据统计,全球有超过5亿人在使用Microsoft Word软件;桌面出版软件是一种在个人计算机上通过WYSIWYG(what you see is what you get,所见即所得)页面布局软件来创建出版物文档,以便用于各种规模的出版发行,桌面出版不仅仅指和图书的出版,也用于产品宣传图片、贸易展览会设计、户外广告设计等,从当前的发展趋势来看,字处理软件的功能已经超出了早期桌面出版软件的功能,两者之间的界限正在逐渐地模糊;绘制图表软件是用来绘制图形化图表的计算机应用软件,绘制图表软件可以分为用户生成的图表软件和自动生成的图表软件:用户生成的图表软件往往具有GUI和WYSIWYG特征,自动生成的图表软件是一种典型的CASE(computer-aided software engineering,计算机辅助软件工程)工具;表示软件是一种用幻灯片形式显示信息的计算机应用软件,其主要功能包括允许插入和格式化文本的编辑器、插入和操纵图片的方法、用 计算机软件技术基础 • 12 • 于显示内容的幻灯片播放系统等,常用的表示软件包括Microsoft PowerPoint、Adobe Acrobat、Apple Keynote、Google Presentation等。 从分析视角来看,信息工作者软件包括计算机代数系统(computer algebra systems,CAS)、数值计算、物理软件、科学软件、统计软件、神经网络软件等。科学计算分为两类:一类是纯数值的计算,例如求函数的值、方程的数值解等;另一类计算是符号计算,又称代数运算,这是一种智能化的计算,处理的是符号。符号可以代表整数、有理数、实数和复数,也可以代表多项式、函数,还可以代表数学结构,如集合、群的表示等;数值计算软件就是解决前一类科学计算问题的软件,CAS是解决后一类科学计算问题的软件;物理软件是指用于物理研究的计算机软件,例如研究分子运动规律的分子建模软件、研究光学性质的光学软件等;科学软件是指包括数学软件在内的用于科学研究的计算机软件,例如天文学软件、化学软件、地球科学软件、语言学研究用软件、生物信息软件等;统计软件是指帮助用户进行统计分析的计算机软件,常见的统计软件包括MATLAB、SPSS、SAS、LISREL等;神经网络软件是指用于仿真、研究、开发和应用人工神经网络、生物神经网络以及其他神经系统的计算机软件。 从协同工作软件方面来看,信息工作者软件包括电子邮件(E-mail)软件、博客(blog)软件、维基(wiki)软件等。电子邮件是一种交换数字消息的方法,电子邮件系统的主要功能包括接收、前向、传输、存储用户消息等;博客是一种典型的Web站点,由个人来记录和维护事件描述、新闻评论或图片、视频等材料的计算机软件,博客内容通常是按照逆向时间顺序排列的;维基是一种使用维基软件的站点,允许用户在浏览器中使用简化的标记语言和WYSIWYG文本编辑器轻易地创建和编辑互联的Web页面,维基软件常用于协同工作站点、百科全书站点的创建以及内部网、知识管理等。 从预定系统方面来看,信息工作者软件包括计算机预定系统(computer reservations system)。计算机预定系统是指用于存储和检索与旅游相关的信息并且进行交易的计算机应用软件。最初的计算机预订系统是航空订票系统,这种系统又被称为全球分销系统。现在,计算机预定系统往往通过Internet进行,除了预定航空机票之外,还可以预定酒店房间、租赁汽车等。 从金融领域来看,信息工作者软件又可以包括日交易软件(day trading software)、银行系统、清算系统等。日交易软件是指支持股票、期货、货币进行日常交易的计算机软件,日交易软件首先应该对股票、期货、货币的各种价格数据进行记录和反映,然后对相关数据按照图表的方式进行显示,还可以满足交易执行的需求;银行系统是指支持银行存款、贷款、结算等业务的计算机软件;清算系统是指银行之间、企业内部进行资金汇划、对账、清算、查询、查复、集中管理、监控、账务核算的计算机应用软件。 3. 内容访问软件 内容访问软件(content access software)是一种用于访问内容而不是编辑内容的计算机软件。但是,也有些内容访问软件允许用户对内容进行编辑。这种软件主要是满足对数字化娱乐、出版产品的消费需求。例如,Web浏览器、媒体播放器、数字宠物、屏幕保护程 第1章 概 述 • 13 • 序、视频游戏等都是典型的内容访问软件。 ? Web浏览器是一种按照用户指示、检索和收集信息资源并且在用户计算机屏幕上 排列和显示的计算机应用软件。这些信息资源是由统一资源标识符(uniform resource identifier,URI)确定的,可以是Web页面、图像、视频以及其他内容。用 户可以通过超链接的方式在浏览器中浏览相关信息资源。目前,常见的浏览器有 Microsoft Internet Explorer、Mozilla Firefox、Google Chrome、Apple Safari等。 ? 媒体播放器(media players)是计算机中用来播放音乐、视频等多媒体的播放软件。 这种应用软件提供了对多媒体内容访问的功能。常见的媒体播放器有Windows media player、Realplayer、暴风影音、KMPlayer等。 ? 数字宠物(digital pets)是一种模仿真实动物行为、没有具体的物理外形、运行在硬 件设备上的计算机软件。人们可以喂食、玩耍、清洗数字宠物。这种软件类似于 游戏软件,但又与游戏软件不同,该软件没有胜利、没有挑战。 ? 屏幕保护程序(screensaver)是一种用来保护CRT(cathode ray tube,阴极射线显像管) 显示器的计算机应用软件。对于CRT显示器来说,屏幕保持过长的静态画面时间, 很容易造成屏幕上的荧光物质老化进而缩短显示器的寿命,因此,应该避免这种 情况,采用动态画面,使得某个点上的颜色不停的变化。但是,对于LCD(liquid crystal display,液晶显示屏)来说,屏幕保护程序没有保护作用。现在,屏幕保护 程序主要是用于娱乐、安全等功能。 ? 视频游戏(video games)是一种人机互动的计算机娱乐软件。这种游戏既可以连接电 视使用,也可以在计算机上运行。游戏是一种让玩家追求某种目标,并且让玩家 可以获得某种胜利体验的娱乐性产品。 4. 教育软件 教育软件(educational software)是一种用于教学或自学的计算机软件,主要包括儿童学习软件、居家学习软件、教学课件、教学管理软件、娱乐教育软件、教育参考软件、教育软件定制平台、公司培训软件以及特殊教育软件等。 5. 仿真软件 仿真软件(simulation software)是一种以研究分析、操作培训、娱乐等为目的,模仿真实情景的物理仿真系统或数据仿真系统的计算机软件。仿真软件又可以分为科学仿真、社会仿真、战场仿真、应急响应仿真、飞行驾驶仿真、汽车驾驶仿真、仿真游戏等。 6. 多媒体开发软件 多媒体开发软件(media development software)是指用于图形、图像、音频、视频等多媒体开发的计算机软件。多媒体开发软件又可以分为三维计算机图像软件、计算机动画、图形艺术软件、光栅图形编辑软件、矢量图型编辑软件、视频编辑软件、音频编辑软件、音乐生成器、Web超媒体开发软件等。 计算机软件技术基础 • 14 • 7. 产品工程软件 产品工程软件(product engineering software)是指辅助相关制造产品的设计、研发、装配的计算机软件。产品工程的主要活动包括成本活动、生产能力、产品质量、产品性能、可靠性、可服务性、用户特征等。产品工程软件主要包括计算机辅助设计(computer-aided design,CAD)、计算机辅助工程(computer-aided engineering,CAE)、测试工具、游戏创建软件、许可管理程序等。 1.3 软 件 架 构 随着IT技术的发展和应用的不断深入,要解决的问题也越来越复杂。在计算机软件技术领域,为了规范化解决复杂问题,引入了软件架构的概念。软件架构(software architecture)有时也称为软件体系结构,是对软件系统总体结构的抽象表示,主要描述软件系统的组件、组件的接口特征以及这些组件之间的关系。软件架构的研究内容主要包括软件架构设计模式、软件架构描述语言、软件架构文档以及形式化方法。ANSI/IEEE 1471-2000 是描述软件架构的第一个,2007年该标准被ISO采纳为ISO/IEC 42010:2007标准。下面介绍ANSI/IEEE 1471-2000标准的主要内容。 ANSI/IEEE 1471-2000标准认为提出软件架构的目的是:描述系统和系统的演变,便于在系统利益相关者之间进行交流,以某种一致性的方式和比较系统架构,计划、管理和执行系统开发的活动,描述系统稳定的特征和工作原理以便指导对系统的修改,确认系统实施内容和架构描述内容的一致性,记录对软件架构知识的贡献。 ANSI/IEEE 1471-2000标准使用如图1-3所示的概念描述框架来描述软件架构。 第1章 概 述 • 15 • 使命 完成1..* 有一个 影响 环境 系统 架构 位于 被…描述 有1..* 对..是重要的 确认1..* 利益相关者 架构描述 用于解决1..* 参与 选择1..* 由..组织1..* 确认1..* 有1..* 遵守 关注 观点 视图 用于解决1..* 参与1..* 有0..1 聚集1..* 包括1..* 为..创建方法1..* 观点库 模型 图1-3 IEEE 1471-2000用于描述软件架构的概念描述框架 在ANSI/IEEE 1471-2000概念框架中,系统环境可以影响系统。环境是指与该系统有直接或间接利益关系的其他系统。环境定义了系统的边界,从而可以准确地描述系统的范围。 一个系统有一个或多个利益相关者。利益相关者是指与系统有利益相关的个人、团队和组织,例如系统用户、系统所有者、系统开发人员、系统测试人员等都是典型的利益相关者。关注是指利益相关者在系统的开发、运营等多个方面关切的内容,例如系统性能、可靠性、安全性等都是典型的关注。系统存在的目的是为了完成所处环境中的一项或多项使命。使命是利益相关者提出的系统将要满足的目标集。 每个系统都有一个架构。架构是可描述的,一般地,可以通过一个或多个视图来描述架构。视图用来解决系统利益相关者的关注;观点为视图的创建、描述和分析提供了手段。具体地讲,观点提供了描述视图的语言、建模方法和分析技术;基于利益相关者的考虑和关注,架构描述选用一个或多个观点;视图可以包括一个或多个架构模型;每个架构模型都是基于相关的架构观点的方法和技术建立的。 1.4 本 章 小 结 本章从3个方面对计算机软件技术进行了概述。首先,介绍了计算机软件技术的一些基本概念;然后,详细研究了计算机软件的分类方式,对主要的软件类型进行了介绍,目的是让读者对计算机软件技术有一个感性认识;最后,对软件架构进行了介绍,目的是使读者对计算机软件的开发和应用有一个全面的概括性的了解。 计算机软件技术基础 • 16 • 1.5 复习题和思考题 1.5.1 复习题 1. 解释计算机程序的概念。 2. 什么是源代码程序, 3. 什么是可执行程序, 4. 什么是计算机软件技术, 5. 如何对软件进行分类, 6. 什么是系统软件, 7. 常见的系统软件有哪些, 8. 什么是操作系统, 9. 列出3个典型的操作系统。 10. 什么是编程软件, 11. IDE缩写的中文含义是什么, 12. 什么是应用软件, 13. 如何理解业务软件的概念, 14. 什么是软件架构, 15. WYSIWYG是什么意思, 1.5.2 思考题 1. 收集微软公司的资料,讨论微软公司提供了哪些类型的软件产品。 2. 分组讨论,你每天接触到哪些计算机软件, 3. 收集资料,讨论Unix和类Unix操作系统的特点。 4. 收集资料,研讨Linux操作系统的主要应用领域有哪些, 5. 收集资料,讨论企业软件的主要类型和典型产品的特点。 第1章 概 述 • 17 •
/
本文档为【计算机软件技术是计算机技术的一个重要组成部分】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索