论文部分内容阅读
限制关系即对象间的动态不变关系。在交互式图形用户界面中,它是一种必须维护的关系。限制求解器(Constraint Solver)作为一种限制维护工具,其优点是限制关系的描述和维护工作相分离,用户不必进入维护工作,只需从高层给出对限制关系的描述即可。许多图形用户界面工具箱使用限制求解器去维护图形对象之间的限制关系。这些求解器普遍采用一种高效而灵活的限制满足技术—多路局部传播(Multi-Way Local Propagation)技术,该技术通过将限制关系转化成一组执行方法而完成对限制关系的维护。为了说明限制技术在图形用户界面中的成功应用,作者设计和实现了以下三个系统: 1.SkyBlue Solver SkyBlue Solver限制求解器采用C++语言实现,它利用解释功能将限制关系的描述转化为限制关系的维护,其高效的性能可以满足图形用户界面语义反馈的速度要求。SkyBlue Solver使用的限制算法是SkyBlue,是一种增量式的限制解决算法,其原理是维护一组限制关系,并通过增加或删除该组中的单个限制关系来完成限制操作,它使用多路局部传播技术维护限制关系。SkyBlue可以处理循环和多路输出方法的特点,提高了SkyBlue Solver的表达能力,大大增加算法的灵活性。 2.COOIGT COOIGT作为一个基于限制的交互式图形工具箱,是SkyBlue Solver在交互式图形工具箱OOIGT上成功应用的一个有效例证。它以清晰的层次结构,高效的限制求解器,简单方便的程序设计接口为特点,为应用提供了一个功能强大、机制灵活的主窗口界面开发系统。 3.COOIGT Debugger 随着应用中限制关系的复杂化,提高编程者对限制关系的理解和控制,就成为对限制求解器改进工作的重要内容之一。COOIGT Debugger是一个基于COOIGT的限制关系调试工具,它通过一些可视化方式和有效的控制手段,帮助COOIGT用户更好的理解、定义和控制限制关系,开发出理想的用户界面。