软件工程:
软件工程是用科学知识和技术原理来定义,开发,维护软的一门学科。即:将用户的需求转化成有效的软件解决方案的一系列活动。
gis软件工程特点:
1)存储技术,采用两种数据库:空间数据库和属性数据库。
2)数据组织和处理模式:沿袭地图处理模式。
3)系统组成:支持树型的系统结构,以图层为单位进行数据交换。
4)空间数据管理:可处理二维空间数据,dem数据,三维实体的表面显示。
5)数据共享和功能共享:不同格式空间数据之间转换,实现有缝的数据共享。
gis软件工程。
是在gis软件的开发整个过程中,遵循一般软件开发的工程化原理和方法,并照顾到gis软件开发的特殊规律和要求,对gis软件从可行性研究,需求分析,总体设计,详细设计,软件编制,软件测试,直到软件维护的各个阶段进行工程化规范的一门技术。
gis软件工程的特色。
系统复杂度大。
数据在系统中具有特别地位。
系统表达方式复杂。
系统更新速度快。
系统维护工作量大。
易操作性要求高。
软件开发的阶段。
可行性分析,需求分析,总体设计,详细设计,编码,测试,维护。
gis软件工程生存周期:
指一个gis软件从提出开发要求开始直到该软件报废为止的整个时期。
前期工程。设计工程。
数据工程。工程实施。
维护工程。软件生存周期模型:
描述软件开发过程中各种活动如何进行的模型。
瀑布式模型:将软件生存周期各活动规定为依线性顺序连接的若干阶段的模型。
包含以下活动:
软件需求分析。
设计。**生成。
测试。维护。
特点:具有顺序性和依赖性。
推迟实现的观点。
质量保证的观点。
增量模型:融合了瀑布模型的基本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序列。
螺旋模型:将瀑布模型和增量模型结合起来,加入风险分析的一种模型。
优点。对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;
减少了过多测试或测试不足;
维护和开发之间并没有本质区别。
特点。风险驱动的。
主要适用于内部开发的大规模软件项目。
喷泉模型:对软件复用和生存周期中多项开发活动的集成提供了支持,以面向对象的软件开发方法为基础,它适合面向对象的开发方法。
特点:软件系统可维护性较好;
各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡;
整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代;
模型具有增量开发特性,即能做到分析一点、设计一点、实现一点,测试一点,使相关功能随之加入到演化的系统中。
模型是对象驱动的,对象是各阶段活动的主体,也是项目管理的基本内容。
智能模型是基于知识的软件开发模型,它把瀑布模型和专家系统综合在一起。该模型在各个开发阶段都利用了相应的专家系统来帮助软件人员完成开发工作。
为此,建立了各个阶段的知识库,将模型、相应领域知识和软件工程知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与包含应用领域知识规则的其他专家系统相结合,构成该应用领域的开发系统。
gis软件的开发步骤:
1 确定gis开发计划。
2 gis需求分析。
3 系统设计。
4 程序编码。
5 产品测试。
6 运行和维护。
可行性研究-可行性研究的步骤]
确定系统的规模和目标。
分析现有系统。
导出高层逻辑模型。
导出和评价各种方案。
推荐可行的方案。
gis项目开发计划:
1分解系统,将功能分为独立的小任务。gis具有自己的特点:数据入库,空间分析等。
2对任务分类,确定任务性质。
3确定各个任务所需要的资源,落实各种资源。
4组合任务,形成计划。
系统分析-需求内容。
1) 功能需求。
系统做什么?
系统何时做什么?
系统何时及如何修改或升级?
2) 性能需求。
存储容量限制。
执行速度、相应时间。
吞吐量。3) 数据需求。
输入、输出数据的格式?
接收、发送数据的频率?
数据的准确性和精度?
数据流量?数据需保持的时间?
4) 环境需求。
硬件设备:机型、外设、接口(地点、分布、温度、湿度、磁场干扰等)
软件: 操作系统。
gis操作平台和二次开发组件等。
数据库。5) 可靠性需求。
故障恢复。备份能力。
6) 安全保密要求。
需要对访问系统或系统信息加以控制吗?
如何隔离用户之间的数据?
用户程序如何与其它程序和操作系统隔离?
数据保密。7) 界面需求。
什么颜色和样式?
操作习惯?8) 资源需求。
软件运行时所需的数据、软件、内存空间等资源。
软件开发、维护所需的人力、支撑软件、开发设备等。
9) 软件成本消耗与开发进度需求。
开发有规定的时间表吗?
软硬件投资有无限制?
10)预先估计以后系统可能达到的目标。
逆向需求说明软件系统不应该做什么。
理论上有无限多个逆向需求,我们应该仅选取能够澄清需求且消除可能发生的误解的那些逆向需求。
结构化分析方法:用特定的符号和工具,按照一定的结构将需求表示出来。
结构化分析方法特点。
采用简单的易读的符号。
三种基本结构。
自顶向下逐步求精的设计方法。
结构化分析方法的描述工具。
数据流图:是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出以及把逻辑输入转换为逻辑输出所需要的加工。
数据字典:描述软件系统的信息流程和加工,sa方法使用数据字典对这些成分进行详细说明。
数据流图中的数据流名、数据存储名、数据项名、基本加工名的严格定义的集合构成了数据字典。
描述加工逻辑的结构化语言,判定表,判定树。
是基本加工条目中的一项重要内容,有三种工具来描述加工逻辑:结构化语言,判定表,判定树。
三种表达工具的比较。
三种工具各有优缺点,所以在不同的情况下,使用三种不同的工具。
从掌握这项工具的难易程度看,判断树最容易被初学者接受,易于掌握;结构化语言的难度居中;而判断表的难度最高。
对于逻辑验证,判断表最好,它能够把所有的可能性全部考虑到,能够澄清疑问;结构化语言较好;而判断树不如这两项工具。
从直观表达逻辑来看,判断树最好,它用图形表达,一目了然,易于和用户讨论;结构化语言居中;而判断表的表达能力最低。
作为程序设计资料,结构化语言和判断表最好,而判断树却不如这两项工具。
对于可修改性,结构化语言的可修改性较高;判断树居中;而判断表的可修改性最低。
面向对象(object oriented)的方法简称为oo方法。
面向对象的程序设计是以对象为基础,以消息驱动对象执行的程序设计技术。
对象——是对客观世界中事物的一种抽象。是由数据(属性)及其之上的操作(行为)组成的封装体。
对象类``从对象的观点看,对象类(简称类)就是具有共同属性、共同操作性质的对象的集合。一个类实质上定义了一种对象类型,它描述了属于该类型的所有对象的性质。
coad分析方法:通过研究与特定应用有关的对象以及对象与对象之间的结构与相互作用上来分析和解决问题。
ooa方法5个步骤。
1确定类和对象。
2确定结构。
3定义主题。
4定义属性和实例关联。
5定义服务。
omt对象建模技术(object modelling technique) ,以面向对象思想为基础,通过构造一组相关模型来获得关于问题的全面认识。
omt方法使用3种模型从不同角度来描述一个系统:
1)对象模型——描述系统对象、类和它们之间关系的静态结构,反映了系统的“数据”性质。
2)动态模型——用对象的状态和事件描述了瞬时的、行为化的系统的“控制”性质。
3)功能模型——描述系统内的数据变化,指明了如何用输入值得到输出值,即反映了系统的“功能”性质。
对象模型。对象模型是通过描述系统中的对象、对象间的关系、标识类中对象的属性、操作来表示系统的静态组织结构。
对象模型是3种模型中最重要的模型。
面向对象的设计技术强调的是围绕对象,而不是围绕功能来构筑系统。
动态模型。动态模型描述系统中与时间有关的方面以及操作执行的顺序,包括引起变化的事件,事件的序列,定义事件序列上下文的状态以及事件和状态的主次。
动态模型是用“状态图”和“事件追踪图”表示。
一个动态模型可由多个状态图表组成。
基本概念:事件、脚本和事件追踪、状态、 触发条件与事件、动作(操作)
功能模型。功能模型描述了系统中要发生什么。
功能模型考虑如何从输入值得到输出值,而不考虑参加计算的数据按什么时序执行。
功能模型采用数据流图描述,一个功能模型由多个分层的数据流图组成。
3个模型之间的关系:
1)通过3个模型,系统以3视图的形式呈现给设计人员,以便设计者
采用统一的描述方法设计实现。
2)模型是可以独立地进行测试和理解的,但不是无关的、绝对独立。
的。一个好的设计是指:实现了系统内部不同实质的分离,但又
相互补充,限制耦合。
3)三者关系:
结构化设计的基本特点。
通过自顶向下分解和层次组织的方法来简化系统,产生模块结构运用一系列的图表工具。
为使系统设计流程易于理解,结构化设计使用了两种主要的图表工具:伪码和结构图。伪码描述的是模块的处理逻辑,用来表达程序的设计思路;结构图用于描述软件的总体结构,采用自顶向下、层次组织的方法。
模块:在程序中数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素。
模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分若干模块的过程。
模块独立性,:是指软件系统中每个模块只完成系统要求的独立的子功能, 并且与其它的模块的联系最少且接口简单。
耦合是模块之间的互相连接的紧密程度的度量。
内聚是模块所执行任务的整体统一性的度量。
模块独立性比较强的模块应是高内聚低耦合的模块。
模块的分解。
分解是指把一个模块分解成若干个从属于它的下层模块。
一般按功能分解,分解到成为一个小的功能单一的模块为止。
一般一个模块内包含的语句在30~50条左右较好(指高级语言)。
模块的扇出和扇入。
模块的扇出指一个模块拥有的直属下级模块的个数,一般扇出数控制在7以内。
模块的扇入是指一个模块的直接上级模块的个数。
在设计中,扇入系数大,说明模块分解得好,通用性强,冗余度低,减少高扇出争取高扇入。
程序流程图(pfg, program flow graph)又称为程序框图,它是历史最悠久使用最广泛的描述软件设计的方法,然而它也是用得最混乱的一种方法。
软件工程复习
单选填空简答思考题。1 传统的软件瀑布生命模型包括哪六个方面?需求 分析 设计 实现 交付后维护 退役2 传统瀑布生命模型的中交付后维护包括哪三种?改正性维护 适应性维护 完善性维护3 现代维护和传统维护的观点有何不同?1 传统维护的观点是先开发后维护。2 现代维护的观点是无论是在软件安装前还是安装...
软件工程复习
软件工程复习资料。备注 1.老师反复强调我们之前做过的作业要熟练掌握 需求陈述 实验课画的模型 自己画。的数据流图 2 蓝颜色的字都是老师上课补充的,还有很多需要自己去补充,欢迎修正完善。核心问题 在考试做大是要表述清楚详细,关。键词要有 问题定义 专用名词表要解决的问题是什么?达要准确,不能更改 ...
软件工程 复习
1.概念 软件危机是指在计算机软件开发 使用与维护过程中遇到的一系列严重问题。2.为什么会产生软件危机?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致使软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。3.软件危机的表现 经费预算经常突破...