对象行为协议对于辅助其他开发者理解并正确使用对象所提供的外部行为具有十分重要的意义.然而相关文档却常常缺失或存在不一致,需要通过逆向分析的方法进行恢复.针对这一问题,本文提出了一种基于驱动执行和动态分析的对象状态机(Object State Machine,OSM)提取方法.该方法从源代码中提取包含类属性的条件表达式,以其在运行时刻的取值情况及程序异常信息作为状态标识,并通过驱动执行的方式获取运行时的状态转换信息,然后分析运行时信息逐步构造对象状态机.该方法已实现为相应的原型系统,初步实验结果表明通过该方法可以高效、准确地恢复对象行为协议.