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

Preview:

Citation preview

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

Bernhard SteffenTiziana Margaria

Lightweight Process Lightweight Process CoordinationCoordination

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

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.

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

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

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

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

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

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

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

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

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

13

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Service-Oriented ComputingService-Oriented Computing

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

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

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

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

18

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC: Big PictureJava ABC: Big Picture

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

20

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Requirement ValidationRequirement Validation

Symbolic

Execution &

Workflow

Animation

21

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Hierarchical DesignHierarchical Design

Main Functionalities

Create Newsgroupmacro

SIBs

Macros

22

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Design ValidationDesign Validation

Local constraints

Global constraints

23

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Error DiagnosisError Diagnosis

Violating Runs

Missed Deadlines

Wrong Parameters

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

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

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

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

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

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

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

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

32

Chair of Programming Systems Prof. Dr. Bernhard Steffen

Java ABC in a NutshellJava ABC in a Nutshell

Validationanimationsimulationverificationtestingmonitoring

Simplicity

Agility

Customiza-

bility

Consistency

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

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

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

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

Recommended