Similarity Detection in Collaborative Development of Object-Oriented Formal Specifications

The complexity of today-s software systems makes collaborative development necessary to accomplish tasks. Frameworks are necessary to allow developers perform their tasks independently yet collaboratively. Similarity detection is one of the major issues to consider when developing such frameworks. It allows developers to mine existing repositories when developing their own views of a software artifact, and it is necessary for identifying the correspondences between the views to allow merging them and checking their consistency. Due to the importance of the requirements specification stage in software development, this paper proposes a framework for collaborative development of Object- Oriented formal specifications along with a similarity detection approach to support the creation, merging and consistency checking of specifications. The paper also explores the impact of using additional concepts on improving the matching results. Finally, the proposed approach is empirically evaluated.




References:
[1] T. Apiwattanapong et al, "A Differencing Algorithm for Object-Oriented
Programs", in 2004 Proc. 19th International Conference on Automated
Software Engineering, pp. 2-13.
[2] M. Godfrey et al., "Using Origin Analysis to Detect Merging and
Splitting of Source Code Entities", IEEE Transactions on Software
Engineering, Vol. 31, No. 2, pp. 166-181, 2005.
[3] D. Gusfield, Algorithms on Strings, Trees and Sequences: Computer
Science and Computational Biology, Cambridge University Press, 1999.
[4] G. Jeh et al., "SimRank: A Measure of Structure-Context Similarity", in
2002 Proc. International Conference on Knowledge Discovery and Data
Mining, pp. 538-543.
[5] G. Kassel et al., "Model Checking Object-Z classes: Some Experiments
with FDR", in Proc. APSEC conference, pp. 445-452.
[6] J. Madhavan et al., "Generic Schema Matching with Cupid", in 2001
Proc. 27th VLDB conference.
[7] C. Manning et al., Foundations of Statistical Natural Language
Processing, MIT Press, 1999.
[8] A. Mehra et al., "A Generic Approach to Supporting Diagram
Differencing and Merging for Collaborative Design", in 2005 Proc.
International Conference on Automated Software Engineering, pp. 204-
213.
[9] S. Melnik et al., "Similarity Flooding: A Versatile Graph Matching
Algorithm and its Application to Schema Matching", in 2002 Proc.
International Conference on Data Engineering, pp. 117-128.
[10] T. Mens, "A State-of-the-Art Survey on Software Merging", IEEE
Transactions on Software Engineering, Vol. 28, No. 5, pp. 449-462,
2002.
[11] G. Mishne et al., "Source Code Retrieval using Conceptual Similarity",
in 2004 Proc. RIAO 2004 Conference, pp. 539-554.
[12] S. Nejati et al., "Matching and Merging of Statecharts Specifications", in
2007 Proc. 29th International Conference on Software Engineering
(ICSE'07).
[13] A. Boronat et al., "Formal Model Merging Applied to Class Diagram
Integration", Electronic Notes in Theoretical Computer Science, Vol.
166, pp. 5-26, 2007.
[14] B. Nuseibeh et al., "Making Consistency Respectable in Software
Development", Journal of Systems and Software, Vol. 58, pp. 171-180,
2001.
[15] L. Prechelt et al., "JPlag: Finding Plagiarisms Among a Set of
Programs", Department of Informatics, University of Karlsruhe, Tech.
Rep. No. 1, March 2000.
[16] M. Sabetzadeh et al., "Consistency Checking of Conceptual Models via
Model Merging", in 2007 Proc. 15th IEEE RE conference.
[17] G. Smith, The Object-Z Specification Language, Kluwer Academic
Publishers, 2000.
[18] J. Spivey, The Z notation - A Reference Manual, Prentice Hall, 2nd
Edition, 1992
[19] N. Tsantalis et al., "Design Pattern Detection Using Similarity Scoring",
IEEE Transactions on Software Engineering, Vol. 32, No. 11, pp. 896-
909, 2006.
[20] Z. Xing et al., "UMLDiff: An Algorithm for Object-Oriented Design
Differencing", in 2005 Proc. 20th IEEE/ACM international Conference
on Automated software engineering, pp. 54-65.