Upload
martha-elliott
View
212
Download
0
Embed Size (px)
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