chair of programming systems, prof. dr. bernhard steffen ricoh, 11.04.06 bernhard steffen tiziana...

36
Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Lightweight Process Coordination Coordination

Upload: martha-elliott

Post on 29-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06

Bernhard SteffenTiziana Margaria

Lightweight Process Lightweight Process CoordinationCoordination

Page 2: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

2

Chair of Programming Systems Prof. Dr. Bernhard Steffen

EdsgerEdsger DijkstraDijkstra: : TheThe HumbleHumble ProgrammerProgrammer

"[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem."

Page 3: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

3

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Sir Tony Hoare: "Sir Tony Hoare: "Software CrisisSoftware Crisis: where is it?": where is it?"

"How did Software get so Reliable without Proof?" (1996)

• Defensive programming

• Over engineering

• Requirement verification remains to be key.

Page 4: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

4

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Sociological ReasonsSociological Reasons Global Libraries

Millions of Testers

Enhanced Development Process

Better Tool Support

Lightweight Formal Methods• Typing, • Code Generation,• Model Checking, • Model-Based Testing

But: No formal verification

Page 5: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

5

Chair of Programming Systems Prof. Dr. Bernhard Steffen

General Trend: The Action moves upGeneral Trend: The Action moves up

Requirements

Modelling

Design

Implementation

Machine Code

What

HowWhat

HowWhat

HowWhat

How

Automation

Despite undecidability

Page 6: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

6

Chair of Programming Systems Prof. Dr. Bernhard Steffen

PlatformsPlatforms((Edward Lee)Edward Lee)

Where theAction Has Been:

Giving the red platforms useful modeling properties (e.g. UML, MDA)

Getting from red platforms to blue platforms.

source: Edward A. Lee, UC Berkeley, 2003

Page 7: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

7

Chair of Programming Systems Prof. Dr. Bernhard Steffen

CB Design vs. AMDDCB Design vs. AMDD

M1

C1 Cn

Mn MnM1

Running System Running System

Compilation/Synthesis

Synthesis/Technology Mapping

Model Library

Component Library

Global Model

Integration Integration

Integration asConsistency/Compatibility

AMDDComponent Based Design

SoC

a board a chip

Page 8: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

8

Chair of Programming Systems Prof. Dr. Bernhard Steffen

ABC‘s AMDDABC‘s AMDD

SIB1

Macro 1

SIBnFLGnFLG1

Running System

Compilation /Synthesis

Feature Library

Global SLG

uses

Integration asConsistency/Compatibility

.. …Component Model Library

.. Macro n

Heterogeneous Service Models

Temporal Constraintsand Types

Page 9: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

9

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Leveraging this SituationLeveraging this Situation

Programming becomes Orchestration

Programs become Process Models

Verification becomes more• Requirement Validation • Property Checking and• Runtime Checking

Service-Oriented Design/Computing

Page 10: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

10

Chair of Programming Systems Prof. Dr. Bernhard Steffen

OverviewOverview

The Java Application Building Center (jABC)

Application Scenarios

Testing: With and for the jABC

Legacy Components: Extrapolation Behavioural Models

Page 11: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06

Page 12: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

12

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Application DevelopmentApplication Development

Application GUI

Coordination Layer

Business Object Layer

Persistency Layer

ABCReliable, graphical

Configuration of Coordination Layer

Reu

sabi

lity

App

licat

ion-

spec

ific

The Architecture

Page 13: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

13

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Service-Oriented ComputingService-Oriented Computing

Page 14: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

14

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Lightweight Process CoordinationLightweight Process Coordination

GUI Layer

Process Layer

Business Logic Layer

Persistency Layer

internal

external

Coordination

Data

ER

P

T

elco

SC

M

Cu

sto

mProtection of the Customers Intellectual Property

Page 15: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

15

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC Role ConceptJava ABC Role Concept

Application Expert detailed knowledge of the task no classical programming skills Java ABC modeling skills

Component Expert advanced programming skills basic knowledge about backend systems collaboration with backend specialists &

application experts

Page 16: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

16

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC Component Model: SIBsJava ABC Component Model: SIBs

Service Independent Building Blocks (SIBs)

simple Java classes (comparable to Java Beans)

different optional abstraction layers in one class, defined through interfaces

Page 17: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

17

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC Component Model: SIBs (2)Java ABC Component Model: SIBs (2)

full Java power in all layers (e.g.: JDBC, RMI, JNI)

minimal basic implementation (SIBClass interface)

extensible & refactorable

fault-tolerant encapsulation within the model

Page 18: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

18

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC: Big PictureJava ABC: Big Picture

Page 19: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

19

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC Models: SIB GraphsJava ABC Models: SIB Graphs

composed of SIBs

hierarchical

interpretation & execution analysis & verification compilation

Page 20: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

20

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Requirement ValidationRequirement Validation

Symbolic

Execution &

Workflow

Animation

Page 21: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

21

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Hierarchical DesignHierarchical Design

Main Functionalities

Create Newsgroupmacro

SIBs

Macros

Page 22: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

22

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Design ValidationDesign Validation

Local constraints

Global constraints

Page 23: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

23

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Error DiagnosisError Diagnosis

Violating Runs

Missed Deadlines

Wrong Parameters

Page 24: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

24

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Rational Robot

HUSIM

HUSIM

HUSIM

HUSIM

Hipermon

Hipermon

Hipermon

Hipermon

CSTA II/III

HTTP

HTTP

Test Coordinator

PCMApplication

Server

PCMApplication PCs

^̂̂Monitoring Monitoring

Page 25: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

25

Chair of Programming Systems Prof. Dr. Bernhard Steffen

ToolExecuter

HTML ToolConfigurator

Tomcat Servlet Container

j ET I T ool Provider

jE T I ToolP rovider

File Edit

j ET I Client

SIB JavaC lass

ABC VFS Interface

<XML>Tool

Desc.</XM L>

j A BC Component S erver

S IB C reator

<XM L>Too l

D escription< /XM L>

jETI Plugin

jETI:jETI: Remote Component Integration Remote Component Integration

jABC FrameworkjETI Extension

Page 26: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

26

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Distribution of LabourDistribution of LabourApplic. expertComp.develop.IT-Expert

Design, impl. andtest elem. services

Implement components

Identify and define the components

Validate againstrequirements

Design the coord. Workflows

Pack theapplication

HTML-Designer

ImplementHTML pages

•Rational Rose•JBuilder

•Dreamweaver•JBuilder

Service Definition Environment

Generatesource code

Page 27: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

27

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Running Process

Process Model

ProcessRequiremen

ts

Deployment

Validation

Testing & Monitoring

Orc

hest

rati

on

Pla

tform

s

staticConsistency Control

Life Cycle ManagementLife Cycle Management

Page 28: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

28

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Simplicitydesigned for application expertsno programming skills neededeasy-to-use graphical user interface

Page 29: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

29

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Agilitymodel evolution is expectedfull enhanceabilityvital development

Simplicity

Page 30: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

30

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Customizationfree component naming & visualizationfree component restructuringusage of familiar terminology

Simplicity

Agility

Page 31: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

31

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Consistencyone model for the whole processno switching between technologiesavoidance of inconsistencies

Simplicity

Agility

Customiza-

bility

Page 32: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

32

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Validationanimationsimulationverificationtestingmonitoring

Simplicity

Agility

Customiza-

bility

Consistency

Page 33: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

33

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Serviceorientationeasy integration of existing features & legacy systemsfunctionality wrapped into componentstechnology-independent integration

Simplicity

Agility

Customiza-

bility

Consistency

Validation

Page 34: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

34

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Executabilitydifferent execution levelsrapid prototypingfinal runtime implementation

Simplicity

Agility

Customiza-

bility

Consistency

Validation

Serviceorientation

Page 35: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

35

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

UniversalityJava ABC runs where Java runsPlatform independenceObject orientation

Simplicity

Agility

Customiza-

bility

Consistency

Validation

Serviceorientation

Executa-

bility

Page 36: Chair of Programming Systems, Prof. Dr. Bernhard Steffen Ricoh, 11.04.06 Bernhard Steffen Tiziana Margaria Lightweight Process Coordination

36

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Simplicity

Agility

Customiza-

bility

Consistency

Validation

Serviceorientation

Executa-

bility

Universality