This Article 
 Bibliographic References 
 Add to: 
Frameworks Generate Domain-Specific Languages: A Case Study in the Multimedia Domain
July/August 2011 (vol. 37 no. 4)
pp. 544-558
Xavier Amatriain, Telefonica Research, Barcelona, Spain
Pau Arumi, Universitat Pompeu Fabra, Barcelona, Spain
We present an approach to software framework development that includes the generation of domain-specific languages (DSLs) and pattern languages as goals for the process. Our model is made of three workflows—framework, metamodel, and patterns—and three phases—inception, construction, and formalization. The main conclusion is that when developing a framework, we can produce with minimal overhead—almost as a side effect—a metamodel with an associated DSL and a pattern language. Both outputs will not only help the framework evolve in the right direction, but will also be valuable in themselves. In order to illustrate these ideas, we present a case study in the multimedia domain. For several years, we have been developing a multimedia framework. The process has produced a full-fledged domain-specific metamodel for the multimedia domain, with an associated DSL and a pattern language.

[1] M. Aksit, F. Marcelloni, and B. Tekinerdogan, "Developing Object-Oriented Frameworks Using Domain Models," ACM Computing Surveys, p. 11, 2000.
[2] C. Alexander, The Timeless Way of Building. Oxford Univ. Press, 1979.
[3] X. Amatriain, "Clam: A Framework for Audio and Music Application Development," IEEE Software, vol. 24, no. 1, pp. 82-85, Jan./Feb. 2007.
[4] X. Amatriain, "A Domain-Specific Metamodel for Multimedia Processing Systems," IEEE Trans. Multimedia, vol. 9, no. 6, pp. 1284-1298, Oct. 2007.
[5] X. Amatriain, P. Arumi, and G.D., "A Framework for Efficient and Rapid Development of Cross-Platform Audio Applications," ACM Multimedia Systems, vol. 14, no. 1, pp. 15-32, 2008.
[6] S.W. Ambler, "Agile Model Driven Development Is Good Enough," IEEE Software, vol. 20, no. 5, pp. 71-73, Sept./Oct. 2003.
[7] G. Arango, "A Brief Introduction to Domain Analysis," Proc. ACM Symp. Applied Computing, pp. 42-46, 1994.
[8] P. Arumi and X. Amatriain, "Time-Triggered Static Schedulable Dataflows for Multimedia Systems," Proc. Multimedia Computing and Networking Conf., 2009.
[9] P. Arumi, D. Garcia, and X. Amatriain, "A Dataflow Pattern Language for Sound and Music Computing," Proc. Pattern Languages of Programming Conf., 2006.
[10] P. Arumi, D. Garcia, T. Mateos, A. Garriga, and J. Durany, "Real-Time 3D Audio for Digital Cinema," J. Acoustical Soc. Am., vol. 123, no. 5, p. 3937, 2008.
[11] K. Beck and R. Johnson, "Patterns Generate Architectures," Proc. Eighth European Conf. Object-Oriented Programming, 1994.
[12] D. Bonachea, K. Fisher, A. Rogers, and F. Smith, "Hancock: A Language for Processing Very Large-Scale Data," Proc. Second Conf. Domain-Specific Languages, pp. 163-176, 1999.
[13] J. Bosch, M. Molin, M. Mattson, and P. Bengtsson, "Object-Oriented Frameworks: Problems & Experiences," Building Application Frameworks, John Wiley and Sons, 1999.
[14] F. Buschman, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, Pattern-Oriented Software Architecture—A System of Patterns. John Wiley & Sons, 1996.
[15] J. Cleaveland, "Building Application Generators," IEEE Software, vol. 5, no. 4, pp. 25-33, July 1988.
[16] S. Cook, "Domain-Specific Modeling and Model-Driven Architecture," J. Model-Driven Architecture, pp. 2-10, Jan. 2004.
[17] T.R.G. Green and M. Petre, "Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework," J. Visual Languages and Computing, vol. 7, no. 2, pp. 131-174, 1996.
[18] P. Hudak, "Building Domain-Specific Embedded Languages," ACM Computing Surveys, vol. 28, 1996.
[19] E.E. Jacobsen, B.B. Kristensen, and P. Nowack, "Characterising Patterns in Framework Development," Proc. 25th Int'l Conf. Technology of Object-Oriented Languages and Systems, 1997.
[20] R.E. Johnson, "Documenting Frameworks with Patterns," Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, 1992.
[21] R.E. Johnson and J. Foote, "Designing Reusable Classes," J. Object Oriented Programming, vol. 1, no. 2, pp. 22-35, June/July 1988.
[22] C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, second ed. Prentice Hall PTR, July 2001.
[23] E. Lee and T. Parks, "Dataflow Process Networks," Proc. IEEE, vol. 83, pp. 773-799, May 1995.
[24] D.A. Manolescu, "A Dataflow Pattern Language," Proc. Fourth Pattern Languages of Programming Conf., 1997.
[25] S.J. Meller, A.M. Clark, and T. Futagami, "Model Driven Development," IEEE Software, vol. 20, no. 5, pp. 14-18, Sept./Oct. 2003.
[26] M. Mernik, J. Heering, and A.M. Sloane, "When and How to Develop Domain-Specific Languages," ACM Computing Surveys, vol. 37, no. 4, pp. 316-344, 2005.
[27] W. Pree, Design Patterns for Object-Oriented Software Development. Addison-Wesley, 1995.
[28] D. Roberts and R. Johnson, "Evolve Frameworks into Domain-Specific Languages," Proc. Third Int'l Conf. Pattern Languages for Programming, Sept. 1996.
[29] D. Roberts and R. Johnson, "Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks," Proc. Third Conf. Pattern Languages and Programming, vol. 3, 1996.
[30] L. Sesera, "Hierarchical Patterns: A Way to Organize (Analysis) Patterns," J. Systemics, Cybernetics, and Informatics, vol. 3, no. 4 pp. 37-40, 2005.
[31] A. van Deursen, "Domain-Specific Languages versus Object-Oriented Frameworks: A Financial Engineering Case Study," Proc. Conf. Smalltalk and Java in Industry and Academia, pp. 35-39, 1997.
[32] A. van Deursen, P. Klint, and J. Visser, "Domain-Specific Languages: An Annotated Bibliography," ACM SIGPLAN Notices, vol. 35, no. 6, pp. 26-36, 2000.
[33] J. Wang, X. Amatriain, and D. Garcia, "Multilevel Audio Description," Proc. World Wide Web Conf., 2009.
[34] D. West, "Metaphor, Architecture and XP," Proc. XP Conf., 2002.
[35] S. Yacoub and H. Ammar, Pattern-Oriented Analysis and Design: Composing Patterns to Design Software Systems. Addison-Wesley Longman Publishing Co., 2003.
[36] S. Zachariadis, C. Mascolo, and W. Emmerich, "The Satin Component System—A Metamodel for Engineering Adaptable Mobile Systems," IEEE Trans. Software Eng., vol. 32, no. 11, pp. 910-927, Nov. 2006.
[37] M. Zelkowitz and D. Wallace, "Experimental Validation in Software Engineering," Information and Software Technology, vol. 39, no. 11, pp. 735-743, Nov. 1997.

Index Terms:
Domain-specific architectures, visual programming, life cycle, CASE.
Xavier Amatriain, Pau Arumi, "Frameworks Generate Domain-Specific Languages: A Case Study in the Multimedia Domain," IEEE Transactions on Software Engineering, vol. 37, no. 4, pp. 544-558, July-Aug. 2011, doi:10.1109/TSE.2010.48
Usage of this product signifies your acceptance of the Terms of Use.