Artifact Centric Dynamic Software Architecture Reconstruction
Summary
Introduction: Understanding interactions within software architecture has been an important
domain for researchers and business stakeholders. Implementation of a software's
architecture can help understand these interactions in detail. However, a software architecture
representation showcasing interactions of complex many-to-many type requires a
defi?nitive approach.
Method: In this thesis, ?firstly, we showcase the existing understanding of interactions,
and how they are modelled when representing a software system. We further propose
an interaction discovery and modelling algorithm to model interactions in a software
application dynamically. We follow an artifact-centric process modelling approach and
de?fine an extended Petri net modelling framework, where the interaction nodes between
artifact communications are modelled using choreographies.
Results: Our solution design presents steps for interaction discovery, where we fi?rst
capture the dynamic software event logs, consisting of artifacts and their interactions.
We defi?ne further steps to model dynamic interaction nodes using choreographies and
create an algorithm to generalize an artifact's lifecycles. We model these artifacts using
our extended Petri nets formalism, and together they represent the technical architecture
of the system. We employ a software architecture modelling approach which segregates
the architecture at various abstraction levels. The most detailed level represents the
artifact-centric view of the dynamic software system, showcasing complex interactions
and their respective cardinalities.
Discussion: These results suggest that it is feasible to extract generalizable, objectively
transparent architectural model of a software system by dynamically executing and
generating lifecycles of each software artifact. In this process, we uncover their true interactions
and can model them using an extended version of existing modelling formalisms.
The software architecture reconstruction represents redefi?ning the architecture at various
abstraction levels, where the most detailed level represents the artifact-centric dynamic
software interactions.