一计算机软件系统_第1页
一计算机软件系统_第2页
一计算机软件系统_第3页
一计算机软件系统_第4页
一计算机软件系统_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 计算机软件系统,3-2,一、什么是软件 软件:计算机系统中的程序及其文档。 程序:计算任务的处理对象和处理规则的描述。 文档:为了便于了解程序所需的阐明性资料。,3.1 计算机软件概述,程序必须装入机器内部才能工作 文档是给人看的,不一定装入机器,3-3,IEEE对软件的定义(1983): 软件是计算机程序、方法、规则、相关的文档资料以及在计算机上运行的程序时所必需的数据的集合。,3.1 计算机软件概述,程序:是计算机需要遵照执行的一系列指令,它作为一种具有逻辑结构的信息,精确而完整地描述计算任务中的处理对象和处理规则。 方法、规则:通常是在文档中说明并在程序中实现的。 文档:开发、使

2、用和维护程序所需要的图文资料。 数据:向一个程序提供的输入。,3-4,3.1 计算机软件概述,软件有三层含义: 个体含义:即指计算机系统中的程序及其文档; 整体含义:即指在特定计算机系统中所有上述个体含义下的软件的总体; 学科含义:即指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、原则、方法和技术所构成的学科。在这种含义下,软件宜称为软件学,但一般仍称作软件。,3-5,二、发展过程 软件的发展受到应用和硬件发展的推动和制约,其发展过程大致可分为三个阶段:,3.1 计算机软件概述,3-6,三、软件的分类 系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般通过系统软件发挥作用。如操

3、作系统、编译程序、网络软件系统、数据库系统、人机交互软件系统等。 支撑软件:支撑软件的开发与维护的软件工具和软件开发环境。如环境数据库、各种接口软件和工具组等。 应用软件:特定应用领域专用的软件。,3.1 计算机软件概述,3-7,四、软件与硬件的关系 硬件:构成计算机系统的物理装置。 软件:用计算机指令和算法语言编写的程序以及运行程序所需的文档、数据。 关系:硬件是软件运行的基础 软件是对硬件功能的扩充和完善 软件的运行最终被转换为对硬件的操作,3.1 计算机软件概述,计算机:硬件、软件人工生命 人:躯体、灵魂自然生命,3-8,3.2 操作系统,操作系统是所有从事计算机应用、开发和研究的人经常

4、使用的系统软件。 一、什么是操作系统 管理硬件资源、控制程序运行、改善人机界面、为应用软件提供支持的系统软件。 特征:并发性同时执行多个程序 共享性多个并发程序共同使用系统资源 随机性程序运行顺序、完成时间以及运行结果都是不确定的,3-9,二、操作系统的功能 1.主要作用 管理各种软硬件资源; 提供良好的用户界面。 2.基本功能 进程管理:对处理机进行管理。通过进程管理协调多道程序间的关系,解决对处理机实施分配调度策略、进行分配和回收等。 进程状态(就绪、运行、挂起/等待)。,3.2 操作系统,3-10,存储管理:管理内存资源。 主要包括内存分配、地址映射、内存保护和内存扩充。 设备管理:对硬

5、件设备进行管理。 主要包括缓冲区管理、设备分配、设备驱动和设备无关性。 用户接口:用户操作计算机的界面。,3.2 操作系统,命令接口通过交互命令方式,对计算机进行操作 程序接口通过API调用例行程序实现既定的操作,3-11,文件管理:对信息资源的管理,操作系统将这些资源以文件的形式存储在外存上。 文件:按一定格式建立在存储设备上的一批相关信息的有序集合。 文件名:每个文件必须起一个名字。 主文件名.扩展名/文件类型 目录:文件的存放通过目录形式来实现 一个目录可以有子目录 可以存放一组文件,3.2 操作系统,3-12,多级目录结构:,3.2 操作系统,盘符:子目录1子目录2子目录n文件名 C:

6、Program FilesMicrosoft OfficeOFFICE11 winword.exe,3-13,三、操作系统的分类 1.批处理操作系统 特点:用户脱机使用计算机,作业成批处理,多道程序运行,但无交互手段。 2.分时操作系统 特点:多路性,交互性,独占性。 3.实时操作系统 特点:及时性,高可靠性和完整性。,3.2 操作系统,3-14,4.嵌入式操作系统 特点:运行在嵌入式环境中。 5.个人计算机操作系统 特点:单用户,单任务(DOS) 多任务(Windows) 6.网络操作系统 特点:基于计算机网络(Netware,WindowsNT) 7.分布式操作系统 特点:统一性,共享性,

7、透明性,自治性,3.2 操作系统,3-15,四、常用的操作系统 操作系统是现代计算机必不可少的系统软件,它是计算机的灵魂所在。 1.操作系统的诞生-盘古开天地 最初的操作系统出现在IBM704大型机上 微型计算机的操作系统则诞生于20世纪70年代-CP/M。它能够进行文件管理,具有磁盘驱动装置,可控制磁盘的I/O,显示器的显示以及打印的输出。,3.2 操作系统,3-16,2.操作系统早期霸主-DOS 1981年IBM公司首次推出IBM PC,就采用了Microsoft公司开发的DOS操作系统。 DOS是在CP/M的基础上进行了较大扩充,增加了许多内部和外部命令,使该操作系统具有较强的功能及性能

8、优良的文件系统。 由于Microsoft软件有向下兼容的特点,因此决定了Windows出问题时,很多时候需要在DOS下才能得到解决。,3.2 操作系统,3-17,DOS的发展历史: DOS的组成:,3.2 操作系统,3-18,3.操作系统当代大亨-Windows 1981年,微软公司内部制定了发展界面管理者的计划。到1983年5月,微软公司决定把这一计划命名为Microsoft Windows。 1983年11月,Bill宣布推出Windows1.0版本,但不成功。直到1985年才正式发布。 1987年,微软公司推出Windows2.0。直到1990年,微软公司推出Windows3.0,才逐渐

9、取代DOS成为主流操作系统。,3.2 操作系统,3-19,Windows内核系列发布表,3.2 操作系统,3-20,Windows NT/2000/XP总体结构,3.2 操作系统,3-21,4.天皇巨星-UNIX UNIX是使用比较广泛、影响比较大的主流操作系统之一。UNIX结构简练、功能强,可移植性和兼容性都比较好,因而它被认为是开放系统的代表。 UNIX是1969年贝尔实验室开发的多用户操作系统,最早用于PDP-7和PDP-11小型机,并很快得到普及。迄今已成为跨越从微型机到巨型机范围的唯一操作系统。,3.2 操作系统,3-22,UNIX发展简图,3.2 操作系统,3-23,UNIX系统的

10、框架结构,3.2 操作系统,3-24,5.诱人的小企鹅-Linux 1991年,芬兰赫尔辛基大学的21岁学生Linus Torvolds在学习操作系统时,将自己开发的Linux系统源程序完整地上传到FTP服务器上,供大家下载测试。,3.2 操作系统,Operating Systems: Design and Implementation Andrew S. Tanenbaum al=9+8; ,3.4 程序设计基础,3-43,优点:符合人类习惯,简单易学 通用性强,便于维护 源程序:用高级语言编写的程序。 翻译程序:将源程序翻译成用二进制代码表示的目标程序。 翻译程序的工作方式: 解释方式:边

11、解释边执行 编译方式:写程序、编译程序 运行程序,3.4 程序设计基础,3-44,3.4 程序设计基础,3-45,2.程序设计语言的选择 选择编程语言涉及很多因素: 人的因素:编程小组精通这门语言吗 任务需要:选择的语言能否实现任务的全部功能?能跨平台吗?有数据库接口功能吗?能直接控制声卡等硬件吗? 客户指定,或要通过串行口控制一个外部设备,C+汇编语言是最明智的选择。,了解一些流行的语言,对于做出合理选择会有帮助。,3.4 程序设计基础,3-46,3.4 程序设计基础,3-47,3.4 程序设计基础,3-48,四、数据结构与算法 程序数据结构算法 1.数据结构 数据:对客观事物的符号表示,指

12、所有能输入到计算机中并被处理的符号的总和。 数据元素:由若干个数据项组成,而数据项是具有独立含义的数据最小单位。,3.4 程序设计基础,数据元素记录、结点 数据项字段、域,3-49,数据结构:研究数据及数据元素之间的关系的一门学科。 基本内容:数据的逻辑结构数据元素之间的逻辑关系(集合、线性、树形、网状结构) 数据的存储结构数据元素及其关系在计算机存储器中的存储方式(顺序、)。 数据的运算施加在该数据上的操作,3.4 程序设计基础,3-50,2.算法及其复杂性分析 求解一个给定的可计算问题,不同的人常常编写出不同的正确程序。 与计算方法相关的算法问题; 程序设计的技术问题。 例6给定两个整数,

13、求它们的最大公因数 算法A:计算函数gcd(x,y) A1:输入x、y,z为临时变量; A2:重复执行如下操作步骤:,3.4 程序设计基础,3-51,若y0,则输出|x|,算法停止; 若y0,则zx mod y,xy,yz。,#include main() int x,y,z; printf(Input x,y=); scanf(%d,%d, ,3.4 程序设计基础,3-52,问题计算方法算法程序 同一算法不同程序员程序差别大 例7用程序变换技术设计gcd(x,y)的程序,上述两例都反映辗转相除计算方法。,3.4 程序设计基础,3-53,问题不同计算方法、算法不同程序 怎样判断程序和算法的好坏

14、呢?这涉及到算法的存在性和算法的复杂性。 算法复杂性分析:对算法计算所需要的时间和空间的一种度量。 类型:时间复杂性、空间复杂性 算法复杂性的高低体现在运行该算法所需要的计算机资源上,所需资源越多,该算法的复杂性越高;反之,所需资源越少。,3.4 程序设计基础,3-54,例计算第n个素数。 所谓素数是指恰有1和本身两个自然数为其因数的大于1的整数。 除2为偶素数外,其余素数都是奇数。 算法A(简单算法): A1.从素数定义出发,对自然数从小到大一个一个去试。 A2.当n很大时,算法所需要的计算时间非常大。,3.4 程序设计基础,3-55,算法B(筛法,快速算法): B1.输入n,输出第一个素数

15、2; B2.M2,NM2; B3.从2开始,依次筛除M+1到N之间所有2的倍数,3的倍数,直到某个已求得的素数的平方大于N为止; B4.依小到大输出N+1到M之间剩下的数; B5.若已求得第n个素数,则输出第n个素数;否则,M当前最大素数,NM2,转B3,3.4 程序设计基础,3-56,例三个中国人算法。 国王:艾述(喜爱数学) 宰相:孔唤石(数学家) 公主:秋碧贞楠(邻国) 公主:求出48770428644836899的真因子 国王:2,3,4,30000多数据(一天) 公主:验证一下,223092871 宰相:将全国百姓按自然数顺序编号,百姓用自己的编号去除公主的数,谁除尽来领赏,3.4

16、程序设计基础,3-57,童话说明: 国王本人计算(串行算法,时间复杂性) 全国百姓计算(并行算法,空间复杂性) 假设一个问题有两种算法: 算法复杂性是n3(0.2s) 算法复杂性是3n(4*1028s,1千万亿年) (用每秒百万次的计算机,n=60) 如果一个问题没有多项式时间复杂性算法,则称为难解型问题(计算复杂性理论)。,3.4 程序设计基础,3-58,算法定义:一个算法就是一个有穷规则的集合,其中的规则确定了一个解决某一特定类型问题的运算序列。 算法的规则序列应满足五个重要条件: 有穷性:算法必须执行有穷步后结束 确定性:算法的每一步必须是确定的 输 入:算法有零个或多个输入 输 出:算

17、法有一个或多个输出 能行性:算法原则上能精确进行,3.4 程序设计基础,3-59,3.5 软件工程,一、软件危机与软件问题 1.软件危机 观点1:软件产品的生产总是超出预算,落后于进度表,而且产品质量不可靠。 观点2:在软件的开发和维护过程中所遇到的一系列严重问题。,软件的生产过程不像硬件那样规范,受人的因素和外界影响很大,因此在软件生产的各阶段都会引入不同程度的错误,致使成本上升,甚至导致软件失败。,3-60,2.软件危机的表现 软件开发和维护费用急剧上升 不重视文档资料 产品质量不可靠 软件产品成本高于硬件产品,3.5 软件工程,3-61,3.软件开发中的问题 软件生产技术进展缓慢 软件成

18、本和质量难以控制 对软件开发的错误认识 难以准确、全面把握用户需求 不重视阶段审查和复审 软件复杂且规模庞大 软件维护费用上升,3.5 软件工程,3-62,二、软件工程与开发准则 1.软件工程概念 软件工程:在软件开发与维护过程中采用工程的原理、方法、技术并使用正确的管理方法来指导软件生产的全过程。 主要内容:软件开发方法 软件过程 软件工具,3.5 软件工程,3-63,2.软件开发的基本准则 B.W.Boehm综合各方意见,于1983年提出了软件工程的基本准则。 严格阶段管理 坚持阶段评审 加强产品控制 采纳新技术 产品结果应能审查 开发人数要适当,3.5 软件工程,3-64,三、软件生命周期 软件生命周期是从时间的角度出发,从软件目标的提出、定义、开发、维护,直到最终被丢弃的整个过程。 计划时期开发时期运行时期 1.计划时期 问题定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论