Software Engineering and Architectures

SEA Group investigates research topics related to Software Engineering and Architecture, both from a functional and non-functional viewpoint.

SEA Group is strongly focused on architectural design from the specification to the verification of complex systems. The undertaken research concentrates on SA description techniques, and their use to improve and to facilitate the verification and validation phases of a system. In this line, SEA Group has a strong background in using architectural descriptions to: i) automatically synthesize mediators and coordinators for both component-based systems and service-oriented systems, ii) generate integration and regression test cases for testing the system implementation conformance to the SA description, iii) run formal verification of run-time evolving systems in the presence of uncertainties. Software models interoperability/extensibility, extraction/elicitation are other research topics SEA Group is recently focused on.

Early non-functional analysis of critical software systems is based on models, whose role is to provide structural, behavioral, deployment and non-functional information needed to generate and solve non-functional models. The main problems that have been recently tackled in this direction are: interpretation of non-functional analysis results and architectural feedback generation, performance-based software refactoring, context-aware non-functional analysis, tradeoff analysis based on optimization models.

Models have been increasingly leveraged from mere documentation to first-class status, thus becoming primary artifacts during software development. Therefore, they can serve as a formal basis for both implementing and analyzing systems. Our research in Model-Driven Engineering focuses on describing the relevant properties of systems by means of specialized languages with an emphasis on their coordination and interoperability. The main aspects under investigation are bidirectionality, consistency management, co-evolution, and model versioning and differencing.