A Domain Specific Language for Stepwise Design of Software Architectures

Fabian Gilson, Vincent Englebert


Stakeholders have to face requirements in increasing number and complexity. Their translations to system functionalities are often diluted into the overall architecture so that it becomes tricky to undertake future changes. Since information systems are intended to evolve in terms of functionalities and underlying technologies, the link between requirements and design artifacts is primordial. Agile design methods and documentation techniques have emerged in the past years in order to deal with the amount of requirements and to trace the decision process and the rationale sustaining a software model. Also, it is not unusual that numerous technologies with similar purpose are confronted to each other during the design phase. In the present work, we propose an integrated framework combining system requirement definitions, a component-based modeling language and model transformations. Architecturally-significant requirements are explicitly linked to software architecture elements and iteratively refined or implemented by model transformations. Any transformation must be documented, even briefly, and the framework retains the transformations tree. This way, the iterative decision and design processes are completely documented for future reference or modification, i.e, designers can (i) see the mapping between a system requirement and its implementation in the architecture model, (ii) explore design alternatives or apply structural modifications without losing previous versions of the model, and finally (iii), depending on the level of documentation, at least understand partially the reasons why the model is how it is.


  1. Alexander, I. F. and Stevens, R. (2002). Writing Better Requirements. Addison-Wesley.
  2. Bosch, J. and Molin, P. (1999). Software architecture design: Evaluation and transformation. IEEE Int. Conf. on the Engineering of Computer-based Systems, pages 4-10.
  3. Clements, P. C. and Bass, L. (2010). Relating business goals to architecturally significant requirements for software systems. Technical Report CMU/SEI-2010- TN-018, Soft. Eng. Institute, Carnegie Mellon University.
  4. de Boer, R. C. and van Vliet, H. (2009). On the similarity between requirements and architecture. J. Syst. Softw., 82(3):544 - 550.
  5. Gilson, F. and Englebert, V. (2011a). Rationale, decisions and alternatives traceability for architecture design. In Proc. of the 5th European Conf. on Software Architecture, Companion Volume, page 4. ACM.
  6. Gilson, F. and Englebert, V. (2011b). Towards handling architecture design, variability and evolution with model transformations. In Proc. of the 5th Workshop on Variability Modeling of Software-Intensive Systems, pages 39-48. ACM.
  7. Guerra, E., Lara, J., Kolovos, D. S., Paige, R. F., and Santos, O. (2013). Engineering model transformations with transml. Software & Systems Modeling, 12(3):555- 577.
  8. Hofmeister, C., Kruchten, P., Nord, R. L., Obbink, H., Ran, A., and America, P. (2007). A general model of software architecture design derived from five industrial approaches. Journal of Systems and Software, 80(1):106 - 126.
  9. Jansen, A., Avgeriou, P., and van der Ven, J. S. (2009). Enriching software architecture documentation. J. Syst. Softw., 82:1232-1248.
  10. Jansen, A. and Bosch, J. (2005). Software architecture as a set of architectural design decisions. In Proc. of the 5th Working IEEE/IFIP Conf. on Software Architecture, pages 109-120, Washington, DC, USA. IEEE Computer Society.
  11. Kazman, R., Klein, M., and Clements, P. (2000). ATAM: method for architecture evaluation. Technical Report CMU/SEI-2000-TR-004, Soft. Eng. Institute, Carnegie Mellon University.
  12. Kruchten, P. (2004). Rational Unified Process: An Introduction. Addison Wesley Professional, 3rd edition edition.
  13. Kruchten, P., Lago, P., and Vliet, H. V. (2006). Building up and reasoning about architectural knowledge. In Proc. of the 2nd Int. Conf. on the Quality if Software Architectures, pages 43-58.
  14. Malek, S., Medvidovic, N., and Mikic-Rakic, M. (2012). An extensible framework for improving a distributed software system's deployment architecture. Software Engineering, IEEE Transactions on, 38(1):73-100.
  15. Matinlassi, M. (2006). Quality-driven software architecture model transformation: Towards automation. PhD thesis, ESPOO: VTT technical Research Centre of Finland. VTT Publications 608.
  16. Mavin, A. and Wilkinson, P. (2010). Big ears (the return of ”easy approach to requirements engineering”). In Proc. of the 18th IEEE Int. Requirements Engineering Conf., pages 277-282.
  17. Object Management Group (2010). OMG Systems Modeling Language, version 1.2.
  18. Perovich, D., Bastarríca, M. C., and Rojas, C. (2009). Model-driven approach to software architecture design. In ICSE Workshop on Sharing and Reusing Architectural Knowledge, pages 1-8.
  19. Potts, C. and Bruns, G. (1988). Recording the reasons for design decisions. In Proc. of the 10th Int. Conf. on Software Engineering, pages 418 -427.
  20. Rutle, A., Rossini, A., Lamo, Y., and Wolter, U. (2009). A category-theoretical approach to the formalisation of version control in mde. In Fundamental Approaches to Software Engineering, volume 5503 of Lecture Notes in Computer Science, pages 64-78. Springer Berlin Heidelberg.
  21. Tang, A., Babar, M. A., Gorton, I., and Han, J. (2006). A survey of architecture design rationale. J. Syst. Softw., 79(12):1792 - 1804.
  22. Tang, A., Jin, Y., and Han, J. (2007). A rationale-based architecture model for design traceability and reasoning. J. Syst. Softw., 80(6):918-934.
  23. Tekinerdogan, B., O zturk, K., and Dogru, A. (2011). Modeling and reasoning about design alternatives of software as a service architectures. In Proc. of the 9th Working IEEE/IFIP Conf. on Software Architecture, pages 312-319.
  24. Tyree, J. and Akerman, A. (2005). Architecture decisions: Demystifying architecture. IEEE Software, 22:19-27.
  25. Watkins, R. and Neal, M. (1994). Why and How of Requirements Tracing. IEEE Software, 11:104-106.
  26. Wojcik, R., Bachmann, F., Bass, L., Clements, P., Merson, P., Nord, R., and Wood, B. (2006). Attributedriven design (ADD), version 2.0. Technical Report CMU/SEI-2006-TR-023, Soft. Eng. Institute, Carnegie Mellon University.
  27. Zhang, Y., Luo, X., Li, J., and Buis, J. J. (2013). A semantic representation model for design rationale of products. Advanced Engineering Informatics, 27(1):13 - 26.
  28. Zimmermann, O., Koehler, J., Leymann, F., Polley, R., and Schuster, N. (2009). Managing architectural decision models with dependency relations, integrity constraints, and production rules. J. Syst. Softw., 82(8):1249-1267.

Paper Citation

in Harvard Style

Gilson F. and Englebert V. (2014). A Domain Specific Language for Stepwise Design of Software Architectures . In Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD, ISBN 978-989-758-007-9, pages 67-78. DOI: 10.5220/0004709700670078

in Bibtex Style

author={Fabian Gilson and Vincent Englebert},
title={A Domain Specific Language for Stepwise Design of Software Architectures},
booktitle={Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,},

in EndNote Style

JO - Proceedings of the 2nd International Conference on Model-Driven Engineering and Software Development - Volume 1: MODELSWARD,
TI - A Domain Specific Language for Stepwise Design of Software Architectures
SN - 978-989-758-007-9
AU - Gilson F.
AU - Englebert V.
PY - 2014
SP - 67
EP - 78
DO - 10.5220/0004709700670078