突出重围,赢在自我

fluoxetine capsules 20mg

fluoxetine 20mg

tadalafil generico sandoz

cialis generico sunilrav.com



文:超图软件研发中心 赵爱华

      有幸作为2009年第七届大赛开发组评委。这次又受组委会邀请写一篇相关文章,因为工作关系,我也仅参评了开发组的作品,因此希望本文能对WEB应用开发组和组件开发组参赛者有所启发和指导。


赢在起步
      选题是大多说参赛者比较头疼的事情。一个合适的选题是一个最重要的第一步。当然如果参赛者有相关的基金或项目支持,那选题就比较简单。
      那么,如何选择一个适合自己团队开发的题目呢?
      ◆ 能够解决行业实际应用
      选题应该是能够解决当前某个行业的实际应用问题,对该行业能有一定的指导和启发作用,最好这个实际问题是团队所能影响或涉及到的。
      下面例举几个选题来进行说明:
     《煤矿安全生产空间网络分析系统》《化工厂事故应急救援系统》《机场特种车辆监视系统》


      以上三个选题都是能解决某一行业(煤矿、化工、航空)实际应用(安全生产、事故应急、车辆监视)问题的二次开发系统,这就能很好的体现作品的实际价值。
      当然,一般的选题都是能解决实际问题,但没有很好的跟具体行业结合,那么这将会大大影响作品的价值。
      一般不推荐的选题:
      数字校园、数字城市等相关选题
      这些题目都是比较旧的选题,基本的开发流程和成果都能容易找到,对行业或实际应用已经没有太大的实际价值。
      ◆ 难易度适合团队水平
      选题应该符合团队的兴趣、开发能力,开发难度符合自己团队承受能力。因为在实际的开发中会遇到这样那样的问题,给自己一点提前量还是很有必要的。
      难易度这个东西很难量化,因团队而异。总的而言,没有团队会提交一个只能出图的系统,当然也很难在有限的时间和人力里攻克一个世界GIS难题。换言之,作品的水平应该比SuperMap提供的SampleCode和开发指南高。
      一般不推荐的选题:
      大而广的选题
      例如全国XX系统、全球XX系统,一般这些选题都可以做一个国家级的大型开发,选题过于泛泛,并不是一个小团队就能很容易完成的,且团队很难影响到这些实际应用。
      ◆ 突破传统,力求新颖
      选题“新颖”,这个是最难的,而且这也是评委们比较看重的一个得分点。
      新颖既不是放弃传统,也不是标新立异,而是要“突破传统”。
     “传统”,即传统行业,如国土、农业、石化等;传统技术,如网络分析、拓扑处理等。
     “突”即突围传统行业和传统技术,让GIS在新领域、新行业应用或使用新技术在GIS传统行业中应用和GIS新技术的应用。
      ◇ 新领域与新行业
      新领域或新行业,是指这些行业不是传统GIS涉及的行业,比如园林、考古、档案学、体育、养殖,甚至可以在微生物、超导等领域和行业。
      以下是我拟的几个选题,供参考:
     《视觉景观影响定量评价系统》《文献信息管理系统》《仔猪发育监测系统》


      而有些选题就过于陈旧,比如上面提到的数字校园、数字城市、旅游地理信息系统,以及GIS传统行业如国土、规划等,传统领域如数据处理、数据分析等。特别是数字校园,作为高校的学生团队最愿意使用这个选题,但是在这个题目上寻求突破还是很困难的,希望大家尽量避免这类选题。
      ◇ 新技术
      GIS的新技术和当前的新技术在GIS中的应用,这一点是很具创新性的。
      GIS新技术应用,比如二三维一体化、三维成像等。
      IT新技术的应用,比如Silverlight 技术、Flex技术、SOA、REST等等。
     “破”,即打破传统行业应用和传统技术应用,在传统行业上进行挖掘新的应用;使用传统技术解决新问题。
      以下是我拟的几个选题,供参考:
     《土地生态安全系统》《居民点空间分布系统》《矢量数据拓扑纠正系统》


      特别提出的是,当前环境下WebGIS 已成为主流,如果团队具备相关技术,推荐进行7D WebGIS开发。
      总之,要选择一个新颖的、符合团队能力的、具有实际应用价值的选题。


赢在前后
      所谓“前后”,就是指系统开发的前期和后期的成果等。一个应用系统重要的功用就是使用,但它毕竟是一个学生作品,不是一个商业系统,不存在实际的风险,大赛中要求了很多的前期成果和后期成果,参赛团队一定要认真对待,特别是前期成果的分量是很大的。
      下面,讲一下开发的“前”和“后”。
      一般来说,开发一个系统的计划阶段、开发阶段和验证阶段的时间是1:1:1。所以,参赛团队一定要在概念阶段做项目进度计划时合理安排时间。
      下图加粗部分表示较为重要的6个部分,前后各3个,一定要注意这个细节。在此,我仅对架构设计以及功能与界面设计做一下开发介绍。



      ◆ 架构设计
      作为计划阶段的第一步,架构设计就是一个系统的雏形。架构设计不是仅仅停留在纸上的系统,而是需要我们根据敏捷开发思想(毕竟时间短任务重,关于敏捷开发参赛团队可以去参阅相关资料)来指导设计。
      架构设计一般包括:
      1.系统概述:说明系统是什么,它有什么功能。
      2.设计策略:说明现在有什么样的措施以方便本系统在将来扩展功能,,以及本系统在当前以及将来如何复用。
      3.系统总体结构(比较重要)
         将系统分解为若干模块,绘制物理图和逻辑图,说明各模块的主要功能。
         说明“如何”以及“为什么”如此分解系统。
         说明各模块如何协调工作,从而实现原系统的功能。
      4.数据结构设计(比较重要)
         确定关键数据结构,粗略定义数据库表。对关键性的骨干数据库文件系统、数据库文件、数据库表进行描述,说明它们的结构、一般特征和彼此之间的关系。
         E-R图,给出描述数据库结构的实体—关系图。
         表的结构,列出关键数据库表,描述其用途,说明每个表的索引、主键、外键和注释。详细描述每个数据项,包括名称、标识、类型、长度、精度、格式、值域、能否为空等信息。
         物理设计,说明数据库大小、存储空间安排、访问数据的方式(顺序或随机等)方法等。
         安全设计,说明数据库的安全策略,给出数据库操作的用户权限。
         出错处理,说明出现数据处理时,系统应如何进行处理。
      5.开发环境和运行环境的配置:说明本系统应当在什么样的环境下开发和运行。
      6.测试环境的配置:说明本系统应当在什么样的环境下测试。
         以上六点均要有详细的说明文档。
         总之,一个良好的架构设计就是充分考虑风险、以敏捷开发思想指导的系统雏形。
      ◆ 功能与界面设计
      1.功能设计,根据架构设计中的系统总体结构,将模块功能细化
         说明各功能的具体操作方法,解决的需求问题。
         说明各功能的的主要接口。
      2.界面设计
         不论是组件开发还是WEB 开发,“面子”问题是很重要的,主要要考虑的是便捷性、协调性。
&nb

关注我们