软件技术基础概论.ppt
- 文档编号:18793905
- 上传时间:2023-11-17
- 格式:PPT
- 页数:61
- 大小:2.87MB
软件技术基础概论.ppt
《软件技术基础概论.ppt》由会员分享,可在线阅读,更多相关《软件技术基础概论.ppt(61页珍藏版)》请在冰点文库上搜索。
计算机软件技术基础,第1章软件技术概述,第1章软件技术概述,1.计算机系统2.软件技术概述2.1程序设计语言2.2数据结构与算法2.3操作系统2.4数据库技术2.5软件工程2.6软件开发方法,第2页,学习内容和学习目标,了解软件技术所涵盖的主要分支及其研究内容;学习和掌握软件、程序、软件工程、软件生命周期等基本概念。
第3页,一.计算机系统,1.什么是计算机?
计算机是接收、处理和提供数据的装置,它由硬件和软件两大部分组成。
第4页,2.计算机就是我们平时常用的PC机吗?
PC机只是计算机的一种,计算机家族中还有很多其他的成员。
3.巨型计算机,超过100万个处理器每个处理器每秒可运算10亿次,运算能力相当于击败国际象棋世界级棋手的超级电脑“深蓝”的1000倍;占地达两个篮球场之大,重达106吨。
第5页,IBM的巨型计算机:
国产银河、曙光:
中国在超级计算机方面发展迅速,跃升到国际先进水平国家当中。
中国在1983年就研制出第一台超级计算机银河一号,使中国成为继美国、日本之后第三个能独立设计和研制超级计算机的国家。
2010年11月16日,在国际超级计算机TOP500组织正式发布第36届世界超级计算机500强排行榜上,中国研制的“天河一号”超级计算机,以峰值速度4700万亿次、持续速度2566万亿次每秒浮点运算的优异性能,位居世界第一。
比排名第二的美国“美洲虎”超级计算机快了1000万亿次。
2015年11月16日,全球超级计算机500强榜单在美国公布,“天河二号”超级计算机以每秒3386千万亿次连续第六度称雄。
第6页,4.无处不在的嵌入式家族,第7页,第8页,二.计算机硬件及其发展,1.什么是硬件?
硬件是组成计算机系统的所有电子的、机械的、磁性的、光学的装置和部件。
2.配置一台个人计算机需要购买哪些东西?
CPU、内存、硬盘、主板、键鼠、显示器3.冯诺依曼:
1945年,“存储程序式计算机”5大部件构成:
运算器控制器存储器输入设备输出设备,第9页,.计算机硬件的发展,发展历史:
逻辑元件:
电子管晶体管集成电路发展规律及特点:
速度慢速度快体积大容量小体积小容量大外设少、简单外设繁多、复杂外设速度发展慢于CPU速度的发展摩尔定律(假设价格保持不变,处理器芯片上的晶体管数每18个月翻一番),第10页,5.世界上第一台电子计算机ENIAC,诞生于1946年18800个晶体管70000个电阻器18000个电容器5百万个焊接点重量30吨耗电174千瓦/h5000次加法/s,第11页,6.PentiumIV(2000),42,000,000个晶体管时钟频率1.5GHz运算速度为1700MIPS(MIPS代表百万指令集每秒),第12页,7.双核处理器(2005),IntelPentium双核处理器,第13页,AMDAthlon64X2双核处理器,8.三核、四核、六核处理器,第14页,AMD三核处理器,Intel四核处理器,AMD六核处理器,Intel六核处理器,三.计算机软件,1.软件程序?
开发软件写程序?
认识的误区!
程序只是软件的一个组成部分;写程序只是软件开发的过程中的一个步骤。
2.软件是程序、数据以及有关文档资料的集合。
3.软件是(可运行的)思想和内容的数字化思想:
算法、规律、方法程序内容:
图形、图像、数据、声音、文字等数据,第15页,.软件的两方面含义,1.个体含义:
表示计算机系统中具体的程序、数据和有关文档。
例如操作系统软件“WindowsXP”、是从个体含义上讲的。
.整体含义:
它相对于硬件而言,是对计算机系统中所有程序、数据及相关文档的概括。
第16页,.软件的静态和动态属性,1.软件有两种属性:
静态属性:
它由程序、数据及相关文档组成、可以存储、也可供人们阅读和交流。
动态属性:
它是可运行的、蕴涵着一定的操作内容和步骤、由计算机执行而产生特定的结果或动态效应。
第17页,.软件的特征,从软件的属性来看,它是一种特殊的事物,具有自身的特性,可概括如下:
(1)智能性(6)依附性
(2)无形性(7)非损性(3)抽象性(8)复制性(4)系统性(9)演化性(5)脆弱性,第18页,.软件的分类,所有的硬件都是相似的、软件则各有各的不同。
但是软件的开发过程存在很多规律和共性、找到并利用这些规律来帮助和指导软件的开发、这正是各类软件技术所研究的内容。
第19页,操作系统、语言编译器、数据库管理系统,文字处理软件、财务软件、用户自己开发的软件等,.常见软件介绍,1.操作系统:
操作系统是对硬件的首次扩充、它管理着计算机系统的软、硬件资源、其它软件都是在操作系统的基础上运行的。
2.数据库管理系统:
信息管理是计算机的一个重要应用领域、而信息管理的核心就是数据库管理系统。
3.群件系统群件拓宽了电子邮件的内涵、涵盖很多通信协调功能:
如制定会议的计划、共享项目进度表等。
第20页,4.办公软件组件:
文字处理软件、电子表格处理软件、演示制作软件、个人数据库、个人信息管理软件等。
5.多媒体处理软件:
多媒体处理软件主要包括图形、图像处理、动画制作、音频视频处理、桌面排版等。
6.程序开发工具环境:
集成的环境中、包含了语言编辑器(有的还包括界面和外观的编辑)、调试工具、编译工具、运行工具、图标图像制作工具等。
第21页,7.Internet工具软件:
主要有Web服务器软件,Web浏览器,文件传送工具、远程访问工具、邮件软件、新闻阅读工具、信息检索、多媒体、Web页创作工具等。
8.系统工具软件:
帮助操作系统更有效地完成系统的管理和维护。
包括杀病毒软件、文件压缩、快速复制工具、磁盘维护与诊断工具、实用工具软件等。
9.其它一些常见软件:
学习、游戏软件、电子字典、各种小工具软件,第22页,四.硬件与软件的关系,1.软硬件独立原理和互动原理独立原理:
软件理论上能实现的功能本质上与硬件是独立的(不管硬件是何种形式)互动原理:
软件实际能实现的功能受制于硬件,硬件发展一个台阶,软件就能前进一大步2.软硬件等效定律:
简单的硬件+复杂的软件简单的软件+复杂的硬件最终都可以完成同一个任务、不同的只是开发时间和成本!
第23页,3.硬件是计算机系统的物质基础、软件是提高计算机系统效率和方便用户使用计算机的程序扩展;它们二者相互依赖、相互促进、共同发展。
4.好的软件能充分发挥硬件的性能、提升计算机的价值。
各类软件技术的最终目的就是设计出好的软件,以便最大限度地合理利用和发挥硬件的能力、使计算机系统更好地为用户服务。
5.“没有软件的硬件是僵尸、没有硬件的软件是幽灵”,第24页,五.软件技术概述,.软件技术发展历程:
(1)程序设计时代(1946年1955年)以硬件为中心,编程处于从属地位
(2)软件行业化时代(1955年1970年)程序需求增加;软件概念的提出;软件行业诞生(3)软件工程时代(1970年至现在)软件危机;软件工程领域的出现第一代软件技术:
模块化、自顶而下结构化设计第二代软件技术:
软件测试方法、技术、原理、理论第三代软件技术:
软件需求定义技术软件开发集成环境第四代软件技术?
第25页,五.软件技术的研究领域,1.软件本质上是一种思想:
利用计算机来解决某个问题的思想!
软件的实现就是将这个思想数字化的过程!
在这个过程中要用到各种各样的软件技术,有的是抽象的指导理论,有的是具体的实现工具。
第26页,1.2程序与程序设计语言,1.程序:
是使计算机完成某种任务的一组有序命令(指令语句)的集合。
第27页,3.程序设计语言发展的三个阶段:
机器语言汇编语言高级语言,写程序就像写文章,要解决两个问题:
.明确自己要表达的是什么.用一种语言把它表达出来,2.程序设计语言是编写计算机程序所用的语言。
程序设计语言,机器语言:
是机器指令的集合、其代码由0、1组成的二进制串表示,不需翻译可直接为机器所接受。
汇编语言:
为符号化的机器语言。
它用助记符和标识符代替机器指令的操作码和地址码。
高级语言:
是一种与具体的计算机指令系统无关、独立于计算机类型、且表达方式接近于自然语言或数学语言、容易被人们掌握和书写的语言。
如C+、Pascal、java等。
第28页,举例,任务:
x1x机器语言:
001111100000100100111111B或3E093FH汇编语言:
MOVAX,XINCAXMOVX,AXC+语言:
x=x+1或x+或+x,第29页,高级语言的优点,比机器语言或汇编语言更易于学习;程序更易于编写和调试(程序更为短小;记号本身更自然,因此更多注意力可放在程序逻辑而非语法细节上);程序可读性更强;较好的平台无关性;上述原因使得解决问题的时间和成本减少。
第30页,语言翻译,翻译程序是把甲种语言程序翻译为等价的乙种语言程序的程序。
其中、甲种语言称为源语言。
乙种语言称为目标语言。
汇编程序若源语言是汇编语言、目标语言是机器语言、则该翻译程序被称为汇编程序。
编译程序若源语言是高级语言、目标语言是汇编语言或机器语言、则该翻译程序被称为编译程序。
解释程序是翻译程序的另一种形式、它对源程序的语句边解释边执行、不产生目标程序。
第31页,1.3数据结构与算法,1.程序中往往要处理大量的数据,这些数据采用什么样的方式来组织、存放才能最大限度地方便应用处理,提高程序效率呢?
2.数据结构研究数据的组织形式,包括数据的逻辑结构、物理结构以及在该数据结构上所施加的运算。
3.数据结构是算法设计的基础。
第32页,4.算法,算法是对解题方法的精确描述。
描述的方式可以是各种各样的。
如自然语言、流程图、伪代码、程序设计语言等。
算法必须具有有穷性、确定性、能行性、输入和输出。
一个问题可以有多种解题方法,那么就有多个对应的算法。
算法的优劣由算法的时间复杂度和空间复杂度来衡量。
第33页,1.4操作系统,裸机:
没有安装任何软件的计算机。
操作系统是直接运行于裸机之上的系统软件,它负责对计算机系统的各种软硬件资源进行管理和分配,为用户提供友好的计算机使用界面和平台。
在裸机上配置操作系统之后就构成了操作系统虚拟机。
所有其它的软件或程序都在扩充后的机器上运行。
第34页,第35页,1.5数据库技术,1.数据库是一种强大的数据处理技术。
2.它把应用中所有的数据有结构地集中在一起,并提供对这些数据的存储管理、多用户共享、操作、安全保护、完整性控制等强大功能。
3.一个国家的信息化程度是衡量该国国力的重要标准,而信息化是以数据库技术为基础的。
4.现代的银行、金融、证券、保险等各行业的高效运营都依赖于数据库技术。
第36页,1.6软件工程,1.产生背景(上个世纪70年代)硬件的发展使得计算机的应用领域迅速扩大,导致软件的规模和复杂度急剧增长。
早期手工作坊式的软件开发方式因无法适应这种变化而形成了“软件危机”。
主要表现在:
开发成本和进度估计不准确,生产效率低。
软件产品的质量不可靠。
软件常常是不可维护的。
缺乏适当的文档资料。
用户对软件系统不满意的现象经常发生。
第37页,2.软件工程概念,什么是“软件工程”?
1983年IEEE给出的定义为:
“软件工程是开发、运行、维护和修复软件的系统方法”。
软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件。
软件工程是一门交叉学科,用管理学的原理、方法来进行软件生产管理;用工程学的观点来进行费用估算、制定进度和实施方案;用数学方法来建立软件可靠性模型以及分析各种算法。
第38页,3.软件工程的基本目标,在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。
第39页,4.软件生命周期,贯穿“软件工程”这一学科的基本线索是软件生命周期学说,它告诉软件开发者和维护者“什么时候做什么以及怎么做”。
软件生命周期就象人的寿命一样,从出生算到死亡,从产生开发需求一直到软件报废为止。
包括:
软件计划、需求分析、软件开发和软件维护四个时期。
第40页,5.软件生命周期阶段,软件计划(系统定义)用户想解决什么问题?
(软件定义)这个问题能否解决?
(可行性分析)需求分析(系统分析)目标系统应该做成什么样子?
软件开发(系统实现)怎样实现目标系统?
(软件设计)系统的具体实现(软件编程)实现的系统与是否符合目标?
(软件测试)软件维护(系统维护)如何保持系统正常运行?
如何升级或修复错误?
第41页,6.软件开发模型,软件开发模型是软件开发的全部过程、活动和任务的结构框架。
瀑布模型原型模型螺旋模型,第42页,瀑布模型:
各阶段间具有顺序性和依赖性。
即后一阶段工作必须在前一阶段工作完成后才能进行,前一阶段的输出文档是后一阶段的输入文档。
质量保证机制的依赖性。
即每一步都必须循序渐进,及早消除故障隐患,保证本阶段的工作的质量,从而达到保证整体软件质量的目的。
推迟实现原则。
前一阶段工作做的越细、越扎实,后一阶段工作进行的就越顺利,强调“宁慢求好”。
因此,各阶段工作总是容易一拖再拖,致使整个工期推迟实现。
显然瀑布模型不能满足呈爆炸状增长的社会应用需求。
第43页,软件开发模型之一:
瀑布模型,第44页,原型模型也称样品模式,即开始提出一个样品雏形,通过不断改进,完善样品,使得最后得到用户所需要的产品。
由于在项目开发初始阶段人们对软件的需求认识常常弄不清楚,原型模型提出分两次开发软件能较好地使用户满意:
第一次只是试验开发,其目标在于探索可行性,弄清软件需求。
通常把第一次得到的试验性产品称为原型。
第二次则在原型基础上获得较满意的软件产品。
显然,原型模型在克服瀑布模型缺点,减少由于软件需求不明确而给开发工作带来的风险,有着显著的效果。
第45页,软件开发模型之二:
原型模型,第46页,原型模型的优点:
开发人员和用户在原型上达成一致,共同承担因修改原型而造成的风险,用户成了名副其实的开发组成员。
可以减少设计中的错误和开发中的风险,从而提高了系统的准确性、正确性以及用户的满意程度。
缩短了开发周期,加快了工程进度,降低了成本。
原形模型的缺点:
原型样品只是一个临时的系统,它没有考虑整体的质量和日后的可维护性等问题。
第47页,螺旋模型螺旋模型将瀑布模型与原型模型结合起来,并且加入风险分析,构成具有特色的模式,可以弥补前两种模型的不足。
螺旋模型将工程分为4个主要活动:
制定计划,风险分析,实现工程和用户评价。
4个活动螺旋式地重复执行,直到最终得到用户认可的产品。
螺旋模型的缺点:
它很难让用户确信这种研发方法是可控制的;它要求有风险评价的专门技术,如果主要风险不能发现,则问题一定会发生;,第48页,软件开发模型之三:
螺旋模型,第49页,1.7软件开发方法,结构化方法:
自顶向下,逐步细化模块化结构化程序设计面向对象方法:
第50页,自顶向下,逐步细化,由于人类思维能力的限制,如果一次面临的因素太多,就无法作出精确的思维。
例如:
举办一个生日party布置场地准备食物准备节目邀请客人自顶向下,逐步细化就是将复杂的问题分解成若干个子问题,直到所有子问题都简单到能用程序设计语言来表达的方法。
第51页,示例:
选择排序算法设计,第52页,顶层设计,第53页,第2层设计,第54页,第3层设计,第55页,选择排序法的N-S框图,模块化程序设计,把一个程序按功能分解成若干彼此具有一定独立性同时也具有一定联系的组成部分,这些组成部分称为模块。
每个程序由一个或多个模块组成。
方法:
按功能划分;自顶而下逐步求精,直到获得单一的功能模块。
优点:
降低复杂度:
若P=P1+P2,则C(P)C(P1)+C(P2)软件结构清晰容易测试和调试提高软件的可修改性方便开发任务的分配,第56页,模块化设计示例,第57页,报表加工任务的模块化设计,结构化程序设计,强调使用程序的三种基本控制结构(顺序、选择和循环。
第58页,结构化程序设计的特点,只有一个入口和一个出口;不存在从结构内跳到结构外,也不存在从结构外跳到结构内的情况;程序进入结构后,肯定能到达出口,不会出现“死循环”。
有限制地使用Goto语句进行跳转。
第59页,面向对象技术,OO(面向对象)技术:
将客观世界的实体看作不同类型的对象,对象的属性和方法对应实体的自然属性和行为特性。
面向对象技术主要包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的实现(OOI)三个方面。
基本概念:
对象、类、方法、消息、继承、封装等面向对象技术特点:
可重用性、可维护性、表示方法的一致性面向对象的编程语言:
C+,Java等,第60页,应用软件的开发,作为应用软件开发者,一些必须的准备是:
熟悉应用开发平台上的常用工具至少掌握一种程序设计语言注重分析、注意写文档软件开发应注意:
采用科学的、现代化的组织管理模式;选用先进的设计思想与方法。
软件开发经验之谈通过理论学习去理解和掌握基本概念和方法通过实践去加深认识,积累开发经验和提高软件开发能力。
第61页,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件技术 基础 概论