A Survey of the Practice of Design -- Code Correspondence amongst Professional Software Engineers

Correspondence between the design and the code of a system is desirable for several purposes in software development, such as predicting properties of the system based on the design, and for using the documentation for understanding and maintaining the system. In this paper we report on a study into the correspondence between the design of a software system, represented by means of UML, and the implementation of the system. We performed a web-based questionnaire among professional software engineers for finding out how they deal with correspondence. The questionnaire elicited the attitude of professional software engineers with respect to: importance of correspondence, common practice in maintaining correspondence and common reasons for deterioration of correspondence. The results of the questionnaire provide a deeper understanding of the aspects of correspondence and their importance in practical software engineering.

[1]  Helen Sharp,et al.  An Ethnographic Study of XP Practice , 2004, Empirical Software Engineering.

[2]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[3]  David Notkin,et al.  Software Reflexion Models: Bridging the Gap between Design and Implementation , 2001, IEEE Trans. Software Eng..

[4]  Steven P. Reiss,et al.  Constraining the Structure and Style of Object-Oriented Programs , 1993, PPCP.

[5]  Lucas Layman,et al.  Motivations and measurements in an agile case study , 2004, QUTE-SWAP '04.

[6]  Michel R. V. Chaudron,et al.  Effects of defects in UML models: an experimental investigation , 2006, ICSE.

[7]  Laurie A. Williams,et al.  Assessing test-driven development at IBM , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[8]  Lucas Layman,et al.  Toward a framework for evaluating extreme programming , 2004, ICSE 2004.

[9]  Frank Maurer,et al.  Extreme Programming: Rapid Development for Web-Based Applications , 2002, IEEE Internet Comput..

[10]  Tore Dybå,et al.  Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise , 2007, IEEE Transactions on Software Engineering.

[11]  Olaf Owe,et al.  ANNA A Language for Annotating Ada Programs , 1987, Lecture Notes in Computer Science.

[12]  Mikael Lindvall,et al.  Does the code match the design? A process for architecture evaluation , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[13]  Giuliano Antoniol,et al.  Identifying design-code inconsistencies in object-oriented software: a case study , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[14]  Roy H. Campbell,et al.  Monitoring compliance of a software system with its high-level design models , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[15]  Jeffrey C. Carver,et al.  Issues in using students in empirical studies in software engineering education , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[16]  Thomas D. LaToza,et al.  Maintaining mental models: a study of developer work habits , 2006, ICSE.