A Rule-based Automated Approach for Extracting Models from Source Code

We herein propose Program-oriented Modeling (POM), a novel approach to extract software models automatically from source code. The proposed approach is developed in order to satisfy the requirements of model abstraction for situations in which a model is used. The POM model extraction framework provides rule-based abstraction using the Meta-Object Facility (MOF) model transformation technology. We have also built a model extraction tool, called POM/MC, which analyzes C source code to extract Promela models for the SPIN model checker. We have applied POM/MC to an industrial software system and have shown that the proposed approach can reduce the effort involved in analyzing software faults by model checking.

[1]  David W. Binkley,et al.  Source Code Analysis: A Road Map , 2007, Future of Software Engineering (FOSE '07).

[2]  Matthew B. Dwyer,et al.  Bandera: extracting finite-state models from Java source code , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[3]  Corina S. Pasareanu,et al.  A survey of new trends in symbolic execution for software testing and analysis , 2009, International Journal on Software Tools for Technology Transfer.

[4]  Mark Harman,et al.  Model projection: simplifying models in response to restricting the environment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[5]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[6]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

[7]  Leon Moonen,et al.  Crossing the boundaries while analyzing heterogeneous component-based software systems , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[8]  Jesús García Molina,et al.  An Architecture-Driven Modernization Tool for Calculating Metrics , 2010, IEEE Software.

[9]  Mario Piattini,et al.  On the Use of ADM to Contextualize Data on Legacy Source Code for Software Modernization , 2009, 2009 16th Working Conference on Reverse Engineering.

[10]  Gerard J. Holzmann,et al.  An Automated Verification Method for Distributed Systems Software Based on Model Extraction , 2002, IEEE Trans. Software Eng..

[11]  Jordi Cabot,et al.  MoDisco: a generic and extensible framework for model driven reverse engineering , 2010, ASE.

[12]  Matthias Meyer,et al.  Reverse engineering with the reclipse tool suite , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[13]  Mark Rouncefield,et al.  Empirical assessment of MDE in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).