中山大学软件工程(移动信息工程)专业课导论课件第三节
软件工程导论概要.优秀精选PPT

。这时软件危机出
这个阶段要回答的关键问题是:“对上一阶段所确定的问题有行得通的解决办法吗?” 系统分析员需要进行一次大大压缩和简化了的
现,随之而来人们开始研究消除危机的途径,从而形成一 系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。
这个阶段的关键任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。
通常把在软件生命周期全过程中使用的一整套技术方法 的集合称为方法学(Methodology),也称为范型 (Paradigm)。
软件工程方法学的3要素:方法、工具和过程
一. 传统方法学
也称为生命周期方法学或结构化范型。从时间角度
1)对软件开发成本和进度的估计常常很不准确; 2)用户对完成的软件系统不满意的现象经常发生; 3)软件产品的质量往往靠不住; 4)软件常常是不可维护的; 5)软件通常没有适当的文档资料; 6)软件成本在计算机系统总成本中所占的比例逐年上升; 7)软件开发生产率提高的速度跟不上计算机应用的发展
趋势。
1)软件本身特点造成;
极限编程的整体开发过程:
如何开发门软件新,以的满足学对软科件日—益增—长的软需求件工程学。
软件危机:计算机软件的开发和维护过程中所遇 到的一系列严重问题。(正常、不正常运行软件都 具有这种问题)
软件危机的实质: 如何开发软件,以满足对软件日益增长的需求 如何维护数量不软件工程学:主要应用工程的方法和技术 研究软件开发与维护的方法、工具和管理的一 门交叉学科。
2)程序设计方法学:主要应用数学的方法研 究程序的性质以及程序设计的理论和方法的学 科。
1.2 软件工程
软件工程的介绍 1968年NATO会议:软件工程就是为了经济地获 得可靠的且能在实际机器上有效地运行的软件, 而建立和使用完善的工程原理。
中山大学软件工程(移动信息工程)专业课导论课件第一节

5
Early History of Computing
Abacus
An early device to record numeric values
Blaise Pascal
Mechanical device to add, subtract, divide & multiply
Joseph Jacquard
Vacuum Tubes
Large, not very reliable, generated a lot of heat
Magnetic Drum
Memory device that rotated under a read/write head
Card Readers Magnetic Tape Drives
1-15
11
Parallel Computing and Networking
Parallel Computing
Computers rely on interconnected central processing units that increase processing speed.
Networking
Use English-like statements and make programming easier. Fortran, COBOL, Lisp are examples. High-Level Languages Assembly Language Machine Language
1-18
1-14
10
Fourth Generation Hardware (1971-?)
Large-scale Integration
软件工程导论 第3章.ppt

结构化分析方法就是面向数据流自顶向下逐步求精 进行需求分析的方法。通过可行性研究已经得出了 目标系统的高层数据流图,需求分析的目标之一就 是把数据流和数据存储定义到元素级。为了达到这 个目标,通常从数据流图的输出端着手分析,这是 因为系统的基本功能是产生这些输出,输出数据决 定了系统必须具有的最基本的组成元素。
为了解决这些问题,往往需要向用户和其他有关人 员请教,他们的回答使分析员对目标系统的认识更 深入更具体了,系统中更多的数据元素被划分出来 了,更多的算法被搞清楚了。通常把分析过程中得 到的有关数据元素的信息记录在数据字典中,把对 算法的简明描述记录在IPO图(见3.7节)中。通过分析 而补充的数据流、数据存储和处理,应该添加到数 据流图的适当位置上。
一旦得出了意见一致的列表,就把与会者分成更小 的小组,每个小组的工作目标是为每张列表中的项 目制定小型规格说明。小型规格说明是对列表中包 含的单词或短语的准确说明。
7. 逆向需求
逆向需求说明软件系统不应该做什么。理论上有无 限多个逆向需求,我们应该仅选取能澄清真实需求 且可消除可能发生的误解的那些逆向需求。
8. 将来可能提出的要求
应该明确地列出那些虽然不属于当前系统开发范畴, 但是据分析将来很可能会提出来的要求。这样做的 目的是,在设计过程中对系统将来可能的扩充和修 改预做准备,以便一旦确实需要时能比较容易地进 行这种扩充和修改。
在展示了每个人针对某个议题的列表之后,大家共 同创建一张组合列表。在组合列表中消去了冗余项, 加入了在展示过程中产生的新想法,但是并不删除 任何实质性内容。在针对每个议题的组合列表都建 立起来之后,由协调人主持讨论这些列表。组合列 表将被缩短、加长或重新措辞,以便更准确地描述 将被开发的产品。讨论的目标是,针对每个议题(对 象、服务、约束和性能)都创建出一张意见一致的列 表。
软件工程导论(ppt 42页)

1.1 软件产品的概念与特征 1.2 软件危机 1.3 软件工程的产生及其发展
1.1 软件产品的概念与特征
1.1.1 软件产品的概念与分类
就本质而言,软件就是一个信息转换器,它的功能不外是 产生、管理、获取、修改、显示或转换信息。它担任着双重角 色,首先,它是一种产品,表达了由计算机硬件体现的计算潜 能;其次,它又是开发和运行产品的载体,是计算机控制(操作 系统)、信息通信(网络)的基础,也是创建和控制其他软件(软 件工具和开发环境)的基础。
(3) 软件产品不会“磨损”。和硬件产品类似,软件产品 也会出现故障。所不同的是,硬件产品的故障多来自外在条件 导致的“磨损”或“老化”,而软件产品如果发生故障,无一 例外的是在设计开发过程中留有隐患。因此,硬件的故障可以 通过简单的更换部件解决,而软件的故障必须通过全面的软件 维护活动才有望克服。同时,不完善的维护活动又可能在软件 中注入新的故障,导致软件质量的“退化”。也就是说,软件 故障的修复要比硬件故障的修复复杂得多。因此,衡量软件产 品质量的一个重要指标就是它的“可维护性”。图1.1是软、硬 件产品的失效率曲线。
(2) 软件的生产与硬件不同。软件是由开发或工程化而形成 的,不是由传统意义上的制造过程生产的。虽然软件开发和硬件 制造之间有一些相似之处,可是两者在本质上是不同的。这两者 都能够通过良好的设计获得高质量的产品,但即使有了良好的设 计和优秀的样品,硬件在批量制造过程中仍然可能引入质量问题, 这种情况对于软件而言几乎不存在。
1 M 1~10 M
1.1.2 软件产品的特征
在制造硬件时,人的创造性的劳动过程(分析、设计、建 造、测试)能够完全转换成物理的形式,但软件是逻辑的而不 是物理的产品,因此软件具有和硬件完全不同的特征:
软件工程导论课件(全)

Software Engineering
2020/10/11
微软凌小宁博士
在一些人眼里,今天的软件开发似乎已 成为简单的事情,已有了不少很好的开发工 具和软件库,软件开发人员训练有素,都强 烈渴望去编写很酷的软件,可以在几天的时 间里编写出一个相当复杂的软件。但为什么 有一些软件能够得到用户的喜欢,而另一些 则不能?为什么有些软件能够在市场上成功 ,而有些则受到冷落?由此可见,开发软件 并不一定难,难就难在如何开发有用的软件。
于1968年 NATO 组织在 德国召开的一次会议上提出
是把软件当作一种工业产品,要求 “采用工程化的 原理与方法对软件进行计划、开发和维护 ”。
2020/10/11
2、 软件工程学
软件工程学
软件开发技术
软件开发方法学 软件工具 软件工程环境
软件工程管理
软件工程管理学 软件经济学
---- 软件工程学的范畴
系应支 统用撑 软软软 件件件
2020/10/11
支撑软件
2020/10/11
2、按软件的规模进行划分
按开发软件所需的 人力、时间以及完成的 源代码行数。
2020/10/11
3、按软件开发划分
软软 件件 项产 目品 开开 发发
2020/10/11
1.2 软件工程的概念及范畴
1、“软件工程”----Software Engineering
2020/10/11
微软企业文化宗旨部分内容
Wake up every day with a feeling of passion for the different technology will make in people’s Life.
最新软件工程讲义-03

将分析模型转换为设计
据数
加工
对 象 描
述
图系关体数实据字典数据流图规格明说
状态转换图 控制 规 格说明
过程设计 接口设计 体系结构设计 数据设计
2
▪ 概要设计将软件需求转化为软件体系结构、确 定系统级接口、全局数据结构或数据库模式。
▪ 详细设计确立每个模块的实现算法和局部数据 结构,用适当方法表示算法和数据结构的细节。
11
事务流
▪ 工作原理 信息沿着输入通路到达一个事务中心,事务 中心根据输入信息(即事务)的类型在若干 个动作序列(称为活动流)中选择一个来执 行,这种信息流称为事务流。
▪ 特征 事务流有明显的事务中心,各活动流以事务 中心为起点呈辐射状流出。
12
变换分析
▪ 变换分析是从变换流型的DFD导出系统结构 图
20
SD方法的设计步骤
1) 复查并细化数据流图; 2) 确定DFD的信息流类型(变换流或事务流); 3) 根据流类型分别实施变换分析或事务分析; 4) 根据系统设计的原则对系统结构图进行优化。
21
系统结构图的基本符号
模块
调用
数据 控制信息 转接符号
选择(判断)
重复
系统结构图的基本符号
22
(a) 调用
▪ 变换流型DFD可映射成下图所示的系统结构图: ❖ 顶层模块:其功能就是整个系统的功能; ❖ 输入控制模块:接收所有的输入数据; ❖ 变换控制模块:实现输入到输出的变换; ❖ 输出控制模块:产生所有的输出数据。
顶层模块
输入控制 变换控制 输出控制
变换分析的第一级分解
15
3)第二级分解:设计中、下层模块
▪ 步骤 1) 确定输入流和输出流,孤立出变换中心; 2) 第一级分解:设计模块结构的顶层和第一 层; 3) 第二级分解:设计中、下层模块。
《软件工程导论》课件

定义
软件维护是指在软件运行过程中,为了改 正错误、满足新的需求或改进性能等目的 ,对软件进行的修改和调整。
预防性维护
为了提高软件的可维护性和可靠性而进行 的维护活动。
改正性维护
为了纠正软件中存在的错误而进行的维护 活动。
完善性维护
为了扩充和增强软件功能而进行的维护活 动。
适应性维护
为了使软件适应外部环境的变化而进行的 维护活动。
介绍如何评估软件架构的合理性 、可扩展性和可维护性,以及如 何根据业务需求和系统规模选择 合适的架构。
架构设计原则
强调架构设计时应遵循的几个重 要原则,如模块化、开放-封闭原 则、单一职责原则等。
数据设计
数据模型
介绍常见的数据模型,如关系模型、面向对象模型、键-值存储模型等,以及它们的应 用场景和优缺点。
02
03
界面设计原则
交互设计
强调界面设计时应遵循的几个重 要原则,如用户友好、一致性、 可用性等。
介绍常见的交互方式,如按钮、 菜单、对话框等,以及如何通过 良好的交互设计提高用户体验。
05
CHAPTER
软件测试
单元测试
总结词
单元测试是对软件中的最小可测试单元进行检查和验 证,通常以函数或方法为单位进行测试。
详细描述
单元测试主要关注软件中的细节问题,检查单个函数 或方法的正确性、性能和边界条件等。通过单元测试 ,可以尽早发现代码中的错误和缺陷,提高软件质量 。
集成测试
总结词
集成测试是在单元测试的基础上,将多个模块或组件 组合在一起进行测试,以验证它们之间的集成是否正 常工作。
详细描述
集成测试的主要目的是检查模块之间的接口和通信是否 正常,以及是否存在潜在的缺陷或问题。通过集成测试 ,可以确保软件在组合时能够正常工作,满足设计要求 。
软件工程导论全课件

可通过技术复审检查OOA和OOD的 模型的正确性和一致性。
2 面向对象测试策略 面向对象程序的特点对软件测试的影响:
•信息隐蔽对测试的影响 •封装和继承对测试的影响
•单元和集成测试策略必须有很大的改变 •测试用例的设计必须考虑OO软件的特
征
(1). OO的单元测试
单元概念的变化—封装的类或对象作为最小 的可测试单位
子类继承或重载的父类成员函数的测试问题
•对父类的测试是否能够照搬到子类?
上例中: Base∷Redefined() 和Derived ∷Redefined() 已 是两个不同的成员函数, 照理应对Derived ∷Redefined() 重新进行测试分析, 设计测试用例,但由于它们的相似性,只 需在Base∷Redefined() 的测试要求和测试用例上添加对 Derived ∷Redefined() 的新的测试要求和增补相应的测试
4.对每个消息,确定下一层被调用的操作,并把这些操作 结合进测试序列中.
ATM ATM User Interface verifyStatus depositStatus dispense Case printAccent Stat readCardInfo getCaseAmnt
cardInserted password deposit withdraw accentStatus terminate
在限制 下还是 存在操 作的许 多排列
系统对操作的限制: •必须在应用其它操作之前先打开帐户,在完成了 全部操作之后才能关闭帐户; •……
一个account类实例的最小行为历史包括下列操作: open . setup . deposit . withdraw . close account类的最小测试序列 大量的其它行为可能在下面序列中发生: open . setup . deposit . [deposit | withdraw | balance | summarize | creditLimit] n . withdraw . close
软件工程导论之第3章-需求分析(第五版)(张海藩编著)-b-百度文库PPT课件

55
单击此处编辑2.母需版求标专题题样式讨论会
• 单击此处编辑母版副标题样式
56
单击此处编辑母版3.标问题卷样调式查
• 问卷调查
• 单-击可此用于处确编认假辑设母和收版集副统计标倾题向样数据式
- 问卷需要快速回答,允许匿名方式
• 存在问题
- 相关的问题不能事先决定 -问题背后的假设对答案造成偏颇,如这符合你的期望吗? -- 难以探索一些新领域 - 难以继续用户的模糊响应
• 单需击要此系处统编做辑什么母。版副标题样式
• 用例建模的步骤
- 确定系统的参与者 确定场景 - 确定系统用例 - 确定用例之间的关系 编写用例描述文档
60
青岛科技大学信息学院
3.3 分析建模与规格说明
3.3.1分析建模
-需求分析的步骤
1、问题识别
双方确定对问题的综合需求。基于项目有 关的软件的功能、性能、环境、用户界面、可 靠性、安全性、保密性、可移植性、可维护性、 等方面的需求。
3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求 3.9 小结 习题
青岛科技大学信息学院
青岛科技大学信息学院
3.2 与用户沟通获取需求的方法
需求获取的关键在于通过与用户的沟通和交流,收集 和理解用户的各项要求。
3.2.(1) 访谈--访问用户和用户领域的专家 (2) 需求讨论会 (3) 问卷调查 (4) 现场考察
3.3.2 软件需求规格说明
青岛科技大学信息学院
3.3.2 软件需求规格说明
软件需求规格说明书,是需求分析阶段得 出的最主要的文档。
补充:需求分析阶段要编写文档:
1)编写“需求规格说明书” 2)编写初步用户手册 3)编写“确认测试计划”(为系统完成后确认验收的依 据). 4) 修改完善软件开发计划
软件工程导论PPT课件

软件(software)是计算机系统中与硬件 (hardware)相互依存的另一部分,
它包括程序(program)、 相关数据(data)及其 说明文档(document)。
软件特指大型复杂的程序
2021
5
软件的发展
早期 •面向批处理 •有限的分布 •自定义软件
第二阶段 •多用户 •实时 •数据库 •软件产品
是把软件当作一种工业产品,要求 “采用工程化的 原理与方法对软件进行计划、开发和维护 ”。
2021
21
围棋与软件工程的感想
围棋
围棋棋谱拿过来的时候, 大师问“后面应该走哪里?”
十个初级爱好者选择的落
点散布在棋盘各处…… 十个职业棋手说的落子点
都差不多,甚至包括后面的几 步……
这就是高手和低手的差
别……
2021
13
软件危机的原因
● 一方面是与软件本身的特点 有关
● 另一方面是由软件开发和维 护的方法不正确有关
2021
14
软件开发工作量分配比例
40% ~ 50%
10% ~ 20%
测试
程序
其它
2021
15
引入同一变化付出的代价随时间变化的趋势
2021
16
费用分配比例
55%~70%
软件维护 其它
2021
25
总之: 软件工程是应用计算机科学、 数学及管理科学等原理开发软 件的工程。它借鉴传统工程的 原则、方法,以提高质量,降 低成本为目的。
2021
26
软件工程是一门交叉学科
软件工程的主要研究内容
软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境
软件工程管理:软件管理学 软件经济学 软件心理学
软件工程课件 第三章

软件工程课件第三章在软件工程的领域中,第三章通常聚焦于软件设计的核心概念与方法。
软件设计是软件开发过程中的关键环节,它将需求分析阶段所确定的功能和性能要求转化为具体的软件架构和模块结构,为后续的编码和测试工作奠定坚实的基础。
软件设计的目标是创建一个高效、可靠、可维护且易于理解的软件系统。
这需要综合考虑诸多因素,如系统的功能需求、性能要求、安全性要求、用户体验等。
同时,还要考虑软件的可扩展性,以适应未来可能的变化和升级。
在软件设计中,架构设计是至关重要的一环。
架构设计就像是为一座大楼绘制蓝图,它决定了软件系统的整体结构和组织方式。
一个良好的软件架构应该具有清晰的层次结构,各个模块之间的职责明确,并且能够有效地支持系统的功能和性能需求。
例如,常见的分层架构将软件系统分为表示层、业务逻辑层和数据访问层。
表示层负责与用户进行交互,业务逻辑层处理核心的业务逻辑,数据访问层则负责与数据库进行交互。
这种分层架构使得各个层次之间的职责清晰,便于开发和维护。
模块设计也是软件设计的重要组成部分。
模块是软件系统中的基本单元,具有相对独立的功能。
在进行模块设计时,需要遵循高内聚、低耦合的原则。
高内聚意味着模块内部的各个元素紧密相关,共同完成一个特定的功能;低耦合则表示模块之间的依赖关系尽量少,使得一个模块的修改对其他模块的影响最小化。
例如,一个负责用户登录的模块,应该只专注于处理登录相关的功能,而不涉及其他诸如用户信息管理等功能。
接口设计在软件设计中也不容忽视。
接口是模块之间进行交互的桥梁,定义了模块之间的通信方式和数据格式。
良好的接口设计能够提高模块之间的协作效率,降低系统的复杂性。
例如,在设计一个数据存储接口时,需要明确规定数据的读写方法、参数类型和返回值类型等。
数据结构的选择也是软件设计中的一个关键决策。
不同的数据结构适用于不同的场景,选择合适的数据结构能够提高软件的性能和效率。
例如,对于频繁插入和删除操作的场景,链表可能是一个更好的选择;而对于快速查找操作,二叉搜索树或者哈希表可能更为合适。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Chapter 03Chapter Goals •Distinguish between analog and digital information.•Explain data compression and calculate compression ratios.•Explain the binary formats for negative and floating-point values.•Describe the characteristics of the ASCII and Unicode character sets.Chapter Goals•Perform various types of text compression.•Explain the nature of sound and its representation.•Explain how RGB values define a color.•Distinguish between raster and vector graphics.•Explain temporal and spatial video compression.Data and Computers •Computers are multimedia devices, dealing with a vast array of information categories. Computers store, present, and help us modify•Numbers•Text•Audio•Images and graphics•VideoData and Computers•Data compression Reduction in the amount of space needed to store a piece of data.•Compression ratio The size of the compressed data divided by the size of the original data.• A data compression techniques can be –lossless, which means the data can be retrievedwithout any loss of the original information,–lossy, which means some information may be lost in the process of compaction.Analog and Digital Information •Computers are puter memory and other hardware devices have only so much room to store and manipulate a certain amount of data. The goal, is to represent enough of the world to satisfy our computational needs and our senses of sight and sound.Analog and Digital Information •Information can be represented in one of two ways: analog or digital.Analog data A continuous representation, analogous to the actual information it represents.Digital data A discrete representation, breaking theinformation up into separate elements.A mercury thermometer is an analog device. The mercuryrises in a continuous flow in the tube in direct proportion tothe temperature.Analog and Digital InformationFigure 3.1A mercury thermometercontinually rises in directproportion to thetemperatureAnalog and Digital Information •Computers, cannot work well with analog information. So we digitize information by breaking it into pieces and representing those pieces separately.•Why do we use binary?Modern computers are designed to use and manage binary values because the devices that store and manage the data are far less expensive and far more reliable if they only have to represent on of two possible values.Electronic Signals•An analog signal continually fluctuates in voltage up and down. But a digital signal has only a high or low state, corresponding to the two binary digits. •All electronic signals (both analog and digital) degrade as they move down a line. That is, the voltage of the signal fluctuates due to environmental effects.Electronic Signals (Cont’d)•Periodically, a digital signal is reclocked to regain its original shape.Figure 3.2An analog and a digital signalFigure 3.3Degradation of analog and digital signalsBinary Representations •One bit can be either 0 or 1. Therefore, one bit can represent only two things. •To represent more than two things, we need multiple bits. Two bits can represent four things because there are four combinations of 0 and 1 that can be made from two bits: 00, 01, 10,11.Binary Representations•If we want to represent more than four things, we need more than two bits. Three bits can represent eight things because there are eight combinations of 0 and 1 that can be made from three bits.Binary RepresentationsFigure 3.4Bit combinationsBinary Representations•In general, n bits can represent 2n things because there are 2n combinations of 0 and 1 that can be made from n bits. Note that every time we increase the number of bits by 1, we double the number of things we can represent.Representing Negative Values •You have used the signed-magnitude representation of numbers since grade school. The sign represents the ordering, and the digits represent the magnitude of the number.Representing Negative Values •For example, if the maximum number of decimal digits we can represent is two, we can let 1 through 49 be the positive numbers 1 through 49 and let 50 through 99 represent the negative numbers -50 through -1.Representing Negative Values •To perform addition within this scheme, you just add the numbers together and discard any carry.Representing Negative Values •A-B=A+(-B). We can subtract one number from another by adding the negative of the second to the first.Representing Negative Values •Here is a formula that you can use to compute the negative representation•This representation of negative numbers is called the ten’s complement.Representing Negative ValuesTwo’s ComplementTo make it easier to look at long binarynumbers, we make the number linevertical.Representing Negative Values •Addition and subtraction areaccomplished the same way as in 10’s complement arithmetic-12710000001+ 100000001-12610000010•Notice that with this representation, the leftmost bit in a negative number isalways a 1.Number Overflow •Overflow occurs when the value that we compute cannot fit into the number of bits we have allocated for the result. For example, if each value is stored using eight bits, adding 127 to 3 overflows.1111111+ 000001110000010•Overflow is a classic example of the type of problems we encounter by mapping an infinite world onto a finite machine.Representing Real Numbers •Real numbers have a whole part and a fractional part. For example 104.32,0.999999, 357.0, and 3.14159.–the digits represent values according to theirposition, and–those position values are relative to the base. •The positions to the right of the decimal point are the tenths position (10-1or one tenth), the hundredths position (10-2or one hundredth), etc.Representing Real Numbers •In binary, the same rules apply but the base value is 2. Since we are not working in base 10, the decimal point is referred to as a radix point.•The positions to the right of the radix point in binary are the halves position (2-1or one half), the quarters position (2-2or one quarter), etc.Representing Real Numbers •A real value in base 10 can be defined by the following formula.•The representation is called floating point because the number of digits is fixed but the radix point floats.Representing Real Numbers•Likewise, a binary floating –point value is defined by the following formula:sign * mantissa * 2expRepresenting Real Numbers •Scientific notation A form of floating-point representation in which the decimal point is kept to the right of the leftmost digit.For example, 12001.32708 would be written as 1.200132708E+4 in scientific notation.Representing Text•To represent a text document in digital form, we need to be able to represent every possible character that may appear.•There are finite number of characters to represent, so the general approach is to list them all and assign each a binary string.Representing Text• A character set is a list of characters and the codes used to represent each one.•By agreeing to use a particular character set, computer manufacturers have made the processing of text data easier.The ASCII Character Set•ASCII stands for A merican S tandard C ode for I nformation I nterchange. The ASCII character set originally used seven bits to represent each character, allowing for 128 unique characters.•Later ASCII evolved so that all eight bits were used which allows for 256 characters.The ASCII Character SetThe ASCII Character Set•Note that the first 32 characters in the ASCII character chart do not have a simple character representation that you could print to the screen.The Unicode Character Set•The extended version of the ASCII character set is not enough for international use.•The Unicode character set uses 16 bits per character. Therefore, the Unicode character set can represent 216, or over 65 thousand, characters.The Unicode Character Set•Unicode was designed to be a superset of ASCII. That is, the first 256 characters in the Unicode character set correspond exactly to the extended ASCII character set.The Unicode Character SetText Compression•It is important that we find ways to store and transmit text efficiently, which means we must find ways to compress text.–keyword encoding–run-length encoding–Huffman encodingKeyword Encoding •Frequently used words are replaced with a single character. For example,Keyword Encoding•Given the following paragraph,The human body is composed of many independentsystems, such as the circulatory system, therespiratory system, and the reproductive system. Notonly must all systems work independently, they mustinteract and cooperate as well. Overall health is afunction of the well-being of separate systems, as well as how these separate systems work in concert.Keyword Encoding•The encoded paragraph isThe human body is composed of many independent systems, such ^ ~ circulatory system, ~ respiratorysystem, + ~ reproductive system. Not only & eachsystem work independently, they & interact +cooperate ^ %. Overall health is a function of ~ %-being of separate systems, ^ % ^ how # separatesystems work in concert.Keyword Encoding•There are a total of 349 characters in the original paragraph including spaces and punctuation. The encoded paragraph contains 314 characters, resulting in a savings of 35 characters. The compression ratio for this example is 314/349 or approximately 0.9.•The characters we use to encode cannot be part of the original text.Run-Length Encoding•A single character may be repeated over and over again in a long sequence. This type of repetition doesn’t generally take place in English text, but often occurs in large data streams.Run-Length Encoding•In run-length encoding, a sequence of repeated characters is replaced by a flag character, followed by the repeated character, followed by a single digit that indicates how many times the character is repeated.Run-Length Encoding •AAAAAAA would be encoded as *A7•*n5*x9ccc*h6 some other text *k8eee would be decoded into the following original textnnnnnxxxxxxxxxccchhhhhh some other text kkkkkkkkeee •The original text contains 51 characters, and the encoded string contains 35 characters, giving us acompression ratio in this example of 35/51 orapproximately 0.68.•Since we are using one character for the repetition count, it seems that we can’t encode repetition lengths greater than nine. Instead of interpreting the countcharacter as an ASCII digit, we could interpret it as abinary number.Huffman Encoding•Why should the character “X”, which is seldom used in text, take up the same number of bits as the blank, which is used very frequently? Huffman codes using variable-length bit strings to represent each character.Huffman Encoding•A few characters may be represented by five bits, and another few by six bits, and yet another few by seven bits, and so forth.Huffman Encoding•If we use only a few bits to represent characters that appear often and reserve longer bit strings for characters that don’t appear often, the overall size of the document being represented is smaller.Huffman Encoding •For exampleHuffman Encoding •DOORBELL would be encode in binary as 1011110110111101001100100.•If we used a fixed-size bit string to represent each character (say, 8 bits), then the binary from of the original string would be 64 bits. The Huffman encoding for that string is 25 bits long, giving a compression ratio of 25/64, or approximately 0.39.•An important characteristic of any Huffman encoding is that no bit string used to represent a character is the prefix of any other bit string used to represent a character.Representing Audio Information•We perceive sound when a series of air compressions vibrate a membrane in our ear, which sends signals to our brain.。