Title: Traversing the Design Gap with Patterns
1Traversing the Design Gapwith Patterns
- Mark Verhappen,
- Jeroen Voeten,
- Piet van der Putten
June 17, 2003
2Outline
- Motivation
- Status Quo
- New Insights
- Design Gap Example
- Traversing the Gap
- Best Modeling Practices Example Notation
- Conclusions
- Future Work
3Motivation
- Build the largest and fastest switch so far we
could not build it
- Straightforward evolution not cost-effective,
sub-optimal - Incremental changes and invalid assumptions
- Disruptive change fresh concepts required
- Riskful and time-consuming
- Develop methodology
4Status Quo
synthesis
analysis
Implementation
- Single large specification contains all system
aspects (time consuming) - Analysis and synthesis on single specification
- Current design flow not suitable for disruptive
changes
5New Insights
analytical performance protocols sizings test
cases
collection of models
conceptanalysis
DESIGN GAP
synthesis
analysis
Implementation
- Separate concept analysis from synthesis
- Collection of models for different aspects
- Problem you cant make a switch of any of these
models - Design gap you cant build a formal tool to
close it
6Analysis versus Synthesis
Modeling
Description
- Compact and readable (10s..100s lines)
- Separation of concerns a failure is not
catastrophic - Do not eliminate optimal solution
- No automatic link to system-level specification
- Complete enough for synthesis
- Rules for transformation and refinement in
synthesis tools - consistent specification ? make design decisions
- Not suitable for disruptive changes irreversible
7Design Gap Interpretation Problem
- Models in a Modeling language
- Example analytical Model to calculate
resequencing delay - arrangement of language primitives
- appropriate to answer the question(s)
- knowledge of language is not enough to understand
a Model - Models require interpretation
8Design Gap Example
weighted_scheduling()() par send_packets(1)()
and send_packets(2)() and ... and
send_packets(N)() rap.
send_packets(queue_number)() packet queues
giveNext(queue_number) delay (1/weights
getWeight(queue_number)) out!packet_message(pa
cket) queues remove(packet)
send_packets(queue_number)()
9Model Interpretation
weighted_scheduling()() par send_packets(1)()
and send_packets(2)() and ... and
send_packets(N)() rap.
send_packets(queue_number)() packet queues
giveNext(queue_number) delay (1/weights
getWeight(queue_number)) out!packet_message(pa
cket) queues remove(packet)
send_packets(queue_number)()
- What could go wrong?
- Understanding the language is not enough
- Fixed interpretation for language primitives? No
- choose any appropriate arrangement
- compact models
- faster iterations of concept analysis
10Traversing the GapModeling Patterns
- Inspired by Design Patterns object-oriented
software design - Document a recognizable design strategy
- Yielded good implementations in the past
- Discovered by experience
- Easily recognizable
- Robust against changing requirements
- Modeling Patterns
- document best modeling practices
- typical questions, abstractions, interpretations
- improve communication between modeler and
designer - prevent wrong interpretation (or guessing) by
designers - prevent costly design iterations
11Link-Level Flow Control Pattern
12Modeling Pattern Notation in UML
13Conclusions
- Disruptive architecture changes require fresh
concepts riskful and time-consuming - Disruptive changes existing system-level design
methods not suitable - Analyze concepts using various Models, before
synthesis - Models lack intended interpretation
- Automatic traversal of the design gap impossible
- Fixed interpretation for modeling primitives is
not a solution - Convey models and interpretations with patterns
structured traversal of the gap - Patterns improve communication, prevent costly
design iterations - UML is suitable to document modeling patterns
14Current/Future Work
- Do case-study to evaluate and discover modeling
patterns - Bring more structure into the definitions of
patterns - Development of a template for textual annotation
in the UML notation - classification of typical interpretations
- construction of a modeling pattern catalog (for
complex communication systems)