欢迎来到天天文库
浏览记录
ID:45088116
大小:1.22 MB
页数:147页
时间:2019-11-09
《《GIS软件工程》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、GIS软件工程第一章概述软件软件定义:“软件”(software)这一名词是在60年代初从国外传来。对于它的一种公认的解释为:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。1软件的特点:软件是一种逻辑实体,而不是具体的物理实体。软件的生产与硬件不同,一旦某一软件项目研制成功,以后就可以大量地复制同一内容的副本。软件的运行和开发常常受到计算机系统的限制。软件的分类:按功能:系统软件、支撑软件、应用软件。按软件规模:超大型软件、大型软件、中型软件、小型软件。按软件服务对象的范围:项目软件、产品软件。
2、软件的发展1940年代中期到1950年代末:程序设计阶段。这时候的软件主要是为一些具体应用而专门编写的,软件通常是规模较小的程序,编写者和使用者往往是同一个人或同一组人。60年代初到60年代末:软件作坊阶段。软件成为产品,出现许多“软件作坊”但仍然沿用早期的个体化软件开发方法,这种个体化的特性使得软件最终成为不可维护,于是出现了软件危机。约为70年代以后:软件工程阶段。针对软件开发中出现的软件危机,提出了软件工程的概念,在软件开发逐步采用软件工程方法。软件危机与软件工程在1960年代,软件规模的不断增长,但在开发中没有把软件开发作为一
3、个系统工程来考虑,认为软件开发就是写程序并设法使之运行,忽视软件分析的重要性,轻视软件维护。最终导致软件危机。2软件危机的主要表现:对软件开发成本和进度的估计不准确;产品不符合用户的实际需要;软件产品的质量往往靠不住;软件常常是不可维护的。软件危机的原因软件规模的不断增长;没有把软件开发作为一个系统工程来考虑,认为软件开发就是写程序并设法使之运行,忽视软件分析的重要性,轻视软件维护。1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用了“软件工程”这个名词,在此以后,软件开发逐步
4、采用软件工程方法。软件工程的定义:关于软件工程目前有很多定义。1983年IEEE(国际电子电气工程师协会)给出的定义为“软件工程是开发、运行、维护和修复软件的系统方法”。软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。软件工程是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。B.W.Boehm在1983年提出了软件工程的如下准则:用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品
5、控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精不断改进软件工程的实践软件生命周期软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生命周期。软件工程是把软件生命周期依此划分为若干个阶段,每个阶段有相对独立的任务,然后对每一阶段进行严格管理。3把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度;在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,使得软件开发的全过程以一种有条不紊的方式进行,这样,能保证软件
6、的质量,特别是提高软件的可维护性。划分软件生命周期阶段的方法有许多种,软件规模、种类、开发方法、开发环境以及开发时使用的方法论都会影响到软件生命周期阶段的划分。在划分软件生命周期的阶段时,应该遵循的一条基本原则,就是使各阶段的任务彼此间尽可能相对独立,同一阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件开发的组织管理。无论采用哪种划分方法,软件的生存周期都包括软件定义、软件开发、软件使用与维护三个部分。一般情况下,软件的生命周期通常划分为五个阶段,即系统分析、软件设计、程序编码、软件测试
7、及运行维护。软件开发模型软件开发模型给出了软件开发活动各阶段之间的关系,常用的开发模型是瀑布模型和原型模型。软件开发模型4瀑布模型传统的开发模型是瀑布模型,各阶段的工作自顶向下从抽象到具体顺序进行,就象奔腾不息的瀑布,一泻千里,总是从高处依次流到低处。系统分析软件设计程序编码软件测试系统维护瀑布模型瀑布模型的特点:阶段间具有顺序性和依赖性推迟实现的观点质量保证的观点瀑布模型的缺点瀑布模型意味着在生命周期各阶段间存在着严格的顺序性和依赖性。它要求在着手进行具体的开发工作之前,必须通过需求分析预先定义并“冻结”软件需求,然后再一步一步地
8、实现这些需求。但在实际情况中,除了个别我们比较熟悉的软件,我们很难在软件建立之前确定出有效的应用模型。某些类型的系统需求是模糊的项目参与者之间存在通信鸿沟预先定义的需求可能是过时的首先建立一个能反映用户主要需求的原型系统
此文档下载收益归作者所有