software engineering ontology

24
Software Engineering Ontology FOR MULTI-SITE SOFTWARE DEVELOPMENT By: Nidhi Baranwal MCA 3 rd sem University of Allahabad

Upload: nidhi-baranwal

Post on 17-Feb-2017

174 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Software Engineering Ontology

Software Engineering OntologyFOR MULTI-SITE SOFTWARE DEVELOPMENT

By:Nidhi Baranwal

MCA 3rd sem University of Allahabad

Page 2: Software Engineering Ontology

What is Ontology?The term ‘ontology’ is derived from its usage in philosophy, where it means the study of being, becoming, existence or reality as well as the basic categories of being and their relations.

Ontology deals with questions concerning what entities exist or may be said to exist, and how such entities may be grouped, related within a hierarchy, and subdivided according to similarities and differences.

Although ontology as a philosophical enterprise is highly theoretical, it also has practical application in information science and technology, such as ontology engineering.

An ontology defines a common vocabularya shared understanding

Continued...

Page 3: Software Engineering Ontology

...What is Ontology?Thomas Gruber defines ontology as “formal explicit specification of conceptualization”. Explicit specification of conceptualization means that an ontology is a description (like a formal specification of a program) of the concepts and relationships that can exist for an agent or a community of agents.Formal means ‘meaning of ontology is unambiguous, avoids misunderstanding.Specification consisting of

ClassesRelationship between classesindividuals

Specification is ‘detailed description of the design and materials used to make something’.

Continued…

Page 4: Software Engineering Ontology

...What is Ontology?A conceptualization is an abstract simplified view of some selected part of the world, containing the objects, concepts, and other entities that are presumed of interest for some particular purpose and the relationships between them.

Example : By default, all computer programmes have a fundamental ontology consisting of a standard library in a programming language or files in accessible file systems.

Page 5: Software Engineering Ontology

Types of Ontology Philosophers can classify ontologies in various ways using criteria such as the degree of abstraction and field of application:

Upper ontology: concepts supporting development of an ontology, meta -ontology

Domain ontology: concepts relevant to a particular topic or area of interest, for example, information technology or computer languages, or particular branches of science

Interface ontology: concepts relevant to the juncture of two disciplines

Process ontology: inputs, outputs, constraints, sequencing information, involved in business or engineering processes.

Page 6: Software Engineering Ontology

Multi-Site Software DevelopmentoSoftware development has increasingly focused on the Internet which enables a multi-site environment that allows multiple teams residing across cities, regions, or countries to work together in a networked distributed fashion to develop the software.

oMajor corporations have moved their software development to countries where employees are on comparatively lower wages.

oTeam members who carry out the tasks and activities, team leaders who control the tasks and activities, and managers who manage the project and leaders, may or may not be located at the same site in a multi-site environment.

Continued...

Page 7: Software Engineering Ontology

…Multi-Site Software DevelopmentoMoreover, It is quite often the case that these people have never met face-to-face, have different cultural and educational backgrounds, interpret methods in different ways, etc.

oSoftware engineering training and practice are quite different between cities and countries. It can be difficult to communicate between teams and among team members.

oHence, the globalization of software development means increasing problems.

oIt is this imperative of financial gain that drives people and businesses to multi-site development and the Internet which facilitates it.

Page 8: Software Engineering Ontology

Why Ontology in Software Engineering?

The problem: It can be difficult to communicate between teams and among team members, if strict software engineering principles and discipline are not understood and followed. The inconsistency in presentation, documentation, design and diagrams could prevent access by other teams or members.

Different teams could be referring to different texts on software engineering. Teams or team members use a particular text as their own individual guide, and when they communicate, their own knowledge base and terminology is different from those of others.

Hence, Communication becomes the real challenge and it effects software development process.

The Solution: An Ontology for Software Engineering as Ontology is an important part of developing a shared understanding across a project.

Continued...

People cannot share knowledge if they do not speak a common language

Page 9: Software Engineering Ontology

…Ontology in Software EngineeringIn the area of computer science, Ontology represents the effort to formulate an exhaustive and rigorous conceptual schema within a given domain, typically a hierarchical data structure containing all the relevant elements and their relationships and rules (regulations) within the domain

The main purpose of the software engineering ontology is to enable communication between computer systems or software engineers in order to understand common software engineering knowledge and to perform certain types of computations.

The specific software engineering concepts used for the particular software development project representing software engineering sub-domain knowledge are captured in ontology.

Thus, the software engineering ontology can be defined by using a set of software engineering representational terms.

The software engineering ontology is organised by concepts, not words. This is in order to recognise and avoid potential logical ambiguities.

Page 10: Software Engineering Ontology

Schematic overview of software engineering knowledge representation

Page 11: Software Engineering Ontology

Ontology Language ExamplesThere are several ontology languages available such as

Resource Description Framework (RDF), Ontology Interchange Language(OIL) Web Ontology Language (OWL) etc.

The most recent development in standard ontology languages is OWL from the World Wide Web Consortium (W3C).

OWL has the most complete set of expressions for capturing the different concepts and relationships that occur within ontologies; therefore , the software engineering knowledge is captured in OWL

Page 12: Software Engineering Ontology

Software Engineering OntologyModelling

Modelling include notations like:

1. Class Notations:

◦ Represented as a rectangle with two compartments. The top compartment is for labelling the class and the second for presenting properties. It is mandatory to specify the word ‘<<Concept>>’ above the class label in the top compartment.

◦ The generalisation symbol appears as a line with one end empty and the other with a hollow triangle arrowhead.

◦ The empty end is always connected to the class being subsumed, whereas the hollow arrowhead connects to the class that subsumes

Presentation of instances of classes and properties

Page 13: Software Engineering Ontology

Software Engineering OntologyModelling

2. Property Relation, Characteristic and Restriction Notations:

◦ Include data type property, object property, its characteristics, its restrictions, and association class attached property

◦ data type property of the software engineering ontology class can be expressed in the bottom compartment of class notation

◦ Top compartment is called the ‘domain’ and type of data type property is considered as a range

◦ characteristics of data type property can be either functional or non-functional represented by the words ‘Single’ or ‘Multiple’ respectively.

◦ An enumeration in software engineering ontology is represented in curly brackets Cardinality restriction

Class Class presentation and its properties

Page 14: Software Engineering Ontology

Software Engineering OntologyModelling

3. Instance Notation:

◦ An instance notation is represented as an ellipse with a dotted line attached to its class or property.

◦ If it is an instance of property, then the ellipse contains the property name followed by a colon and then the instance name.

◦ Unlike an instance of class, in the ellipse there is only the instance name

Presentation of instances of classes and properties

Page 15: Software Engineering Ontology

Software Engineering OntologyDesign and Implementation

A process of design in the software engineering ontology refers to the process to design concepts, relations, and constraints.Some common, widely-used concepts for designing are :

1. Ontology Model for an Entity-Relationship Diagram1.An entity-relationship diagram represents conceptual models of data stored in information systems2.There are three main components in E-R diagram : entities, attributes and relationships3.Entity attributes can be classified as being simple, composite or derived4.There are three main degrees of entity relationships : unary, binary and complex. 5.The complex entity relationship can be further divided into quaternary and ternary.6.In the ontology model, cardinality restriction constrains the number of entities that participate in a relationship .It is specified as a string that can be a string of 1..1 (one and only one),0..* (zero or more), 1..* (one or more), 0..1 (zero or one)

Page 16: Software Engineering Ontology

Contd..

Page 17: Software Engineering Ontology

Software Engineering OntologyDesign and Implementation

2.Ontology Model for a UML Activity Diagram

1.An activity diagram shows the control flow from activity to activity

2.Mainly, activity diagrams contain activities, transitions, swimlane, and objects.

3.A swimlane is a way to group activities performed by the same actor on an activity diagram or to group activities in a single thread. Every activity belongs to exactly one swimlane

4. Objects may be involved in the flow of control associated with an activity diagram. This refers to relations set_Object_Flow and get_Object_Flow.

5.Transitions of activities are classified into four main transitions: A.normal B.special C.branch D.concurrent

6.Special transition is further divided into an initial and a stop transition

7.Concurrent transition is further divided into a fork and a join transition.

Page 18: Software Engineering Ontology

Contd..

Page 19: Software Engineering Ontology

Software Engineering OntologyDesign and Implementation

3. Ontology model for UML class diagram

1.A class diagram is a diagram that represents a set of classes and their interrelationships

2.There can be relationships among classes like generalisations, aggregations, and associations

3.The generalisation symbol appears as a line with one end empty and the other with a hollow triangle arrowhead.

4.In the bottom compartment, notation are in the order of data type property name, its characteristic ,its type and its restriction .The characteristics of data type property can be either functional or nonfunctional represented by the words ‘Single’ or ‘Multiple’ respectively

5.An enumeration in software engineering ontology is represented in curly brackets

6. An object property can be expressed as an arrow with an open arrowhead and with a text label of the object property’s name. Symbols , , and [] represent restrictions allValueFrom, ∀ ∃someValueFrom, and hasValue respectively

Page 20: Software Engineering Ontology

Contd..

Page 21: Software Engineering Ontology

Software Engineering OntologyDeployment

Software engineering ontology allows knowledge sharing and facilitates the communication framework.

1.Knowledge Sharing: Knowledge sharing through the software engineering ontology eliminates misunderstandings, miscommunications and misinterpretations.

Software engineering ontology presents explicit assumptions concerning the objects referring to the domain knowledge of software development.

2. Communications: Software engineering knowledge formed into software engineering ontology facilitates communication framework among users and provides consistent understanding of the domain knowledge

Page 22: Software Engineering Ontology

Applications of Ontology1.In multi-site software development

2. To provide services for answering queries(Knowledge based Systems)

3.Ontologies can be used beneficially in enterprise

4.The key role of ontologies with respect to database systems is to specify a data modelling representation at a level of abstraction

5.It publish reusable knowledge bases, and offer services to facilitate efficiency across multiple, heterogeneous systems and databases.

Page 23: Software Engineering Ontology

ReferencesDevelopment of a Software Engineering Ontology for Multi-site Software Development : Pornpit Wongthongtham, Elizabeth Chang, Tharam Dillon and Ian Sommerville © IEEEOntology by Tom Gruber in the Encyclopedia of Database Systems, Ling Liu and M. Tamer Özsu (Eds.), Springer Verlag, 2009https://en.wikipedia.org/wiki/Ontologyhttp://www.obitko.com/tutorials/ontologies semantic web/specification of conceptualization.htmlC. Roussey et al. An Introduction to Ontologies and Ontology Engineering http://www.springer.com/978-0-85729-723-5 Software Engineering Approaches to Ontology Development -- Francisco Ruiz , José R. HileraOntologies in the Software Engineering process - Wolfgang Hesse

Page 24: Software Engineering Ontology

Thank you.