STRESS06-steffen

advertisement
Lightweight Process
Coordination
Bernhard Steffen
Tiziana Margaria
Chair of Programming Systems, Prof. Dr. Bernhard Steffen
Ricoh, 11.04.06
Edsger Dijkstra: The Humble Programmer
"[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."
2
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Sir Tony Hoare: "Software Crisis: where is it?"
"How did Software get so Reliable
without Proof?" (1996)
• Defensive programming
• Over engineering
• Requirement verification remains
to be key.
3
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Sociological 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
4
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
General Trend: The Action moves up
Requirements
What
Modelling
What
Design
What
Implementation What
How
Machine Code
How
How
How
Automation
Despite undecidability
5
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Platforms
(Edward Lee)
Where the
Action Has Been:
Giving the red
platforms useful
modeling properties
(e.g. UML, MDA)
Getting from red
platforms to blue
platforms.
6
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
source: Edward A. Lee, UC Berkeley, 2003
CB Design vs. AMDD
SoC
Component Based
Design
Model Library
…
M1
AMDD
Mn
Compilation/Synthesis
M1
…
Mn
Integration as
Consistency/Compatibility
Component Library
…
C1
Integration
Cn
Integration
Running System
a board
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Global Model
Synthesis/Technology Mapping
Running System
a chip
7
ABC‘s AMDD
Heterogeneous Service Models
Component Model Library
SIB1
..
uses
SIBn
Macro 1
..
Feature Library
FLG1
…
FLGn
Temporal Constraints
and Types
Macro n
Integration as
Consistency/Compatibility
Global SLG
Compilation /Synthesis
Running System
8
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Leveraging this Situation
 Programming becomes Orchestration
 Programs become Process Models
 Verification becomes more
• Requirement Validation
• Property Checking and
• Runtime Checking
Service-Oriented Design/Computing
9
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Overview
 The Java Application Building Center (jABC)
 Application Scenarios
 Testing: With and for the jABC
 Legacy Components: Extrapolation Behavioural
Models
10
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Chair of Programming Systems, Prof. Dr. Bernhard Steffen
Ricoh, 11.04.06
Application Development
The Architecture
Application GUI
Reusability
Coordination Layer
Business Object Layer
ABC
Reliable, graphical
Configuration of Coordination Layer
Persistency Layer
12
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Service-Oriented Computing
13
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Lightweight Process Coordination
GUI Layer
Persistency Layer
Custom
SCM
ERP
Business Logic
Layer
Telco
Coordination
Process Layer
internal
external
Data
Protection of the Customers Intellectual Property
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
14
Java 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
15
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java 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
16
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
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
17
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC: Big Picture
18
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC Models: SIB Graphs
 composed of
SIBs
 hierarchical
 interpretation &
execution
 analysis & verification
 compilation
19
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Requirement Validation
 Symbolic
Execution &
 Workflow
Animation
20
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Hierarchical Design
Create
Newsgroup
macro
SIBs
Macros
Main Functionalities
21
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Design Validation
 Local constraints
 Global constraints
22
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Error Diagnosis
 Violating Runs
 Missed Deadlines
 Wrong Parameters
23
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Test Coordinator
Monitoring
Rational Robot
^
Hipermon
HTTP
Hipermon
PCM
Application PCs
CSTA II/III
HTTP
Hipermon
Hipermon
PCM
Application
Server
24
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
jETI: Remote Component Integration
jETI Tool Provider
<XML>
Tool
Description
</XML>
Tool
Executer
HTML Tool
Configurator
Tomcat Servlet
Container
jETI Tool
Provider
jABC Framework
jETI Extension
ABC VFS Interface
jETI Plugin
File
SIB
Java
Class
Edit
SIB Creator
<XML>
Tool
Desc.
</XML>
jABC Component Server
jETI Client
25
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Distribution of Labour
IT-Expert
Comp.develop.
Applic. expert
HTML-Designer
Identify and
define the components
Design, impl. and
test elem. services
•Rational Rose
•JBuilder
Design the
coord. Workflows
Implement
components
•JBuilder
Implement
HTML pages
Validate against
requirements
•Dreamweaver
Generate
source code
Pack the
application
Service Definition
Environment
26
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Life Cycle Management
Process
Requirements
Platforms
Orchestration
Validation
Process Model
static
Consistency
Control
Deployment
Running Process
Testing &
Monitoring
27
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
designed for application
experts
no programming skills
needed
easy-to-use graphical
user interface
28
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
Agility
model evolution is
expected
full enhanceability
vital development
29
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
Customization
Agility
free component naming
& visualization
free component
restructuring
usage of familiar
terminology
30
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
Consistency
one model for the whole
process
no switching between
technologies
avoidance of
inconsistencies
Agility
Customizability
31
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
Validation
animation
simulation
verification
testing
monitoring
Agility
Customizability
Consistency
32
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Service
orientation
easy integration of
existing features &
legacy systems
functionality wrapped
into components
technology-independent
integration
Simplicity
Agility
Customizability
Consistency
Validation
33
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
Executability
different execution levels
rapid prototyping
final runtime
implementation
Agility
Customizability
Service
orientation
Consistency
Validation
34
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
Universality
Java ABC runs where
Java runs
Platform independence
Object orientation
Agility
Executa-
Customiza-
bility
bility
Service
orientation
Consistency
Validation
35
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Java ABC in a Nutshell
Simplicity
Universality
Agility
Executa-
Customiza-
bility
bility
Service
orientation
Consistency
Validation
36
Chair of Programming Systems
Prof. Dr. Bernhard Steffen
Download