Outline of a framework to integrate non-functional requirements into the core of MDD processes.
Work presented at the RE'10 conference (18th IEEE Int. Conf. on Requirements Engineering)
React Native vs Ionic - The Best Mobile App Framework
Dealing with non-functional requirements in Model-driven development
1. Dealing with Non-Functional Requirements in Model-Driven Development A VISION PAPER 18th IEEE International Requirements Engineering Conference Sydney, 2010 David Ameller, UPC (Spain) Xavier Franch, UPC (Spain) Jordi Cabot, INRIA (France)
2. Outline Introduction Motivation State of the art Our proposal: An NFR-aware MDD process Research agenda Conclusions RE'10: Dealing with NFRs in MDD
4. MDD definition RE'10: Dealing with NFRs in MDD “Model-driven development is simply the notion that we can construct a model of a system that we can then transform into the real thing” Stephen Mellor et al., “Model-Driven Development”. IEEE Software 20(5), 2003. HelloWorld HelloWorld Swing Show() Show() POJO JDBC … show() { print(“Hello World”); } …
5. MDD in practice RE'10: Dealing with NFRs in MDD Most MDD approaches do not consider NFRs … show() { print(“Hello World”); } … HelloWorld HelloWorld Interoperability NFR Specification Document Swing Show() Show() Scalability POJO Service-Oriented Architecture JDBC “[…] the functionality is not useful or usable without the necessary non-functional characteristics” L. Chung et al., “On Non-Functional Requirements in Software Engineering”, 2009 But…
6. The role of NFRs RE'10: Dealing with NFRs in MDD Many prominent researchers argue that NFRs mainly impact on the architecture, more concretely in the decision making process Impact Architectural decisions Req. "The system shall detect and report unauthorised data accesses” NFRs Software development Req. "The system shall keep our current Data Base Management System (DBMS)” Technological decisions
7. Objective of this work Identify the challenges to integrate NFRs into the MDD production process Why? Because it is a complex problem with critical consequences, and it is still far from a solution How? We propose a general process that deals with NFRs and then we identify the challenges needed to build this solution RE'10: Dealing with NFRs in MDD
9. Motivation example We consider two scenarios for the ACME travel agency web portal: ACME luxury offers vacation packages to exotic destinations in 5-star hotels. ACME world-wide offers hundreds of packages from other transportation and accommodation sites. Both scenarios have common functionalities: User management, payment facilities, searches RE'10: Dealing with NFRs in MDD
10. Motivation example And some common NFRs, but other NFRs are different: RE'10: Dealing with NFRs in MDD = ≠
11.
12.
13. Motivation example RE'10: Dealing with NFRs in MDD Different NFR specifications lead to different software systems ACME Luxury ACME World-wide Our position is that it should be possible to generate both systems with a MDD process that considers NFRs
14.
15.
16. MDD supporting NFRs RE'10: Dealing with NFRs in MDD Systematic Literature Review (SLR) From the initial 228 results we finally selected 13 relevant works (see details in the paper) These were classified in three categories Approaches for modeling NFRs (profiles and metamodels) Approaches based on model transformation (patterns) Approaches based on model analysis None of them has a integrated view of the problems to overcome in order to support NFRs in MDD
18. An NFR-aware MDD process RE'10: Dealing with NFRs in MDD A MDD process should be able to deal with NFRs and should be able to certify that the result is compliant with the initial NFRs We explore two variants Automatic process Interactive process Impact Architectural decisions NFRs Compliance
19. An NFR-aware MDD process All requirements are specified at PIM level We propose to use M2M transformations able to deal with NFRs (M2March, M2Mtech) We propose an intermediate model (PIM/PSM) to reflect architectural decisions made from NFRs The code(software product) is compliant with the stated NFRs RE'10: Dealing with NFRs in MDD
20. An NFR-aware MDD process The first approach is conceptually sound but may be too complex In this case PIM is unaware of NFRs We propose to use human interaction to obtain NFRs (with architectural and technological consequences) Hybrid approaches are possible RE'10: Dealing with NFRs in MDD
26. Drawbacks of our proposal vs. New model (PIM/PSM) need to be maintained New transformations are needed We need to maintain the architectural knowledge RE'10: Dealing with NFRs in MDD
31. Compared all different alternativesFormulated a research agenda RE'10: Dealing with NFRs in MDD
32. Conclusions RE'10: Dealing with NFRs in MDD “...MDD has a chance to succeed in the realm of large, distributed, industrial software development, but it is far from a sure bet”, B. Hailpern and P. Tarr, “Model-driven Development: The Good, the Bad, and the Ugly”. IBM Systems Journal 45(3), 2006. We hope that we are improving the likelihood for this bet.
The outline of the presentation will begin with an introduction, then the motivation, the SOTA, then our proposal, an NFR #en efar# aware MDD process. And finally the research agenda and the conclusions.
I would like to begin the introduction with the MDD definition. #read def, “ai” triple “i”#The MDD process start with a PIM, for example a UML class diagram, that then is transformed using a M2M transformation into PSM. In the example we can se that we added two classes specific of the platform to the previous one. Finally we use a M2T transformation to obtain the code or the final product.
In practice, MDD processes don’t consider NFRs.As we seen before #3 clicks# the MDD process will generate a product.#click# But… #bat##click# the NFRs could let us think on a service based solution. #click# that is not what we obtained from the MDD process.#click# so, as many times has been told, Functionality is not useful without the non-functionality.
Many authors said that NFRs and the architecture of the system are very related topics, in fact this conference have a whole dedicated session to architecture. Concretely we think that NFRs are used to make architectural decisions.#click# also we consider as a type of these decisions, the technological decisions. For example a requirement such as #read NFR# will impact on a technological decision.
To end with the introduction I want to clarify which is the objective of this work.#read blue box#We need to identify these challenges #read answer 1#.#haw# To do so, #read answer 2#.
To motivate this work I will use an example about a travel agency with two scenarios. On the one hand ACME luxury that offers vacation packages…In the other hand ACME WW offers…Both scenarios share common functionalities. For example user management…
To exemplify the impact of the NFRs in the architecture we will use as example the deployment view. For this view of the architecture we have several configurations e.g. SSC and DBMS separated. And we have several components that can be used with these configurations.
#click# In this table we see the relationship between quality attributes and NFRs. Observe that the configurations have concrete values while the components can improve or damage the initial values.#click# in the concrete case of the ACME travel agency. Scalability will determine the use of replication #click# and the Security will determine the use of BDMS separated and Firewall.
Here we can see again that different NFRs lead to different software systems.So, Our position.. #read#
For the state of the art, we have differentiated between approaches that not support NFRs and the approaches that support NFRs.
The approaches that not support NFRs can deal with NFRs outside of the process.One way is to Modify the PSM… #read##click# Other way is to modify the M2M… #read##click# the situation is worse if… #read#
As I said before, a MDD process should be able to deal with NFRs and also should be able to certify the result is compliant with the specified NFRs.To do this we propose two variants of a process that can deal with NFRs.One is fully automatic and the second one is interactive.
The problem of the previous variant is that it is too complex. For this variant we use a standard “pi Ai Em” #click#, a PIM unaware of NFRs.And we use #click# interaction with the user to obtain the NFRs necessary to: first, generate the architecture, and second, generate the PSM.From this point we will have all necessary NFRs to generate the software product.#click# it is important to notice that these are extreme variants, it is more than possible that the best solution is between the two variants.
In the paper you will find a more exhaustive list of topics that require further research. This is a selection of the most relevant ones.#click&read##click&read##click&read##click&read##click&read##click&read##click&read#
#read##click&read##click&read#
To conclude with this presentation I would like to quote a paper about the good the bad and the ugly of MDD. It says that #read##click & read#