Virtual Seminar: Static Microservice Architecture Recovery Using Model-Driven Engineering

Speaker: Nuha Alshuqayran

Abstract: In recent years, the software development industry has witnessed effective changes which have led to the development of new architectural styles of software. In this respect, this seminar presents research work aimed to support the microservice architectural style. Software developed using the microservice architecture is complex and distributed and involves several technologies and components. Reverse engineering and specifically Architecture Recovery can aid in the understanding and maintenance of microservice systems. We present how we are developing our MicroService Architecture Recovery (MiSAR) approach, which allows software engineers to recover architectures of microservice systems. MiSAR follows Model Driven Engineering and includes different models such as modelling languages for Microservice architecture and undertakes transformation of models as a set of mapping rules for microservice based systems. In the seminar, we will demonstrate how our approach is capable of obtaining expressive architectural models of microservice systems in an effective way.

Virtual Seminar: Multiparty Session Programming with Global Protocol Combinators

Speaker: Dr Rumyana Neykova

Abstract: Checking compatibility of concurrent programs, i.e. if two or more processes can communicate without errors, is a pressing problem in the verification community.  State-of-the-art verification tools are limited to model-checkers and SMT solvers, which are foreign to many developers and too computationally expensive to use in practice.
In this talk, I will demonstrate a new approach to programming and verification of concurrent and distributed programs. The approach relies on a few compositional constructs, called global protocol combinator (GPC). I will show an encoding of a popular theory for communicating programs into GPC.  Such encoding reveals that the problem of checking compatibility can be reduced to the standard problem of variant/record subtyping. This realisation allows type systems of existing general-purpose programming languages to be utilised for static detection of concurrency bugs, without the need for external model checkers. I will show an implementation of our encoding in native OCaml and will discuss its expressive power and performance. We have tested the approach by implementing and verifying a plethora of concurrency algorithms, as well as several popular communication protocols (DNS, OAuth, and SMPT).

The BSEL seminar was held at WLFB BSEL Lab (3rd floor of Wilfred Brown) at 3:00PM.

A talk from Dr Lucas Gren titled ‘Research on affect in SE (new angles from social psychology research’.

There has been an increase in the interest of human factors in SE in recent years. Most new research fields that start to look at psychological aspects, start with individual psychology since people are different and that makes intuitive sense to everyone. While these are important aspects, the social psychology research field also highlights the importance of a profound understanding of the complex interplay between social context and affect, since affect influence cannot be explained in isolation. In this talk, I would like to introduce under which judgemental circumstances people are affected by affect and suggest how to add social context to studies on affect. I also reflect on why the individual focus in human factors of SE is so rigid and attribute much of it to an over-belief in the benefits of digitalization (e.g. biometrics). Another part of the problem, the way I see it, is that these new digital solutions aim at maximizing happy feelings while social psychology studies suggest that is not how to maximize effectiveness or long-term high motivation in employees.

The BSEL seminar was held at WLFB 207/208 (2nd floor of Wilfred Brown) at 2:00PM.

A talk from Dr Nour Ali titled ‘Software architecture to Everything’ (slides can be found here).

Software architecture is the structure or structures of a software system. A software architecture of a system is, usually, represented by a model that graphically shows software elements and their interactions. Explicit software architectural models are used as critical knowledge to ensure the quality, understanding and evolution of systems.
In this talk, I will motivate you to use software architecture as a tool to manage software. I will demonstrate how we can combine software architecture with formal methods, static/dynamic analysis, optimization techniques and others. I will first start by showing the importance of an architectural model during the evolution and maintenance of a legacy system. I will then focus on architectural models of adaptable, distributed and mobile systems. I will also give you an overview of the latest projects I am working on such as the recovery of microservice architectures, the support of smart mobile and Internet of Things applications and the self-adaption to resource constraint environments.

The BSEL seminar was held at WLFB 207/208 (2nd floor of Wilfred Brown) at 2:00PM.

A talk from Dr Andrea Capiluppi titled ‘The Relevance of Application Domains in Empirical Findings’ (slides can be found here).

Research on empirical software engineering has increasingly used data from online repositories or collective efforts. The latest trends for researchers is to gather as much data as possible to (i) prevent bias in the representation of a small sample, (ii) work with a sample as close as the population itself, and (iii) showcase the performance of existing or new tools in treating vast amount of data. The effects of harvesting enormous amounts of data have been only marginally considered so far: data could be corrupted; repositories could be forked; and developer identities could be duplicated. In this paper we posit that there is a fundamental flaw in harvesting large amounts of data, and when generalising the conclusions: the application domain, or context, of the analysed systems must be the primary factor for the cluster sampling of FOSS projects. In this talk we analyse a sample of software systems, and using an existing approach based on Latent Dirichlet Allocation (LDA), we derive their application domains. We extract a suite structural OO metrics from each project, and cluster projects by domains: we show that most of the chosen metrics come from different populations, and are based on the application domains.