论文部分内容阅读
当前,我们已经进入了大数据和云计算时代,随之而来的是对软件产品多样性需求的爆炸式增长。然而,以往的软件开发方法存在许多问题,如开发效率低下、算法程序缺乏正确性和可靠性等,越来越无法满足日益增长的软件需求。因此,如何提高软件开发的效率和可靠性一直是许多研究者关注的焦点。大量的实践表明,基于构件的软件复用技术由于具备开发高可靠性和高效率软件的特性,为解决这一难题提供了行之有效的思路。利用可重用程序构件库中的构件可以组装成各种应用程序,这样可以减少大量的重复性劳动,最终实现算法程序生成的自动化。生成式程序设计方法为构件复用及组装以生成软件系统提供支持,由领域工程和应用工程两个过程组成,前者包括领域分析、领域设计和领域实现三个阶段,其中领域分析针对某一特定的领域,分析领域中的通用性和可变性,提取一组复用性足够的领域需求,最后对提取的领域需求进行抽象以生成所需的领域模型;后者则是在产生的领域模型基础上,组装可复用构件进行软件开发。PAR方法是一种支持算法程序形式化和自动化开发的新型软件开发方法,其定义的Radl算法设计语言和Apla抽象程序设计语言能够大幅度简化算法,为实现开发算法的高效率、高精确性提供有力保证。PAR平台是用于支撑PAR方法的新型软件开发平台,提供了有效的预定义组合数据类型,使得编程更加容易和可靠。本文基于PAR方法及其平台,研究了经构件组装开发和生成若干图算法的问题,开展的主要工作及研究结果有:(1)分析和综述了生成式程序设计、软件复用技术、PAR方法及其平台。(2)通过分析广度优先类算法和深度优先类算法的共性和可变性,设计了这两类算法的两个泛型算法构件relax和dfs及相关算子构件,并给出了相应的Apla语言实现。(3)借助PAR方法中的泛型机制,将泛型算法构件和相应算子构件组装,生成了广度优先遍历算法、Dijkstra算法、Floyd算法等广度优先类算法以及深度优先遍历算法、创建邻接表算法、拓扑排序、强连通分量求解等深度优先类算法,并在PAR平台的支持下生成可执行的算法程序。(4)针对图构件组装的问题,设计了一个图形用户界面的构件组装原型系统,使得用户通过选择相应构件即可自动化组装产生所需算法,从而极大提高图算法开发的效率。