《02243计算机软件基础(一).ppt》由会员分享,可在线阅读,更多相关《02243计算机软件基础(一).ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机软件技术基础计算机软件技术基础计算机软件技术基础计算机软件技术基础第一章第一章 概概 述述第一章第一章第一章第一章 概概概概 述述述述1.1 1.1 计算机系统计算机系统1.2 1.2 软件技术概述软件技术概述1.3 1.3 程序设计语言程序设计语言1.4 1.4 数据结构与算法数据结构与算法1.5 1.5 操作系统操作系统1.6 1.6 数据库技术数据库技术1.7 1.7 软件工程软件工程1.8 1.8 软件开发方法软件开发方法21.1 1.1 1.1 1.1 计算机系统计算机系统计算机系统计算机系统什么是计算机?什么是计算机?计算机计算机是接收、处理和提供数据的装置,是接收、处理和提
2、供数据的装置,它由它由硬件硬件和和软件软件两大部分组成。两大部分组成。计算机就是我们平时常用的计算机就是我们平时常用的PCPC机吗?机吗?PCPC机只是计算机的一种,计算机家族中还机只是计算机的一种,计算机家族中还有很多其他的成员。有很多其他的成员。3无所不在的嵌入式家族无所不在的嵌入式家族无所不在的嵌入式家族无所不在的嵌入式家族4养在深闺的巨型计算机养在深闺的巨型计算机养在深闺的巨型计算机养在深闺的巨型计算机t世界上最快的计算机世界上最快的计算机IBMIBM的的Blue Gene/L Blue Gene/L,拥有超过拥有超过100100万个处理万个处理器,每个处理器每秒器,每个处理器每秒可运
3、算可运算1010亿次。运算亿次。运算能力相当于击败国际能力相当于击败国际象棋世界级棋手的超象棋世界级棋手的超级电脑级电脑“深蓝深蓝”的的10001000倍。占地达两个倍。占地达两个篮球场之大,重达篮球场之大,重达106106吨。吨。51 1 1 1、计算机硬件及发展、计算机硬件及发展、计算机硬件及发展、计算机硬件及发展t什么是硬件?什么是硬件?硬件是硬件是组成计算机系统的所有电子的、机组成计算机系统的所有电子的、机械的、磁性的、光学的装置和部件。械的、磁性的、光学的装置和部件。t配置一台计算机需要购买哪些东西?配置一台计算机需要购买哪些东西?t存储程序式计算机的工作原理存储程序式计算机的工作原
4、理t5 5大部件:大部件:(运算器控制器运算器控制器运算器控制器运算器控制器)存储器输入设备输出设备存储器输入设备输出设备存储器输入设备输出设备存储器输入设备输出设备6硬件的发展硬件的发展硬件的发展硬件的发展t发展历史发展历史t电子管电子管晶体管晶体管集成电路集成电路t发展规律及特点发展规律及特点t速度慢速度慢速度快速度快t体积大容量小体积大容量小体积小容量大体积小容量大t外设少、简单外设少、简单外设繁多、复杂外设繁多、复杂t外设速度发展慢于外设速度发展慢于CPUCPU速度的发展速度的发展t摩尔定律(假设价格保持不变,处理器芯片上摩尔定律(假设价格保持不变,处理器芯片上的晶体管数每的晶体管数每
5、1818个月翻一番)个月翻一番)7世界上第一台电子计算机世界上第一台电子计算机世界上第一台电子计算机世界上第一台电子计算机ENIACENIAC诞生于诞生于19421942年年1880018800个晶体管个晶体管7000070000个电阻器个电阻器1800018000个电容器个电容器重量重量3030吨吨耗电耗电140140千瓦千瓦/h/h50005000次加法次加法/s/s8Pentium IVPentium IV(20002000)42,000,00042,000,000个晶体管个晶体管时钟频率时钟频率1.5GHz1.5GHz运算速度为运算速度为1700 MIPS1700 MIPS(MIPS
6、MIPS 代表代表百万指令百万指令集每秒集每秒 )92 2 2 2、计算机软件、计算机软件、计算机软件、计算机软件t软件程序,开发软件写程序?软件程序,开发软件写程序?t错误!错误!t程序只是软件的一个组成部分t写程序只是软件开发的过程中的一个步骤软件是程序、数据以及有关文档资料的集合。软件是程序、数据以及有关文档资料的集合。软件是程序、数据以及有关文档资料的集合。软件是程序、数据以及有关文档资料的集合。t(可运行的)思想和内容的数字化(可运行的)思想和内容的数字化t思想:算法、规律、办法(程序)思想:算法、规律、办法(程序)t内容:图形、图像、数据、声音、文字等(数内容:图形、图像、数据、声
7、音、文字等(数据)据)10软件的分类软件的分类软件的分类软件的分类t所有的硬件都是相似的,软件则各有各的不同。所有的硬件都是相似的,软件则各有各的不同。t但是软件的开发过程存在很多规律和共性,找到但是软件的开发过程存在很多规律和共性,找到并利用这些规律来帮助和指导软件的开发,这正并利用这些规律来帮助和指导软件的开发,这正是各类软件技术研究的内容。是各类软件技术研究的内容。操作系统操作系统 、语言、语言编译器、数据库管编译器、数据库管理系统理系统财务软件、文字处财务软件、文字处理软件理软件、用户自己用户自己开发的系统等开发的系统等硬硬 件件系统软件系统软件应用软件应用软件用用 户户113 3 3
8、 3、硬件与软件的关系、硬件与软件的关系、硬件与软件的关系、硬件与软件的关系t软硬件独立原理和互动原理软硬件独立原理和互动原理t独立原理:软件理论上能实现的功能本质上与独立原理:软件理论上能实现的功能本质上与硬件是独立的(不管硬件是何种形式)硬件是独立的(不管硬件是何种形式)t互动原理:软件实际能实现的功能受制于硬件,互动原理:软件实际能实现的功能受制于硬件,硬件发展一个台阶,软件就能前进一大步硬件发展一个台阶,软件就能前进一大步t软硬件等效定律软硬件等效定律t简单的硬件简单的硬件+复杂的软件复杂的软件t简单的软件简单的软件+复杂的硬件复杂的硬件t最终都可以完成同一个任务,不同的只是时间!最终
9、都可以完成同一个任务,不同的只是时间!123 3 3 3、硬件与软件的关系、硬件与软件的关系、硬件与软件的关系、硬件与软件的关系t硬件是计算机系统的物质基础;软件是提高计算硬件是计算机系统的物质基础;软件是提高计算机系统效率和方便用户使用计算机的程序;它们机系统效率和方便用户使用计算机的程序;它们二者相互依赖、相互促进、共同发展。二者相互依赖、相互促进、共同发展。t好的软件能充分发挥硬件的性能,提升计算机的好的软件能充分发挥硬件的性能,提升计算机的价值。价值。t没有软件的硬件是僵尸,没有硬件的软件是幽灵。没有软件的硬件是僵尸,没有硬件的软件是幽灵。各类软件技术的最终目的就是设计出好的软件,以便
10、最大限度地合理利用和发挥硬件的能力,使计算机系统更好地为用户服务。131.2 1.2 1.2 1.2 软件技术概述软件技术概述软件技术概述软件技术概述 软件本质上是一种思想,利用计算机来解决某个问软件本质上是一种思想,利用计算机来解决某个问题的思想!软件的实现就是将这个思想数字化的过程!题的思想!软件的实现就是将这个思想数字化的过程!在这个过程中要用到各种各样的软件技术,有的是在这个过程中要用到各种各样的软件技术,有的是在这个过程中要用到各种各样的软件技术,有的是在这个过程中要用到各种各样的软件技术,有的是抽象的指导理论,有的是具体的实现工具。抽象的指导理论,有的是具体的实现工具。抽象的指导理
11、论,有的是具体的实现工具。抽象的指导理论,有的是具体的实现工具。计算机解题过程:计算机解题过程:1.理解问题,建立数学模型理解问题,建立数学模型2.设计解题方案设计解题方案3.程序编码和调试程序编码和调试4.程序测试和维护程序测试和维护14软件技术分类软件技术分类软件技术分类软件技术分类 程序设计语言程序设计语言 编译技术编译技术 软件及实现技术软件及实现技术 操作系统及实用程序操作系统及实用程序 计算机计算机 数据库技术数据库技术 软件技术软件技术 软件工具软件工具 软件工程软件工程 软件开发方法与技术软件开发方法与技术 程序设计方法程序设计方法 数据结构和算法数据结构和算法151.3 1.
12、3 1.3 1.3 程序与程序与程序与程序与程序设计语言程序设计语言程序设计语言程序设计语言程程程程序序序序:是使计算机完成某种任务的一个有序的命令(指令语句)和数据的集合。程序设计语言发展的三个阶段:程序设计语言发展的三个阶段:机器语言机器语言机器语言机器语言汇编语言汇编语言汇编语言汇编语言高级语言高级语言高级语言高级语言写程序就像写文章,要解决两个问题:写程序就像写文章,要解决两个问题:写程序就像写文章,要解决两个问题:写程序就像写文章,要解决两个问题:1.1.1.1.明确自己要表达的是什么明确自己要表达的是什么明确自己要表达的是什么明确自己要表达的是什么2.2.2.2.用一种语言把它表达
13、出来用一种语言把它表达出来用一种语言把它表达出来用一种语言把它表达出来程序设计语言程序设计语言程序设计语言程序设计语言是编写计算机程序所用的语言。是编写计算机程序所用的语言。是编写计算机程序所用的语言。是编写计算机程序所用的语言。161.3 1.3 1.3 1.3 程序设计语言程序设计语言程序设计语言程序设计语言t t机机器器语语言言 是是机机器器指指令令的的集集合合,其其代代码码由由0 0、1 1组组成成的的二二进进制制串串表表示示,不不需需翻翻译译可可直直接接为为机器所接受。机器所接受。t t汇汇编编语语言言 为为符符号号化化的的机机器器语语言言。它它用用助助记记符和标识符代替机器指令的操
14、作码和地址码。符和标识符代替机器指令的操作码和地址码。t t高高级级语语言言 是是一一种种与与具具体体的的计计算算机机指指令令系系统统无无关关,独独立立于于计计算算机机类类型型,而而且且表表达达方方式式接接近近于于自自然然语语言言或或数数学学语语言言,容容易易被被人人们们掌掌握握和书写的语言。如和书写的语言。如C C,PascalPascal,javajava。17举例举例举例举例任务:任务:x x1x1xt机器语言机器语言00111110 00001001 00111111B 00111110 00001001 00111111B 或或 3E 09 3FH3E 09 3FHt汇编语言汇编语言
15、MOV AX,X/INC AX/MOV X,AXMOV AX,X/INC AX/MOV X,AXtC C语言语言tx=x+1x=x+1或或tx+x+或或t+x+x18高级语言的优点高级语言的优点高级语言的优点高级语言的优点t比机器或汇编语言更易于学习比机器或汇编语言更易于学习t程序更易于调试程序更易于调试(程序更为短小;记号本身程序更为短小;记号本身更自然,因此更多注意力可放在程序逻辑而更自然,因此更多注意力可放在程序逻辑而非语法细节上)非语法细节上)t程序更易于理解程序更易于理解t较好的平台无关性较好的平台无关性t上述原因导致解决问题的时间和代价减少上述原因导致解决问题的时间和代价减少19语
16、言翻译语言翻译语言翻译语言翻译t翻译程序翻译程序 是把甲种语言程序翻译为等价的乙种语言程序的程序。其中,甲种语言称为源语言。乙种语言称为目标语言。t汇编程序汇编程序 若源语言是汇编语言,目标语言是机器语言,则该翻译程序被称为汇编程序。t编译程序编译程序 若源语言是高级语言,目标语言是汇编语言或机器语言,则该翻译程序被称为。t解释程序解释程序 是翻译程序的另一种形式,它对源程序的语句边解释边执行,不产生目标程序。201.4 1.4 1.4 1.4 数据结构和算法数据结构和算法数据结构和算法数据结构和算法t程程序序中中往往往往要要处处理理大大量量的的数数据据,这这些些数数据据采采用用什什么么样样的
17、的方方式式来来组组织织、存存放放才才能能最最大大限限度度地方便应用处理,提高程序效率呢?地方便应用处理,提高程序效率呢?t数数据据结结构构研研究究数数据据的的组组织织形形式式,包包括括数数据据的的逻逻辑辑结结构构,物物理理结结构构以以及及在在该该数数据据结结构构上上所所施加的运算。施加的运算。t一类数据结构指的是一类数学模型。一类数据结构指的是一类数学模型。t数据结构是软件技术基础的基础。数据结构是软件技术基础的基础。211.4 1.4 1.4 1.4 数据结构和算法数据结构和算法数据结构和算法数据结构和算法t算法是对解题方法的精确描述。描述的方式算法是对解题方法的精确描述。描述的方式可以是各
18、种各样的。如自然语言,流程图,可以是各种各样的。如自然语言,流程图,伪代码等。伪代码等。t算法必须具有有穷性,确定性,能行性,输算法必须具有有穷性,确定性,能行性,输入和输出。入和输出。t一个问题可以有多种解题方法,那么就有多一个问题可以有多种解题方法,那么就有多个对应的算法。算法的优劣由算法的时间复个对应的算法。算法的优劣由算法的时间复杂度和空间复杂度来衡量。杂度和空间复杂度来衡量。221.5 1.5 1.5 1.5 操作系统操作系统操作系统操作系统t没有安装任何软件的计算机称为裸机。没有安装任何软件的计算机称为裸机。t操作系统是直接运行于裸机之上的系统软件,操作系统是直接运行于裸机之上的系
19、统软件,它负责对计算机系统的各种软硬件资源进行它负责对计算机系统的各种软硬件资源进行管理和分配,为用户提供友好的计算机使用管理和分配,为用户提供友好的计算机使用界面和平台。界面和平台。t在裸机上配置操作系统之后就构成了操作系在裸机上配置操作系统之后就构成了操作系统虚拟机。统虚拟机。t所有其它的程序都所有其它的程序都在扩充后的机器上运行。在扩充后的机器上运行。23应用程序应用程序用户程序用户程序操作系统虚拟机操作系统虚拟机操作系统操作系统裸裸 机机241.6 1.6 1.6 1.6 数据库技术数据库技术数据库技术数据库技术t数据库是一种强大的数据处理技术。数据库是一种强大的数据处理技术。t它把应
20、用中所有的数据有结构地集中在一起,它把应用中所有的数据有结构地集中在一起,并提供对这些数据的存储管理、多用户共享、并提供对这些数据的存储管理、多用户共享、操纵、安全保护、完整性控制等强大功能。操纵、安全保护、完整性控制等强大功能。t一个国家的信息化程度是衡量该国国力的重一个国家的信息化程度是衡量该国国力的重要标准,而信息化是以数据库技术为基础的。要标准,而信息化是以数据库技术为基础的。t现代的银行、金融、证券、保险等各行业的现代的银行、金融、证券、保险等各行业的高效运营都依赖于数据库技术。高效运营都依赖于数据库技术。251.7 1.7 1.7 1.7 软件工程软件工程软件工程软件工程t产生背景
21、产生背景t硬件的发展使得计算机的应用领域迅速扩大,硬件的发展使得计算机的应用领域迅速扩大,同时程序的规模和复杂度也急剧增长。同时程序的规模和复杂度也急剧增长。t早期手工作坊式的软件开发方式因无法适应这早期手工作坊式的软件开发方式因无法适应这种变化而形成了种变化而形成了“软件危机软件危机”。主要表现在:。主要表现在:t开发成本和进度估计不准确,生产效率低。开发成本和进度估计不准确,生产效率低。t用户对软件系统不满意的现象经常发生。用户对软件系统不满意的现象经常发生。t软件产品的质量不可靠。软件产品的质量不可靠。t软件常常是不可维护的。软件常常是不可维护的。t软件成本在计算机系统总成本中的比例上升
22、。软件成本在计算机系统总成本中的比例上升。26软件工程概念软件工程概念软件工程概念软件工程概念t软件工程是指导计算机软件开发和维护的工程学软件工程是指导计算机软件开发和维护的工程学科,采用工科,采用工程的概念、原理、技术和方法来开发程的概念、原理、技术和方法来开发与维护软件。与维护软件。t贯穿于这一学科的基本线索是软件生命期学说,贯穿于这一学科的基本线索是软件生命期学说,它告诉它告诉软件研制者和维护者软件研制者和维护者“什么时候做什么以什么时候做什么以及怎么做及怎么做”。t软件生命期就象人的寿命一样,从出生算到死亡,软件生命期就象人的寿命一样,从出生算到死亡,从产生开发要求算到软件报废为止。包
23、括:软件从产生开发要求算到软件报废为止。包括:软件计划、需求分析、软件开发和软件维护四个时期。计划、需求分析、软件开发和软件维护四个时期。27软件过程软件过程软件过程软件过程t软件计划软件计划t用户想解决什么问题?(软件定义)用户想解决什么问题?(软件定义)t这个问题能否解决?(可行性分析)这个问题能否解决?(可行性分析)t需求分析需求分析t目标系统应该做成什么样子?目标系统应该做成什么样子?t软件开发软件开发t怎样实现目标系统?(软件设计)怎样实现目标系统?(软件设计)t系统的具体实现。(软件编码)系统的具体实现。(软件编码)t实现系统与是否符合目标?(软件测试)实现系统与是否符合目标?(软
24、件测试)t软件维护软件维护t如何保持系统正常运行?如何保持系统正常运行?28软件过程模型:瀑布模型软件过程模型:瀑布模型软件过程模型:瀑布模型软件过程模型:瀑布模型软件计划软件计划需求分析需求分析软件设计软件设计软件编码软件编码软件测试软件测试软件维护软件维护变化的需求变化的需求291.8 1.8 1.8 1.8 软件开发方法软件开发方法软件开发方法软件开发方法t结构化方法结构化方法t自顶向下,逐步细化自顶向下,逐步细化t模块化模块化t结构化程序设计结构化程序设计30自顶向下,逐步细化自顶向下,逐步细化自顶向下,逐步细化自顶向下,逐步细化t由于人类思维能力的限制,如果一次面临的因素由于人类思维
25、能力的限制,如果一次面临的因素太多,就无法作出精确的思维。太多,就无法作出精确的思维。t例如:举办一个生日例如:举办一个生日partypartyt布置场地布置场地t准备食物准备食物t准备节目准备节目t邀请客人邀请客人t自顶向下,逐步细化就是将复杂的问题分解成若干个子问题,直到所有子问题都简单到能用程序设计语言来表达的方法。31模块化模块化模块化模块化t把一个程序按功能分解成若干彼此具有一定独立性同时也具有一定联系的组成部分,这些组成部分称为模块。每个程序由一个或多个模块组成。t优点:优点:t降低复杂度:若降低复杂度:若P=P1+P2,则,则C(P)C(P1)+C(P2)t软件结构清晰软件结构清晰t容易测试和调试容易测试和调试t提高软件的可修改性提高软件的可修改性t方便开发任务的分配方便开发任务的分配32结构化程序设计结构化程序设计结构化程序设计结构化程序设计t强调使用程序的三种基本控制结构(强调使用程序的三种基本控制结构(顺序、顺序、选择和循环选择和循环),有限制地使用),有限制地使用goto语句。语句。33
限制150内