Centro de Investigación en Métodos de Producción de Software - ProS

investigadores 22
subvenciones 209.741 €
contratación 75.858 €

Principales clientes


Líneas I+D+i

  • Ambient Intelligence.
    Ambient Intelligence (AmI) proposes the creation of intelligent environments that adapt to the needs, preferences and interests of the people who live there, helping them to carry out their daily tasks by integrating computing in the environment of the person, so that computers are not perceived as differentiated objects. This research line studies and develops methods of Software Engineering to provide rigour to the development of AmI systems. The general objective of the line is to apply the principles and techniques of the Model Driven Development to develop this type of systems improving its quality, productivity and maintainability. All these desirable characteristics can be achieved by developing Domain Specific Languages (DSL), Model-to-Model and Model-to-Text transformations, applying Software Product Lines to the production of such systems (to improve reusability and productivity in delimited domains), and to apply the principles of Autonomous Computing to be able to implement systems auto-configurable and dynamic..
  • Genomic Information Systems.
    Conceptual modelling is essential to specify an information system. However, their application is not limited to domains related to Computer Science. Medicine, bioinformatics and more specifically, bioinformatics applied to Human Genomics, are some fields that can take advantage of all the benefits that conceptual modelling brings. Due to the increasing interest of the Human Genome in the scientific community, analysing which of those benefits really impact in the specification of a genomic information system is worth to explore. This research line focuses on translating the satisfactory and traditionally well-applied techniques of the model-driven software development (MDSD) into the Bioinformatics field and its applications in clinical environments. The main idea is to define models that facilitate the comprehension of the complex biological mechanisms associated to the Human Genome and its relation to specific diseases. These models will serve to descriptive purposes, but also as a guide to discover new therapeutic targets. The ultimate goal of this research line is to define new scientific strategies as well as new software tools that can be used in practice by researchers and clinicians that dedicate their research to the human genomics and diseases..
  • Human-Computer Interaction.
    Designing an information system involves a structural and functional specification, as well as, a precise interaction with end users. Considering the huge impact that user interfaces have in the success or failure of software products, this research line combines the experience of interaction modeling from software engineering community with studies from human-computer interaction community. We aim to specify all the interaction features through conceptual models that represent the system. These models have an abstract view where interfaces are defined independently of platform, and a more concrete view where the analyst can specify features that are platform-specific. The final goal is to generate the code that implements all the features expressed through both views (abstract and concrete). Usability is considered when conceptual models are built. We propose a set of conceptual primitives to represent usability features with the aim to optimize the usability from end users¿ point of view. We also work with a requirements elicitation method to capture usability requirements from the early steps of the software development process. This method consists in using decision trees to guide interviews with end user with the aim to know his visual preferences. The approach can be included in a model-driven method in such a way that these requirements generate part of the conceptual model. The approach is based on textual questions extracted from design alternatives. End-users must choose which alternative is the most suitable according to their requirements (or constraints). Usability guidelines can help the end-user select an alternative throughout the tree structure. At the end of the process, we have a design for our system based on the end-user¿s requirements. Finally, this research line also conducts usability evaluations through heuristics and with end-users. At the end of the evaluations we report a list of improvements to enhance the software quality..
  • Method Engineering.
    Different methods and tools for the analysis, design, implementation and/or automatic generation of software systems have been proposed in the context of several research areas related with the construction of software. Nevertheless, most of them has been vaguely defined and without an engineering basis. Moreover, the meteoric evolution of the own software systems makes necessary the seamless revision of the suitability of the proposed methods and tools. Method features, such as agility or adaptivity, can be possibly ideal requirements of the methods for the development of new trends of software. Therefore, a deep pragmatic and social revision of these methods and tools is necessary, together with a revision of the process and techniques applied during the design and application of them. This research line aims at studying in a theoretical and practical way the foundations of methods, techniques and tools for software development. We apply the Model Driven philosophy; therefore, the model-driven method engineering results on a paradigm for method engineering where models play a key role in the design, construction, and adaptation of methods, techniques, and tools for the development of software systems..
  • Model-driven development (MDD) and automatic code generation.
    Model Driven Development (MDD) is an aproach for software system development based on the separation between the specification of the structure and system functionality and the final implementation using specific implementation platforms. The aim is to increase the level of abstraction in software development by giving greater importance to conceptual modeling and the role of this models in software development. We use object-oriented conceptual modeling annotations to specify the structure and functionality of the system to be built. We also hold a presentation model that allows us to specify the manner a end user interacts with the system to provide and obtain data and information. The complete and precise specification of the static, dynamic and presentation aspects of the information system in the conceptual models allows the automatic generation of code. This process is an important step for the industry; in this context, we have experience with the development, implementation and use of advanced software development environments that ensure easy, agile and automatic generation of software products that are the correct representation of their corresponding conceptual models. In addition to this conceptual models, we work with specialized models for web application and ambient inteligent at specification requeriments level with organizational models..
  • Organizational Modeling and Requirements Engineering.
    Organisational modelling is a vital activity to build software systems that are aligned with organisational objectives. The research line in organisational modelling and requirements engineering promotes the alignment of various organisational models to support organisational development and evolution. Our objective in this research line is to enrich requirements engineering tasks with a set of methods, tools, and techniques to capture the properties of desired software products. This research line is focused on the definition of methods based on the model-driven and model-based engineering paradigms. As a result, our methods automate the processes from requirements to code; we are bridging the gap between the problem space and the solution space. We work on the design of new languages and modelling notations that facilitate requirements specification in a light and modular way. Our current methods support the specification of business processes from a communicational perspective, goal perspective, and design perspective. Model to model transformation guidelines support the process from requirements to code. Our methods, techniques, and guidelines are implemented in Eclipse platforms..
  • Software Testing and Quality.
    Trends such as globalisation, standardisation and shorter lifecycles place great demands on the flexibility of the software industry. In order to compete and cooperate on an international scale, a constantly decreasing time to market and an increasing level of quality are essential. Testing is at the moment the most important and mostly used quality assurance technique applied in industry. However, the complexity of software and hence of their development amount is increasing. Modern systems get larger and more complex, as they connect large amounts of components that interact in many different ways and have constantly changing and different types of requirements (functionality, dependability, security, etc.). Data processing that impacts all aspects of our life is increasingly distributed over clouds and devices. This leads to new concerns to emerge, such as availability, security, and privacy. Consequently, the development of cost-effective and high-quality systems opens new challenges that cannot be faced only with traditional testing approaches. New techniques for systematization and automation of testing throughout the software and system life-cycle are required. Even though many test automation tools are currently available to aid test planning and control as well as test case execution and monitoring, all these tools share a similar passive philosophy towards test case design, selection of test data and test evaluation. They leave these crucial, time-consuming and demanding activities to the human tester. This is not without reason; test case design and test evaluation through oracles are difficult to automate with the techniques available in current industrial practice. The domain of possible inputs (potential test cases), even for a trivial method, program, model, user interface or service is typically too large to be exhaustively explored. Consequently, one of the major challenges associated with test case design is the selection of test cases that are effective at finding flaws without requiring an excessive number of tests to be carried out. Automation of the entire test process requires new thinking that goes beyond test design or specific test execution tools. These are the problems that this research group is working on. One of the most interesting results of the group is the TESTAR tool (testar.org) for automated testing at the Graphical User Interface level..
  • Web Engineering.
    Model-based web engineering methods have improved the quality and efficiency of Web applications development. These methods use sound conceptual models to gather a rich specification of the application to be developed. The main advantage of this approach is that from those models is feasible to systematically generate the source code which implements the specified Web application. Following this reasoning line, in this research area we have addressed how to build such descriptive models and how to transform models to web code. Specifically, we have developed approaches to: (1) improve the requirements gathering for Web Systems, (2) provide adaptive and accessible web applications, (3) generate web services according to the best practices from the SOA community and (4) include rich interfaces and collaborative patterns from the Web 2.0 domain..