第5章 计算机软件

5.1 复习笔记

一、软件的概念

1.软件分类

信息系统依靠软件资源帮助终端用户使用计算机硬件,将数据资源转换成各类信息产品,软件用于完成数据的输入、处理、输出、存储及控制信息系统的话动。计算机软件划分为:

(1)系统软件

管理与支持计算机系统资源及操作的程序称为系统软件。

(2)应用软件

处理特定应用的程序称为应用软件。

2.软件技术发展趋势

(1)面向对象

面向对象编程强调软件的模块化,它把数据(属性)和程序(方法)封装在一起组成对象,对象作为计算主体,拥有自己的状态以及接收外界消息的接口,对象之间相互合作完成软件的计算任务。

(2)构件

构件技术强调软件的复用,把一个能提供有用功能的程序代码包封装成构件,构件有着良好的接口,具有在不同的硬件平台和软件环境中工作的可移植性,开发者可以通过组装已有的构件来开发新的应用系统。

(3)Web Service体系

Web Service是基于网络的、分布式的模块化组件发布与使用的体系标准。如图5-1所示。Web Services体系中包括服务提供者、服务代理和服务请求者三个角色。

图5-1  Web Services体系

二、系统软件

1.系统软件的分类

系统软件是指那些管理和支持计算机资源及其信息处理活动的程序,这些程序是计算机硬件和应用程序之间重要的软件接口。系统软件分为:

(1)系统管理程序

在计算机系统执行各种用户信息处理任务时,这种程序用于管理计算机系统的硬件、软件和数据资源。

(2)系统支持程序

这类程序通过提供各种支持服务,以支持计算机系统的操作和管理。

(3)系统开发程序

这类程序主要帮助用户开发信息系统的应用程序。

2.操作系统

操作系统管理CPU的操作,控制计算机系统的输入/输出,存储资源的分配及一切活动,当计算机执行用户应用时提供各种服务。

(1)功能

用户界面

操作系统提供的用户界面帮助用户实现与计算机系统的交流。

资源管理

操作系统管理计算机系统的所有硬件资源包括CPU、主存储器、二级存储设备以及其他输入/输出设备。

文件管理

文件管理程序控制数据和程序文件的生成、删除和存取。文件管理也包括保持文件在磁盘等二级存储器上的物理地址的轨迹,操作系统将维护该文件目录区。

任务管理

任务管理程序保证终端用户计算任务的完成。

实用服务程序管理

操作系统还可以进行其他实用服务程序的管理,提供多种支持服务。

(2)类型

批处理操作系统

对用户提交给计算机的作业采用成批处理的方式。后来的多道批处理操作系统,能支持一个以上的作业在计算机中同时运行,从而实现了快速主机和慢速外部设备的并行工作,进一步提高了CPU资源利用率。

分时操作系统

支持多个用户同时使用一台计算机。

实时操作系统

用于需要快速响应和即时处理的计算机系统中。对这类操作系统来说,即时反应的高速度和高可靠性往往比提高资源利用率更重要。

多处理器系统

多处理器(multiprocessor)是将两个或多个CPU连接在一起。管理这种并行处理任务的操作系统是多处理器操作系统。

3.其他系统管理程序

(1)数据库管理系统

这种软件包帮助企业开发、使用、维护组织的数据库。它既能将所有数据集成在数据库中,又允许不同的用户应用程序方便地存取相同的数据库。

(2)通信管理器

通信管理器一般安装在网络的后台(host)计算机端,或者作为通信网络前端处理机和网络服务器的计算机上。网络的终端上要安装有相应的接收软件。

(3)系统支持程序

这种程序执行各类系统的全部例行事务管理和文件转换任务。除了系统服务程序,执行监视器、安全监视器都属于系统支持程序。

4.常见操作系统简介

(1)Windows系统

Windows 7

Windows 7是微软公司于2009年10月正式发布的Windows操作系统版本,供个人电脑使用,包括家庭及商业工作环境、笔记本电脑、平板电脑、多媒体中心等。

Windows Phone

Windows Phone(Windows Phone 7)是微软公司于2010年2月发布的一款智能手机操作系统。

(2)UNIX系统

UNIX是1969年由贝尔实验室研究的一种互动式、多用户、多任务操作系统。该系统可连接多台计算机,并有支持通信与网络的良好性能。优点是只需做一些简单的调整就可以跨越各种机器平台。

(3)Linux系统

Linux系统是一个开放源码的操作系统,可以从Internet上免费下载,或低价购买。Linux是类似UNIX的操作系统,但设计可靠、精简,可以在不同的硬件平台上操作。

(4)Mac OS X系统

Mac OS X是苹果公司为麦金塔(Macintosh)电脑开发的专属操作系统软件Mac OS的最新版本。Mac OS X内核使用UNIX基础,设计简单直观。

三、程序设计语言

1.机器语言

程序设计人员只能用一连串的“0”和“1”构成的机器指令码来编写程序,这就是机器语言程序。机器语言具有如下特点:

(1)采用二进制代码。计算机指令的操作码(如+、-、×、/等)和操作数地址均用二进制代码表示。

(2)指令随机器而异,“面向机器”,不同的计算机有不同的指令系统。

(3)执行速度快是机器语言的唯一优点。

(4)缺点:易于出错;不够直观,很难读懂,人们不能直观地看出机器语言程序所要解决的问题;编程烦琐,工作量大。

2.汇编语言

汇编语言又称符号语言,其指令的操作码和操作数地址全都用符号表示,大大方便了记忆,但其仍然是一种面向机器的程序设计语言,机器语言所具有的那些缺点汇编语言也都有,只是程度上较轻而已。

3.高级语言

(1)优点

接近于自然语言

高级语言更接近于自然语言,一般采用英语表达语句,便于理解、记忆和掌握。

短小精悍

高级语言的语句与机器指令并不存在一一对应关系,一个高级语言语句通常对应多个机器指令,因而用高级语言编写的程序(称为高级语言源程序)短小精悍,不仅便于编写,而且易于查找错误和修改。

通用性强

高级语言基本上与具体计算机无关。程序员不必了解具体机器指令就能编制程序,而且所编的程序稍加修改或不用修改就能在不同的机器上运行。

(2)翻译方式

解释

解释方式使用的翻译软件是解释器(interpreter),它把高级语言源程序一句句地翻译为机器指令,每译完一句就执行一句,当源程序翻译完后,目标程序也执行完毕。

编译

编译方式使用的翻译软件是编译器(compiler)。它将高级语言源程序完整地翻译成机器指令的目标程序,使目标程序和源程序在功能上完全等价,然后执行目标程序,得出运算结果。

优缺点

解释方式的优点是灵活,占用的内存少,但占用更多的机器时间,并且执行过程离不开翻译程序。编译方式的优点是执行速度快,但占用内存多,并且不灵活,若源程序有错误,必须将错误全部修正后再重新编译和从头执行。要求程序员有较高的程序设计水平。

4.第四代语言与软件工具

第四代语言分为以下7类

(1)查询语言

查询语言是一种用于存取数据库或档案中资料的高级语言,操作时具有人机交互、联机处理的特色,也能处理非事先定义的资料查询要求。

(2)报表生成器

报表生成器是指能从数据库或档案中抽取资料,然后制作成用户所需要的个性化报表的工具。

(3)图形化语言

图形化语言能从档案或资料库中抽取资料,并按使用者的要求,将这些资料以任选形式,如直方图、圆饼图、折线图等展现在使用者面前。

(4)应用程序生成器

应用程序生成器的工作原理是根据一些标准的、公共的常用功能,预先进行编程,建立预程序化的模块组。

(5)非常高阶程式语言

非常高阶程式语言是一种利用少量指令集来产生程序码的程序语言。因为指令集小,程序语言简单,易于终端用户的直接使用,并在短时间内开发出程序或应用系统。

(6)套装软件

套装软件指的是一组事先写好的程序码,将在大、中、小型计算机及个人计算机上运行的主要商用软件整合在一起,在市场上交易。

(7)个人计算机工具

办公自动化软件

办公自动化软件,比如Microsoft Office是一种套装软件。

万维网浏览器

万维网浏览器是使用Internet或以Internet科技为基础的网络系统的主要界面。

群组软件

群组软件提供了支持工作团队协调活动的功能与服务,并以一个网络来连接分散在各地的每个群组成员的计算机。

5.互联网环境下的编程语言

(1)超文本标记语言和扩展标记语言

超文本标记语言(HTML)是一种网页设计语言,用于描述网页的超文本和超媒体(hypermedia)文件。

(2)Java及其开发平台

Java是一种跨平台的语言。同一个Java程序可在各种品牌、各种操作系统的计算机,甚至智慧型电话上执行。

四、软件开发方法和工具

1.面向对象程序设计

面向对象的程序设计方法是将数据与程序封装在一个对象内,作为一个独立的个体。

面向对象程序设计的基础依赖于类(class)和继承(inheritance)的概念。

2.UML

UML提出面向接口设计、图形化开发界面的新方法。

(1)内容

UML的重要内容可以由下列5类图(共9种图形)来定义:

用例图

从用户角度描述系统功能,并指出各功能的操作者。

静态图

包括类图、对象图和包图。

行为图

描述系统的动态模型和组成对象问的交互关系。

交互图

描述对象间的交互关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。

实现图

构件图描述代码部件的物理结构及各部件之间的依赖关系。

(2)应用领域

最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统。UML是一个通用的标准建模语言,可以对仟何具有静态结构和动态行为的系统进行建模。

3.MVC设计模式

MVC把一个应用的输入、处理、输出流程按照model、view、controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层和控制层。

(1)视图

视图代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。

(2)模型

模型就是业务流程/状态的处理以及业务规则的制定。

(3)控制

控制可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。