第九章 软件开发与信息处理技术
? 软件工程基础
? 数据库设计基础
? 数据结构与算法
? 程序设计基础
? 多媒体技术简介
9.1 软件工程基础
软件的规模大小、复杂程度决定了软
件开发的难度,因此,必须采用科学的
软件开发方法,采用抽象、分解等科学
方法降低复杂度,以工程的方法管理和
控制软件开发的各个阶段,以保证大型
软件系统的开发具有 正确性、易维护
性、可读性和可重用性
9.1.1 软件工程基本概念
软件的发展大致分为四个阶段,( 如下图)
阶段
第一阶段 第二阶段 第三阶段 第四阶段
程序设计阶

程序系统阶

软件工程阶段
(结构化方法
发)
软件工程阶段
(面向对象方法)
典型技

面向批处理
有限的分布
自定义软件
多用户
实时
数据库
软件产品
分布式系统
嵌入“智能”
低成本硬件
消费者的影响
强大的桌面系统
面向对象技术
专家系统
人工神经网络
网络计算机
软件危机和软件工程
? 软件危机主要表现在,对软件开发成本和进
度的估计常常很不准确,经费预算经常突破,
完成时间一再拖延;开发的软件不能满足用
户要求,用户软件不满意的现象经常发生;
开发的软件可维护性差、可靠性差
? 软件工程,运用系统的、规范的和可定量的
方法开发、运行和维护软件。它包含三个要
素:
方法( Methodologies)
工具( Tools) 过程( Procedures)
软件工程过程和软件生命周期
? 软件工程过程
? 软件生命周期
? 软件生命周期模型
? 软件工程的目标和原则
? 软件开发工具与软件开发环境
下图为软件生命周期各阶段的任务:
时期 阶段 任务 文档
软件计划
问题定义 理解用户要求,划清工作范围 计划说明书
可行性研

可行性方案及代价
需求分析 软件系统的目标及应完成的工作 需求规格说明书
软件开发
概要设计 系统的逻辑设计 软件概要设计说明

详细设计 系统模块设计 软件详细设计说明

软件编码 编写程序代码 程序、数据、详细
注释
软件测试 单元测试、综合测试 测试后的软件、测
试大纲、测试方案
与结果
软件维护 软件维护 运行和维护 维护后的软件
图为软件生命周期的 瀑布模型 和 快速原形法模型
软件计划
需求分析
软件设计
软件编码
软件测试
软件维护
需求分析
快速设计
建立模型
用户评价模型
修改原型
生产产品
软件工程目标和原则
目标,在给定成本、进度的前提下,开发出具
有有效性、可靠性、可理解性、可维护性、
可重用性、可适应性、可移植性、可追踪性
并满足用户需求的产品
软件工程理论和技术性研究的内容:
软件开发技术和软件管理技术
原则,抽象、信息隐蔽、模块化、局部化、确
定性、一致性、完备性和可验证性
软件开发工具与开发环境
软件开发工具,是为支持软件人员开发
和维护活动而使用的软件。
作用,可以帮助开发人员完成一些繁琐的程
序编制和调试问题,是软件开发人员将更多
的精力和时间投放到最重要的软件需求和设
计上,提高软件开发的速度和质量。
9.1.2 结构化分析方法
? 结构化方法( Sructured
Methodology),是计算学科的一种典型
的系统开发方法,它采用了系统科学的思想
方法,从层次的角度,自顶向下的分析和设
计系统。
? 内容,结构化分析( Sructured Analysis)
结构化设计( Sructured Design)
结构化程序设计( Sructured
Program Design)
软件开发过程
? 问题定义
? 可行性研究
? 需求分析与需求分析方法
? 结构化分析方法概述
? 软件需求规格说明书
结构化分析方法使用的工具
A,数据流图( Data Flow Diagram) 从
数据传递和加工的角度,以图形方式刻画
数据流从输入到输出的移动变换过程
B,数据字典( Data Dictionary) 需对
数据流图中的各个元素作完整的定义和说
明,是数据流图的补充工具
C,加工逻辑描述工具 (常用:结构化自
然语言、判定树和判定表)
9.1.3 结构化设计方法
? 软件设计的基本概念,是一个把软件
需求转化为软件表示的过程,即把分析结果
加工为在程序细节上接近于源程序的软件表
示(软件描述)
? 软件设计阶段分为:
? 系统的总体设计或概要设计(确定软件系
统结构)
? 系统的详细设计(进行各模块的具体设计)
概要设计
? 概要设计 又称为总体设计,它的任务
是确定软件结构
? 结构化设计方法的基本思想,采用自顶
向下的模块化设计方法,按照模块化原
则和软件设计策略,将需求分析得到的
数据流图,映射成由相对独立、单一功
能的模块组成的软件结构
概要设计
? 概要设计的图形工具 (层次图,HIPO
图、软件结构图)
? 软件设计原理
? 软件结构设计原则
? 面向数据流的设计方法 (变换流分析
设计和事务流分析设计)
? 设计规格说明
软件结构设计原则
① 提高模块独立性
② 模块规模应该适中
③ 模块的深度、宽度、扇出和扇入适

④ 模块的作用域应该在控制域之内
⑤ 降低模块接口的复杂程度
⑥ 设计单入口和单出口模块
详细设计
? 任务,为软件结构图中的每一个模块
确定实现算法和局部数据结构,并用某
种工具描述出来
? 结构化程序设计
? 详细设计工具 (程序流程图、盒图 [N-S
图 ],PAD图)
? 详细设计规格说明
9.1.4 软件测试
一、软件测试的目的与任务
目的,确保软件的质量,尽量找出软件错误
并加以纠正,而不是证明软件没有错。
任务,测试任务 (通过采用一定的测试策略,
找出软件中的错误)
调试任务或纠错任务 (如果测试到错
误,则定位软件中的错误,加以纠正)
二、软件测试的准则
三、软件测试技术与方法综述
方法,静态测试法
动态测试法
技术,白盒测试用例设计
黑盒测试用例设计
9.1.4 软件测试
白盒测试用例设计
A,逻辑覆盖
以程序的内部逻辑结构为基础的测试用例
设计技术,它要求测试人员十分清楚程序
的逻辑结构,考虑的是测试用例对程序内
部逻辑覆盖的程度
根据覆盖的目标,可分为,语句覆盖、判
定覆盖、条件覆盖、判定 /条件覆盖、路
径覆盖
B, 基本路径测试
黑盒测试用例设计
分类:
等价类划分法
边界值分析法
错误推测法
因果图
四、软件测试的实施
? 单元测试
? 集成测试
? 确认测试
? 系统测试
五、软件测试计划与测试分析报告
测试 是软件生存周期中的一个独立的
关键的阶段
9.1.4 软件测试
9.1.5 程序的调试
程序调试可以分为:
静态调试 (主要通过人的思维来分析源程
序代码和排错,是主要的调试手段)
动态调试 (是静态调试的辅助)
主要的调试方法有,强行排错法
回溯法
原因排除法
9.2 数据库设计基础
? 数据库概念
? 数据模型
? 数据库设计与管理
9.2.1 数据库概念
? 数据( Data)
? 数据处理( Data Processing)
? 数据库( Database,DB)
? 数据库管理系统( Database Management
System,DBMS)
? 数据库管理员( Database Administrator,DBA)
? 数据库系统( Database System, DBS)
? 数据库应用系统( Database Application
System,DBAS)
数据库系统的发展
? 人工管理阶段
? 文件系统阶段
? 数据库系统阶段
(在关于数据库的诸多新技术中,比较重要
的三种是:
面向对象数据库系统、知识库系统,以及
关系数据库系统的扩充 )
数据库系统的基本功能
? 数据定义功能
? 数据操纵功能
? 数据库运行控制功能
? 数据库的建立和维护功能
数据库系统的基本特点
? 数据的结构化
? 数据的高共享性和低冗余性
? 数据的独立性
? 数据的统一管理与控制
数据库系统的内部结构体系
模式,是数据库中全体数据的逻辑结构和特征的描
述,它仅仅涉及到型的描述,不涉及到具体的值。
模式的一个具体值称为模式的一个实例,同一个
模式可以有多个实例。数据库管理系统采用 三级
模式结构,
概念模式
外模式(是概念模式的逻辑子集,也称子模式或
用户模式)
内模式(也称存储模式)
并提供 二级映像功能
9.2.2 数据模型
?数据模型( data model),是表示实
体类型及实体之间联系的模型
?数据模式的三个要素:
? 数据结构
? 数据操作
? 数据的完整性约束条件
数据模型的三个级别:
? 概念数据模型
? 逻辑数据模型
? 物理数据模型
7.2.2 数据模型
数据模型的分类
? E-R 模型(实体联系模型)
是直接从现实世界中抽象出实体类型
及实体间联系,然后用实体联系图( E-R图)
表示数据模型
? 层次模型 (若用图表示,它是一棵倒
立的树)
? 网状模型 ( 若用图表示 是一个网络)
? 关系模型 (数据的逻辑结构是一张二
维表)
9.2.3 数据库设计与管理
数据库及其应用系统的 设计步骤:
? 用户需求分析
? 概念设计
? 逻辑设计
? 物理设计
? 数据库实施
? 数据库的维护
数据库设计的需求分析
? 用户的信息要求
? 用户的处理要求
? 对数据的安全性、完整性的要求
数据库的概念设计
概念结构设计,只讲需求分析得到的用户需
求抽象为信息结构即概念模型的过程
概念结构 独立于数据库逻辑结构,也独立
于支持数据库的 DBMS。
它是现实世界与机器世界的中介,它一方
面能够充分反映现实世界,包括实体与实体之
间的联系,同时又易于向关系、网状、层次等
各种数据模式转换。
数据库的逻辑设计
逻辑结构设计的步骤:
? 将概念结构向一般关系模型转化
? 将第一步得到的结构向特定的 DBMS
支持下的数据模型转换
? 依据应用的需求和具体的 DBMS特征
进行调整与完善
数据库的物理设计
确定数据的存储安排
存取路径的选择和调整
确定系统配置
数据库管理
数据库的管理主要指:
数据库的实施和维护
分三个步骤:
数据的载入和应用程序的调试
数据库的试运行
数据库的运行和维护
数据库的维护
在数据库运行阶段,对数据库经常性的维
护工作主要是由 DBA完成的。包括:
数据库的存储和恢复
数据库的安全性、完整性控制
数据库性能的监督、分析和改进
数据库的重组织与重构造
9.3 数据结构与算法
? 算法
? 数据结构的基本概念及术语
? 线性表
? 栈
? 队列
? 树与二叉树
? 查找与排序
9.3.1 算法
? 定义,是对特定问题求解步骤的一种描
述。或者说,是为求解某问题而设计的
步骤序列
? 特征,有穷性
确定性
有效性
输入
输出
算法复杂度
评价一个算法优劣的主要标准是:
算法的执行效率与存储需求
算法的效率,指的是时间复杂度( Time
Complexity)
存储需求,指的是空间复杂度( Space
Complexity )
一般情况下,算法中的基本操作重复操作执行的
次数是问题规模 n的某个函数 f(n),算法的时间
复杂度记做 T(n)=O(f(n))
9.3.2 数据结构的基本概念及术语
?数据与数据结构
数据 是描述客观事物的数、字符以及所有能输入
到计算机中并被计算机程序加工处理的符号的集

数据元素 是数据的基本元素,即数据集合中的个

数据项 具有独立意义的最小数据单位
数据对象 具有相同特性的数据元素的集合,是数
据的子集
结构 被计算机加工的数据元素之间存在的关系
数据结构 带有结构特性的数据元素的集合
?数据的逻辑结构
? 集合
? 线性结构
? 树形结构
? 图状或网状结构
9.3.2 数据结构的基本概念及
术语
?数据的存储结构
一、顺序存储结构
主要特点:
? 结点中只有自身信息域,没有连接信息域,因
此存储密度大,存储空间利用率高
? 可以通过计算直接确定数据结构中第 i个结点
的存储地址 Li,计算公式,L0+( i-1) m。(其
中 L0为第一个结点的存储地址,m为每个结点
所占用的存储单元个数
? 插入、删除运算不便,会引起大量结点的移动
9.3.2 数据结构的基本概念
及术语
二、链式存储结构
主要特点:
? 结点中除自身信息之外,还有表示连接
信息的指针域,因此比顺序存储密度小,
存储空间利用率低
? 逻辑上相邻的结点物理上不必邻接,可
用于线性表、树、图等多种逻辑结构的
存储表示
? 插入、删除操作灵活方便,不必移动结
点,只要改变结点中的指针值即可
? 数据的运算
? 检索,在数据结构里查找满足一定条件
的结点
? 插入,往数据结构里增加新的结点
? 删除,把指定的结点从数据结构里去掉
? 更新,改变指定结点的一个或多个域的

? 排序,保持线性结构的结点序列里结点
数不变,把结点按某种指定的顺序重新排

9.3.2 数据结构的基本概念
及术语
9.3.3 线性表
线性表 是最常用的一种数据结构。线性表的
逻辑结构是 n个数据元素的有限序列
( a1,a2,…,an)
? 顺序表,指用顺序存储结构存储的线性表
? 链表,用链式存储结构存储的线性表
? 栈和队列 —— 是对线性表的插入、删除运算
可以发生的位置加以限制的两种特殊的线性

顺序表和一维数组
各种高级语言里的一维数组就是用顺序
方式存储的线性表,因此常用 一维数组
称呼顺序表
若顺序表中结点个数为 n,则:
插入 一个结点平均需要移动之结点个数
为 n/2,算法的时间复杂度是 O(n);
删除 一个结点平均需移动结点个数为
( n-1) /2,算法的时间复杂度是 O(n)
链 表
线性链表(单链表),删除算法的时间复
杂度为 O(n),其主要执行时间是搜索删除位置
循环链表,指链表的最后一个结点的指针值
指向第一个结点,整个链表形成一个环(如下
图)

结点 1 结点 2 结点 n
9.3.4 栈
栈,是一种特殊的线性表,是限定仅在表尾进
行插入和删除运算的线性表,表尾称为栈顶
( top),表头称为栈底( bottom)。
空栈,指表中无元素
? 栈中有元素 a1,a2,…,an,如 下页图 所示,称 a1为
栈底元素。新元素进栈要置于 an之上,删除或退栈
先对 an进行,即, 后进先出, ( LIFO) 的操作原则
? 栈的物理存储可以用
顺序存储结构或链式存储结构
? 栈的运算还有取栈顶元素,检查栈是否为空,
清除等。
栈的插入和删除
A
B
A
C
B
A
B
A
F
E
B
A ATOP
TOP
TOP
TOP
TOP
TOP
an

a2
a1
进栈 出栈
栈底
栈结构
(3)(1) (2) (5)(4) (6)
9.3.5 队列
队列,是限定所有的插入都在表的一端进
行,所有的删除都在表的另一端进行的线
性表。进行删除的一端叫 队列的头,进行
插入的一端叫 队列的尾,如 下页图 所示。
在队列中,新元素总是加入到队尾,
每次删除的总是对头元素,即当前“最老
的”元素,这就是, 先进先出, ( FIFO)
的操作原则
队列的物理存储可以用:
顺序存储结构,也可用链式存储结构
队列的示意(如下图)
出队列 a1 a2 a3 … an 入队列
头 尾
队列的插入和删除示例




A


B


A


C


D


B


E
F
R AF
R
R R
R
R R
F
F F F
F F
B
A
B B B
C C C C
D D D
溢出
7.3.6 树与二叉树
? 树形结构 是一类重要的非线性结构,
树和二叉树是最常见的树形结构
? 树( Tree),是一个或多个结点组成
的有限集合 T,有一个特定的结点称为
根( Root),其余的结点分为 m( m≥0 )
个不相交的集合 T1,T2,…, Tm,每个
集合又是一棵树,称作这个根的子树
( Subtree)
树形结构的常用术语
? 结点的度( Degree),一个结点的子树的个数
? 树的度,树中各结点的度的最大值
? 树叶( Leaf), 度为 0的结点
? 分支结点,度不为 0的结点
? 双亲( Parent)、子女( Child),结点的各子
树的根称作该结点的子女;相应的该结点称作其
子女的双亲
? 兄弟( Sibling),具有相同双亲的结点互为兄

? 结点的层数( Level)树的深度( Depth)
? 森林( Forest)
二 叉 树
? 二叉树( Binary Tree),是 n( n≥ 0)个结点
的有限集合,这个集合或者为空集( n=0),或
者由一个根结点及两棵不相交的、分别称作这个
根的坐姿树和右子树的二叉树组成
二叉树不是树的特殊情形,二者的 区别:
二叉树为有序树
? 性质,1、在二叉树的 i层上,最多有 2i-1个结点
( i≥ 1)
2,深度为 k的二叉树最多有 2k-1个结点
(k≥1)
完全二叉树
? 一棵深度为 k且具有 2k-1个结点的二叉
树称为 满二叉树( Full Binary
Tree )
? 深度为 k,有 n个结点的二叉树,当且仅
当其妹一个结点都与深度为 k的满二叉
树中编号从 1到 n的结点一一对应时,称
为 完全二叉树
树的二叉树表示
在树(森林)与二叉树间有一个自然的
一一对应的关系,每一棵树都能唯一的
转换到它所对应的二叉树
把树和森林转化成对应的二叉树:
凡是兄弟就用线连起来,然后去掉双亲
到子女的连线,只留下道第一个子女的
连线不去掉
二叉树的存储
二叉树的存储通常采用,链接方式 。每
个结点除存储结点自身的信息外再设置
两个指针域 IIink和 rlink,分别指向结
点的左子女和右子女,当结点的某个指
针为空时,则相应的指针值为空( NIL)。
结点的形式为:
IIink info rlink
二叉树的遍历
? 遍历一个树形结构是指,按一定次序系统
的访问该结构中的所有结点,使每个结点恰好被
访问一次
? 前序遍历法( NLR次序)
访问根,按前序遍历左子树,按前序遍历右子树
? 后序遍历法( LRN次序)
按后序遍历左子树,按后序遍历右子树,访问根
? 中序遍历法( LNR次序)
按中序遍历左子树,访问根,按中序遍历右子树
9.3.7 查找
? 查找,是数据结构中的基本运算
? 衡量一个查找运算法的主要标志是:
查找过程中对关节码进行的平均比
较次数,或称平均检索长度,以 n的函数
的形式表示,n是数据结构中的结点个数
顺序查找
顺序查找,是线性表的最简单的查找方法
方法,用待查关键码与线性表中各结点的关键
码值逐个比较,若找出相等的关键码值则查找
成功,若找遍所有结点都不相等,则查找失败
优点,对线性表的结点逻辑次序和存储结构无
要求
缺点,平均检索长度大
假设表中各结点被查找的概率相同,即 P=1/n,
则顺序查找成功的 平均查找长度为 (n+1)/2
二分法查找
? 二分法查找,是一种效率较高的线性表查找方法。
要进行二分法查找,线性表结点必须是按关键码值
排号顺序的,且线性表以顺序方式存储
? 方法,首先用要查找的关键码值与线性表中间位
置结点的关键码值相比较,这个中间结点把线性表
分成两个子表,比较相等则查找完成,不等则根据
比较结果确定下一步的查找应在哪个子表中进行,
如此下去,直到找到满足条件的结点
? 优点,平均检索长度小,为 ㏒ 2n。每经过一次关
键码比较,则将查找范围缩小一半,因此经过㏒ 2n
次比较就可完成查找过程
? 缺点,排序线性表花费时间,顺序方式存储插入、
删除不便
9.3.8 排序
排序,是数据处理中经常使用的一种运算
分类:
? 直接插入排序
? 选择排序
? 冒泡排序
? 快速排序
A,直接插入排序 的 基本方法,每步将一个
待排序记录按其关键码值的大小插入到
前面已排序的文件中适当位置上,直到
全部插入为止
B,选择排序 的 基本思想,每一趟在 n-
i+1(i=1,2,…,n-1)个记录中选取关键
码最小的记录作为有序序列中的第 i个记
录。它为最简单且为我们最熟悉的排序
C,冒泡排序 的 基本方法,将待排序的记录
顺次两两比较,若为逆序,则进行交换
D,快速排序,又称分区交换排序,是对冒
泡排序的一种改进。
? 快速排序 的基本方法, 在待排序序列中任取一个
记录,以它为基准用交换的发方法将所有记录分成两
部分,关键码比它小的在一个部分,关键码值比它大
的在另一个部分。再分别对两个部分实施上述过程,
一直重复到排序完成
? 下图为四种排序方法的比较:
排序方法 平均时间 最坏情况 辅助存储
直接插入排序
选择排序
冒泡排序
快速排序
O(n2)
O(n2)
O(n2)
O(n ㏒ 2n)
O(n2)
O(n2)
O(n2)
O(n2)
O(1)
O(1)
O(1)
O(㏒ 2n)
9.4 程序设计基础
? 程序设计语言发展
? 程序设计方法与风格
? 结构化程序设计
? 面向对象的程序设计
程序设计
指令,能被计算机直接识别与执行的指
示计算机进行某种操作的命令,CPU每执
行一条指令,就完成一个基本运算。
程序,指令的序列即让计算机解决某一
问题而写出的一系列指令
程序设计,编写程序的过程
程序设计语言,用于描述计算机所执
行的操作语言
9.4.1 程序设计语言发展
? 机器语言,采用计算机指令格式并以
二进制编码表达各种操作的语言
? 汇编语言,一种符号语言,采用助记
符来表达指令功能
? 高级语言,是一种面向问题的语言
? 第四代语言,是非过程化语言
9.4.2 程序设计方法与风格
良好程序设计风格的侧重:
? 源程序文档如使用的符号名应具有一定的含义,
以便对程序功能的理解;对源程序适当的进行注解,
以便读者理解程序;在程序中利用空格、空行、缩
进等技巧使程序层次清楚
? 对程序中的数据进行适当说明
? 程序中的语句结构应该简单直接,语句不复杂化
? 要对程序的所有输入数据检查其合法性,检查输
入项的各种重要组合的合理性,输入格式要简单,
输入允许默认值,输入一批数据后最好使用结束标
志,在交互式输入 /输出中使用屏幕提示信息格式
9.4.3 结构化程序设计
结构化程序设计的原则
? 自顶向下
? 逐步求精
? 模块化
? 限制使用 GOTO语句
结构化程序设计的基本结构与特点
顺序结构,按照程序语句行的自然顺序,
一条语句一条语句的往后执行程序
选择结构,又称分支结构,它根据设定
的条件,判断应该选择哪一条分支执行相
应的语句序列
循环结构,又称重复结构,它根据给定
的条件,判断是否需要重复执行某一相同
的或相似的程序段
7.4.3 结构化程序设计
结构化程序设计的优点
① 自顶向下逐步求精的方法符合人类解决复杂问题的普遍规律,
可以显著提高软件开发的成功率和生产率
② 先全局后局部、先整体后细节、先抽向后具体的逐步求精过
程开发出的程序有清晰的层次结构,使程序容易阅读和理解
③ 使用单入口单出口控制结构而不使用 GOTO语句,使得程序的
静态结构和它的动态执行情况一致
④ 控制结构有确定逻辑模式,编写程序代码只限于使用很少几
种直截了当的方式,使源程序清晰流畅,易读易懂而且容易
测试
⑤ 程序清晰和模块化使得在修改和重新设计一个软件时可以重
用的代码量最大
⑥ 程序的逻辑结构清晰,有利于程序正确性证明
9.4.4 面向对象的程序设计
面向对象方法的主要特点:
① 从问题域中客观存在的事物出发来构造软件系
统,用对象作为对这些事物的抽象表示,并以
此作为系统的基本构成单位
② 事物的静态特征用对象的属性表示,动态特征
用对象的服务表示
③ 对象的属性与服务结合为一个独立的实体,对
外屏蔽其内部细节,称作封装
④ 把具有相同属性和相同服务的对象归为一类,
类是这些对象的抽象描述,每个对象是它的类
的一个实例
面向对象方法的主要特点:
⑤ 通过在不同程度上运用抽象的原则,可以得到
较一般的类和较特殊的类
⑥ 复杂的对象可以用简单的对象作为其构成部分,
称为聚合
⑦ 对象之间通过消息进行通信,以实现对象之间
的动态联系
⑧ 通过关联表达对象之间的静态关系
9.4.4 面向对象的程序设计
面向对象方法的概念
面向对象:
面向对象 =对象 +类 +继承 +通信
如果一个软件系统是使用这样四个
概念设计和实现的,则认为这个软件系
统是面向对象的。面向对象的程序的每
一组成部分都是对象,计算是通过建立
新的对象和对象之间的通信来执行的
对 象
对象是构成世界的一个独立单位,它具有自己的
静态特征和动态特征。
静态特征,指可以用某种数据来描述的特征
动态特征,指对象所表现的行为或对象所具有的功

定义,对象是系统中用来描述客观事物的一个实体,
它是构成系统的一个基本单位。一个对象由一
组属性和对这组属性进行操作的一组方法构成。
属性,用来描述对象静态特征的一个数据项
方法,用来描述对象动态特征的一个操作序列
消息和方法
? 一个系统由若干个对象组成,各个对象之
间相互联系、相互作用。
? 计算机系统中,消息就是对象之间的纽带,
是用来通知、命令或请求对象执行某个处
理或回答某些信息。
? 消息可以是 数据流,也可以是 控制流 。
? 一条消息可以发送给不同的对象,而消息
的解释则完全由接收对象完成。不同的对
象对相同形式的消息可以有不同的解释
类和实例
类和对象之间的关系 如同一个模具与
用这个模具铸造出来的铸件之间的关系。
类给出了属于该类的全部对象的抽象定义,
而对象则是符合这种定义的一个实体。
一个对象又称为类的一个实例( Instance)
类也可称作对象的模板( Template)
继 承 性
? 定义,特殊类的对象拥有其一般类的全
部属性与方法,称作特殊类对一般类的
继承
? 继承关系是传递的
? 继承性对于软件重用有很大益处
封 装 性
封装具有两个涵义:
一、是把对象的全部属性和全部方法结合
在一起,形成一个不可分割的独立单位
(即对象)
二、也称作“信息隐蔽”,即尽可能隐蔽
对象的内部细节,对外形成一个边界,
只保留有限的对外接口使之与外部发生
联系
多 态 性
对象的多态性:
指在一般类中定义的属性或方法被特殊
类继承之后,可以具有不同的数据类型
表现出不同的行为。这使得同一个属性
或方法名在一般类及其各个特殊类中具
有不同的语义
9.5 多媒体技术简介
? 多媒体技术的基本概念
? 多媒体计算机系统
? 多媒体计算机软件系统
? 多媒体信息的数字化和压缩技术
9.5.1 多媒体技术的基本概念
定义:指信息表示媒体的多样化。
多媒体的类型 感觉媒体
表示媒体
显示媒体
传输媒体
存储媒体
多媒体技术就是利用计算机把文本、声音、
视频、动画、图形和图像等多种媒体进行
综合处理,使多种信息建立逻辑连接,集
成为一个具有交互性的系统
多媒体技术的特征
? 信息载体的多样性
? 交互性
? 集成性
? 实时性
多媒体信息中的媒体元素的类型
? 文本( Text)
? 图形( Graphic)
? 图像( Image)
? 音频
? 动画
? 视频
多媒体信息处理的关键技术
? 视频和音频数据压缩和解压缩技术
关于压缩编码的国际标准有:
JPEG标准
电视电话 /会议电视 P*64Kbit/s (CCITT
H.261)标准
MPEG-1标准
? 多媒体硬件系统的专用芯片
? 大容量的外部存储器
? 多媒体同步技术
多媒体技术的应用领域
? 教育与培训
? 桌面出版
? 多媒体电子出版物
? 多媒体通信
? 多媒体声光艺术品的创作
9.5.2 多媒体计算机系统
多媒体计算机系统的组成(如下图)








软件系统
硬件系统
多媒体应用软件
媒体处理系统工具软件
多媒体数据处理软件
多媒体操作系统
多媒体驱动软件
多媒体输入 /输出控制卡及接口
多媒体计算机硬件
多媒体外围设备
多媒体计算机硬件系统
? 主机,常规的主板,CPU及 VGA适配卡、多功能
卡等
? 多媒体适配卡,音频卡、视频卡、图形卡和压
缩卡等
? 外部存储设备,软盘驱动器、硬盘驱动器和
CD-ROM驱动器
? 输入设备
? 输出设备
9.5.3多媒体计算机软件系统
多媒体应用程序
多媒体处理系统工具
多媒体操作系统
(媒体控制接口)
音频 /视频核心处理
音频 /视频设备驱动程序
音频 /视频设备


















第五层
第四层
第三层
第二层
第一层
9.5.4 多媒体信息的数字化和压
缩技术
音频信息
?声音的特征
?模拟音频和数字音频
衡量一个数字声音波形的质量有:采样频率、采
样精度、声道数三个要素
?数字音频文件的存储格式
?数字音频文件的存储量
存储量 =采样频率 × 量化位数 /8× 声道数 × 时间
图像信息
图像信息的性能指标
? 分辨率
? 图像深度和显示深度
? 图像文件的大小
图像文件的存储格式
① BMP格式 PCX格式
② GIF格式 TIF格式
③ JPG和 PIC格式 PCD格式
④ CDR格式 PSD格式
⑤ IFF格式 DIF格式
视频信息
? 视频的彩色空间表示
RGB彩色空间
YUV和 YIQ彩色空间
? 模拟视频标准 ( NTSC制式 PAL制式
SECAM制式)
? 数字视频
? 视频序列的时间码
? 数字视频标准与文件格式
数字视频标准与文件格式
? MPEG标准
MPEG-1( 1992年正式发布)
MPEG-2( 1994年制定)
MPEG-4( 1999年正式发布)
? AVI格式
? PM格式
? Quick Time格式
数据压缩技术
? 无损压缩
行程编码( RLE)
Huffman编码
算术编码
LZW编码
? 有损压缩
三种数据压缩国际标准,JPEG-静止图像压缩标
准,MPEG-运动图像压缩编码标准,H.261-视频
通信编码标准