Authors:
Alvine Boaye Belle
1
;
Ghizlane El Boussaidi
1
and
Hafedh Mili
2
Affiliations:
1
Université du Quebec, Canada
;
2
UQAM, Canada
Keyword(s):
Reverse Engineering, Architecture Recovery, Layering Principles, Optimization, Clustering, Software Maintenance.
Related
Ontology
Subjects/Areas/Topics:
Artificial Intelligence
;
Business Process Management
;
e-Business
;
Enterprise Engineering
;
Enterprise Information Systems
;
Knowledge Management and Information Sharing
;
Knowledge-Based Systems
;
Service-Oriented Software Engineering and Management
;
Software Change and Configuration Management
;
Software Engineering
;
Symbolic Systems
Abstract:
Recovering the architecture of existing software systems remains a challenge and an active research field in
software engineering. In this paper, we propose an approach to recover the layered architecture of object
oriented software systems. To do so, our approach first recovers clusters corresponding to the various responsibilities
of the system; the challenge in this context is to find the appropriate level of granularity of
these responsibilities. Then the recovered clusters are assigned to layers using an optimization algorithm
that exploits the principles of the layering architectural style. The approach was validated on five Java open
source systems.