A UML/MARTE Model Analysis Method for Uncovering Scenarios Leading to Starvation and Deadlocks in Concurrent Systems

Concurrency problems such as starvation and deadlocks should be identified early in the design process. As larger, more complex concurrent systems are being developed, this is made increasingly difficult. We propose here a general approach based on the analysis of specialized design models expressed in the Unified Modeling Language (UML) that uses a specifically designed genetic algorithm to detect concurrency problems. Though the current paper addresses deadlocks and starvation, we will show how the approach can be easily tailored to other concurrency issues. Our main motivations are 1) to devise solutions that are applicable in the context of the UML design of concurrent systems without requiring additional modeling and 2) to use a search technique to achieve scalable automation in terms of concurrency problem detection. To achieve the first objective, we show how all relevant concurrency information is extracted from systems' UML models that comply with the UML Modeling and Analysis of Real-Time and Embedded Systems (MARTE) profile. For the second objective, a tailored genetic algorithm is used to search for execution sequences exhibiting deadlock or starvation problems. Scalability in terms of problem detection is achieved by showing that the detection rates of our approach are, in general, high and are not strongly affected by large increases in the size of complex search spaces.

[1]  Christian Jacob,et al.  Illustrating Evolutionary Computation with Mathematica , 2001 .

[2]  Lionel C. Briand,et al.  A UML/SPT Model Analysis Methodology for Concurrent Systems Based on Genetic Algorithms , 2008, MoDELS.

[3]  Sébastien Gérard,et al.  An Execution Framework for MARTE-Based Models , 2008, 13th IEEE International Conference on Engineering of Complex Computer Systems (iceccs 2008).

[4]  Allen B. Downey,et al.  The Little Book of Semaphores , 2009 .

[5]  Anthony A. Maciejewski,et al.  A comparative study of five parallel genetic algorithms using the traveling salesman problem , 1998, Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.

[6]  Alexander Knapp,et al.  Model checking of UML 2.0 interactions , 2006, MoDELS'06.

[7]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[8]  Wasif Afzal,et al.  A Systematic Mapping Study on Non-Functional Search-based Software Testing , 2008, SEKE.

[9]  Sarfraz Khurshid,et al.  Exploring very large state spaces using genetic algorithms , 2004, International Journal on Software Tools for Technology Transfer.

[10]  Chang Wook Ahn,et al.  On the practical genetic algorithms , 2005, GECCO '05.

[11]  Joachim Stender,et al.  Parallel Genetic Algorithms: Introduction and Overview of Current Research , 1993 .

[12]  Colin Atkinson,et al.  A Flexible Infrastructure for Multilevel Language Engineering , 2009, IEEE Transactions on Software Engineering.

[13]  Stephan Merz An Introduction to Model Checking , 2010 .

[14]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[15]  John A. Clark,et al.  Integrating safety analysis with automatic test-data generation for software safety verification , 1999 .

[16]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[17]  Girish Keshav Palshikar Introduction to Model-checking , 2004 .

[18]  W. Visser,et al.  Second Generation of a Java Model Checker , 2000 .

[19]  Maria Luisa Villani,et al.  DELFIN+: An efficient deadlock detection tool for CCS processes , 2006, J. Comput. Syst. Sci..

[20]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[21]  Mourad Badri,et al.  Applying Model Checking to Concurrent UML Models , 2008, J. Object Technol..

[22]  Sébastien Gérard,et al.  First Experiments Using the UML Profile for MARTE , 2008, 2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC).

[23]  Bin Lei,et al.  UML Activity Diagram Based Testing of Java Concurrent Programs for Data Race and Inconsistency , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[24]  Michèle Sebag,et al.  Automatic graph drawing and Stochastic Hill Climbing , 1999 .

[25]  Stefan Leue,et al.  Trail-directed model checking , 2001, Workshop on Software Model Checking @ CAV.

[26]  Jean Bacon Concurrent Systems: Operating Systems, Database and Distributed Systems: An Integrated Approach , 1997 .

[27]  Kim G. Larsen,et al.  A Tutorial on Uppaal , 2004, SFM.

[28]  Wasif Afzal,et al.  A systematic review of search-based testing for non-functional system properties , 2009, Inf. Softw. Technol..

[29]  Sriram Sankaranarayanan,et al.  Fast and Accurate Static Data-Race Detection for Concurrent Programs , 2007, CAV.

[30]  Gregory Brill CodeNotes for Java: Intermediate and Advanced Language Features , 2002 .

[31]  Hélène Waeselynck,et al.  Property-Oriented Testing based on Simulated Annealing , 2002 .

[32]  Thomas Bck,et al.  Self-adaptation in genetic algorithms , 1991 .

[33]  F. Schneider UML and Model Checking , 1999 .

[34]  Martín Abadi,et al.  Types for safe locking: Static race detection for Java , 2006, TOPL.

[35]  Hassan Gomaa,et al.  Designing concurrent, distributed, and real-time applications with UML , 2000, ICSE.

[36]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[37]  Jessica Andrea Carballido,et al.  On Stopping Criteria for Genetic Algorithms , 2004, SBIA.

[38]  Enrique Alba,et al.  Finding safety errors with ACO , 2007, GECCO '07.

[39]  Jan Wen Voung,et al.  Dataflow analysis for concurrent programs using datarace detection , 2008, PLDI '08.

[40]  Roger Duke,et al.  A UML approach to the generation of test sequences for Java-based concurrent systems , 2005, 2005 Australian Software Engineering Conference.

[41]  Stephen N. Freund,et al.  Type-based race detection for Java , 2000, PLDI '00.

[42]  Lionel C. Briand,et al.  A Systematic Review of the Application and Empirical Investigation of Search-Based Test Case Generation , 2010, IEEE Transactions on Software Engineering.

[43]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.