Ontology Based Software Design Documentation For Design Reasoning

Designing a quality software product adhering to all the functional and non-functional requirements is a challenging task in software architecture designing. Selecting the best designs to apply in the project will be included in the design reasoning. The discussion on the selections are important, but it dies when the discussion ends. The reasoning is important to be documented for maintenance purpose and to accommodate any changes that would result in architectural evolution. There are tools, which have been proposed for this purpose, but, using an ontological approach with implementation and evaluation has not been conducted. Hence an ontology-based approach has been chosen for documenting the software architecture design reasoning under this research. As software designing is a vast area of design decisions, the research was narrowed down to the RESTful web service domain. First, an ontology was created, capturing the key terms and the architectural elements of the domain. A tool was created using this ontology to generate the design reasoning for a given software document. Three techniques were used when creating the tool, which comprised of a key term matching, deriving elements based on parts of speech tagging, and ontology reasoning. The reasoning captured from these techniques will be documented in a user-friendly manner. A prototype of this approach was developed and evaluated to prove its usability and accuracy. The overall precision of 0.58 was calculated with the use of the prototype application developed.

[1]  Stefan Seedorf,et al.  Applications of Ontologies in Software Engineering , 2006 .

[2]  Roy Fielding,et al.  Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation , 2000 .

[3]  Robertas Damasevicius,et al.  Ontology of Domain Analysis Concepts in Software System Design Domain , 2008, ISD.

[4]  Björn Regnell,et al.  Is a Design Rationale Vital when Predicting Change Impact? A Controlled Experiment on Software Architecture Evolution , 2000, PROFES.

[5]  Antony Tang,et al.  Design Reasoning Improves Software Design Quality , 2008, QoSA.

[6]  Raymond McCall,et al.  Making argumentation serve design , 1991 .

[7]  Andrew Dillon,et al.  Design rationale: Concepts, techniques, and use , 1997 .

[8]  Thomas P. Moran,et al.  Questions, Options, and Criteria: Elements of Design Space Analysis , 1991, Hum. Comput. Interact..

[9]  Philippe Kruchten,et al.  An Ontology of Architectural Design Decisions in Software-Intensive Systems , 2004 .

[10]  Dilemmas in a General Theory of Fieldwork , 2011 .

[11]  Antony Tang,et al.  Software Architecture Design Reasoning: A Case for Improved Methodology Support , 2009, IEEE Software.

[12]  Philippe Kruchten,et al.  Building Up and Reasoning About Architectural Knowledge , 2006, QoSA.

[13]  Muhammad Ali Babar,et al.  A survey of architecture design rationale , 2006, J. Syst. Softw..

[14]  Wim De Neys,et al.  Implicit conflict detection during decision making , 2007 .

[15]  Antony Tang,et al.  A rationale-based model for architecture design reasoning , 2007 .

[16]  Hans van Vliet,et al.  Software Architecture Design Reasoning , 2009, Software Architecture Knowledge Management.

[17]  Alexandru Telea,et al.  Ontology-driven visualization of architectural design decisions , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[18]  Hai H. Wang,et al.  Design Software Architecture Models using Ontology , 2011, SEKE.

[19]  Antony Tang,et al.  Human reasoning and software design: an analysis , 2010 .

[20]  José Emilio Labra Gayo,et al.  Using Semantic Web Technology in Requirements Specifications , 2008 .