Scientific and Technical Objectives

 

 

I.  Increasing productivity of web software development, focused on Java, based on a domain driven design, MDA techniques and a metaframework

 

The proliferation of frameworks and tools, has both increased the required skills of web engineers (for choosing, mastering, integrating and maintaining), and has affected considerably their productivity. A key objective of the project is the usage of domain driven design based on a metaframework that abstracts from the frameworks, together with an MDA approach which generates the application from the metaframework onto the de-facto standard and popular frameworks. The main indicators for this objective are:

 

  • 20% reduction in development time of standard web applications, measured through its evaluation in a user group, achieved in M24.
  • 30% reduction of required skills evaluated through an index which is calculated by the combination of number of different libraries and their complexity needed to implement a set of tasks, achieved in M24.
  • Integration of at least three frameworks in the metaframework, achieved in M12.
  • Development of plug-ins for most popular IDEs (netbeans, eclipse) for assisting in the development process. A first production of Eclipse plug-in is provided in M12, while production ready versions of plug-ins for Eclipse and Netbeans will be released in M21.
     


II. Increasing software productivity by using mashup oriented development

 

This objective will research on how web application development can be speeded up thanks to the reuse of existing services and components, as well as the defined methodologies. This objective is spread during the whole project duration.


The project will research on several types of mashups:

 

  • Mashup web services. The usage of mashup web services such as Google Maps or Yahoo Pipes has proven a successful engineering method for speeding up development. A key objective of this project is to research on how these mashup web services descriptions can be successfully used in the application domain model description, favouring the web service dynamic discovery and composition. According to the milestone M12, the Romulus metaframework will be able to provide, consume and compose REST services in the development and provide a certain number of pre-packaged services (maps …).
  • Data-level mashups. The integration of data from heterogeneous sources is a very time consuming task that will be researched in the project taking advantage of Semantic Technologies. A set of methodologies, best practices and guidelines will be defined in order to help the framework user during complex data mashups processes, while a semantic approach will be used to be able to publish internal data and import external data from the open web using RDF as interchange format, with no programming skills. The Milestone for this task is M12.
  • Portal mashup services. Although portal server technologies such as portlets offer an environment for the access and personalisation of applications by the user, they are requesting a considerable overload in the development of their components. A key objective of this project is to research on how the definition of portal mashup services can reduce considerably the development time and can increase its reliability. According to the Milestone M21, the framework will provide portal services consumed by portal components and scripting languages.
  • Enterprise mashup services. A key objective of this project is to research on how the definition of an enterprise mashup service can combine information from enterprise search engines, Web services, messaging systems, BI engines and data integration solutions with information from external services. The enterprise services description will be available to be used in the application domain description, in order to be easily and efficiently integrated in the developed application. According to the M21, a set of well identified enterprise services will be available for integration.

 

 

III. Enhancing the quality of SW development by involving soft goals such as reliability, traceability, security and performance, as well as other quality attributes from the conception of the software

   

In the software development, soft goals such as security or scalability are not usually taken into account from the very beginning in the development process. Soft goals are usually related to quality (non-functional) requirements and do not have a clear-cut criterion for their satisfaction, nor can be allocated to a small subset of elements in the architecture. Romulus will research on security, traceability, reliability and performance soft goals, and their integration in the development process, based on the identification of soft goals-aspects and the usage of annotations against these aspects in the metaframework.


Soft-goals annotations based on aspects, used both in the modelling and the implementation phases contribute to automatic code and tests generation.

Verifiable indicators for this objective are:

 

  • Identification and support for a meaningful number of soft-goals related annotations (3 per soft-goal, M12).
  • Reduction in the effort used for tests generation. It is expected to reach 50% of reduction in effort in tests generation, M22.

 

In addition, independently developed projects which are however functionally dependant (e.g. required libraries) does not have any form of traceability at development level (i.e. no propagation of issues across the projects). ROMULUS will research on the semantic annotation of external libraries and their integration in the bug tracking and control version system, with so-called semantic powered integration development environment.


The introduction of security concerns into the standard development life cycle is still a pendingcoursework in current practice. The application of Domain Driven Design Frameworks can facilitate the semantic annotation of security concerns related with the domain semantic. This approach, together with automatic generation of code respecting security concerns and automatic generation of hacking tests, can drastically reduce the risk of introducing security holes by developers who need easiness and rapidity of development.

 


IV. Balance between client technologies, server technologies and scripting languages

 

Current trends in web application development are changing the balance between client and server technology. A key research objective of this project is to research on the symbiotic combination of client and server technologies and how this can enable more usable application and faster integration or creation of pure client side technologies.


Traditionally all interaction and state storage was managed by the server. The browser's function was to act as a very thin client. While this is desired for certain types of applications, it makes development much harder for complex applications with high interactivity and larger needs for application state. With the appearance and generalization of richer client side technologies it is now possible to use the browser as a smarter client, potentially reducing development time while improving the desired characteristics of the developed application.


In this new scenario it is of key importance to be able to determine what should be developed in the client side and what should be developed in the server side. Also, the existing server side technologies usually require slower development cycles than the client side which is why the importance of server side scripting technologies to reduce the length of those cycles is increasing.


A key research objective of this project is to research on the symbiotic combination of client and server technologies and how this can enable more usable applications and faster integration or creation of pure client side technologies. It will also integrate tools for using server side scripting technologies in existing environments, such as portal applications.

The following indicators will be used for verifying this objective:

 

  • Integration of 3 server side scripting languages (Groovy, Server-side JavaScript, …) in Liferay Portal Server. Prototypes will be available in M9 while production ready components will be released in M17.
  • Provision of 1 data based pure client side component for end users apps development and bias for its generation from the metaframework. A prototype will be available in M13 while production ready components will be released in M21.
  • Provision of a composition and configuration panel of simple applications, integrated in Liferay Portal Server. A prototype will be available in M13 while production ready components will be released in M21.