Title: Eliciting correlations between components selection decision cases in software architecting
Subject: Software engineering
Level: Basic
Description: BACKGROUND
Complex software systems require adequate design phases before proceeding to the implementation activities: in fact, the design allows to study the intended development solutions before any code has been even written, and check for required properties, possible pitfalls, and so forth. In this respect, software architecting is one of the relevant design phases of software engineering: over the years it has gained more and more importance as not only carrying by the intended structure of the system, but also the decision process that brought the experts to a certain design solution.

ORION is a research project that investigates decision cases among software components and their origins. In particular, the project collected a number of scenarios where a choice needed to be done on whether developing a component in house, outsourcing the development, buying a component off-the-shelf (COTS), or looking for open sources. Each decision case is documented in an appropriate format, driven by the GRADE taxonomy, that provides a shared vocabulary for defining decision cases.

The goal of this thesis is to inspect the collected decision cases to elicit recurring correlations between elements involved in the decisions. For example, "whenever the product is safety-critical there is no open source alternative between the available options". Since the number of nodes and edges grows exponentially with the number of cases, this discovery is meant to be done by means of an apposite automated way. To summarise, the student is supposed to:
- select appropriate method(s) for automatically detecting correlations between decision cases;
- run the correlation detection methods and analyse the results.

It is worth mentioning that the collected decision cases are stored in a graph database (Neo4J); therefore some adaptation/conversion work might be required to make decision case data compatible with the correlation detection mechanism.

The thesis is expected to appropriately investigate and report about the selection of an appropriate mechanism for eliciting correlations between decision cases. Moreover, the report is expected to discuss relevant findings as elicited by the correlation detection(s).
Start date:
End date:
Prerequisites: A solid knowledge of object oriented programming (in particular Java and/or Javascript) is required. Knowledge of graph theory can help.
IDT supervisors: Antonio Cicchetti
Examiner: Jan Carlson