论文部分内容阅读
当前的各种软件,采用多种开发语言,应用于多个平台,复杂性大;软件系统和软件开发的表现形式丰富多彩、千姿百态,具有多样性;在不同时期不同阶段系统及其开发变化很大,具有易变性。开发出来之后,在一定时期和范围内,能够满足用户、市场的需求。但是由于技术、市场、用户等外部条件具有很大的可变性,当系统外部条件变化时,很多需重新进行编码和测试,甚至可能影响到详细设计、总体设计和需求分析。对系统的修改涉及到生命周期中的较高层次,因此需要操作员、程序员、设计人员甚至需求分析人员的参与。原来的系统有可能不适应新的变化而被废弃或者需要通过复杂的维护和更新才能继续使用。并且同一软件系统内部也可能存在适应性的问题。
适者生存!再好的系统也不可能是一成不变的。一个软件的开发完成,只说明这个软件的诞生,不能说就一定能生存。要保证软件能正常地运行下去,就必须使软件不断的适应客观要求的变化。客观环境的不断变化,决定了软件的不稳定性,这就迫使人们来寻找克服这种不稳定的方法——自适应技术。
目前开发的基于GIS的地学信息系统,由于GIS开发平台各异,GIS软件的存储格式互不兼容,限制了数据库之间的联系和应用,造成重复建设,资源浪费严重。由于开发周期较长,有些系统已不能完全满足用户的需求,特别是在网络查询方面不能跟上技术发展的步伐。随着数据库新技术和GIS新技术的发展和应用,基于GIS的地学信息系统也将逐渐采用自适应技术增加系统与外部客观环境联系的稳定性,使系统快速适应业务和外部环境的不断变化变得更加容易,从而具有更好的通用性、适应性、稳定性,能更好的满足用户需求,增强开发人员与业务部门的联系,使复杂的需求变得透明化;提高软件质量,减少开发错误,提高对新需求的适应性,并且能提高系统的可维护性,降低开发成本,更有利于延长系统的生命周期。
本文首先从软件工程的角度着手,着重研究了国内外软件自适应一些最新学术思想和应用成果,介绍了国内外自适应思想及技术的发展应用现状及存在问题。
接着从物竞天择、适者生存的自然规律中引出软件自适应的概念,并对软件适应性进行了分类。然后探讨了自适应思想及技术在软件工程领域的发展,并首次按照不同自适应思想在软件生命周期中的各阶段中的不同作用及其影响范围,对纷繁复杂的各种自适应思想进行了初步的归纳总结及分类。并对从软件规划及需求分析到软件设计阶段代表性思想UML建模、从软件设计到编码阶段的面向对象及泛型编程、从软件设计到维护阶段的软件复用思想、从编码到维护阶段的软件配置管理思想这些自适应思想进行了理论上的初步研究与总结。软件的自适应是一个由来已久而且难于解决的复杂问题,要提高软件的自适应性必须以先进的软件开发思想为指导,并采用优秀的软件技术。通过研究国内外大量参考文献,作者认为提高软件的自适应性,必须从几个方面着手:(1)提高软件复用性;(2)提高软件的可配置性;(3)提高软件的可组合性;(4)提高软件动态性;(5)提高软件的自治性。接下来作者对目前较为成熟的关键技术如UML建模、构件(也称组件)技术及数据字典技术等进行了研究。
而后依据前面归纳总结出的自适应理论体系,系统研究了GeoView生命周期不同阶段中各种自适应技术的应用,并对上一章中提到的UML建模、面向对象开发、构件技术及数据字典等自适应思想及技术在GeoView平台中的应用进行了重点分析研究:GeoView平台开发采用面向对象技术,利用封装将程序的设计与使用相分离。程序模块间的关系更为简单,程序模块的独立性、数据的安全性有了良好的保障。通过继承与多态性,大大提高程序的可重用性,使得软件的开发和维护都更为方便,也便于理解、修改和扩充。GeoView平台开发中应用了实现软件复用的核心技术——构件技术如DLL技术和ActiveX控件技术。作为数据库技术的核心内容之一,数据字典技术对于平台的自适应性的意义不言而喻。GeoView平台中充分应用了数据字典技术。版本控制是软件开发中的重要方面,GeoView平台开发采用VSS进行版本控制,规范了开发过程,缩短开发所需的时间,减少了开发成本;完整详细地记载了开发历史过程,便于软件维护;加强了平台一致性和可重用性,提高了GeoView平台的适应性。并通过缺陷管理,减少了开发错误,使得系统更加稳定,更具适应性。GeoView平台采取协作开发,使得开发者协同工作,实现工作流程自动化,降低了开发成本,提高了工作效率。
构件技术是实现软件复用的核心技术,更是实现软件自适应的热门技术,是当前自适应技术实现的代表技术。最后结合作者在VC++平台下的软件开发实践,研究了自适应技术的具体实现:自适应的数据库操作ATL复合控件。该控件集成了数据库操作的多种功能,可根据数据表字段信息动态创建不同的对应控件,并进行自动布局及分屏显示。该控件设计与开发基于的是元数据(metadata),因此开发出的控件对具体的表几乎没有依赖性,所以它对于不同表结构通用;开发利用了ODBC数据库接口,因此它对于后台数据库来讲,是透明的;表结构的改动,不受影响,适应于动态结构。本控件的实现过程中,应用了多种自适应思想及技术:采用VC++及ATL编程,很好体现了面向对象及泛型编程思想;另外,由于ATL对COM全面提供支持,开发出的构件,更能体现软件复用思想;自适应构件本身具有很好的可配置性,方便进行配置管理。本控件的完成,是对自适应技术实现的一次有意义的探索。