Skip to main content

2017 | OriginalPaper | Buchkapitel

Temporal Relations of Rough Anti-patterns in Software Development

verfasst von : Łukasz Puławski

Erschienen in: Rough Sets

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Design anti-patterns are common wrong solutions in software, whose frequency has been proven to be correlated with poor system quality. This paper investigates temporal relations between different types of anti-patters, i.e. how the appearance of one type of anti-pattern in the source code increases the probability that different anti-pattern will appear shortly after in its neighbourhood. The notion of rough anti-pattern used to model the vagueness of anti-patterns allows us to reformulate the question and establish if certain rough patterns tend to be temporally correlated. The proposed framework was used to build a classifier, which can be employed to predict the appearance of some anti-patterns by looking at the temporal relations between other anti-patterns. The experiments conducted on two large open-source projects suggest that a few common anti-patterns tend to be temporally dependent on others, whereas a few others do not.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Please note that one consequence of such an assumption is that overloaded methods are not discerned from each other. The motivation for this simplification comes from the fact that typically, if a class contains overloaded methods, they functionally represent the same operation but, due to technical reasons, depend on different arguments (see [8]).
 
2
Please recall from Sect. 2.3 that we can treat SSN as a labeled multi-graph.
 
3
Please note different symbols: \(\mathcal {P}(X)\) denotes the set of sub-graphs of X, while P(Y) denotes the power-set of Y.
 
Literatur
2.
Zurück zum Zitat The 14th Working Conference on Mining Software Repositories, February 2017 The 14th Working Conference on Mining Software Repositories, February 2017
3.
Zurück zum Zitat International Conference on Software Analysis, Evolution and Reengineering, February 2017 International Conference on Software Analysis, Evolution and Reengineering, February 2017
4.
Zurück zum Zitat International Conference on Software Maintenance and Evolution, February 2017 International Conference on Software Maintenance and Evolution, February 2017
5.
Zurück zum Zitat Aggarwal, C.C., Wang, H.: Managing and Mining Graph Data. Springer, Heidelberg (2010)CrossRef Aggarwal, C.C., Wang, H.: Managing and Mining Graph Data. Springer, Heidelberg (2010)CrossRef
6.
Zurück zum Zitat Allen, J.F.: Maintaining knowledge about temporal intervals. Commun. ACM 26(11), 832–843 (1983)CrossRef Allen, J.F.: Maintaining knowledge about temporal intervals. Commun. ACM 26(11), 832–843 (1983)CrossRef
7.
Zurück zum Zitat Antoniol, G., Fiutem, R., Cristoforetti, L.: Design pattern recovery in object-oriented software. In: Proceedings of 6th International Workshop on Program Comprehension, IWPC 1998, p. 153+. IEEE Computer Society, Washington, DC (1998) Antoniol, G., Fiutem, R., Cristoforetti, L.: Design pattern recovery in object-oriented software. In: Proceedings of 6th International Workshop on Program Comprehension, IWPC 1998, p. 153+. IEEE Computer Society, Washington, DC (1998)
8.
Zurück zum Zitat Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 4th edn. Addison-Wesley Professional, Boston (2005)MATH Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 4th edn. Addison-Wesley Professional, Boston (2005)MATH
9.
Zurück zum Zitat Bernardi, M.L., Cimitile, M., Di Lucca, G.: Design pattern detection using a DSL-driven graph matching approach. J. Softw. Evol. Process 26(12), 1233–1266 (2014)CrossRef Bernardi, M.L., Cimitile, M., Di Lucca, G.: Design pattern detection using a DSL-driven graph matching approach. J. Softw. Evol. Process 26(12), 1233–1266 (2014)CrossRef
10.
Zurück zum Zitat Brown, W.J., Malveau, R.C., McCormick, H.W., Mowbray, T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, 1st edn. Wiley, New York (1998) Brown, W.J., Malveau, R.C., McCormick, H.W., Mowbray, T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, 1st edn. Wiley, New York (1998)
11.
Zurück zum Zitat Bugen, D.: Software Design, 2nd edn. Pearson Education, London (2003) Bugen, D.: Software Design, 2nd edn. Pearson Education, London (2003)
12.
Zurück zum Zitat Cichý, M., Jakub’ık, J.: Design patterns identification using similarity scoring algorithm with weighting score extension. In: Proceedings of 2008 Conference on Knowledge-Based Software Engineering: Proceedings of 8th Joint Conference on Knowledge-Based Software Engineering, pp. 465–473. IOS Press, Amsterdam (2008) Cichý, M., Jakub’ık, J.: Design patterns identification using similarity scoring algorithm with weighting score extension. In: Proceedings of 2008 Conference on Knowledge-Based Software Engineering: Proceedings of 8th Joint Conference on Knowledge-Based Software Engineering, pp. 465–473. IOS Press, Amsterdam (2008)
13.
Zurück zum Zitat Dong, J., Zhao, Y., Peng, T.: A review of design pattern mining techniques Dong, J., Zhao, Y., Peng, T.: A review of design pattern mining techniques
15.
Zurück zum Zitat Ferenc, R., Beszedes, A., Fulop, L., Lele, J.: Design pattern mining enhanced by machine learning. In: Proceedings of 21st IEEE International Conference on Software Maintenance, ICSM 2005, pp. 295–304. IEEE Computer Society, Washington, DC (2005) Ferenc, R., Beszedes, A., Fulop, L., Lele, J.: Design pattern mining enhanced by machine learning. In: Proceedings of 21st IEEE International Conference on Software Maintenance, ICSM 2005, pp. 295–304. IEEE Computer Society, Washington, DC (2005)
16.
Zurück zum Zitat Fontana, F.A., Dietrich, J., Walter, B., Yamashita, A., Zanoni, M.: Preliminary catalogue of anti-pattern and code smell false positives. Technical report RA-5/15, Poznan University of Technology (2015) Fontana, F.A., Dietrich, J., Walter, B., Yamashita, A., Zanoni, M.: Preliminary catalogue of anti-pattern and code smell false positives. Technical report RA-5/15, Poznan University of Technology (2015)
17.
Zurück zum Zitat Funkhouser, O., Etzkorn, L., Hughes, W.: A lightweight approach to software validation by comparing UML use cases with internal program documentation selected via call graphs. Softw. Qual. J. 16(1), 131–156 (2008)CrossRef Funkhouser, O., Etzkorn, L., Hughes, W.: A lightweight approach to software validation by comparing UML use cases with internal program documentation selected via call graphs. Softw. Qual. J. 16(1), 131–156 (2008)CrossRef
18.
Zurück zum Zitat Gamma, E., Helm, R., Johnson, R., Vlissides, J., Patterns, D.: Elements of Reusable Object-Oriented Software, 1st edn. Addison-Wesley Professional, Boston (1994) Gamma, E., Helm, R., Johnson, R., Vlissides, J., Patterns, D.: Elements of Reusable Object-Oriented Software, 1st edn. Addison-Wesley Professional, Boston (1994)
19.
Zurück zum Zitat Gómez, V.U., Kellens, A., Brichau, J., D’Hondt, T.: Time warp, an approach for reasoning over system histories. In: Proceedings of Joint International and Annual ERCIM Workshops on Principles of Software Evolution (IWPSE) and Software Evolution (Evol) Workshops, IWPSE-Evol 2009, pp. 79–88. ACM, New York (2009) Gómez, V.U., Kellens, A., Brichau, J., D’Hondt, T.: Time warp, an approach for reasoning over system histories. In: Proceedings of Joint International and Annual ERCIM Workshops on Principles of Software Evolution (IWPSE) and Software Evolution (Evol) Workshops, IWPSE-Evol 2009, pp. 79–88. ACM, New York (2009)
20.
Zurück zum Zitat Gueheneuc, Y.G., Sahraoui, H., Zaidi, F.: Fingerprinting design patterns. In: Proceedings of 11th Working Conference on Reverse Engineering, WCRE 2004, pp. 172–181. IEEE Computer Society, Washington, DC (2004) Gueheneuc, Y.G., Sahraoui, H., Zaidi, F.: Fingerprinting design patterns. In: Proceedings of 11th Working Conference on Reverse Engineering, WCRE 2004, pp. 172–181. IEEE Computer Society, Washington, DC (2004)
21.
Zurück zum Zitat He, P., Li, B., Liu, X., Chen, J., Ma, Y.: An empirical study on software defect prediction with a simplified metric set. Inf. Softw. Technol. 59(C), 170–190 (2015)CrossRef He, P., Li, B., Liu, X., Chen, J., Ma, Y.: An empirical study on software defect prediction with a simplified metric set. Inf. Softw. Technol. 59(C), 170–190 (2015)CrossRef
22.
Zurück zum Zitat M. Heričko, S. Beloglavec. A composite design-pattern identification technique. Informatica 29 (2005) M. Heričko, S. Beloglavec. A composite design-pattern identification technique. Informatica 29 (2005)
23.
Zurück zum Zitat Heuzeroth, D., Holl, T., Hogstrom, G., Lowe, W.: Automatic design pattern detection. In: 11th IEEE International Workshop on Program Comprehension, pp. 94–103. IEEE, May 2003 Heuzeroth, D., Holl, T., Hogstrom, G., Lowe, W.: Automatic design pattern detection. In: 11th IEEE International Workshop on Program Comprehension, pp. 94–103. IEEE, May 2003
24.
Zurück zum Zitat Heuzeroth, D., Mandel, S., Lowe, W.: Generating design pattern detectors from pattern specifications. In: Proceedings of 18th IEEE International Conference on Automated Software Engineering, pp. 245–248. IEEE Computer Society (2003) Heuzeroth, D., Mandel, S., Lowe, W.: Generating design pattern detectors from pattern specifications. In: Proceedings of 18th IEEE International Conference on Automated Software Engineering, pp. 245–248. IEEE Computer Society (2003)
25.
Zurück zum Zitat Hindle, A., German, D.M.: SCQL: a formal model and a query language for source control repositories. In: Proceedings of 2005 International Workshop on Mining Software Repositories, MSR 2005, vol. 30, pp. 1–5. ACM, New York (2005) Hindle, A., German, D.M.: SCQL: a formal model and a query language for source control repositories. In: Proceedings of 2005 International Workshop on Mining Software Repositories, MSR 2005, vol. 30, pp. 1–5. ACM, New York (2005)
26.
Zurück zum Zitat Huang, H., Zhang, S., Cao, J., Duan, Y.: A practical pattern recovery approach based on both structural and behavioral analysis. J. Syst. Softw. 75(1–2), 69–87 (2005)CrossRef Huang, H., Zhang, S., Cao, J., Duan, Y.: A practical pattern recovery approach based on both structural and behavioral analysis. J. Syst. Softw. 75(1–2), 69–87 (2005)CrossRef
27.
Zurück zum Zitat Jaafar, F., Gueheneuc, Y.G., Hamel, S., Khomh, F.: Mining the relationship between anti-patterns dependencies and fault-proneness. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 351–360. IEEE, October 2013 Jaafar, F., Gueheneuc, Y.G., Hamel, S., Khomh, F.: Mining the relationship between anti-patterns dependencies and fault-proneness. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 351–360. IEEE, October 2013
28.
Zurück zum Zitat Kim, S., Pan, K., Whitehead, E.E.J.: Memories of bug fixes. In: Proceedings of 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT 2006/FSE-2014, pp. 35–45. ACM, New York (2006) Kim, S., Pan, K., Whitehead, E.E.J.: Memories of bug fixes. In: Proceedings of 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT 2006/FSE-2014, pp. 35–45. ACM, New York (2006)
29.
Zurück zum Zitat Kim, S., Zimmermann, T., Whitehead, E.J., Zeller, A.: Predicting faults from cached history. In: Proceedings of 29th International Conference on Software Engineering, ICSE 2007, pp. 489–498. IEEE Computer Society, Washington, DC, May 2007 Kim, S., Zimmermann, T., Whitehead, E.J., Zeller, A.: Predicting faults from cached history. In: Proceedings of 29th International Conference on Software Engineering, ICSE 2007, pp. 489–498. IEEE Computer Society, Washington, DC, May 2007
30.
Zurück zum Zitat Lanza, M., Marinescu, R.: Object Oriented Metrics in Practice Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object Oriented Systems. Springer, Berlin (2006)MATH Lanza, M., Marinescu, R.: Object Oriented Metrics in Practice Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object Oriented Systems. Springer, Berlin (2006)MATH
31.
Zurück zum Zitat Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall PTR, Upper Saddle River (2003) Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall PTR, Upper Saddle River (2003)
32.
Zurück zum Zitat McCabe, T.J.: A complexity measure. In: Proceedings of 2nd International Conference on Software Engineering, ICSE 1976, p. 407+. IEEE Computer Society Press, Los Alamitos (1976) McCabe, T.J.: A complexity measure. In: Proceedings of 2nd International Conference on Software Engineering, ICSE 1976, p. 407+. IEEE Computer Society Press, Los Alamitos (1976)
33.
Zurück zum Zitat Nayrolles, M., Moha, N., Valtchev, P.: Improving SOA antipatterns detection in service based systems by mining execution traces. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 321–330. IEEE, October 2013 Nayrolles, M., Moha, N., Valtchev, P.: Improving SOA antipatterns detection in service based systems by mining execution traces. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 321–330. IEEE, October 2013
34.
Zurück zum Zitat Niere, J., Schäfer, W., Wadsack, J.P., Wendehals, L., Welsh, J.: Towards pattern-based design recovery. In: Proceedings of 24th International Conference on Software Engineering, ICSE 2002, pp. 338–348. ACM, New York (2002) Niere, J., Schäfer, W., Wadsack, J.P., Wendehals, L., Welsh, J.: Towards pattern-based design recovery. In: Proceedings of 24th International Conference on Software Engineering, ICSE 2002, pp. 338–348. ACM, New York (2002)
35.
Zurück zum Zitat Oruc, M., Akal, F., Sever, H.: Detecting design patterns in object-oriented design models by using a graph mining approach. In: 2016 4th International Conference in Software Engineering Research and Innovation (CONISOFT), pp. 115–121. IEEE, April 2016 Oruc, M., Akal, F., Sever, H.: Detecting design patterns in object-oriented design models by using a graph mining approach. In: 2016 4th International Conference in Software Engineering Research and Innovation (CONISOFT), pp. 115–121. IEEE, April 2016
36.
Zurück zum Zitat Park, C., Kang, Y., Wu, C., Yi, K.: A static reference flow analysis to understand design pattern behavior. In: Proceedings of 11th Working Conference on Reverse Engineering, WCRE 2004, pp. 300–301. IEEE Computer Society, Washington, DC (2004) Park, C., Kang, Y., Wu, C., Yi, K.: A static reference flow analysis to understand design pattern behavior. In: Proceedings of 11th Working Conference on Reverse Engineering, WCRE 2004, pp. 300–301. IEEE Computer Society, Washington, DC (2004)
37.
Zurück zum Zitat Pawlak, Z.: Some issues on rough sets. In: Peters, J., Skowron, A., Grzymała-Busse, J., Kostek, B., Świniarski, R., Szczuka, M. (eds.) Transactions on Rough Sets I. Lecture Notes in Computer Science, vol. 3100, pp. 1–58. Springer, Heidelberg (2004). doi:10.1007/978-3-540-27794-1_1CrossRefMATH Pawlak, Z.: Some issues on rough sets. In: Peters, J., Skowron, A., Grzymała-Busse, J., Kostek, B., Świniarski, R., Szczuka, M. (eds.) Transactions on Rough Sets I. Lecture Notes in Computer Science, vol. 3100, pp. 1–58. Springer, Heidelberg (2004). doi:10.​1007/​978-3-540-27794-1_​1CrossRefMATH
38.
Zurück zum Zitat Peters, J., Ramanna, S.: Approximation space for software models. In: Peters, J., Skowron, A., Grzymała-Busse, J., Kostek, B., Świniarski, R., Szczuka, M. (eds.) Transactions on Rough Sets I. Lecture Notes in Computer Science, vol. 3100, pp. 338–355. Springer, Berlin Heidelberg (2004). doi:10.1007/978-3-540-27794-1_16CrossRef Peters, J., Ramanna, S.: Approximation space for software models. In: Peters, J., Skowron, A., Grzymała-Busse, J., Kostek, B., Świniarski, R., Szczuka, M. (eds.) Transactions on Rough Sets I. Lecture Notes in Computer Science, vol. 3100, pp. 338–355. Springer, Berlin Heidelberg (2004). doi:10.​1007/​978-3-540-27794-1_​16CrossRef
39.
Zurück zum Zitat Seemann, J., von Gudenberg, J.W.: Pattern-based design recovery of Java software. In: Proceedings of 6th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT 1998/FSE-6, pp. 10–16. ACM, New York (1998) Seemann, J., von Gudenberg, J.W.: Pattern-based design recovery of Java software. In: Proceedings of 6th ACM SIGSOFT International Symposium on Foundations of Software Engineering, SIGSOFT 1998/FSE-6, pp. 10–16. ACM, New York (1998)
40.
Zurück zum Zitat Stencel, K., Wegrzynowicz, P.: Detection of diverse design pattern variants. In: 2008 15th Asia-Pacific Software Engineering Conference, pp. 25–32. IEEE, December 2008 Stencel, K., Wegrzynowicz, P.: Detection of diverse design pattern variants. In: 2008 15th Asia-Pacific Software Engineering Conference, pp. 25–32. IEEE, December 2008
41.
Zurück zum Zitat Torres Carbonell, J.J., Parets-Llorca, J.: A formalisation of the evolution of software systems. In: Kopacek, P., Moreno-Díaz, R., Pichler, F. (eds.) EUROCAST 1999. LNCS, vol. 1798, pp. 435–449. Springer, Heidelberg (2000). doi:10.1007/10720123_38CrossRefMATH Torres Carbonell, J.J., Parets-Llorca, J.: A formalisation of the evolution of software systems. In: Kopacek, P., Moreno-Díaz, R., Pichler, F. (eds.) EUROCAST 1999. LNCS, vol. 1798, pp. 435–449. Springer, Heidelberg (2000). doi:10.​1007/​10720123_​38CrossRefMATH
42.
Zurück zum Zitat Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T.: Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32(11), 896–909 (2006)CrossRef Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., Halkidis, S.T.: Design pattern detection using similarity scoring. IEEE Trans. Softw. Eng. 32(11), 896–909 (2006)CrossRef
43.
Zurück zum Zitat Wedel, M., Jensen, U., Göhner, P.: Mining software code repositories and bug databases using survival analysis models. In: Proceedings of 2nd ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2008, pp. 282–284. ACM, New York (2008) Wedel, M., Jensen, U., Göhner, P.: Mining software code repositories and bug databases using survival analysis models. In: Proceedings of 2nd ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2008, pp. 282–284. ACM, New York (2008)
44.
Zurück zum Zitat Wegrzynowicz, P., Stencel, K.: Relaxing queries to detect variants of design patterns. In: 2013 Federated Conference on Computer Science and Information Systems (FedCSIS), pp. 1571–1578. IEEE (2013) Wegrzynowicz, P., Stencel, K.: Relaxing queries to detect variants of design patterns. In: 2013 Federated Conference on Computer Science and Information Systems (FedCSIS), pp. 1571–1578. IEEE (2013)
45.
Zurück zum Zitat Zhu, L., Babar, M.A., Jeffery, R.: Mining patterns to support software architecture evaluation. In: Proceedings of 4th Working IEEE/IFIP Conference on Software Architecture, WICSA 2004, pp. 25–34. IEEE, June 2004 Zhu, L., Babar, M.A., Jeffery, R.: Mining patterns to support software architecture evaluation. In: Proceedings of 4th Working IEEE/IFIP Conference on Software Architecture, WICSA 2004, pp. 25–34. IEEE, June 2004
Metadaten
Titel
Temporal Relations of Rough Anti-patterns in Software Development
verfasst von
Łukasz Puławski
Copyright-Jahr
2017
DOI
https://doi.org/10.1007/978-3-319-60837-2_37

Premium Partner