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.
Similar content being viewed by others
Notes
E.g., [13] addresses this problem by proposing a specific pattern language.
The ontology is available online at http://sisinflab.poliba.it/semanticweb/ontologies/architecturalpatterns/.
However, note that under standard logic \(\sqsubseteq \) is interpreted as \(\Rightarrow _{z}\) and not as \(\Rightarrow _{kd}\).
With \(\mathbf {0}\) and \(\mathbf {1}\) we identify a vector whose elements are all 0 or 1, respectively.
The library is available at www.gurobi.com.
It is available for free download at http://protege.stanford.edu/download/download.html.
The fuzzy ontology is available online at http://sisinflab.poliba.it/semanticweb/ontologies/architecturalpatterns/.
See, e.g. the diagram available at http://lod-cloud.net.
References
Avgeriou P, Grundy J, Hall JG, Lago P, Mistrík I (2011) Relating software requirements and architectures. Springer, Berlin
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
Baader F, Calvanese D, McGuinness D, Nardi D, Patel-Schneider PF (eds) (2003) The description logic handbook: theory, implementation, and applications. Cambridge University Press
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
Bass L, Clements P, Kazman R (2005) Software architecture in practice. Addison-Wesley, Boston (Munich [u.a.])
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
Berners-Lee T, Hendler J, Lassila O (2001) The semantic web. Sci Am 284(5):34–43
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
Bobillo F, Straccia U (2011) Fuzzy ontology representation using OWL 2. Int J Approx Reason 52:1073–1094
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
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
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
Buschmann F, Henney K, Schmidt DC (2007) Pattern-oriented software architecture, volume 4, a pattern language for distributed computing. Wiley, New York
Buschmann F, Meunier R, Rohnert H, Sommerlad P, Stal M (1996) Pattern-oriented software architecture: a system of patterns. Wiley, New York
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
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
Chung L, Nixon BA, Yu E, Mylopoulos J (2012) Non-functional requirements in software engineering, vol 5. Springer, Berlin
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
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
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
Davis AM (1993) Software requirements: objects, functions, and states. Prentice-Hall Inc., Englewood Cliffs
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
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
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
Dietrich J, Elgar C (2005) A formal description of design patterns using owl. In: Proceedings software engineering conference, 2005 Australian. IEEE, pp. 243–250
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
Egyed A, Grunbacher P (2004) Identifying requirements conflicts and cooperation: how quality attributes and automated traceability can help. Softw IEEE 21(6):50–58
Fehling C, Leymann F, Retter R, Schupeck W, Arbitter P (2014) Cloud computing patterns: fundamentals to design, build, and manage cloud applications. Springer, Vienna
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
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Pearson Education, London
Garlan D, Shaw M (1994) An introduction to software architecture. Technical report
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
Glinz M (2007) On non-functional requirements. In: 15th IEEE international conference on requirements engineering, 2007. RE’07. IEEE, pp 21–26
Gross D, Yu E (2001) From non-functional requirements to design through patterns. Requir Eng 6(1):18–36
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
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
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
Harrison NB, Avgeriou P (2010) How do architecture patterns and tactics interact? a model and annotation. J Syst Softw 83(10):1735–1758
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
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
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
Henninger S, Ashokkumar P (2006) An ontology-based metamodel for software patterns. In: 8th international conference on software engineering and knowledge engineering (SEKE2006)
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
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
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
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
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
Kruchten P (2004) An ontology of architectural design decisions in software intensive systems. In: 2nd Groningen workshop on software variability, pp 54–61
Levandowsky M, Winter D (1971) Distance between sets. Nature 234(5323):34–35
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
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
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
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
Mikkonen T (1998) Formalizing design patterns. In: Proceedings of the 20th international conference on software engineering. IEEE computer society, pp 115–124
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
Mylopoulos J, Chung L, Nixon B (1992) Representing and using nonfunctional requirements: a process-oriented approach. IEEE Trans Softw Eng 18(6):483–497
Naragani DP, Uniyal P (2013) Comparative analysis of software quality models. Int J Comput Sci Manag Res 2(3):5634–5638
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
Pan JZ, Staab S, Aßmann U, Ebert J, Zhao Y (2013) Ontology-driven software development. Springer, Berlin
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
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
Sánchez D, Tettamanzi AG (2006) Fuzzy quantification in fuzzy description logics. Capturing Intell 1:135–159
Shaw M, Garlan D (1996) Software architecture: perspectives on an emerging discipline, vol 1. Prentice Hall, Englewood Cliffs
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
Straccia U (2013) Foundations of fuzzy logic and semantic web languages. CRC studies in informatics series. Chapman & Hall, Boca Raton
Taibi T, Ngo DCL (2003) Formal specification of design patterns—a balanced approach. J Object Technol 2(4):127–140
Taylor RN, Medvidovic N, Dashofy EM (2009) Software architecture: foundations, theory, and practice. Wiley, New York
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
Torra V, Narukawa Y (2007) Information fusion and aggregation operators. Cognitive technologies. Springer, Berlin
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
Zadeh LA (1965) Fuzzy sets. Inf Control 8(3):338–353
Acknowledgements
Francesco Nocera is supported by Exprivia S.p.A Ph.D Grant 2018.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10115-018-1182-1