UML Use Case
description
Transcript of UML Use Case
Class Transformations<<actor>>
Class Analyzer
Check Equivalence_________________
ObjectEquivalence
Find Part Clusters__________________
checkPartClusters
<<includes>>
WeakExtension andExtension
___________________________extends
weakExtends
Optional Parts
<<extends>>
<<extends>><<extends>>
<<extends>>
UML Use Case
Implementation
+get_partClusters(in Cd_graph)
PartClusters
+objectEquivalence(in pc1, in pc2) : bool
ObjectEquivalence
11
Extension<<Aspect>>
pointcut checkExtensions(Map pc1, Map pc2): call(* Main.objectEquivalent(Map, Map))
&& args(pc1,pc2);
boolean weakExtension(Map pc1,Map pc2){... }boolean extensionRelation(Map pc1, Mappc2){...}
OptionalParts<<Aspect>>
pointcut checkObjectEquivalent(Map pc1, Map pc2):execution(* Main.objectEquivalent(Map, Map))&& args(pc1, pc2);
pointcut checkWeakExtension(Map pc1, Map pc2): execution(* weakExtension(Map, Map))&& args(pc1, pc2);
pointcut checkExtensionRelation(Map pc1, Map pc2):execution(* extensionRelation(Map,Map))&& args(pc1,pc2);
pointcut opPartClusters(Cd_graph cdg):execution(*PartClusters.get_partClusters(Cd_graph) && args(cdg);
Map around(Cd_graph cdg):checkParts(cdg) { … }
/ / Adviceafter(Map pc1, Map pc2) returning(boolean
flag): checkExtensions(pc1,pc2){ }
/ / Advice boolean around(Map pc1, Map pc2):
checkObjectEquivalent(pc1, pc2){ … } boolean around(Map pc1, Map pc2):
checkWeakExtension(pc1, pc2){ … } boolean around(Map pc1, Map pc2):
checkExtensionRelation(pc1, pc2){ … }
BaseExtension, Weak Extension Optional Parts
References:[1] Ivar Jacobson, “Use cases and Aspects -- Working together”. Invited Talk at AOSD 2003, Boston, USA.
[2] Karl J. Lieberherr, “Adaptive Object Oriented Software The Demeter Method with propagation patterns”. PWS Publishing Company, Boston, 1996.
[3] Bashar Nuseibeh and Steve Easterbrook . “Requirements Engineering: A roadmap”. ICSE 2000.
Analysis and Design phase: well-defined structure
involving Actors and Use Cases. Implementation phase: use cases get dissolved into multiple, overlapping software modules.
Loss of Use Case Modularity
Problem:
Design SpaceImplementation Space
(AOP)Base Use Case Base Program
Extension Points Join Points
Extended Use Case Aspect Advice
Mapping «extends» from Use Cases to AOP
* Part of this work has been funded by ABB Switzerland.
Tangling & Scattering of use cases in software modules.
Use Cases Software Modules
Implementation phase
Manali Bhole and Therapon Skotiniotis*
Northeastern University, Boston, USA.
{manali, skotthe}@ccs.neu.edu
Use Cases to Code mapping
allows for:
• Iterative approach to development and future evolution.
Results:
• Easier traceability of stakeholders requirements.
• Easier validation of implementation against requirements.
• Increase understandability of design through inspection of implementation.
• Easier to show that implementation covers all use cases (scenarios).
Future Work:• Pointcut expressiveness vs. use case extensions needed.
• Attempt more complicated scenario flows and re-assess results.
• Add non-functional requirements.
to
from