Conference presentation given by Niels Lohmann on September 16, 2010 in Hoboken, NJ, USA at the Eighth International Conference on Business Process Management (BPM 2010).
Z Score,T Score, Percential Rank and Box Plot Graph
How to implement a theory of correctness in the area of business processes and services
1. How to implement a theory of
correctness in the area of
business processes and services
Niels Lohmann and Karsten Wolf
2. About us
• cooperation between
– University of Rostock
– Humboldt-Universität zu Berlin
• focus: correctness of business processes and services
• output: research papers + software tools
• 5+ years
• 30+ developers
• ~ 500,000 lines of source code
16.09.10 How to implement a theory of correctness in the area of business processes and services 2
3. What is this talk about?
what the title says what it is about
How to best practices, lessons learned
implement tool development
a theory academic environment
of correctness special requirements
in the area of BP and services the area you care about
16.09.10 How to implement a theory of correctness in the area of business processes and services 3
4. communication fingerprints realizability
s
registration validation uml activity diagrams
s
partner characterization compatibility petri nets
e
choreography correction controllability adaptation
n
business process model checking diagnosis ws-bpel
t
web service instance migration analysis decomposition
c
deadlock freedom test case generation workflow nets
service-technology.org
rre
process configuration modeling substitutability artifacts
o
model transformation operating guidelines composition
c
adaptive business processes correctness-by-design
conformance soundness verification partner synthesis
soa behavioral constraints choreographies
desynchronizability contracts refactoring
service discovery public view generation
5. Challenge #1: Correctness
theory
Is it possible? decidability result
How can it be done? algorithm
How does it really work? efficient algorithm
we already fail here
Is it actually useful? product
practice
16.09.10 How to implement a theory of correctness in the area of business processes and services 5
6. Lesson #1: Prototypes
• Have them early!
• Have a lot of them!
• Pros: • Cons:
– detect bottlenecks early – a lot of resources required
– avoid useless optimization – programming/optimization
– work on real data skills required
– propel technology transfer – rapid prototyping is hardly
rewarded by performance
evaluations
• Possible if you create the right environment!
16.09.10 How to implement a theory of correctness in the area of business processes and services 6
7. Lesson #1: Prototypes (bonus)
• prototypes
– make research results transparent
– make experiments repeatable
– allow for community benchmarks
– make comparisons simpler
service-technology.org live /
• service-technology.org/live:
– Website hosting our prototypes
– replay experiments in your
Web browser
– demo at 2:00 pm
at Babbio 430
16.09.10 How to implement a theory of correctness in the area of business processes and services 7
8. Challenge #2: Academic environment
Universities ≠ professional software companies
• hardly any tenure programmers
• definitely no coding pros
• coding is never top priority
• maintenance is not enforced
• programming is hardly enforced
• frequently changing staff (2-5 year frequency)
• hard to collect knowledge
• hard to keep consistency
16.09.10 How to implement a theory of correctness in the area of business processes and services 8
9. Lesson #2: Single purpose tools
• Goals:
– Limit exposed code base!
– Minimize dependencies!
– Reduce error horizons!
• Realization: single purpose tools
– UNIX philosophy
• small is beautiful
• make each program do one thing well
• everything is a stream
– complex tasks = tool interplay
– be minimalistic: no GUI
– simple integration via system call or service invocation
16.09.10 How to implement a theory of correctness in the area of business processes and services 9
10. Lesson #2: Single purpose tools - bonus
• single purpose tools: • other best practices applicable
– faster release cycles – pair programming
– propels prototyping – code reviews
– easier maintenance – test-driven development
– continuous integration
16.09.10 How to implement a theory of correctness in the area of business processes and services 10
11. Lesson #3: Code ownership
• give code away to students
– code ownership motivates improvement
– direct acknowledgment
– simplifies responsibilities
– trust and freedom are important!
• propel development with continuous integration
– reduces number of
broken builds
– visibility yields competition
– implement rankings
16.09.10 How to implement a theory of correctness in the area of business processes and services 11
12. Challenge #4: Formal methods
• complicated algorithms and formalisms
• Lesson: keep formalisms natural
– Do not limit the modeling formalism.
– Separate modeling and verification formalism.
– Keep verification technology domain-unspecific.
• Side remark:
– Domain-unspecific tools can
outperform specific tools
– Communication between tools
only relies on simple formalisms.
16.09.10 How to implement a theory of correctness in the area of business processes and services 12
13. How to implement a theory of correctness?
• rapid prototyping
allows to quickly validate and share algorithms
• single purpose tools
reduce code complexity
• code ownership and continuous integration
propel motivation and increases quality
• a simple and unified theory
also simplifies tool development
16.09.10 How to implement a theory of correctness in the area of business processes and services 13