Skip to main content

Architecture-Based Code Generation: From π-ADL Architecture Descriptions to Implementations in the Go Language

  • Conference paper
Software Architecture (ECSA 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8627))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Clements, P.: A survey of architecture description languages. In: 8th International Workshop on Software Specification and Design (IWSSD 1996), pp. 16–25. IEEE Computer Society, USA (1996)

    Chapter  Google Scholar 

  2. Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26(1), 70–93 (2000)

    Article  Google Scholar 

  3. The Go Programming Language, http://golang.org

  4. Oquendo, F.: π-ADL: An architecture description language based on the higher-order typed-calculus for specifying dynamic and mobile software architectures. ACM SIGSOFT Software Engineering Notes 29(3), 1–14 (2004)

    Article  Google Scholar 

  5. Milner, R.: Communicating and mobile systems: The π-calculus. Cambridge University Press, USA (1999)

    Google Scholar 

  6. Oquendo, F., Warboys, B.C., Morrison, R., Dindeleux, R., Gallo, F., Garavel, H., Occhipinti, C.: archWare: Architecting evolvable software. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, pp. 257–271. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  7. Hoare, C.A.R.: Communicating sequential processes. Communications of the ACM 21(8), 666–677 (1978)

    Article  MATH  MathSciNet  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 

  12. Xtext, http://www.eclipse.org/Xtext/

  13. Xtend, https://www.eclipse.org/xtend/

  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 

  15. Hughes, D., Ueyama, J., Mendiondo, E., Matthys, N., Horré, W., Michiels, S., Huygens, C., Joosen, W., Man, K.L., Guan, S.U.: A middleware platform to support river monitoring using wireless sensor networks. Journal of the Brazilian Computer Society 17, 85–102 (2011)

    Article  Google Scholar 

  16. Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering 21(4), 314–335 (1995)

    Article  Google Scholar 

  17. Medvidovic, N., Rosenblum, D.S., Taylor, R.S.: A language and environment for architecture-based software development and evolution. In: 21st International Conference on Software Engineering (ICSE 1999), pp. 44–53. ACM, USA (1999)

    Chapter  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 

  19. Aldrich, J., Notkin, D.: Architectural reasoning in archJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 334–367. Springer, Heidelberg (2002)

    Chapter  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Cavalcante, E., Oquendo, F., Batista, T. (2014). Architecture-Based Code Generation: From π-ADL Architecture Descriptions to Implementations in the Go Language. In: Avgeriou, P., Zdun, U. (eds) Software Architecture. ECSA 2014. Lecture Notes in Computer Science, vol 8627. Springer, Cham. https://doi.org/10.1007/978-3-319-09970-5_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-09970-5_13

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-09969-9

  • Online ISBN: 978-3-319-09970-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics