Abstract
Architectural descriptions can provide support for a formal representation of the structure and the overall behavior of software systems, which is suitable for an early assessment of the system properties as well as for the automated generation of code. The problem addressed in this paper is to what extent the properties verified at the architectural level can be preserved during the code generation process for multithreaded programs. In order to limit the human intervention, we propose to separate the thread synchronization management from the thread behavior translation. While a completely automated and architecture-driven approach can guarantee the correct thread coordination, we show that only a partial translation based on stubs is possible for the behavior of the threads, with the preservation of the architectural properties depending on the way in which the stubs are filled in.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aldini, A., Bernardo, M.: On the Usability of Process Algebra: An Architectural View. Theoretical Computer Science(to appear)
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation. In: Proc. of the 24th Int. Conf. on Software Engineering (ICSE 2002), Orlando (FL), pp. 187–197. IEEE-CS Press, Los Alamitos (2002)
Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Trans. on Software Engineering and Methodology 6, 213–249 (1997)
Bernardo, M., Bont‘a, E.: Generating Well-Synchronized Multithreaded Programs from Software Architecture Descriptions. In: Proc. of the 4th Working IEEE/IFIP Conf. on Software Architecture (WICSA 2004), Oslo (Norway), pp. 167–176. IEEE-CS Press, Los Alamitos (2004)
Bernardo, M., Ciancarini, P., Donatiello, L.: Architecting Families of Software Systems with Process Algebras. ACM Trans. on Software Engineering and Methodology 11, 386–426 (2002)
Canal, C., Pimentel, E., Troya, J.M.: Compatibility and Inheritance in Software Architectures. Science of Computer Programming 41, 105–138 (2001)
Garlan, D.: Formal Modeling and Analysis of Software Architectures: Components, Connectors, and Events. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, pp. 1–24. Springer, Heidelberg (2003)
Guimarães, R., Borelli, W.: An Automatic Java Code Generation Tool for Telecom Distributed Systems. In: Proc. of the Int. Conf. on Software, Telecommunications and Computer Networks (SOFTCOM 2002), Split, Croatia (2002)
Inverardi, P., Uchitel, S.: Proving Deadlock Freedom in Component-Based Programming. In: Hussmann, H. (ed.) FASE 2001. LNCS, vol. 2029, pp. 60–75. Springer, Heidelberg (2001)
Inverardi, P., Wolf, A.L., Yankelevich, D.: Static Checking of System Behaviors Using Derived Component Assumptions. ACM Trans. on Software Engineering and Methodology 9, 239–272 (2000)
Magee, J., Kramer, J.: Concurrency: State Models & Java Programs. Wiley, Chichester (1999)
Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A Language and Environment for Architecture-Based Software Development and Evolution. In: Proc. of the 21st Int. Conf. on Software Engineering (ICSE 1999), Los Angeles (CA), pp. 44–53. IEEE-CS Press, Los Alamitos (1999)
Milner, R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1989)
Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, Englewood Cliffs (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bernardo, M., Bontà, E. (2005). Preserving Architectural Properties in Multithreaded Code Generation. In: Jacquet, JM., Picco, G.P. (eds) Coordination Models and Languages. COORDINATION 2005. Lecture Notes in Computer Science, vol 3454. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11417019_13
Download citation
DOI: https://doi.org/10.1007/11417019_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-25630-4
Online ISBN: 978-3-540-32006-7
eBook Packages: Computer ScienceComputer Science (R0)