The Community for Technology Leaders
Green Image
Issue No. 02 - March-April (2012 vol. 38)
ISSN: 0098-5589
pp: 354-374
Marwa Shousha , Carleton University, Ottawa
Yvan Labiche , Carleton University, Ottawa
Lionel C. Briand , Simula Research Laboratory, Lysaker and University of Oslo, Norway
ABSTRACT
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.
INDEX TERMS
Search-based software engineering, MDD, deadlock, starvation, model analysis, concurrent systems, UML, MARTE, genetic algorithms.
CITATION
Marwa Shousha, Yvan Labiche, Lionel C. Briand, "A UML/MARTE Model Analysis Method for Uncovering Scenarios Leading to Starvation and Deadlocks in Concurrent Systems", IEEE Transactions on Software Engineering, vol. 38, no. , pp. 354-374, March-April 2012, doi:10.1109/TSE.2010.107
90 ms
(Ver )