王喜春,孙志禹,李敏,沈大江
(1.长江勘测规划设计研究院 长江空间信息技术工程有限公司,武汉 430010;2.中国长江三峡集团公司 科技与环境保护部,北京 100038;3.长江勘测规划设计研究院 库区规划处,武汉 430010;4.武汉市房产信息中心,武汉 430015)
近年来,在融合网络环境下,水电工程移民管理服务所面临的是一个更加复杂、异构、开放、多变的网络、资源等环境。同时,大量用户不确定的多样性服务要求,也导致了频繁变化与多目标的用户需求。能利用各种网络环境下的跨平台、松散耦合的若干服务,协同构造一个满足用户需求的增值服务成为未来水电工程移民管理服务的一个发展方向。这就要求在针对新的用户需求进行移民管理服务设计时,一方面要保证服务易被其他服务重用,另一方面要保证可重用已有服务。因此如何建立满足用户需求的、并易被其他服务重用的服务分析、建模、设计流程十分必要。虽然,新的服务模式与技术不断涌现,如SOA、虚拟化技术、分布式计算技术、云计算等,但由于缺乏行之有效的方法论,仍然制约了水电工程移民管理服务的进一步应用和发展。
本文所指的领域与现实中常说的领域不同,它是特指在领域工程中的概念,即共享某种功能性的系统或应用程序的集合。领域含义中包含了领域工程中的很多属性和方法。在同一领域中的所有应用系统都具有很多相似,甚至相同的需求和基本功能,领域工程是指收集、组织一个特定领域内的系统或者系统的相似或相近的部分并将其加以抽象描述、分析,在构造新系统时,提供一种有效的方法来重新利用这些资源。领域工程覆盖了建立可重用软件构件和领域系统开发的所有活动。
在传统的软件开发中,从对软件系统最初的概念设计到最终编程实现的过程,有许多环节是重复进行的。领域工程以软件复用为目的,解决可复用信息的识别、组织和利用问题,从而提高系统开发效率、避免重复劳动。软件复用的出发点是应用系统的开发颠覆了过去采用的一切“从零开始”的模式,充分利用过去应用系统开发过程中积累的知识和经验,使得软件工作者的主要精力将用于解决新系统中的新问题和新需求。领域工程是目前构建软件可复用资源的主要手段,它包括领域分析、领域设计和领域实现。领域工程强调的是把已经掌握的领域知识和工程学相结合来完成某个领域应用工程的所有活动。它是软件开发者用于为相应领域定义范围、指定结构和创建可复用资产的过程和实践,涵盖界定、分类及创建可复用构件的所有活动。
领域分析是通过分析、研究一组应用系统的特性,发现并表示出需求的共性和差异的活动。领域分析的工作包含界定领域的边界以及进行领域分析建模两部分。首先开发人员在对现有系统,以及过去开发经验和研究成果的基础上,确定领域的边界。然后开发人员对现存相应的系统进行分析,抽取出共同特征和可变特征,形成领域分析模型。
在领域分析过程中,系统开发人员时刻保持与“领域专家”进行沟通与讨论。这些领域专家不仅懂得水电工程移民管理领域知识,而且对计算机系统也有一定了解。根据《水电工程移民专业项目规划设计规范》、《水电工程建设征地移民实物指标调查规范》、《水电工程农村移民安置规划设计规范》以及《水电工程移民安置城镇迁建规划设计规范》等规定的内容,系统开发人员与领域专家一起总结并明确了水电工程移民管理系统的领域范围,如图1所示。水电工程移民管理系统领域范围主要涵盖系统管理系统、地理信息应用系统、移民迁建管理系统、档案管理系统及移民公共信息查询系统5个系统。
图1 水电工程移民管理系统领域范围
在水电工程移民管理系统领域范围中,最关键的业务是通过移民迁建管理系统实现的。具体而言,根据移民安置工作流程,移民迁建管理系统又分为实物指标管理、建设征地管理、规划设计成果管理、计划管理、实施管理、移民后期扶持管理、监测评估管理、辅助设计与决策支持八大功能模块。地理信息应用系统通过地图浏览、空间定位与选择、空间分析等GIS模块辅助实现移民工作的高效管理。档案管理系统对水电工程移民管理过程中涉及的各种文档,例如合同、招投标书、预决算报告、监理报告、稽查报告等文档、音像资料进行管理,实现文档检索与输出。移民公共信息查询系统实现移民政策及法律法规查询、移民动态发布、移民个人信息及主要规划、安置信息查询等功能。系统管理系统用于管理系统的一些公用代码、公用参数等特定或固定的属性,以及用户权限认证、数据库的维护操作等功能。系统管理系统、地理信息应用系统、移民迁建管理系统、档案管理系统及移民公共信息查询系统从各个方面实现水电工程移民管理工作信息化。
领域分析基于两个概念:抽象和求精。抽象是一种处理复杂性的有效手段,领域分析使用抽象原则降低复杂性,有效地从领域的一系列应用中抽取特征,创建领域分析产品;对领域分析产品进行求精就可以开发领域中的特定应用。
鉴于实物指标是移民安置规划、实施管理的基础,本文以实物指标管理为例说明领域分析建模的过程。首先建立功能特征模型,领域分析的目的是建立领域模型,领域模型描述领域中系统之间的共同需求。通过确定移民实物指标管理的领域边界,识别信息源,分析移民管理领域中系统的需求,确定移民实物指标管理中被移民管理领域中的系统广泛共享的需求如下:实物指标修改、实物指标录入、实物指标查询、公共信息导入、公共信息导出等,可变的需求如下:用户切换、通用编码表管理、标注设置、数据库备份等。在此基础上最终确定移民实物指标管理功能特征模型,如图2所示。
图2 实物指标管理功能特征模型
领域分析建模工作在标准化领域中进行,开发人员首先从领域专家处获取域知识,接着利用已有的域知识帮助进行用户需求分析活动,对水电工程移民管理领域中的移民户信息、土地利用规划信息、移民资金信息、综合监理信息等移民管理核心业务信息进行收集、定义、抽象、组织,定义各类对象的属性名称,及这些属性允许的操作,识别构造出各种可重用信息。在领域分析的基础上构建移民管理系统领域模型,该模型主要由移民管理核心业务信息以及移民管理决策支持两部分构成。移民管理核心业务信息向移民管理决策提供后者所需的相关信息。在移民管理核心业务信息中,实物指标管理向规划设计成果管理反馈移民户信息,规划设计成果管理向实物指标管理反馈预可研阶段成果信息、可研阶段成果信息以及实施计划成果信息等相关业务信息。与此类似,实物指标管理与计划管理、实施管理、后期扶持管理、简单评估管理等进行信息交互,具体如图3 所示。
通过领域分析得到的领域模型,领域开发人员设计出适应所有领域系统的共同构架。领域设计依据领域模型生产出特定领域中的共性软件体系结构,即特定领域的软件体系架构(DSSA)。DSSA 通过对领域模型中表示需求的解决方案进行高层次设计,来适应领域中多个系统需求。DSSA最终强调的是软件重用,包括结构重用和构件重用。作为最基本的设计元素,系统构件的范围可大可小,可以是一个对象、一个进程、一个数据库或其他。在确定水电工程移民管理系统领域模型后,我们进行领域设计,形成可重用的软件体系架构模型,并在此基础上进行满足领域需求的软件构件的设计。水电工程移民管理系统体系结构自顶向下共分为五层:分别是:用户层、应用层、数据层、网络传输层、应用支撑技术层,如图4 所示。
图3 移民管理系统领域模型
(1)用户层。在用户层,系统将应用层数据处理的结果返回给用户的图、表、文字等。系统的用户包括业主管理部门、地方政府、设计单位、监理、监督评估单位、移民以及其他等。
(2)应用层。系统应用层是系统的功能核心,水电工程移民管理信息系统的功能实现就是在该层进行数据处理,包括水电工程移民管理领域范围内的各类应用。例如移民迁建管理、档案管理、移民公共信息查询、地理信息应用等;系统还可在此基础上逐步拓展到领域内的其他更多专业化应用。系统的功能实现是基于构件进行组织的,这些基础性通用构件支撑移民业务应用,如GIS功能构件、数据维护管理查询分析统计构件、数据访问分析构件和决策支持构件等。
(3)数据层。作为系统的数据核心,数据服务层涉及的数据库包括移民数据库和基础地理信息数据库。移民数据库包括实物指标数据库、规划成果库、移民安置管理库、后期扶持管理库以及移民档案库等。基础地理信息数据库包括数字地形数据、数字高程模型数据、数字正射影像数据以及其他空间数据。
(4)网络传输层。网路传输层主要包含各种网络传输协议,例如:TCP/IP、Netware、HTTP以及FTP等协议。
(5)应用支撑技术层。应用支撑技术层为移民管理系统实现提供相应的支撑技术,包括数据库技术、GIS、MIS集成技术和WEBGIS技术等。
在领域分析和领域设计的基础上进行领域实现。领域实现通过领域分析模型和DSSA提取、设计、实现领域中可复用资源,这些资源包括领域框架、领域特定设计和代码构件等。
通过定制领域模型完成水电工程移民管理系统领域实现,形成当前应用的需求规范。通过对DSSA 的定制,形成当前应用的移民管理软件体系结构,并以此为基础选择领域构件进行组装,从而形成新的移民管理软件产品。在领域实现阶段的主要行为是确定将需求翻译成可复用构件的系统机制。根据所采用的复用策略和领域的成熟和稳定程度,这种机制可能是一组与领域模型和DSSA 相联系的可复用构件,也可能是应用系统的生成器。与此同时,还需要对上述过程中获取的领域构件进行实现以及管理。领域构件主要包含领域框架构件、领域描述构件和代码构件等。在领域实现阶段实现在领域设计模型中的功能构件和体系结构构件,生成最终的二进制代码,并在应用软件开发时集成到最终的程序中。这些可复用的活动的产品包括:领域模型、领域构架、领域特定的语言、代码生成器和代码构件等。
图4 移民管理系统体系结构
图5 基础性通用构件复用及再聚合过程
在应用层中依照统一建模形成的各项基本服务最终以各种基础性通用构件资源的形式部署在基础性通用构件库中,当需要开发水电工程移民管理领域的新应用系统时,就可以像组装产品一样,根据具体的需求,将需要的构件按照应用系统设计去组装形成,而无需从零开始。整个基础性通用构件复用、再聚合过程见图5。以农村移民实物指标管理功能为例说明,该项基本服务包含的功能有实物指标录入、修改、删除以及测量面积等。开发人员可以在构件目录中来查找和选择所需的农村移民实物指标管理构件。当申请基础性通用构件的服务请求发送并验证通过后,由系统管理器来找到合适的基础性构件资源,接着调用构件提供工具来挖掘基础性通用构件库中的资源,其中与实物指标录入、修改相关的构件从数据维护管理查询构件库中提取,与测量面积相关的构件则从GIS功能构件库中提取。资源监控和配置器在整个基础性通用构件复用、再聚会的过程中,对各类构件进行配置并对构件提供工具进行监控。
特定领域的软件复用技术是提高软件开发效率的重要手段。软件复用技术能很好地解决软件规模和复杂度日益增加的困境,领域工程的思想和良好的系统架构能有效地提高软件的可重用性和可维护性。本文探讨基于领域工程的水电工程移民管理的新方法,在水电工程移民管理系统建设中采用软件复用的思想,为水电工程移民管理提供了一种新思路、新模式。针对水电工程移民管理领域中移民迁建等领域的特点进行研究分析,确定水电工程移民管理领域的范围,形成水电工程移民管理系统领域模型,以实物指标管理为例,建立功能特征模型。在上述基础上,设计了移民管理系统体系结构。在移民管理分层体系的基础上,采用领域工程方法分析不同水电工程移民管理领域属性和共性特征,能够从数据访问、数据表示与传输等多个层次上分别建立移民管理的领域构件库。在实际应用中,我们应用领域实现阶段完成的各种构件实现了水电工程移民管理系统,在乌东德水电站、重庆小南海水电站等多个水电工程的移民实物指标调查、移民公共信息查询等工作中发挥作用。领域工程的引入,为后续的利用复用开发提供了原型系统的支持,使得开发者能快速构建应用系统并且保持相对稳定,减少了开发与维护的工作量,软件复用的效率得到了大幅的提高。极大缩短了应用系统的开发周期。应用领域工程技术开发的水电工程移民管理系统的应用极大提升移民管理水平,加快工程建设进度。
参考文献:
[1] 张海藩.软件工程导论[M].北京:清华大学出版社,2003.
[2] 黄玉坤.软件复用技术及领域工程综述[J].计算机与现代化,2007(11):43-48.
[3] 李克勤,陈兆良,梅宏,等.领域工程概述[J].计算机科学,1999,26(2):21-25.