integrating modeling tools in the development lifecycle with oslc miami, october 2013 adam neal...

24
Integrating Modeling Tools in the Development Lifecycle with OSLC Miami, October 2013 Adam Neal [email protected] (Presenter) Maged Elaasar [email protected]

Upload: byron-armstrong

Post on 03-Jan-2016

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

Integrating Modeling Tools in the

Development Lifecycle with OSLC

Miami, October 2013

Adam [email protected] (Presenter)

Maged [email protected]

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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 .

Page 8: 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

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

Page 9: 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

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

Page 10: 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

10Overview of OSLC

Technical Foundation

Resource

Data Integration API

Resource Shape

Delegated UI Integration

Page 11: 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

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

Page 12: 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

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>.

Page 13: 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

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”

Page 14: 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

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 ].

Page 15: 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

15Delegated User Interface Integration

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

Resource selection dialog URI

Page 16: 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

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

Page 17: 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

17

17

Page 18: 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

18

18

Additional Slides

Page 19: 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

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

Page 20: 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

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:

Page 21: 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

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)

Page 22: 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

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>.

Page 23: 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

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 ];

Page 24: 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

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>