6 CONCLUSIONS AND FUTURE
WORKS
In this work we exploit formal methods to automat-
ically refine the results produced by an existing DP
mining approach, in particular we selected the DPF
approach. DPF approach introduces a meta-model
to represent both the patterns and the system under
study as graphs in order to apply a graph match-
ing algorithm. In this paper the detection process
is enriched with a model-checking refinement step
in which the system model is represented using LO-
TOS and patterns as selective-µ-calculus properties
checked against it. The defined LOTOS model al-
lows to check a wider set of properties that lead to
a reduction of the number of false positives. The per-
formed experiments confirmed the feasibility, correct-
ness, and effectiveness of the approach showing, on
the analyzed systems, an improvement of the preci-
sion (19% on average) with a very reduced impact on
the original recall. As future work, a more complete
translation of pattern specifications to selective-µ-
calculus properties will be defined. Moreover, we will
perform the translation of the entire DP catalog de-
fined in (Bernardi et al., 2014) as selective-µ-calculus
properties allowing the experimentation on the com-
plete benchmark comprised of 12 OO systems. Fi-
nally, we want to assist software engineers providing
WYSIWYG tools that support our approach as done
in (De Ruvo and Santone, 2014).
REFERENCES
Ampatzoglou, A., Frantzeskou, G., and Stamelos, I. (2012).
A methodology to assess the impact of design patterns
on software quality. Inf. Softw. Technol., 54(4):331–
346.
Antoniol, G., Fiutem, R., and Cristoforetti, L. (1998). De-
sign pattern recovery in object-oriented software. In
Proceedings of the 6th International Workshop on
Program Comprehension, IWPC ’98, pages 153–,
Washington, DC, USA. IEEE Computer Society.
Aranda, G. and Moore, R. (2002). A formal model for
verifying compound design patterns. In Proceedings
of the 14th International Conference on Software En-
gineering and Knowledge Engineering, SEKE ’02,
pages 213–214, New York, NY, USA. ACM.
Arcelli, F. and Zanoni, M. (2011). A tool for design pat-
tern detection and software architecture reconstruc-
tion. Inf. Sci., 181(7):1306–1324.
Barbuti, R., De Francesco, N., Santone, A., and Vaglini,
G. (1999). Selective mu-calculus and formula-based
equivalence of transition systems. J. Comput. Syst.
Sci., 59(3):537–556.
Barbuti, R., De Francesco, N., Santone, A., and Vaglini, G.
(2005). Reduced models for efficient ccs verification.
Formal Methods in System Design, 26(3):319–350.
Bergenti, F. and Poggi, A. (2000). Improving uml designs
using automatic design pattern detection. In Proc.
12th. International Conference on Software Engineer-
ing and Knowledge Engineering (SEKE 2000, pages
336–343.
Bernardi, M., Cimitile, M., and Di Lucca, G. (2013).
A model-driven graph-matching approach for design
pattern detection. In 20th Working Conference on Re-
verse Engineering (WCRE), pages 172–181.
Bernardi, M., Cimitile, M., and Di Lucca, G. (2014).
Design patterns detection using a dsl-driven graph
matching approach. Journal of Software: Evo-
lution and Process, Published online in Wi-
ley Online Library (wileyonlinelibrary.com). DOI:
10.1002/smr.1674.
Beyer, D. (2006). Relational programming with crocopat.
In Proceedings of the 28th international conference on
Software engineering, ICSE ’06, pages 807–810, New
York, NY, USA. ACM.
Bolognesi, T. and Brinksma, E. (1987). Introduction to the
iso specification language lotos. Computer Networks,
14:25–59.
Ceccarelli, M., Cerulo, L., De Ruvo, G., Nardone, V., and
Santone, A. (2015). Infer gene regulatory networks
from time series data with probabilistic model check-
ing. FormaliSE 2015.
Clarke, E. M., Grumberg, O., and Peled, D. (2001). Model
checking. MIT Press.
De Lucia, A., Deufemia, V., Gravino, C., and Risi, M.
(2009). Design pattern recovery through visual lan-
guage parsing and source code analysis. Journal of
Systems and Software, 82(7):1177 – 1193.
De Lucia, A., Deufemia, V., Gravino, C., and Risi, M.
(2010). Improving behavioral design pattern detec-
tion through model checking. In Software Mainte-
nance and Reengineering (CSMR), 2010 14th Euro-
pean Conference on, pages 176–185.
De Ruvo, G. and Santone, A. (2014). An eclipse-based ed-
itor to support lotos newcomers. In Enabling Tech-
nologies: Infrastructure for Collaborative Enterprises
(WETICE), 2014 IEEE 23rd International Conference
on.
De Ruvo, G. and Santone, A. (2015). Analysing wiki
quality using probabilistic model checking. In 2015
IEEE 24th International WETICE Conference, WET-
ICE 2015, Larnaca, Cyprus, 15-17 June, 2015.
Dong, J., Zhao, Y., and Peng, T. (2007). Architecture
and design pattern discovery techniques - a review.
In Arabnia, H. R. and Reza, H., editors, Software
Engineering Research and Practice, pages 621–627.
CSREA Press.
Dong, J., Zhao, Y., and Sun, Y. (2009). A matrix-based
approach to recovering design patterns. Trans. Sys.
Man Cyber. Part A, 39(6):1271–1282.
Flores, A., Moore, R., and Reynoso, L. (2001). A formal
model of object-oriented design and gof design pat-
terns. In Proceedings of the International Symposium
ICSOFT-PT2015-10thInternationalConferenceonSoftwareParadigmTrends
62