Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
An Improved Efficient Software Maintenance With Semantic Web

An Improved Efficient Software Maintenance With Semantic Web

|Views: 520|Likes:
Published by rabnawaz

More info:

Categories:Types, Research, Science
Published by: rabnawaz on Jul 15, 2009
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





An Improved Efficient Software Maintenance with Semantic Web
Rab Nawaz, Mehtab Afzal, Jawad Usman
 Department of Computer ScienceCOMSATS Institute of Information Technology, Abbottabad, Pakistan{rabnawaz, mehtabafzal, jawadusman}@ciit.net.pk 
Software maintenance is an important phaseof software engineering process. For efficientmaintenance, software professionals should knowfirst about the components and information aboutthem i.e. Metadata or data dictionary. One of theimportant information that needs to be known by themaintainers first of all is the versioning information.In this paper software components and informationabout them i.e. metadata about those components arerepresented in OWL Ontology. After creation of OWL, this created Ontology is mapped with astandardized Software Engineering ConceptOntology (SEC Ontology) and then SPARQL QueryLanguages are used to query the RDF graph in orderto extract useful information about softwarecomponents. The proposed methodology empowersthe software developers and professionals, to performsoftware maintenance with little efforts as for as timeand cost are concerned.
I: INTRODUCTIONSoftware maintenance is the modification of asoftware product after delivery to correct faults, toimprove performance or other attributes, or to adapt the product to a modified environment [1]. It is the important phase of software engineering life cycle. This phase isconsulted only when there are newly elaboratedrequirements in the organization or some modification inthe existing software. Software maintenance can beclassified into four main categories [2].The first one is corrective maintenance dealt withreactive modification of a software product performedafter delivery to correct discovered problems. It is justonly deal to fix the identified error.The second one is the adaptive maintenance which is performed only when there is a need of modification inthe software product performed after delivery to keep asoftware product usable in a changed or changingenvironment.Modification of a software product after delivery toimprove performance or maintainability comes in perfective maintenance. This maintenance is done onlywhen there is new requirements are elaborated. Thismaintenance is carried out most of the time [3].Modification of a software product after delivery todetect and correct latent faults in the software product before they become effective faults, this is done in the preventive maintenance.The maintenance process can be well illustrated from thefollowing Fig. 1.
ProblemFound Fix it 
Figure 1. Software Maintenance Process.Whenever a problem is found then there is a try to fix it.The problem found may be in the form of new elaboratedrequirements in the organization or any othemodification in the software [2].It is notify that the total cost on system maintenance isestimated to comprise at least 50% of total life cyclecosts [2]
So maximum cost is to be observed on themaintenance.In this paper one thing is to address that how to empower the software maintainers that performs softwaremaintenance very effectively with less time and cost.Once a software is handed over to any developer or  programmer for maintenance, he/she first consult withthe documentation of the software that contains all theinformation about the software component andinformation about them which means the functional andnon functional requirements.If this type of information is not available at that time,then it is bit difficult for that developer or programmer to perform maintenance efficiently. So maintenance isconcerned with time and cost. Both these factors aredirectly proportional to each other. If time increases, costautomatically increases.The proposed technique also reduces the cost onsoftware maintenance up to some extent. Basically thiscomes across when there is divergence between thesoftware components and information about them. Thisdivergence is due to loss of coupling between softwarecomponents and information about them. Totally a newmethodology is adopted in this paper for softwaremaintenance using semantic web. For this purpose threemain elements of the semantic web are used to overcomethe above mentioned problem.In [4], RDF (Resource description Framework),Ontology Web Language (OWL-DL) and SPARQL
Query Languages.The Resource Description Framework (RDF) is a family of World Wide Web Consortium(W3C) specifications, originally designed as a metadatadata model, which is used as a general method fomodeling information through a variety of syntaxformats.SPARQL stands for SPARQL Protocol and RDF QueryLanguage. This is used on the RDF graph in order toextract useful information regarding the state of thesoftware system [4].And an OWL-DL is used in the proposed technique torepresent the meaningful relationships between thesoftware components.II. WEB SEMANTIC TECHNIQUESSoftware systems and information about themdiverge quickly in time. Basically this divergence is dueto loss of coupling between the software components andinformation about them [4].According to this technique capturing the systemmetadata coupling it with software components and thenrelating it to software engineering conceptontology(SEC) and maintaining it over time. Metadata basically includes functional and non functionalrequirements documentations, metrics and success or failure of tests.III. SOFTWARE ENGINEERING CONCEPTONTOLOGY (SEC)Software Engineering Concept ontology isavailable on the internet in a standard (OWL-DL) format just only to facilitate its potential reuse [7].SEC ontology describes the relationship between theobject oriented software components. This has thesimilarity to java and other object oriented languages likeC++ or C# etc.Software tests, metrics and requirements are alsorepresented in OWL and their relationship defined tovarious components. Two types of tests are representedhere, unit tests and integration tests. Tests have results;and discusses the success or failure of the last run. Testsare associated with software components and arethemselves implemented as software components.Descriptions about every software components are heldin a generic
rdfs: comment
annotation property [4].Each software component basically represents somerequirement, and these requirements can be encoded byone or more object oriented classes. A particular methodmay be designated as an entry point” for therequirements. An entry point provides a clue as to whereto begin tracing the implementations in the source code.The key to using the SEC ontology is capturing wheninformation changes. This is done via an object owl property “LastModifiedAt”, a date time property thatmay be used on any software component, tests, metricsand requirements and denotes when it was last modified.The entire SEC ontology is available at [14].The SEC ontology is different from other modelinglanguages, such as UML or OCL, as for asimplementation is concerned [4].The SEC ontology has only one way to representrelationship between two object oriented classes [8].Those classes may have different set of methods that canimplement other methods in other classes such as parentclass relationships. The direct relationship betweenclasses can be inferred but are not explicitly stated.The SEC ontology was created on SWOOP ontologyeditor [11], whose ontology debugging features [16] arehighly useful. The debugging features are based on PalletOWL-DL reasoned [17]. The online version of Pallet[15] was used to validate the design of the ontology by performing SPARQL query languages against it.HTML documentation for the ontology is created usingthe Protégé ontology editor with its OWL plug-in [12]and OWLDoc Plug-in [7]. The generated OWLDoc for SEC ontology is available online at [9].The SEC ontology is used to represent the genericsoftware engineering concepts in order to facilitate its potential reuse.IV. EXAMPLE DATAThe example data based on SEC ontology isavailable online at [10]. The example data represents asmall portion of a real world software package of theJRDF project, http://rdf.sourseforge.net.The example data consists of two object oriented classeshaving four methods. They belong to a package, which belongs to a program. Each class has an associated unittest. A simple metric is associated with one of its class.Each class has a requirement associated with it toimplement.The OWLDoc for the example data is available at [13].The example data is loaded first into RedlandApplication Framework [5] and SPARQL Queries aremade against it. The SQPARQL queries are just only touse to answer the following questions as in [4].1.Whether or not the requirements are currentlyvalidated?2.Which of the requirements require revalidation?3.which tests have failed/success?4.Which are the requirements that are associatedwith the failed tests?5.Which object oriented class had associatedtests?The success of these queries show that the semantic webtechnique can be used to implements relationalnavigation of software collaboration graphs and systemmetadata as described in [14].The SPARQL can also be run through the Pallet OWL-DL reasoner. A portion of the example data is shown inthe following graph. At the center a java class from theJRDF project called
. It is of type OOClass which is from SEC ontology. It has onemethod called
ExecuteQuery ()
The “
has method
relationship also shown in the graph. The OOClass hasan associated requirement
and a
unit test
Figure 2. RDF graph on the Example DataIn the above Fig 2. a relationship
exists fromthe
method to its parent classDefaultSparqlConnection. Only one such relationship isshown here for clarification.V. SPARQLE QUERY EXAMPLEThe following is made against the example datato show only those classes which have associated tests.Basically this query returns two columns defined in theSELECT command, one for the Class and other for theassociated test. The Syntax of the query is as follow asdescribed in [4].
Prefix sec:<http://www.itee.uq.edu.au/~dwood/ontologies/sec.owl#>Prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>SELECT? Class? testWHERE{?class rdf: type sec: OOClass.OPTIONAL {? test sec: isTestOf? class}}
After executing the query, results will be look like as,
sec-example:SparqlQueryBuilderUnitTestsec-example:SparqlQueryBuilder sec-example:DefaultSparqlConnectionsec-example:DefaultSparqlConnectionUnitTestsec-example:SparqlQueryBuilderUnitTestsec-example:DefaultSparqlConnectionUnitTest
Figure 3. Output DataOutput retrieves the four classes and two associated testswith them. The OWL classes and properties thatconstitute the SEC ontology were analyzed whether the proposed approach can be implemented within integrateddevelopment environments or project management tools[3].VI. PROPOSED ARCHITECTUREFor software maintenance versioninginformation of the actual application framework onwhich the software is developed, is most important toknow for the actual software maintainer/developer.So providing versioning information of the platform inthe ontology is most critical at this stage.Once the software is handed over to the programmer or developer, the first thing the software maintainer or developer should know the versioning information aboutthe application on which the actual software wasdeveloped.The following Fig. 3 shows the proposed model.
System Metadata andinformation about theApplication FrameworkSoftware SystemComponents
Software Engineering ConceptOntology(SEC)
Coupling ItRelating It
Figure 4. Proposed Model.All the relevant information about the softwarecomponents, it will capture from the metadata means thatrequirements (Functional and Non Functional) andinformation about them. The work done in thismethodology focusing on the metadata and coupling thismetadata with SEC ontology, but no information aboutthe application framework is mentioned out. Informationabout the software components and information aboutthe application framework, both these things arerepresented in OWL and then relating this ontology toalready built-in SEC ontology available at [7]. This willhelp the maintainer to know about the original softwarethat is going to be modified with addition to theapplication framework on which this software isdeveloped. During maintenance the first thing to know by the maintainer before going to metadata, is of theversioning information about the framework on whichthe software is developed. The proposed techniqueempowers the maintainers for better understandability of the software components and all other potential relevantinformation about the software.

Activity (8)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Mugalula Edward liked this
B Massa Weeks liked this
dzaoneni liked this
Hajji Abuman liked this
Mehdi Mohammadi liked this
ambdiep liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->