{"id":4746,"date":"2019-04-01T12:51:25","date_gmt":"2019-04-01T12:51:25","guid":{"rendered":"https:\/\/modeling-languages.com\/?p=4746"},"modified":"2019-04-01T15:41:42","modified_gmt":"2019-04-01T15:41:42","slug":"non-functional-requirements-model-driven-survey","status":"publish","type":"post","link":"https:\/\/modeling-languages.com\/non-functional-requirements-model-driven-survey\/","title":{"rendered":"Dealing with Non-Functional Requirements in Model-Driven Development: A Survey"},"content":{"rendered":"
Managing Non-Functional Requirements (NFRs) in software projects is challenging, and projects that adopt Model-Driven Development (MDD) are no exception. Although several methods and techniques have been proposed to face this challenge<\/a>, there is still little evidence on how NFRs are handled in MDD by practitioners (see as an exception our previous study on how software architects deal with NFRs<\/a>). Knowing more about the state of the practice may help researchers to steer their research and practitioners to improve their daily work. In this paper, we present our findings from an interview-based survey conducted with practitioners working in 18 different companies from 6 European countries<\/strong> (at the time of starting the project I was still at Inria & \u00c9cole des Mines de Nantes<\/a>, that’s why I appear as French team)<\/p>\n From a practitioner\u2019s point of view, the paper shows what barriers and benefits the management of NFRs as part of the MDD process can bring to companies, how NFRs are supported by MDD approaches, and which strategies are followed when (some) types of NFRs are not supported by MDD approaches. Our study shows that practitioners perceive MDD adoption as a complex process with little to no tool support for NFRs<\/strong>, reporting productivity and maintainability as the types of NFRs expected to be supported when MDD is adopted. But in general, companies adapt MDD to deal with NFR<\/strong>s. When NFRs are not supported, the generated code is sometimes changed manually, thus compromising the maintainability of the software developed. However, the interviewed practitioners claim that the benefits of using MDD outweigh the extra effort required by these manual adaptations. Overall, the results indicate that it is important for practitioners to handle NFRs in MDD, but further research is necessary in order to lower the barrier for supporting a broad spectrum of NFRs with MDD<\/strong>. Still, much conceptual and tool implementation work seems to be necessary to lower the barrier of integrating the broad spectrum of NFRs in practice.<\/p>\n More specifically, the project aimed to answer the following research questions:<\/p>\n that we managed to answer via the following key findings<\/p>\n Looking at the results of this study, we can classify the management of NFRs in MDD processes into three categories:<\/strong> a) natively, where the MDD method is able to cope with (some selected types of) NFRs; b) through extensions, where the company adds or changes the languages or transformations to handle NFRs; c) ad hoc, where companies can modify the source code as they need. In most cases we\u00a0have seen only partial support, and only for very specific types of NFRs<\/strong>. Even if there are different positions among the interviewees, modifying the generated code to support NFRs seems to be the most widely used solution<\/strong> so far. This approach may be suitable in some scenarios, such as building software prototypes. However, software products need to be compliant with all types of requirements and MDD seems to be not ready for such diversity of needs. In particular, the study has shown that software engineers expect MDD bringing benefits for some particular types of NFRs related to the development process, while companies adopt MDD approaches mainly to better support NFRs related to the system behaviour.<\/p>\n Retrofitting NFRs in MDD after the fact is in tune with the state of the practice in rather traditional engineering approaches, but it further has major impacts on inconsistencies when regenerations cause modifications to get lost. Therefore, new approaches and techniques need\u00a0to be proposed by the research community to improve the NFR support in MDD and solve the problems enumerated above<\/strong>. Otherwise, NFRs remain a delicate by-product casually attached at the very end of the engineering cycle. In addition, mismatches between industry practices and MDD teaching should be solved.<\/p>\n To read the full details of our study, check the full version of the paper<\/a> (or the free version<\/a>).<\/p>\n<\/span>","protected":false},"excerpt":{"rendered":" Very few MDD approaches have been reported to deal with NFRs (though they should). To better understand the current practices we present the results of a multi-national empirical study, based on interviews with companies using MDD for their development projects.<\/p>\n","protected":false},"author":2,"featured_media":7031,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[207,99,39],"tags":[256,257],"hashtags":[],"_links":{"self":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/posts\/4746"}],"collection":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/comments?post=4746"}],"version-history":[{"count":0,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/posts\/4746\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/media\/7031"}],"wp:attachment":[{"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/media?parent=4746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/categories?post=4746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/tags?post=4746"},{"taxonomy":"hashtags","embeddable":true,"href":"https:\/\/modeling-languages.com\/wp-json\/wp\/v2\/hashtags?post=4746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}\n
\n
\n
\n
\n
\n
\n
\n