A fuzzy ontology-based approach for tool-supported decision making in architectural design

  • Tommaso Di Noia
  • Marina Mongiello
  • Francesco Nocera
  • Umberto Straccia
Regular Paper

Abstract

In software development, non-functional requirements (NFRs) play a crucial role in decision-making procedures for architectural solutions. A strong relation exists between NFRs and design patterns, a powerful method to support the architectural design of software systems, but due to their complexity and abstraction, NFRs are rarely taken into account in software design. In fact, the knowledge on NFRs is usually owned by designers and not formalized in a structured way. We propose to structure the knowledge associated with NFRs via a Fuzzy Ontology, which we show is able to model their mutual relations and interactions. The declarative approach makes possible to represent and maintain the above-mentioned knowledge by keeping the flexibility and fuzziness of modeling thanks to the use of fuzzy concepts such as high, low, fair. We present a decision support system based on (i) a fuzzy OWL 2 ontology that encodes 109 design patterns, 28 pattern families and 37 NFRs and their mutual relations, (ii) a novel reasoning service to retrieve a ranked list of pattern sets able to satisfy the non-functional requirements within a system specification.

Keywords

Fuzzy Description Logics Ontology Non-Functional Requirements Architectural design 

Notes

Acknowledgements

Francesco Nocera is supported by Exprivia S.p.A Ph.D Grant 2018.

References

  1. 1.
    Avgeriou P, Grundy J, Hall JG, Lago P, Mistrík I (2011) Relating software requirements and architectures. Springer, BerlinCrossRefGoogle Scholar
  2. 2.
    Avgeriou P, Zdun U (2005) Architectural patterns revisited—a pattern language. In: Proceedings of the 10th European conference on pattern languages of programs (EuroPLoP), pp 431–470Google Scholar
  3. 3.
    Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider PF (eds) (2003) The description logic handbook: theory, implementation, and applications. Cambridge University PressGoogle Scholar
  4. 4.
    Bakhshandeh M, Antunes G, Mayer R, Borbinha J, Caetano A (2013) A modular ontology for the enterprise architecture domain. In: 2013 17th IEEE international enterprise distributed object computing conference workshops (EDOCW). IEEE, pp 5–12Google Scholar
  5. 5.
    Bass L, Clements P, Kazman R (2005) Software architecture in practice. Addison-Wesley, Boston (Munich [u.a.])Google Scholar
  6. 6.
    Bass L, Klein M, Bachmann F (2002) Quality attribute design primitives and the attribute driven design method. In: Revised papers from 4th International workshop on software product-family engineering, vol 2290. Springer, pp 169–186Google Scholar
  7. 7.
    Berners-Lee T, Hendler J, Lassila O (2001) The semantic web. Sci Am 284(5):34–43CrossRefGoogle Scholar
  8. 8.
    Bobillo F, Cerami M, Esteva F, García-Cerdaña À, Peñaloza R, Straccia U (2015) Fuzzy description logics in the framework of mathematical fuzzy logic. In: Petr Cintula Christian Fermüller CN (ed) Handbook of mathematical fuzzy logic, Volume 3, Studies in logic, mathematical logic and foundations, vol 58, chap. 16. College Publications, pp 1105–1181Google Scholar
  9. 9.
    Bobillo F, Straccia U (2011) Fuzzy ontology representation using OWL 2. Int J Approx Reason 52:1073–1094MathSciNetCrossRefGoogle Scholar
  10. 10.
    Bobillo F, Straccia U (2016) The fuzzy ontology reasoner fuzzyDL. Knowl Based Syst 95:12–34.  https://doi.org/10.1016/j.knosys.2015.11.017 CrossRefGoogle Scholar
  11. 11.
    Botella P, Burgues X, Franch X, Huerta M, Salazar G (2001) Modeling non-functional requirements. In: Proceedings of Jornadas de Ingenieria de Requisitos Aplicada JIRA 2001 Google Scholar
  12. 12.
    Brooks FP Jr (1987) No silver bullet essence and accidents of software engineering. Computer 20(4):10–19.  https://doi.org/10.1109/MC.1987.1663532 CrossRefGoogle Scholar
  13. 13.
    Buschmann F, Henney K, Schmidt DC (2007) Pattern-oriented software architecture, volume 4, a pattern language for distributed computing. Wiley, New YorkGoogle Scholar
  14. 14.
    Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture: a system of patterns. Wiley, New YorkGoogle Scholar
  15. 15.
    Calegari S, Sanchez E (2007) A fuzzy ontology-approach to improve semantic information retrieval. In: Proceedings of the third international conference on uncertainty reasoning for the semantic web-volume 327. pp 117–122. CEUR-WS. orgGoogle Scholar
  16. 16.
    Capilla R, Nava F, Pérez S, Dueñas JC (2006) A web-based tool for managing architectural design decisions. ACM SIGSOFT Softw Eng Notes 31(5):4CrossRefGoogle Scholar
  17. 17.
    Chung L, Nixon BA, Yu E, Mylopoulos J (2012) Non-functional requirements in software engineering, vol 5. Springer, BerlinMATHGoogle Scholar
  18. 18.
    Chung L, do Prado Leite JCS (2009) On non-functional requirements in software engineering. In: Borgida AT, Chaudhri VK, Giorgini P, Yu ES (eds) Conceptual modeling: foundations and applications. Lecture notes in computer science, vol 5600. Springer, Berlin, Heidelberg, pp 363–379Google Scholar
  19. 19.
    Cuenca-Grau B, Horrocks I, Motik B, Parsia B, Patel-Schneider P, Sattler U (2008) OWL 2: the next step for OWL. J Web Semant 6(4):309–322CrossRefGoogle Scholar
  20. 20.
    Cysneiros LM (2007) Evaluating the effectiveness of using catalogues to elicit non-functional requirements. In: Proc. of 10th Workshop in requirements engineering. pp 107–115Google Scholar
  21. 21.
    Davis AM (1993) Software requirements: objects, functions, and states. Prentice-Hall Inc., Englewood CliffsMATHGoogle Scholar
  22. 22.
    Di Noia T, Mongiello M, Di Sciascio E (2014) Ontology-driven pattern selection and matching in software design. In: European conference on software architecture. Springer, Berlin, pp. 82–89.  https://doi.org/10.1007/978-3-319-09970-5_8
  23. 23.
    Di Noia T, Mongiello M, Straccia U (2015) Fuzzy description logics for component selection in software design. In: Software engineering and formal methods: SEFM 2015 collocated workshops, revised selected papers (Lecture notes in computer science), vol 9509, pp 228–239. Springer, Berlin.  https://doi.org/10.1007/978-3-662-49224-619
  24. 24.
    Diaz-Pace A, Kim H, Bass L, Bianco P, Bachmann F (2008) Integrating quality-attribute reasoning frameworks in the ArchE design assistant. In: Becker S, Plasil F, Reussner R (eds) Quality of software architectures. Models and architectures. QoSA 2008. Lecture notes in computer science, vol 5281. Springer, Berlin, Heidelberg, pp 171–188Google Scholar
  25. 25.
    Dietrich J, Elgar C (2005) A formal description of design patterns using owl. In: Proceedings software engineering conference, 2005 Australian. IEEE, pp. 243–250Google Scholar
  26. 26.
    Dobson G, Hall S, Kotonya G (2007) A domain-independent ontology for non-functional requirements. In: Proceedings of ICEBE 2007, IEEE international conference on e-business engineering and the workshops SOAIC 2007, SOSE 2007, SOKM 2007, 24–26 October, 2007, Hong Kong, China, pp. 563–566Google Scholar
  27. 27.
    Egyed A, Grunbacher P (2004) Identifying requirements conflicts and cooperation: how quality attributes and automated traceability can help. Softw IEEE 21(6):50–58CrossRefGoogle Scholar
  28. 28.
    Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, ViennaCrossRefGoogle Scholar
  29. 29.
    Franch X (1998) Systematic formulation of non-functional characteristics of software. In: Proceedings of the third international conference on requirements engineering. IEEE, pp 174–181Google Scholar
  30. 30.
    Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Pearson Education, LondonMATHGoogle Scholar
  31. 31.
    Garlan D, Shaw M (1994) An introduction to software architecture. Technical reportGoogle Scholar
  32. 32.
    Gašević D, Kaviani N, Milanović M (2009) Ontologies and software engineering. In: Staab S, Studer R (eds) Handbook on Ontologies. Springer, Berlin, Heidelberg, Germany, pp 593–615Google Scholar
  33. 33.
    Glinz M (2007) On non-functional requirements. In: 15th IEEE international conference on requirements engineering, 2007. RE’07. IEEE, pp 21–26Google Scholar
  34. 34.
    Gross D, Yu E (2001) From non-functional requirements to design through patterns. Requir Eng 6(1):18–36CrossRefMATHGoogle Scholar
  35. 35.
    Guizzardi RSS, Li F, Borgida A, Guizzardi G, Horkoff J, Mylopoulos J (2014) An ontological interpretation of non-functional requirements. In: formal ontology in information systems—proceedings of the eighth international conference, FOIS 2014, September, 22–25, 2014, Rio de Janeiro, Brazil, pp 344–357Google Scholar
  36. 36.
    Harb D, Bouhours C, Leblanc H (2009) Using an ontology to suggest software design patterns integration. In: Chaudron MRV (ed) Models in software engineering. MODELS 2008. Lecture notes in computer science, vol 5421. Springer, Berlin, Heidelberg, pp 318–331Google Scholar
  37. 37.
    Harrison N, Avgeriou P (2007) Pattern-driven architectural partitioning: balancing functional and non-functional requirements. In: Second international conference on digital telecommunications 2007. ICDT ’07. IEEE, pp 21–26Google Scholar
  38. 38.
    Harrison NB, Avgeriou P (2010) How do architecture patterns and tactics interact? a model and annotation. J Syst Softw 83(10):1735–1758CrossRefGoogle Scholar
  39. 39.
    Harrison NB, Avgeriou P (2010) Implementing reliability: the interaction of requirements, tactics and architecture patterns. In: Casimiro A, de Lemos R, Gacek C (eds) Architecting dependable systems VII. Lecture notes in computer science, vol 6420. Springer, Berlin, Heidelberg, pp 97–122Google Scholar
  40. 40.
    Harrison NB, Avgeriou P, Zdun U (2010) On the impact of fault tolerance tactics on architecture patterns. In: Proceedings of the 2nd international workshop on software engineering for resilient systems. ACM, pp 12–21Google Scholar
  41. 41.
    Henninger S, Ashokkumar P (2005) An ontology-based infrastructure for usability design patterns. In: Proceedings of the semantic web enabled software engineering (SWESE), Galway, Ireland, pp 41–55Google Scholar
  42. 42.
    Henninger S, Ashokkumar P (2006) An ontology-based metamodel for software patterns. In: 8th international conference on software engineering and knowledge engineering (SEKE2006)Google Scholar
  43. 43.
    Henninger S, Corrêa V (2007) Software pattern communities: current practices and challenges. In: Proceedings of the 14th conference on pattern languages of programs. ACM, p 14Google Scholar
  44. 44.
    Horrocks I, Kutz O, Sattler U (2006) The even more irresistible \(\cal{SROIQ}\). In: Proceedings of the 10th international conference on principles of knowledge representation and reasoning (KR-06). AAAI Press, pp 57–67Google Scholar
  45. 45.
    Jansen A, Van Der Ven J, Avgeriou P, Hammer DK (2007) Tool support for architectural decisions. In: The working IEEE/IFIP conference on software architecture, 2007. WICSA’07, pp 4–4Google Scholar
  46. 46.
    Kampffmeyer H, Zschaler S (2007) Finding the pattern you need: the design pattern intent ontology. In: Engels G, Opdyke B, Schmidt DC, Weil F (eds) Model driven engineering languages and systems. MODELS 2007. Lecture notes in computer science, vol 4735. Springer, Berlin, Heidelberg, pp 211–225Google Scholar
  47. 47.
    Kruchten P (2004) An ontology of architectural design decisions in software intensive systems. In: 2nd Groningen workshop on software variability. Groningen, The Netherlands, pp 54–61Google Scholar
  48. 48.
    Kruchten P (2004) An ontology of architectural design decisions in software intensive systems. In: 2nd Groningen workshop on software variability, pp 54–61Google Scholar
  49. 49.
    Levandowsky M, Winter D (1971) Distance between sets. Nature 234(5323):34–35CrossRefGoogle Scholar
  50. 50.
    Li Z, Liang P, Avgeriou P (2013) Application of knowledge-based approaches in software architecture: a systematic mapping study. Inf Softw Technol 55:777–794CrossRefGoogle Scholar
  51. 51.
    Liu C (2010) Ontology-based conflict analysis method in non-functional requirements. In: 9th IEEE/ACIS international conference on computer and information science, IEEE/ACIS ICIS 2010, 18–20 August 2010, Yamagata, Japan, pp 491–496Google Scholar
  52. 52.
    López C, Cysneiros LM, Astudillo H (2008) Ndr ontology: sharing and reusing NFR and design rationale knowledge. In: First international workshop on managing requirements knowledge, 2008. MARK’08. IEEE, pp 1–10Google Scholar
  53. 53.
    Mairiza D, Zowghi D, Nurmuliani N (2009) Managing conflicts among non-functional requirements. In: 12th Australian workshop on requirements engineering. University of Technology, Sydney, pp 11–19Google Scholar
  54. 54.
    Mikkonen T (1998) Formalizing design patterns. In: Proceedings of the 20th international conference on software engineering. IEEE computer society, pp 115–124Google Scholar
  55. 55.
    Montero S, Díaz P, Aedo I (2003) Formalization of web design patterns using ontologies. In: Menasalvas E, Segovia J, Szczepaniak PS (eds) Advances in web intelligence. AWIC 2003. Lecture notes in computer science (Lecture notes in artificial intelligence), vol 2663. Springer, Berlin, Heidelberg, pp 179–188Google Scholar
  56. 56.
    Mylopoulos J, Chung L, Nixon B (1992) Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans Softw Eng 18(6):483–497CrossRefGoogle Scholar
  57. 57.
    Naragani DP, Uniyal P (2013) Comparative analysis of software quality models. Int J Comput Sci Manag Res 2(3):5634–5638Google Scholar
  58. 58.
    Nocera F (2016) Fuzzy ontology-driven web-based framework for supporting architectural design: student research abstract. In: Proceedings of the 31st annual ACM symposium on applied computing. ACM, pp. 1361–1362.  https://doi.org/10.1145/2851613.2852014
  59. 59.
    Pan JZ, Staab S, Aßmann U, Ebert J, Zhao Y (2013) Ontology-driven software development. Springer, BerlinCrossRefMATHGoogle Scholar
  60. 60.
    Rashwan A, Ormandjieva O, Witte R (2013) Ontology-based classification of non-functional requirements in software specifications: a new corpus and svm-based classifier. In: 37th annual IEEE computer software and applications conference, COMPSAC 2013, Kyoto, Japan, July 22–26, 2013, pp 381–386Google Scholar
  61. 61.
    Rosa NS, Cunha PR, Justo GR (2002) Process NFL: a language for describing non-functional properties. In: Proceedings of the 35th annual Hawaii international conference on system sciences, 2002. HICSS. IEEE, pp 3676–3685Google Scholar
  62. 62.
    Sánchez D, Tettamanzi AG (2006) Fuzzy quantification in fuzzy description logics. Capturing Intell 1:135–159CrossRefMATHGoogle Scholar
  63. 63.
    Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline, vol 1. Prentice Hall, Englewood CliffsMATHGoogle Scholar
  64. 64.
    Straccia U (2005) Description logics with fuzzy concrete domains. In: Bachus F, Jaakkola T (eds) 21st conference on uncertainty in artificial intelligence (UAI-05). AUAI Press, Edinburgh, Scotland, pp 559–567Google Scholar
  65. 65.
    Straccia U (2013) Foundations of fuzzy logic and semantic web languages. CRC studies in informatics series. Chapman & Hall, Boca RatonGoogle Scholar
  66. 66.
    Taibi T, Ngo DCL (2003) Formal specification of design patterns—a balanced approach. J Object Technol 2(4):127–140CrossRefGoogle Scholar
  67. 67.
    Taylor RN, Medvidovic N, Dashofy EM (2009) Software architecture: foundations, theory, and practice. Wiley, New YorkCrossRefGoogle Scholar
  68. 68.
    Tichy WF (1997) A catalogue of general-purpose software design patterns. In: Proceedings of the technology of object-oriented languages and systems, 1997. TOOLS 23. IEEE, pp 330–339Google Scholar
  69. 69.
    Torra V, Narukawa Y (2007) Information fusion and aggregation operators. Cognitive technologies. Springer, BerlinMATHGoogle Scholar
  70. 70.
    Tran Q, Chung L (1999) NFR-assistant: tool support for achieving quality. In: Proceedings of the 1999 IEEE symposium on application-specific systems and software engineering and technology, 1999. ASSET’99. IEEE, pp 284–289Google Scholar
  71. 71.
    Zadeh LA (1965) Fuzzy sets. Inf Control 8(3):338–353CrossRefMATHGoogle Scholar

Copyright information

© Springer-Verlag London Ltd., part of Springer Nature 2018

Authors and Affiliations

  1. 1.Dipartimento di Ingegneria Elettrica e dell’Informazione (DEI)Politecnico di BariBariItaly
  2. 2.ISTI-CNRPisaItaly

Personalised recommendations