An industrial case study on the use of UML in software maintenance and its perceived benefits and hurdles

UML is a commonly-used graphical language for the modelling of software. Works regarding UML’s effectiveness have studied projects that develop software systems from scratch. Yet the maintenance of software consumes a large share of the overall time and effort required to develop software systems. This study, therefore, focuses on the use of UML in software maintenance. We wish to elicit the practices of the software modelling used during maintenance in industry and understand what are perceived as hurdles and benefits when using modelling. In order to achieve a high level of realism, we performed a case study in a multinational company’s ICT department. The analysis is based on 31 interviews with employees who work on software maintenance projects. The interviewees played different roles and provided complementary views about the use, hurdles and benefits of software modelling and the use of UML. Our study uncovered a broad range of modelling-related practices, which are presented in a theoretical framework that illustrates how these practices are linked to the specific goals and context of software engineering projects. We present a list of recommended practices that contribute to the increased effectiveness of software modelling. The use of software modelling notations (like UML) is considered beneficial for software maintenance, but needs to be tailored to its context. Various practices that contribute to the effective use of modelling are commonly overlooked, suggesting that a more conscious holistic approach with which to integrate modelling practices into the overall software engineering approach is required.

[1]  Alan F. Blackwell,et al.  Mental imagery in program design and visual programming , 1999, Int. J. Hum. Comput. Stud..

[2]  Marco Torchiano,et al.  Using UniMod for maintenance tasks: An experimental assessment in the context of model driven development , 2012, 2012 4th International Workshop on Modeling in Software Engineering (MISE).

[3]  Tore Dybå,et al.  Building Theories in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

[4]  Philippe Kruchten,et al.  The Decision View's Role in Software Architecture Practice , 2009, IEEE Software.

[5]  W. Shadish,et al.  Experimental and Quasi-Experimental Designs for Generalized Causal Inference , 2001 .

[6]  Danilo Caivano,et al.  Are Forward Designed or Reverse-Engineered UML diagrams more helpful for code maintenance?: A family of experiments , 2015, Inf. Softw. Technol..

[7]  Wayne G. Lutters,et al.  Revealing actual documentation usage in software maintenance through war stories , 2007, Inf. Softw. Technol..

[8]  Per Runeson,et al.  Case Studies Synthesis: Brief Experience and Challenges for the Future , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[9]  Raymond McCall,et al.  Rationale-Based Software Engineering , 2008 .

[10]  A. Strauss,et al.  Basics of qualitative research: Grounded theory procedures and techniques. , 1993 .

[11]  Marco Torchiano,et al.  Relevance, benefits, and problems of software modelling and model driven techniques - A survey in the Italian industry , 2013, J. Syst. Softw..

[12]  Aiko Fallas Yamashita,et al.  Do code smells reflect important maintainability aspects? , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[13]  Roel Wieringa,et al.  Six strategies for generalizing software engineering theories , 2015, Sci. Comput. Program..

[14]  Roger Pressman,et al.  Software Engineering: A Practitioner's Approach, 7Th Edition , 2009 .

[15]  James E. Rumbaugh,et al.  Object-Oriented Modeling and Design with UML , 2004 .

[16]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[17]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

[18]  Ivar Jacobson,et al.  Where's the Theory for Software Engineering? , 2012, IEEE Software.

[19]  Per Runeson,et al.  Checklists for Software Engineering Case Study Research , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[20]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[21]  Michel R. V. Chaudron,et al.  A Vision on a New Generation of Software Design Environments , 2015, HuFaMo@MoDELS.

[22]  James D. Herbsleb,et al.  Notation and representation in collaborative object-oriented design: an observational study , 2007, OOPSLA.

[23]  Giuseppe Scanniello,et al.  Investigating the Role of UML in the Software Modeling and Maintenance - A Preliminary Industrial Survey , 2010, ICEIS.

[24]  Danilo Caivano,et al.  On the use of UML documentation in software maintenance: Results from a survey in industry , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[26]  G. Williamson Introduction to Social Research Quantitative and Qualitative Approaches, 2nd edn , 2006 .

[27]  Miroslaw Staron,et al.  Characterizing model usage in embedded software engineering: a case study , 2010, ECSA '10.

[28]  Vahid Garousi,et al.  Usage and usefulness of technical software documentation: An industrial case study , 2015, Inf. Softw. Technol..

[29]  Nicolas Anquetil,et al.  A study of the documentation essential to software maintenance , 2005, SIGDOC '05.

[30]  Michel R. V. Chaudron,et al.  Empirical studies concerning the maintenance of UML diagrams and their use in the maintenance of code: A systematic mapping study , 2013, Inf. Softw. Technol..

[31]  Giuseppe Scanniello,et al.  On the impact of UML analysis models on source-code comprehensibility and modifiability , 2014, ACM Trans. Softw. Eng. Methodol..

[32]  Vahid Garousi,et al.  Evaluating usage and quality of technical software documentation: an empirical study , 2013, EASE '13.

[33]  Michel R. V. Chaudron,et al.  A survey into the rigor of UML use and its perceived impact on quality and productivity , 2008, ESEM '08.

[34]  M. Sheelagh T. Carpendale,et al.  STRATOS: Using Visualization to Support Decisions in Strategic Software Release Planning , 2015, CHI.

[35]  Reidar Conradi,et al.  Experiences from Introducing UML-based Development in a Large Safety-Critical Project , 2006 .

[36]  A. Strauss,et al.  The discovery of grounded theory: strategies for qualitative research aldine de gruyter , 1968 .

[37]  Jeffrey Parsons,et al.  How UML is used , 2006, CACM.

[38]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[39]  Giuseppe Scanniello,et al.  Does the combined use of class and sequence diagrams improve the source code comprehension?: results from a controlled experiment , 2012, EESSMod '12.

[40]  Timothy Lethbridge,et al.  The relevance of software documentation, tools and technologies: a survey , 2002, DocEng '02.

[41]  Jörgen Hansson,et al.  Model-based engineering in the embedded systems domain: an industrial survey on the state-of-practice , 2018, Software & Systems Modeling.

[42]  Marian Petre,et al.  UML in practice , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[43]  Victor R. Basili,et al.  A Methodology for Collecting Valid Software Engineering Data , 1984, IEEE Transactions on Software Engineering.

[44]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[45]  Bernd Bruegge,et al.  Object-Oriented Software Engineering Using UML, Patterns, and Java , 2009 .

[46]  A. Strauss,et al.  Basics of qualitative research: Grounded theory procedures and techniques. , 1992 .

[47]  Danilo Caivano,et al.  Does the level of detail of UML diagrams affect the maintainability of source code?: a family of experiments , 2016, Empirical Software Engineering.

[48]  Pearl Brereton,et al.  Evidence relating to Object-Oriented software design: A survey , 2007, ESEM 2007.

[49]  Lionel C. Briand,et al.  A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance , 2008, IEEE Transactions on Software Engineering.

[50]  R. Yin Case Study Research: Design and Methods , 1984 .

[51]  Isabel M. Ramos,et al.  Are forward designed or reverse-engineered UML diagrams more helpful for code maintenance?: a controlled experiment , 2013, EASE '13.

[52]  Siw Elisabeth Hove,et al.  The impact of UML documentation on software maintenance: an experimental evaluation , 2006, IEEE Transactions on Software Engineering.

[53]  Karen Locke Grounded Theory in Management Research , 2000 .

[54]  Lyn Richards,et al.  Using NVIVO in Qualitative Research , 1999 .

[55]  Mark Rouncefield,et al.  Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure , 2014, Sci. Comput. Program..

[56]  Vahid Garousi,et al.  A Pilot Experiment to Quantify the Effect of Documentation Accuracy on Maintenance Tasks , 2013, 2013 IEEE International Conference on Software Maintenance.

[57]  Håkan Burden,et al.  Industrial Adoption of Model-Driven Engineering: Are the Tools Really the Problem? , 2013, MoDELS.