第1章-计算机软件概述_第1页
第1章-计算机软件概述_第2页
第1章-计算机软件概述_第3页
第1章-计算机软件概述_第4页
第1章-计算机软件概述_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

计算机软件技术基础第1章软件技术概述第2页第1章软件技术概述1.计算机系统2.软件技术概述2.1程序设计语言2.2数据结构与算法2.3操作系统2.4数据库技术2.5软件工程2.6软件开发方法第3页学习内容和学习目标了解软件技术所涵盖的主要分支及其研究内容;学习和掌握软件、程序、软件工程、软件生命周期等基本概念。第4页1.计算机系统什么是计算机?

计算机是接收、处理和提供数据的装置,它由硬件和软件两大部分组成。计算机就是我们平时常用的PC机吗?

PC机只是计算机的一种,计算机家族中还有很多其他的成员。第5页养在深闺的巨型计算机超过100万个处理器每个处理器每秒可运算10亿次,运算能力相当于击败国际象棋世界级棋手的超级电脑“深蓝”的1000倍;占地达两个篮球场之大,重达106吨。IBM的BlueGene/L巨型计算机

国产天河、曙光第6页养在深闺的巨型计算机共312万个计算核心。峰值计算速度每秒5.49亿亿次,世界第一。占地面积720平方米。国防科大的天河2号超级计算机第7页无处不在的嵌入式家族第8页第9页(1)计算机硬件及其发展什么是硬件? 硬件是组成计算机系统的所有电子的、机械的、磁性的、光学的装置和部件。配置一台个人计算机需要购买哪些东西?

CPU、内存、硬盘、主板、键鼠、显示器…冯·诺依曼:1945年,“存储程序式计算机”

5大部件构成:

运算器+控制器+存储器+输入设备+输出设备CPUIO设备第10页计算机硬件的发展发展历史逻辑元件:电子管→晶体管→集成电路发展规律及特点速度慢→速度快体积大容量小→体积小容量大外设少、简单→外设繁多、复杂外设速度发展慢于CPU速度的发展摩尔定律(假设价格保持不变,处理器芯片上的晶体管数每18个月翻一番)第11页世界上第一台电子计算机ENIAC诞生于1946年18800个晶体管70000个电阻器18000个电容器5百万个焊接点重量30吨耗电174千瓦/h5000次加法/s第12页PentiumIV(2000)42,000,000个晶体管时钟频率1.5GHz运算速度为1700MIPS(MIPS代表‘百万指令集每秒’)第13页双核处理器(2005)IntelPentium双核处理器AMDAthlon64X2双核处理器第14页三核、四核、六核处理器AMD三核处理器Intel四核处理器AMD六核处理器Intel六核处理器第15页(2)计算机软件软件=程序?开发软件=写程序?认识的误区!程序只是软件的一个组成部分;写程序只是软件开发的过程中的一个步骤。软件是程序、数据以及有关文档资料的集合。软件是(可运行的)思想和内容的数字化思想:算法、规律、方法→程序内容:图形、图像、数据、声音、文字等→数据第16页软件的两方面含义个体含义,表示计算机系统中具体的程序、数据和有关文档,例如操作系统软件“WindowsXP”,是从个体含义上讲的;整体含义,它相对于硬件而言,是对计算机系统中所有程序、数据及相关文档的概括。第17页软件的静态和动态属性软件有两种属性:静态属性:它由程序、数据及相关文档组成,可以存储,也可供人们阅读和交流;动态属性:它是可运行的,蕴涵着一定的操作内容和步骤,由计算机执行而产生特定的结果或动态效应。第18页软件的特征

从软件的属性来看,它是一种特殊的事物,具有自身的特性,可概括如下:(1)智能性(6)依附性(2)无形性(7)非损性(3)抽象性(8)复制性(4)系统性(9)演化性(5)泛域性第19页软件的分类所有的硬件都是相似的,软件则各有各的不同。但是软件的开发过程存在很多规律和共性,找到并利用这些规律来帮助和指导软件的开发,这正是各类软件技术所研究的内容。操作系统、语言编译器、数据库管理系统文字处理软件、财务软件、用户自己开发的软件等硬件系统软件应用软件用户第20页常见软件介绍1.操作系统操作系统是对硬件的首次扩充,它管理着计算机系统的软、硬件资源,其它软件都是在操作系统的基础上运行的。2.数据库管理系统信息管理是计算机的一个重要应用领域,而信息管理的核心就是数据库管理系统。3.群件系统群件拓宽了电子邮件的内涵,涵盖很多通信协调功能,如制定会议的计划、共享项目进度表等。第21页4.办公软件组件文字处理软件、电子表格处理软件、演示制作软件、个人数据库、个人信息管理软件等。5.多媒体处理软件多媒体处理软件主要包括图形、图像处理、动画制作、音频视频处理、桌面排版等。6.程序开发工具环境集成的环境中,包含了语言编辑器(有的还包括界面和外观的编辑)、调试工具、编译工具、运行工具、图标图像制作工具等。第22页7.Internet工具软件主要有Web服务器软件,Web浏览器,文件传送工具、远程访问工具、邮件软件、新闻阅读工具、信息检索、多媒体、Web页创作工具等。8.系统工具软件帮助操作系统更有效地完成系统的管理和维护。包括杀病毒软件、文件压缩、快速复制工具、磁盘维护与诊断工具、实用工具软件等。9.其它一些常见软件学习、游戏软件、电子字典、各种小工具软件第23页(3)硬件与软件的关系软硬件独立原理和互动原理独立原理:软件理论上能实现的功能本质上与硬件是独立的(不管硬件是何种形式)互动原理:软件实际能实现的功能受制于硬件,硬件发展一个台阶,软件就能前进一大步软硬件等效定律简单的硬件+复杂的软件简单的软件+复杂的硬件最终都可以完成同一个任务,不同的只是开发时间和成本!第24页硬件是计算机系统的物质基础;软件是提高计算机系统效率和方便用户使用计算机的程序扩展;它们二者相互依赖、相互促进、共同发展。好的软件能充分发挥硬件的性能,提升计算机的价值。各类软件技术的最终目的就是设计出好的软件,以便最大限度地合理利用和发挥硬件的能力,使计算机系统更好地为用户服务。“没有软件的硬件是僵尸,没有硬件的软件是幽灵”第25页2.软件技术概述软件技术发展历程(1)程序设计时代(1946年~1955年)以硬件为中心,编程处于从属地位(2)软件行业化时代(1955年~1970年)程序需求增加;软件概念的提出;软件行业诞生(3)软件工程时代(1970年至现在)软件危机;软件工程领域的出现第一代软件技术:模块化、自顶而下结构化设计第二代软件技术:软件测试方法、技术、原理、理论第三代软件技术:软件需求定义技术软件开发集成环境——第四代软件技术?第26页软件技术的研究领域

软件本质上是一种思想:利用计算机来解决某个问题的思想!软件的实现就是将这个思想数字化的过程!在这个过程中要用到各种各样的软件技术,有的是抽象的指导理论,有的是具体的实现工具。

程序设计语言

编译技术

软件及实现技术操作系统及实用程序计算机数据库技术软件技术软件工具软件工程软件开发方法与技术程序设计方法

数据结构和算法第27页2.1

程序与程序设计语言

程序:是使计算机完成某种任务的一组有序命令(指令语句)的集合。

程序设计语言发展的三个阶段:

机器语言→汇编语言→高级语言写程序就像写文章,要解决两个问题:1.明确自己要表达的是什么2.用一种语言把它表达出来程序设计语言是编写计算机程序所用的语言。第28页程序设计语言机器语言

是机器指令的集合,其代码由0、1组成的二进制串表示,不需翻译可直接为机器所接受。汇编语言

为符号化的机器语言。它用助记符和标识符代替机器指令的操作码和地址码。高级语言

是一种与具体的计算机指令系统无关、独立于计算机类型、且表达方式接近于自然语言或数学语言、容易被人们掌握和书写的语言。如C,Pascal,java等。第29页举例任务:x+1→x机器语言

001111100000100100111111B或3E093FH汇编语言

MOVAX,XINCAXMOVX,AXC语言

x=x+1 或x++ 或++x第30页高级语言的优点比机器语言或汇编语言更易于学习;程序更易于编写和调试(程序更为短小;记号本身更自然,因此更多注意力可放在程序逻辑而非语法细节上);程序可读性更强;较好的平台无关性;上述原因使得解决问题的时间和成本减少。第31页语言翻译翻译程序

是把甲种语言程序翻译为等价的乙种语言程序的程序。其中,甲种语言称为源语言。乙种语言称为目标语言。汇编程序

若源语言是汇编语言,目标语言是机器语言,则该翻译程序被称为汇编程序。编译程序

若源语言是高级语言,目标语言是汇编语言或机器语言,则该翻译程序被称为编译程序。解释程序

是翻译程序的另一种形式,它对源程序的语句边解释边执行,不产生目标程序。第32页2.2

数据结构与算法程序中往往要处理大量的数据,这些数据采用什么样的方式来组织、存放才能最大限度地方便应用处理,提高程序效率呢?数据结构研究数据的组织形式,包括数据的逻辑结构、物理结构以及在该数据结构上所施加的运算。数据结构是算法设计的基础。第33页算法算法是对解题方法的精确描述。描述的方式可以是各种各样的。如自然语言、流程图、伪代码、程序设计语言等。算法必须具有有穷性、确定性、能行性、输入和输出。一个问题可以有多种解题方法,那么就有多个对应的算法。算法的优劣由算法的时间复杂度和空间复杂度来衡量。第34页2.3

操作系统裸机:没有安装任何软件的计算机。操作系统是直接运行于裸机之上的系统软件,它负责对计算机系统的各种软硬件资源进行管理和分配,为用户提供友好的计算机使用界面和平台。在裸机上配置操作系统之后就构成了操作系统虚拟机。所有其它的软件或程序都在扩充后的机器上运行。第35页应用程序用户程序操作系统虚拟机操作系统裸机第36页2.5

软件工程产生背景(上个世纪70年代)硬件的发展使得计算机的应用领域迅速扩大,导致软件的规模和复杂度急剧增长。早期手工作坊式的软件开发方式因无法适应这种变化而形成了“软件危机”。主要表现在:开发成本和进度估计不准确,生产效率低。软件产品的质量不可靠。软件常常是不可维护的。缺乏适当的文档资料。用户对软件系统不满意的现象经常发生。第37页软件工程概念什么是“软件工程”?1983年IEEE给出的定义为:“软件工程是开发、运行、维护和修复软件的系统方法”。软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件。软件工程是一门交叉学科,用管理学的原理、方法来进行软件生产管理;用工程学的观点来进行费用估算、制定进度和实施方案;用数学方法来建立软件可靠性模型以及分析各种算法。第38页软件工程的基本目标在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。第39页软件生命周期贯穿“软件工程”这一学科的基本线索是软件生命周期学说,它告诉软件开发者和维护者“什么时候做什么以及怎么做”。软件生命周期就象人的寿命一样,从出生算到死亡,从产生开发需求一直到软件报废为止。包括:软件计划、需求分析、软件开发和软件维护四个时期。第40页软件生命周期阶段软件计划(系统定义)用户想解决什么问题?(软件定义)这个问题能否解决?(可行性分析)需求分析(系统分析)目标系统应该做成什么样子?软件开发(系统实现)怎样实现目标系统?(软件设计)系统的具体实现(软件编程)实现的系统与是否符合目标?(软件测试)软件维护(系统维护)如何保持系统正常运行?如何升级或修复错误?第41页软件开发模型

软件开发模型是软件开发的全部过程、活动和任务的结构框架。瀑布模型原型模型螺旋模型第42页软件开发模型1.瀑布模型(1)各阶段间具有顺序性和依赖性。即后一阶段工作必须在前一阶段工作完成后才能进行,前一阶段的输出文档是后一阶段的输入文档。(2)质量保证机制的依赖性。即每一步都必须循序渐进,及早消除故障隐患,保证本阶段的工作的质量,从而达到保证整体软件质量的目的。(3)推迟实现原则。前一阶段工作做的越细、越扎实,后一阶段工作进行的就越顺利,强调“宁慢求好”。因此,各阶段工作总是容易一拖再拖,致使整个工期推迟实现。显然瀑布模型不能满足呈爆炸状增长的社会应用需求。

第43页软件开发模型之一:瀑布模型软件计划需求分析软件设计软件编码软件测试软件维护变化的需求第44页2.原型模型也称样品模式,即开始提出一个样品雏形,通过不断改进,完善样品,使得最后得到用户所需要的产品。由于在项目开发初始阶段人们对软件的需求认识常常弄不清楚,原型模型提出分两次开发软件能较好地使用户满意:第一次只是试验开发,其目标在于探索可行性,弄清软件需求。通常把第一次得到的试验性产品称为原型。第二次则在原型基础上获得较满意的软件产品。显然,原型模型在克服瀑布模型缺点,减少由于软件需求不明确而给开发工作带来的风险,有着显著的效果。第45页软件开发模型之二:原型模型

初步需求分析

快速设计

建造原型

用户评估原型(新需求)

开发产品

开始

结束

第46页原型模型的优点:(1)开发人员和用户在原型上达成一致,共同承担因修改原型而造成的风险,用户成了名副其实的开发组成员。可以减少设计中的错误和开发中的风险,从而提高了系统的准确性、正确性以及用户的满意程度。(2)缩短了开发周期,加快了工程进度,降低了成本。原形模型的缺点:原型样品只是一个临时的系统,它没有考虑整体的质量和日后的可维护性等问题。第47页3.螺旋模型螺旋模型将瀑布模型与原型模型结合起来,并且加入风险分析,构成具有特色的模式,可以弥补前两种模型的不足。螺旋模型将工程分为4个主要活动:制定计划,风险分析,实现工程和用户评价。4个活动螺旋式地重复执行,直到最终得到用户认可的产品。螺旋模型的缺点:(1)它很难让用户确信这种研发方法是可控制的;(2)它要求有风险评价的专门技术,如果主要风险不能发现,则问题一定会发生;第48页生命周期计划需求计划风险分析原型1原型2原型3可操作的原型建模模拟评价操作概念软件需求需求确认开发计划组装测试计划风险分析风险分析风险分析软件产品设计设计验证与确认详细设计编码单元测试组装测试验收测试实现成本顺时针为进展方向计划:明确目标、约束条件选择方案风险分析构造原型工程实现用户评价;阶段评审验收测试计划需求精化计划需求评价评审决策实现计划软件开发模型之三:螺旋模型第49页2.6

软件开发方法结构化方法自顶向下,逐步细化模块化结构化程序设计面向对象方法第50页自顶向下,逐步细化由于人类思维能力的限制,如果一次面临的因素太多,就无法作出精确的思维。例如:举办一个生日party布置场地准备食物准备节目邀请客人自顶向下,逐步细化就是将复杂的问题分解成若干个子问题,直到所有子问题都简单到能用程序设计语言来表达的方法。第51页示例:选择排序算

温馨提示

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

评论

0/150

提交评论