Transcript 第三章计算机软件系统
1
主要内容
4.1 软件的定义与分类
4.2 操作系统
4.3 程序设计语言
4.4 软件开发与软件工程
要求
1.了解和掌握软件的定义与分类
2.掌握计算机操作系统的概念、特征及类型
4. 了解和掌握计算机语言的分类及语言处理程序的概念
4.了解软件开发和软件工程的基本概念
4.1 软件的定义与分类
4.1.1 软件的定义
计算机系统 = 硬件系统 + 软件系统
硬件是指有形的物理设备,是计算机系统中实际物理装置
的总称。
软件是指在硬件上运行的程序和相关的数据及文档。
硬件是软件的工作基础,软件是硬件功能的扩充和完善。
两者相互依存,相互促进。软件与硬件的结合,构成完整的计
算机系统。
运算器
主机
中央处理器
内存储器
硬件
控制器
输入设备
外部设备
输出设备
外存储器
计算机系统
操作系统
系统软件
软件
程序设计语言处理程序
数据库管理系统
应用软件
服务程序
软件、硬件和用户的关系
用户
数据
应用软件
操作系统
信息处理任务
BIOS
Basic Input/Output System
应用软件
处理结果
系统软件
硬 件
•
硬件的能力非常有限,只是速度极高而已
•
没有软件,硬件几乎什么任务也完成不了
4.1.2 软件的分类
从用途对计算机软件分类
系统软件与应用软件
系统软件是用于对计算机进行资源管理、支持应用软件
开发和维护、便于用户使用计算机而配置的各种程序。
应用软件是计算机系统支持下的所有面对实际问题和具
体用户群的专门软件的总称。
按照应用软件的开发方式和适用范围,应用软件可再分
为两类:定制软件和通用应用软件
通用应用软件的类别与功能
类
别
数据处理软件
文字处理软件
表格处理软件
计算机辅助工
程应用软件
图形图像软件
媒体播放软件
网络通信软件
信息检索软件
游戏软件
功
能
流行软件举例
对数据进行收集、存储、
Matlab、Origin等
分析、检索等
文本编辑、文字处理、桌 Word、Adobe Acrobat、 WPS、
面排版等
FrontPage等
表格定义、数值计算和统
Excel等
计、绘图等
借助计算机进行工程设计、
AutoCAD等
制造、测试、集成等
图像处理、几何图形绘制、 Photoshop、CorelDraw、3DS
动画制作等
MAX等
播放各种数字音频和视频 Media Player、Real Player、
Winamp等
文件
电子邮件、聊天、IP电话 Outlook Express、MSN、QQ、
ICQ等
等
在数据库和因特网中查找 Google,天网,百度等
需要的信息
棋类游戏、扑克游戏等
游戏、教育和娱乐
从软件知识产权对软件进行分类
商品软件(付费、软件许可证)
共享软件(shareware)
具有版权,可免费试用一段时间,允许拷贝和散发(但不可修
改),过了试用期若还想继续使用,就得交一笔注册费,成为
注册用户。
自由软件
(freeware)(开放源代码软件)
用户可共享,并允许随意拷贝、修改其源代码,允许发行和自
由传播。但是,对软件源代码的任何修改都必须向所有用户公
开,还必须允许此后的用户享有进一步拷贝和修改的自由。
自由软件的重大意义
4.2 操作系统
4.2.1 操作系统的概念
操作系统是一组对计算机资源进行控制与管理的系统化程
序集合
操作系统负责对计算机的各类资源进行统一控制、管理、
调度和监督,合理的组织计算机的工作流程,其目的是提
高各类资源利用率,并能方便用户使用,为其他软件的开
发提供必要的服务和相应的接口
虚拟计算机
计算机硬件
操作系统的重要作用
两项主要作用:
1. 通过资源管理,提高计算机系统的效率
2. 改善人机界面,向用户提供友好的工作环境
其它辅助功能:
辅导用户操作(帮助功能)
显示系统状态
处理软硬件错误
保护系统安全
4.2.2 操作系统的特征与功能
操作系统的特征
并发性(concurrency):指在计算机系统中存在着许多并发
运行的活动。
共享性(sharing):系统中各个并发活动要共享计算机系统
中的各种软、硬件资源。
虚拟性(virtual):虚拟性是操作系统中的重要特征,所谓虚
拟性是指把物理上的一台设备变成逻辑上的多台设备,并
且使得每个用户都感觉是“独占”计算机。
不确定性(non-determinacy)
4.2.2 操作系统的特征与功能(续)
操作系统的功能
微处理器管理
存储管理(补充:虚拟存储器)
设备管理
文件管理
作业管理
分配系统
中的资源
管理存储
器空间
控制基本的输
入/输出操作
虚拟存储管理技术
虚拟存储管理技术已被广泛地应用于现代操作系统中,虚拟存储器就是由
主存、外存以及Cache组成的存储系统。它的主要功能是从逻辑上扩充内
存的容量。它可以对存储空间进行扩充,使应用程序的存储空间不受实际
存储容量大小的限制。
引入虚拟存储器的原因:引入虚拟存储器主要是为了解决内存空间不足的
问题。由于主存的容量小,以至于很多大型的软件无法调入主存运行,一
个较大的程序,先存放在外存储器上,当需要的时候把其一部分调入主存,
另外一部分还在外存储器上,操作系统根据一定的调度算法来将程序调入
调出,用外存来模拟主存,形成一个逻辑上很大的主存地址空间。在我们
看来,好像是主存的容量被扩充了。这样的存储器系统可以拥有主存的速
度和外存的容量,使得大型的软件也可以在较小容量的存储器中运行。
4.2.3 操作系统的类型
批处理操作系统
分时操作系统
实时操作系统
网络操作系统
分布式操作系统
微型计算机操作系统
嵌入式操作系统
4.2.4 常用操作系统介绍
MS-DOS
Windows操作系统
Windows
9X(Windows95/ Windows98/ Windows98 SE/ Windows ME)
Windows
NT4.0 5.0
Windows
2000(Professional/Server/Advanced server/Datacenter Server)
Windows
XP
Windows
Server 2003
Windows
VISTA
Windows
7
OS/2
Unix操作系统
Linux操作系统
4.2.4 常用操作系统介绍
1.Windows操作系统
2.UNIX操作系统
4.Linux操作系统
4.OS/2操作系统
4.3 程序设计语言
4.4.0 什么是程序设计语言?
什么是程序?
程序是为了用计算机解决某个问题而采用程序设计语言编写
的一个指令序列。
什么是程序设计语言?
语言的目的是用于通信
程序设计语言用于人与计算机之间的通信
程序设计语言是由人使用但计算机可以理解的一种语言
程序设计语言用于编制程序,表达需要计算机完成什么任务
和怎样完成任务,然后交给计算机去完成
程序设计语言填补了
人与计算机交流的鸿沟
程序设计语言
有问题需要计
算机解决的人
计算机硬件仅仅
知道0和1
交流的鸿沟
有问题需要计
算机解决的人
计算机硬件仅仅
知道0和1
4.4.1 程序设计语言的发展
程序设计语言(Computer Language)是指人与计算
机之间通讯的语言,又称为计算机语言。
计算机语言分为低级语言和高级语言两类
低级语言包括:机器语言、汇编语言。其中机器语言是
硬件唯一能直接理解的语言
高级语言是指更接近于人们日常使用的书面语言、用来
编制程序的语言
4.4.2 机器语言
机器语言
机器语言是用二进制代码表示的计算机能直接识别
和执行的一种机器指令的集合。
优点:直接执行,速度快
缺点:兼容性差,不直观,编写烦琐,难以记忆
不同的机器语言程序,相互不兼容
例如:计算机8+10的结果
① 将8放入某段内存单元
①
②
10110000 00001000
00000100 00001010
② 将10与这段内存单元中的8相加,结果仍放在这段
内存单元中
例:机器语言程序
在MIPS计算机上求最大共约数(GCD)的机器程
序(16进制表示)
MISP计算机的每条机器指令均为32个二进位,用8个16进制数表示
4.4.3 汇编语言
汇编语言:使用助记符代替指令代码,称为汇编语言。
例:计算8+10的结果
MOV AL 8;
优点:
ADD AL 10
缺点:
操作数直接使用十进制
大型程序难以开发
程序相对容易理解
依赖于具体计算机
初始数据
汇编程序执行流程
汇编语言
源程序
汇编
汇编程序
目标程序
执行
计算结果
4.4.4 高级语言
高级语言:与自然语言接近并能为计算机所接受的语意确定、
规则明确、自然直观和通用易学的计算机语言。
例如:
汇编语言程序
PI=4.1415926
MOV
MOV
ADD
MOV
SUB
Input r
s=PI*r*r
AX
BX
BX
AX
AX
383
545
AX
1055
BX
Print “Area=“;s
End
使用BASIC语言,
计算圆面积的程序
S=1055-(383+545)
常用的计算机高级语言
1.
BASIC语言
2.
PASCAL语言
3.
FORTRAN语言
4.
通用编程语言C/C++
5.
Java语言
6.
LISP语言和PROLOG语言
……
1.FORTRAN语言
4.Java语言
2.ALGOL语言
4.C语言和C++语言
4.4.5 语言处理程序
作用:把汇编语言源程序或高级语言源程序转变成计算机可
执行的机器语言。
按照不同的翻译处理方法,翻译程序有三类:
1.汇编程序(Assembler):将汇编语言翻译成机器语言。
2.解释程序(Interpreter)[口译]:解释程序能够把高级语言程
序逐句翻译成机器指令并执行。其算法简单但执行过程较慢,
通常用于交互方式工作,能节省机器存储空间。
4.编译程序(Compiler)[笔译]:将整段程序进行翻译,把高级
语言源程序翻译成等价的机器语言目标程序,然后连接运行。
目标程序运行速度快,但编译需用时且目标程序需占用一定
存储空间。
编译程序与解释程序的区别
解释:解释器直接解释并且执行源语言程序,不产
生目标程序(相当于“口译”)
编译:把源程序编译为机器语言目标程序后,再由
计算机运行(相当于“笔译”)
源程序
源程序
编译器
解释器
计算机
解释方式
BASIC、Visual
Basic、VBScript、
Java、JavaScript
等都是解释执行的
语言
C、C++等都是
需要编译的语言
目标程序
计算机
编译方式
4.4 软件开发与软件工程
4.4.0 计算机软件的发展
程序设计阶段(1946-1956)
汇编语言、机器语言、个体劳动
程序系统阶段(1956-1968)
高级语言、小集团合作
软件工程阶段(1968-至今)
工程化生产、使用数据库、开发环境:网络,分布
式、面向对象技术
4.4.1 软件危机与软件工程
软件危机
软件开发所需的高成本同产品的低质量之间有着尖
锐的矛盾,这就是所谓的“软件危机”。
软件危机的表现
①
对软件开发成本和估计不很准确
②
用户对“已完成的”软件系统不满意
③
软件产品质量靠不住
④
软件常常不可维护
⑤
软件通常没有适当的文档资料
⑥
软件成本在计算机系统总成本中所占比例逐年上升
⑦
软件开发生产率的提高,远远跟不上硬件发展速度
4.4.1 软件危机与软件工程
软件工程是指导计算机软件开发和维护的工程学科
1 产生背景:软件规模加大,成本提高
2 软件危机:开发和维护过程中遇到的系列严重问题,不仅仅
是“不能正常运行”的软件才具有,几乎所有的软件都不同程
度的存在问题
3 研究内容:如何应用科学理论和工程上的技术来指导大型软
件系统的开发
4 最终目的:以较低成本研制出较高质量的软件
5 常用软件工程方法:生命周期法、原型法
注1:1968年北大西洋公约组织提出“软件工程”的概念
注2:分技术措施及组织管理措施两个方面来解决软件危机
4.4.2 软件生命周期
软件从被提出开始研制至软件最终被废弃不再使用为
止的全过程,称为软件生命期。
软件工程的传统途径——“生命周期法”
1 “生命周期法”的起源:分解开发阶段
2 生命周期划分的原则:各阶段彼此相对独立
3 生命周期的划分:定义(15%)、开发(18%) 、维护
(67%)
4 瀑布模型
5 “生命周期法”的特点
瀑布模型
可行性研究
可行性研究报告
与计划
需求分析
需求说明书
设计
设计文档
编程
程序
测试
测试报告
运行与维护
4.4.3 软件开发工具与软件开发环境
用来辅助软件开发、运行、维护、管理、支持等过
程中的活动的软件称为软件工具。
软件开发环境(Software
Development Environment)
是支持软件产品开发的软件系统。