30
Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab Oslo, July 2013 Maged Elaasar, Ph.D. [email protected]

Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

  • Upload
    lynde

  • View
    31

  • Download
    0

Embed Size (px)

DESCRIPTION

Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab Oslo, July 2013. Maged Elaasar, Ph.D. [email protected]. Agenda. Design tools are becoming collaborative and integrated in lifecycle Design tools are embracing semantic web technologies. - PowerPoint PPT Presentation

Citation preview

Page 1: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

Towards a More Collaborative and

Integrated Approach to Software Design

Simula Research Lab

Oslo, July 2013

Maged Elaasar, Ph.D. [email protected]

Page 2: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

2Agenda

Design tools are becoming collaborative and integrated in lifecycle

Design tools are embracing semantic web technologies

Page 3: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

3Design is a Key Phase of Development Lifecycle

Reduces software development complexity

Identifies issues early in development lifecycle

Documents technical decisions for stakeholders

Accelerates implementations through model-driven development

Page 4: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

4Challenges for Design Tools Today

Designers work in silos unaware of team activities

Difficult to express designs in a suitable formalism

Difficult to share designs and get feedback from stakeholders

Difficult to work in parallel on design with other designers

Difficult to manage change and variability of design

Difficult to link designs to other lifecycle artifacts

Difficult to trace and analyze the impact of design changes

Difficult to create reports across multiple designs and lifecycle artifacts

Page 5: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

5Required Design Tool Features

CollaborativeTeam Access

Team Awareness

Lifecycle integration

Configuration management

Parallel development

Expressive Design Domains

Page 6: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

6

Rational Design Management (DM)

Design Management: a Collaborative Design Solution

RationalSoftwareArchitect

RationalRhapsody

DM

DM

RationalDesign

Management

Page 7: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

7Collaborative Team Access

Shared design respository with one or more clients

Access with role-based permissions

Search using keywords or queries

Browse elements and discover relationships

Collaborate by mark-up, comment, and review

RSA Client

Rhapsody Client

Web Client

Page 8: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

8Team Awareness

Provide a project overview dashboard as a mashup of widgets

Page 9: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

9Lifecycle Integration

Create links to other lifecycle artifacts

Preview link details and navigate to the linked artifact

Create reports and generate documents that cover linked artifacts

Analyze the impact of change to artifacts across the lifecycle

Page 10: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

10Configuration Management

Designs are organized into project

Designs evolve with change sets producing new versions

Design versions are recorded in one or more configurations A configuration can be changeable (workspace) or frozen (snapshot)

Configurations are organized in a hierarchy

Page 11: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

11Parallel Development

Support a traditional design process

Designer works in a private WS and delivers/rebases to intergration WS

Conflicts are resolved with compare/merge

Support an agile design process

More than one designer work in parallel in same WS

Minimize edit lock-out by maximizing design componentization

Page 12: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

12Expressive Design Domains

Structured Domains

UML, BPMN

Non Structured Domains

Sketches, Rich Text

Custom Domains Abstract syntax

Concrete syntax

Tool behavior

Page 13: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

13Design Tools: Embracing Semantic Web

Semantic web makes it easier to build modern design tools

Representing designs with RDF

Defining design domains with OWL

Linking design tools to other lifecycle tools with OSLC

Page 14: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

14Representing 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>

Page 15: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

15Defining Design Domains with OWL

Design domains are defined with OWL ontologies that define

Syntax (some validation, reflective tooling)

Semantics (reasoning, consistency check)

Extra tooling annotations (e.g., componentization, cascade delete)

<rdf:Description rdf:about=“uml#context"> <rdfs:label>Context</rdfs:label> <rdf:type rdf:resource=“owl#ObjectProperty”/> <rdf:domain rdf:resource=“uml#Comment”/> <rdf:range rdf:resource=“uml#Namespace”/> <dmcore:cascadeDelete rdf:resource=“dmcore:cd-domain”/></rdf:Description>

<rdf:Description rdf:about=“uml#Comment"> <rdf:type rdf:resource=“owl#Class”/> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource=“uml#context”/> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> <rdf:type rdf:resource=“dmcore:GraphType”/></rdf:Description>

Page 16: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

16Linking Design Tools to Other Lifecycle Tools with OSLC

Integrated development environment (IDE)

Tools follow the IDE guidelines (e.g., Eclipse)

Tools use common components (e.g., GEF, EMF)

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)

Data representation based on the principles of linked data

Minimal web-based API allowing workflow integration

Page 17: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

17Overview of OSLC

Service Provider

Resource

Resource Shape

Data Integration API

UI Integration API

Page 18: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

18OSLC 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/contents ]; oslc:queryCapability [ a oslc:QueryCapability; oslc:queryBase http://abc.com/toolA/contents ] ]

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 19: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

19OSLC Resource

A resouce 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)

<rdf:Description rdf:about="http://company.org/dm/model/123#class1"> <rdf:type rdf:resource=“uml#Class”/> <dcterms:title>Class 1</dcterms:title> <dmoslc:validatedBy rdf:resource=“../testcase1”/></rdf:Description>

Page 20: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

20OSLC Resource Shape

OWL supports open world assumption

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 21: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

21OSLC 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 PUT http://abc.com/dm/model/contents

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

Page 22: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

22User Interface Integration API

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

Resource selection dialog URI

Page 23: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

23User 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 24: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

24Design Management Implements OSLC

RSA Design Management server implements OSLC Converting XMI models to RDF resources

Providing RDF resources as OSLC resources

Providing OWL ontologies as OSLC resource shapes

Page 25: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

25Converting XMI Models to RDF Resources

Mapping XMI data to RDF triples Metamodel mapping: MOF to OWL and reverse

Profile mapping: Profie to OWL and reverse

Instance model mapping

<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

<owl:Ontology rdf:about=“pdsl#“/> <owl:Class rdf:about=“pdsl#Z“> <dm:compatibleWith rdf:resource=“dsl#Y”/></owl:Class><owl:DatatypeProperty rdf:about=“dsl#d"> <rdfs:domain rdf:resource=“dsl#X”/> <rdfs:range rdf:resource=“xsd:Boolean”/></owl:DatatypeProperty>

Page 26: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

26Providing RDF Resources as OSLC Resources

HTTP GET with a special OSLC header Add expected OSLC types to resources (e.g., oslc_am:Resource)

Add expected OSLC properties to resources (e.g., dcterms:title)

Filter types and properties not intended to be exposed to OSLC

Page 27: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

27Providing 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 28: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

28OSLC Integrated Workflow

Al wants to change the signature of operation sendMessage(buffer)

Al performs a multi-level impact analysis diagram on the operation

Change Request (CM)

Requirement (RM)

Test Case (QM)

Page 29: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

29Summary

Page 30: Towards a More Collaborative and Integrated Approach to Software Design Simula Research Lab

30

30