7 CONSIDERAÇÕES FINAIS E CONCLUSÕES
7.2. TRABALHOS FUTUROS
O projeto da DSL CALV3, e esta pesquisa em geral, podem ser estendidos de várias formas. Abaixo segue uma listagem da maioria delas, muitas das quais obtidas através da análise qualitativa do estudo de caso.
• Implementar um recurso de agrupamento das informações no diagrama, como áreas por assunto, visando organizar os conceitos modelados e facilitar a visualização de modelos com muitos elementos.
• Tornar a DSL independente do Visual Studio, através da geração de um aplicativo executável na máquina, que contemple a criação e edição de modelos e a execução da carga de dados.
• Opcionalmente ao item acima, teríamos a integração da DSL CALV3 ao ambiente Eclipse e a geração do código da carga de dados em linguagem Java, implicando na geração de novos componentes e templates, além de novos pontos de variação na DSL, como a tecnologia de geração.
• Criação de ferramenta para geração de diagramas com base nos dados existentes no CA. Esta ferramenta faria uma engenharia reversa do banco para o modelo, permitindo assim evoluções ou adaptação de modelos existentes para outros sistemas, através da modificação de suas propriedades.
• Criação de mecanismos para permitir a sincronização entre modelo CALV3 e banco do CA. Atualmente a DSL apenas cria os novos elementos do modelo no banco, mas não altera nem exclui elementos existentes.
• Criação da DSL CALV4 para contemplar a próxima versão do framework de segurança. A criação de uma nova DSL pode ser necessária devido a mudanças no meta-modelo entre as duas versões, e às novas tecnologia de construção da versão 4. Contudo há uma possibilidade de usar a mesma DSL, com mais
pontos de variação e ativos reusáveis, para gerar cargas de dados para as duas versões do CA. Maiores estudos podem indicar o caminho mais consistente.
• Ampliação do estudo de caso para mais equipes. A proposta é realizar o estudo com uma comunidade de mais de 2000 participantes, entre analistas e desenvolvedores, em sete regiões geográficas distintas, visando aumentar um pouco a generalização dos resultados do estudo. Neste caso a pesquisa poderia ser classificada como um survey qualitativo [73], ao invés do atual estudo de caso.
7.3. CONCLUSÃO
A área de desenvolvimento dirigido a modelos tem recebido muita atenção tanto da academia quanto da indústria na última década. Muitos métodos, técnicas, abordagens e ferramentas têm surgido, tanto em trabalhos acadêmicos, quanto em pesquisas industriais. Neste trabalho pudemos avaliar uma destas abordagens, através da construção de uma DSL visual e de um estudo de caso, focado em avaliar seu uso em um ambiente industrial.
Apesar de não poder generalizar os resultados deste estudo, por tratar-se de uma técnica empírica, obtivemos evidências e lições que permitirão a outros praticantes da indústria, bem como a outros pesquisadores, avaliar dificuldades e benefícios de se implantar abordagens semelhantes em um ambiente de produção.
O estudo de caso realizado também trouxe muitas informações relevantes sobre a aplicação prática de MDD na indústria, assunto carente na literatura. Com este trabalho adicionamos uma importante, mesmo que pequena, contribuição à busca incessante da indústria por tecnologias que aumentem a produtividade e qualidade no desenvolvimento de produtos de software.
REFERÊNCIAS
[1] Parnas, D. On the design and development of program families. IEEE Transactions on software engineering, 1976.
[2] Clements, P., Northrop, L. Software Product Lines: Practices and Patterns. International Series in Computer Science. Addison-Wesley, 2001.
[3] Fowler, M.. A pedagogical framework for domain-specific languages. IEEE Software, 26(4):13–14, 2009.
[4] Balen, H., Lapalme, J., Frappier, M., & Tyson, K. P. 2007. Domain specific languages: another silver bullet?. Em: 22o. ACM SIGPLAN Conference on Object-Oriented Programming Systems & Applications Companion. OOPSLA '07. ACM, New York, NY, 1024-1025.
[5] Arie van Deursen, Paul Klint, and Joost Visser, Domain-Specific Languages: An Annotated
Bibliography. ACM SIGPLAN Notices, Junho 2000, pp. 26-36
[6] Hen-Tov, A., Lorenz, D. H., and Schachter, L. 2009. An interpretive domain specific language
workbench. Em: Proceeding of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages and Applications OOPSLA '09. ACM, New York, NY, 751-752
[7] Santos, A. L., Koskimies, K., and Lopes, A. 2008. Automated Domain-Specific Modeling Languages for Generating Framework-Based Applications. Em: Proceedings of the 2008 12th international Software Product Line. IEEE Computer Society, Washington, DC, 149-158.
[8] Greenfield, J. and Short, K. 2003. Software factories: assembling applications with patterns, models,
frameworks and tools. Em: Companion of the 18th Annual ACM SIGPLAN Conference on Object- Oriented Programming, Systems, Languages, and Applications OOPSLA '03. ACM, New York, NY, 16-27.
[9] Heering, J. and Mernik, M. 2008. Domain-specific languages as key tools for ulssis engineering. Em: Proceedings of the 2nd international Workshop on Ultra-Large-Scale Software-intensive Systems ULSSIS '08. ACM, New York, NY, 1-2.
[10] Antkiewicz, M., Czarnecki, K., and Stephan, M. 2009. Engineering of Framework-Specific Modeling
Languages. IEEE Trans. Softw. Eng. 35, 6 (Nov. 2009), 795-824.
[11] Kulkarni, V., Reddy, S.. Enterprise Business Application Product Line As a Model Driven Software
Factory. Em: International Workshop on Software Factories (2005).
[12] Kosar T., Mernik M. & Lopez P. (2007) Experiences on DSL Tools for Visual Studio. Em: 29th
International Conference on Information Technology Interfaces, Junho, 2007. Cavtat, Dubrovnik, Croatia. Pp. 753–758
[13] K. Czarnecki. Overview of Generative Software Development. Em: Proceedings of the European Commission and US National Science Foundation Strategic Research Workshop on Unconventional Programming Paradigms. Mont Saint-Michel, France, 2004.
[14] Shani, U. and Sela, A. 2008. Software design using UML for empowering end-users with an external
domain specific language. Em: Proceedings of the 4th international Workshop on End-User Software Engineering. WEUSE '08. ACM, New York, NY, 52-55
[15] Avila-García, O., García, A. E., & Rebull, E. V. 2007. Using software product lines to manage model families in model-driven engineering. Em: Proceedings of the 2007 ACM Symposium on Applied Computing SAC '07. ACM, New York, NY, 1006-1011.
[16] Sprinkle, J., Mernik, M., Tolvanen, J., & Spinellis, D. 2009. Guest Editors' Introduction: What Kinds of
Nails Need a Domain-Specific Hammer?. IEEE Softw. 26, 4 (Jul. 2009), 15-18.
[17] Mohagheghi, P., Dehlen, V. 2008. Where is the Proof? – A Review of Experiences from Applying MDE
in Industry. Proc. 4th European Conference on Model Driven Architecture Foundations and Applications (ECMDA’08), LNCS 5095, p. 432-443.
[18] Robert, S., Gérard, S., Terrier, F., & Lagarde, F. 2009. A Lightweight Approach for Domain-Specific
Modeling Languages Design. Em: Proceedings of the 2009 35th Euromicro Conference on Software Engineering & Advanced Applications SEAA. IEEE Computer Society, Washington, DC, 155-161.
[19] Wright, J. M. 2009. A Modelling Language for Interactive Web Applications. Em: Proceedings of the 2009 IEEE/ACM international Conference on Automated Software Engineering. Automated Software Engineering. IEEE Computer Society, Washington, DC, 689-692.
[20] Bell, P. 2007. A practical high volume software product line. In Companion To the 22nd ACM
SIGPLAN Conference on Object-Oriented Programming Systems & Applications Companion OOPSLA '07. ACM, New York, NY, 994-1003.
[21] Dinkelaker, T., Eichberg, M., & Mezini, M. 2010. An architecture for composing embedded domain- specific languages. Em: Proceedings of the 9th international Conference on Aspect-Oriented Software Development AOSD '10. ACM, New York, NY, 49-60.
[22] Wu, H. & Gray, J. 2005. Automated generation of testing tools for domain-specific languages. Em:
Proceedings of the 20th IEEE/ACM international Conference on Automated Software Engineering ASE '05. ACM, New York, NY, 436-439.
[23] DJ Claypool, TJ McNevin, W Liu, KM McNeill. Automated software defined radio deployment using domain specific modeling languages. 2009 IEEE Mobile WiMAX Symposium
[24] Im, K., Im, T., & McGregor, J. D. 2008. Automating test case definition using a domain specific language. Em: Proceedings of the 46th Annual Southeast Regional Conference on XX ACM-SE 46. ACM, New York, NY, 180-185.
[25] Balen, H., Lapalme, J., Frappier, M., & Tyson, K. P. 2007. Domain specific languages: another silver
bullet?. Em: 22o. ACM SIGPLAN Conference on Object-Oriented Programming Systems & Applications Companion. OOPSLA '07. ACM, New York, NY, 1024-1025.
[26] Freudenthal, M. 2010. Domain-Specific Languages in a Customs Information System. IEEE Softw. 27, 2 (Mar. 2010), 65-71.
[27] Gray, J., Fisher, K., Consel, C., Karsai, G., Mernik, M., & Tolvanen, J. 2008. DSLs: the good, the bad, & the ugly. Em: Companion To the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages & Applications. OOPSLA Companion '08. ACM, New York, NY, 791-794.
[28] Biermann, E., Ehrig, K., Ermel, C., & Hurrelmann, J. 2009. Generation of Simulation Views for Domain
Specific Modeling Languages Based on the Eclipse Modeling Framework. Em: Proceedings of the 2009 IEEE/ACM international Conference on Automated Software Engineering. Automated Software Engineering. IEEE Computer Society, Washington, DC, 625-629.
[29] White, J., Hill, J. H., Gray, J., Tambe, S., Gokhale, A. S., & Schmidt, D. C. 2009. Improving Domain-
Specific Language Reuse with Software Product Line Techniques. IEEE Softw. 26, 4 (Jul. 2009), 47-53.
[30] Clark, T. & Tratt, L. 2009. Language factories. Em: Proceeding of the 24th ACM SIGPLAN Conference
Companion on Object Oriented Programming Systems Languages & Applications OOPSLA '09. ACM, New York, NY, 949-955.
[31] Tolvanen, J. 2006. MetaEdit+: integrated modeling & metamodeling environment for domain-specific languages. Em: Companion To the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, & Applications OOPSLA '06. ACM, New York, NY, 690-691.
[32] Kurtev, I., Bézivin, J., Jouault, F., & Valduriez, P. 2006. Model-based DSL frameworks. Em: Companion
To the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, & Applications OOPSLA '06. ACM, New York, NY, 602-616.
[33] Hen-Tov, A., Lorenz, D. H., & Schachter, L. 2009. ModelTalk: a DSL workbench in action. Em: Proceeding of the 24th ACM SIGPLAN Conference Companion on Object Oriented Programming Systems Languages & Applications OOPSLA '09. ACM, New York, NY, 799-800.
[34] Knöll, R. & Mezini, M. 2009. π: a pattern language. Em: Proceeding of the 24th ACM SIGPLAN
Conference on Object Oriented Programming Systems Languages & Applications OOPSLA '09. ACM, New York, NY, 503-522.
[35] Naumowicz, T., Schröter, B., & Schiller, J. 2009. Prototyping a software factory for wireless sensor
networks. Em: Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems (Berkeley, California, November 04 - 06, 2009). SenSys '09. ACM, New York, NY, 369-370.
[36] Sadilek, D. A. 2008. Prototyping domain-specific language semantics. Em: Companion To the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages & Applications OOPSLA Companion '08. ACM, New York, NY, 895-896.
[37] Demirezen, Z. 2009. Semantic framework for DSLs. Em: Proceeding of the 24th ACM SIGPLAN
Conference Companion on Object Oriented Programming Systems Languages & Applications OOPSLA '09. ACM, New York, NY, 833-834.
[38] Bradford, P. G. & Ray, D. A. 2008. Semantics for a domain-specific language for the digital forensics domain. Em: Proceedings of the 4th Annual Workshop on Cyber Security & information intelligence Research: Developing Strategies To Meet the Cyber Security & information intelligence Challenges Ahead. CSIIRW '08, vol. 288. ACM, New York, NY, 1-3.
[39] Sprinkle, J, Eklund, JM, Gonzalez, H, Grotli, EI, Upcroft, B, Makarenko, A, Uther, W, Moser, M, Fitch, R, Durrant-Whyte, H & Sastry, SS (2009) Model-based design: a report from the trenches of the DARPA Urban Challenge. SOFTWARE & SYSTEMS MODELING, 8 4: 551-566.
[40] Marcondes, F. S., Fernandes, D. D., Motini, D. A., Tasinaffo, P. M., Vega, I. S., & Dias, L. A. 2009.
Systematic & Formal Approach to get a Domain Specific Language. Em: Proceedings of the 2009 Sixth international Conference on information Technology: New Generations ITNG. IEEE Computer Society, Washington, DC, 1447-1450.
[41] Jouault, F., Bézivin, J., & Kurtev, I. 2006. TCS:: a DSL for the specification of textual concrete syntaxes
in model engineering. Em: Proceedings of the 5th international Conference on Generative Programming & Component Engineering GPCE '06. ACM, New York, NY, 249-254.
[42] A. Abou Dib, L. Féraud, I. Ober, C. Percebois. Towards a rigorous framework for dealing with domain specific language families, ICTTA, IEEE Computer Society, 2008
[43] Laird, P. & Barrett, S. 2009. Towards context sensitive domain specific languages. Em: Proceedings of the 1st international Workshop on Context-Aware Middleware & Services CAMS '09, vol. 385. ACM, New York, NY, 31-36.
[44] Nussbaumer, M., Freudenstein, P., & Gaedke, M. 2006. Towards DSL-based web engineering. Em:
Proceedings of the 15th international Conference on World Wide. WWW '06. ACM, New York, NY, 893- 894.
[45] Groenewegen, D. M., Hemel, Z., Kats, L. C., & Visser, E. 2008. WebDSL: a domain-specific language for dynamic web applications. Em: Companion To the 23rd ACM SIGPLAN Conference on Object- Oriented Programming Systems Languages & Applications OOPSLA Companion '08. ACM, New York, NY, 779-780.
[46] Mernik, M., Heering, J., & Sloane, A. M. 2005. When & how to develop domain-specific languages. ACM Comput. Surv. 37, 4 (Dec. 2005), 316-344.
[47] J.P. Tolvanen. Making Model-Based Code GenerationWork. Embedded Systems Europe, pp. 36–38 (Ago./Set. 2004).
[48] V. Pelechano, M. Albert, M. Javier, & C. Carlos, Building Tools for Model Driven Development comparing Microsoft DSL Tools & Eclipse Modeling Plug-ins. Em: proceedings of the Desarrollo de Software Dirigido por Modelos - DSDM'06 Sitges Espanha, 2006
[49] Cuadrado J.S., Molina J.G., Building Domain-Specific Languages for Model-Driven Development. IEEE Software, vol. 24, no. 5, pp. 48-55, Set./Out. 2007.
[50] Jack Greenfield. Bare-Naked Languages or What Not to Model. The Architecture Journal, Outubro,
2006.
[51] Intentional Software, http://www.intentsoftware.com/. Acesso em outubro/2011. [52] Jetbrains, http://www.jetbrains.com/mps/. Acesso em outubro/2011.
[53] Metacase, http://www.metacase.com/ Acesso em outubro/2011.
[54] Visual Studio Visualization and Modeling SDK (antigo DSL Tools),
http://archive.msdn.microsoft.com/vsvmsdk/ . Acesso em outubro/2011.
[55] Eclipse Modeling Framework, http://www.eclipse.org/modeling/emf/. Acesso em outubro/2011.
[56] Eclipse Graphical Editing Framework , http://www.eclipse.org/gef/ . Acesso em outubro/2011. [57] Model-Driven Architecture. OMG. http://www.omg.org/mda/index.htm . Acesso em outubro/2011
[58] OMG Adopted Specification ptc /03-10-04. The Meta Object Facility (MOF) Core Specification. Version 2.0, OMG, http://www.omg.org
[59] The Object Management Group. UML 2.0: Superstructure Specification. Version 2.0, OMG, formal/05-07-
04, 2005.
[60] QVT-Merge Group 1.8. Revised submission for MOF 2.0 Query/Views/Transformations RFP (ad/2002-04-
10). Technical report, OMG, http://www.omg.org
[61] France, R.; Rumpe, B.; , Model-driven Development of Complex Software: A Research Roadmap. Future of Software Engineering, 2007. FOSE '07 , vol., no., pp.37-54, 23-25 Maio, 2007.
[62] Selic, B.; , The pragmatics of model-driven development. Software, IEEE , vol.20, no.5, pp. 19- 25,
Set/Out. 2003.
[63] Schmidt, D.C.; , Guest Editor's Introduction: Model-Driven Engineering. Computer , vol.39, no.2, pp.
25- 31, Fev. 2006.
[64] Fowler, M. . Language Workbenches: The Killer-App for Domain Specific Languages? Disponível em:
http://www.martinfowler.com/articles/languageWorkbench.html . Acesso em outubro/2011.
[65] R.B.; Ghosh, S.; Dinh-Trong, T.; Solberg, A. Model-Driven Development Using UML 2.0: Promises and
Pitfalls . Computer , vol.39, no.2, pp. 59- 66, Fev. 2006.
[66] ] Dalgarno, M.; Fowler M. UML vs. Domain-Specific Languages. Revista Methods and Tools, 2008.
Disponível em: http://www.methodsandtools.com/archive/archive.php?id=71 Acesso em outubro/2011.
[67] Jacobson, I.; Cook s. Road ahead for UML. Disponível em: http://drdobbs.com/architecture-and-
design/224701702 . Acesso em outubro/2011.
[68] Hutchinson, J., Rouncefield, M., Whittle, J.. Model-driven engineering practices in industry. Em:
Proceedings of the 33rd International Conference on Software Engineering (ICSE '11). ACM, New York, NY, USA, 2011.
[69] Forward, A. ,Lethbridge, T., Problems and opportunities for model-centric versus code-centric software development, Workshop on Models in Software Engineering (at ICSE), 2008, pp. 27-32.
[70] Afonso, M., Vogel, R., Teixeira, J., From code-centric to model-centric software engineering: practical case study of MDD infusion in a systems integration company, Workshop on MBD/MOMPES, 2006.
[71] Pollet D., Ducasse S. et al. Towards A Process-Oriented Software Architecture Reconstruction Taxonomy. Em: Proceedings of the 11th European Conference on Software Maintenance and Reengineering (CSMR '07). IEEE Computer Society, Washington, DC, USA, 137-148. 2007.
[72] Sjoberg, D; Dyba, T ; Jorgensen, M. The Future of Empirical Methods in Software Engineering
Research. Future of Software Engineering, 2007. FOSE '07. Maio, 2007.
[73] Kitchenham, B.A. Evaluating Software Engineering Methods and Tool. Software Engineering Notes,
vol. 21, n. 1. ACM SIGSOFT, 1996.
[74] Kitchenham, B.A; Pickard, L. . Case Studies for Method and Tool Evaluation. IEEE, Julho, 1995. [75] Runeson P. , Höst, M. Guidelines for conducting and reporting case study research in software
[76] Hamdi, H., Mosbah, M., Bouhoula, A.. A domain specific language for securing distributed systems.
Em: Proceedings of the International Conference on Systems and Networks Communication. 2007.
[77] Sandhu, R.S., Coyne, E.J., Feinstein, H.L., Youman, C.E.; , Role-based access control models. Computer ,
vol.29, no.2, pp.38-47, Fev, 1996.
[78] Diaz, P.; Aedo, I.; Sanz, D.; Malizia, A.. A model-driven approach for the visual specification of Role-
Based Access Control policies in web systems. Visual Languages and Human-Centric Computing, 2008. VL/HCC 2008. IEEE Symposium on. pp.203-210, 2008.
[79] C# Developer Center, http://msdn.microsoft.com/vcsharp/. Acesso em junho/2012.
[80] Code Generation and T4 Text Templates. Em: http://msdn.microsoft.com/en-us/library/bb126445.aspx .
Acesso em Junho/2012.
ANEXOS
Questionário de avaliação da DSL CALV3 Colaborador:
Para avaliar a DSL Visual CALV3 como solução para modelagem de segurança dos nossos sistemas, peço responder o questionário abaixo:
Caso prefira, pode imprimir e responder por escrito. Responda as questões abaixo marcando um X nas opções ao lado.
Con co rd o to ta lm en te C o n co rd o n a m ai o r p ar te N ão co n co rd o n em d is co rd o D is co rd o n a m ai o r p ar te D is co rd o to ta lm en te Comentários
Q1 -É mais fácil compreender, visualizar e discutir a segurança de um sistema com um modelo feito com a DSL CALV3.
X
Q2 - É possível reusar o modelo de segurança de um sistema feito
na DSL CALV3 em outro sistema de informação.
X
Q3 - A carga de dados feita com o script gerado pela CALV3 é mais
rápida do que o processo de cadastrar os dados no console do CA.
X
Q4 -Confio que a carga de dados do script gerado pela CALV3
gerará menos erros do que o processo de cadastrar os dados no console do CA.
X
Q5 - O fato da DSL CALV3 estar integrada à IDE Visual Studio facilita
o uso e entendimento da mesma.
X
A não ser que o usuário deseje alterar manualmente o script gerado, o uso é independente da IDE. Q6 - Pretendo usar a DSL CALV3 para modelar a segurança dos
sistemas em que trabalho atualmente.
X
O fato de não poder importar os dados atuais do CAv3, impossibilita o bom uso em projetos em andamento. Q7 - Pretendo usar a DSL CALV3 para modelar a segurança em
futuros projetos de sistemas.
X
Para os sistemas futuros, o CAv4 será utilizado. Q8 - O uso de modelos CALV3 e a carga com o script gerado
constituem uma solução mais eficiente e produtiva de que o processo manual utilizado atualmente.
X
Utilize o espaço ao lado para comentários, críticas e sugestões
Seria muito interessante a possibilidade de realizar engenharia reversa, bem como ter a atualização para o CAv4.
Anexo 1 – Exemplo do formulário aplicado com preenchimento da parte