• No results found

In this work, the applicability of model-driven development to increase, above all, the produc- tivity and quality of applications in software teams was researched. A tool called MoDev was developed following a model-driven software development iterative methodology consisting of the following phases: prototyping, reference implementation, analysis, meta-modeling, DSL design, model transformations building, DSL editor building and testing. MoDev requires well defined software architectures to work. Initially an illustrative software architecture was specified to test MoDev. However, any abstractable software architecture can be im- plemented using the tool. Moreover, MoDev was created with independent and composable models to enable reusing. That means, that components of some architecture can be used in another one and code generation templates can be customized to support any platform, technology or language. The creation of applications using MoDev is relatively easy. The analysts, architects and developers create a set of models, then create a main model im- porting the previous ones. The next step is to trigger the generation with a simple click requiring just seconds to get a lot of code automatically generated. Then, developers com- plete the code and tests manually. Once the code is fully functional, continuous integration and continuous delivery processes are recommended. Compared to a traditional development approach, which is code-centric, developing applications with MoDev involves the creation of models and the completion of artefacts which are automatically generated. It means that the process is model-centric. This change in the paradigm has to be taken into account when creating applications using model-driven engineering in software development teams.

A case study was delivered proving that MoDev leads software teams to significant improve- ments in multiple aspects and other few drawbacks that should be resolved in future research (see Table 5-1). In terms of productivity, approximately 70% of the code of the finished case study was automatically generated. In addition, other artefacts like configuration files and documentation were generated. Regarding quality, an automated software metrics tool was used to show that the generated code has no important quality issues. Besides, every generated artefact is fully compliant with the architecture, forcing developers to respect them as well. Concerning maintainability, an example of which tasks are necessary to create a new business method and the implications of doing the same work manually were illus- trated. MoDev does not only generate artefacts, but it really knows what changes to apply and where. With MoDev the problem of tool lock-in does not occur and as it uses textual languages the ability to model and code in large software teams is increased. In regard to

to testability, it helps by making the tests processes easier as it generates the skeleton of test modules and tests cases for every modelled method. Finally, respecting portability, as models were developed independent of technologies, model-to-text transformations can be performed for any platform.

Contrary to many related work and tools found in the literature, MoDev not only serves as a starting point for software projects, that means, it does not only generate the project’s base structure from scratch but it can be used iteratively and multiple times during the entire life cycle of an application. This is achieved thanks to the protected regions which allow re- generations. However, during the development of the case study, it was noted that changing or modifying accidentally these protected regions can be a bit harmful. Developers should pay attention to this because protected regions should keep always the same structure and identifiers.

Table 5-1.: The good and the bad of MoDev The good The bad

Improvements in productiv- ity, quality, maintainability, flexibility, testability, porta- bility and the ability to work in teams

Some minor drawbacks in terms of maintainability be- cause of the use of protected regions.

Serves not only as starting point for a project. It is use- ful in the entire project life- cycle.

Training required to learn new languages (DSL)

It is a generic solution and it is not heavily scoped to a particular domain.

It was not applied with different software architec- tures.

It is (relatively) easy to be extended and reused.

Lack of domain expressive- ness

One model, multiple imple- mentations.

Architecture conformance.

Two additional negative points were detected in this solution. First, it was not tested in multiple and bigger case studies. This is a weakness because the explained benefits could not be as bigger as with other applications. The same occurs for the people involved in the development of the case study. Maybe other developers could have different impressions of what the tool offers. On the other hand, MoDev was implemented with independent models

61

that allows to be reusable, composable and extensible to different and heterogeneous soft- ware architectures. However, the second negative point comes from this because just one illustrative software architecture was taken as a reference. Having multiple and different software architectures could prove that MoDev is really reusable, composable and extensible as expected.

According to these results, MoDev can be initially used in production environments in small software projects and within small software teams. Once tested and evaluated in this kind of projects it can be improved and maintained to help the development of big projects in large teams.

5.0.3. Future work

Two directions are proposed for future research of this work. First of all, to extend MoDev in order to resolve some of the drawbacks explained in the previous section. Applying this tool in real software teams in real companies with many developers could give this research additional support to be implemented in big projects. Secondly, extending the tool to sup- port heterogeneous software architectures would provide additional reasons for the adoption of the tool.

Secondly, and looking forward to more interesting researches about model-driven develop- ment, MoDev lays the foundations for more extensible approaches. For example, Cabot et. al. [15] and Shroff et. al. [49] combine MDD with cloud-computing. Taking advantage of the approach followed by MoDev, where models are created independent in order to be reusable, a cloud repository of models can be created. This repository can publish a di- rectory of languages that any developer can use, extend and modify to create customized software architectures. Another topic related to cloud computing has to do with language editors. At this moments, languages have to be manipulated within Eclipse. However, recent approaches use web technologies to provide online editors with features like offline edition, online collaboration, integration with online services like github and tight integration with web browsers and mobile devices. Having online editors and a models directory would be a great start to collaborative modeling and generation services in the cloud.

for the software architecture

Figure A-1.: The document meta-model

63

Figure A-3.: The Mongo-Config meta-model

Figure A-4.: The entity meta-model

Figure A-6.: The document-repository meta-model. An extension of the repository meta- model.

Figure A-7.: The relational-repository meta-model. An extension of the repository meta- model.

65

Figure A-9.: The route meta-model.

the case study

67

Figure B-2.: The repository DSL instance for the case study

Bibliography

[1] Eclipse Modeling - EMF - Home. https://www.eclipse.org/modeling/emf/ [2] GenMyModel - Online UML tool. http://www.genmymodel.com/

[3] JetBrains :: Meta Programming System - Language Oriented Programming environment and DSL creation tool. http://www.jetbrains.com/mps/

[4] Sculptor (CSC) - Fornax Platform. https://fornax.itemis.de/confluence/pages/ viewpage.action?pageId=1128

[5] The Spoofax Language Workbench. http://strategoxt.org/Spoofax/ [6] Xtend - Modernized Java. https://www.eclipse.org/xtend/

[7] Xtext - Language Development Made Easy. http://www.eclipse.org/Xtext/ [8] Yeoman - Modern workflows for modern webapps. http://yeoman.io/

[9] Al-Kilidar, H. ; Cox, K. ; Kitchenham, B.: The use and usefulness of the ISO/IEC 9126 quality standard. In: Empirical Software Engineering, 2005. 2005 International Symposium on, 2005, S. 7 pp.–

[10] Aldrich, J. ; Chambers, Craig ; Notkin, D.: ArchJava: connecting software archi- tecture to implementation. In: Software Engineering, 2002. ICSE 2002. Proceedings of the 24rd International Conference on, 2002, S. 187–197

[11] Ameller, D. ; Franch, X. ; Cabot, J.: Dealing with Non-Functional Requirements in Model-Driven Development. In: Requirements Engineering Conference (RE), 2010 18th IEEE International, 2010. – ISSN 1090–705X, S. 189–198

[12] Amyot, Daniel ; Farah, Hanna ; Roy, Jean-Fran ˜A§ois: Evaluation of Develop- ment Tools for Domain-Specific Modeling Languages. In: Gotzhein, Reinhard (Hrsg.) ; Reed, Rick (Hrsg.): System Analysis and Modeling: Language Profiles Bd. 4320. Springer Berlin Heidelberg, 2006. – ISBN 978–3–540–68371–1, S. 183–197

[13] Brambilla, Marco: Model-driven software engineering in practice. San Rafael, Calif : Morgan and Claypool, 2012. – ISBN 1608458822

[14] Brown, Simon: Software Architecture for Developers. LeanPub, 2013

[15] Bruneli ˜A¨re, Hugo ; Cabot, Jordi ; Jouault, Fr ˜A c d ˜A c ric: Combining Model- Driven Engineering and Cloud Computing. In: Modeling, Design, and Analysis for the Service Cloud - MDA4ServiceCloud’10: Workshop’s 4th edition (co-located with the 6th European Conference on Modelling Foundations and Applications - ECMFA 2010). Paris, France, Juni 2010

[16] Brunet, J. ; Bittencourt, R.A. ; Serey, D. ; Figueiredo, J.: On the Evolution- ary Nature of Architectural Violations. In: Reverse Engineering (WCRE), 2012 19th Working Conference on, 2012. – ISSN 1095–1350, S. 257–266

[17] Burden, Hakan ; Heldal, Rogardt ; Whittle, Jon: Comparing and Contrasting Model-Driven Engineering at Three Large Companies. – Unpublished work

[18] Chow, Tsun ; Cao, Dac-Buu: A survey study of critical success factors in ag- ile software projects. In: Journal of Systems and Software 81 (2008), Nr. 6, 961 - 971. http://dx.doi.org/http://dx.doi.org/10.1016/j.jss.2007.08.020. – DOI http://dx.doi.org/10.1016/j.jss.2007.08.020. – ISSN 0164–1212. – Agile Product Line Engineering

[19] Company, The M.: Model Driven Development for J2EE Utilizing a Model Driven Architecture (MDA) Approach. http://www.omg.org/mda/mda_ files/MDA_Comparison-TMC_final.pdf. http://www.omg.org/mda/mda_files/MDA_ Comparison-TMC_final.pdf. Version: June 2003

[20] Cuadrado, Jes ˜Aos S. ;

Izquierdo, Javier Luis C. ; Molina, Jes ˜Aos G.: Applying model-driven engineering in small software enterprises. In: Sci- ence of Computer Programming 89, Part B (2014), Nr. 0, 176 - 198. http://dx.doi.org/http://dx.doi.org/10.1016/j.scico.2013.04.007. – DOI http://dx.doi.org/10.1016/j.scico.2013.04.007. – ISSN 0167–6423. – Special issue on Success Stories in Model Driven Engineering

[21] 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. In: Visual Languages and Human-Centric Computing, 2008. VL/HCC 2008. IEEE Symposium on, 2008. – ISSN 1943–6092, S. 203–210

[22] Erdweg, Sebastian ; Storm, Tijs ; Voelter, Markus ; Boersma, Meinte ; Bosman, Remi ; Cook, WilliamR. ; Gerritsen, Albert ; Hulshout, Angelo ; Kelly, Steven ; Loh, Alex ; Konat, Gabri ˜AlD.P. ; Molina, PedroJ. ; Palatnik, Mar-

tin ; Pohjonen, Risto ; Schindler, Eugen ; Schindler, Klemens ; Solmi, Ric- cardo ; Vergu, VladA. ; Visser, Eelco ; Vlist, Kevin ; Wachsmuth, GuidoH.

Bibliography 71

; Woning, Jimi: The State of the Art in Language Workbenches. Version: 2013. http://dx.doi.org/10.1007/978-3-319-02654-1_11. In: Erwig, Martin (Hrsg.) ; Paige, RichardF. (Hrsg.) ; Wyk, Eric (Hrsg.): Software Language Engineering Bd. 8225. Springer International Publishing, 2013. – ISBN 978–3–319–02653–4, 197-217 [23] Fenton, Norman E. ; Neil, Martin: Software Metrics: Roadmap. In: Proceedings of

the Conference on The Future of Software Engineering. New York, NY, USA : ACM, 2000 (ICSE ’00). – ISBN 1–58113–253–0, 357–370

[24] Finkel, Raphael: Advanced programming language design. Menlo Park, Calif : Addison-Wesley, 1996. – ISBN 0805311912

[25] Fowler, Martin: Language Workbenches: The Killer-App for Domain Specific Lan- guages? http://www.martinfowler.com/articles/languageWorkbench.html

[26] Fowler, Martin: Patterns of enterprise application architecture. Boston : Addison- Wesley, 2003. – ISBN 0321127420

[27] Fowler, Martin: Domain-specific languages. Upper Saddle River, NJ : Addison- Wesley, 2011. – ISBN 978–0321712943

[28] Giese, Holger ; Seibel, Andreas ; Vogel, Thomas: A Model-Driven Configuration Management System for Advanced IT Service Management. In: Bencomo, Nelly (Hrsg.) ; Blair, Gordon (Hrsg.) ; France, Robert (Hrsg.) ; Jeanneret, Cedric (Hrsg.) ; Munoz, Freddy (Hrsg.): Proceedings of the 4th International Workshop on [email protected] at the 12th IEEE/ACM International Conference on Model Driven Engineering Languages and Systems (MoDELS 2009), Denver, Colorado, USA Bd. 509, CEUR-WS.org, 10 2009 (CEUR Workshop Proceedings). – ISSN 1613–0073, S. 61–70 [29] Hailpern, B. ; Tarr, P.: Model-driven development: The good, the bad, and the

ugly. In: IBM Systems Journal 45 (2006), Nr. 3, S. 451–461. http://dx.doi.org/10. 1147/sj.453.0451. – DOI 10.1147/sj.453.0451. – ISSN 0018–8670

[30] Hammond, James: Boosting productivity with domain-specific modelling. https:// metacase.com/papers/mte-boosting.pdf

[31] Heinrich, Matthias ; Boehm-Peters, Antje ; Knechtel, Martin: MoDDo - a tailored documentation system for model-driven software development. In: Isa´ıas, Pedro (Hrsg.) ; Nunes, Miguel B. (Hrsg.) ; Ifenthaler, Dirk (Hrsg.): Proceedings of the IADIS International Conference WWW/Internet (ICWI 2008), 2008, 321-324 [32] Hutchinson, J. ; Rouncefield, Mark ; Whittle, J.: Model-driven engineering

practices in industry. In: Software Engineering (ICSE), 2011 33rd International Con- ference on, 2011. – ISSN 0270–5257, S. 633–642

[33] Hutchinson, John ; Whittle, Jon ; Rouncefield, Mark ; Kristoffersen, Steinar: Empirical Assessment of MDE in Industry. In: Proceedings of the 33rd Inter- national Conference on Software Engineering. New York, NY, USA : ACM, 2011 (ICSE ’11). – ISBN 978–1–4503–0445–0, 471–480

[34] Javed, A. Z. ; Strooper, P.A. ; Watson, G.N.: Automated Generation of Test Cases Using Model-Driven Architecture. In: Automation of Software Test , 2007. AST ’07. Second International Workshop on, 2007, S. 3–3

[35] Kleppe, Anneke: MDA explained : the model driven architecture : practice and promise. Boston : Addison-Wesley, 2003. – ISBN 978–0321194428

[36] Kumar, Satish ; Singh, Neeta ; Kumar, Anuj: Classification of Software Quality Attributes for Service Oriented Architecture. Version: 2011. http://dx.doi.org/10. 1007/978-3-642-22577-2_6. In: Mantri, Archana (Hrsg.) ; Nandi, Suman (Hrsg.) ; Kumar, Gaurav (Hrsg.) ; Kumar, Sandeep (Hrsg.): High Performance Architecture and Grid Computing Bd. 169. Springer Berlin Heidelberg, 2011. – ISBN 978–3–642– 22576–5, 46-51

[37] Laird, Linda: Software measurement and estimation a practical approach. Hoboken, N.J : Wiley-Interscience, 2006. – ISBN 978–0471676225

[38] Lethbridge, T.C. ; Singer, J. ; Forward, A.: How software engineers use documen- tation: the state of the practice. In: Software, IEEE 20 (2003), Nov, Nr. 6, S. 35–39. http://dx.doi.org/10.1109/MS.2003.1241364. – DOI 10.1109/MS.2003.1241364. – ISSN 0740–7459

[39] Lindvall, M. ; Muthig, Dirk: Bridging the Software Architecture Gap. In: Computer 41 (2008), June, Nr. 6, S. 98–101. http://dx.doi.org/10.1109/MC.2008.176. – DOI 10.1109/MC.2008.176. – ISSN 0018–9162

[40] Markus, Voelter: DSL engineering : designing, implementing and using domain- specific languages. S.l : CreateSpace Independent Publishing Platform, 2013. – ISBN 978–1481218580

[41] Mattsson, A. ; Lundell, B. ; Lings, B. ; Fitzgerald, B.: Linking Model-Driven Development and Software Architecture: A Case Study. In: Software Engineering, IEEE Transactions on 35 (2009), Jan, Nr. 1, S. 83–93. http://dx.doi.org/10.1109/ TSE.2008.87. – DOI 10.1109/TSE.2008.87. – ISSN 0098–5589

[42] Merkle, Bernhard: Textual Modeling Tools: Overview and Comparison of Language Workbenches. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion. New York, NY, USA : ACM, 2010 (SPLASH ’10). – ISBN 978–1–4503–0240–1, 139–148

Bibliography 73

[43] Offutt, J.: Quality attributes of Web software applications. In: Software, IEEE 19 (2002), Mar, Nr. 2, S. 25–32. http://dx.doi.org/10.1109/52.991329. – DOI 10.1109/52.991329. – ISSN 0740–7459

[44] Perez Andr ˜A c s, Francisco ; Lara, Juan de ; Guerra, Esther: Domain Specific Languages with Graphical and Textual Views. In: Schuerr, Andy (Hrsg.) ; Nagl, Manfred (Hrsg.) ; Z ˜A14ndorf, Albert (Hrsg.): Applications of Graph Transformations with Industrial Relevance Bd. 5088. Springer Berlin Heidelberg, 2008. – ISBN 978–3– 540–89019–5, S. 82–97

[45] Pfeiffer, Michael ; Pichler, Josef: A Comparison of Tool Support for Textual Domain-Specific Languages. In: Proceedings of the 8th OOPSLA Workshop on Domain- Specific Modeling, 2008, S. 1–7

[46] Robles, R.-J. ; Choi, Min kyu ; Yeo, Sang-Soo ; Kim, Tai hoon: Application of Role- Based Access Control for Web Environment. In: Ubiquitous Multimedia Computing, 2008. UMC ’08. International Symposium on, 2008, S. 171–174

[47] Rutherford, Matthew J. ; Wolf, Alexander L. ; Rutherford, C Matthew J. ; Wolf, Er L. ; Wolf, Er L.: A Case for Test-Code Generation in Model-Driven Systems. In: In International Conference on Generative Programming and Component Engineering (GPCE) 2003, Springer-Verlag, 2003, S. 377–396

[48] Schmidt, Douglas C.: Guest Editor’s Introduction: Model-Driven Engineering. In: Computer 39 (2006), Februar, Nr. 2, 25–31. http://dx.doi.org/10.1109/MC.2006. 58. – DOI 10.1109/MC.2006.58. – ISSN 0018–9162

[49] Shroff, Gautam: Dev 2.0: Model Driven Development in the Cloud. In: Proceed- ings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering. New York, NY, USA : ACM, 2008 (SIGSOFT ’08/FSE-16). – ISBN 978–1–59593–995–1, 283–283

[50] Souza, Sergio Cozzetti B. ; Anquetil, Nicolas ; Oliveira, K´athia M.: A Study of the Documentation Essential to Software Maintenance. In: Proceedings of the 23rd Annual International Conference on Design of Communication: Documenting &Amp; Designing for Pervasive Information. New York, NY, USA : ACM, 2005 (SIGDOC ’05). – ISBN 1–59593–175–9, 68–75

[51] Spriestersbach, Axel ; Springer, Thomas: Quality Attributes in Mo- bile Web Application Development. Version: 2004. http://dx.doi.org/10.1007/ 978-3-540-24659-6_9. In: Bomarius, Frank (Hrsg.) ; Iida, Hajimu (Hrsg.): Product Focused Software Process Improvement Bd. 3009. Springer Berlin Heidelberg, 2004. – ISBN 978–3–540–21421–2, 120-130

[52] Stahl, Thomas ; Voelter, Markus: Model-driven software development : technology, engineering, management. Chichester, England Hoboken, NJ : John Wiley, 2006. – ISBN 978–0470025703

[53] Stefani, Antonia ; Xenos, Michalis: A Model for Assessing the Quality of e-Commerce Systems. 2001

[54] Sun, Lianshan ; Huang, Gang ; Sun, Yanchun ; Song, Hui ; Mei, Hong: An Approach for Generation of J2EE Access Control Configurations from Requirements Specification. In: Quality Software, 2008. QSIC ’08. The Eighth International Conference on, 2008. – ISSN 1550–6002, S. 87–96

[55] Wada, H. ; Suzuki, J.: A Domain Specific Modeling Framework for Secure Network Applications. In: Computer Software and Applications Conference, 2006. COMPSAC ’06. 30th Annual International Bd. 2, 2006. – ISSN 0730–3157, S. 353–355

[56] Wang, Chao ; Li, Hong ; Gao, Zhigang ; Yao, Min ; Yang, Yuhao: An automatic documentation generator based on model-driven techniques. In: Computer Engineering and Technology (ICCET), 2010 2nd International Conference on Bd. 4, 2010, S. V4– 175–V4–179

[57] Xiao-jun, Ma ; Xi, Yan: A web application system development platform based on role-based access control model. In: Computer Application and System Modeling (ICCASM), 2010 International Conference on Bd. 12, 2010, S. V12–166–V12–169

Related documents