Architecture-Based Code Generation: From π-ADL Architecture Descriptions to Implementations in the Go Language
Architecture description languages (ADLs) should consider both structural and runtime perspectives of software architectures, an important requirement for current software systems. However, most existing ADLs are disconnected from the runtime level, thus entailing architectural mismatches and inconsistencies between architecture and implementation. With the emergence of the new generation programming languages for large-scale, dynamic, and distributed systems, this problem becomes worse since most existing ADLs do not capture the features of this type of language. In this context, we investigate the generation of source code in the Go programming language from architecture descriptions in the π-ADL language as they are both based on the π-calculus process algebra. We define the correspondences between π-ADL and Go elements and present how architecture descriptions in π-ADL can be automatically translated to their respective implementations in Go through a real-world flood monitoring system.
KeywordsSoftware architectures Architecture description languages π-ADL Programming languages Mapping Implementation Go
Unable to display preview. Download preview PDF.
- 3.The Go Programming Language, http://golang.org
- 5.Milner, R.: Communicating and mobile systems: The π-calculus. Cambridge University Press, USA (1999)Google Scholar
- 8.Oquendo, F.: Tutorial on ArchWare ADL – Version 2 (π-ADL Tutorial). Technical report, ArchWare Consortium (2005)Google Scholar
- 9.The Go Programming Language Specification, http://golang.org/ref/spec
- 10.Go Runtime Environment – Google App Engine, http://developers.google.com/appengine/docs/go/
- 11.Balbaert, I.: The way to Go: A thorough introduction to the Go programming language. iUniverse, USA (2012)Google Scholar
- 14.Ueyama, J., Hughes, D.R., Matthys, N., Horré, W., Joosen, W., Huygens, C., Michiels, S.: An event-based component model for wireless sensor networks: A case study for river monitoring. In: 28th Brazilian Symposium on Computer Networks and Distributed Systems (SBRC 2010), pp. 997–1004. SBC, Brazil (2010)Google Scholar
- 18.Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: 24th International Conference on Software Engineering (ICSE 2002), pp. 187–197. ACM/IEEE Computer Society, USA (2002)Google Scholar
- 20.Qayyum, Z.: Realization of software architectures using a formal language: Towards languages dedicated to formal development based on π-ADL. Ph.D. Thesis, Université de Bretagne-Sud, France (2009)Google Scholar
- 21.Nguyen, P.H.: Quantitative analysis of model transformations. Master Thesis, Technische Universiteit Eindhoven, The Netherlands (2010)Google Scholar