GIS软件工程师为什么那么稀缺

GIS软件工程师为什么那么稀缺
GIS软件工程师为什么那么稀缺

GIS软件工程师为什么那么稀缺?

GIS属于土木工程里一个高科技型的领域,GIS应用于地理信息的一种技术,是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述,而GIS软件工程师则要求一般能这些采集、储存、管理、运算、分析、显示过程中都能掌握其中的要理。

GIS的重要性:

随着计算机技术的飞速发展、空间技术的日新月异及计算机图形学理论的日渐完善,GIS 技术也日趋成熟,并且逐渐被人们所认识和接受。近年来,GIS被世界各国普遍重视,尤其是“数字地球”概念的提出,使其核心技术GIS更为各国政府所关注。目前,以管理空间数据见长的GIS已经在全球变化与监测、军事、资源管理、城市规划、土地管理、环境研究、农作物估产、灾害预测、交通管理、矿产资源评价、文物保护、湿地制图以及政府部门等许多领域发挥着越来越重要的作用。

因此,对GIS人才技术有很高的要求,一般要求熟悉软件开发流程;熟悉项目的需求规划说明;熟悉项目的发开计划以及项目的概要设计说明数据库设计等等专业知识,另外,还要求具备一定的行业素质,如果你要了解关于GIS软件工程师更多行业要求,你可以登入一览测绘英才网查询相关企业对人才的要求。

GIS的发展过程

1967年,世界上第一个真正投入应用的地理信息系统由联邦林业和农村发展部在加拿大安大略省的渥太华研发。罗杰·汤姆林森博士开发的这个系统被称为加拿大地理信息系统(CGIS ) ,用于存储,分析和利用加拿大土地统计局( CLI,使用的1:50,000比例尺,利用关于土壤、农业、休闲,野生动物、水禽、林业和土地利用的地理信息,以确定加拿大农村的土地能力。)收集的数据,并增设了等级分类因素来进行分析。

CGIS是“计算机制图”应用的改进版,它提供了覆盖,资料数字化/扫描功能。它支持一个横跨大陆的国家坐标系统,将线编码为具有真实的嵌入拓扑结构的“弧”,并在单独的文件中存储属性和区位信息。由于这一结果,汤姆林森已经成为称为“地理信息系统之父”,尤其是因为他在促进收敛地理数据的空间分析中对覆盖的应用。

20世纪80年代和90年代产业成长刺激了应用了GIS的UNIX工作站和个人计算机飞速增长。到这里,GIS概念才真正清晰起来。

至20世纪末,在各种系统中迅速增长使得其在相关的少量平台已经得到了巩固和规范。并且用户开始提出了在互联网上查看GIS数据的概念,这要求数据的格式和传输标准化。

软件工程师面试试题

软件工程师面试试题 姓名: 1、全局变量和局部变量的概念和不同 作用域为整个程序运行空间的变量为全局变量。 作用域为某个函数或复合语句内部的变量为局部变量。 两者作用域不同,所在物理空间申请和分配方式不同。 使用原则:能用局部变量的最好不要用全局变量,以减少模块间的耦合度。2、static类型变量的概念 静态变量是在编译时就分配物理空间的变量。主要用于全局物理空间申请以及函数内部用于独立函数本身存在的应用场合。 3、简述获取双精度浮点数(double)每个字节数据的操作方法 使用字节指针强制转换连两存放的地址。 Double dblTemp = 0.0; Byte * pByte = (byte *)(&dblTemp); 4、在C++中,new和delete分配的内存块为何需要成对使用 两者实际调用的是malloc和free,如果不成对使用,则造成内存泄漏。 5、举例说明数据的二进制表示方式和字符型表示方式 以数据文件为例: Fprintf(f, “%d”, data);//字符形 Fwrite(&data, sizeof(int),1,f);//二进制形

6、头文件中使用#ifndef/define/endif的优点? 防止嵌套重复定义 7、如何向一个窗口发消息,写出windows API。 首先获取一个窗口句柄,可以使用枚举所有窗口的方式(EnumWindows); 使用API函数发送消息; 例如向一个按钮发送点击消息: SendMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, 0x00100019) 8、#include < filename.h >和#include “filename.h”有什么区别? 搜索范围不同。 前者只在编译环境制定的INCLUDE路径范围内搜索; 后者增加对当前目录的搜索。 9、软件编程中,为了便于阅读、记忆和使用,对变量名、数组名、结构体名、 联合体名、函数名等的命名规则简述 变量名:类型加名词或修饰词,例如:double dblTemp;定义一个双精度的临时变量。 数组名:类型加名词复数形式,例如char * strNames[100],定义一个字符串数据结构体:一般定义为类型,结构名为下划线开头,类型名大写。例如:Typedef struct _MyStruct{ Int iAge; … }MYOBJECT; * LPMYOBJECT;

软件测试工程师笔试题及答案

测试工程师笔试题 一、计算机知识(30分) 1、在Linux系统中,一个文件的访问权限是755,其含义是什么 参考答案: 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。 2、Linux中,如何从root用户切换到普通用户 参考答案:su su user1 切换到user1,但切换后的当前目录还是root访问的目录 su – user1 切换到user1,并且当前目录切换到user1的根目录下(/home/user1/) 3、简述一下C/S模式和B/S模式的区别 参考答案: c/s 是客户端/服务器架构 b/s 是浏览器/服务器架构 C/S模式有以下特点: S模式将应用与服务分离,系统具有稳定性和灵活性 S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 3.由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快 4.在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂 B/S模式有以下特点: 1.系统开发、维护、升级方便 每当服务器应用程序升级时,只要在服务器上升级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便 S模式具有很强的开放性 在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好 S模式的结构易于扩展 由于Web的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统 4.用户使用方便 B/S模式的应用软件都是基于Web浏览器的,而Web浏览器的界面是类似的。对于无用户交换功能的页面。用户接触的界面都是一致的,用户使用方便 4、Windows操作系统中PATH环境变量的作用是什么 参考答案: PATH是Windows操作系统环境变量,PATH作用是用户在命令行窗口执行一个命令,则在PATH变量设置的目录下依次寻找该命令或对应的执行文件,若找到,则执行,若没有找到,则命令行窗口返回无效命令。 5、TCP和UDP有什么区别 参考答案: TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程

Java软件中年级工程师笔试题复杂逻辑

J2E E部分 1、运算符优先级问题,下面代码的结果是多少?(笔试) package test; public class Test { public static void main(String[] args) { int k = 0; int ret = ++k + k++ + ++k + k; // ret的值为多少 } } 2、运算符问题,下面代码分别输出什么?(笔试) package test; public class Test { public static void main(String[] args) { int i1 = 10, i2 = 10; } } 3、下面代码的结果是什么?还是抛出异常?(笔试) package test; public class Test { public void myMethod(String str) { } public void myMethod(Object obj) { } public static void main(String[] args) { Test t = new Test(); t.myMethod(null); } } 4、假设今天是9月8日,下面代码输出什么?(笔试) package test; public class Test { public static void main(String[] args) { Date date = new Date(); } } 5、下面代码的输出结果是什么? package test; public class Test {

public static void main(String[] args) { double val = 11.5; } } 6、下面代码的结果是什么? package test; public class Test extends Base { public static void main(String[] args) { Base b = new Test(); b.method(); Test t = new Test(); t.method(); } @Override public void method() { } } class Base { public void method() throws InterruptedException { } } 7、以下代码的结果是什么? package test; public class Test extends Base { public static void main(String[] args) { new Test().method(); } public void method() { } } class Base { } 8、true or false? package test; public class Test { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); StringBuffer sb1 = new StringBuffer("abc"); StringBuffer sb2 = new StringBuffer("abc"); } } 9、输出的结果是什么?

GIS设计及应用复习题.doc

GIS软件应用(MapInfo)(书) 一.填空题 1. MapInfo软件具备的GIS基本功能有、、、 和等。 1. GIS基本功能有、、、、和 等 地理信息输入、编辑、查询、显示、分析和输出 P8 2. GIS(mapInfo)中空间数据可用和数据结构表示。 2. GIS中目前主要采用和数据结构表示空间数据。 矢量和栅格 P9 3. 根据代码符号的表示形式可将代码分为、和三种类型。 数字型、字母型、数字和字母混合型 P10 3. 根据代码符号的作用可将代码分为和两种类型。 P10 分类码和标识码 4. MapInfo中提供的坐标系统有、和三种类型。 经纬度表示的地理坐标系统、多种投影坐标系统和非投影(Non-Earth)坐标系 P13 4. MapInfo系统默认的坐标系统是,并用表示坐标值。 经纬度表示的地理坐标系统,用十进制弧度值表示坐标值。 5. MapInfo中提供的选取地理目标方法可分为、和三种类型。 定位区域属性 P25 6.地理数据采用的表示方法有、、和等。 文字、报表、图表、地图和数字地图等 7. MapInfo中地图标注可采用和两种方法实现。 自动标注或交互式标注 8. 通常一个MapInfo表包含、、、 和等五个文件。 属性数据的表结构文件(.TAB)、属性数据文件(.DAT)、交叉索引文件(.ID)、图形数据文件(.MAP)、索引文件(.IND)。 9. MapInfo中,除了一般操作的图层外,还有和两个特殊图层。 装饰图层、无缝图层 9. MapInfo中的图层控制工具可以控制、、和属性。 图层可见、可编辑、可选和可标注 10. MapInfo中,输入线的工具有、和 直线、折线、曲线

经典软件工程师面试题

请参加如下测试,此题是由数十家知名IT企业的人力资源管理部进行 综合分析总结出的测试题,请大家认真完成。 一共 30 道题 ,每题 1 分 ,满分 30 分 1. 如果 A=1,FAT=27,那么 FAITH=? A、44 B、42 C、41 D、40 2. 7/2 × 14/3 + 26/5=() A、1304/15 B、1274/15 C、901/15 D、1261/15 E、以上都不对 3. 如果‘CONTRIBUTE’被写作‘ETBUIRNTOC’,用这种方式写‘POPULARISE’时从左 边数第六个字母是什么? A、R B、I C、A D、L 4. 160的( )%=80的80% A、60 B、30 C、50 D、40 E、以上都不正确 5. 如果用某一编码可以把 ‘STOVE’ 表示成 ‘FNBLK’,那么用此编码可 以把 ‘VOTES’ 表示成如下哪一种? A、LBNKF B、LNBKF

C、LKNBF D、FLKBN 6. 在下列数字系列中有一个数字是错的,请找出来 40 42 49 57 74 100 137 A、100 B、74 C、57 D、49 E、42 7. Rs.6500按照多少的比率才能在5年之后达到Rs.1787.5的利息是 A、4.5 B、6.5 C、7.5 D、3.5 E、以上都不正确 8. 把医生、发烧、药物、药店按照一定的顺序排列: A、药店、药物、发烧、医生 B、发烧、医生、药店、药物 C、医生、药店、药物、发烧 D、药物、医生、药店、发烧 9. 下列5项选择中有4个可以根据一定规律组成一组,哪一个不属于他们? A、重 B、短 C、长 D、轻 E、固体 10. 下列的数字系列中在6之后并且在8之前有多少个3? 3 6 6 8 3 6 6 8 3 6 8 3 6 3 8 3 6 3 8 3 3 8 3 3 9 A、1个 B、2个 C、3个

Java软件开发工程师笔试题(答案)

Java工程师笔试题 一、填空题(本大题10小题,每空1分,共20分)。 1.Java语言的三大特性即是: 继承、封装、多态。 2.在Java中,char 型采用____unicode_______编码方案,这样,无论是中文字符还是英文字符,都是占用__2___个字节的内存空间。 3. 形式参数指的是方法被__定义____ 时的参数行,实际参数是方法被__调用__ _ 时所传递进去的变量或值。 4.JSP内置对象中,application对象是代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息,而session 对象则是每个客户专用的。 5.如果想把一个对象写入一个流,那么这个类就必须实现Seralizable 接口。 6.程序中实现多线程的方法有两种:继承Thread类和实现___Runable _ 接口。 7.多线程中,可以通过调用相应的setPriority() 方法来修改一个线程的相对优先级。 8.面向对象编程的五大设计原则,分别是单一职责、开放封闭、 里氏替换、依赖倒置、接口分离 9.通过Ajax,客户端获取的数据主要有两种类型:文本型和xml 10.Socket通常也称为套接字,用于描述__ ip 和_ _接口 二、选择题(本大题20 小题,每小题2分.共40分)。 1.在JA V A中,如果父类中某些方法不包含任何逻辑,并且需要由子类重写.应该使用( )关键字来声明父类的这些方法: A) final B) static C) abstract D) void 2.在JA V A中,已定义两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是()。 A) interface A extend B,C B) interface A implements B,C C) class A implements B,C D) class A implements B, implements C

高级软件工程师面试题

高级软件工程师、项目经理面试题1、类、对象的概念? 2、简述抽象? 3、接口与抽象类? 4、内部类(Inner Class)? 5、访问修饰符限制? 6、Static关键字的使用? 7、final关键字? 8、abstract关键字? 9、native关键字? 10、synchronized关键字? 11、运行时异常与一般异常有何异同? 12、编程题: 写一个Singleton出来。 13、分类列举服务器和组件技术? 14、Http与Https ? 15、OSI(Open System Interconnection)网络抽象模型? 16、J2EE的容器与服务器? 17、继承限制? 18、逻辑操作:c=(a>b)?a:b;等同于下式? 19、列举常见集合框架类型? 20、面向对象的特征? 21、Java命名规范? 22、Java语言共包含47个关键字?

23、设计模式? 24、简述MVC的应用(如STRUTS1.x、STRUTS2.x架构等)? 25、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL 解释。 26、存储过程和函数的区别? 27、游标的作用?如何知道游标已经到了最后? 28、你认为一个项目如何进行才正确? 29、你经常看或仔细研读过的书有哪些? 30、你认为你应聘我们公司的项目经理,你自身的优势在哪? 31、你认为项目中最重要的是哪些过程 32、如果给你一个4-6个人的T eam,那么你怎么分配他们、管理他们? 33、简述常用的软件开发文档 34、简述类的关系

高级软件工程师面试题答案 1、类、对象的概念: 1)类:具有共同属性和行为的对象的抽象。类是创建对象的模板。 2)对象:现实世界中的实体。在计算机中,是指可标识的存储区域。 3)类是对象的抽象、对象是类的实例。 2、抽象:是从特定的实例中抽取共同性质形成一般化概念的过程。 3、接口与抽象类: 1)接口和抽象类都用于抽象,接口是抽象类的抽象。 2)接口中只有方法声明,没有实现(无方法体);在接口中声明的方法具有public和abstract属性,一个类可以实现多个接口(即多继承),接口以‘,’分隔;接口中的方法必须全部实现。 3)抽象类可以有部分方法实现,抽象类必须通过继承才能使用。 4、内部类(Inner Class): 1)内部类是嵌套在另一个类中的类。 2)内部类用于名称隐藏和程序代码的组织,另外内部类拥有直接访问其外部类所有成员(包括private的)的权限(无需任何关键字修饰)。 3)内部类不可以在其他类或main方法里实例化,必须使用如下方法(非静态内部类)外部类.内部类对象名=new 外部类().new 内部类(); 静态内部类调用方式: 外部类.内部类对象名=new 外部类.内部类(); 4)非静态内部类不可以声明静态成员;静态内部类的非静态成员可以访问其外部类的静态成员,声明为静态的成员不可以访问外部的非静态成员。 5、访问修饰符限制: Private protected friendly(default) public 同类Y Y Y Y 同包不同类N Y Y Y 同包子类N Y Y Y 不同包不同类N N N Y 不同包子类N Y N Y 6、Static关键字的使用: 1)类成员,直接使用类名.成员调用。 2)静态方法只能访问静态成员。 3)静态方法不能使用this、super关键字。 4)静态方法不能被非静态方法重写或重载。 7、final关键字: 1)被final修饰的变量为常量不能改变。 2)被final修饰的方法不可以重写。 3)被final修饰的类不能被继承。 8、abstract关键字: 1)被abstract修饰的类不能实例化。 2)被abstract修饰的方法只能在子类中实现。 9、native关键字:非Java语言的编写,例如JNI技术。 10、synchronized关键字:多线程的同步访问控制。

软件工程师面试中常见的问题

面试中常见的问题 1、请你自我介绍一下你自己, 回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼貌的求职者。 2、你觉得你个性上最大的优点是什么? 回答提示:沉着冷静、条理清楚、立场坚定、顽强向上。 乐于助人和关心他人、适应能力和幽默感、乐观和友爱。 3、说说你最大的缺点? 回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。企业喜欢聪明的求职者。 4、你对加班的看法?

愿意为公司奉献。 回答样本:如果是工作需要我会义不容辞加班。我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时,我也会提高工作效率,减少不必要的加班 5、你对薪资的要求? 回答提示:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位定下开支预算,因而他们第一次提出的价钱往往是他们所能给予的最高价钱。他们问你只不过想证实一下这笔钱是否足以引起你对该工作的兴趣。 回答样本一:“我对工资没有硬性要求。我相信贵公司在处理我的问题上会友善合理。我注重的是找对工作机会,所以只要条件公平,我则不会计较太多 回答样本二:我受过系统的软件编程的训练,不需要进行大量的培训。而且我本人也对编程特别感兴趣。因此,我希望公司能根据我的情况和市场标准的水平,给我合理的薪水。 回答样本三:如果你必须自己说出具体数目,请不要说一个宽泛的范围,那样你将只能得到最低限度的数字。最好给出一个具体的数字,这样表明你已经对当今的人才市场作了调查,知道像自己这样学历的雇员有什么样的价值 6、在五年的时间内,你的职业规划? 回答提示:这是每一个应聘者都不希望被问到的问题,但是几乎每个人都会被问到。比较多的答案是“管理者”。但是近几年来,许多公司都已经建立了专门的技术途径。这些工作地位往往被称作“顾问”、“参议技师”或“高级软件工程师”等等。当然,说出其他一些你感兴趣的职位也是可以的,比如产品销售部经理,生产部经理等一些与

.net高级工程师面试题

.net软件工程师面试题 基础题: 1.简述string[]、ArrayList、List的区别。 数组: 优点: o数组在内存中是连续存储的,索引速度非常快; o赋值和修改元素也很简单; 不足: o两个数据之间插入数据比较麻烦; o声明数组的时候,必须指明数组的长度,数组长度过长会造成内存浪费,数组的长度过短,会造成数据溢出错误。 ArrayList: 优点: https://www.360docs.net/doc/a517416143.html, framework 提供的用于数据存储和检索的专用类 o大小依据存储的数据来动态扩展和收缩 o继承IList,可以方便的进行数据的添加、插入和删除 缺点: o允许插入不同类型的数据,都当做object类型处理 o数据处理时可能出现类型不匹配的错误

o存在装箱(值=》引用)拆箱的操作,会带来很大的性能损耗 List: 优点: o声明List集合时,需要声明集合内数据的对象类型 o避免了类型安全问题和装箱拆箱的性能问题 2.简述装箱和拆箱操作中的性能损耗是如何产生的。 3.简述对https://www.360docs.net/doc/a517416143.html,中的事件机制的理解。 4.在一个https://www.360docs.net/doc/a517416143.html,的三层结构系统中,以登录操作为例,简述在各层中如何组织代码。 5.简述相比DATASET,实体类在WEB项目中的优点与缺点。 6.简述GC是如何工作的。 Java采用VM(Virtual Machine)机制,由VM来管理程序的运行当然也包括对GC管理。90年代末期.NET出现了,.NET采用了和Java类似的方法由CLR(Common Language Runtime)来管理。 Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root 为基础,遍历应用程序在Heap上动态分配的所有对象[2],通过识别它们是否被引用来确定哪些对象是已经死亡的、哪些仍需要被使用。已经不再被应用程序的root或者别的对象所引用的对象就是已经死亡的对象,即所谓的垃圾,需要被回收。这就是GC工作的原理。为了实现这个原理,GC有多种算法。比较常见的算法有Reference Counting,Mark Sweep,Copy Collection等等。目前主流的虚拟系统.NET CLR,Java VM和Rotor都是采用的Mark Sweep算法。

GIS设计和开发

gis设计与开发 Gis设计与开发思路 现实需求、GIS概念模型、机理过程、人机交互系统、现实需求 开发方式:独立开发,扩展式二次开发,集成式二次开发 第一章GIS设计思想内容,标准 (一)GIS设计目标 通过改进系统设计方法,严格执行开发的内容划分,进行阶段质量把关以及做好项目建设的组织管理工作,从而达到增强系统的实用性,降低系统开发和应用的成本,延长系统生命周期的目的。 (二)GIS设计的特点 1、数据:数据量大,实体种类繁多、实体间关联复杂的特点 2、功能:GIS设计以空间数据为驱动 3、工程:GIS工程投资大,周期长,风险大,涉及部门繁多 二gis设计的理论基础 Gis工程学:GIS本身发展和将系统工程学思想引入GIS设计的产物 (一)GIS工程学体系 1、任务:寻求系统总体最优化 2、基础理论:(1)系统学思想(整体性,层次性,相关性,功能性,动态性),(2)系统工程学(3)软件工程学(4)地理信息科学三层次(理论,技术,应用) 3、方法论:根据GIS工程学的基础理论而形成的一系列程序化的基本操作技术与方法(二)GIS工程学的特点 1、以空间信息系统工程优化为目的 2、横跨多学科 3、直接面向决策,为可持续发展提供决策支持 4、与GIS产业化密切相关 三GIS设计的内容 (一)设计原则:标准化,先进性,兼容性,高效性,可靠性通用性 (二)设计内容 软件设计和数据库设计 第二章gis设计的方法 一、结构化生命周期法 1、结构化生命周期法又称结构化分析和设计方法,又称结构化系统开发方法 结构化生命周期法是系统分析员,软件工程师,程序员以及最终用户按照用户至上的原则,自顶向下分析与设计和自底向上逐步实施建立计算机系统的一个过程,是组织,管理和控制信息系统的开发过程的一种基本框架。 2、基本思想:(1)要求设计过程必须严格按照阶段进行 (2)在系统建立之前就必须严格的定义和描述用户的需求。 3、阶段划分:(1)系统开发的准备阶段 (2)调查研究及可行性研究阶段

毕业生软件工程师面试题

2 网络知识 2.1 OSI和TCP/IP 1. 的七层网络结构图(功能及特点)OSI 1) 物理层:为数据链路层提供物理连接,在其上串行传送比特流,即所传送数据的单位是比特。此外,该层中还具有确定连接设备的电气特性和物理特性等功能。 2) 数据链路层:负责在网络节点间的线路上通过检测、流量控制和重发等手段,无差错地传送以帧为单位的数据。为做到这一点,在每一帧中必须同时带有同步、地址、差错控制及流量控制等控制信息。 3) 网络层:为了将数据分组从源(源端系统)送到目的地(目标端系统),网络层的任务就是选择合适的路由和交换节点,使源的传输层传下来的分组信息能够正确无误地按照地址找到目的地,并交付给相应的传输层,即完成网络的寻址功能。 4) 传输层:传输层是高低层之间衔接的接口层。数据传输的单位是报文,当报文较长时将它分割成若干分组,然后交给网络层进行传输。传输层是计算机网络协议分层中的最关键一层,该层以上各层将不再管理信息传输问题。 5) 会话层:该层对传输的报文提供同步管理服务。在两个不同系统的互相通信的应用进程之间建立、组织和协调交互。例如,确定是双工还是半双工工作。 6) 表示层:该层的主要任务是把所传送的数据的抽象语法变换为传送语法,即把不同计算机内部的不同表示形式转换成网络通信中的标准表示形式。此外,对传送的数据加密(或解密)、正文压缩(或还原)也是表示层的任务。 7) 应用层:该层直接面向用户,是OSI中的最高层。它的主要任务是为用户提供应用的接口,即提供不同计算机间的文件传送、访问与管理,电子邮件的内容处理,不同计算机通过网络交互访问的虚拟终端功能等。 2. (功能及特点)TCP/IP 1) 网络接口层:这是TCP/IP协议的最低一层,包括有多种逻辑链路控制和媒体访问协议。网络接口层的功能是接收IP数据报并通过特定的网络进行传输,或从网络上接收物理帧,抽取出IP数据报并转交给网际层。 2) 网际网层(IP层):该层包括以下协议:IP(网际协议)、ICMP(Internet Control Message Protocol,因特网控制报文协议)、ARP(Address Resolution Protocol,地址解析协议)、RARP(Reverse Address Resolution Protocol,反向地址解析协议)。该层负责相同或不同网络中计算机之间的通信,主要处理数据报和路由。在IP层中,ARP协议用于将IP地址转换成物理地址,RARP协议用于将物理地址转换成IP地址,ICMP协议用于报告差错和传送控制信息。IP协议在TCP/IP协议组中处于核心地位。 3) 传输层:该层提供TCP(传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两个协议,它们都建立在IP协议的基础上,其中TCP提供可靠的面向连接服务,UDP提供简单的无连接服务。传输层提供端到端,即应用程序之间的通信,主要功能是数据格式化、数据确认和丢失重传等。

软件工程师笔试题目

软件工程师笔试题目 (考试时间:60分钟,满分100分) 1、请简要描述TCP/IP参考模型和OSI参考模型。(10分) 2、简述如下物联网设备Wi-FI、Bluetooth、ZigBee、RFID、NB-IoT的各自特点。(10分) 3、编程实现如下运算:1!+ 2!+ 3!+ ……+ 17! + 18! + 19! + 20!。(15分) 4、假设有个字符数组A,有10个元素,请对这10个元素进行从小到大排列。(10分)

5、假定x=9999,求下面函数的返回值(10分) int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 6、对整型数组a[10]输入10个元素,然后用指针方式依次输出各元素值。(15分) 7、在SQL server上创建名为XuGuang的数据库,然后创建WCM730Q的列表,第一列MAC address为主键,第二列为VID_PID,第三列为BT_FW,第四列为Staff_No. (10分) 8、linux基础命令填空(10分) (1)获取Kernel版本信息的linux命令是____________ (2)实现一个新建文件夹功能的linux命令是____________ (3)用来查看和配置网络接口(网卡)的linux命令是____________ (4)把文件从A路径拷贝到B路径的linux命令是____________ (5)使用vim对文档完成修改后,实现保存退出的功能的命令是____________ 9、请用英文写作,描述下个人基本信息、兴趣爱好、专业技能、职业规划等(10分)(请背面作答)

GIS设计与开发 简答题 论述题练习题

简答题 1.何为GIS设计? GIS设计就是在GIS开发的整体过程中,遵循一般软件工程的原理和方法,结合GIS开发的特点、特殊规律和要求,对GIS软件从系统定义、系统总体设计、系统详细设计、空间数据库和地理模型库设计、GIS实施、GIS软件测试与评价、直到GIS维护的各个阶段进行工程化规范的方法体系。 2.GIS设计的目标和主要内容是什么? GIS设计目标就是通过改进系统设计方法、严格执行开发的阶段划分、进行各阶段质量把关以及做好项目建设的组织管理工作,从而达到增强系统的实用性、降低系统开发和应用的成本、延长系统生命周期的目的。GIS设计包括软件设计和数据库设计两部分的内容。 3.GIS有哪些特点? GIS作为一个特殊的软件领域,其主要特点是海量数据存储及空间数据与属性数据一体化管理,基于GIS本身的特殊性,GIS设计也有其自身的特点:⑴ GIS处理的是空间数据,具有数据量庞大、实体种类繁多、实体间的关联复杂等特点。⑵ GIS设计以空间数据为驱动。⑶ GIS工程投资大、周期长、风险大、涉及部门繁多。 4.简要说明GIS有哪些产品模式及其主要特征。 GIS产品可归结为以下几种模式。 数字地图 数字地图是GIS最简单、最基本的产品之一。通过GIS的地图数据库,可以实现地图的数字化存储,即数字地图。 b)桌面制图 很多GIS产品具有桌面制图的功能(如MapInfo公司的MapInfo,ESRI公司的ArcView,ArcEditor和ArcInfo等产品)。桌面制图提供的产品不仅可以对数字地图进行显示、漫游、缩放,还可以对地图进行实时的编辑。桌面制图是GIS传统的市场领域,也是份额最大的一块。 c)桌面GIS 桌面GIS同时管理空间信息与属性信息,可以进行简单的空间分析操作,还可以在此基础上进行二次开发。由于它们具有界面友好、操作简单等优点,所以广泛应用于城市规划、土地管理、市政管理等部门。 d)专业化GIS 专业化GIS的主要特点是具有相对较强的分析功能。地理数据的基本组成要素包括空间数据、属性数据和拓扑数据。其中,拓扑数据指的是地理要素间的空间位置关系。专业化GIS不仅存储地理要素的空间数据和属性数据,而且还对其拓扑数据进行存储,极大增强了GIS的空间分析功能。 5.为实现地理信息资源共享,必须具备哪些基本条件? 要实现地理信息资源共享,必须具备三个基本条件:一是数据资源的贮备;二是要有技术支撑系统的保障,例如通讯技术、网络技术、数据库技术等现代化技术手段;三是共享规则的制订、被广泛采纳和遵循,主要包含标准、规范、政策和相关法律。 6.简要说明使用结构化生命周期法进行GIS设计需要完成的六个阶段内容。 ⑴系统开发准备阶段。针对用户提出开发系统的要求,有关人员进行初步调查,组成开发领导小组,制定开发的进度和计划。如果新系统开发采取外包方式,本阶段还要包括招投标过程。⑵调查研究及可行性研究阶段。采用各种方式进行调查研究,了解现行系统的界限、组织分工、业务流程、资源及薄弱环节等,绘制现行系统的相关图表。在此基础上,与用户协商方案,提出初步的新系统目标,并进行系统开发的可行性研究,提交可行性报告。⑶系统分析阶段。在对现行系统进行调查研究的基础上,使用一系列的图表工具进行系统的目标分析,划分子系统以及功能模块,构造出新系统的逻辑模型,确定其逻辑功能需求,交付新系统的逻辑功能说明书。⑷系统设计阶段。根据逻辑模型进行物理模型的设计,并具体选择一个物理的计算机信息处理系统。这个阶段还要进行人-机过程的设计、代码设计、输入、输出、文件数据库设计及程序模块、通讯网络设计等。⑸系统实施阶段。系统实施是新系统付诸实现的实践阶段,主要是实现系统设计阶段所完成的新系统物理模型。包括软硬件设备的安装和调试、程序设计、代码编写、调试。还包括对用户及操作人员进行培训,编制操作、使用手册和有关文档。⑹维护和评价阶段。对系统的修改和完善进行维护,如针对系统处理过程、程序、文件、数据库甚至某些设备和组织的变动进行相应的维护。系统的评价,广义上贯穿于系统开发过程的始终,这里主要指系统开发后期的评价。旨在将建成的新系统与预期的目标做一一比较,不同的指标综合体现为用户的满意程度——可接受性。、原型法是应软件设计新情况和新要求的出现而产生的,其特点主要体现为鼓励用户不断修改和完善需求,并根据新的需求不断修改和完善原型。请说明应用原型法开发信息系统各个阶段的内容。 7.原型法开发信息系统包括哪几个阶段? ⑴确定用户的基本需求。在这一阶段中,用户根据系统的特点清楚地表达自己的基本需求,系统分析开发人员据此来确定系统的规模及基本框架,判断系统需要的数据能否得到,同时应估算出开发原型的成本。⑵开发初始原型。开发初始原型仅仅反映用户的基本需求,并不要求完善。⑶利用原型来提炼用户需求。用户通过亲自使用原型,从而了解其需求得到的满足程度以及存在的问题。开发人员一方面记录下用户提出的该系统的缺点和不足之处;另一方面也要借助原型系统引导、启发用户表达对系统的最终要求,在用户和开发人员共同反复讨论过程中进一步提炼用户需求以及需要修改和变动之处。⑷修正和改进原型。开发人员根据第三阶段中用户提出的修改意见或发现的问题,对初始原型系统进行修改、扩充和完善。这是一个多次反复的过程,直到用户满意为止。 8.用UML模型进行系统的分析和设计有什么优点? 采用UML模型进行系统的分析和设计具有以下优点:①在面向对象设计领域,存在数十种面向对象的建模语言,都是相互独立的,而UML可以消除一些潜在的不必要的差异,以免用户混淆;②通过统一语义和符号表示,能够稳定面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。 9.系统定义时期的主要任务是什么? 系统定义时期的主要任务是确定软件开发工程必须完成的总目标以及工程的可行性;导出实现工程目标应该采用的策略即系统必须完成的功能;估计完成该项工程需要的资源和成本;并且制定工程进度表;最后编写系统需求分析报告。这个时期的工作通常又称为系统分析,由系统分析员负责完成。10.简述GIS数据字典的任务? GIS数据字典的任务是对GIS数据流图中出现的所有被命名的图形要素在数据字典中作为一个词条加以定义,使得每一个图形要素的名字都有一个确切的解释。 11.简述GIS成本有哪些部分组成? GIS的成本由五个部分组成:①购置并安装软硬件及其相关设备的费用;②生产系统所需数据的费用;③软件开发费用;④系统安装、运行和维护费用; ⑤人员培训费用。 12.总体设计的主要任务是什么? 总体设计的主要任务是确定系统总体架构与软、硬件配置,根据系统分析成果进行系统功能模块的划分,建立模块的层次结构及调用关系,确定模块间的接口及人机界面,并设计数据库总体结构。 13.试述详细设计与总体设计阶段工作的差别? 详细设计以总体设计阶段的工作为基础,但又不同于总体设计阶段,这主要表现为以下两个方面:⑴在总体设计阶段,数据项和数据结构以比较抽象的方式描述,例如,总体设计阶段可以声明矩阵在概念上可以表示一幅遥感图像,详细设计就要确定用什么数据结构来表示这样的遥感影像。⑵详细设计要提供关于算法的更多细节,例如,总体设计可以声明一个模块的作用是对一个表进行排序,详细设计则要确定使用哪种排序算法。总之,在详细设计阶段为每个模块增加足够的细节,使得程序员能够以相当直接的方式对每个模块编码。 14.结构化方法详细设计的主要表达工具有哪些? 结构化方法详细设计的主要表达工具有:程序流程图、N-S盒式图、问题分析图、类程序设计语言、序列图和活动图。 15.试说明关系型数据库建库三个范式的内涵。 第一范式(first normal form,简称1st NF)要求同一张表中没有重复项出现,如果有则应将重复项删除。这个删除重复项的过程就称为规范化处理。第二范式(sencond normal form,简称2nd NF)要求每个表必须有一个(而且仅一个)数据元素为主关键词(primary key),其它数据元素与主关键词一一对应。主关键词在表中必须具有唯一性,作为主关键词的数据项中不能出现重复的记录。第三范式(third normal form,简称3rd NF)是指表格中的所有数据元素不但要能够唯一地被主关键词所标识,而且他们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足2nd NF的关系表来说,表中有可能存在某些数据元素的函数还依赖于其它非关键词数据元素的现象。 16.程序编写的组织管理包括哪些内容? 程序编写的组织管理包括:1)对程序员组织训练;2)购进软件消化利用;3)程序编写;4)程序模块的调试;5)程序模块的验收。 17.组件式GIS具有哪些特点? 1)小巧灵活、价格便宜;2)无须专门GIS开发语言,直接嵌入可视化开发工具;3)不逊色于传统GIS软件的强大GIS功能;4)直接嵌入各种开发工具,开发简捷;5)更加大众化,使非专业的普通用户也能够开发和集成GIS应用系统。 18.简述述组件式GIS应用系统的开发过程。 用户调研、可行性研究、用户需求分析、系统总体设计、系统详细设计、基础平台选择、熟悉基础平台、进行二次开发、系统测试、系统维护和系统使用。 19.简述程序代码编写过程中应注意的问题? 1)程序语言的选择;2)程序设计风格的确定;3)系统代码文档的编写。20.简述程序调试过程中发现的错误有哪些排除方法? 方法有:1)硬性排错:采用试验的方法,比如设置临时变量、增加调试语句、设置断点、单步执行等。2)归纳法排错:准备几组有代表性的输入数据,反复执行,对得出的错误结果进行整理、分析、归纳,提出错误原因及位置假想,再用新的一组测试数据去验证这些假想。3)演绎法排错:针对各组测试数据所得出的结果,列举出所有可能引起出错的原因,然后逐一排除不可能发生的原因与假设,将余下的原因作为主攻方向,最终确定错误位置4)跟踪法排错:在错误征兆附近进行跟踪找错;错误诊断出来以后,需要进行修改;修改完后,应立即利用先前的测试用例,重复先前的测试过程,进一步验证排错的正确性。 21.系统文档主要包括哪些内容? 系统文档主要包括系统实施方案、系统架构方案、系统分析报告、系统总体设计、数据库设计报告、系统详细设计、系统测试报告、用户手册等。22.如何有效地维护和管理系统文档? 1)软件开发小组应由一位文档保管员负责集中保管本项目的已生成文档(主 文档)。2)开发小组成员可根据工作需要自己保留一些个人文档,但这些文档 一般都应是主文本的复制件,应与主文本保持一致,在做必要修改时,也应 同步修改主文档。3)开发人员个人只保存主文档中与本人工作有关的部分文 档。4)在新文档取代旧文档时,管理人员应及时注销旧文档。在文档的内容 有更改时,管理人员应随时修订主文档,使其及时保持最新。5)在软件开发 过程中,可能需要修改已完成的文档。修改主文档前应充分估计修改可能带 来的影响,并且按照提议—评议—审核—批准—实施的步骤加以严格控制。 6)开发过程结束时,文档管理人员应收回开发人员的个人文档,并同时检查 个人文档与主文档的一致性,当发现两者有差别时,应立即着手解决。 23.简答系统实施阶段的任务? 系统实施阶段的任务可概括为以下五个方面: ①硬件和软件的购置及安装。包括计算机、绘图机、数字化仪、扫描仪等输 入输出和分析处理设备以及各种支撑软件如操作系统、数据库系统、编译系 统的购置安装。②程序的编写与调试。由于各模块的详细设计已经形成,只 需要编写相关程序。一般的处理办法是自编程序,但对于一些比较特殊的成 熟的算法可购买,程序编写后要进行调试,以减少程序的错误。③系统的安 装与调试。即对系统硬软件的安装及调试。④培训。在购买硬件、编写软件 的同时,应对用户进行培训。同时,这也是考验及检查系统结构、硬件设备 和应用程序的过程。⑤系统中有关数据的录入或转换。指的是各种地图数据 及属性数据的输入或从其它系统转化过来的过程,这个工作量是相当大的, 需要耗费大量人力、物力及时间。 24.在系统实施阶段,如何选择程序语言? 程序语言的选择应作如下考虑:①考虑编程的效率及代码的可读性。一般应 选择高级语言作为主要的编程工具。②考虑要符合详细设计的思想。一般应 选择结构化的语言,如C、Pascal等,这些语言的特点是直接支持结构化的 控制结构,具有完备的过程结构和数据结构。③程序设计语言应是一种通用 语言。因为GIS软件既包括数据、图形处理及分析,还包括对各种软硬件的 控制等,任何一种专用型的高级语言都无法完全胜任。④考虑到程序的执行 效率以及对某些特殊硬件的控制和操作要求。可以针对特定的模块采用混合 编程,达到程序的特别目的。⑤考虑编码和维护成本。选择合适的高级语言 以降低编码量及日常维护工作中的困难程度。⑥根据系统开发的不同规模, 选择合适的高级语言。比如对于一个大型的GIS,用Turbo C就可能不完全 适用,而应选择Visual C++等易于项目管理的高级语言。⑦根据不同的开发 平台和使用平台,选择不同的语言。⑧系统的兼容性、移植性等。 25.简单述GIS软件评价的含义以及评价的内容。 GIS评价是在GIS测试的基础上,通过对技术因子、经济因子和社会因子(如 进行评价,从而得出对系统整体水平以及系统实施所能取得的效益的认识和 评价。软件评价的内容包括:1)技术评价:可靠性、可扩展性、可移植性、 系统效率。2)经济评价:系统产生的效益、软件商品化程度、技术服务支持 能力、软件维护与运行管理。3)社会评价:系统的科学价值、系统的政治与 军事意义、系统决策能力、管理工作改革。 26.试简述GIS维护流程? 1)提交GIS维护申请;2)评估维护请求;3)维护过程;①确定维护的类型。 ②改正性维护。③适应性和完善性维护。④实施维护工作。⑤编写详细的维 护报告。 简述GIS可行性研究工作的主要内容? 简述系统详细设计阶段的目标与任务? 简述地理建模的一般过程? 简述GIS软件维护工作的影响因素? 论述题 1.论述系统可行性研究的主要内容是什么? 2.论述GIS工程学的主要任务、理论基础和内容分别是什么? 3.GIS规范化和标准化在GIS产业化和社会化过程中的作用是什么?其具体 内容主要体现在哪些方面? 4.论述GIS详细设计阶段的表达工具有哪几种?各有什么特点? 5.简要论述GIS软件评价的基本方法,评价类型及评价指标? 6.论述空间数据库建库流程? 7.试简述结构化生命周期法包括哪几个阶段?每个阶段的基本任务是什么? 8.简述在GIS系统实施时有哪些系统实施人员参与及他们各自的任务? 9.论述地理信息管理与更新的主要技术手段及各自的特点? 1

相关文档
最新文档