收藏 分享(赏)

GIS软件开发基础1newPPT课件.ppt

上传人:Facebook 文档编号:3834032 上传时间:2018-11-20 格式:PPT 页数:37 大小:419.50KB
下载 相关 举报
GIS软件开发基础1newPPT课件.ppt_第1页
第1页 / 共37页
GIS软件开发基础1newPPT课件.ppt_第2页
第2页 / 共37页
GIS软件开发基础1newPPT课件.ppt_第3页
第3页 / 共37页
GIS软件开发基础1newPPT课件.ppt_第4页
第4页 / 共37页
GIS软件开发基础1newPPT课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、Chapter 1 软件开发方法,Section 1 软件概述,本节要回答的问题,什么是软件 ? 软件有哪些特征? 什么是软件危机? 什么是软件生命周期? 软件开发技术发展史 ,第2页,一、软件和软件的特征,1.什么是软件? 软件是各种程序和有关资料的总称。 程序是: 为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合 是人们求解问题的逻辑思维活动的代码化描述 程序的最重要的目的是: 便于阅读、交流,第3页,软件的基本概念,第4页,程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合,软件=程序+文档+数据,IEEE的软件定义:指计算机程序、方法和规则、相关的文档资

2、料以及在计算机上运行它所必需的数据,计算机系统由计算机硬件和软件构成,计算机能完成各种神奇的功能是因为存在各种软件,什么是软件?,什么是程序?,Roger S. Pressman 对软件的认识,“计算机软件已经成为一种驱动力。 它是进行商业决策的引擎; 它是现代科学研究和工程问题寻求解答的基础; 它也是鉴别现代产品和服务的关键因素。 它被嵌入在各类系统中:交通、医疗、电信、军事、工业生产过程、娱乐、办公、难以穷举。 软件将成为从基础教育到基因工程的所有领域新进展的驱动器。”,第5页,2.软件的特征,软件是逻辑产品 软件产品质量的体现方式不同 软件产品的生命周期和失败曲线不同 软件产品的成本构成

3、不同 大多数软件仍然是定制生产的 软件产品的不同属性,第6页,二、软件分类,软件按不同方式可以划分为不同的类型: 按功能划分 按规模划分,第7页,按功能划分软件分类,第8页,系统软件,是支持计算机系统正常运行并实现用户操作的那部分软件。 一般是在计算机系统购买时随机携带的,也可以根据需要另行安装。 系统软件的主要特征是: 与硬件有很强的交互性 能对资源共享进行调度管理 能解决并发操作处理中存在的协调问题 其中的数据结构复杂,外部接口多样化,便于用户反复使用,第9页,系统软件包括,操作系统(Operating System)网络系统(Network System)语言编译系统( Language

4、 Compiler)通信软件(Communications Software) 工具软件(Tools Software),第10页,应用软件,应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。它可以拓宽计算机系统的应用领域,放大硬件的功能。应用软件具有无限丰富和美好的开发前景。,第11页,应用软件例, 事务处理软件 实时软件 科学计算和数据处理软件 嵌入式软件 人工智能软件,第12页,按规模划分软件分类,第13页,三、软件开发技术发展史,应用驱动是推进软件发展进程的主线: 从软件发展早期的按个人意愿编写代码,到按软件工程的理论生产大型应用系统; 从手工作坊式的封闭性制作到按标

5、准制式、大工业生产的开放系统; 从注重个人精雕细琢地编写代码的技巧到注重工程项目的管理和开发团队的协作; 从为特定应用定制设计到以复用为目标的组件式开发; 从由少数软件天才的编程艺术到由广大用户直接参与的应用开发。,第14页,阶段划分,半个多世纪以来,软件及软件开发技术在理论、观念、目标及技术方法等方面都发生了很大变化。以10年左右为间隔,划分为五个阶段。,第15页,第一阶段20世纪 40-50年代,早期计算机是由只有硬件的“裸机”组成,计算机中不装任何软件。由于采用电子管作为逻辑电路的元器件,系统稳定性很差。那时人们只关心硬件的性能和技术指标,系统设计与实现是以硬件为中心,软件开发(实际上是

6、程序设计)处于从属地位。,第16页,本期软件主要特征,处理对象:由“0”和“1”组成的二进制序列 ; 用途:主要是科学计算及军事应用(弹道计算); 目的:“确定计算机硬件动作的序列”; 开发方法:经验主义; 开发工具:机器语言; 认识:计算机的用途是快速计算。 发展概况:机器语言、汇编语言、FORTRAN语言; 技术突破:存储器技术、 “迭代-反复”算法、观念转变 ; 理论成就:冯诺依曼理论和图灵测试; 目标:用最少资源来获得最大运算能力。,第17页,第二阶段20世纪 60年代,由于硬件技术的发展,在电路设计中广泛采用晶体管和集成电路,使计算机的体积大大缩小,系统稳定性提高,价格降低。开始出现

7、以屏幕显示器和键盘输入方式的商用计算机,促进了计算机的产、销量急剧上升。在软件领域,应用领域拓宽,社会对应用软件的需求急剧增加,软件的地位和作用不断提高,从而有力地推动了软件技术和开发方法的改进和发展。,第18页,本期软件主要特征,处理对象:高级语言编写的程序 ; 用途:科学计算、商务应用和数据处理; 目的:“确定计算机指令的动作序列”; 开发方法:功能性程序设计; 开发工具:汇编语言、高级语言; 认识:软件应独立于硬件;必须规范程序内部控制流; 发展概况:高级语言;编译技术;非数值商业应用;软件危机 技术突破:高级语言促进计算机应用 ;功能性程序设计技术; 理论成就:软件工程解决软件危机;结

8、构化程序设计理论; 目标:扩大程序系统的规模,以适应更复杂的应用。,第19页,第三阶段20世纪 70年代,这个时期计算机硬件的发展具有里程碑的意义,采用诸如大规模集成电路,分布式技术、网络技术、嵌入式等高新技术极大地提高了计算机系统的处理能力,特别是微处理器的诞生,开创了大众化使用计算机的新时代。该阶段软件的特征是:高性能的计算机系统对软件的功能和性能提出了更高的要求。,第20页,本期软件主要特征,处理对象:小规模系统的程序设计 ; 用途:商务应用;网络互联;数据库应用; 目的:“研究数据结构和算法以寻求处理的时-空平衡”; 开发方法:研究数据结构和算法;结构 化开发方法; 开发工具:高级语言

9、;数据库技术; 认识:平衡时-空平衡复杂度;程序执行的停机;程序可读性; 发展概况:数据独立(文件、DB);对复杂系统的规格说明; 技术突破:数据结构及算法 ;区分了应用软件和系统软件; 理论成就:数据结构及算法 理论;形式方法;软件工程方法; 目标:解决软件危机。,第21页,第四阶段20世纪 80年代,这个时期计算机硬件的发展体现在个人计算机和计算机网络。该阶段软件发展的特征是:个人计算机应用软件异军突起,形成信息产业中新的增长点。伴随微处理器和嵌入式系统的发展,计算机应用开始深入我们的日常工作和生活。旺盛的市场需求和政府企业甚至广大百姓的资金投入,孕育了大量软件企业。市场竞争和市场经济规则

10、促进了软件产品功能更强,质量更高,性能价格比更好。大型机(包括中、小型机)软件向个人计算机上移植,从而为软件提供了更广阔的发展空间和巨大的用户市场。,第22页,本期软件主要特征,处理对象:大型系统的程序设计 ; 用途:关系数据库应用;各领域计算机应用; 目的:大众化普及应用计算机; 开发方法:构造系统方法;用标记工具描述系统;文档是 管理系统结构的主要手段; 开发工具:高级语言;基于PC的开发工具;早期CASE工具; 认识:软件生命周期;强调开发组协作的重要性; 发展概况:软件工程研究机构;CASE环境;图形界面系统; 技术突破:C/S计算模式 ;GUI图形用户界面; 理论成就:RDB的理论;

11、 软件工作量度量COCOMO;软件过程改进模型CMM; 目标:开发更大规模和复杂性软件系统,满足应用的需求。,第23页,第五阶段20世纪 90年代,当计算技术发展到网络计算,标志着计算机网络时代的到来。伴随处理分散的海量数据的应用需求,诞生并促进了分布式技术、并行计算、人工神经网络等技术的发展。反映该阶段的软件特征是:多媒体信息的实时处理技术成为研究的热点;计算机系统内部传统的处理模式(单指令流单数据流SISD和单指令流多数据流SIMD)受到极大挑战,具有并行处理功能的新型处理模式(多指令流多数据流MIMD)倍受关注和厚爱;面向对象的开发方法代表着在新处理环境中提高软件开发效率和质量的方向;信

12、息唾手可得的网络服务软件满足着人们日益增长的应用需求。,第24页,本期软件主要特征,处理对象:基于Internet/Web的程序设计 ; 用途:网络互联及网络应用; 目的:通过支持跨地区、跨部门、跨时间的群组共享信息协同工作来提高群组,集团的整体的生产率; 开发方法:基于组件、基于Internet/Web的开发方法; 开发工具:组件技术;基于Web开发工具;现代CASE工具 ; 认识:非功能性需求的重要性;基于环境的软件过程改造; 发展概况:Internet/Intranet;基于Web应用;虚拟现实技术;新技术涌现,但缺乏理论指导; 技术突破:设计模式 ;浏览器技术;CORBA/COM/OL

13、E技术; 理论成就:“交互模型”作为网格计算的理论基础; 目标:正确的时刻,把正确的信息,安全地送给需要的人。,第25页,四、软件危机,从20世纪60年代开始,软件界经常遭受软件危机的袭扰。 以IBM公司的OS/360操作系统为例。它共有4000多个模块、100万行指令,共投入5000人年,耗资5亿美元,但在交付使用的系统中仍找出2000个以上的错误。 经研究发现,研制软件系统需要投入大量的人力、物力和资金,但是系统的质量却无法保证。开发软件所需的高成本与软件产品的低质量之间存在尖锐的矛盾。软件开发陷入不可自拔的恶性循环之中。这种现象被称为“软件危机”(Software Crisis)。,第2

14、6页,1.软件危机的表现,软件开发进度难以预测 软件开发成本难以控制 用户对软件功能难以满足 软件产品质量无法保证 软件产品难以维护 软件通常缺少适当的文档资料 生产率提高的速度不能满足社会需要,第27页,2.软件危机产生的原因,产生软件危机有两个方面的原因: 与软件本身的特点有关;是内在因素、客观的存在,只能因势利导加以解决。 与软件开发和维护的技术方法有关;是外在因素,可以完善、提高。,第28页,(1)软件特点的因素(内因),软件是逻辑产品,是代码化了的人的思维活动。在总体构思时,别人无法管理和干预。在写出程序、并在机器上运行之前,进展情况难以掌握,开发质量也无法评估。这些都给管理和控制带

15、来不便。软件是特定问题在计算机上的运行描述。实际问题的复杂性决定了一个实用软件系统规模往往十分庞大。大有大的难处。程序规模越大,控制、管理难度也就越大。,第29页,(2)软件开发技术管理的因素,开发人员和用户之间的矛盾。许多软件系统开发失败的主要原因是开发人员在没有准确、完整地了解了用户的需求后就急于编程;用户对需求也往往不能准确、完整地提出。软件开发各阶段任务不明确,方法不科学。软件产品有其生命周期。在周期的各个阶段有其具体的任务,如何完成任务,各个阶段有不同的技术方法和操作步骤。只有科学的按生命周期各阶段的任务去组织实施,才能保证质量,降低成本;急于求成,不按科学规律、方法实施,只能“事倍

16、功半”,事与愿违。重编程,轻分析;重开发,轻维护;重程序,轻文档。软件产品的使用寿命很长。在这期间要对软件进行必要的修改。据统计数据表明,软件维护的费用占总费用的55%70%。软件工程的一个重要目标就是提高软件的可维护性,减少软件维护的代价。,第30页,3.导致软件开发项目失败的原因,从表1-4的1、2、4、6、8可以看出, 用户需求不稳定、不清晰、不完整是项目失败的主要原因,应引起足够的重视。软件开发方法的研究应针对项目失败的原因系统地提出解决办法。,第31页,4.解决软件危机的途径,(1)采用现代化、社会化的组织管理方式; (2)使用成功的技术和方法(面向过程、面向对象、自顶向下等); (

17、3)使用更好的软件开发工具(汇编、C、VC、各种数据库管理系统等);,第32页,五、软件生命周期,软件生存周期是指一个软件从提出开发要求直到该软件报废为止的整个时期。 针对不同的开发模型、不同的开发对象以及不同的开发方法,软件生命周期可以有不同的划分。 如果不考虑上述不同的因素以及应用领域、项目规模和复杂性,软件生命周期可以划分为软件定义、软件开发和软件维护三个时期,每个时期又进一步划分成若干个阶段。,第33页,软件定义,软件定义时期的核心任务是: “做什么”。即要: 确定软件开发工程的总目标; 确定工程的可行性; 提出实现工程目标应该采用的策略及系统应实现的功能; 估计完成该项工程需要的资源

18、和成本, 并且制定工程进度表。 这个时期的工作通常又称为系统分析,由系统分析员负责完成 软件定义时期通常进一步划分成3个阶段:问题定义、可行性研究和需求分析,第34页,软件开发,软件开发时期的核心任务是:“怎么做”。即要具体设计和实现在软件定义时期定义的软件系统。 它又包括4个阶段: 总体设计 详细设计 编码 测试 其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。,第35页,软件维护,维护时期的核心任务是:“改变”。 即要保证软件持久地满足用户各个方面改变的需要。维护时期不再进一步划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程。例如,如果提出的变更要求是更加新的功能,那就要涉及从新一轮的软件开发过程:需求分析、系统设计、编码及测试。,第36页,本节小结,1.1软件概述 一、软件和软件的特征 二、软件分类 三、软件开发技术发展史(5个阶段) 四、软件危机: 什么是软件危机 软件危机的表现 产生软件危机的原因 解决软件危机的途径 五软件的生存周期 (三个时期),第37页,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报