什么才是好的GIS系统?这个问题看似简单,但是在要把不同的应用系统拿来比较的时候,原来空泛的答案就显得没什么意义了。可是对于GIS大赛设计开发类的参赛选手,这是一个不可回避的重要问题。
在比赛中哪些因素能让一个系统显得更为优秀呢?从本次GIS大赛Web GIS系统开发组的获奖作品中可以看出一些端倪。
选题
这或许是让大多数参赛选手们最为头痛的问题了。作为一个应用系统,功能决定了其存在的根本价值。在这里,“应用”代表着系统不是作为编程语言或工具的功能示范,也不是可以替代雕塑或电影的视觉艺术。系统实现的功能应当与实际的某些需求相对应,让参赛作品具有满足实际需求的现实意义和价值,这将比不切实际的炫目技术更动人。
然而即使着眼于满足实际需求,“取舍”依然掌控着作品的命运。可以实现的功能有很多,难以实现的则更多。所谓“食之无味,弃之可惜”,许多人因为取舍而左右为难。从大多数的软件开发大赛来看,软件作品“小而精”,往往比“大而全”更具优势。在较短的开发时间内试图实现一个庞大的系统,往往架构出来的要么只是一个“架子”系统,要么被喧宾夺主,主题模糊;而且大多不能表现出系统目标的功能。而一个相对小的系统,往往能做到专注,有明确的目标和清晰的思路,并且能够关注到各种细节,做到精益求精。把系统最有价值的功能最集中的表现出来,能让人们充分意识到它的价值,体会设计者的用心。
此次大赛设计开发类-Web GIS系统开发组获奖作品中排名的前三位,都具备了这样的特点。值得一提的是672组《浙江省象山县森林病虫害Web发布系统》(以下简称森林病虫害发布系统),系统应用的领域本身具有显著的行业特点,因此针对性很强,而且不容易受到各类花哨的技术的诱惑,相对更专注。而171组《玄武湖景区服务与景观评估地理信息系统》(以下简称玄武湖系统)和269组的《紧急事故处理网上中心(青岛市黄岛区)》(以下简称紧急事故处理系统)则比较贴近人们日常生活,容易受到社会信息化的影响,而在各种信息之间难以取舍。不过这两个作品很好的做出了选择,突出重点,使应用功能集中于主题,不会被冗杂的信息干扰。
在软件开发大赛中,或许人们更多的去关注参赛作品所使用到的技术,然而技术本身的优劣远不如系统功能的差异明显;而系统架构和功能则在更高的层次屏蔽的技术细节。因此可以说,选题在一开始就决定了这个作品的命运。
技巧
技术是开发团队实力的代表,应用系统采用的技术常常能决定系统的品质。然而这里要说的是“技巧”。IT行业的一大特点是“Share”,图书馆中计算机技术相关书籍是同一分类级别中数量最多的。Internet上各类技术、技巧、源码和技术分享数不胜数。抛开个人因素,每个参赛队伍所能达到的技术水平是相差无几的。因此从单纯的技术角度来看,很难划分优劣。而技巧在于作者们对技术的应用,在于功能之间的逻辑,在于实现方式方法的取舍。这里实际上会受到选题的巨大影响。道理很简单,如果实现得最漂亮的功能是系统中使用最少的功能,那么没有人会注意到的。将大量精力花费在没有用的功能上,只能导致系统建设失败。
在避免本末倒置之后,要重点关注的就是逻辑。参加GIS开发大赛,系统功能就要突出GIS的应用,这样的想法很好,但是很可能在选题时就范了错误;系统各个功能模块的轻重组合,决定于其所应对的实际需求,而非哪种功能的演示。系统设计的最基本原则应当是如何能够更好的满足需求。如果在这个原则下GIS功能不能达到期望的突出效果,那么应该是换选题而不是改逻辑。在SuperMap软件应用的整体框架下,GIS功能已经有了一个相对限定的范畴,此时系统的业务逻辑以及GIS功能在其中的有机组合,就成为选手们表演的舞台。在这一点上获奖作品都有可圈可点的表现,比如玄武湖系统,首先在选题上,景区服务和景观评价与GIS关系就非常密切,地图和空间信息可以作为整个功能的表现核心和承载体。系统充分发挥了这个优势,将用户-游客与景观评价专家-对一个大型景区的需求,一一在地图上关联起来,在各个专题的划分上也遵循了用户需求的心理,让用户能很容易的找到自己需要的信息,并在关联中获得更多的帮助。森林病虫害发布系统则是放弃了流行的Ajax模式而采用传统的WebControl开发,为用户提供了功能全面的业务分析模型,并结合地图提供具有分析价值的专题图表现。采用传统模式并没有使其处于劣势,反而因为更有效的功能实现而获得好评。逻辑的技巧是需要设计者去琢磨的,即在需求既定的情况下,如何实现能让用户体验更好,能让系统运行效率更高,能让系统稳定性更好。

图1 玄武湖景区服务与景观评估地理信息系统
系统具体功能的实现技术的选择是在前两者的主导下完成的。没有什么万能的技术,先进的技术是实现原先不能的功能或更好的实现原有功能,然而应用到系统中也是要以功能实现为指标的。在本次大赛Web GIS系统开发组的作品中,Ajax技术得到了大量的应用,但是优秀的作品并不是全部以Ajax模式为主体的。设计者要表现出对技术的掌控能力,而不是被技术所控制。玄武湖系统中通过Asp.NET Ajax扩展框架获得了很好的用户体验,而紧急事故处理系统和261组的《芜湖交通查询系统》中利用Ajax扩展框架提供了输入提示功能。这些技术并不是应用在系统主体,但为整个系统的使用效果带来不少提升。各类技术应当融合在功能流程中,而不是为了表现技术而设计系统
表现
GIS系统的主导是图形表现,系统的界面虽然不能代表这个系统的功能,但是往往会让人产生心理的倾向。而用户界面的友好不仅仅表现为界面美观,还包括各种操作的响应。哪怕一个子窗体弹出的位置都会影响用户使用的体验。在这一方面获奖作品的表现都很好。比如玄武湖系统,借助Ajax模式提供了流畅的动态操作效果,而且MS的Asp.NET Ajax 扩展框架提供了大多数人所习惯的Windows窗体变化效果,让用户感到亲切。整体界面设计简洁,风格活泼。它的美工处理相对并不很多,但是界面操作性较好,让用户不用关注页面元素的外观。森林病虫害发布系统则在界面上表现出显明的主题色彩。整体的美工设计具有强烈的视觉影响力。用户界面遵循一致的表现样式,个性鲜明(图2)。

图2 浙江省象山县森林病虫害Web发布系统
然而在细节的处理上各个作品均不尽人意;玄武湖系统在各个查询主题之间缺乏关联,在主页面以外的界面比较粗糙;森林病虫害发布系统的查询结果提供了所有属性字段,其中相当一部分是冗余信息,或者不能直接使用。在Web应用领域,系统界面是一个难点,浏览器缺乏丰富的表现能力,设计友好的系统界面和交互机制又是考验选手的要点。
创新
创新是软件开发永恒的目标。在竞赛中显得犹为重要。许多参赛选手都能设计出满足实际需求的优质系统,然而能在系统中体现出创新的思想和技术的非常少。技术的创新或许还有非常大的难度,然而创造力可以表现在整个系统的每个方面;架构、算法、界面、交互等等都是发挥想象力的空间。很可惜的是在此次大赛作品中没有看到能让人耳目一新的地方,芜湖交通查询系统使用SuperMap IS .NET AjaxMap 做前端呈现,以Java的JSP架构做服务端数据访问,在架构上提出了新的思路,是少有的创新亮点,然而在系统部署方面缺乏周全考虑,导致部署发布难度大,容错性较差的问题。GIS开发大赛的主题对程序设计的创新有一定的限制,但是现有GIS技术并未吸纳IT发展的全部内容,提升扩展的空间还非常大,新的技术组合,新的应用模式,还有待以后的参赛选手不断挑战。
这四个方面是作为一个软件大赛作品最为重要的地方,但是“细节决定成败”,作品的稳定性、文档、易用性等等都会直接影响作品的质量,需要参赛选手倾注心力去设计。
在主题、技巧等方面,参赛选手都有很好的表现,但是创新似乎一直没有激动人心的亮点。很期待在以后的比赛中能看到令人赞叹的创意,将GIS大赛领向更高的层次。在主题、技巧、表现和创新方面倾心雕琢的作品,一定能取得不俗的成绩。
|