Integrating Modeling Tools in the Development Lifecycle with OSLC Miami, October 2013 Adam Neal Adam_Neal@ca.ibm.com (Presenter) Adam_Neal@ca.ibm.com Maged.

Post on 03-Jan-2016

219 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

Transcript

Integrating Modeling Tools in the

Development Lifecycle with OSLC

Miami, October 2013

Adam NealAdam_Neal@ca.ibm.com (Presenter)

Maged Elaasarmelaasar@gmail.com

2Agenda

Introduction

Migration from XMI to RDF

Overview of OSLC and its benefits: Technical Foundation

Resource

Data Integration API

Resource Shape

Delegated UI Integration

Summary

3Software development is complex

Complexity can be mitigated with additional tools Design Management

Requirements Management

Change Management

Quality Management

Weak or no integration between tools

Minimal or no traceability between artifacts

4Linking Design Tools to Other Lifecycle Tools with OSLC

Integrated development environment (IDE)

Point to Point integrations are expensive and complex

MOF uses closed world assumptions

Supports validation

Does not help integrate tools built on different platforms

Does not help when data or API used for integration evolve

Open Services for Lifecycle Collaboration (OSLC)

Built on Resource Description Framework (RDF)

Uses open world assumptions

Data representation based on the principles of linked data

Minimal web-based API allowing workflow integration

5Migrating from XMI to RDF

1. Mapping MOF concepts to OWL

2. Mapping resource instances Corse or fine grained fragmentation

3. Generating URIs for RDF Graphs

6Migrating from XMI to RDF

1. Mapping MOF concepts to OWL

2. Mapping resource instances Corse or fine grained fragmentation

3. Generating URIs for RDF Graphs

<dsl:Y rdf:about=“#y1 "> <rdf:type rdf:resource=“pdsl#Z”/> <dsl:b>Hello</dsl:b> <pdsl:d>true</pdsl:d></dsl:X>

<owl:Ontology rdf:about=“dsl#“/> <owl:Class rdf:about=“dsl#X“> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource=“dsl#a”/> <owl:cardinality>1</owl:cardinality> </owl:Restriction> </rdfs:subClassOf></owl:Class> <owl:Class rdf:about=“dsl#Y“/> <owl:DatatypeProperty rdf:about=“dsl#a"> <rdfs:domain rdf:resource=“dsl#X”/> <rdfs:range rdf:resource=“xsd:Integer”/></owl:DatatypeProperty><owl:DatatypeProperty rdf:about=“dsl#b"> <rdfs:domain rdf:resource=“dsl#Y”/> <rdfs:range rdf:resource=“xsd:String”/></owl:DatatypeProperty><owl:ObjectProperty rdf:about=“dsl#c"> <rdfs:domain rdf:resource=“#X”/> <rdfs:range rdf:resource=“#Y”/></owl:ObjectProperty>

dsl

a:Integer [1]

X

b:String [*]

Y

c *

<profile>pdsl

d:Boolean

<stereotype>Z

dsl

a:Integer [1]

X

b:String [*]

Y

c *

<profile>pdsl

d:Boolean

<stereotype>Z

7Migrating from XMI to RDF

1. Mapping MOF concepts to OWL

2. Mapping resource instances Corse or fine grained fragmentation

3. Generating URIs for RDF Graphs

UML Model

UML Class

UML Operation

XMI file

http://abc.org/ex/model

http://abc.org/ex/class

http://abc.org/ex/operation

Example: FineRDF Graphs ex 2

http://abc.org/ex/model

http://abc.org/ex/classhttp://abc.org/ex/class#op

Example: Corse RDF Graphs

UML Model

UML Class

UML Operation

XMI file

http://abc.org/ex/model

http://abc.org/ex/modelUML Model

UML Class

UML Operation

XMI file

http://abc.org/ex/model

http://abc.org/ex/modelUML Model

UML Class

UML Operation

XMI file

http://abc.org/ex/model

http://abc.org/ex/model

http://abc.org/ex/model

http://company.org/dm/model/123 a uml:Operation, profileA:steroetypeX; uml:name “Operation 1”; uml:visibility uml:kind_public .

8

UML Model

Migrating from XMI to RDF

1. Mapping MOF concepts to OWL

2. Mapping resource instances Corse or fine grained fragmentation

3. Generating URIs for RDF Graphs

UML Model

UML Class

UML Operation

XMI file

http://abc.org/ex/model

http://abc.org/ex/123

http://abc.org/ex/guid_efab0-s34

RDF Graphs

http://abc.org/ex/model

9Design Management Implements OSLC

RSA Design Management server implements OSLC AM Converting XMI RDF

Providing RDF resources as OSLC AM resources

Supporting core OSLC protocols

RSA Rich Client interacts with DM server to discover resources

10Overview of OSLC

Technical Foundation

Resource

Data Integration API

Resource Shape

Delegated UI Integration

11OSLC Technical Foundation

Based on W3C Linked Data

Use URIs as names for things

Use HTTP URIs so that people can look up those names

When someone looks up a URI, provide useful information using RDF

Include links to other URIs. so that they can discover more things

Core specification defines protocols and some resources

Domain specifications define additional resources types, but not protocols

OSLC => Open Services for Lifecycle Collaboration

12OSLC Resource

A resource is represented following the principles of linked data

A resource is identified with a web URL (http://abc.com/dm/model/000)

A resource is represented as an RDF graph

Contains standard set of properties (e.g., rdfs:type, dcterms:title )

May contain pre-defined link properties

May contain other properties (open world assumption)

http://company.org/dm/model/123 a oscl_am:Resource, uml:Operation; dcterms:title “Operation 1”; uml:name “Operation 1”; dmlinktypes:validatedBy <http://qm.org/qm/testcase1>.

13OSLC Data Integration API

Retrieve/update/delete using HTTP GET/ PUT/DELETE on resource URI HTTP GET http://abc.com/dm/model/001

HTTP GET http://abc.com/dm/model/001?oslc.properties=dcterms:title, uml:NamedElement_visibility

Create using HTTP POST on creation factory URI HTTP POST http://abc.com/dm/models/creationFactory

Query using HTTP GET on query base URI HTTP GET http://abc.com/dm?oslc.where=dcterm:title=”Class1”

14OSLC Resource Shape

RDF and OWL support open world assumptions

OWL ontology supports inferencing

Validation requires closed world assumption

Resource Shape supports validation

01020304050607080910111213141516171819202122232425262728293031323334

@prefix oslc: <http://open-service.net/ns/core#>.@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.@prefix dcterms: <http://purl.org/dc/terms/>.@prefix uml: <http://www.omg.org/spec/UML/2011070#>.<http://acme.com/toolA/UMLClassShape> a oslc:ResourceShape; dcterms:title "Shape of resources of type UML Class"; oslc:describes: uml:Class; oslc:property [ a oslc:Property; dcterms:title "details for dcterms:title property"; oslc:propertyDefinition dcterms:title; oslc:name "title"; oslc:occurs oslc:Zero-or-many; oslc:valueType xsd:String ]; oslc:property [ a oslc:Property; dcterms:title "details for visibility property"; oslc:propertyDefinition uml:NamedElement_visibility; oslc:name "visibility"; oslc:occurs oslc:Zero-or-one; oslc:valueType oslc:Resource; oslc:allowedValue uml:VisibilityKind::public; oslc:allowedValue uml:VisibilityKind::private; oslc:allowedValue uml:VisibilityKind::protected; oslc:allowedValue uml:VisibilityKind::package ]; oslc:property [ a oslc:Property; dcterms:title "details for superClass property"; oslc:propertyDefinition uml:Class_superClass; oslc:name "superClass"; oslc:occurs oslc:Zero-or-many; oslc:valueType oslc:Resource; oslc:range uml:Class ].

15Delegated User Interface Integration

Delegated UI: consumer tool invokes dialogs supplied by provider tools Resource creation dialog URI

Resource selection dialog URI

16Summary

Many benefits to integrating modeling tools with other lifecycle tooling Enhanced user experience

Traceability, rich hovers, enhanced impact analysis

Difficult integration problems (e.g. creating artifacts) are handled by the native tool

Complicated business logic and UI is provided by the other tool

Point to point integrations are expensive and tightly coupled

OSLC integrations have one time investment to support core protocols Adding support for specific domains (Change, Quality, etc) becomes light weight

Integrations are loosely coupled, yet strong and robust

17

17

18

18

Additional Slides

19Future Work

Adoption of OSLC 3 Incremental (partial) updates of resources

Configuration awareness

Additional Resources and Link Types

Industry case studies of using RSA DM with the other Collaborative Lifecycle Management (CLM) tool suite to define an integrated development process

20User Interface Integration API

Link preview: consumer tool asks provider tool for compact rendering Consumer does HTTP GET with “application/x-oslc-compact+xml” header

Provider replies with RDF/XML document containing:

21Impact Analysis

Able to identify impacted lifecycle artifacts

Changing behavior of some design artifact can impact Requirements and Tests Need to be aware of previous Change Requests to ensure no regressions

Change Request (CM)

Requirement (RM)

Test Case (QM)

22OSLC Service Provider API

Defines the domain [AM, RM, QM or CM]

Defines creation factory URL

Defines query capability URL

0102030405060708091011121314

@prefix oslc: <http://open-service.net/ns/core#>.<http://abc.com/toolA> a oslc:ServiceProvider; oslc:service [ a oslc:Service; oslc:domain <http://open-services.net/ns/am#>; oslc:creationFactory [ a oslc:CreationFactory; oslc:creation http://abc.com/toolA/creation ]; oslc:queryCapability [ a oslc:QueryCapability; oslc:queryBase http://abc.com/toolA/query ] ]

0102030405

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.<http://abc.com/toolA/contents> <rdfs:member> <http://abc.com/toolA/resource/000>; # … 998 more triples here … <rdfs:member> <http://abc.com/toolB/resource/999>.

23Providing OWL Ontologies as OSLC Resource Shapes

Provide a mapping from OWL ontologies to OSLC resource shape Define a resource shape for each given OWL class

Add all properties with the OWL class (or its superclasses) as the property’s domain

Derive the oslc:name, oslc:occurs, oslc:valueType, oslc:allowedValue from OWL ontology

@prefix oslc: <http://open-service.net/ns/core#>.@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.@prefix dcterms: <http://purl.org/dc/terms/>.@prefix uml: <http://www.omg.org/spec/UML/2011070#>.<http://acme.com/toolA/YShape> a oslc:ResourceShape; dcterms:title "Shape of resources of type Y"; oslc:describes: dsl:Y; oslc:property [ a oslc:Property; dcterms:title “b"; oslc:propertyDefinition dsl:b; oslc:name “b"; oslc:occurs oslc:Zero-or-many; oslc:valueType xsd:String ];

24Representing Designs with RDF

Designs are represented as RDF graphs

Design integration (multi-classification, aliases)

Design extension (open world assumption)

Design modularization (multi-definition)

Separation of concerns

Parallel development

<rdf:Description rdf:about="#activity1"> <rdfs:label>Activity 1</rdfs:label> <rdf:type rdf:resource=“uml#Activity”/> <rdf:type rdf:resource=“bpmn#Activity”/></rdf:Description>

<rdf:Description rdf:about="#William"> <rdf:sameAs rdf:resource=“#Bill”/></rdf:Description>

<rdf:Description rdf:about=“people#Person"> <rdf:equivalentClass rdf:resource=“species#Human”/></rdf:Description>

<rdf:Description rdf:about=“#activity1"> <uml:isReadOnly>true</uml:isRealOnly> <notation:Diagram rdf:resource=“#Diagram1”/></rdf:Description>

top related