Skip to main content
Log in

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

  • Regular Paper
  • Published:
Knowledge and Information Systems Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

Notes

  1. E.g., [13] addresses this problem by proposing a specific pattern language.

  2. The ontology is available online at http://sisinflab.poliba.it/semanticweb/ontologies/architecturalpatterns/.

  3. However, note that under standard logic \(\sqsubseteq \) is interpreted as \(\Rightarrow _{z}\) and not as \(\Rightarrow _{kd}\).

  4. With \(\mathbf {0}\) and \(\mathbf {1}\) we identify a vector whose elements are all 0 or 1, respectively.

  5. https://tomcat.apache.org/.

  6. The library is available at www.gurobi.com.

  7. It is available for free download at http://protege.stanford.edu/download/download.html.

  8. The fuzzy ontology is available online at http://sisinflab.poliba.it/semanticweb/ontologies/architecturalpatterns/.

  9. http://www.w3.org/TR/owl2-manchester-syntax/.

  10. http://www.w3.org/DesignIssues/LinkedData.html.

  11. http://dbpedia.org.

  12. See, e.g. the diagram available at http://lod-cloud.net.

References

  1. Avgeriou P, Grundy J, Hall JG, Lago P, Mistrík I (2011) Relating software requirements and architectures. Springer, Berlin

    Book  Google Scholar 

  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–470

  3. Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider PF (eds) (2003) The description logic handbook: theory, implementation, and applications. Cambridge University Press

  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–12

  5. Bass L, Clements P, Kazman R (2005) Software architecture in practice. Addison-Wesley, Boston (Munich [u.a.])

    Google Scholar 

  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–186

  7. Berners-Lee T, Hendler J, Lassila O (2001) The semantic web. Sci Am 284(5):34–43

    Article  Google Scholar 

  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–1181

  9. Bobillo F, Straccia U (2011) Fuzzy ontology representation using OWL 2. Int J Approx Reason 52:1073–1094

    Article  MathSciNet  Google Scholar 

  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

    Article  Google Scholar 

  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

  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

    Article  MathSciNet  Google Scholar 

  13. Buschmann F, Henney K, Schmidt DC (2007) Pattern-oriented software architecture, volume 4, a pattern language for distributed computing. Wiley, New York

    Google Scholar 

  14. Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture: a system of patterns. Wiley, New York

    Google Scholar 

  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. org

  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):4

    Article  Google Scholar 

  17. Chung L, Nixon BA, Yu E, Mylopoulos J (2012) Non-functional requirements in software engineering, vol 5. Springer, Berlin

    MATH  Google Scholar 

  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–379

  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–322

    Article  Google Scholar 

  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–115

  21. Davis AM (1993) Software requirements: objects, functions, and states. Prentice-Hall Inc., Englewood Cliffs

    MATH  Google Scholar 

  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. 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. 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–188

  25. Dietrich J, Elgar C (2005) A formal description of design patterns using owl. In: Proceedings software engineering conference, 2005 Australian. IEEE, pp. 243–250

  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–566

  27. Egyed A, Grunbacher P (2004) Identifying requirements conflicts and cooperation: how quality attributes and automated traceability can help. Softw IEEE 21(6):50–58

    Article  Google Scholar 

  28. Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, Vienna

    Book  Google Scholar 

  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–181

  30. Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Pearson Education, London

    MATH  Google Scholar 

  31. Garlan D, Shaw M (1994) An introduction to software architecture. Technical report

  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–615

    Google Scholar 

  33. Glinz M (2007) On non-functional requirements. In: 15th IEEE international conference on requirements engineering, 2007. RE’07. IEEE, pp 21–26

  34. Gross D, Yu E (2001) From non-functional requirements to design through patterns. Requir Eng 6(1):18–36

    Article  MATH  Google Scholar 

  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–357

  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–331

  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–26

  38. Harrison NB, Avgeriou P (2010) How do architecture patterns and tactics interact? a model and annotation. J Syst Softw 83(10):1735–1758

    Article  Google Scholar 

  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–122

  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–21

  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–55

  42. Henninger S, Ashokkumar P (2006) An ontology-based metamodel for software patterns. In: 8th international conference on software engineering and knowledge engineering (SEKE2006)

  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 14

  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–67

  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–4

  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–225

  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–61

  48. Kruchten P (2004) An ontology of architectural design decisions in software intensive systems. In: 2nd Groningen workshop on software variability, pp 54–61

  49. Levandowsky M, Winter D (1971) Distance between sets. Nature 234(5323):34–35

    Article  Google Scholar 

  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–794

    Article  Google Scholar 

  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–496

  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–10

  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–19

  54. Mikkonen T (1998) Formalizing design patterns. In: Proceedings of the 20th international conference on software engineering. IEEE computer society, pp 115–124

  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–188

  56. Mylopoulos J, Chung L, Nixon B (1992) Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans Softw Eng 18(6):483–497

    Article  Google Scholar 

  57. Naragani DP, Uniyal P (2013) Comparative analysis of software quality models. Int J Comput Sci Manag Res 2(3):5634–5638

    Google Scholar 

  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. Pan JZ, Staab S, Aßmann U, Ebert J, Zhao Y (2013) Ontology-driven software development. Springer, Berlin

    Book  MATH  Google Scholar 

  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–386

  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–3685

  62. Sánchez D, Tettamanzi AG (2006) Fuzzy quantification in fuzzy description logics. Capturing Intell 1:135–159

    Article  MATH  Google Scholar 

  63. Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline, vol 1. Prentice Hall, Englewood Cliffs

    MATH  Google Scholar 

  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–567

  65. Straccia U (2013) Foundations of fuzzy logic and semantic web languages. CRC studies in informatics series. Chapman & Hall, Boca Raton

    Google Scholar 

  66. Taibi T, Ngo DCL (2003) Formal specification of design patterns—a balanced approach. J Object Technol 2(4):127–140

    Article  Google Scholar 

  67. Taylor RN, Medvidovic N, Dashofy EM (2009) Software architecture: foundations, theory, and practice. Wiley, New York

    Google Scholar 

  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–339

  69. Torra V, Narukawa Y (2007) Information fusion and aggregation operators. Cognitive technologies. Springer, Berlin

    MATH  Google Scholar 

  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–289

  71. Zadeh LA (1965) Fuzzy sets. Inf Control 8(3):338–353

    Article  MATH  Google Scholar 

Download references

Acknowledgements

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

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Francesco Nocera.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Di Noia, T., Mongiello, M., Nocera, F. et al. A fuzzy ontology-based approach for tool-supported decision making in architectural design. Knowl Inf Syst 58, 83–112 (2019). https://doi.org/10.1007/s10115-018-1182-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10115-018-1182-1

Keywords

Navigation