Although the Model-Driven paradigm is being accepted in the research environment as a very useful and powerful option for effective software development, its real application in the enterprise context is still a challenge for software engineering. Several causes can be stacked out, but one of them can be the lack of tool support for the efficient application of this paradigm. This paper presents a set of tools, grouped in a suite named NDT-Suite, which under the Model-Driven paradigm offer a suitable solution for software development. These tools explore different options that this paradigm can improve such as, development, quality assurance or requirement treatment. Besides, this paper analyses how they are being successfully applied in the industry.
The Model-Driven Engineering (MDE) [
However, in the enterprise community context, there is still a gap regarding the application of this paradigm. Several causes can be exposed for explaining this lack, but we would like to stick out the next ones from our research experience.
Firstly, MDE deals with very abstract concepts like metamodels, transformations or constraints, among others. They are complex to be understood out of the academia, as they do not belong to software teams’ “common language”. Therefore, they are hardly ever trained in these concepts.
Secondly, concrete syntaxes have to be developed for the application of MDE in order to instance the metamodels and concrete tools to execute transformations. Current solutions, like QVT [
Finally, with regard to tool support, although MDE can help software products systematized or automated, as it is presented in this paper, MDE approaches offer a poor tool support which produces the lack of interest in its application.
This paper presents how this paradigm can be presented in a more friendly and efficient way to the enterprise community, softening its application and improving the application of transformations and MDE principles. The paper introduces a set of tools, grouped under a suite named NDT-Suite [
We have structured this work as follows. Firstly, Section 2 describes the related works on this topic. Section 3 briefly introduces NDT, the methodological environment where these tools can be used. Section 4 presents the main approach of the paper, NDT-Suite. After that, Section 5 points out some real project references, and the paper finishes with a set of conclusions and related work in Section 6.
In the last years, the MDE paradigm has been used in different areas of software development. One of these ar- eas is Web Engineering, which is commonly named Model-Driven Web Engineering (MDWE) [
Furthermore, approaches are usually appearing with different concepts and terminologies in many cases as shown in Domínguez-Mayo et al. [
OOHDM [
UWE [
WebML [
OOWS [
NDT (Navigational Development Techniques) is a model-driven Web methodology that was initially defined to deal with requirements in Web development. NDT has evolved in the last years and offers a complete support for the whole lifecycle. Today, NDT selects a set of metamodels for each development phase that allows all concepts in every phase of NDT to be metamodelled and formally related to other concepts by means of associa- tions and/or OCL [
NDT can be characterized through the next properties:
1) NDT is a MDE methodology that covers the whole lifecycle (the Feasibility Study Phase, the Requirements Phase, the Analysis Phase, the Design Phase, the Implementation Phase, the Testing Phase, and finally, the Maintenance Phase), although it mainly focuses on the Requirements Phase. In this phase, NDT offers a set of techniques to capture, define and validate different kinds of requirements. These requirements are formally defined by a metamodel and they can be traced to the remaining artifacts of the lifecycle by managing them in a suitable manner. NDT uses information previously captured, defined and validated in the requirements phase as the basis for the full development of the system.
2) Despite its application in classical environments, NDT is implemented in relation to the Web supporting special characteristics like navigation, complex interfaces or RIA (Rich Internet Applications). In the requirements validation, NDT is oriented to cover classical techniques like traceability or prototypes, among others, but it is enriched to support these special Web characteristics.
3) The degree of automation of NDT is one of its more relevant qualities. As it is presented in this paper, NDT is fully supported by a set of tools grouped in NDT-Suite.
In conclusion, NDT is a theoretical approach, based on metamodels or transformations, among other elements, which is often used in companies1. As it will be analyzed in the next sections, the tools support of the methodology entails effective support for the application of the methodology in real projects. In fact, in the last ten years, NDT has been were used in a large number of real projects with a high number of companies, either public (such as the Andalusian Regional Ministry of Culture, Education and Sport, and the Andalusian Regional Ministry of Health and Social Welfare, among others) or private (for example, Airbus Military, Tecnocom, Everis, Fujitsu or Ayesa, among others). This is possible due to the fact that NDT is completely supported by a set of free Java tools (which are described in the following sections) grouped in the NDT-Suite.
In this section, a detailed presentation of NDT-Suite is offered.
NDT-Suite works on/with a UML-based tool named Enterprise Architect (EA) [
Finally,
When methodology (especially NDT) is defined with metamodels it is possible to guarantee uniformity, formalized terminology and correct definition, according to that methodology. However, if a suitable tool is not defined, the use of this methodology can result too complex and expensive. Consequently, it is required to offer a tool-based mechanism.
The OMG (Object Management Group) defines metamodel-based languages in terms of two viewpoints: to define a new language (UML alternative) or to extend UML (specializing its concepts and restricting other concepts, always keeping the original semantics of the UML elements).
We have chosen to extend UML in order to define each NDT’s metamodel. This is the NDT-Profile’s aim. Our reasons are: 1) UML is a recognised and widespread standard in enterprise environments; and 2) UML provides great flexibility, expressiveness and a generic extension mechanism for building UML models in particular domains (like NDT).
In this context, NDT-Profile implements within Enterprise Architect each NDT’s metamodel using UML- profiles. Thanks to NDT-Profile is integrated within EA, NDT-Profile offers the chance of having all the artefacts defining NDT easily and quickly, as they are integrated within the EA tool.
To implement each NDT’s metamodel, we have used the Model Driven Generation (MDG) Technologies of Enterprise Architect. MDG Technologies allow extending Enterprise Architect's modelling capabilities to specific domains and notations. In addition, MDG Technologies seamlessly plug into Enterprise Architect to provide additional toolboxes, UML profiles, patterns, templates and other modelling resources.
Finally, it is important to emphasize that all UML-profiles of NDT can be implemented by any tool which provide UML extension mechanisms. In addition, most of these tools provide import and export exchange mechanisms structured by means of XMI format.
As mentioned in Section 3, NDT is a MDWE methodology and therefore, its foundations are based on the definition of models and transformation rules among these models, which entail the production of other models.
As regards transformation rules, NDT uses QVT standard to define its derivation rules. However, QVT notations are not easy to apply in practical environments, as they do not result too friendly for development teams. Concepts such as models, metamodels, transformations or QVT, for instance, are not common notations in the enterprise environment and they seem too abstract and complex.
For these reasons, it was necessary to abstract all these theoretical concepts in order to introduce NDT in enterprise environments and make its application easier. NDT-Driver was specifically developed for this purpose. The graphical interface of NDT-Driver is very simple and intuitive.
NDT-Driver implements a set of Java-based automatic procedures for carrying out each of the QVT transformations defined in NDT on a project specified with NDT-Profile. Furthermore, NDT-Driver can be used in projects through both, a sequential lifecycle and an evolutionary lifecycle. Models to generate can be chosen, once the transformations that must be performed have been selected.
Moreover, NDT-Driver allows choosing the model in order to support projects with evolutionary development cycles. For this, with the “Configure” button, you can select the models you want to transform. By default, all the models are selected. For instance,
In addition, NDT-Driver allows selecting to rebuilt or updated (these options are showed in
Finally, it is interesting to mention that NDT-Driver considerably minimizes the time spent in the design and development of models from different lifecycle phases of NDT. In fact, thanks to this tool, NDT has been successfully applied in practical environments without increasing the cost of the project.
As mentioned above, being successfully used in a large number of real projects at different companies, either public or private, is one of the main advantages of NDT and its support tools (especially NDT-Profile). This fact motivates us to implement NDT and its support tools. However, analysts could still make errors and methodological inconsistencies when defining the system, even though NDT-Profile offers a suitable environment to NDT and it manages the use of NDT artifacts and constraints. This is the reason why we have developed NDT- Quality.
NDT-Quality has a similar interface to NDT-Driver and offers a mechanism to support some of the most classical techniques for quality assurance. The relevant aspect of NDT-Quality is that it exploits the use of MDE to ease the application of this task. Thus, NDT-Quality has two main objectives.
On the one hand, NDT-Quality ensures the quality of use of NDT in every phase of the software development lifecycle. In light of this, it checks all OCL constraints of NDT metamodels and controls how analysts use NDT artifacts, i.e., our tool monitors aspects such as failure to complete definitions; linguistic patterns regarding the identification of artifacts; bad definitions of constraints in artifacts; existence of cycles in class diagrams; ab-
sence of specific data in the Information Storage Requirement3 and existence of isolated Functional Require- ments4 (i.e., NDT establishes that each RF is related to an Actor or otherwise, another RF through a link “in- clude” or a link “extend”); among other aspects.
On the other hand, NDT-Quality aims to ensure traceability among artifacts when MDE transformation rules of NDT are used. This control is necessary because NDT allows analysts to carry out transformations in order to enrich and complete their models. This aspect is crucial to ensure quality in software development framed within any methodology, and even more if this methodology is included within the Model-Driven Engineering para- digm (like the methodology NDT), for traceability is one of the pillars of this paradigm.
Finally, NDT-Quality also provides reports (in different formats) with detailed information on each identified error. In addition, NDT-Quality provides detailed information to resolve each error (see
The previous sections have described the main support tools of NDT, but its suite goes further. NDT-Suite is composed of other tools that cover different objectives. More information about these tools is available on IWT2 Website although these tools are briefly described below.
NDT-Prototype is a tool that generates a set of XHTML prototypes from the Navigation Models5 described in the Analysis Phase in a project developed with NDT-Profile. This tool is not related to the test phase, although it gives very good support for requirements validation.
NDT-Merge [
NDT-Report is integrated into NDT-Profile and allows generating documents (in office formats) from NDT- Profile.
NDT-Glossary [
NDT-Counter [
The real life uncovers many problems that should not take place, although applying methodologies helps ensure quality of results. Both, elaborating documents or the correct application of methodological phases end up as mere formality in many cases. Sometimes, projects framed in a methodology experience can be delayed, changed or patched code, causing inconsistency between the documentation and the final system.
In consequence, we have taken out several conclusions after applying NDT in a real environment:
1) MDE is a good solution for software development and helps reduce cost and time, as well as increases final quality and traceability of software. However, suitable tools have to be developed, in case of being applied, as metamodels, transformations and this specific context are not friendly for development teams.
2) The development process is not enough for an enterprise environment. In a software project there are other aspects like quality assurance, project management or security aspects, among others, that have to be managed according to each organization’s specific rules, frequently based on standards and maturity models.
For these reasons, NDT has evolved again in the last years, and now, a global framework named NDTQ- Framework is proposed, in order to offer a suitable and a global process-based solution for the real application of NDT.
NDTQ-Framework is based on a MOF [
Using an UML Profile-based metamodel on Enterprise Architect, NDTQ-Framework defines six groups of processes that are briefly introduced below:
Software Development Processes, which are defined in terms of NDT lifecycle foundations.
Software Maintenance Processes, which are based on the Information Technology Infrastructure Library (ITIL) [
Testing Processes, which center on the first results of ISO/IEC 29119 [
Software Quality Processes, which are based on ISO 9001:2008 [
Project Management Processes, which focus on some of the practices of Project Management Body of Knowledge (PMBOK) [
Security Processes, which refer to ISO 27001 [
NDTQ-Framework is born after detecting the necessity of managing software quality assurance in an important project carried out since 2004 in liaison with the Andalusian Regional Cultural and Sport Ministry (Andalusia, Spain). However, a problem appeared; if we only defined processes, the evolution would be complex. Normally, processes have to be changed or implemented in order to be adapted to the real needs of the organization. The definition based on static processes was not a suitable solution. For this reason, we started working on a MDE definition and created the metamodel defined in [
In this section, we will analyse the use of NDT-Suite on the recent projects in which we have participated. First of all, we will quickly delimit the scope and heart of each project. This way, the advantages of using NDT-Suite will be easier to understand. Secondly, we will describe the conclusions obtained after the development of each project. Finally, we will state the pros and cons of NDT and our research in order to improve it.
Thanks to NDT has been applied in many projects, companies have issued different feedbacks for each NDT project, which have been very useful for us. These comments are not always positive and some of them criticize the system. Such comments are precisely the most important, because they help us make our tool more efficient for our future projects.
NDT-Suite has and are been used in different companies such as the Andalusian Regional Ministry of Culture; the Andalusian Regional Ministry of Health and Social Welfare; Emasesa and Airbus, among others. Working “hand to hand” with NDT-Suite, all collaborative companies use Enterprise Architect as a tool for managing their requirements and the software/product lifecycle. NDT-Suite provides an additional behavior to Enterprise Architect, defining a particular profile for each project (NDT-Profile), adjusting the tool to the enterprise’s needs and validating the quality of the work done (NDT-Quality), and managing all these aspects with NDT-Driver.
Now, we are going to describe below how we used NDT-Suite in three specific projects: Mosaico [
The Andalusian Regional Ministry of Culture started to develop the Mosaico project in 2004. The idea of this Web application was born from the need to manage all the information on historic heritage in Andalusia. Before Mosaico, there were several systems in charge of managing this information, what caused a lot of problems since the information was distributed, disconnected and different users worked in different platforms. Consequently, the growing need of managing and maintaining historic heritage promoted a project like this. Mosaico was developed by two important companies and it covered 5670 requirements, out of which 3253 were functional requirements.
In this project, we used the first version of NDT-Quality, but we realized that was not enough to ensure the quality of this enormous project.
At present, this project is allowing us applying a general model-driven approach for the systematic detection of requirements inconsistencies. In addition, this approach is adapted and extended to improve the NDT methodology and NDT-Suite. In fact, results obtained after applying this approach in a project like of Mosacio, open a very attractive line for our research works. As NDT is applied in a high number of companies, our next step is the inclusion of this approach in NDT-Suite, particularly in NDT-Quality and NDT-Merge. This implementation will improve NDT-Quality. We want to test the implementation in a complementary set of real projects to try to measure, in an objective way, the number of consistencies that are detected. This work will be made with companies and analyst groups that use NDT for Web software development.
Moreover, the AQUA-WS project was carried out in collaboration with Emasesa in 2011. The former, AQUA-WS stems from the needs of unifying all the systems that operated at Emasesa, a local company that manages the water cycle in Seville (Spain). This company aims to provide and guarantee quality in the water supply, solving each type of incidence that could appear and controlling the proper utilization of water.
Initially, Emasesa handles the following independent software systems:
AQUA-SiC. Clients’ data management. This system is a local application.
AQUA-ReD. Water networks management. This system is based on Web technologies.
AQUA-SigO. Work and project management. This system is based on Web technologies.
The new system, AQUA-WS, also deals with Web technologies (particularly Java J2EE), but its main goal was to design a Decision Support Systems (DSS), to ensure the correct communication between AQUA Core and other subsystems used by Emasesa, providing an easy-to-use FrontEnd interface.
In this project, NDT-Suite aims to automate the steps among each software engineering phase (Requirements, Analysis, Design, Implementation, Testing and Maintenance). The project has a high number of complex Functional Requirements; more than 70% have more than 15 steps, whereas the complete project has 1808 Functional Requirements. To perform tests for each requirement of the project implies 2300 work hours. Time has been re-
duced to 500 hours by using NDT-Driver to generate the test from the requirements defined. Therefore, NDT- Driver saves 1800 working hours.
The latter, the CALIPSONEO project, was developed in 2013 with airbus in Seville (Spain). CALIPSONEO (Advanced Aeronautical Solutions Using PLM Processes & Tools) is an ambitious project that tends to identify, through a comprehensive requirements collection process using PLM (Product Life-Cycle Management) [
In order to effectively manage the work required to complete Calipsoneo, it will be subdivided into three individual subprojects: MARS (Automated Shop-Floor Documentation Updating System), PROTEUS (Process Structure Generation and Use) and ELARA (Generalization to Assembly Oriented Authoring Augmented Reality). These subprojects are independent and teams involved in each of them also differ. However, subprojects have to be coordinated and they have to be correctly integrated because they have common actors who demand common functionality.
One of the main characteristics of this project, which makes it very attractive to our team, is the fact to be more centered on requirements and work policies than in code. For this reason, we need to adapt NDT-Suite to the project’s requirements. Another characteristic is the heterogeneity of the project team, as they are located in different cities in Spain and they can implement the project with very different skills and experiences.
As mentioned before, CALIPSONEO is composed of 3 subprojects. It is worth mentioning that NDT-Profile was modified to take into account this factor, by extending the original profile to offer a ‘project composed of subprojects’. Monthly, a merge task was performed to compile the information of the 3 projects on a master NDT-Profile project.
CALIPSONEO project’s MARS and PROTEUS deal with developing a strong work guideline or a PLM methodology, so that, to perform these projects with NDT-Suite, it was very important to lead the whole work to the requirement, analysis and testing phases.
In relation to testing in CALIPSONEO, NDT-Suite was used as a reference, so that a new guideline could be provided to perform tests efficiently and in less time, by working together with the development team as shown in [
The application of MDE becomes complex, monotonous and very expensive, if no software tool automates the process. In consequence, NDT has defined a set of supporting tools called NDT-Suite in order to meet this need. In the last ten years, NDT and NDT-Suite have been used in a large number of real projects. The main advantage of NDT-Suite is that it reduces the cost of ensuring quality and traceability of the deliverables carried out during the project development phases. This objective is achieved by means of NDT-Quality. In addition, we continue improving NDT-Quality. For example, we are studying how this tool may allow defining Key Process Indicators (KPI) in order to improve the quality assurance process when NDT methodology is used in real projects. Besides, we are also working in the use and implementation of QuEF (Quality Evaluation Framework) [
We are examining and developing NDT-Merge, which is closely related to NDT-Quality, in the quality assurance context. NDT-Merge aims to identify possible conflicts and conciliate requirements on large projects where each working team runs tasks in a different module system.
Moreover, NDT-Suite also reduces the cost of deliverables of one phase because they are obtained from other deliverables of the previous phase. This objective is achieved using NDT-Driver, which is a very powerful and useful tool to define information systems. As long as we know that NDT-Driver is not functional enough, we propose several improvements as future research. On the one hand, we are studying how to improve and enrich test generation from Functional Requirements (which are defined using UML Activity Diagrams) with new techniques for selecting and reducing redundant testing paths. On the other hand, we suggest analyzing how to incorporate heuristics in the generation of some models. For instance, in the generation of the Navigation Model of the Analysis Phase, NDT-Driver should identify aspects, such as the graph is not connected, by means of the War shall algorithm.
Additionally, this paper briefly presents a solution for the business process definition focused on a model-based approach. This solution is implemented in Enterprise Architect and a concrete solution, named NDTQ-Framework, is offered. NDTQ-Framework has been used in several real projects from which some relevant conclusions can be deduced.
Firstly, a model-based mechanism to define business processes can be very useful but, if we do not offer concrete syntaxes to represent them, it is difficult for companies to use it. UML Profiles and UML-based tools seem to be good options to represent business processes in the software processes environment, since the development team usually knows this notation.
However, our NDTQ-Framework has one limitation: today, it focuses on proposing a software process definition mechanism. In this context, orchestration and execution processes are manually and/or unilaterally performed by each involved role in each process. This fact makes business processes monitoring and measurement become a difficult task. For this purpose, we are already doing research on how to suggest a BPM lifecycle for business software in order to perform continual improvement. This BPM lifecycle is supported by PLM4BS [
To conclude, we are working on how to extend NDT to provide support at the implementation phase of a Web project. Only few Web Engineering methodologies support the systematic development of Web applications with a mature CASE tool. Thus, some methodologies such as OO-H with Visual-WADE [
This research has been supported by MEGUS project (TIN2013-46928-C3-3-R) of the Ministerio de Ciencia e Innovación and NDTQ-Framework project (TIC-5789) of Junta de Andalucía, Spain. This paper has also been supported by the Universia Foundation through its student grant for PhD students.