Though the framework does not support the recov-
ery of the layered architecture, its results helped us
adjust our skip-call cost parameter compared to the
intra and back-call cost parameters.
Tzerpos and Holt (1996) propose a “hybrid” pro-
cess to reconstruct software architectures. This pro-
cess is based on various steps including: selecting
the domain model; retrieving the facts from the
source code and from the files' names; clustering the
facts into subsystems based on naming conventions,
directory structure or automatic clustering tech-
niques; creating successive structural diagrams that
are refined by the developers. Müller et al., (1993)
propose an approach aiming at supporting users in
discovering, restructuring and analyzing subsystem
structures using a reverse engineering tool. The pro-
posed process involves the identification of the lay-
ered subsystem structures. The layered structure is
obtained through the clustering of system's packages
into building blocks using composition operations
among which the composition by name. Similarly to
(Tzerpos and Holt, 1996) and (Müller et al., 1993),
our layering recovery process involves a naming-
based clustering step. However, our clustering step
is focused on the recovery of the layers' responsibili-
ties while theirs targets the ease of the system's man-
ageability and understandability. Besides, in
(Tzerpos and Holt, 1996) and (Müller et al., 1993)
the maintainer has to intervene in most of the recov-
ery process's steps, while in our approach the main-
tainer only needs to validate the layering results.
6 CONCLUSION AND FUTURE
WORK
In this paper, we proposed an approach that aims at
recovering the layered architecture of object oriented
systems. This approach attempts to cluster the pack-
ages of the system under analysis to build clusters of
the system’s responsibilities. The resulting clusters
are then assigned to layers so as to minimize the
layers’ dependencies that violate the layered archi-
tecture and maximize dependencies between adja-
cent layers. To do so, we introduced a set of layers
dependency metrics and we used these metrics to
formalize the layering of clusters of packages as an
optimization problem. The challenge in this context
is to find the appropriate granularity to consider
when clustering responsibilities.
We applied the approach on five open-source
systems and we manually assessed the resulting
layered architectures. The results were very promis-
ing as illustrated in section 4. Our approach has two
main advantages: 1) it does not rely on heuristics to
resolve cyclic dependencies and 2) it is language and
platform independent as it relies on the KDM speci-
fication standard. Moreover, it supports the interac-
tion with users and domain experts to refine the
layering results.
While we continue to refine the principles and
metrics of our approach, we need to perform more
experiments and analyses to properly tune the penal-
ties used by our layering algorithm. In this context,
we intend to conduct experiments on industrial sys-
tems and get the feedback from these systems' ex-
perts in order to validate the resulting layered archi-
tectures and assess the usefulness of our approach.
In the short term, we plan to apply the approach on
larger open source systems (e.g., Mozilla and Ant)
and to compare our results with other approaches.
We also envision improving our fact extractor in
order to get a richer and more accurate representa-
tion of the analyzed systems.
REFERENCES
Ulrich, W., Newcomb, P., 2010. Information systems
transformation: Architecture-Driven Modernization
Case Studies.OMG Press.
Shaw, M., Garlan, D., 1996, Software Architecture: Per-
spectives on an Emerging Discipline. Prentice Hall.
Stoermer, C., O'Brien, L., Verhoef, C., 2003. Moving
Towards Quality Attribute Driven Software Architec-
ture Reconstruction. In WCRE, (Vol. 3, p. 46).
OMG Specifications: http://www.omg.org/ [accessed in
March 2013]
Clements, P., Garlan, D., Bass, L., Stafford, J., Nord, R.,
Ivers, J., & Little, R., 2003. Documenting Software
Architectures: Views and Beyond. Addison-Wesley.
Bass, L., Clements, P., Kazman, R., 2003. Software Archi-
tecture in Practice. Addison-Wesley.
Tzerpos, V., Holt, R.C., 2000. ACDC: An Algorithm for
Comprehension-Driven Clustering. In WCRE.
Mitchell, B., Traverso, M., Mancoridis, S., 2001. An ar-
chitecture for distributing the computation of software
clustering algorithms. In Software Architecture,
2001.Proceedings.Working IEEE/IFIP Conference
on (pp. 181-190).IEEE.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.,
Stal, M., 1996. Pattern-Oriented Software Architec-
ture: A System of Patterns. John Wiley & Sons.
Maqbool, O., Babri, H.A., 2007. Hierarchical Clustering
for Software Architecture Recovery. TSE, vol.33,
no.11, pp.759-780.
Lung, C-H., Zaman M., Nandi, A., 2004. Applications of
Clustering Techniques to Software Partitioning, Re-
covery and Restructuring. JSS, vol. 73, pp. 227–244.
Shtern, M., Tzerpos, V., 2012. Clustering Methodologies
ENASE2014-9thInternationalConferenceonEvaluationofNovelSoftwareApproachestoSoftwareEngineering
88