semantic web effect on software engineering

11
Semantic Web Effect on Software Engineering Abstract The increasing and ongoing need for and reliance on software in almost all industries, and knowing that Large software development projects are complicated due to the amount of code, complicity and changing technologies, which mean increasing pressure on software engineers to deliver good software functionality within stringent cost, Time, and quality constraint. Moreover, the software maintenance phase is affected by these pressures. The point is that knowledge sharing in this domain is becoming harder every day because of the unique nature of software projects specially small and medium and sometimes even in big projects where there is no authority, which enforces standards for the whole system. Nowadays the semantic technologies considered as an important enabler to improve information and knowledge sharing in such scenarios, by helping to exchange and interconnect software engineering knowledge across the web. In this paper, we describe how semantic web affected the software engineering. 1. Introduction "The Semantic Web is not a separate Web but an extension of the current one, in which information is given well-defined meaning, better enabling computers and people to work in cooperation." - Tim Berners-Lee, James Hendler and Ora Lassila; Scientific American, May 2001 Since the begging of 1990 the world had known the World Wide Web by Tim Berners Lee, it has been a large warehouse of documents and data which is growing very rapidly. But this information didn’t have much use since Human readers cannot read large number of documents (mostly irrelevant) retrieved by the old search engines based on keyword searches and make decisions quickly. Thus Tim Berners Lee’s vision of the Semantic Web or Web 3.0 is to transform the World Wide Web into an intelligent web system of structured, linked data which can be queried and inferred as a whole by the computers themselves. Using this approach and purpose, semantic web is developing techniques that allow machines to better ”understand” internet sites which will allow concept searches rather than keyword searches and Just like a relational database system can answer a query by filtering out unnecessary data, Semantic Web technologies will similarly filter out information from the global database thus help people in satisfying their information needs. This kind of semantic information can be expressed by using formal models called ontologies. According to a wide spread definition,” an ontology is an explicit specification of a shared conceptualization” which mean it captures information in a common, formal and machine-understandable shape. Ontologies provide formal vocabularies which help to integrate and

Upload: moneer-kamal

Post on 08-Aug-2015

81 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Semantic Web Effect on Software  Engineering

Semantic Web Effect on Software Engineering

Abstract The increasing and ongoing need for and reliance on software in almost all industries, and knowing that

Large software development projects are complicated due to the amount of code, complicity and

changing technologies, which mean increasing pressure on software engineers to deliver good software

functionality within stringent cost, Time, and quality constraint. Moreover, the software maintenance

phase is affected by these pressures. The point is that knowledge sharing in this domain is becoming

harder every day because of the unique nature of software projects specially small and medium and

sometimes even in big projects where there is no authority, which enforces standards for the whole

system. Nowadays the semantic technologies considered as an important enabler to improve

information and knowledge sharing in such scenarios, by helping to exchange and interconnect software

engineering knowledge across the web. In this paper, we describe how semantic web affected the

software engineering.

1. Introduction

"The Semantic Web is not a separate Web but an extension of the current one, in which

information is given well-defined meaning, better enabling computers and people to work in

cooperation."

- Tim Berners-Lee, James Hendler and Ora Lassila; Scientific American, May 2001

Since the begging of 1990 the world had known the World Wide Web by Tim Berners Lee, it has been a

large warehouse of documents and data which is growing very rapidly. But this information didn’t have

much use since Human readers cannot read large number of documents (mostly irrelevant) retrieved by

the old search engines based on keyword searches and make decisions quickly. Thus Tim Berners Lee’s

vision of the Semantic Web or Web 3.0 is to transform the World Wide Web into an intelligent web

system of structured, linked data which can be queried and inferred as a whole by the computers

themselves. Using this approach and purpose, semantic web is developing techniques that allow

machines to better ”understand” internet sites which will allow concept searches rather than keyword

searches and Just like a relational database system can answer a query by filtering out unnecessary data,

Semantic Web technologies will similarly filter out information from the global database thus help

people in satisfying their information needs. This kind of semantic information can be expressed by using

formal models called ontologies. According to a wide spread definition,” an ontology is an explicit

specification of a shared conceptualization” which mean it captures information in a common, formal

and machine-understandable shape. Ontologies provide formal vocabularies which help to integrate and

Page 2: Semantic Web Effect on Software  Engineering

map semantically equal but syntactically different information. That lead us again to a similar definition

of semantic web “The vision of inter connected ontologies which capture large amounts of information

on the Internet is called the Semantic Web” . Recently, standards for ontology representation such as the

Resource Description Framework (RDF) and the Web Ontology Language (OWL) have been endorsed by

the W3C.All this these facts about the new semantic technologies have started to affect many domains

including “Software Engineering” where it’s important to improve information and knowledge sharing

across the web. In this paper, we describe the effect of semantic web on software engineering. The rest

of this paper organized as follows: Section 2 gives an overview of the web and his History.

Section 3 briefly describes Semantic web and give simple example about it. Section 4 describes

our main idea here (The effect on SE) and conclusion.

2. Web Overview World Wide Web was invented in 1990 by Tim Barners Lee. Since then the transformation of the web

has been marked with Web 1.0, Web 2.0 and Web 3.0 technologies. In Web 1.0, the HTML (hypertext

markup language) tags were added to plain text documents for displaying the documents in a specific

way on web browsers. Each document on the web is a source of knowledge or a resource. In the World

Wide Web we use the hypertext transport protocol (HTTP) and URI (Universal Resource Identifier) to

navigate to a web site “document”( that is identified by the URI we used), this navigation between pages

could be achieved using HTML’s <href> tag (a form of metadata). In Web 1.0, for quick search and

retrieval metadata, (data about data) that describes the contents of electronic documents or resources

are added in the document itself, which has the same purpose as indexes in a book or catalogues in a

library. Search engines like Google and Yahoo create metadata databases out of those metadata in web

documents to find the documents quickly. Then web 2.0 had arrived with the XML (Extensible Markup

Language) which give hierarchical structure to the web document content, transform it into data and to

transport the document as data. Where HTML tags, describes how to display the web content in client

computer, the XML tags adds another layer of metadata to query the web document for specific data.

XML documents can be read and processed by computers and can be exchanged between applications

once they all know the XML tags used in the documents. For example a data base and spreadsheets can

work together if they all transformed into a common XML format first. This collaboration of applications

is possible in a closed community when all the applications are aware of the common XML tags. Web 2.0

technologies like XML, DHTML, AJAX (Asynchronous Java Script and XML) allowed two way

communications with dynamic web contents and created social communities like Facebook, MySpace,

and Twitter etc. as we said XML may work for simple collaboration but for collaboration in open

everybody on the web has to agree on the meaning of the web contents. That mean XML alone does not

add semantics to the web content and here come web 3.0.

Page 3: Semantic Web Effect on Software  Engineering

3. Semantic web in Short As we described before The Semantic Web is a vision to help as make much more use of the information

on the internet by allowing machines to better understand the sites and the data on the internet thus

we can reach the information we need directly. To do so we need a few things first of all (and as we

mentioned before) XML alone does not add semantics to the web content Resource Description

Framework (RDF) protocol is designed to add another layer of metadata to add meaning or semantics to

the data (text, images, audio or video) inside the document with RDF vocabularies understood by

machines. Search engines or crawlers will navigate the links and generate query response over the

aggregated linked data. This linked data will encourage reuse of information, reduce redundancy and

produce more powerful aggregate information. To achieve this we need a standardized knowledge

representation system. Modeling a knowledge domain using standard, shared vocabularies will facilitate

interoperability between different applications and this standard is known as Ontology. Ontology is a

formal representation of knowledge as a set of concepts in a domain. Ontology components are classes,

their attributes, relations, restrictions, rules and axioms. DublinCore, GFO, OpenCyc/SUMO, DOLCE,

WordNet, FOAF, SIOC, SKOS, DOAP and vCard etc. are the much used well known ontology libraries of

RDF vocabularies. Implementation of DublinCore makes use of XML and a Resource Description

Framework (RDF). RDF triples describes any data in the form of subject, predicate and object. Subject,

predicate and object all are URIs which can be individually addressed in the web by the HTTP URI

mechanism. Subject and object can be URIs from the same document or from two separate documents

or independent data sources linked by the predicate URI. Object can also be just a string literal or a

value. RDF creates a graph based data model spanning the entire web which can be navigated or

crawled following the links by software agents. RDF schema (RDFS), web ontology language (OWL) and

simple knowledge organization system (SKOS) are developed to write rules, express hierarchical

relations, inference between web resources. They vary in their expressiveness, logical thinking and

hierarchical knowledge organization from being more limited to more powerful in RDFS to SKOS. For

querying the RDF data written in RDFS, OWL or SKOS, RDF query language named SPARQL has been

developed.

Page 4: Semantic Web Effect on Software  Engineering

Semantic Web protocol stacks

Semantic Web protocol stacks (Wedding Cake) proposed by Tim Barners-Lee in 2000. The bottom of the

Wedding Cake shows standards that are well defined and widely accepted whereas the other protocols

are yet to be implemented in most of the web sites. Unicode is a 16-bit code word which is large enough

(2^16) for representing any characters in any languages in the world. URI (Universal Resource Identifier)

is the W3C’s codification for addressing any objects over the web. XML is for structuring the documents

into data and RDF is the mechanism for describing data which can be understood by machines.

Ontologies are vocabularies from specific knowledge domain. Logic refers to making logical inferences

from associated linked data. Proof is keeping track of the steps of logical inferences. Trust refers to the

origin and quality of the data sources. This entire protocol stack will transform the web into a Semantic

Web global database of linked data for exploiting the full potential of the web.

Example

Now let’s give a simple example on the semantic web, let’s assume that we have a simple bookstore

data “A”

Page 5: Semantic Web Effect on Software  Engineering

Which represented as set of relations as this:

and another bookstore data “F”

Which represented as set of relations as this:

Page 6: Semantic Web Effect on Software  Engineering

When we start merging the two datasets we notice that we have the same URI so we can go on

and merge them to perform some operation.

With this merge we can get a lot of advantages for example now the user of the “F” data set can ask

queries like “give me the title of the original” which is an information that does not exist In “F” but in

“A”. However, we can achieve more by adding some extra information to the merge for example

A:author same as F:auteur and both identify a “Person”

Page 7: Semantic Web Effect on Software  Engineering

Now we can ask something like “give me the home page of the original’s ‘auteur’”.

As we see with some more links we get a very rich data base.

Page 8: Semantic Web Effect on Software  Engineering

4. Software Engineering and Semantic Web

Nowadays Software industry is becoming larger every day and with the great evolution that happened

on the Hardware the software is becoming the bottle neck. Since the Economies of all developed

countries depend on quality software and today software cost is more than Hardware cost. Thus cost of

software failure is dire. The development of software systems is a complex and knowledge intensive

activity. First, people with different backgrounds and expertise levels participate in roles such as end-

users, requirements engineers, developers and managers. Each participant produces and consumes

information, and accumulates experience and knowledge in specific areas. Second, changing

requirements and evolving functionality result in shorter turnaround time for knowledge about both the

application domain and system components. Third, effectively working with powerful frameworks or

successfully employing a design pattern requires experience about used artifacts.

Although these issues could be addressed by pragmatic tool support, coordination and knowledge

sharing have been side-aspects in software engineering for a long time. For example, while modularity

has been treated as a “technical” engineering concept, recent work has shown its importance for

coordination and knowledge sharing. Also configuration management systems have been designed from

a technical point of view, while they also strongly influence team collaboration. This lack of attention for

collaboration and knowledge exchange concerns has an impact on the efficiency of software

development projects. Empirical studies have shown that technically driven design decisions influence

coordination and knowledge sharing in development teams, which can in turn decrease their

productivity. Accordingly, an increasing interest in human issues such as coordination and knowledge

sharing can be observed in the software engineering community in recent years Since knowledge in

software development projects is scattered across various people, systems, formats and spaces, the

creation of a ”Software Engineering Semantic Web” could help software developers to share a common

format for integration and combination of data drawn from diverse sources. However, as in the case of

the Wikipedia, most of this knowledge is explicit, but not machine-understandable. To leverage similar

information access capabilities as for the Semantic Wikipedia, a Software Engineering Semantic Web

requires the following building blocks:

Means for leveraging the knowledge encoded by existing artifacts such as source code,

documents or bug descriptions.

Means for leveraging artifact metadata such as feature descriptions, compatible platforms or

license information.

Means for the simple and user friendly authoring of additional semantic knowledge

Knowledge management in software engineering has always been an issue which affects better

software development and its maintenance. There is always some gap in understanding about what

the business partners and stakeholders want; how software designers and managers design the

modules and how software developers implement the design. As the time passes, this gap in

understanding increases due to the increased complexity of involvement of many parties and

continuously changing requirements of the software. And in the later stage when the software has

Page 9: Semantic Web Effect on Software  Engineering

to be maintained and no one has the complete knowledge about the whole system. So the answer

here is semantic technologies which are going to ensure that communication and information about

all stages are held safely and available for all. That will increased maintainability of software will also

increase reliability of the software. Semantic artifacts will also give their product a competitive edge

for automatic discovery and integration with other applications and efficient maintenance of their

artifacts. Semantic Web services which can be linked with other web services will create new and

more powerful software applications, encourage reuse and reduce redundancy.

Few issues in semantic web software engineering:

Software methodology is typically characterized by a modeling language and a software process. In

particular, the software process defines phases for process and project management as well as quality

assurance. Each activity results in one or more deliverables – such as specification documents, analysis

models, code, testing reports, etc. – serving as input for subsequent activities. Those processes can be

described by models. Ontological annotations of meta-models can be used for automatic document

generation during the development process. And By using ontologies for describing meta-models and

expressing interrelationships between meta-models, deduction on those ontologies can be used to

compare meta-models and to automatically derive mappings from one meta-model to another. Even if

the meta-models used in diverse systems are completely different. Moreover an ontological API

description can also be used for automatic search of missing components during system development

and offers the possibility for automatic composition of existing components and services through

reasoning (considering that Semantic descriptions of e.g. COTS components or services will be stored in

knowledge basis where ontological reasoning and matchmaking mechanisms can be applied).

Software engineering ontologies:

Nowadays knowledge is viewed as one of the most valuable organization’s assets, and thus, the

importance of managing it is widely recognized. Knowledge created during software processes must

be captured, stored, disseminated, and reused, so that better quality and productivity can be

achieved. To share this knowledge we must share an understanding of the meaning, in other words

we need semantic. And to build a semantic system we need ontologies that can be used to establish

a common understanding about the software engineering domain, application domains and

tasks.one of the most important software engineering ontologies is the software process ontology,

since it describes the main concepts involved in software processes, such as process, project, activity,

artifact, resource, procedure, and so on. The others ontologies (software quality ontology, software

artifact ontology, software risk ontology and software organization ontology) are integrated to it,

forming a net of concepts. The Figure shows part of this ontology using an extension of UML. In this

extension, some axioms were assigned to UML’s elements. For example an axiom treating

transitivity is assigned to the aggregation notation

Page 10: Semantic Web Effect on Software  Engineering

5. CONCLUSION Computer technology had made a few huge steps since it first appeared (Software and hardware) and

nowadays semantic web is the new step, actually we are now living in the era of web technology and

this era will go on and affect all other aspects of technology. As we saw here software engineering has

entered this era to make use of the advantages presented by this new technologies. Most of the

researches that had been done focused on the software engineering need to knowledge sharing

presented by the semantic web and how we developed the tool of the software engineering Like (CASD)

to support this approach. From our point of view semantic web is going to continue to effect software

engineering and this will be clearer and adopted by everybody in software domain. the tools now are

not very satisfying and the whole concept of semantic software need to be refined so it become clearer

and wildly adopted like the older software engineering processes

by:

Moneer Kamal ([email protected])

Abd alhamid Taan , Anas Omar Bash

Page 11: Semantic Web Effect on Software  Engineering