Abstract
Application frameworks aim to provide coherent code to be used and reused. The primary benefits of application frameworks stem from the modularity, reusability, extensibility, and inversion of control they provide to developers. Yet, as these frameworks become more extensive and complex, their usage becomes a burden and requires further effort. In this chapter we adopt the Application-based DOmain Modeling (ADOM), a domain engineering approach offering guidance and validation for developers when using existing knowledge, as in the case of application frameworks. The approach is adopted in the context of a programming language and demonstrated with the use of Java and is thus denoted as ADOM-JAVA. The approach preserves the regular development environment and requires minimal adaptation for using the proposed approach. We also demonstrate the use of ADOM-JAVA as a vehicle for defining and using domain-specific languages. Finally, we evaluate the use of ADOM when applied to a Java-based development. Following the guidance and validation capabilities provided by the proposed approach, the experiment shows that the productivity of the developers in terms of time and quality is expected to increase.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
In this work we use the Java Annotation called @Java [4].
References
Ali, Z., Bolinger, J., Herold, M., Lynch, T., Ramanathan, J., Ramnath, R.: Teaching object-oriented software design within the context of software frameworks. In: Frontiers in Education Conference (FIE), pp. S3G-1–S3G-5. IEEE, Washington, DC (2011)
Becker, J., Janiesch, C., Pfeiffer, D.: Reuse mechanisms in situational method engineering. In: Ralyte, J., Brinkkemper, S., Henderson-Sellers, B. (eds.) Situational Method Engineering: Fundamentals and Experiences. Springer, Boston (2007)
vom Brocke, J.: Design principles for reference modelling—reusing information models by means of aggregation, specialisation, instantiation, and analogy. In: Fettke, L. (ed.) Reference Modeling for Business Systems Analysis, pp. 47–75. Idea Group Publishing, Hershey (2007)
Cazzola, W.: @Java: A Java Annotation extension. http://cazzola.di.unimi.it/atjava.html. Last accessed April 2013
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley Professional, Boston (2001)
Czarnecki, K., Eisenecker, U.W.: Generative Programming—Methods, Tools, and Applications. Addison-Wesley, Boston (2000)
Czarnecki, K.: Overview of generative software development. In: Proceedings of the European Commission and US National Science Foundation Strategic Research Workshop on Unconventional Programming Paradigms, France (2004)
Fayad, M., Schmidt, D.C.: Object-oriented application frameworks. Commun. ACM 40(10), 32–38 (1997)
Fayad, M., Schmidt, D.C., Johnson, R.: Implementing Application Frameworks: Object-Oriented Frameworks at Work, 1st edn. Wiley, New York (1999)
Fayad, M., Johnson, R.: Domain-Specific Application Frameworks. Wiley, New York (2000)
Fowler, M.: Domain-Specific Languages. Addison-Wesley Professional, Boston (2010)
Freeman, S., Pryce, N.: Evolving an embedded domain-specific language in Java. In: Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications, pp. 855–865. ACM, New York (2006)
Harsu, M.: A survey on domain engineering. Report 31, Institute of Software Systems, Tampere University of Technology (2002)
ISO 9126.: ISO/IEC TR 9126-software engineering, product quality, quality model. International Organization for Standardization, Geneva (2001)
Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture, Process and Organization for Business Success. ACM, New York (1997)
Jones, C.: Estimating Software Costs. McGraw-Hill, New York (2007)
Kabanov, J., Raudjärv, R.: Embedded typesafe domain specific languages for Java. In: Proceedings of the 6th International Symposium on Principles and Practice of Programming in Java, pp 189–197. ACM, New York (2008)
Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, New Jersey (2008)
Kieburtz, R.B., McKinney, L., Bell, J.M., Hook, J., Kotov, A., Lewis, J., Oliva, D.P., Sheard, T., Smith, I., Walton, L.: A software engineering experiment in software component generation. In: Proceedings of the 18th International Conference on Software Engineering, pp. 542–552. IEEE Computer Society, Washington, DC (1996)
Lowell, A.J.: Programmer Productivity: Myths, Methods, and Murphology. A Guide for Managers, Analysts, and Programmers. Wiley, New York (1983)
Mernik, M., Heering, J., Sloane, A.M.: When and how to develop domain-specific languages. ACM Comput. Survev. 37(4), 316–344 (2005)
Polancic, G., Hericko, M., Pavlic, L.: An empirical examination of application frameworks success based on technology acceptance model. J. Syst. Softw. 83, 574–584 (2010)
Polancic, G., Hericko, M., Pavlic, L.: Developers’ perceptions of object-oriented frameworks—an investigation into the impact of technological and individual characteristics. Comput. Hum. Behav. 27, 730–740 (2011)
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, New York (2005)
Reinhartz-Berger, I., Sturm, A.: Enhancing UML models: a domain analysis approach. J. Database. Manag. 19(1), 74–94 (2008). Special issue on UML Topics
Reinhartz-Berger, I., Sturm, A.: Utilizing domain models for application design and validation. Info. Software. Technol. 51(8), 1275–1289 (2009)
Tilab.: JADE—Java Agent DEvelopment Framework. http://jade.tilab.com/index.html. Last accessed April 2013
Weiss, D.M., Tau, C., Lai, R.: Software Product Line Engineering: A Family-Based Software Development Process. Addison-Wesley, Boston (1999)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Sturm, A., Kramer, O. (2013). Utilizing Application Frameworks: A Domain Engineering Approach. In: Reinhartz-Berger, I., Sturm, A., Clark, T., Cohen, S., Bettin, J. (eds) Domain Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36654-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-36654-3_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-36653-6
Online ISBN: 978-3-642-36654-3
eBook Packages: Computer ScienceComputer Science (R0)