电子海图软件可重用设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:luckychuan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:电子海图软件是航海安全的基础支撑软件,广泛运行于嵌入式系统、Windows、Linux等多种操作系统中。该文针对电子海图软件在多操作系统平台下开展可重用设计,对电子海图软件进行分层架构设计,有效支撑电子海图软件基础层、功能层、操作系统适配层系统解耦,实现了电子海图软件功能构件集、基础软件构件集清晰划分,对减少产品部署周期、控制成本都有着重要的意义,在实践中取得预期的效果,解决了电子海图软件在多个操作系统平台下软件可重用设计的问题。
  关键词:可重用设计;分层架构;电子海图
  中图分类号:TP31 文献标识码:A
  文章编号:1009-3044(2019)31-0061-03
  电子海图显示与信息系统(以下简称电子海图软件)是信息化技术在航海领域的重要应用,电子海图可大幅提高船员的工作效率,同时提高航海的安全性。传统的电子海图软件开发模式根据需求通过特定的平台进行开发,根据用户需求可选择Windows操作系统、Linux系统、嵌入式VxWorks系统等等,这种开发模式针对单个操作系统平台特点进行开发,构件可重用性有较大的提升空间。因此从软件工程化角度出发,在设计阶段对电子海图软件做好可重用设计,聚焦于构建电子海图软件构件集,通过软件分层架构设计提高电子海图软件可重用性,实现电子海图软件在多个操作系统平台应用中的高效应用。
  可重用设计在软件设计里涉及需求分析、软件设计、配置项管理等各部分。本文设定需求清晰,仅探讨如何在电子海图软件构架设计这个层面实现可重用的软件。
  1整体架构设计
  电子海图软件属于特定领域的软件,非常适合按照软件工程进行分层架构以及功能构件化行设计,采用标准的框架结构可提升软件架构高效演进,减少软件重构带来的成本以及开发周期的风险。
  好的软件架构可提升软件的可重用性,相比于一般的商業软件,电子海图面向航行安全,具有可靠性要求高、复杂性高等特点。首先将电子海图软件分解为与目标平台无关的主体部分以及目标平台相关的适配部分,电子海图主体部分主要体现软件的核心功能㈣,比如电子海图的漫游、缩放等应用操作以及字体绘制、要素绘制、坐标转换算法,根据功能的不同范围,再具体划分为海图功能层和基础绘制层。
  电子海图软件与操作系统关联的部分也就是操作系统适配层主要集中在数据文件读取、文件管理、显示输出、人机交互等部分。电子海图软件利用分层架构进行显示和数据分离的设计,会大大减少电子海图软件与操作系统底层耦合。
  根据以上对电子海图软件的特点分析,电子海图软件基本组成分为基础绘制部分、海图功能部分、符号库及海图数据部分等三个部分组成,可以将它们根据交互方式区别定位于不同的抽象层次,具体分为以下几个层次:海图功能层、基础绘制层、数据层、操作系统适配层,具体如图1所示:
  2开发语言以及编译规则
  2.1开发语言
  首先需要确定电子海图开发语言,电子海图软件的主要工作是数据处理以及图形绘制,这两项对数据处理速度以及图形绘制的速度都有较高的要求,Java等解释性语言受限于各种硬件运算速度,尤其在嵌入式操作系统支持并不完善,而标准c 语言本身具备很高的可移植性,利用其提供的模板类、数据流等实现符号库解析、数据读取等核心功能,因此选用C/C 语言。
  2.2操作系统字节序
  电子海图运行在X86和PowerPC硬件体系结构上时,字节序也不一样。因此在这两个不同体系结构上进行电子海图数据转换需要满足字节序的问题。为了尽可能减少由于数据结构差异带来的额外处理工作,通过在数据定制软件,将电子海图数据转换为统一、高效的内部数据组织方式,也就是通常所说的SENC。
  2.3编译规则
  电子海图软件主要工作是数据处理以及图形绘制,因此在数据处理部分,特别是对海图元数据以及海图要素绘制结构体定义时,默认情况下编译器往往按照32位也就是4字节进行对齐,导致最终的结构体大小为4字节的倍数,所以根据一定的编程规范在编译时要选择紧凑字节数,在Windows操作系统下通过条件编译参数或者IDE进行设置,其他系统例如VxWorks系统以及Linux系统通过设定packed编译参数设置,结构体定义清晰化有利整个软件可重用设计。此外,定义清晰的变量也有利于软件可重用设计。
  3海图功能层及基础层构件化设计
  海图功能层完成初始化、海图刷新显示、漫游、缩放等功能。不管是海图漫游,还是海图开窗放大、海图缩放等功能接口都是根据目标的区域传递位置参数,通过经纬度坐标和屏幕坐标的换算关系,最终根据区域对海图进行绘制。因此根据这个设定,可以将海图和人机交互相关的接口高度抽象化,对电子海图代码进行分解,提取功能构件,从而提高软件的可重用性。
  海图基础层则与电子海图数据相关的投影变换、字体绘制以及点、线、面各种海图要素绘制完成调用图形中间件提供的点、线、面封装接口,因此也可以将基础层各种绘制功能以及拼接绘制等接口抽象为基础构件。
  功能层和基础层执行流程如下图所示:
  下面以漫游功能为例,电子海图软件功能层和基础层以及操作系统适配层的接口函数如何进行层次上的划分。
  4操作系统适配层设计
  4.1数据以及内存管理
  电子海图软件需要进行海图数据索引以及数据读取,因此在不同的操作系统下面对文件存放目录都有不同的规定,比如Windows通过盘符来表示,Linux文件存放路径采用“/”根目录符号表示,存放路径可以通过正则表达式进行解析,通过匹配和遍历进行海图数据存放路径解析。并且在不同系统下对系统调用也有不同的表达方式,比如Windows对文件的读取会有不同定义函数,比如说fopen等函数在不同操作系统下工作都有一定差异性,在跨平台设计过程尤其需要注意到。如果要提高软件可重用性,减少修改软件的次数,就必须在设计阶段考虑文件系统的兼容性。   另外,电子海图的数据读取以及绘制都要使用到大量内存,并且底层电子海图绘制位图在应用时经常要实现一定可重人性,尽量保留较少的全局变量,也可以通过类似堆栈的方式来实现全局变量保存。
  4.2图形中间件设计
  图形中间件把电子海图基础层软件和操作系统隔离开来,这样就使得电子海图系统的图形绘制与所在系统无关,向上它能够屏蔽多种平台系统对图形设备接口描述的差异,为图形功能层提供统一图形设备操作方法,向下则针对不同的嵌入式平台,实现各种具体的可视化输出功能。从而大大提高了系统的可移植性。图形中间件封装不同操作系统对图形图像绘制和字体显示接口,能提供画笔、画刷、文本属性设置以满足特殊绘制效果,向上提供平台无关的绘制接口,以解决电子海图软件可重用设计的实际需求。
  电子海图软件所绘制的要素主要包括点、线、面,不同平台对于填充有不同的调用方式。从可重用角度出发,需要对不同系统的函数接口进行平台无关性的封装。电子海图软件需要绘制大量的海图要素,使用的图形函数主要有以下类型:画线函数、多边形填充函数、绘图属性函数、字体函数。其中画线函数的功能是进行海岸线、等深线等线状要素的绘制,填充函数的功能是用指定的颜色来填充陆地、岛屿等面状要素,绘图属性函数是用来设置如画笔的颜色,画刷的颜色等,字体函数是在指定的区域进行海图字体绘制等等。
  不同操作系统提供的图形绘制函数库均有一定差异性,比如VxWorks的图形驱动包为WindML,Windows操作系统提供GDI应用编程接口,Linux則提供XWindows调用方式,因此设计在操作系统适配层采用高度定制化、与操作系统无关的图形编程接口,屏蔽操作系统差异性对电子海图软件的影响,能够最大化地提升海图基础层以及海图功能层可重用性。
  4.3字体差异性接口差异
  电子海图软件中需要使用很多字体,对普通字体显示需要进行旋转等各类操作,VxWorks等嵌入式操作系统未提供相关中文字体,这时就需要使用点阵汉字解决电子海图显示过程的字体显示。Linux操作系统如果没有合适字体也需要进行点阵字体读取,Windows操作系统通常使用系统提供的字体函数进行直接调用。
  5结束语
  本文探讨了利用操作系统适配层一
其他文献
摘要:2018年,教育部发布《教育信息化2.0行动计划》,并在全国推动该计划的落地生根。成都市万春小学是一所位于城乡结合部的小规模薄弱学校。为了推动落实《教育信息化2.0行动计划》,我们从学习方式、课程系统、空间布局、信息管理和提升教师信息素养等多方面进行了实践和探索,以期找到符合学校教育信息化发展实际的有效路径。  关键词:教育信息化2.0;校本实践;信息素养;发展历程  中图分类号:G642
摘要:微课程设计模式为高职微课程开发提供了系统化的理论依据。以高职《C#程序设计》微课程开发为例,通过课程分析,系统化地划分了课程主题和知识点,以“for语句”知识点为例,从教学活动设计(微教案设计、微教学资源设计)、学习活动设计(微学案设计、微学习资源设计)、评价活动设计(微反思设计、微反馈设计)等方面对微课程设计模式进行实践研究,为高职微课程开发提供实践经验。  关键词:高职;微课程;设计;实
摘要:文化创意产业的大发展和大繁荣已经成为当前社会飞速发展、创新转型的重要标志,越来越多的国际化城市都在通过大力发展文化创意产业促进城市内涵提升和城市品牌打造。该文指出,成都要发展成为中国西部最有影响力和竞争力的国际化大都市,应着力打造富有个性的文化创意产业,藉以丰富城市文化内涵、提升城市文化形象、助推城市文化发展。而文化创意产业服务平台建设对文化创意产业发展起着重要的信息枢纽和资源整合的作用。本
摘要:该文针对机器博弈中常见的技术和各种优化方法以六于棋为例进行分析和讨论,从棋盘表示、走法生成、博弈树与搜索算法这三个方面进行展开,从各种技术的优缺点出发,为机器博弈新思路提供了参考。  关键词:机器博弈;六子棋;博弈树;搜索算法;蒙特卡罗树;剪枝  中图分类号:TP391 文献标识码:A  文章编号:1009-3044(2019)33-0172-02  机器博弈是人工智能领域最富挑战性的项目之
摘要:针对当前技工院校学生日益增长的后勤服务需求,为提供更加科学的个性化服务,提升食堂管理水平,本文以H技师学院为例进行了实地调研,设计并开发了基于Apriori算法理念的数据挖掘技术的膳食服务信息化系统,收到了较好的效果。  关键词:技工院校;膳食服务;数据挖掘;信息系统  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2019)24-0072-05  开放科学(资源
摘要:随着3D打印技术的出现,它帮助人们解决了很多领域的难题,虽然现今还没有成为生活的必需品,但3D打印这个星星之火在不久的将来,会随着技术的进步,形成燎原之势。3D打印笔作为3D打印学习的初体验,具有不可替代的地位。就犹如学习写字要从用笔写字学起,学习绘画要从笔作画开始一样。铅笔是书写和绘画的基础,也是电脑打字和手绘板画画绕不开的前提。那么如何在3D打印笔制作过程中同时体现3D的功用性和创意性?
摘要:“互联网 ”环境下,大学生在学习过程中,能够使用的资源内容更加丰富,学习过程更加自主。在创新英语写作教学过程中,不能局限于传统的语法词汇和模板技巧教学,要注重培养学生实践应用能力和语言创新意识。通过充分发挥“互联网 教学”的多样优势,充实写作素材,完善互相评价,使学生能在趣味、生动的教学环境中,自主查找创作话题,真正享受写作过程,重构写作教学模式。该文从大学英语写作教学问题出发,结合“互联网
摘要:为更好培养体育院校体育人才计算机应用能力,该文以办公软件高级应用课程为例,引入案例教学模式,结合课程实操性特点,以学生兴趣点结合时代热点为切入点设计教学内容案例,促成激发学生的参与课堂的热情,发挥计算机公共课程锻炼信息化技能作用,促进学生素质更为全面地发展。  关键词:案例教学;体育院校;办公软件;教学探索;公共课程  中图分类号:G642 文献标识码:A  文章编号:1009-304
摘要:高职院校是以培养创新型、技能型人才的高等教育,在教学中更加尊重学生的个性化发展和学习意愿。该文以信息化技术为前提,从信息化教学现状、智慧课堂的框架体系、教学中的优势及所面临的问题对其在高职教学中的应用进行了实践研究。  关键词:信息化;智慧课堂;高职教育  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2019)25-0114-02  国务院2017年印发的《新
摘要:为通过应变片设计一个可以自行调节量程并使用的压力传感器,使其达到能精确测量压力,并通过模数转换,使其可直接在LCD屏上显示输出数值,本文设计了一个基于AT89C52的压力测试系统。该压力传感器能够对小量程范围内的压力进行准确測量,并可通过调节增益大小,来控制传感器的量程。  关键词:压力传感器;数模转换;LCD屏  中图分类号:TP311 文献标识码:A  文章编号:1009-3044(