实验数据与建模 第一章 概述精品文稿.ppt
实验数据与建模 第一章 概述第1页,本讲稿共65页总学时数:3434学时学时先修课程:计算机文化基础计算机文化基础 程序设计语言程序设计语言课程教材:计算机软件技术基础计算机软件技术基础 夏清国夏清国 编编 西北工业大学出版社西北工业大学出版社参考书目:计算机软件技术基础计算机软件技术基础沈被娜沈被娜 清华大学出版社清华大学出版社 计算机软件技术基础计算机软件技术基础麦中凡麦中凡 北京航空航天大学出版北京航空航天大学出版社社总学分数:2 2学分学分课前的话课前的话学时与教材学时与教材第2页,本讲稿共65页 通过学习,使学生了解当今计算机软通过学习,使学生了解当今计算机软件的件的 主要核心技术;掌握计算机软件的基主要核心技术;掌握计算机软件的基本基础知识。本基础知识。最终使学生达到对软件开发知其然且最终使学生达到对软件开发知其然且知其所以然,具有一定程度的从底层进行知其所以然,具有一定程度的从底层进行软件开发的能力,为计算机的熟练灵活应软件开发的能力,为计算机的熟练灵活应用打下良好基础。用打下良好基础。课前的话课前的话教学目的教学目的第3页,本讲稿共65页学时学时 讲课人讲课人 面向对象的软件开发技术面向对象的软件开发技术412 白成刚白成刚 数据结构数据结构与与算法算法322 白成刚白成刚绪绪 论论1教材参考章教材参考章 授课内授课内 容容 章章课前的话课前的话内容安排内容安排 2 沈为群沈为群数据库技术基础数据库技术基础软件工程技术基础软件工程技术基础操作系统操作系统562 白成刚白成刚 4 沈为群沈为群第四章第四章第三章第三章第五章第五章第六章第六章复习复习 2 沈为群沈为群 白成刚白成刚 第一章4 白成刚白成刚 考试考试 2 沈为群沈为群 白成刚白成刚 注:在实际讲授中授课内容或课时可能会作一些调整注:在实际讲授中授课内容或课时可能会作一些调整第二章第4页,本讲稿共65页课前的话课前的话计算机系列课程之间的联系计算机系列课程之间的联系第5页,本讲稿共65页上课:占总成绩的上课:占总成绩的20作业:占总成绩的作业:占总成绩的20(交本)(交本)考试:占总成绩的考试:占总成绩的60课前的话课前的话考试与作业考试与作业第6页,本讲稿共65页第一章 绪论1.1 数据结构与算法1.2 软件开发方法1.3 软件工程1.4 数据库技术1.5 操作系统1.6 计算机系统1.7 软件技术概述1.8 程序设计语言课程内容简介计算机软件技术概述第7页,本讲稿共65页1.1 数据结构和算法程序中往往要处理大量的数据,这些数据采用什么样的方式来组织、存放才能最大限度地方便应用处理,提高程序效率呢?数据结构研究数据的组织形式,包括数据的逻辑结构,物理结构以及在该数据结构上所施加的运算。一类数据结构指的是一类数学模型。数据结构是软件技术基础的基础。第8页,本讲稿共65页1.1 数据结构和算法算法是对解题方法的精确描述。描述的方式可以是各种各样的。如自然语言,流程图,伪代码等。一个问题可以有多种解题方法,那么就有多个对应的算法。算法的优劣由算法的时间复杂度和空间复杂度来衡量。第9页,本讲稿共65页数据结构与算法数据结构与算法 线性表线性表堆栈和队列堆栈和队列数组数组树与二叉树树与二叉树查找查找排序排序基本要求基本要求:了解掌握线性表数据结构的基本概念,构造原理、存储结构和几个常用的了解掌握线性表数据结构的基本概念,构造原理、存储结构和几个常用的操作算法。操作算法。重点掌握堆栈、队列的基本概念、存储结构、基本操作和算法。重点掌握堆栈、队列的基本概念、存储结构、基本操作和算法。重点掌握二叉树的基本概念、存储结构,二叉树的各种遍历方式和操作算重点掌握二叉树的基本概念、存储结构,二叉树的各种遍历方式和操作算法。法。掌握查找和排序技术中的常用方法,操作步骤和算法掌握查找和排序技术中的常用方法,操作步骤和算法 第10页,本讲稿共65页1.2 软件开发方法结构化方法自顶向下,逐步细化模块化结构化程序设计第11页,本讲稿共65页自顶向下,逐步细化由于人类思维能力的限制,如果一次面临的因素太多,就无法作出精确的思维。例如:举办一个生日party布置场地准备食物准备节目邀请客人自顶向下,逐步细化就是自顶向下,逐步细化就是将复杂的问题分解成若干个将复杂的问题分解成若干个子问题,直到所有子问题都简单到能用程序设计语言子问题,直到所有子问题都简单到能用程序设计语言来表达的方法。来表达的方法。第12页,本讲稿共65页模块化把一个程序按功能分解成若干彼此具有一定独立性把一个程序按功能分解成若干彼此具有一定独立性同时也具有一定联系的组成部分,这些同时也具有一定联系的组成部分,这些组成部分称组成部分称为模块。每个程序由一个或多个模块组成。为模块。每个程序由一个或多个模块组成。优点:降低复杂度:若P=P1+P2,则C(P)C(P1)+C(P2)软件结构清晰容易测试和调试提高软件的可修改性方便开发任务的分配第13页,本讲稿共65页结构化程序设计强调使用程序的三种基本控制结构(顺序、选择和循环),有限制地使用goto语句。第14页,本讲稿共65页面向对象的软件开发技术面向对象的软件开发技术高级程序设计语言的基本特征。高级程序设计语言的基本特征。结构化程序设计的方法。结构化程序设计的方法。面向对象的程序设计方法。面向对象的程序设计方法。基本要求基本要求:了解高级程序设计语言的基本特点。了解高级程序设计语言的基本特点。了解掌握结构化程序设计的基本原理和方了解掌握结构化程序设计的基本原理和方法、步骤,描述方法,评价标准。法、步骤,描述方法,评价标准。了解掌握面向对象的基本概念,设计方法了解掌握面向对象的基本概念,设计方法和特征和特征 第15页,本讲稿共65页1.3 软件工程产生背景硬件的发展使得计算机的应用领域迅速扩大,同时程序的规模和复杂度也急剧增长。早期手工作坊式的软件开发方式因无法适应这种变化而形成了“软件危机”。主要表现在:开发成本和进度估计不准确,生产效率低。用户对软件系统不满意的现象经常发生。软件产品的质量不可靠。软件常常是不可维护的。软件成本在计算机系统总成本中的比例上升。第16页,本讲稿共65页软件工程概念软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件。贯穿于这一学科的基本线索是软件生命期学说,它告诉软件研制者和维护者“什么时候做什么以及怎么做”。软件生命期就象人的寿命一样,从出生算到死亡,从产生开发要求算到软件报废为止。包括:软件计划、需求分析、软件开发和软件维护四个时期。第17页,本讲稿共65页软件过程软件计划用户想解决什么问题?(软件定义)这个问题能否解决?(可行性分析)需求分析目标系统应该做成什么样子?软件开发怎样实现目标系统?(软件设计)系统的具体实现。(软件编码)实现系统与是否符合目标?(软件测试)软件维护如何保持系统正常运行?第18页,本讲稿共65页软件过程模型:瀑布模型软件计划需求分析软件设计软件编码软件测试软件维护变化的需求第19页,本讲稿共65页软件工程技术基础软件工程技术基础软件生存期和软件开发模型。软件生存期和软件开发模型。需求分析。需求分析。软件总体设计。软件总体设计。软件详细设计。软件详细设计。软件测试与软件测试算法。软件测试与软件测试算法。基本要求基本要求试写出某系统需求分析说明书。试写出某系统需求分析说明书。试写出某系统概要设计说明书。试写出某系统概要设计说明书。试写出该系统的测试说明书。试写出该系统的测试说明书。试写出该系统的用户使用手册初稿。试写出该系统的用户使用手册初稿。第20页,本讲稿共65页1.4 数据库技术数据库是一种强大的数据处理技术。它把应用中所有的数据有结构地集中在一起,并提供对这些数据的存储管理、多用户共享、操纵、安全保护、完整性控制等强大功能。一个国家的信息化程度是衡量该国国力的重要标准,而信息化是以数据库技术为基础的。现代的银行、金融、证券、保险等各行业的高效运营都依赖于数据库技术。第21页,本讲稿共65页数据库技术基础数据库技术基础数据库基础数据库基础数据库组织数据库组织关系数据库设计关系数据库设计基本要求:基本要求:了解掌握数据库的概念、功能和基本模型了解掌握数据库的概念、功能和基本模型的结构。的结构。了解掌握关系数据库中了解掌握关系数据库中ER数据模型的设数据模型的设计方法计方法 第22页,本讲稿共65页1.5 操作系统没有安装任何软件的计算机称为裸机。操作系统是直接运行于裸机之上的系统软件,它负责对计算机系统的各种软硬件资源进行管理和分配,为用户提供友好的计算机使用界面和平台。在裸机上配置操作系统之后就构成了操作系统虚拟机。所有其它的程序都在扩充后的机器上运行。第23页,本讲稿共65页应用程序用户程序操作系统虚拟机操作系统裸 机第24页,本讲稿共65页第五章第五章 操作系统操作系统 处理机管理。处理机管理。作业管理与控制。作业管理与控制。设备管理与存储管理。设备管理与存储管理。几个常用操作系统介绍。几个常用操作系统介绍。基本要求基本要求:掌握操作系统的定义、功能、分类、结构,掌握操作系统的定义、功能、分类、结构,了解其发展过程与方向。了解其发展过程与方向。了解掌握处理器的管理功能和工作原理。了解掌握处理器的管理功能和工作原理。了解掌握存储管理功能,文件管理功能。了解掌握存储管理功能,文件管理功能。了解常用的几个操作系统使用。了解常用的几个操作系统使用。第25页,本讲稿共65页1.6 计算机系统什么是计算机?计算机是接收、处理和提供数据的装置,它由硬件和软件两大部分组成。计算机就是我们平时常用的PC机吗?PC机只是计算机的一种,计算机家族中还有很多其他的成员。第26页,本讲稿共65页无所不在的嵌入式家族第27页,本讲稿共65页养在深闺的巨型计算机世界上最快的计算机IBM的Blue Gene/L,拥有超过100万个处理器,每个处理器每秒可运算10亿次。运算能力相当于击败国际象棋世界级棋手的超级电脑“深蓝”的1000倍。占地达两个篮球场之大,重达106吨。第28页,本讲稿共65页1、计算机硬件及发展什么是硬件?硬件是组成计算机系统的所有电子的、机械的、磁性的、光学的装置和部件。配置一台计算机需要购买哪些东西?存储程序式计算机的工作原理5大部件:(运算器控制器运算器控制器)存储器输入设备输出设备存储器输入设备输出设备第29页,本讲稿共65页硬件的发展发展历史电子管晶体管集成电路发展规律及特点速度慢速度快体积大容量小体积小容量大外设少、简单外设繁多、复杂外设速度发展慢于CPU速度的发展摩尔定律(假设价格保持不变,处理器芯片上的晶体管数每18个月翻一番)第30页,本讲稿共65页世界上第一台电子计算机ENIAC诞生于1942年18800个晶体管70000个电阻器18000个电容器重量30吨耗电140千瓦/h5000次加法/s第31页,本讲稿共65页Pentium IV(2000)42,000,000个晶体管时钟频率1.5GHz运算速度为1700 MIPS(MIPS 代表百万指令集每秒)第32页,本讲稿共65页 软件软件 由计算机由计算机程序程序、数据数据及及文档文档组成组成,作为商品以有形介质为媒体进行作为商品以有形介质为媒体进行 易的程序称做软件。易的程序称做软件。软件(software)的定义 程序程序 是按事先设计的功能和性能要求编写的指令序列是按事先设计的功能和性能要求编写的指令序列 数据数据 是使程序能正常操纵信息的数据结构是使程序能正常操纵信息的数据结构 文档文档 是与程序开发、维护和使用有关的图文材料是与程序开发、维护和使用有关的图文材料2、计算机软件第33页,本讲稿共65页程序编写机器语言 是机器指令的集合,其代码由0、1组成的二进制串表示,不需翻译可直接为机器所接受。汇编语言 为符号化的机器语言。它用助记符和标识符代替机器指令的操作码和地址码。高级语言 是一种与具体的计算机指令系统无关,独立于计算机类型,而且表达方式接近于自然语言或数学语言,容易被人们掌握和书写的语言。如C,Pascal,java。第34页,本讲稿共65页举例任务:x1x机器语言00111110 00001001 00111111B 或 3E 09 3FH汇编语言MOV AX,X/INC AX/MOV X,AXC语言x=x+1 或x+或+x第35页,本讲稿共65页高级语言的优点比机器或汇编语言更易于学习程序更易于调试(程序更为短小;记号本身更自然,因此更多注意力可放在程序逻辑而非语法细节上)程序更易于理解较好的平台无关性上述原因导致解决问题的时间和代价减少第36页,本讲稿共65页软件是只有过时而无软件是只有过时而无“磨损磨损”的商品,软件维护与的商品,软件维护与硬件的维修有着本质的差别。硬件的维修有着本质的差别。软件是一种逻辑实体,软件是具有软件是一种逻辑实体,软件是具有使用性能的使用性能的软设备。软设备。软件的特性:软件的特性:(1 1)抽象性)抽象性 :(2 2)无磨损性:)无磨损性:第37页,本讲稿共65页软件的开发和运行常常受到计算机系统的限制,对计软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。算机系统有着不同程度的依赖性。(3 3)对计算机硬件依赖性:)对计算机硬件依赖性:软件的开发是人的智力的高度发挥,而不是传统意软件的开发是人的智力的高度发挥,而不是传统意义上的硬件制造。义上的硬件制造。软件的特性:(4 4)软件生产无明显制造过程:)软件生产无明显制造过程:第38页,本讲稿共65页(5 5)软件是信息商品。)软件是信息商品。(6 6)软件的手工开发方式。)软件的手工开发方式。(7 7)软件本身复杂性。)软件本身复杂性。(8 8)软件的高成本。)软件的高成本。程序的特性:*1.2计算机软、硬件构成第39页,本讲稿共65页1.2 1.2 计算机软、硬件构成计算机软、硬件构成1.2.11.2.1计算机系统是由硬件系统和软件系统构成计算机系统是由硬件系统和软件系统构成(如图所示如图所示)软件系统计算机系统硬件系统主机外设系统软件应用软件中央处理器内存储器(主存)内存储器外储器(辅存)运算器控制器第40页,本讲稿共65页1.2.2计算机系统的软件层次及其与硬件的关系(如图所示如图所示)第41页,本讲稿共65页硬件与软件的关系软硬件独立原理和互动原理独立原理:软件理论上能实现的功能本质上与硬件是独立的(不管硬件是何种形式)互动原理:软件实际能实现的功能受制于硬件,硬件发展一个台阶,软件就能前进一大步软硬件等效定律:在逻辑功能上等效,在实现性能上是不等效的 简单的硬件+复杂的软件简单的软件+复杂的硬件最终都可以完成同一个任务,不同的只是时间!第42页,本讲稿共65页硬件与软件的关系硬件是计算机系统的物质基础;软件是提高计算机系统效率和方便用户使用计算机的程序;它们二者相互依赖、相互促进、共同发展。好的软件能充分发挥硬件的性能,提升计算机的价值。没有软件的硬件是僵尸,没有硬件的软件是幽灵。各类软件技术的最终目的就是设计出好的软件,以各类软件技术的最终目的就是设计出好的软件,以便最大限度地合理利用和发挥硬件的能力,使计算机便最大限度地合理利用和发挥硬件的能力,使计算机系统更好地为用户服务。系统更好地为用户服务。第43页,本讲稿共65页1.3.1 1.3.1 基于软件功能的分类从计算机软件系统构成基于软件功能的分类从计算机软件系统构成1.31.3软件的分类软件的分类(如图如图3所示所示)软件系统系统软件操作系统数据库关系系统 各种服务器系统语言处理程序应用软件信息管理工程计算图形处理 各类应用软件第44页,本讲稿共65页*系统软件系统软件指软件制售商为释放硬件潜能、方便使用而配备的软指软件制售商为释放硬件潜能、方便使用而配备的软件如操作系统、各种语言编译件如操作系统、各种语言编译/解释系统、网络软件、数解释系统、网络软件、数据库管理软件、各种服务程序、界面工具箱等。据库管理软件、各种服务程序、界面工具箱等。基于软件功能的分类从计算机软件系统构成分类一台机器上提供的系统软件的总和叫做软件一台机器上提供的系统软件的总和叫做软件(开发开发)平台平台。第45页,本讲稿共65页*应用软件应用软件是解决某应用领域问题的软件。是解决某应用领域问题的软件。基于软件功能的分类从计算机软件系统构成如财会软件、如财会软件、通信软件、通信软件、科技计算、计算机辅助制造科技计算、计算机辅助制造(CAD/CAM)(CAD/CAM)软件软件当今整个社会信息化的情况下系统软件和应用软件的界线正当今整个社会信息化的情况下系统软件和应用软件的界线正在模糊在模糊利用应用软件提供的程序编写的程序利用应用软件提供的程序编写的程序,叫做叫做二次开发二次开发第46页,本讲稿共65页1.3.2基于软件技术特点的分类(1 1)业务软件)业务软件 处理日常业务处理日常业务(2 2)科技计算软件)科技计算软件 注重数值算法的速度和精度。目前转向多机注重数值算法的速度和精度。目前转向多机协作计算、并行计算、可视计算等。协作计算、并行计算、可视计算等。第47页,本讲稿共65页(3 3)嵌入式)嵌入式(embeded)(embeded)软件软件嵌入式软件具有可裁剪、低资源占用、低功耗等嵌入式软件具有可裁剪、低资源占用、低功耗等特点,用于工业产品自动化、智能化仪表等特点,用于工业产品自动化、智能化仪表等。(4 4)实时)实时(real-time)(real-time)软件软件实时软件实时软件:它除了要满足应用的功能需求以外它除了要满足应用的功能需求以外,更重要更重要的是还要满足应用提出的实时性要求多用于工业控制系统,的是还要满足应用提出的实时性要求多用于工业控制系统,实时仿真系统。实时仿真系统。基于软件技术特点的分类第48页,本讲稿共65页(5 5)个人计算机软件)个人计算机软件(6 6)人工智能软件)人工智能软件以非数值算法解题,一般有一知识库存放知识和规以非数值算法解题,一般有一知识库存放知识和规则。则。字处理、报表、制图、多媒体写作、娱乐游戏、字处理、报表、制图、多媒体写作、娱乐游戏、个人数据库、个人财务、联机上网等。个人数据库、个人财务、联机上网等。基于软件技术特点的分类第49页,本讲稿共65页1.3.3基于软件工作方式的分类 (1 1)实时处理软件)实时处理软件实时软件实时软件:它除了要满足应用的功能需求以外它除了要满足应用的功能需求以外,更更重要的是还要满足应用提出的实时性要求。重要的是还要满足应用提出的实时性要求。(2 2)分时软件)分时软件 分时软件的基本设计原则是分时软件的基本设计原则是:尽量缩短系统的平均响应时间尽量缩短系统的平均响应时间并提高系统的吞吐率并提高系统的吞吐率,在单位时间内为尽可能多的想应用户在单位时间内为尽可能多的想应用户请求服务。请求服务。第50页,本讲稿共65页(3 3)交互式软件)交互式软件 交互软件的基本设计原则是,友好的人机交互界面,交互软件的基本设计原则是,友好的人机交互界面,方便的用户操作。方便的用户操作。(4 4)批处理软件)批处理软件批处理软的基本设计原则是:批量处理的功能。批处理软的基本设计原则是:批量处理的功能。基于软件工作方式的分类 第51页,本讲稿共65页1.3.4基于软件规模的分类*微型软件微型软件*小型软件小型软件*中型软件中型软件*大型软件大型软件*极大型软件极大型软件每一类软件在管理方面要求程度不同每一类软件在管理方面要求程度不同*1.4 计算机常用软件介绍第52页,本讲稿共65页1.4 1.4 计算机常用软件介绍计算机常用软件介绍1.1.操作系统操作系统(operating system)操作系统是对硬件的首次扩充,它管理着计算机操作系统是对硬件的首次扩充,它管理着计算机系统的软、硬件资源,其它软件都是在操作系统系统的软、硬件资源,其它软件都是在操作系统的基础上运行的。的基础上运行的。例如例如:Unix Linux Windows XP第53页,本讲稿共65页有单机模式、分布式模式、客户机有单机模式、分布式模式、客户机/服务器模式服务器模式计算机常用软件介绍2.2.数据库管理系统数据库管理系统信息管理是计算机的一个重要应用领域,而信息信息管理是计算机的一个重要应用领域,而信息管理的核心就是数据库管理系统。管理的核心就是数据库管理系统。微机微机Windows平台的:平台的:Access大型关系型数据库:大型关系型数据库:SQL Server,Oracle等等。(C/SC/S);浏览器);浏览器/服务器模式(服务器模式(B/S)B/S)等。等。第54页,本讲稿共65页3.3.群件系统群件系统群件拓宽了电子邮件的内涵,涵盖很多通信协调功能;群件拓宽了电子邮件的内涵,涵盖很多通信协调功能;如制定会议的计划、共享项目进度表。如制定会议的计划、共享项目进度表。4.4.办公软件套件办公软件套件字处理软件、电子表格处理软件、演示制作软件、字处理软件、电子表格处理软件、演示制作软件、个人数据库、个人信息管理软件个人数据库、个人信息管理软件如:如:Office、WPS等等。计算机常用软件介绍第55页,本讲稿共65页多媒体处理软件主要包括图形、图像处理、动画制作、多媒体处理软件主要包括图形、图像处理、动画制作、音频视频处理、桌面排版等。音频视频处理、桌面排版等。计算机常用软件介绍:5.5.多媒体处理软件多媒体处理软件6.6.程序开发工具环境程序开发工具环境集成的环境中、调试工具、编译工具、运行工具、图标集成的环境中、调试工具、编译工具、运行工具、图标图像制作工具图像制作工具 如:如:VC+VC+、VFVF、VBVB等等。第56页,本讲稿共65页计算机常用软件介绍:7.7.网络工具软件网络工具软件浏览器、邮件收发软件、文件传送软件、浏览器、邮件收发软件、文件传送软件、BBSBBS软件等。软件等。8.8.系统工具软件系统工具软件反病毒软件、压缩软件、快速复制软件、磁盘维护与诊反病毒软件、压缩软件、快速复制软件、磁盘维护与诊断软件、加密解密软件、系统测试软件等。断软件、加密解密软件、系统测试软件等。9.9.其它一些常见软件其它一些常见软件学习、游戏软件、电子字典、各种小工具软件。学习、游戏软件、电子字典、各种小工具软件。*1.5软件的发展和软件危机 第57页,本讲稿共65页(从(从2020世纪世纪8080年代中期至今):软件产业在年代中期至今):软件产业在1.5 1.5 软件的发展和软件危机软件的发展和软件危机 1.5.1 1.5.1 计算机系统的发展历程计算机系统的发展历程(2020世纪世纪6060年代中期以前):程序设计阶段。年代中期以前):程序设计阶段。(从(从2020世纪世纪6060年代中期到年代中期到7070年代中期):年代中期):(从(从2020世纪世纪7070年代中期到年代中期到8080年代中期):软件年代中期):软件程序系统阶段程序系统阶段“软件工程软件工程”学科诞生。学科诞生。工程阶段。工程阶段。世界经济中已经占有举足轻重的地位。世界经济中已经占有举足轻重的地位。第一代第一代第三代第三代第四代第四代第二代第二代第58页,本讲稿共65页软件工程:软件工程:6060年代末开始,为了解决软件危机年代末开始,为了解决软件危机 而形成的一门新兴学科,强调采用工程而形成的一门新兴学科,强调采用工程 的概念、原理、技术和方法指导软件的的概念、原理、技术和方法指导软件的 开发和维护。开发和维护。目的:目的:提高软件的生产率和软件的质量,增加提高软件的生产率和软件的质量,增加 软件的可维护性,减少软件维护所需要软件的可维护性,减少软件维护所需要 的工作量。的工作量。软件危机*第59页,本讲稿共65页4.2 软件工程概述硬件技术高速发展,成本以十年两位数的速度递减,导致了对软件的强烈需求。硬件技术高速发展,成本以十年两位数的速度递减,导致了对软件的强烈需求。而软件系统的规模越来越大、越来越复杂、开发周期越来越长,软件的手工业生而软件系统的规模越来越大、越来越复杂、开发周期越来越长,软件的手工业生产方式使其成本急骤上升质量差,指定的进度表和完成日期很少能按时实现,研产方式使其成本急骤上升质量差,指定的进度表和完成日期很少能按时实现,研制过程很难管理制过程很难管理1968年软件业界和科学工作者提出了软件工程的思想:任何软件都应当和其它产业的产品一样,由专业人员制作(软件中是系统分析员、高级程序员、程序员),以系统的、工程的方法开发,并提供全方位的售后服务管理(不能因开发者离开调走而无人管).软件危机 第60页,本讲稿共65页提出:软件提出:软件=程序(程序(含数据含数据)+文档文档软件危机主要表现:主要表现:软件质量难以保证,出错率高,软软件质量难以保证,出错率高,软 件维护困难,甚至不可维护,软件开发进度难件维护困难,甚至不可维护,软件开发进度难 以控制,程序之间接口混乱。以控制,程序之间接口混乱。软件危机:软件危机:在软件开发与维护中出现的问题。在软件开发与维护中出现的问题。第61页,本讲稿共65页小结1 程序与软件的概念程序与软件的概念程序程序 是按事先设计的是按事先设计的功能功能和和性能性能要求编要求编 写的写的指令序列指令序列。是由程序语言抽象的符号表达,具有静态与动态属性。是由程序语言抽象的符号表达,具有静态与动态属性。注意注意:程序并不是软件,程序只是软件的组成部分程序并不是软件,程序只是软件的组成部分软件软件 由计算机程序由计算机程序、数据数据及及文档文档组成组成,作为商品以有形介质,作为商品以有形介质为媒体进行易的程序称做软件。为媒体进行易的程序称做软件。软件的特性软件的特性 软件是手工开发方式的软件是手工开发方式的信息商品信息商品无明显制造过程它具有无明显制造过程它具有(三性)抽象性(三性)抽象性,无磨损性,对计算机硬件依赖性。,无磨损性,对计算机硬件依赖性。第62页,本讲稿共65页2软件的分类软件的分类软件系统计算机系统硬件系统主机外设系统软件应用软件中央处理器内存储器(主存)内存储器外储器(辅存)运算器控制器第63页,本讲稿共65页3。软件危机与软件工程。软件危机与软件工程软件危机软件危机:在软件开发与维护中出现的问题:在软件开发与维护中出现的问题。软件工程:强调采用工程 的概念、技术和方法指导软件的 开发和维护。提高软件的生产率和软件的质量增加软件的可维护性。第64页,本讲稿共65页 课后作业课后作业1 1。请说出程序和软件各有哪些特性?。请说出程序和软件各有哪些特性?2 2。程序就是软件吗?。程序就是软件吗?为什么?为什么?第65页,本讲稿共65页