第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)控制
控制可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。