On the use of software design models in software development practice: An empirical investigation

Research into software design models in general, and into the UML in particular, focuses on answering the question how design models are used, completely ignoring the question if they are used. There is an assumption in the literature that the UML is the de facto standard, and that use of design models has had a profound and substantial effect on how software is designed by virtue of models giving the ability to do model-checking, code generation, or automated test generation. However for this assumption to be true, there has to be significant use of design models in practice by developers. This paper presents the results of a survey summarizing the answers of 3785 developers answering the simple question on the extent to which design models are used before coding. We relate their use of models with (i) total years of programming experience, (ii) open or closed development, (iii) educational level, (iv) programming language used, and (v) development type. The answer to our question was that design models are not used very extensively in industry, and where they are used, the use is informal and without tool support, and the notation is often not UML. The use of models decreased with an increase in experience and increased with higher level of qualification. Overall we found that models are used primarily as a communication and collaboration mechanism where there is a need to solve problems and/or get a joint understanding of the overall design in a group. We also conclude that models are seldom updated after initially created and are usually drawn on a whiteboard or on paper.

[1]  Miguel A. Fernández,et al.  An empirical study of the state of the practice and acceptance of model-driven engineering in four industrial cases , 2012, Empirical Software Engineering.

[2]  Bran Selic,et al.  Using UML for Modeling Complex Real-Time Systems , 1998, LCTES.

[3]  Charles Richter,et al.  Developing initial OOA models , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[4]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[5]  Lefteris Angelis,et al.  Links between the personalities, views and attitudes of software engineers , 2010, Inf. Softw. Technol..

[6]  Timothy Lethbridge,et al.  Problems and opportunities for model-centric versus code-centric software development: a survey of software professionals , 2008, MiSE '08.

[7]  Arend Rensink Model Driven Architecture - Foundations and Applications, 5th European Conference, ECMDA-FA 2009, Enschede, The Netherlands, June 23-26, 2009. Proceedings , 2009, ECMDA-FA.

[8]  Kendall Scott,et al.  UML distilled - a brief guide to the Standard Object Modeling Language (2. ed.) , 2000, notThenot Addison-Wesley object technology series.

[9]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[10]  Robert Glück,et al.  Special Issue on Generative Programming and Component Engineering (Selected Papers from GPCE 2004/2005) , 2011, Sci. Comput. Program..

[11]  David J. Sheskin,et al.  Handbook of Parametric and Nonparametric Statistical Procedures , 1997 .

[12]  Marian Petre,et al.  Insights from expert software design practice , 2009, ESEC/SIGSOFT FSE.

[13]  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.

[14]  Christian Heide Damm,et al.  Tool support for cooperative object-oriented design: gesture based modelling on an electronic whiteboard , 2000, CHI.

[15]  Brian Fitzgerald,et al.  The use of systems development methodologies in practice: a field study , 1997, Inf. Syst. J..

[16]  Kent Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA 1989.

[17]  Rudolf K. Keller,et al.  Pattern visualization for software comprehension , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

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

[19]  Parastoo Mohagheghi,et al.  Where Is the Proof? - A Review of Experiences from Applying MDE in Industry , 2008, ECMDA-FA.

[20]  KobrynCris Will UML 2.0 be agile or awkward , 2002 .

[21]  M. Greenacre Theory of Correspondence Analysis , 2007 .

[22]  Marta Indulska,et al.  How do practitioners use conceptual modeling in practice? , 2006, Data Knowl. Eng..

[23]  W. J. Kubitz,et al.  Biting the silver bullet: toward a brighter future for system development , 1992 .

[24]  Pearl Brereton,et al.  Empirical evidence about the UML: a systematic literature review , 2011, Softw. Pract. Exp..

[25]  Tony Gorschek,et al.  A Model for Technology Transfer in Practice , 2006, IEEE Software.

[26]  Christian Heath,et al.  Tasks-in-interaction: paper and screen based documentation in collaborative activity , 1992, CSCW '92.

[27]  Tony Gorschek,et al.  Industry evaluation of the Requirements Abstraction Model , 2007, Requirements Engineering.

[28]  Marcus Ciolkowski,et al.  Conducting on-line surveys in software engineering , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[29]  Lefteris Angelis,et al.  A large-scale empirical study of practitioners' use of object-oriented concepts , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[30]  Marco Torchiano,et al.  Preliminary Findings from a Survey on the MD State of the Practice , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[31]  Bente Anda,et al.  Experiences from introducing UML-based development in a large safety-critical project , 2006, Empirical Software Engineering.

[32]  Fred D. Davis,et al.  Explaining Software Developer Acceptance of Methodologies: A Comparison of Five Theoretical Models , 2002, IEEE Trans. Software Eng..

[33]  Marco Torchiano,et al.  Maturity of software modelling and model driven engineering: A survey in the Italian industry , 2012, EASE.

[34]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[35]  Kendall Scott,et al.  UML distilled - applying the standard object modeling language , 1997 .

[36]  Mark Rouncefield,et al.  Model-driven engineering practices in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[37]  N. Hoffart Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory , 2000 .

[38]  Kent L. Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA '89.

[39]  Stephen A. Edwards,et al.  Design of embedded systems: formal models, validation, and synthesis , 1997, Proc. IEEE.

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

[41]  Glenford J. Myers,et al.  Structured Design , 1974, IBM Syst. J..

[42]  Cris Kobryn Will UML 2.0 be agile or awkward? , 2002, CACM.

[43]  Mike Holcombe,et al.  A pilot study of comparative customer comprehension between extreme x-machine and uml models , 2008, ESEM '08.

[44]  Scott W. Ambler,et al.  Agile modeling: effective practices for extreme programming and the unified process , 2002 .

[45]  Soren Lauesen,et al.  Software Requirements: Styles & Techniques , 2002 .

[46]  D. Sheskin Handbook of Parametric and Nonparametric Statistical Procedures: Third Edition , 2000 .

[47]  Colin Robson,et al.  Real World Research: A Resource for Social Scientists and Practitioner-Researchers , 1993 .

[48]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[49]  Randall W. Jensen,et al.  A proposed 4-year software engineering curriculum , 1978, SIGCSE '78.

[50]  Robert DeLine,et al.  Let's go to the whiteboard: how and why software developers use drawings , 2007, CHI.

[51]  Tony Gorschek,et al.  Handshaking with Implementation Proposals: Negotiating Requirements Understanding , 2010, IEEE Software.

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

[53]  Dennis Shasha,et al.  The many faces of consensus in distributed systems , 1992, Computer.

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

[55]  Paul A. Cairns,et al.  Using Sketching to Aid the Collaborative Design of Information Visualisation Software - A Case Study , 2006, HWID.

[56]  Claes Wohlin,et al.  Engineering and Managing Software Requirements , 2005 .

[57]  Kristin Decker,et al.  Uml Distilled A Brief Guide To The Standard Object Modeling Language , 2016 .

[58]  Beatrice Gralton,et al.  Washington DC - USA , 2008 .

[59]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[60]  Art Pyster,et al.  Software Engineering 2009(GSwE2009): Curriculum Guidelines for Graduate Degree Programs in Software Engineering , 2009 .

[61]  Michael Jackson,et al.  Principles of program design , 1975 .

[62]  Richard V. McCarthy,et al.  Does UML make the grade? Insights from the software development community , 2005, Inf. Softw. Technol..