Former PhD Students

Anacleto Correia

Anacleto Correia, M.Sc. (ISEGI/UNL)Supervisor: Fernando Brito e AbreuProgram: DIN (FCT/UNL)Thesis title: Quality of Process Modeling Using BPMN: A Model-Driven ApproachDefense: May, 2014

Abstract:

Context: The BPMN 2.0 specification contains the rules regarding the correct usage of the language’s constructs. Practitioners have also proposed best-practices for producing better BPMN models. However, those rules are expressed in natural language, yielding sometimes ambiguous interpretation, and therefore, flaws in produced BPMN models.

Objective: Ensuring the correctness of BPMN models is critical for the automation of processes. Hence, errors in the BPMN models specification should be detected and corrected at design time, since faults detected at latter stages of processes’ development can be more costly and hard to correct. So, we need to assess the quality of BPMN models in a rigorous and systematic way.

Method: We follow a model-driven approach for formalization and empirical validation of BPMN well-formedness rules and BPMN measures for enhancing the quality of BPMN models.

Results: The rule mining of BPMN specification, as well as recently published BPMN works, allowed the gathering of more than a hundred of BPMN well-formedness and best-practices rules. Furthermore, we derived a set of BPMN measures aiming to provide information to process modelers regarding the correctness of BPMN models. Both BPMN rules, as well as BPMN measures were empirically validated through samples of BPMN models.

Limitations: This work does not cover control-flow formal properties in BPMN models, since they were extensively discussed in other process modeling research works.

Conclusions: We intend to contribute for improving BPMN modeling tools, through the formalization of well-formedness rules and BPMN measures to be incorporated in those tools, in order to enhance the quality of process modeling outcomes.

Miguel Goulão

Miguel GoulãoSupervisor: Fernando Brito e AbreuProgram: DIN (FCT/UNL)Thesis title: Component-Based Software Engineering: a Quantitative ApproachDefense: December, 2008Abstract: Background: Often, claims in Component-Based Development (CBD) are only supported by qualitative expert opinion, rather than by quantitative data. This contrasts with the normal practice in other sciences, where a sound experimental validation of claims is standard practice. Experimental Software Engineering (ESE) aims to bridge this gap. Unfortunately, it is common to find experimental validation efforts that are hard to replicate and compare, to build up the body of knowledge in CBD.

Objectives: In this dissertation our goals are (i) to contribute to evolution of ESE, in what concerns the replicability and comparability of experimental work, and (ii) to apply our proposals to CBD, thus contributing to its deeper and sounder understanding.

Techniques: We propose a process model for ESE, aligned with current experimental best practices, and combine this model with a measurement technique called Ontology-Driven Measurement (ODM). ODM is aimed at improving the state of practice in metrics definition and collection, by making metrics definitions formal and executable, without sacrificing their usability. ODM uses standard technologies that can be well adapted to current integrated development environments.

Results: Our contributions include the definition and preliminary validation of a process model for ESE and the proposal of ODM for supporting metrics definition and collection in the context of CBD. We use both the process model and ODM to perform a series experimental works in CBD, including the cross-validation of a component metrics set for JavaBeans, a case study on the influence of practitioners expertise in a sub-process of component development (component code inspections), and an observational study on reusability patterns of pluggable components (Eclipse plug-ins). These experimental works implied proposing, adapting, or selecting adequate ontologies, as well as the formal definition of metrics upon each of those ontologies.

Limitations: Although our experimental work covers a variety of component models and, orthogonally, both process and product, the plethora of opportunities for using our quantitative approach to CBD is far from exhausted.

Conclusions: The main contribution of this dissertation is the illustration, through practical examples, of how we can combine our experimental process model with ODM to support the experimental validation of claims in the context of CBD, in a repeatable and comparable way. In addition, the techniques proposed in this dissertation are generic and can be applied to other software development paradigms.

Miguel Pessoa Monteiro

Miguel Pessoa MonteiroSupervisor: João Miguel Fernandes (Univ. Minho)Program: PDINF (UMinho)Thesis title: Refactorings to Evolve Object-Oriented Systems with Aspect-Oriented ConceptsDefense: March, 2005Abstract: Software engineering tools should support complete separation of concerns, by enabling the deployment of each different concern in its own unit of modularity. Unfortunately, current tools and languages – including those supporting the object-oriented programming paradigm – fail to provide a complete and effective support for the separation of all concerns. Undesirable phenomena such as code scattering and code tangling ensue. Aspect-Oriented Programming is a new programming paradigm capable of modularising crosscutting concerns. Aspect-oriented programming complements existing programming paradigms, including object-oriented programming, with constructs that provide a fuller separation of concerns. Refactoring is a technique to restructure program source code in order to improve its underlying design and style while preserving the externally observable behaviour. “Code smells” help to detect inadequate structures and designs, which are then gradually removed through refactoring processes. There is a prospect of aspect-oriented programming becoming a mainstream technology in the near future. This begs the question of how to deal with a large base of object-oriented legacy code when aspect-orientation becomes standard practice. AspectJ's backward compatibility with Java opens the way for refactoring existing Java applications to leverage the concepts and mechanisms of aspects. This requires a prior idea of good style for aspect-oriented source code, something yet to be developed and matured. This thesis contributes to the definition of a new style appropriate to aspect orientation. To this effect, this thesis documents a collection of novel refactorings enabling the extraction of crosscutting concerns from object-oriented legacy source code and the subsequent restructuring of the aspects thus obtained. In addition, this thesis presents a review of traditional object-oriented code smells so they can be used as indicators of latent aspects in object-oriented source code. Finally, this thesis proposes several novel aspect-oriented code smells. We validate the refactorings through an illustrative refactoring process.

Fernando Brito e Abreu

Fernando Brito e AbreuSupervisors: José Manuel Tribolet (IST/UTL) & Pedro Guerreiro (FCT/UNL)Program: DEIC (IST/UTL)Thesis title: Engenharia de Software Orientado a Objectos: uma Aproximação Quantitativa (in Portuguese)Defense: June, 2001Abstract: This dissertation fits in the realm of the emerging scientific area named Experimental Software Engineering. We propose and advocate the use of quantitative methods in Software Engineering where, traditionally, qualitative-based approaches have been the rule. The quantitative emphasis has the objective aim of expressing and assessing Software Quality. The quantitative approaches proposed herein are instantiated in the scope of the object oriented paradigm and targeted to the product quality. We formalize a set of software complexity metrics named MOOD (Metrics for Object Oriented Design). These metrics, expressed with a formal specification language, OCL (Object Constraint Language), are evaluated against several validation criteria, as those of Measurement Theory, besides being compared with other proposals in the literature. We demonstrate how is it possible to use experimentally those metrics as explicative variables of software quality characteristics, such as reliability or maintainability.

To facilitate the construction of a versatile computational support to collect the design metrics, as required to validate experimentally the hypothesis formulated herein, we have conceived a textual language to express object-oriented designs, named GOODLY (a Generic Object Oriented Design Language? Yes!). This language is used as an intermediate formalism in the MOODKIT tool, whose architecture we present.

We approach the problem of software system modularization according to structural criteria, that is, guided by cohesion and coupling among classes. We demonstrate that besides being possible to assess quantitatively the modularity of a given system, we are able to suggest solutions that optimize it given the adopted criteria. We have verified experimentally that systems produced in several application domains are far from coping with the desiderata of structural modularization as proclaimed in the Software Engineering literature.

To support the comparison, assessment and generation of optimized modularization architectures, we have developed another tool named MOTTO (MOdularity Trial Tool for Object-oriented systems) that receives data from MOODKIT and operates jointly with a statistical analysis tool to achieve the required purposes.

The most important outcome of this thesis is the proof of practicability of quantitative analysis applied to software systems built according to the object-oriented paradigm. Several quantitative techniques originating from Applied Statistics and Econometrics, such as Multivariate Estimation and Cluster Analysis, as well as several types of adherence and independence tests are applied.