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