Central Concerns and Questions
Two major concerns in engineering software systems are high maintenance costs and reliability of systems. To reduce maintenance efforts, there is a need for automated tools to help software developers understand their existing code base. To ensure correctness of systems, there is a need for specifications to aid in testing and verification of mission critical systems. In both areas, the need for a well-documented software specification is apparent. However, software specifications are often poor, outdated or incomplete in the industry. Hence, there is a need for an automated methods to mine or infer these specifications or protocols automatically from programs.
Emerging Ideas and Initiatives
To address issue of poor specification, we employ and develop existing and novel data mining and machine learning techniques to infer baseline models that will serve as candidate specifications. These models can then be used to improve program comprehension, aid automated testing methodologies, find bugs and ensure correctness of software systems.
Selected Publications
[1] David Lo, Ganesan Ramalingam, Venkatesh-Prasad Ranganath, and Kapil Vaswani. Mining Quantified Temporal Rules: Formalism, Algorithms, and Evaluation. In proceedings of the 16th Working Conference on Reverse Engineering (WCRE'09), Lille , France. Oct 13-16, 2009
[2] Tao Xie, Suresh Thummalapenta, David Lo, and Chao Liu. Data Mining for Software Engineering. IEEE Computer , 42(8), pp. 35-42, 2009.
[3] David Lo, Leonardo Mariani, and Mauro Pezze. Automatic Steering of Behavioral Model Inference. In proceedings of the 7th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE'09 ), Amsterdam, The Netherlands. Aug 24-28, 2009
[4] David Lo and Shahar Maoz. Mining Scenario-Based Triggers and Effects. In proceedings of the 23rd IEEE/SIGSOFT International Conference on Automated Software Engienering (ASE'08).
[5] David Lo, Siau-Cheng Khoo and Chao Liu. Mining Past-Time Temporal Rules from Execution Traces. In proceedings of the 6th Workshop on Dynamic Analysis (WODA'08).
[6] David Lo, Siau-Cheng Khoo and Chao Liu. Efficient Mining of Recurrent Rules from a Sequence Database. In proceedings of the 13rd International Conference on Database Systems for Advance Applications (DASFAA'08).
[7] David Lo, Shahar Maoz and Siau-Cheng Khoo. Mining Modal Scenario-based Specifications from Execution Traces of Reactive Systems. In proceedings of the 22nd IEEE/SIGSOFT International Conference on Automated Software Engineering (ASE'07).
[8] David Lo, Siau-Cheng Khoo and Chao Liu. Efficient Mining of Iterative Patterns for Software Specification Discovery. In proceedings of the 13th SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'07).
[9] David Lo and Siau-Cheng Khoo. SMArTIC: Towards Building an Accurate, Robust and Scalable Specification Miner. In proceedings of the 14th SIGSOFT Symposium on Foundation of Software Engineering (FSE'06).
[10] David Lo and Siau-Cheng Khoo. QUARK: Empirical Assessment of Automaton-based Specification Miners. In proceedings of the 13th Working Conference on Reverse Engineering (WCRE'06).
Projects, Presentations and Posters
- David Lo and Shahar Maoz. Hierarchical Inter-Object Traces for Specification Mining . (poster)
- David Lo, Software Specification Mining: Improving Maintainability and Reliability of Systems. (poster)
- David Lo, Shahar Maoz and Siau-Cheng Khoo. Mining Modal Scenarios from Execution Traces. (poster)
- David Lo, Siau-Cheng Khoo and Chao Liu. Efficient Mining of Iterative Patterns for Software Specification Discovery. (presentation)
- David Lo, Siau-Cheng Khoo and Chao Liu. Efficient Mining of Recurrent Rules from a Sequence Database. (presentation)
- David Lo, Siau-Cheng Khoo and Chao Liu. Mining Past-Time Temporal Rules from Execution Traces. (presentation)
Collaborations and Industry Linkages
- DIKU, University of Copenhagen , Denmark
- Automated Software Engineering Research Group , Department of Computer Science, North Carolina State University
- Programming Languages and Systems Lab, Departmet of Computer Science, National University of Singapore
- School of Computer Engineering, Nanyang Technological University
-
-
- Internet Service Research Center, Microsoft Research, Redmond
-
- Laboratory of Test and Analysis, University of Milano-Bicocca, Italy