Quick & Dirty
Model Driven
Architecture Evaluation
@SteveBattle
Sysemia
Software Architecture
“The software architecture of a
program or computing system is the
structure or structures of the
system, which comprise software
components, the externally visible
properties of those components, and
the relationships among them.”
Software architecture in practice,
Len Bass, Paul Clements, Rick Kazman
JetBrains MPS: UML Model
cmp Component Model
Foo
Bar
Baz
• “The reviewers brainstorm
scenarios for using the design to
solve problems they expect to
face.”
• “The resulting set of scenarios
operationally defines what it
means for the design to be
usable.”
• “If it performs well under the
adopted scenarios, then the design
has passed the review.”
ARID: Active Reviews for
Intermediate Design
uc Component Model
User
Foobar
JetBrains MPS: Use-Cases &
Scenarios
Completeness &
consistency evaluation
cmp Component Model
Foo
Bar
Baz



• Consistency:
scenarios exercise only
the relations in the
model
• Completeness:
scenarios exhaust all
the relationships in
the model
Scenarios as Unit Tests*
“Architecture evaluation is a form of
artifact validation, just as software
testing is a form of code validation.”
1. Initially, <n1,v1>  bar.data
2. foo receives v1 following baz.get(n1)
3. Following, baz.put(n1,v1), <n1,v1>  baz.data
4. Scenario goal: <n1,v1>  baz.data 
* On my wish list
The Last Slide
Thanks 
@SteveBattle
Sysemia

Quick & Dirty Model-Driven Architecture Evaluation

  • 1.
    Quick & Dirty ModelDriven Architecture Evaluation @SteveBattle Sysemia
  • 2.
    Software Architecture “The softwarearchitecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.” Software architecture in practice, Len Bass, Paul Clements, Rick Kazman
  • 3.
    JetBrains MPS: UMLModel cmp Component Model Foo Bar Baz
  • 4.
    • “The reviewersbrainstorm scenarios for using the design to solve problems they expect to face.” • “The resulting set of scenarios operationally defines what it means for the design to be usable.” • “If it performs well under the adopted scenarios, then the design has passed the review.” ARID: Active Reviews for Intermediate Design uc Component Model User Foobar
  • 5.
  • 6.
    Completeness & consistency evaluation cmpComponent Model Foo Bar Baz    • Consistency: scenarios exercise only the relations in the model • Completeness: scenarios exhaust all the relationships in the model
  • 7.
    Scenarios as UnitTests* “Architecture evaluation is a form of artifact validation, just as software testing is a form of code validation.” 1. Initially, <n1,v1>  bar.data 2. foo receives v1 following baz.get(n1) 3. Following, baz.put(n1,v1), <n1,v1>  baz.data 4. Scenario goal: <n1,v1>  baz.data  * On my wish list
  • 8.
    The Last Slide Thanks @SteveBattle Sysemia

Editor's Notes

  • #3 We’re interested in software architectures defined in terms of the interfaces between components.
  • #4 MPS lets us define software components, their data resources and capabilities (methods)
  • #5 Use Cases modelled in Enterprise Architect. The aim is to develop corresponding scenarios (realizing specific use-cases) that fully exercise the architecture under review.
  • #6 MPS captures these scenarios which may be used to generate diagrams for the architecture documentation.
  • #7 Dothe scenarios use only the relationships in the model? MPS only allows us to use valid relationshipsDo the scenarios use all the relationships in the model? MPS doesn’t check this – we’d have to write a new plugin.If we _did_ have a relationship between Bar &amp; Baz (we don’t) then this would show up as absent from out completeness check.
  • #8 Scenarios are unit tests for architectures before they get anywhere near code.