Abstract
The earlier concurrency problems are identified, the less costly they are to fix. As larger, more complex concurrent systems are developed, early detection of problems is made increasingly difficult. We have developed a general approach meant to be used in the context of Model Driven Development. Our approach is based on the analysis of design models expressed in the Unified Modeling Language (UML) and uses specifically designed genetic algorithms to detect concurrency problems. Our main motivation is to devise practical solutions that are applicable in the context of UML design of concurrent systems without requiring additional modeling. All relevant concurrency information is extracted from UML models that comply with the UML Modeling and Analysis of Real-Time and Embedded Systems (MARTE) profile. Our approach was shown to work for both deadlocks and starvation. The current paper addresses data race detection, further illustrating how our approach can be tailored to other concurrency issues. Results on a case study inspired from the Therac-25 radiation machine show that our approach is effective in the detection of data races.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Chen, L.: The Challenge of Race Conditions in Parallel Programming. Sun Developer Network, Sun Microsystems, http://developers.sun.com/solaris/articles/raceconditions.html
Lei, B., Wang, L., Li, X.: UML Activity Diagram Based Testing of Java Concurrent Programs for Data Race and Inconsistency. In: 1st International Conference on Software Testing, Verification and Validation, pp. 200–209. IEEE Press, Los Alamitos (2008)
Petriu, D.C.: Performance analysis with the SPT profile. In: Gerard, S., Babau, J., Champeau, J. (eds.) Model-Driven Engineering of Distributed and Embedded Systems, pp. 205–224. Wiley-ISTE (2005)
Leveson, N.: Safeware: System Safety and Computers. Addison-Wesley, Reading (1995)
Demathieu, S., Thomas, F., Andre, C., Gerard, S., Terrier, F.: First experiments using the UML profile for MARTE. In: 11th IEEE International Symposium on Object Oriented Real-Time Distributed Computing, pp. 50–57. The Printing House (2008)
Mradiha, C., Tanguy, Y., Jouvray, C., Terrier, F., Gerard, S.: An execution framework for MARTE-based models. In: 13th IEEE International Conference on Engineering of Complex Computer Systems, pp. 222–227. The Printing House (2008)
Downey, A.B.: The Little Book of Semaphores, 2nd edn. Green Tea Press (2005)
Flanagan, C., Freund, S.N.: Type-Based Race Detection for Java. ACM SIGPLAN Notices 35(5), 219–232 (2000)
Flanagan, C., Rustan, K., Leino, M., Lillibridge, M., Nelson, G., Saxe, J.B., Stata, R.: Extended Static Checker for Java. ACM SIGPLAN Notices 37(5), 234–245 (2002)
Haupt, R.L., Haupt, S.E.: Practical genetic algorithms. Wiley, Chichester (1998)
Abadi, M., Flanagan, C., Freund, S.N.: Types for Safe Locking: Static Race Detection for Java. ACM TOPLAS 28(2), 207–255 (2006)
OMG: Unified Modeling Language (UML). Version 2.1.2, http://www.omg.org/cgi-bin/doc?formal/09-02-02.pdf
Shousha, M., Briand, L.C., Labiche, Y.: A UML/MARTE Model Analysis Methodology for Detection of Starvation and Deadlocks in Concurrent Systems. Technical Report SCE-09-01. Carleton University, Canada (2009)
Kahlon, V., Yang, Y., Sankaranarayanan, S., Gupta, A.: Fast and Accurate Static Data-Race Detection for Concurrent Programs. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 226–239. Springer, Heidelberg (2007)
Kleppe, A., Warmer, J., Bast, W.: MDA Explained - The Model Driven Architecture: Practice and Promise. Addison-Wesley, Reading (2003)
Back, T.: Self-adaptation in genetic algorithms. In: Proceedings of European Conference on Artificial Life, pp. 263–271. MIT Press, Cambridge (1992)
Mahfoud, S.W., Goldberg, D.E.: Parallel recombinative simulated annealing: a genetic algorithm. Parallel Computing 21(1), 1–28 (1995)
Koza, J.R.: Genetic programming: on the programming of computers by means of natural selection. MIT Press, Cambridge (1992)
OMG: UML Profile for Modeling and Analysis of Real-time and Embedded Systems, http://www.omg.org/cgi-bin/apps/doc?ptc/08-06-08.pdf
Chugh, R., Voung, J.W., Jhala, R., Lerner, S.: Dataflow Analysis for Concurrent Programs Using Datarace Detection. In: ACM PLDI, pp. 316–326. ACM, New York (2008)
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM TOCS 15(4), 391–411 (1997)
Brat, G., Havelund, K., Park, S., Visser, W.: Java Pathfinder Second Generation of a Java Model Checker. In: Proceedings of Workshop on Advances in Verification (2000)
Shousha, M., Briand, L., Labiche, Y.: A UML/SPT model analysis methodology for concurrent systems based on genetic algorithms. In: Czarnecki, K., Ober, I., Bruel, J.-M., Uhl, A., Völter, M. (eds.) MODELS 2008. LNCS, vol. 5301, pp. 475–489. Springer, Heidelberg (2008)
OMG: UML Profile for Schedulability, Performance and Time Specification, http://www.omg.org/docs/formal/05-01-02.pdf
Ali, S., Briand, L.C., Hemmati, H., Panesar-Walawege, R.K.: A Systematic Review of the Application and Empirical Investigation of Search-based Test-Case Generation. Technical Report Simula. SE. 293. Simula Research Laboratory, Norway (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Shousha, M., Briand, L.C., Labiche, Y. (2009). A UML/MARTE Model Analysis Method for Detection of Data Races in Concurrent Systems. In: Schürr, A., Selic, B. (eds) Model Driven Engineering Languages and Systems. MODELS 2009. Lecture Notes in Computer Science, vol 5795. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04425-0_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-04425-0_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-04424-3
Online ISBN: 978-3-642-04425-0
eBook Packages: Computer ScienceComputer Science (R0)