A Domain Specific Language for Lessening the Effort Needed to Instantiate Applications Using GRENJ Framework
Resumo
GRENJ is a white-box framework implemented in Java. White-box frameworks are reusable designs composed of a set of concrete and abstract classes so that the collaboration among these classes provides support for large-scale reuse of design and source code. However, instantiating applications by using this sort of framework is quite complex and demands detailed architectural knowledge. In order to lessen the amount of source code, effort, and expertise required to instantiate applications by using GRENJ framework, we have developed a domain specific language that manages all application instantiation issues systematically. This domain specific language facilitates the application instantiation process by acting as a facade over GRENJ framework as well as providing the user with a more concise, human-readable syntax than Java. In this paper, we contrast the major differences and benefits resulting from instantiating applications solely using GRENJ framework and indirectly reusing its source code by applying our domain specific language.
Referências
Braga, R. T. V. and Masiero, P. C. (2002). The Role of Pattern Languages in the Instantiation of Object-Oriented Frameworks. In Advances in Object-Oriented Information Systems, pages 403–410. Springerlink.
Brugali, D. and Sycara, K. (2000). Frameworks and pattern languages: an intriguing relationship. ACM Computing Surveys, 32.
Durelli, V. H. S. (2008). GRENJ: um framework obtido por um processo iterativo de reengenharia aplicando TDD. master thesis, UFSCar/DC, São Carlos - SP.
Fayad, M. E., Johnson, R. E., and Schmidt, D. C. (1999). Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley & Sons.
Flanagan, D. and Matsumoto, Y. (2008). The Ruby Programming Language. O’Reilly Media, Inc.
Fontoura, M., Braga, C., Moura, L., and Lucena, C. (2000). Using domain specific languages to instantiate object-oriented frameworks. IEE Proceedings – Software,147(4):109–116.
Fowler, M. (2009). A Pedagogical Framework for Domain-Specific Languages. IEEE Software, 26(4):13–14.
Gangopadhyay, D. and Mitra, S. (1995). Understanding frameworks by exploration of exemplars. International Workshop on Computer-Aided Software Engineering.
Johnson, R. E. (1992). Documenting frameworks using patterns. In OOPSLA ’92: conference proceedings on Object-oriented programming systems, languages, and applications, pages 63–76. ACM.
Johnson, R. E. (1997). Frameworks = (components + patterns). Communications of the ACM, 40(10):39–42.
Menon, V. and Pingali, K. (1999). A case for source-level transformations in matlab. In PLAN ’99: Proceedings of the 2nd conference on Domain-specific languages, pages 53–65. ACM.
Ortigosa, A., Campo, M., and Moriyón, R. (2000). Towards Agent-Oriented Assistance for Framework Instantiation. In OOPSLA ’00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 253–263. ACM.
Pree, W., Pomberger, G., Schappert, A., and Sommerlad, P. (1995). Active Guidance of Framework Development. Software – Concepts and Tools, 16(3).
Spinellis, D. (2001). Notable design patterns for domain-specific languages. Journal of Systems Software, 56(1):91–99.
Sprinkle, J., Mernik, M., Tolvanen, J.-P., and Spinellis, D. (2009). Guest Editors’ Introduction: What Kinds of Nails Need a Domain-Specific Hammer? IEEE Software, 26(4):15–18.
van Deursen, A. and Klint, P. (1998). Little languages: little maintenance? Journal of Software Maintenance: Research and Practice, 10(2):75–92.
van Deursen, A., Klint, P., and Visser, J. (2000). Domain-specific languages: An Annotated Bibliography. ACM SIGPLAN Notices, 35(6):26–36.