Fuzzy Ontology for Requirements Determination and Documentation During Software Development

Fuzzy Ontology for Requirements Determination and Documentation During Software Development

Priti Srinivas Sajja (Sardar Patel University, India) and Rajendra A. Akerkar (Western Norway Research Institute, Norway)
DOI: 10.4018/978-1-7998-1863-2.ch002

Abstract

Every business has an underlying information system. Quality and creditability of a system depend mainly on provided requirements. Good quality requirements of a system increase the degree of quality of the system. Hence, requirements determinations is of prime importance. Inadequate and misunderstood requirements are major problems in requirements determination. Major stakeholders of the requirements are non-computer professional users, who may provide imprecise, vague, and ambiguous requirements. Further, the system development process may be partly automated and based on platform such as web or Semantic Web. In this case, a proper ontology to represent requirements is needed. The chapter proposes a fuzzy RDF/XML-based ontology to document various requirements. A generic architecture of requirements management system is also provided. To demonstrate the presented approach, a case of student monitoring and learning is presented with sample software requirements specifications and interfaces to collect requirements. The chapter concludes with advantages, applications, and future enhancements.
Chapter Preview
Top

Introduction

The quality of any software depends on the requirements considered during the development of the software. Requirements generally provide a basic skeleton of the software. The document containing well-formed requirements serve the basis for all phases of the software development activity. The inclusion of good quality requirements in the software requirement specifications leads towards good quality software. After proper analysis phase, once requirements are collected, analyzed and documented; a Software Requirements Specification (SRS) will be prepared. The SRS will be useful at the beginning of the design phase as well as at the end of the design phase to test whether the specified requirements are accommodated in the proposed design or not. Coding, testing and evaluation of the software are also done according to the requirements.

The requirements often contain imprecision and vagueness within them. Further, the importance of each requirement is different and affected by various parameters such as requirement initiator’s (who has initiated the requirement) mindset, cost of adding the requirements, loss due to missing of the requirements, the priority of the requirements, etc. Such important but vague criteria can be added as a fuzzy tag to each requirement while documenting the requirements with the help of fuzzy logic. Fuzzy logic, with the virtue of fuzzy membership function, can efficiently handle such vagueness and impression in computer systems. In this scenario, there is a need for a documentation ontology that documents requirements on the Web platform and manages the fuzziness associated with it. In contrast to traditional knowledge-based approaches, e.g. formal specification languages, ontologies seem to be well suited for an evolutionary approach to the specification of requirements and domain knowledge (Wouters, Deridder, & Van Paesschen, 2000). Moreover, ontologies can be used to support requirements management and traceability.

Besides, varying requirements and evolving solutions are important challenges during the software development process. Agile software development is the way to tackle these challenges by adopting methods based on iterative and incremental development. The challenges are similar in the area of ontology engineering. Several situations ontology development is a continuous and collaborative task.

The proposed chapter introduces the current scenario and sets the necessary technical background of ontology, knowledge engineering and fuzzy logic in section 1 and section 2. After that, the chapter documents related work in the area of ontology, fuzzy logic, and use of ontology in software development activities with general observations and limitations. The related work is documented in section 3 of the chapter. The section also summarizes the survey on work done by presenting the observations and characteristics. Section 4 of the chapter proposes a fuzzy ontology for requirements determination. The section introduces various components of requirements with the necessary description along with the graphical representation of the components to highlight the relationship between them. An RDF/XML structure is proposed for the requirements documentation in section 4. A generic architecture to manage the fuzzy ontology repository along with a knowledge base and other components are also illustrated here. Section 5 discusses a case of a student’s learning and monitoring system and presents sample software requirements specification with the requirements documented in the RDF/XML format and an interface screen for the acquisition of requirements. Section 5 also presents the fuzzy membership functions used for the experimental system. Section 6 presents advantages, applications and future directions based on the proposed approach.

Key Terms in this Chapter

Fuzzy Membership Functions: Fuzzy membership function determines the graded membership of an element to the base fuzzy set.

Ontology Life Cycle: Life cycle for typical phases of ontology development such as setting an objective, collection of knowledge, conceptualization, determination of suitable ontology model, knowledge representation into the ontology, evaluation of the ontology, documentation of ontology and sharing ontology.

Ontology: It is a study of various objects, attributes and their relationships that exist in the domain of interests. Ontology can be considered as the representation and explicit conceptualization of vocabularies such as entities, sub-entities, relations and properties in a domain of interest. With the help of such a formal definition, it is possible to represent a situation in an efficient manner.

XML/RDF: The RDF is known as Resource Description Framework; XML is defined as eXtensible Markup Language. These tools are used to represent information on Web/Semantic Web platform. The World Wide Web Consortium (W3C.org) has published a recommended set of syntax and specification for the use of RDF/XML.

Requirement Determination: It is the process of anticipating, investigating and specifying the necessary and important features about the system being developed in a predetermined format.

Ontology Engineer: Ontology engineer is an expert, who is responsible for identifying, acquiring, conceptualizing and representing ontology. He also keeps track of the above-mentioned ontology cycle.

Fuzzy Ontology: The ontology which uses fuzzy linguistic variables to demonstrate relationships between various objects and attributes.

Fuzzy Logic: It is a multi-valued logic based on sets without boundary and offers graded membership of an element to such set. Crisp logic always gives binary values say 0 or 1; however, the fuzzy logic provides many values between 0 and 1.

Complete Chapter List

Search this Book:
Reset