论文部分内容阅读
设计模式是有经验的面向对象设计者所总结的针对若干典型问题的经典解决方案,已经得到广泛的认可和应用。从程序代码中自动地提取出设计模式有助于人们对程序的理解。设计模式必须符合一定的语法特征,又必须实现一定的语义。现有研究中,人们主要面向结构信息、行为信息来提取设计模式,面向语义信息提取设计模式的研究较少。本文以语义信息的分析、验证为出发点研究以java语言实现的设计模式的提取技术。
状态模式中,不同的状态由不同的具体状态类表示。本文通过分析类型传播图得到环境类所引用的具体状态类及这些具体状态类之间的转换关系,由此得到状态模式的状态转换图。文中给出了具体的算法。接着本文利用Petri网中的谓词/变迁系统表达抽象语义的能力,设计了一种用于验证设计模式语义信息的模型--OV-Pr/T系统。分析表明OV-Pr/T系统具有较强的语义表达能力,更利于验证设计模式的语义信息。本文还对6个设计模式构建了OV-Pr/T系统,并验证了它们的语义信息。
论文的工作包括以下几个方面:(1)深入分析状态模式的语义信息,依据状态模式中具体状态由抽象状态类的各个子类表示的特点,在不同的状态下对环境类中表示当前状态的变量进行类型分析,提出一种基于类型传播图恢复状态模式的状态转移图的算法:(2)分析了对象变量在一些设计模式中的语义特性,并根据该特性参照类型传播图,构建OV-Pr/T系统以用于验证设计模式的语义信息,并接着详细地分析了OV-Pr/T系统的语义验证能力。(3)对6个设计模式构建了OV-Pr/T系统,并分别讨论了如何验证它们的语义信息。作为示例,对单件(Singleton)模式进行了实例分析。