基于UML的农用地分等信息系统(ALCIS)建模与实现
 

2009-03-11 作者:聂艳,周勇,戴维斌,黄传龙,苏俊 来源:网络

 

随着市场经济体制的建立和土地有偿使用制度的实施,综合评定农用地质量等级已成为当前土地管理中的一项十分重要的工作。农用地分等是根据农用地自然、社会属性和其在经济活动中的地位和作用,综合评定农用地的质量差异并划分等级的工作。其成果可为农业政策制定、土地开发整理、耕地占补平衡以及农业税费改革等提供依据。农用地分等涉及到大量的空间和属性信息,与一定的地理区域或方位有关,借助地理信息系统(GIS)作为信息平台,可以获得直观、友好的操作界面。而随着GIS应用的深入,原有的结构化系统分析与设计方法(SA&SD),逐渐被面向对象分析与设计方法(OOA&D)代替,以实现更高的软件重用。作为第三代面向对象的标准建模语言-UML(Unified Modeling Language,统一建模语言),它支持需求分析开始的软件开发全过程,包括需求分析、系统设计、程序实现和测试、修改完善等各个环节。本文结合农用地分等的特点,采用组件式地理信息系统(ComGIS)作为开发平台,利用UML来描述农用地分等信息系统(Agricultural Land Classification Information System,简称ALCIS)的结构,组建模型,并通过面向对象编程工具实现系统的开发。

1.ALCIS用例图的建立

一个应用系统建立的前提是首先要对系统必须达到的条件或能力进行详细的描述,让用户和开发人员明确系统该做什么。UML中,一般是用例图来表达系统角色、用例及其之间的关系,用文字形式的事件流文档具体描述用例细节。

根据《农用地分等规程》(TD/T 1004-2003),农用地分等的主要工作流程大致分为基础数据准备和分等数据处理两大部分,即农用地分等是以空间数据库为基础,对每一个分等评价单元按照标准耕作制度对指定作物分别计算综合指数,然后进行多作物综合,从而得到单元的等别,并输出分等成果,其主要数据处理流程如图l。图中农用地分等信息系统主要包括数据输入与管理、农用地分等和成果输出三大主要功能模块。数据输入与管理主要完成与分等相关的纸质地道数据如地形图、士地利用现状图、土壤图、地貌图、行政区划图等的数字化,其它矢量格式数据的转入,分等属性数据的输入系统内部空间、属性数据与其它格式数据的交换等。农用地分等主要完成分等数据处理并得到相应的结果。成果输出主要完成成果图件、报表的输出等。

根据以上的分析,利用UML的多层次用例描述方法将系统需要实现的功能以图的方式描述出来(图2)。系统顶层用例即为系统的三大功能模块,它们都是抽象用例,即系列功能(行为)的总称。通过对上层复杂用例进行细化,编写事件流文档,建立下层用例图以明确用例之间的关系。

系统用例图是系统需求捕获中关于系统功能的形象表达,影响着其它模型的构造和系统的实现,是系统需求分析的关键。在建立用例模型时,应该注意:l)用例关注的是用户,应按业务术语命名;2)及时检查用例模地的正确性和有效性;3)用例图主要关注系统的功能,不需要也不应包含细节设汁和有关数据定义等问题。

2.ALCIS分析模型的建立

分析模型说明系统逻辑设计,描述系统功能是“怎样完成”的,“何时完成”的。在UML中,采用类图来表示系统静态结构,用顺序图、活动图、协作图来建立系统的动态模型。类图定义系统中的内部结构、类之间的关系。顺序图主要描述对象的行为及其之间的交互的时间顺序;活动图直观的描述用例的复杂流程和并发行为;协作图则强调发送和接受消息的对象之间的结构组织交互关系。利用这些图共同完成ALCIS分析模型的建立。

2.1 类图的使用--对农用地分等静态关系的建模分析

静态关系建模的主要任务是找出农用地分等过程中各用例的抽象类及其对象,并分析它们之间是否存在泛化、关联、依赖关系,从而建立表达农用地分等信息系统静态结构的类图。农用地分等涉及的用例很多,可以采UML包的机制,根据用例的功能、对象流和共同处理的对象进行分包组成子系统。如将分等过程分为分等因素、权重确定子系统、规则表确定子系统,土地利用、经济系数计算子系统,分等数据处理子系统,统计分析和报表子系统等。下面以分等规则表确定为例所建立子系统的静态模型(图3)。

当用户需要新建或修改分等因素规则表单时,通过选择指标区类启动用例。指标区类对指标区集类具有一般化关系,也即指标区类继承指标区集类的相关属性和操作,同时还可以有自己的独特属性、操作和关系,指定作物与指定作物集两个类也具有类似的关系。通过指标区激发分等因素规则表单进行规则表的设置,因而指标区类与规则表单类具有一个单向关联的关系。每一个规则表单应该包括分等因素、规则等相关信息,这些内容单独放在一起形成一个类与规则表单类构成累积的关系,即它们作为数据项包含在规则表单类中。每一个评价区的指定作物至少有一种,所以指定作物类与指标区类、指定作物类与规则表单类具有一对多的单向关联关系。因素类一般包括因素名称、特征等相关属性,因素的规则类一般包括规则类型、规则描述、分级数目、分值等信息,把这些信息分为规则类型和规则集合两个类并与规则类构成累积关系。分等因素规则表单用于对分等单元的属性数据进行量化,所以当用户完成分等因素规则表单设置后,还需要有一个因素表的接口类与分等数据处理子系统结合。

类图技术简化了对现实世界中各实体间的静态关系的建模分析,并且通过可视化手段表现它们的关系,使得开发人员能更好的理解、构造和实现系统,有利于后期必要的修改和维护。

2.2 系统业务流程的行为建模

行为建模的主要任务包括分析用例的实现过程和抽象类对象交互关系的建立。用于表述系统行为的UML图包括顺序图、协作图和活动图,它们分别从不同的角度和方面描述系统的动态行为,说明系统的数据处理过程。农用地分等需要处理的数据量大,过程比较复杂,通过建立分等数据处理流程的行为模型,可以简化依据实际分等的步骤对系统进行建模的过程,使系统开发人员能够很好的根据用户的需求进行系统的开发、测试和维护。以农用地分等因素规则表确定的顺序图(图4)为例建立分等数据处理的行为模型。用户通过菜单接口进入规则表设置窗口,然后通过选择分等评价区所属指标区,读取数据库文件中关于该指标区默认信息添加到规则表中。如果用户需要编辑、修改默认信息,则可以更改指定作物、分等因素,接着修改每一种指定作物对应因素的规则类型(离散型、S型、T型等)、分级数目、规则描述、规则分值等,用户完成修改,退出规则修改界面进入设置界面并将修改的信息显示出来,最后用户保存修改并退出规则设置界面。

3.ALCIS系统设计

ACLIS系统设计是在前述建模的基础上形成的系统物理解决方案,同时也是对各分析模型的进一步扩展和细化。该阶段的目标是形成系统的解决方案,并且能够较容易的将设计模型转化为代码。

3.1 系统框架建模

系统框架建模主要包括两个方面:使用构件图描述程序代码的物理结构,使用配置图描述硬件环境中的配置关系,一般在用户需求分析之后即开始进行,并用于系统静态和动态行为建模的基本输入。ALCIS系统框架建模主要利用UML的包进行系统的框架设计,将具有功能相同或相似的用例、类等组合到一起形成包,并定义包(子系统)及包之间的关系。软件系统要符合高内聚低耦合的原则,尽量使包与包之间的关系简单明了。根据农用地分等的业务和数据处理流程,将其分为数据输入与管理包、分等过程包、成果输出包。由于数据输入与管理、成果输出主要采用ComGIS软件SuperMap实现,这里主要介绍分等过程包。然后对包进一步分解和细化,将分等过程包分为分等因素、权重确定子包、规则表确定子包,土地利用、经济系数计算子包,分等数据处理子包,统计分析和报表子包,分别对各子包构建其模型,图5为规则表确定包的UML模型。

3.2 系统详细设计

详细设计的目的是,利用UML提供的各种图形,不断的对分析阶段产生的对象类进行扩展和细化,并描述新的用户处理技术方面的类,从而得到更详细、具有更多细节的与现实相关的设计模型。可将确定和细化类操作分为三种:l)基本操作类,维护对象自身的存在所必须具有的操作,如最常见的增加、删除、修改等;2)用户操作类,一个对象为获取其它对象的相关信息而发出的请求操作;3)中间级操作类:负责传送相关信息,管理和维护整个系统。通过UML,我们可以方便的对ALCIS的开发过程进行修改和扩充。

在系统框架建模和系统分析模型基础上,不断的分解和细化,最后采用描述每一对象的主要属性、方法以及对象间联系、概括和聚集等关系。

4.ALCIS的实现与测试

ALCIS采用SuperMapⅢ+VB+Access的模式编程实现,其中SuperMapⅢ主要提供空间数据的输入、查询、编辑、分析和成果的输出等功能。在分析设计的基础上,利用Rational Rose(UML建模工具)实现代码与思想的互相转化(即代码生成系统和逆向转出系统),生成系统的代码框架结构,然后完成系统的开发。

系统开发完成后,需要对系统进行测试,通常包括单元测试、功能测试、集成测试、认证测试。在单元测试中使用类图和类的规格说明,测试一个类或一组类。集成测试和系统测试中使用组件图、合作图、用例图。功能测试主要是从用户角度的考虑,单元测试则是从开发人员的角度来考虑的。系统进行测试后即可使用。

5.小结

在GIS的软件开发过程中,采用面向对象的软件工程方法来组织和管理系统的开发逐渐成为一种趋势。利用UML能够将开发过程中的分析、设计和实现等信息有机的集成起来,相互协调,便于在更高的抽象层次上对系统进行修改、维护和升级,快速实现系统重构,降低成本,增强系统的灵活性和稳定性。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织