基于组件的软件开发(精选10篇)
基于组件的软件开发 篇1
近年来, 随着国民经济水平与信息技术水平的提高, GIS也变得更为完整和全面, 且已构建了相应的理论体系, 目前在社会各行业也取得了广泛地应用, 如经济建设、土地利用、交通运输、资源管理、城市规划、环境监测等, 已逐渐成为了目前信息技术一项重要的构成部分。为更好地适应当前社会发展变化的需求, 使传统GIS软件在系统集成上所存问题得到有效地解决, 本文基于MAPGIS组件, 就相关应用软件的集成开发进行研究和分析。
随着网络信息技术的快速发展, GIS软件也逐渐向组件式的GIS开发技术发展, 借助于该技术的应用, 不仅可使软件的开发更为便捷和灵活, 同时还能使集成实现高效且无缝的目的。目前在GIS软件的发展过程中, MAPGIS这一开发组件的产生, 更是为广大用户提供了更为便捷和合理的二次开发方式。
1 组件集成的开发技术
在GIS技术的发展过程中, 先后经历了六个阶段, 即GIS模块、组件式GIS、集成式GIS、核心化GIS、Web GIS以及模块化GIS, 在这之中, 又以组件式GIS的表现最为突出。组件式GIS是在标准组件式平台的基础上所形成的, 各组件间既可灵活且自由地重组, 同时其还包含了可视化的界面, 能够满足不同控件的接口需求。在开发应用中, 可像应用其他控件一样来应用组件式GIS控件, 在应用过程中, 可对专用的各种程序设计语言进行自由地选择, 以此来完成GIS应用系统的自主开发任务。
这种组件式地理信息技术的应用思想主要如下, 即基于该技术中各功能模块自身所有的各种属性, 把各功能发细分为多个控件, 同时每个控件均有自身所特有的功能。在应用时, 用户基于自身的实际需求, 借助于面向所有对象的这一可视化程序设计语言, 可将各控件或者其他非控件有效地集成在一起, 以此成为最终所需的应用系统。在集成二次开发过程中, 除了可充分利用GIS组件空间数据所具备的可视化分析功能与处理功能以外, 同时还可通过可视化软件开发工具自身所具便捷且高效的编程功能的应用, 提升所建这一GIS应用系统自身的开发质量与效率。借助于可视化软开发工具所开发的这一应用程序, 不仅可靠性强, 同时其外观功能也相对较好, 便于后期的维护, 正是因为其所具备的这些优势, 使得该组件开发技术逐步成为了各应用系统开发发展的趋势。
2 基于MAPGIS组件集成开发应用软件
MAPGIS组件集成了很多先进技术, 其功能更为强大且健全, 更加便于应用, 具备无限扩展、开发便捷以及便于集成等优势。MAPGIS通过组件这种方式, 使得GIS功能更为完善, 其主要包括地图编辑、属性数据的分析、三维模型的显示、网络分析、数据库管理、多源图像的处理和分析以及空间分析等。由于系统的标准为开放式, 因此也就为MAPGIS组件的扩展提供了更大且更为广泛的发挥空间, 有利于MAPGIS这一组件和其他各种信息服务之间的无缝集成, 使所构建的这一应用系统更加完善以及具体。在此基础上, 通过编程语言的充分利用, 在开发中, 用户可轻松完成产品定制工作。MAPGIS组件对于开发语言的依靠性不是很强, 可借助于自身所有的功能直接将各种通用性的开发软件环境嵌入至此, 从而使GIS的功能更为健全和完善。
(1) 开发案例。在COM组件化软件设计法的应用基础上, 研制了一种矿山信息可视化管理系统, 这一系统采用的是面向对象可视化编程语言和MAPGIS系统提供的相关二次开发组件, 并将现代化多媒体技术以及数据库技术有效地结合来实施研制。所构建的这一矿山地质测量信息数据库, 该数据库不仅能实现GIS所有的各种基本功能, 同时还可完成数据信息的查询、输入、分析、输出以及编辑等作业, 从而为生产的安全性与高效性提供相应的技术保障。
通过该系统的分析可知, 该系统所具功能主要如下:第一, 数据输入, 即地图数据信息借助于文件转换、数字化以及扫描矢量化等相关方式来完成输入, 而其他数据信息输入管理则借助于VB数据库或者记事本来实施。第二, 数据输出, 属性数据和其他相关数据信息以报表台帐的形式输出, 图形信息以图纸的方式输出。第三, 数据编辑, 其主要的任务就是完成图层控制、数据编辑以及维护等各项工作, 其他数据信息的编辑则借助于VB数据操作控件来直接进行操作。第四, 数据的查询, 该系统为数据查询提供多种方式, 比如属性信息的查询可借助于空间位置来完成, 而空间位置信息查询则可借助于属性信息来完成, 或者通过二者的结合来完成其他相应的信息查询工作, 在查询过程中, 应结合用户自身的实际情况以及相应的要求等, 在系统数据库中直接实施查询工作。第五, 数据的分析, 该系统的数据分析主要包括冲区分析、信息三维显示以及叠加分析等, 此外, 在统计分析上, 主要以曲线图形、饼图或者直方图来表示。
(2) 开发实践分析。第一, 图形信息和其他相关数据库之间的连接。在VB程序中, 借助于MAPGIS组件中外挂数据库的合理调用来二次进行函数的开发, 以获得外部数据库和图形信息之间的接口, 达到图形信息和记事本以及VB中数据信息有机结合的目的。第二, 组件对象的使用。在应用该组件时, 首先应将其安装于计算机中, 并且在注册表中注册, 其注册的方式与其他相关空间注册方式一样。为使VB可以实现MAPGIS组建对象的访问, 应将MAPGIS组建对象的类型库引入至VB项目或者相应的模块中, 可借助于引用这一对话框来完成该项作业, 接着在进行所需类型库的选用, 以此就可像其他对象的应用一样来应用该组件对象。第三, 图形显示工作区。在实践应用过程中, 要想图形显示, 就必须要事先将工作区打开, 在获得工作区类型后, 接着进行变量的设置, 明确图元的属性, 按照所选图元来取相应的属性信息。为使属性信息得以有效地显示, 可借助于放置了一个Gis Att Edit控件的窗口, 把所获得的这些属性信息传至这一窗口就可完成显示工作。由于程序可将多个不同工作区同时启动, 因此在关闭时, 应重新进行对象变量的设置, 将其设置成为空, 以此使工作区域和有关资源空间释放, 以免出错。
3 结束语
综上所述, 随着社会经济发展速度的加快, 信息技术水平的提高, GIS技术也越来越受到人们的关注与重视。本文就基于MAPGIS组件集成开发应用软件进行了详细地阐述, 望通过本文内容的介绍, 可为今后GIS的发展与完善提供相应的参考依据。
参考文献
[1]张国瑞, 郝多虎, 刘现锋等.基于组件GIS土地管理信息系统的设计与实现[J].计算机光盘软件与应用, 2011 (09) :167-168.
[2]邹海英.一种通用GIS解决方案开发组件的设计与实现[D].北京大学, 2011.
[3]陈超, 仇阿根, 朱芳菲等.基于ArcGIS Engine的土地信息管理系统的设计与实现[J].全球定位系统, 2012, 37 (2) :77-80.
基于组件的软件开发 篇2
1 工程管理信息系统与组件开发技术的科学概念
工程是科学和数学的某种应用通,通过这一应用,使自然界物质和能源的特性能够通过各种结构、产品和机器反应出来,是以最短的时间和精力做出高效、可靠且对人类有用的东西。有组织、有目的的群体性活动是为了改善自身生存和生活条件,并根据当时对自然规律的认识而进行的物化劳动的过程。“工程管理是对工程所进行的决策、组织、计划、协调、指挥与控制”。工程管理信息系统在现在的生活中有了较多应用,在概念和方法上有了巨大的变化,现阶段的工程管理系统无论作为学科,还是内容都更为丰富。工程管理信息系统的组件是个复杂的工程,基于不同组件的开发技术成为发展的必然趋势。
基于组件的软件开发 篇3
一、策略知识
策略是为了实现目标,而采取的行动方法。安德森(L.W.anderson)在《布卢姆目标分类学》中认为:策略性知识是知道如何做的知识,它反映了不同情境或过程中思维、方法的运用。它主要包括技能知识、方法知识和决定何时运用适当程序的标准知识等。技能知识是人通过实践而获得,它由一定的程序构成。在地理学科中,图表是地理学科的第二语言,如果没有这些知识,学生就不会读图、析图、填图、绘图,就不能较好地从图表中获取地理信息,解决地理问题。方法知识主要包括发现问题、解决问题的方法和思维的方法。由于地理学科横跨了自然学科与人文学科,科学的探究方法与思维方法对学生发现问题、解决问题有很重要的作用。
人们在思考与解决不同问题的过程中,要运用已掌握的不同知识、技能、方法去进行思考与解决不同的问题。如果没有这些知识,学生在掌握了教师传播的知识后,就不能较好地对知识进行举一反三,从而影响了知识、能力与方法的迁移效果。
从策略性知识的内涵与具体内容可以看出,策略性知识的特点主要表现在三个方面:程序性,即不同的问题可以按照一定的思维方式进行;迁移性,即可以在不同的问题情境中进行运用;应用性,即可以去解决不同的实践问题。
二、地理策略学习的内容
根据策略知识的内涵、内容与特点,结合地理学科的特点,地理策略学习的内容主要包括探究方法、图表阅读、要素思维、空间思维、野外实践等。
由于地理学科是由一定的学科体系构成的,故它可分为自然地理和人文地理。而自然地理和人文地理也是由一定的要素构成的,并体现在具体的空间。它不仅可以使人们了解生存的环境,也肩负着解决人口、环境、资源、发展等全球性问题的重任,使地理课堂学习内容不仅在书本中,也在自然与社会之中。因此,基于地理学科体系和《地理课程标准》(以下简称课标),探究方法主要包括发现问题、解决问题、表述观点等内容;图表阅读主要包括确定图表信息结构、获取显性图表信息等内容;要素思维主要包括获取感性认识、找出问题关键等内容;空间思维主要包括空间定位、比较差异等内容;野外实践主要包括实验、调查、勘察、观测等内容。
三、地理策略学习的设计方法
地理策略学习的设计可采用ATMSTT法,即辨识目标、编码图文、匹配策略、选择媒体、主题活动、检测效果。下面就以人教版高中地理《荒漠化的防治——以我国西北地区为例》学习为例,介绍地理策略学习的具体设计步骤。
1.辨识目标
辨识目标,可采用TDTCC法,即任务、需求、目标、编写、归类,其具体操作如下。
第一步,了解学习任务。首先根据教材内容,明确本节课学生的任务是“我国西北地区荒漠化的防治”;然后分析“荒漠化的防治”中所要学习的土地退化、荒漠化地理概念和荒漠化现象、分布等地理术语,以及荒漠化的形成过程、区域自然与人文因素与荒漠化的关系、不同时期荒漠化的程度等地理原理规则;最后,理清荒漠化与土地沙漠化、石质荒漠化、次生盐渍化、红漠化的关系,不同区域荒漠化的特征及荒漠化生态问题的影响与解决措施。
第二步,分析学习需求。首先,教师要分析课标中关于“荒漠化的防治——以我国西北地区为例”学习的达标要求。其次,教师要了解学生学习能力的起点,即教师收集所教班学生在学习“地理环境对区域发展的影响”和初中地理中“西北地区”的检测效果的数据,了解学生在学习过程中的相关知识、能力与情感的现状。最后,教师要找出最近发展区,即根据理想的课标和所教学生实际水平之间的差距,找出学生学习完成本任务的最近发展区。由于学生已经在必修1和必修2及初中地理学习中对地理要素有了系统的了解,但对区域发展中的生态问题则比较陌生,这就需要教师要制订适合学生学习水平的课堂教学目标。
第三步,确定学习目标。首先,将学习目标分为“西北地区”和“荒漠化及荒漠化的防治”知识目标,以及“区域生态问题的分析与治理方法”能力目标和“培养学生人地协调的可持续发展观、整体观和差异观”情感目标。其次,将知识目标细化为“土地退化和荒漠化的概念与类别、荒漠化现象与分布、荒漠化的形成过程”等,并将能力目标细化为“区域生态问题的分析与治理方法”。最后,确定每个组要达到的学习水平。
第四步,编写学习目标。根据知识、能力、情感三大领域目标的学习水平,选择与此相应的行为动词。如在知识目标方面,匹配的动词是识记荒漠化现象与分布、说出荒漠化的概念与层级关系、描述荒漠化的形成过程和区域特征等。在能力目标方面,匹配的动词是运用荒漠化问题的分析与治理方法,分析不同区域荒漠化问题产生的原因、影响与防治措施。在情感目标方面,匹配的动词是形成人地协调的可持续发展观、整体观和差异观与社会责任感。
第五步,归类学习目标。利用“学习目标-水平表现矩阵”表,对学习目标进行归类。如在知识目标中,属于识记水平的行为动词是记忆,属于理解水平的行为动词是说出、描述、解释、了解,属于应用水平的行为动词是分析,属于评价水平的行为动词是辨别;在能力目标中,属于第三级迁移水平的行为动词是运用;在情感目标方面,属于第三级价值化水平的行为动词是形成。
2.编码图文
编码图文,可采用CSTC法,即分类、选择、策略、线索,其具体操作如下。
第一步,分类策略学习的图文材料,即根据知识、能力、情感三个部分的学习目标,将策略学习的图文材料分成三个类别。
第二步,选择策略学习的具体图文内容,即根据文字、图片、练习三个部分,选择策略学习的图文内容。在文字材料方面,策略学习的内容主要是荒漠化的分布、土地退化、荒漠化的概念等;在图片材料方面,策略学习的内容主要是荒漠化的形成过程示意图等;在练习材料方面,策略学习的检测内容主要是设计本节认知目标、能力目标达标程度的活动与练习。
第三步,确定策略图文学习的策略,即根据学生的能力起点和学习目标,采取适合策略图文学习的呈现策略。根据本节的学习目标与内容,呈现图文学习的策略主要是图示法、表格法、叙事法。如用图示法可学习荒漠化的表现、分布和作用条件间的关系等知识,可直观地向学生展示地理概念。
第四步,寻找图文中的线索,即找出图文中的显性与隐性信息及它们之间的关系。如教师在用图示法引导学生归纳“荒漠化的概念”时,要引导学生观察“沙漠化的景观图”等,找出图中荒漠化的分布等显性信息,分析4种景观图中荒漠化的共性条件、特性条件等隐性信息,用示意图概括荒漠化的概念和表现,帮助学生理解荒漠化概念的层级关系。
3.匹配策略
由于本节内容是“荒漠化的防治——以我国西北地区为例”,属策略性学习的内容,学习策略可采用DMEPF法,即示范、模型、释义、练习、反馈,其操作如下。
第一步,示范问题分析方法,即教师根据“荒漠化”的本质,将“荒漠化”的分析方法确定为获取感性认识、找出问题关键、明晰相关概念等的要素思维法;同时,融合空间定位、比较差异、概括特征等的空间思维法。另外,教师还要向学生示范要素思维方法。如让学生从相关图中获取“荒漠化”的感性认识,用地理术语概括地表述“荒漠化”的概念,利用图表从位置、地形、气候等方面分析与概括西北地区的区域特征联系和影响因素、内部差异,从人与自然协调的角度综合分析荒漠化防治的内容和防治措施。
第二步,建立问题分析模型,即学生对关于“荒漠化”概念、“荒漠化的原因”等要素思维方法的信息,以自己的方式对其进行加工与组合,可以用言语描述“荒漠化”生态问题的表象分析模型,并形成心像地图分析模型。
第三步,释义分析步骤间关系,即学生通过言语或心像地图分析模型,用自己的语言解释用什么方法来明确区域位置与范围、综合分析区域环境特征、了解生态问题产生的危害等,用心像地图的形式来理清各步骤之间的关系。
第四步,在不同情境中的应用方法,即学生将已形成的“荒漠化”生态问题的分析模型,运用到不同区域相关问题的分析中,并得出治理的措施。如教师可引导学生将西北地区荒漠化生态问题的分析模型运用到江南的红漠化、云贵的石漠化、华北的次生盐渍化分析中。
第五步,了解方法掌握情况,即学生将荒漠化生态问题的分析模型运用到非洲萨赫勒地区、前苏联垦荒区荒漠化问题的分析过程中,从而了解学生对此分析模型的掌握程度,及时修正学生的思维过程。
4.选择媒体
学习媒体的选择策略可用“学习材料-媒体功效矩阵图”,即将学习材料与创设情境、展示事实、提供示范等环节相匹配,体现学习材料与媒体功效之间的关系,使教师更好地明确在什么时候使用媒体、为什么使用媒体。如“区域特征与荒漠化的影响因素”学习材料,可通过“荒漠化的表现与分布、西北地区区域特征与影响因素”等示意图来为学生提供示范,通过“荒漠化的形成过程”等示意图来为学生呈现过程,通过“不同荒漠化现象与治理”等景观图来设疑思辨,通过“荒漠化”知识结构图来总结归纳。
5.主题活动
主题活动,可采用TISGW法,即主题、意图、情境、行动、操作,其具体操作如下。
第一步,确定主题。即根据课标、学习内容和学生学习的能力起点的分析,可利用高中学生喜爱摄影的特点,将本节课的学习主题定为“哭泣的骆驼——荒漠化生态告急”摄影展。
第二步,明晰意图。即通过“哭泣的骆驼——荒漠化生态告急”摄影展主题活动,引导学生在轻松、活泼的氛围中学习本节内容,并掌握分析与解决区域生态问题的方法,培养学生的可持续发展观和社会责任感。
第三步,创设情境。即为了让学生对“哭泣的骆驼——荒漠化生态告急”学习产生浓厚的兴趣,教师可上网搜集关于“荒漠化生态告急”的摄影照片,激发学生对全球生态问题之一——荒漠化的关注,引导学生思考如何解决我们面临的生态问题。
第四步,设计行动方式。即将总活动分解为若干个组件,并设计完成这些组件学习需要的材料、媒体、行为。围绕本节主题活动,将本节主题活动分解为“死亡的边缘、干枯的榆树、挖发菜之旅、塔克拉玛干的前进、绿色的希望、全球荒漠化论坛”6个学习组件。
同时,针对组件1“死亡的边缘”,学习材料主要是荒漠化的文字资料与各种景观图,学习媒体主要是“我国不同地区的不同荒漠化景观”等图,学习行为主要是观察景观图片与图表阅读“中国与世界荒漠化的分布”等图。针对组件2“干枯的榆树”,学习材料主要是西北地区的文字资料和西北地区的位置、地形、降水、植被等图,学习媒体主要是用多媒体展示“西北地区位置与地形”等图,学习行为主要是观察不同的地图和景观图片、图表阅读其自然因素及相互间的关系、概括区域特征和气候异常对荒漠化的影响及危害。针对组件3“挖发菜之旅”,学习材料主要是西北地区的文字资料和人为影响因素等图,学习媒体主要是“西北地区荒漠化的人为因素影响”等图,学习行为主要是观察不同的地图和景观图片、图表阅读人类活动及相互间的关系、分析人为影响因素、概括人类不合理活动的影响和危害。
第五步,进行行动操作。即在组件学习中,学生获得知识、能力、情感,并将其运用在新问题的解决中。如针对组件1“死亡的边缘”,其匹配的行动操作主要是用语言描述荒漠化的概念,用图片识记荒漠化现象与分布,用示意图归纳荒漠化的形成过程、表现及关系。针对组件2“干枯的榆树”,其匹配的行动操作主要是用表格归纳内部自然差异,用语言描述西北地区的区域特征,用表格归纳内部自然差异,用示意图归纳潜在的自然因素。针对组件3“挖发菜之旅”,其匹配的行动操作主要是用表格归纳人类不当行为、活动对荒漠化的影响,用示意图归纳荒漠化的人为因素。
6.检测效果
检测效果,可采用TWTAUR法,即目标、方式、题目、解答、说出、调控,其具体操作如下。
第一步是目标,即联系学习目标,确定检测的目的。第二步是方式,即根据检测目的,选择组件的检测题是以客观、主观、观察或表现等哪种形式出现。第三步是题目,即根据检测方式和目的,编制相应的题目。第四步是解答,即学生要运用已学的知识与技能进行题目的解答。第五步是说出,即学生大胆地说出自己在解题过程中的思维过程。第六步是调控,即教师针对学生学习过程中的问题,进行反馈调控。
综合所述,在地理策略学习过程中,以各教学组件设计方法为核心对地理策略知识进行编码,将地理策略知识及与之相关的地理能力、地理观点进行有序、优化地组合封装,通过主题活动进行传播。在知识传播过程中,学生通过TISGW主题组件法,对知识进行解码与编码,从而构建自己的知识体系,形成适合自己的学习方法。同时,在运用TISGW主题组件法传播知识的过程,训练学生运用知识发现、分析与解决问题及反思的智慧技能,提高课堂教学质量,实现地理课程的育人价值和“培养有地理素养的人”的课程目标。
基于组件的软件开发 篇4
1 组件式GIS
组件式GIS(Components GIS,缩写为ComGIS)技术的基本思想就是把GIS各大功能模块根据性质的不同划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,GIS控件与其它非GIS控件之间,可以方便地通过面向对象的可视化的软件开发工具集成起来,形成满足用户需要的GIS应用,控件分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的控件搭建起来构成应用系统。组件式GIS系统具有直接嵌入MIS开发工具,不需GIS语言二次开发和产品大众化的特点。
2 基于组件式GIS的矿井救援系统软件平台的开发
本系统平台是在Visual Basic.NET 2003环境下进行GIS软件平台的开发,采用的是组件式GIS产品MapX。MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品,是一种基于Windows操作系统的标准控件,能支持绝大多数标准的可视化开发环境如Visual C++,Visual Basic等。MapX提供了各种工具、属性和方法。每个Map对象主要包括Datasets,Layers,Annotations三个对象集合。其中Layers主要用于操作地图的图层,DataSets用于访问空间数据表,Annotation用于在地图上增加文本或者符号。Map对象有一些主要的属性,如Zoom用来设置放大级别(在地图上显示的大小),Rotation控制地图的旋转角度,CenterX和CenterY用于设置x和y的坐标系,GeoSet是在GeoManager中建立好的.GST文件,控制程序中显示的地图,可以使用GeoSetManager程序来管理GeoSet文件(*.GST),可以调用GeoDictionary Manager程序进行修改,指向用户程序数据所在的位置。Datasets用于实现地图与数据的绑定。Annotations集合提供了操纵地图中文字和符号的简单方法。Annotations位于所有其它图层的上方并且不与任何数据连接,Annotations包括AddSymbol在Annotations中增加符号,AddText在Annotations中增加文本,Remove删除特定的标注等属性。
系统平台的开发大致可分为四个基本步骤:
1)启动Visual Basic.NET 2003,创建一个新工程,在“工程”菜单下选择“部件”项,在“部件”对话框中勾选MapXtreme V6.5选项,然后在窗体上添加一个MapXtreme控件;
2)通过地图控件属性框或编写代码,向MapXtreme控件中添加地图数据;
3)编写程序代码来调用地图属性、事件和方法;
4)调试、编译运行。
如GIS软件平台中地图图层的显示的实现方法可通过定义Map对象,并设置其Layers字符串属性来实现。下面的代码就是将存放在系统软件默认文件夹下的名为“主图”的Gst文件添加到MapXtreme控件中进行显示。
其中EnableMapPath函数(Function)根据传入参数(“主图”)返回制定地图的绝对路径,通过MapGeoserLoader加载地图到MapControl1和MapControl2中。
地图的放大、缩小及漫游可以通过设置MapXtreme控件的ZoomLayer属性来加以实现,而当地图放大时可以通过Pan方法进行漫游。例如,当选中“放大”(或“缩小”)按钮后,按下鼠标左键,并拉出一个矩形框时,将放大(或缩小)显示此矩形内的图形;而当选中“漫游”按钮后,按下鼠标左键,将执行图形漫游功能(代码略)。
3 结束语
现在国内矿井救援系统软件平台的开发基本上都要嵌入原先的矿井信息管理等系统,集成各种数据库等,因此采用组件式GIS进行嵌套,无需额外的GIS二次开发语言,GIS控件开发技术,占用资源少,编程过程简单、灵活、易用,便用系统的操作和维护;系统开发成本低、可扩展性强,由于组件接口的稳定性,平台的提升和系统规模及功能需求的扩展不会影响系统源代码,所以系统具有极大的延展性和灵活性。
参考文献
[1]胡武强,胡丹.基于MapXtreme2004的WebGIS系统的研究[J].计算机应用与软件,2006(1):313-317.
[2]王宝山,冯永玉.基于空间的矿山地理信息系统应用软件开发[J].辽宁工程技术大学学报,2005,24(4):104-107.
全包组件接口开发合同 篇5
票据管理系统开发项目
合 同 书
票据管理系统开发项目
合 同 书
甲 方:
乙 方:河北航天信息有限公司
经甲乙双方协商,就开发甲方管理信息系统与防伪税控开票软件的接口项目达成如下协议。目标
实现管理信息系统与防伪税控开票软件的数据共享,使系统在满足国家税务总局对增值税专用发票开具和管理要求的同时满足甲方内部管理要求,避免重复录入,提高工作效率,并保证两个系统数据的一致性。
软件功能:
a.系统环境设置:设置系统应用的相关参数设置。
b.税控票据处理:防伪税控发票填开管理,从客户的财务软件系统及Excel表
格中引入开票数据到防伪税控系统中进行单张或批量填开发票,并保证所填开发票的准确性、合法性。
c.防伪税控系统:保证原防伪税控系统正常使用,符合国家税务总局的要求。责任和义务
2.1甲方责任
a.按照开票软件运行要求准备硬件环境,包括微机、打印机和网卡等通用计算机设备,以及经所属税务部门发行的金税卡、IC卡读卡器和IC卡等防伪税控专用设备。
b.按照乙方要求提供乙方开发接口软件所需的发票数据来源和相关数据表结构。c.在双方完成各自准备工作后,与乙方工作人员一同进行安装、调试和测试。d.开票接口软件和票据管理系统接口由乙方提供给甲方后,甲方须严格管理,不得以任何理由和任何方式将接口软件提供给其他企业使用。
e.甲方须按时交纳软件维护费用,否则乙方有权终止对甲方软件的维护和升级,并有权将接口版软件改为普通防伪税控开票软件,如需升级和技术服务乙方必须补交所欠的软件维护费。
2.2乙方责任
a.根据甲方需求制定接口实施方案,以乙方开发的“防伪税控开票子系统”接口模块为应用平台完成接口方案,并为甲方修改管理信息系统提供必要的咨询、培训和技术支持。b.乙方根据甲方提供客户信息管理系统的数据库接口,开发适合甲方使用的防伪税控票据管理系统,满足信息管理系统与防伪税控数据共享的需求。
c.在双方完成各自准备工作后,到甲方现场与甲方工作人员一同进行安装、调试和测试。d.由于乙方技术问题变动造成的升级,乙方负责免费提供升级软件(此条款不包含硬件升级)。由于税务制度和甲方需求变化带来的升级工作乙方将根据情况适当收费。
e.乙方必须保证所开发的接口软件正常、稳定运行,为甲方提供及时、周到的技术服务。测试与验收
a.系统安装调试成功后,甲乙双方根据甲方需求对系统进行测试。b.测试在接口模拟环境下进行。
c.验收合格标准依本合同书第1条确定。软件维护
a.软件开发完成,乙方必须保证对甲方的必要培训和实施工作,保证甲方正常使用系统,掌握系统日常维护。
b.乙方提供的软件免费维护服务时间为签订合同之日起一年内,维护内容是为甲方开发软件的Bug修正及因乙方技术原因引发的系统故障修复提供指导,不包括软件新增功能的开发。
c.免费维护期后,每年系统维护费按合同总额的10%收取,以保证系统的正常运行。甲方在维护费缴纳年限当中,如系统出现故障时,甲方报知乙方,乙方应在4小时内给甲方答复,如电话无法解决的问题,乙方应在24小时内安排维护人员上门解决。合同额及付款方式
5.1合同金额
每个开票点价格2.4万,优惠价格每个开票点2.2万。
开票点数量:2台
开票点税号:
合同金额合计: ¥44000.00 元;
合同金额合计大写: 肆万肆仟元整。
5.2付款方式
双方签订合同3日内甲方向乙方支付本合同费用的全部款项,乙方3天内提供正式版软件和注册码。其他
6.1本合同自签字盖章之日起生效。未尽事宜双方协商解决,本合同一式两份,甲乙双方各持一份。
甲方:
乙方:
地址:
地址: 电话:
签约授权人:
协议生效日期:
电话:
基于组件的软件开发 篇6
地理信息系统(GIS,Geographic Information System)是随着地理科学、计算机技术、遥感技术和信息科学的发展而发展起来的一个学科。它是计算机硬件、软件、地理数据以及系统管理人员组织而成的对任一形式的地理信息进行高效获取、存储、更新、操作、分析及显示的集成。
随着计算机技术的飞速发展,特别是组件式软件技术的出现,使利用已有的可扩展组件开发定制GIS系统成为一种趋势。国内外不少学者和开发商都推出了各自的GIS组件,这些产品的发布极大地促进了GIS软件的发展,但在互操作性、可移植性、数据共享等方面任存在一定的局限性。
Silverlight是微软开发的Web前端应用程序开发解决方案,是微软丰富型互联网应用程序(Rich Internet Application)策略的主要开发平台之一,以浏览器的插件方式运行,提供Web应用程序中多媒体(含影音流与音效流)与高度交互性前端应用程序的解决方案,它的图形处理模块内核采用的是WPF技术。WPF技术是微软最新的图形处理框架,它引入了一种新的图形合成引擎使2D/3D渲染效果以及动画效果绚丽。
高生产效率是微软技术的一贯特点,Silverlight也不例外,因而如果将它应用到GIS系统中将会大大提高效率。首先,由于WPF是对之前的图形处理技术更高层次的封装,因此可以带来更快的开发速度。其次,WPF支持硬件(GPU)加速,使得渲染图像的速度大大加快。最后,由于Silverlight是以插件的方式运行,使得系统的响应速度也得到了大大的提升。
介于以上优势,可以看出选择Silverlight开发GIS系统将会是一种趋势,所以开发一款基于Silverlight技术的可扩展GIS组件是十分有意义的。
2. 设计分析
2.1开发工具选择
整个组件基于.NET Framework 3.5,使用VS2008开发;地图渲染及呈现采用Silverlight技术;客户端与服务器端通信使用WCF通信框架;语言主要采用C#,部分使用C++。
2.2组件设计
本组件采用敏捷开发模式和面向组件的设计思想。敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。它让开发人员可以把精力集中在软件功能本身而不是繁杂的文档,并且它要求开发人员实时与客户保持联系,这样就使得开发人员能够随时得到反馈,从而保证产品的可用性;面向组件的开发更加注重接口设计的易用性、可扩展性。因此,本组件通过在Silverlight图形处理库的基础上封装一套通用的GIS接口,可以方便地调用其API以实现浏览查询及分析等功能。此外,良好的接口扩展性使得一些特定的功能可以轻松地通过重写的方法实现。
3. 设计实现
本组件实现了多种空间数据格式的解析,包括ESRI的Shape文件(二进制文件),Sql Server 2008的空间数据库,Oracle Spatial空间数据库,Tab文件等矢量数据格式,以及Sid文件、ECW文件等图像数据格式。其中以Shape文件最为重要,对它数据的读取方法如下:首先使用System.IO.Stream类的Open方法将.SHP文件以流的方式打开,然后先使用Stream.Read方法读取它头文件里的必要信息(如Bounding Box,存贮的记录数量及存储的几何图形类型等),随后遍历索引文件(.SHX)得到每条记录在.SHP文件中的位置以及长度,最后调用Stream.Read方法在.SHP文件中取得每条记录的空间坐标信息。
Silverlight控件Map的实现。本组件实现一个Map控件,它继承自Canvas类,用户在开发时只需要将Map拖入自己的Xaml文件,然后设置相应的数据源文件以及绘图样式等就可以轻松和Map进行交互。Map控件本身内置了一些基本功能,如地图拖拽、放大、局部放大等。这些功能是通过处理System.Windows.Controls.Canvas的Mouse Move,Mouse Wheel和事件来实现的,Mouse Move是鼠标在Map控件上移动时触发的系统事件,Mouse Wheel是鼠标在Map控件上时滚轮滚动所触发的事件。下面是主要代码片段。
支持多种绘图样式。预先定义的一些基本的点线面的样式。可以根据指定属性值的不同使用不同基本样式的Value Style,指定属性满足某个正则表达式后采用特定基本样式的Regex Style,以及基于某个特定数值属性的大小在某个平面内画相应多的点以表示数值密度的Dot Density Style等高级样式。下面是Value Style实现代码的主要片段。
实现在地图上绘制各种图形。用户可以在地图上绘制各种图形,包括矩形、椭圆、三角形等。这些功能主要是由Track Interactive Overlay实现的,它是通过处理鼠标的点击和释放事件来实现功能的。下面是实现画线功能的主要代码片段。以画线为例,在每次Mouse Click事件触发时,把鼠标当前点加入到Track Interactive Overlay的vertices里,然后在Mouse Move事件里将之前vertices数组里面最近的点与鼠标当前的点击点之间绘制直线,最后当用户双击鼠标左键时触发Move Ended事件并将is In Tracking字段设置为False表明用户已经结束操作。
多种地图工具。在Map控件里预实现了多个工具。Logo Map Tool:让用户可以添加自己公司的Logo呈现在地图上;Mouse Coordinate Map Tool:在地图边角位置显示当前鼠标位置的坐标信息。Mouse Map Tool:切换鼠标在地图上所显示的图标(有手状等);Overlay Switcher Map Tool:在地图包含多个图层时,可以使用它在图层之间方便切换;Pan ZoomBar Map Tool:使用它可以方便地对地图进行放大缩小移动等。
空间几何运算。支持矢量数据的空间拓扑运算,包括判断两个多边形是否相交,某个点是否在一个多边形内,某个多边形是否包含另一个多边形等等。这项功能是通过集成另一个开源组件Gis Sharp Blog.Net Topology Suite实现的。使用时会先由本组件中表示几何图形的Base Shape类调用自己的Get Well Known Binary方法得到空间坐标信息(WKB),然后调用Net Topology Suite中WKBReader.Read(byte[]data)方法实例化相应的Geometry,随后调用Geometry的空间运算方法。如判断两条线是否最少有一个交点,就可调用Geometry.Intersects(target Geometry),如果方法返回值是True,就表示相交,反之则不相交。
投影系的转换。支持对当前主流的投影系的坐标转换,包括EPSG 4326(ESRI采用的标准投影系)和EPSG 900913(Google采用的投影系)。投影系转换功能的实现也是通过集成第三方开源组件Sharp Map实现的。组件将业界流行的各个投影系的坐标转换参数信息存储在SRID.csv文件中,当用户需要进行坐标Projection转换时,组件会将SRID.csv文件读取到内存中,并根据用户传入的SRID信息,从SRID.csv文件中将对应的投影系坐标转换参数信息取出来。然后用户调用Convert To External Projection(double x,double y)方法生成Sharp Map类库里相应的Coordinate System对象,最后根据这两个对象生成Coordinate Transformation对象,通过调用Coordinate Transformation的Transform方法就可以得到转换后的坐标信息了。
4. 算法优化
早先的算法是每一个Map只由一张图片组成,这样就导致每次只要用户稍微拖动地图就会导致当前地图的坐标发生变化进而重新绘制地图,效率十分低下。为了解决这个问题,本组件引入Tile的概念,用户一旦设置Multi Tile的属性后组件会将整个地球划分为一个4*4的矩阵,每次都只是绘制包含了地图的几个Tile,这样只要地图位于这四个Tile内部,无论用户怎么拖动地图都不需要重新绘制,从而大大减少绘图次数,提升了效率。
算法的主要实现方式如下:首先在Overlay里有个字段cached Images,它用来缓存每次绘制的图片以及这个图片属于的四个Tile信息,缓存图片都是以四个Tile为单位,然后在Overlay的Draw方法里面会去判断Tile Type这个属性,如果用户将其设置为Multi Tile,Overlay就会调用Get CellsFrom Extent方法算出绘制当前地图所需要的Tile集合,然后在cached Images里面寻找有无满足条件的缓存图片,如果有就直接返回此缓存图片,从而达到减少重新绘制地图次数的目的。如图1所示。
5. 应用
在车辆追踪系统应用中,有以下基本需求:首先,系统要能够即时显示管理车辆的代号、位置、速度等基本信息。其次,用户能够在地图上绘制一些限制区域,一旦车辆脱离限制区域运行,系统可以报警,以便管理员进行进一步的处理。最后,要求系统具有报表功能,可以根据客户的需要将相关的数据以一定的格式导出。
基于以上需求,目前已成功应用该组件开发了一套公司车辆追踪系统。效果图如图2所示。
6. 结束语
本组件实现了一套完整的Silverlight控件库,包括Silverlight Edition.dll,Silverlight Map Suite Core.dll,其中前者包含了所有直接与用户交互的Silverlight控件以及一些高级对象如Overlay等的实现,使用户可以方便调用它们来构建自己的GIS系统,后者实现了核心功能,如数据解析、呈现等;最后,在实际工程中实现了基于该组件的车辆追踪系统。
参考文献
[1]杨正华.城市GIS空间数据共享初探[J].测绘通报,2003,(5):55-57.
[2]阎正.城市地理信息系统标准化指南[M].北京:科学出版社,1999.
[3]刘满仓.城市空间数据基础信息更新机制与技术方法[J].三晋测绘,2003,10(3):13-16.
[4]龚健雅,杜道生,高文秀.GIS专题数据综合的研究[J].地理与地理信息科学,2003,19(3):1-5.
[5]陈泽民.电子地图的数据交换(CNSDTF)实现[J].现代测绘,2003,26(3):14-19.
基于组件的软件开发 篇7
关键词:串口通信,AT指令,PDU编码,ActiveX控件,ADO,智能指针,消息钩子,多线程
0 引 言
随着移动通信的不断发展,手机已成为人们日常生活工作中必不可少的通信工具,手机的功能也不局限于通信本身。手机中存有大量的信息:电话簿、短信息、记事本、日程等,还可完成简单的计算功能。但手机在使用上有很大的局限性:存储容量小;处理、运算能力弱;汉字输入不方便;速度与计算机相比要慢很多;手机没有备份,一旦丢失信息将无法恢复等等[1]。而PC作为未来家庭各种智能设备的控制中心,具有较强的信息处理能力,其强大存储容量和处理能力是手机无法比拟的。因此,如何在PC与手机间进行信息共享变得越来越迫切和需要。这些共享的信息包括电话簿、通话记录、短信、记事本、日程、图片、铃声甚至游戏。用户可以运用PC的处理能力,结合手机的无线通讯功能,组合个性化的功能,如在PC上编辑彩信或短信,向手机上的联系人进行群发等等。随着通信技术和计算机技术的不断发展,这样的需求将会越来越多。
本文给出了基于组件技术的手机管理软件的设计方案,描述了采用VC 6.0作为开发平台,通过串口/USB数据线,利用串口通信、AT指令、MFC、组件技术等设计并实现该软件的详细过程,实现了对手机的电话簿管理、短信息管理、通话记录管理以及计划工具管理等功能,很好地弥补手机的上述不足。
1 手机与PC通信基础
1.1 串口通信
目前手机和PC交换数据的通信方式主要有串口/USB数据线、红外适配器或蓝牙适配器,其中以串口/USB数据线最为普遍。开发串口通信程序有多种方法[2],其中利用 API 函数编写串口通信程序较为复杂,需要掌握较多通信知识和API函数。但API编程的优点是可实现的功能更丰富、应用面更广,所以利用API更适合于编写较为复杂的低层次通信程序。
1.2 AT指令
随着手机短消息服务(SMS)的成功,为了统一手机模块的编解码及控制标准,九十年代初,诺基亚、爱立信、摩托罗拉等共同为GSM研制了一整套标准包括控制手机的AT命令集、SMS及PDU(Protocol Data Unit)编码方式等。
一般的GSM 模块(如手机)都支持GSM 07.07所定义的AT命令集的指令,因此可以利用计算机通过串口直接向手机下达AT命令,来实现基于串口的SMS短信息的发送、接收和管理等功能。AT 指令是计算机通过串口操作手机的唯一途径,与SMS有关的GSM AT指令(from GSM 07.07)及其使用方法请参阅参考文献[4,5]。
1.3 PDU编码
对SMS的控制共有三种实现途径:最初的Block模式;基于AT命令的Text模式;基于AT命令的PDU模式。Block Mode模式目前己很少用。Text Mode是纯文本方式,可使用不同的字符集,但国内手机基本上不支持。PDU Mode 被所有手机支持,可以使用任何字符集,不仅支持中文短消息,也能发送其他特殊字符短消息。PDU模式是手机默认的编码方式。
SMS的PDU编码格式由欧洲电信标准协会(ETSI)制定的两个规范GSM 03.40和GSM 03.38规定[6,7]。PDU编码有三种方式:它们是7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,最多可发送160个字符;8-bit编码(最多140个字符)通常无法直接通过手机显示,常被用来作为数据消息;UCS2编码用于发送Unicode字符,可以被大多数的手机显示[8]。编码后的PDU串表面上是一串ASCII码,由‘0’-‘9’,‘A’-‘F’这些数字和字母组成。PDU串不仅包含消息内容本身,还包含很多其他信息如SMS中心号码、目标号码、编码方式等。发送和接收的PDU串,结构也不完全相同。
2 系统设计与实现
2.1 系统功能模块设计
和手机功能相对应,本文设计的手机管理软件系统功能包括电话簿管理、短信息管理、通话记录管理和计划工具管理四大模块,如图1所示,每个功能模块都具有手机和PC同步传输功能。
·电话簿管理 具有一般手机电话簿的所有功能,可以添加、删除、修改、查询联系人,并提供对联系人的群组管理等。
·短信息管理 可以实现手机对手机,手机对小灵通,手机对咨询台的短信单发、群发和转发,对短信进行编辑、查询、删除等功能。
·通话记录管理 可以查询手机内的所有通话记录,且提供了分类管理,包括查询、添加、修改、删除等功能。
·计划工具管理 对手机自身提供的一些记忆存储功能的管理。包括日程、记事本、纪念日和闹钟等的设置与管理。同样,可以对所有条目进行分类管理,包括查询、添加、修改、删除等。
以上所有可以添加的条目,都可由用户自主选择信息存储的位置(SIM卡/存储卡/PC)。系统运行主界面如图2所示。
2.2 串口通信的实现
本文采用 API 函数实现串口通信,若PC或手机不提供串口,只有USB接口,则必须先将USB接口映射成虚拟串口进行通信。USB的通信设备类CDC(Communication Device Class)是USB组织定义的一类专门给各种通信设备使用的USB子类[3],可以实现虚拟串口通信的协议。由于大部分操作系统(Windows和Linux)都带有支持CDC类的设备驱动程序,可以自动识别CDC类的设备,因此通过安装USB Driver可实现将USB口映射为虚拟串口。
在整个串口通信操作过程中,用到了以下6个功能:打开、初始化、配置、读、写、关闭串口。在32位Windows系统中,串口和其他通信设备都被作为文件来处理,对串口的打开、关闭、读写等操作和对文件的操作使用的方式一样。本系统使用了6个API函数来完成这些操作,分别是: OpenComm,InitComm,SetCommState,ReadComm,WriteComm, CloseComm。
由于在系统开发过程中,对串口读写操作频繁,为减少系统占用资源,简化操作,故将上述所有函数进行了封装,封装成动态链接库SerialPort.dll的通信接口,系统的串口通信通过这些接口调用来实现。
2.3 PDU 编解码的实现
本系统发送中文短信选用PDU模式的UCS2编码方式。在短信发送前,先对发送信息进行PDU编码。PDU编码包括对短信中心、对方号码、短信内容等信息的编码,对短信中心号码和目的手机号码采用压缩BCD码进行编码,将相邻奇偶位置的数字进行两两对换即可。对短信内容编码,为了支持中文格式,本系统采用UCS2编码,将每个中文字符按照ISO/IEC10646的规定,转变为16位Unicode宽字符,再将Unicode宽字符转变为PDU串。解码过程则与编码过程刚好相反。在本系统中,将编码和解码分别利用函数 MultiByteToWideChar、WideCharToMultiByte来实现。
2.4 ActiveX控件的实现
ActiveX 控件是微软提供的功能强大的程序设计和开发技术,是组件对象模型COM(Component Object Model)组件开发技术的重要组成部分。ActiveX控件作为一种可重用的组件,相当于一个封装好的代码模块,通过其方法、属性、事件来与应用程序进行通信。ActiveX 控件与开发语言无关,应用程序都通过COM 与控件进行通信。任何支持ActiveX 控件的软件平台都可以使用它们,使得不同厂商开发的控件可以组装在一起,从而实现软件的工业化,降低软件的开发成本,提高软件的生产效率,实现了软件资源的共享[9]。
为了方便用户使用和今后升级,本系统利用MFC ActiveX 向导制作了多个ActiveX控件,如功能管理控件FunBar、菜单控件MenuBar、工具栏控件ToolBar等。
2.5 ADO智能指针操作数据库的实现
为了存取方便和日后查询,本系统使用Access 2003数据库作为数据存储,保存系统中短信信息、电话簿信息、日程信息等等。本系统利用ADO组件提供的智能指针接口来实现对数据库的操作。
ActiveX数据对象(ADO)是OLE DB上的高层数据库API。ADO实际上就是COM组件,可以利用ADO组件提供的智能指针接口来实现对数据库的操作。ADO库包含三个基本智能指针接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。_ConnectionPtr通常用来创建一个数据连接或执行一个不返回任何结果的SQL语句,如存储过程;_CommandPtr返回一个记录集,它提供一个简单的方法来执行返回记录集的存储过程和SQL语句;_RecordPtr是一个记录集对象,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。
本系统使用_ConnectionPtr智能指针连接数据库,使用_RecordPtr智能指针打开和操作数据库记录集,实现对数据库的存取操作。在使用ADO智能指针之前,必须先用引入符号#import引入ADO库文件msado15.dll,以使编译器能正确编译ADO组件智能指针接口。
2.6 消息钩子(HOOK)的实现
在进行加载和删除信息等操作时,本系统将弹出进度条对话框将执行的进度显示给用户。由于在显示过程中,不希望人为地给予中断,故将所有键盘消息进行屏蔽。此时,借助于HOOK来实现。
钩子是Windows消息处理机制的一个平台,应用程序在上面设置子程以监视指定窗口的某种消息。钩子机制允许应用程序截获处理Window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,即钩子函数先得到控制权。这时钩子函数可以加工处理该消息,也可以不处理而继续传递该消息,还可以强制结束消息的传递。系统维护一个钩子链表(指针列表),其指针指向钩子的各个处理函数。最后安装的钩子放在链的开始,最早安装的钩子放在最后。当钩子监视的消息出现时,系统立即调用链表的第一个钩子处理函数进行处理,即最后加入的钩子优先获得控制权。
本系统先定义全局钩子和钩子处理函数,钩子处理函数处理产生的键盘消息,在进度条对话框出现后,使用SetWindowsHookEx() 函数完成对消息钩子的安装。当在用户按下键盘后,产生的键盘消息到达进度条对话框,被钩子过程捕获,在钩子处理过程中直接返回,不传递给下一个钩子处理函数,使得消息的传递到此中止,这样就起到了对所有键盘消息的屏蔽作用。
2.7 多线程应用
为了防止短信收发时产生的冲突,保证系统的高性能和实时性,本系统采用了多线程技术。Visual C++ MFC提供了两类线程:用户界面线程(User Interface threads)和工作线程(Worker threads)。用户界面线程通常用来处理用户的输入并响应各种事件和消息。工作线程,又称为后台线程,用来执行程序的后台处理任务,比如计算、调度、对串口的读写操作等。
本系统创建了四个线程,一个是用户界面线程,用于应用程序的主执行线程,其他三个是工作线程,一个是串口通信监视线程,用于实时监视串口通信状态,并根据通信状态向主线程发送相应的消息,由主线程分析处理;一个是通信线程,用于串口读写线程,完成串口通信操作,并管理串口通信的输入和输出;另一个是数据库线程,用于从数据库读取数据和写入数据。用户界面线程从CWinThread类派生,工作线程则通过调用AfxBeginThread函数产生。
3 结 论
随着技术的迅速发展,手机普及程度越来越广,功能越来越强大,手机与计算机之间的数据传输、信息共享、同步将成为一种趋势。本文在对串口通信、AT 指令和 PDU 编解码进行研究的基础上,设计并实现了基于组件技术的手机管理软件。该软件可以作为独立的桌面软件应用于个人,提高信息沟通的效率和效果。另外本系统开发中的一些关键功能模块经过改造后可以应用其他系统。
参考文献
[1]李华晨,赫枫龄.基于COM架构红外手机管理软件的实现[J].吉林大学学报:信息科学版,2006(5).
[2]朱文忠.基于VC的串行通信的实现方法探析[J].微电子学与计算机,2007(1).
[3]Universal Serial Bus Class Definitions for Communication Devices Ver-sion1.1[S].1999,1(19).http://www.usb.org.
[4]Siemens AT-Commands for GSM-Engine TC35Version1.0[S].2001,6(2).
[5]Digital cellular telecommunications system(Phase2+);ATcommand set for GSM Mobile Equipment(ME).GSM07.07Version5.9.1(ETSI ETS300916ed.8),1999,12.
[6]GSM03.38(ETS300900).Digital cellular telecommunication system(Phase2+);Alphabets and language-specific information[S].1998.
[7]GSM03.40(ETS300901).Digital cellular telecommunication system(Phase2+);Technical realization of the Short Message Service(SMS)Point to Point(PP)[S].1998.
[8]An introduction to the SMS in PDU mode[EB/OL].2000-01.ht-tp://www.wavecom.com/.
[9]Introduction to ActiveX Controls[EB/OL].http://msdn2.microsoft.com/en-us/library/aa75197(VS.85).aspx.
基于组件的软件开发 篇8
关键词:GIS,设备管理,SuperMap Objects,监控,DDE
2000年全国煤炭产量为12.5亿吨, 2006年产量为23.8亿吨, 2013年达到36.8亿吨, 年均增幅8.7%, 煤炭产量的增加催生了一大批现代化综合性煤炭企业的出现。现代煤矿企业大多已经实现了机械化和电气化生产, 但是对于设备的管理却相对落后[1,2]。先进的煤矿设备的使用促进了企业发展, 但煤矿设备管理越来越复杂, 要保证企业的快速发展, 就要以良好的设备利用效率和投资效果来保证生产经营目标的实现。同时购买煤矿设备的费用占煤矿开采成本的40%以上, 因此提高煤矿设备的使用率及延长设备使用年限是提高煤矿生产效率和降低成本的有效措施也是提高现代煤矿企业竞争力的关键问题[3]。
国内煤矿机电设备自动化管理水平不是很高, 大多数煤矿将设备购置进来后按编号或者类型将设备的基本信息和相关情况记入设备档案, 再将档案存档。以后档案很少有人维护, 如设备位置的改变、检修记录、维修情况、设备当前状态、是否报废等信息无法在设备台帐上体现, 即在设备档案上无法跟踪查询设备信息及状态。某些使用了设备管理系统的煤矿企业所用的设备管理系统都是普通的MIS系统管理软件, 还尚未开发出成熟的图形交互设备管理系统软件。本文将从系统的建设目标、系统结构、系统功能、系统开发等几个方面详细介绍基于组件式GIS的矿井设备管理信息系统。
1组件式GIS简介
组件式对象模型 (Component Object Model, 以下简称COM) 是一种允许对象之间跨进程、跨计算机进行交互的技术, 并且使得这种交互容易得好像在本地计算机的同一进程中进行一样。其中COM是OLE和Active X共同的基础。COM不是一种面向对象的语言, 而是一种二进制标准。COM所建立的是一个软件模块与另一个软件模块之间的链接, 当这种链接建立之后, 模块之间就可以通过称之为“接口”的机制来进行通信[4]。
地理信息系统 (Geographic Information System, 以下简称GIS) 技术的发展, 在软件模式上经历了功能模块、包式软件、核心式软件, 从而发展到COMGIS的过程。COMGIS的基本思想是把GIS的各大功能模块划分为几个控件, 每个控件完成不同的功能。各个GIS控件之间, 以及GIS控件与其他非GIS控件之间, 可以方便地通过可视化的软件开发工具集成起来, 形成最终的GIS应用。COMGIS是面向对象技术和组件式软件在GIS软件开发中的应用[4]。
COMGIS的出现使得GIS开发更为简单, 由于COMGIS不依赖于某一种开发语言, 所以它可以嵌入通用的开发环境 (如:Visual Basic、Delphi和VC++等) 中实现GIS功能, 专业模型则可以使用这些通用开发环境来实现, 也可以插入其他的专业性模型分析控件。
2系统的建设目标
作为一个矿井设备管理信息系统, 除了具有界面友好、易于操作等基本特点外, 还应完成如下目标:
a.实现传统MIS设备管理系统的所有功能;b.数据共享, 提供开放的标准数据接口, 能够使用CAD和其他GIS格式的图形数据;c.实现各种空间查询, 例如设备位置查询、最短线路查询、缓冲区查询等, 为矿井设备管理和矿井突发事件提供决策依据;d.实现井下设备工作状态的图中实时显示;e.实现煤矿设备的全生命周期管理, 包括计划、购置、保养、维修、报废整个环节。
3系统结构
根据系统的建设目标, 基于面向对象的程序设计思想和模块化的系统结构, 本着方便实用、界面友好、容易扩展的原则, 设计了如下的系统总体结构。如图1所示, 主要功能模块包括:矿图管理模块、报表管理模块、设备管理模块、设备分析模块、实时数据接口模块、其他数据接口模块、空间查询模块和系统帮助模块。
4系统功能
4.1矿图管理功能
矿图可以使用Super Map Deskpro绘制, 也可以使用Super Map Objects提供的绘图接口实现绘制, 还可以利用所提供的工具将现有其他格式的数据 (如CAD、Map Info等格式) 导入。由于Super Map采用工作空间的形式来管理数据, 一个工作空间可以包括所有数据, 诸如:点、线、面等图形数据, 网络拓扑关系数据, 属性数据, 专题图等, 所以使用Super Map Objects开发的GIS应用在数据结构方面与Super Map公司的所有软件产品的数据格式完全一致, 可以互相访问, 实现了无缝结合。利用Super Map Objects提供的图形输出接口, 可以根据实际需要, 方便的输出各种矿图。
4.2报表管理
报表管理功能除了完成传统MIS设备信息管理系统的报表功能外, 还能与煤矿现有的监测平台通过数据接口作为纽带结合起来, 将监测平台实时传递的各种数据 (如风机、绞车、水泵在线监测系统等的实时数据) 存储到实时数据库中, 作为将来分析设备运行状态和能耗分析的基础数据。同时, 也支持手工录入数据, 以备数据接口或监测平台出现故障时能够正常的工作。除了设备状态报表输出功能外, 还具有历史数据归档、查询的功能, 能够查询任意历史时刻的数据。
4.3设备管理
设备管理功能模块与其他MIS模式的设备信息管理系统相似, 负责执行设备信息录入、增减、设备状态信息维护、和设备数据校验的功能。
4.4设备分析
设备分析模块包括工况分析、能耗分析和结果输出等功能, 本模块的主要功能是把实时数据库传递的设备工况、能耗信息进行综合分析计算, 确认设备是否在预定工况下工作, 能耗是否出现异常, 如出现异常将自动报警, 将报警信息自动发送到责任人手机。
4.5实时数据接口
通过与煤矿现有的监测平台相结合, 实时的获取监测平台的各种数据, 将数据分类保存, 作为系统的基础数据, 并提供给系统其他模块使用, 例如报表管理模块、设备分析模块等。实时数据接口与其他数据接口相配合, 完成实时数据和非实时数据的接入。
4.6空间查询
空间查询功能主要包括:空间定位查询, 缓冲区查询, 最短路径查询, 以及矿井发生灾变时期的最佳避灾路线查询 (如避开井下危险设备路线) 等, 为矿井发生火灾、水灾时期确定救援方案提供决策依据。同时还包括设备信息的查询, 以及以专题图的方式显示设备信息等功能。
4.7系统帮助
系统帮助部分主要包括系统的使用说明, 具体操作, 以及算法说明的内容。为了使用户更好的使用提供技术支持。
5系统开发
根据系统的建设目标, 将系统分为五个模块分别进行开发。a.矿图编辑处理与输出模块, 其中包括图形的编辑和处理、拓扑关系的管理、以及属性的编辑处理等;b.报表管理模块;c.设备管理模块;d.数据接口模块, 其中包括图形数据接口和实时数据接口模块;e.设备分析模块, 包括工况分析和能耗分析;f.空间查询模块;g.系统帮助模块。
系统采用组件式GIS开发平台Super Map Objects 5.2考虑到单个矿井的数据量不是很大, 故数据库采用了微软的Access数据库, 使用面向对象的Visual Basic 6.0进行集成开发。图形的编辑、存储、显示、以及空间分析等使用Super Map Objects 5.2提供的接口来实现, 设备分析、实时数据接口、报表等功能使用Visual Basic 6.0编程实现。
结束语
采用组件式GIS开发矿井设备管理信息系统软件, 不但具有速度快、质量高、功能完善的优点, 而且还具有只有专业GIS软件才具有的功能, 例如缓冲区分析, 空间查询等功能, 是传统的矿井设备管理信息系统软件开发方式所不能达到的。并且, 组件式GIS不受开发平台的限制, 开发人员可以任意选择自己所熟悉的开发语言进行软件开发, 系统集成方便, 和其他图形系统 (如CAD、Super Map等) 数据共享方便, 是一种较为理想的专业领域软件开发方式。
参考文献
[1]李承瑞.煤矿设备管理信息化建设[J].安徽科技, 2005 (2) :81-81.
[2]万艳丽, 张毅.煤矿设备管理信息化的现状和对策[J].河南科技, 2004, (9) :17-17.
[3]牛申霞.基于GIS煤矿机电设备可视化管理系统研究[D].河北:河北工程大学, 2010.
基于组件的软件开发 篇9
随着计算机技术的发展, 水利行业CAD技术得到了广泛应用, 各种辅助设计程序层出不穷, 加快了成图速度, 提高了绘图质量, 实现了制图的规范化、标准化。但是笔者在试用了多种渠道纵断面绘图程序后发现效果不尽如人意, 主要存在以下几个问题:①数据输入及处理功能完全依赖于Excel, 因此在没有安装Excel或者Excel版本不一致时程序无法运行;②无法脱离AutoCAD环境独立成图, 并且对AutoCAD版本要求极高, 因此针对特定版本AutoCAD开发的程序不能在其他版本环境下运行;③程序版本多且繁杂, 需针对各个版本AutoCAD开发相对应的纵断面图程序, 维护难度较大。为了解决以上存在的问题, 笔者基于VB.NET运用组件技术开发了纵断面绘图系统, 不依赖任何外部程序便可独立完成数据的读取、处理, 并采用DXF格式纵断面图的输出。
1 系统关键组件
组件化程序设计方法继承并发展了面向对象的程序设计方法。它把对象技术应用于系统设计, 对面向对象的程序设计过程作了进一步的抽象。可以把组件化程序设计方法用作构造系统的体系结构层次的方法, 并且可以使用面向对象的方法很方便地实现组件。本系统主要包含数据处理及DXF格式图形文件生成两大关键组件。
1.1 数据处理组件
数据处理组件主要有原始数据读取功能及数据分组处理功能。数据处理组件工作原理如图1所示。
1.1.1 原始数据读取功能
系统支持Excel格式和ASCII两种格式数据文件的读取。目前读写Excel文件可以采用ODBC接口、Excel VBA宏以及直接分析Excel文件格式等方法。由于前两种方法功能弱, 不能获取Excel文件的所有细节, 而且运行环境复杂, 例如需要配置ODBC驱动及安装合适版本的Excel软件, 因此本系统开发的Excel读写模块采用直接分析Excel文件格式的方法, 可以获取Excel文件的所有细节, 并且不需要安装Excel软件, 客户端配置很简单, 不用配置ODBC驱动及VBA运行环境。本系统支持Excel 5.0, 7.0, Excel 97, Excel 2000, Excel 2003等文件格式的读取。
1.1.2 数据预处理功能
由于图幅的限制, 纵断面图往往需要分成多段绘制在多张图上, 在纵向比例一定的情况下每幅图还需绘制多个纵坐标轴。因此需要对输入的原始数据进行相应处理, 然后传递到绘图组件, 最终才能生成满足要求的纵断面图。系统采用多层迭代的数据分组处理算法对原始数据进行分组处理, 利用数据和计算机相对客观地选择变量之间的关系, 通过启发式学习实现输入输出间的非线性映射, 从而实现对数据的优化处理。
由于图纸大小和出图比例的限制, 纵断面图往往需要分成多幅进行绘制。因此需要对数据做分幅处理, 主要原理为以图幅宽度及设计要求横向比例为限定条件, 通过循环迭代将数据通过里程桩号分为多组。具体迭代过程采用公式 (1) 实现。
式中:tz为数据个数; 为存储桩号的数组;Z (i+1) -Z (i) 表示相邻两个桩号的水平距离;w为每幅图的宽度;scaleX为横向比例。
通过i=1到tz步长为一循环迭代过程, 就可将数据分组为 (1-nz) , (nz+1-mz) … (xz+1-tz) 段并存入数组。为了防止图形画出图纸以外, 需要添加多个纵向坐标轴, 为此需要对以上每组数据进行二次分组处理, 具体原理同上。
1.2 DXF格式图形文件生成组件
针对AutoCAD VBA或activeX Automation开发的程序只能运行在其开发时所对应的AutoCAD平台, 而用户所使用的AutoCAD版本从R14到2007都有可能, 甚至有的用户使用的是其他CAD系统的现状, 系统开发基于DXF格式图形文件进行。
DXF是美国Autodesk公司研制并首先用于AutoCAD的图形交换的文件格式, 它是一种基于矢量的ASCII格式, 结构简单、可读性好, 易于被其他程序处理。目前, 绝大多数CAD系统都能读入或输出DXF文件。为此笔者对DXF图形文件格式作了深入的分析, 形成了一套有效的输出DXF格式文件算法, 并将该算法封装为组件, 完全摆脱了对AutoCAD系统的依赖, 由此克服了基于VBA或activeX Automation开发程序的弊端, 为进一步开发基于组件的纵断面设计系统打下了基础。
1.2.1 DXF格式文件的结构分析
DXF文件按先后顺序分为7大段, 每段表示为一个独立的“Section”。
(1) 标题 (HEAD SECTION) 段:
包含有关图形的基本信息, 每个参数都包含一个变量名称及其关联的值。
(2) 类 (CLASSES SECTION) 段:
包含应用程序定义的类的信息, 这些类的实例出现在文件的BLOCKS、ENTITIES和OBJECTS段中。类定义在类的层次结构中保持固定不变。
(3) 表 (TABLES SECTION) 段:
包含了关于图层、标注、线型、文字样式、用户坐标、视图等的定义。
(4) 块 (BLOCKS SECTION) 段:
包含构成图纸中每个块参照的块定义和图形图元。
(5) 实体 (ENTITIES SECTION) 段:
包含图纸中所有图形对象 (图元) 。
(6) 对象 (OBJECTS SECTION) 段:
包含图纸中的非图形对象, 即除图元、符号表记录以及符号表以外的所有对象都存储在此段。
(7) 预览 (THUMBNAILIMAGE SECTION) 段:
包含图形的预览图像数据, 此段为可选段。
DXF文件本质上由组码和值对组成, 组码表明其后的值的类型, 使用这些组码和值对, 可以将DXF文件组织到由记录组成的区域中。
1.2.2 DXF格式文件的输出设计及其实现
DXF格式文件生成组件使用了面向对象的编程技术, 将纵断面图形中所需要的点、线、面和文字对象抽象为各种类文件。每个类文件都含有关对象的信息, 包括它的名称、方法、属性和事件。当DXF文件生成组件接收到数据预处理组件传来的数据并引用类的代码运行后, POINT、LINE、CIRCLE和SOLID等图形图元对象, 就在内存中得到创建。最终DXFWrite方法将所有对象组合并输出为DXF文件。具体流程如图2所示。
DXF文件本质上为ASCII格式的纯文本文件。因此, DXF文件生成组件的各个类文件主要由“AddStrings”语句组成, 并按照DXF文件格式的要求将图元对象的类型、所在图层、颜色和线型等属性描述出来。最终所有类所产生的对象全部发送至DXFWrite, 由它将各个对象组合起来, 并输出为DXF文件。
2 系统总体设计分析
本系统的开发应用了组件化程序设计方法, 它继承并发展了面向对象的程序设计方法, 将复杂的纵断面系统分割成为多个组件, 每个组件完成独立的功能, 组件之间协同工作, 将各个组件装配在一起就形成了功能强大的纵断面系统。组件的装配使得纵断面系统可以采用类似于搭积木的方法快速地建立起来, 不仅可以缩短开发周期, 同时也提高了系统的稳定性和可靠性。
2.1 系统的特点
(1) 独立性。
本系统的所有组件均基于VB.net编写, 所有功能的实现均不依赖于任何第三方的程序或组件, 因此程序可以完全脱离开发环境运行, 可方便的部署在任何版本的windows系统中, 真正做到了“一次编写, 一次构造, 处处运行”。
(2) 可扩充性。
组件的装配使得本系统可以采用类似于搭积木的方法快速地建立起来, 因此, 系统具有极高的扩展性。
(3) 可重用性。
由于系统各个组件相互独立, 因此可以应用到其他程序中。以DXF图形文件生成组件为例, 它被编译为DXFExport.dll文件, 其他需要创建DXF文件的程序只要引用这个文件, 就可以利用该组件为程序添加DXF文件输出的功能。
2.2 纵断面系统结构流程图
本系统采用了组件化的软件结构, 使得程序的开发思路清晰明了, 对系统的维护及扩充更加方便, 使用难度也大大降低。其设计流程如图3所示。
3 结 语
本系统自开发完成以来, 应用该系统先后完成了东乡南阳渠田间配套工程及七里河沈家岭电力提灌扩建工程等设计任务, 在确保设计质量、降低工程造价、提高设计效率等方面, 取得了明显成效。为更进一步推广本系统, 使广大设计工作者从繁重的绘图工作中解脱出来, 笔者将程序发布到了网易水工频道。目前已有上千位设计工作者下载并使用了本系统, 并回馈了大量的宝贵意见, 通过不断的改进, 本系统目前已日趋完善, 相信对类似工程的设计具有良好的借鉴作用和指导意义。
摘要:渠道设计时, 纵断面图绘制的方法目前多数采用纵断面数据 (地面高程、渠底高程等) 在Excel里计算完成, 然后把数据录入到AutoCAD里按数据绘制标准图形, 但是针对不同的软件版本开发的纵断面图程序通用性差, 维护难度较大。在分析了现有渠道纵断面程序存在问题的基础上, 介绍了基于VB.NET的运用组件技术进行渠道纵断面系统开发的整体思路及主要方法, 着重描述了数据处理组件和DXF格式图形文件生成组件的原理及其开发过程等关键步骤, 完成了不依赖任何外部程序便可独立完成数据的读取、处理, 并采用DXF格式纵断面图输出的渠道纵断面系统。开发完成的成果表明, 该系统不仅解决了现有渠道纵断面程序部署困难、运行环境要求高等问题, 而且能满足工程实际的需求, 具有灵活性及较强的可扩充性。
关键词:渠道纵断面,VB.NET,DXF格式,组件技术,程序开发
参考文献
[1]孔德庸.渠道纵断面图传统绘图方法的改进[J].中国农村水利水电, 2004, (11) .
[2]鲍卫锋.基于遗传算法的渠道断面最优设计[J].中国农村水利水电, 2005, (5) .
[3]杨晓红.组件化程序设计方法及组件标准[J].重庆大学学报 (自然科学版) , 2001, (6) .
[4]AutoCAD DXF Reference[DB/OL].http://i mages.autodesk.com/adsk/files/acad_dxf0.pdf.
基于组件的软件开发 篇10
在人机界面软件的开发维护周期内, 由于面向的领域较为复杂, 软件的复杂度和规模在不断延伸, 要求软件系统具有较强的演化能力[1,2]。这一方面要求开发人员能快速适应改变, 减少软件维护的代价, 另一方面又需要一种通用的方法来实现满足特定的需求, 确保个性化的需求实现不影响已经成熟稳定的模块[3,4,5,6,7,8]。人机界面软件存在交互频繁、基于鼠标和键盘操作无规律触发、运行周期长等特点, 用组件模式开发时, 面临组件数据和界面管理、组件间交互配合等难点。本文设计了一种轻量级、组件开发集成架构, 通过跨平台库开发, 面向不同权限的用户, 可配置加载不同组件, 并在继电保护装置配置软件中进行了应用。
2 基于组件技术的软件架构 (Software architecture based on component technology)
2.1 组件概念与组件系统原理
组件 (Component) 是一个黑盒子, 是可独立发布的二进制单元。组件对外的接口主要是API功能和端口, 其中API是组件对外提供的功能, 端口表示组件内部调用外部其他组件功能的函数。图1是一种组件模型[1]:
嵌入式装置是一个典型的组件系统, 例如继电保护测控装置由若干块CPU/DSP/IO插件组成, 不同的装置将具有独立功能的集成电路插件按照设计要求进行组装, 通过总线进行高速通信和有效协同工作[9]。类比于物理装置, 软组件系统由总线、接口、组件共三部分组成。组件通过预先定制的接口连接到总线上, 总线是一个总控程序 (宿主程序) , 负责组件之间的通信和互操作;接口负责组件启动、初始化、设置、注销等功能;组件实际上是普通的程序, 可由界面、数据、函数组成, 可以完成某种功能, 编译为DLL。在对组件的接口定义了统一的规范后, 系统投入运行时, 用户可以根据自己的需要通过接口集成到系统中, 也可卸载, 而框架程序不用修改, 如果总控程序正在运行, 修改某个组件时, 不用停止运行, 通过这种技术, 增强了系统的灵活性和扩展性, 延长了软件系统的生命周期。
基于组件开发设计的重点包括: (1) 实现对组件的管理, 宿主程序可以搜索、加载、卸载组件和维护组件的状态。将这些功能放到组件配置树 (组件容器) 模块实现。 (2) 接口的设计和识别, 接口是不同组件之间、宿主程序与组件之间的通信基础。宿主程序只有识别接口, 才能加载组件。 (3) 资源的互斥和同步, 多个组件的并行运行可能对申请资源产生竞争。 (4) 组件的设计和生成, 组件系统的功能由组件实现, 在设计时需考虑与组件相关的界面显示、数据处理能够高效进行。
2.2 组件接口设计
本文采用导出函数作为组件提供服务的接口, 通过函数指针方式实现对象的映射和接口的调用。定义组件基类Component, 编译形成comp.dll。组件有初始化、运行、停止等接口, 有请求服务的回调函数, 有发送组件状态的信号, 其UML模型如图2所示。
其C++主要接口定义如下:
Component只是定义纯虚接口函数, 具体的实现由各派生的组件细化。各子组件、顶层组件均继承自组件基类, 继承的组件均须实现统一的组件构造接口:
通过类似如下的实现方式, 返回动态类型不同的组件实例。例如定值整定组件创建接口实现为:
2.3 组件配置树
一个软件系统的组件结构关系可用组合配置树 (Composition and Configuration Tree, CCT) 来描述[1]。形式化定义为一个三元组CCT= (N, E, R) , 其中:N表示树节点的集合;R是节点间语义关系的集合, R有组合关系和配置关系。R={Rcomp, Rconf}。配置关系通过包括OR (或选) 、AND (并选) 、Switch (多选一) 、Multiplex (多选多) 等关系。Rconf={AND, OR, Switch, Multiplex};E是节点之间的边的集合;E=Ecomp∪Econf, Ecomp表示组合关系边, Econf表示配置关系边。Econf=EAND∪EOR∪ESwitch∪EMultiplex以继电保护配置软件的代码生成子系统为例, 其组合配置树如图3所示。
在图3中, 实线表示组合关系, 虚线表示配置关系。Coder系统可由多个主要组件构成, 而其中部分组件也是由下层组件构成。三角形表示多选一配置关系, coder组件根据不同的应用领域, 可选择对应交直流嵌入式保护装置code组件、EMTDC仿真code组件。六边形表示或选配置关系, CID的处理有直流装置分布式的配置建模组件和交流装置的集中式配置建模组件。可用XML文件描述该配置树关系, 基于组件配置树实现软件系统的更新、维护, 将修改的函数的影响尽量限定在某个组件的内部。
2.4 人机界面软件的组件架构
本文设计的人机界面软件集成架构包括:主程序、主框架、组件库、事件总线。
主程序是main.cpp文件编译后形成的可执行程序, 仅包括一个main入口函数。在main函数中读取组件配置树文件, 调用组件构造函数, 形成组件对象实例, 将组件对应的主窗体界面放入到主框架容器内。main函数还调用事件总线构造函数, 将组件接口对象指针放入事件总线散列管理。
在main函数中创建主框架实例。主框架是一个通用的软件集成窗体, 继承自QMain Window, 由菜单工具栏、左侧资源管理器、中间界面容器、右侧属性编辑器、底部输出栏五个区域构成, 支持各顶层组件创建主框架的子菜单、图标、停靠栏内的标签窗体。在顶层主框架的界面容器内管理各顶层组件的主窗体界面, 每个组件在主窗体容器内管理各自子界面。界面容器按照后入先出方式管理。主框架提供文件的新建、打开、关闭、保存操作入口, 可显示、隐藏停靠栏。
事件总线CEvent Bus是个全局对象类, 各组件也可将事件发往循环处理队列中, 总线周期定时触发后, 将事件转发给目标组件。以保存文件为例, 鼠标点击工具栏的保存按钮, 工程管理组件响应该命令, 调用发送接口, 向所有组件群发保存:
如图5所示, 事件总线串行发送, 各组件接收到该命令后, 依次进入活动状态, 保存对应的数据。
3 继电保护配置软件设计 (Design of relay protection configuration software)
随着IEC 61850智能变电站应用的深入, 要求继电保护装置具备更灵活的可配置能力, 基于手工编写代码和配置文件的开发方式, 已经很难适应快速集成的需求[10]。面向海外用户需要较强的可配置功能, 例如根据现场应用增加减少开入开出插件、保护测控功能投入退出等, 这都需要通过工具软件进行人机界面交互。
3.1 软件功能设计
继电保护配置软件是基于组件集成框架开发的, 其输入为各类符号库, 通过图形编辑实例化符号, 并对符号进行编辑设置和连接输入输出关系, 通过各个实例化的符号页面, 生成变量库, 变量库作为整个系统的数据中心, 为各个应用服务配置提供数据源, 对各类服务所需要的变量进行配置归类。各个应用服务的配置可以相对独立的加载和卸载, 可以方便的扩充应用配置功能。主要功能如下: (1) 装置硬件配置, 从插件库中选择相关型号插件搭建装置, 形成可编程的插件节点。 (2) 装置程序功能模块化配置, 将继电保护程序进行模块化设计, 形成可复用的元件符号库, 在图形化页面中创建元件实例和进行数据连线, 以可视化模块化的方式完成嵌入式装置程序组态。 (3) 装置HMI配置, 从变量库中挑选信号, 进行LCD层次菜单分组, 包括模拟量分组、开关量分组、录波分组等功能。 (4) 装置定值分组和整定, 包括定值的导入、导出、比较等功能。 (5) 装置系统选型配置, 包括装置MOT选型、系统功能选择、保护测控功能模块投退。 (6) 在线调试功能。
3.2 软件组件划分
继电保护配置软件基于C++/Qt跨平台库开发, 按照功能可划分为:工程管理、离线配置、图形编辑、数据处理、在线调试五个部分, 共分18个顶层组件:
(1) 工程管理层:用资源管理 (工作空间) 组件展示, 用工程数据管理组件维护数据响应操作。 (2) 离线配置层:包括基本信息配置、LCD层次菜单配置、录波等引用表配置、IEC61850配置浏览、LCD主画面编辑、集中式浏览、定值整定、系统功能配置共八个组件。 (3) 图形编辑层:包括可视化页面图形编辑器、符号库制作、符号库三个组件。其中图形编辑器可细分多种场景的子组件。 (4) 产物处理层:包括变量库、后端产物形成组件、驱动包处理 (压缩、比较、升级) 组件。 (5) 在线调试, 包括可视化调试、Inspect瞬时录波等功能。
组件分层关系如图6所示。
以资源管理器为例, 表1给出该组件的输入、输出、组件间交互设计要点。
例如:打开工程时只绘制装置节点, 点击装置节点时, 发送事件给工程管理组件, 绘制装置子节点、加载显示变量库。
3.3 应用场景
基于组件化的软件架构, 可根据不同用户角色 (研发人员、工程人员、终端用户) , 定制发布不同的组件库。图7是面向研发人员的编辑场景, 研发人员基于公共元件库, 搭建图形化页面程序, 之后在离线配置相关组件内完成HMI等人机接口配置。
4 结论 (Conclusion)
本文介绍了一种人机界面软件的组件化框架, 定义了组件的公共接口模型;设计了基于事件总线的交互方法。基于本文提出的组件开发架构在继电保护配置软件中进行了应用, 该软件通过组件分层设计, 将组件的交互协议和组件的内部实现细节分开, 并支持部分升级, 提高了软件开发集成效率。
摘要:传统继电保护装置的功能主要由开发人员直接编写程序, 开发工作量大, 维护成本高, 需要提高开发效率, 为此开发了基于组件化、图形化配置软件。本文介绍了该软件的组件开发架构, 架构由主框架、组件库、事件总线、主程序组成。主程序读取组件配置文件, 加载和创建相关组件对象, 组件对应的主窗体放置在主框架的界面容器内。组件之间需要协同配合时, 通过发送和响应预定义的事件实现。在继电保护配置软件中应用了该组件架构, 降低了模块间的耦合关系, 提高了软件可扩展能力和开发集成效率。
关键词:组件,主框架,事件总线,继电保护软件
参考文献
[1]陶传奇, 等.基于模型的构件软件修改影响分析[J].软件学报, 2013, 24 (5) :942-960.
[2]郁湧, 刘永刚, 侯江畔.一种基于构件的可信软件系统框架及其表示[J].软件工程师, 2015, 18 (5) :60-62.
[3]谭海中.基于Java的Web通用Data Table组件设计[J].软件工程师, 2015, 18 (7) :22-23.
[4]袁伟民, 左春.基于样本程序的领域开发平台的研究与实践[J].计算机工程设计, 2010, 31 (18) :3979-3982.
[5]张弛.软件组件接口扩展技术研究[J].微电子学与计算机, 2007, 24 (8) :35-41.
[6]何鹏飞, 等.组件技术在嵌入式系统中的应用[J].计算机系统应用, 2014, 23 (6) :220-223.
[7]丁博, 王怀民, 史殿习.构造具备自适应能力的软件[J].软件学报, 2013, 9 (24) :1981-2000.
[8]陈宏君, 等.一种基于组件和脚本的可视化程序产物形成架构及应用[J].工业控制计算机, 2013, 26 (12) :1-5.
[9]李响, 等.新一代控制保护系统通用硬件平台设计与应用[J].电力系统自动化, 2012, 36 (14) :52-55.