Planning-Based Approach for Automating Sequence Diagram Generation
The slideshow I used to defend my Computer Science M.S. Thesis, which at the time of the defense had a terrible title that was later officially changed to Planning-Based Approach for Automating Sequence Diagram Generation.
Contract Initial State Use Case Preconditions Goal Use Case Postconditions Actions Methods Action Preconditions Method Preconditions Action Effects Method Postconditions
A parser to translate a manually normalized use case to message records Köster, Six & Winter (2001) Consistency Analysis Using refined activity diagrams to couple use cases & class models Li, Liu & He (2005) Consistency Analysis Using set theory & first-order logic to check consistency between the use case model & the conceptual class model Long et al. (2005) Consistency Analysis Using a queue & BFS to detect inconsistencies between well- formed class & sequence diagrams Chanda et al. (2009) Consistency Analysis A context-free grammar for use case, activity & class diagrams Yue, Briand & Labiche (2010) Model Generation A systematic review focusing on transforming textual requirements to analysis models in the context of MDD Yue, Briand & Labiche (2010) Model Generation A technique to automatically derive analysis models from use cases while maintaining traceability links Ghezzi, Mocci & Salvaneschi (2010) Consistency Analysis Using symbolic model checking to cross-validate algebraic specifications against intensional behavior models de Sousa et al. (2010) Consistency Analysis Using the B method to automatically analyze the consistency of requirements Vaquero et al. (2011) RE & Automated Planning itSIMPLE: an IDE for automated planning applications Sulaiman & Ahmed (2012) RE & Automated Planning Using itSIMPLE to demonstrate treating sequence diagram generation as a planning problem
use cases and class diagrams? Q2: How can that process be used to analyze the consistency between use cases and class diagrams? Q3: Which contract language should be used to enable those processes? Q4: How do the automatically-generated sequence diagrams compare to the manually-generated ones? 31
plan] Enqueue(n, f(n)) until queue is empty s, π ← Dequeue-min() if s satisfies g then return π applicable ← {m | precond(m) is true in s} if applicable = ϕ then next for each m ϵ applicable n ← [γ(s, m), π.m] Enqueue(n, f(n)) return failure
, A∗ The Evaluation (or Objective) Function 38 Cost so far; depth of n; # of previous message passes Estimated cost to goal; estimated # of remaining message passes
objects interact with the Actor Dependent objects are responsible for the objects they create A sender must already be active A sender must have a link to the receiver
variables A set of objects Specification Language STRIPS, ADL, or PDDL OCL-like Ruby expressions Constraints Preconditions only Preconditions plus semantic class relationships Creation of New State Components Typically, not supported Object instantiations* Communiqué Action Planners State Representation Typically, predefined state variables A set of objects Specification Language STRIPS, ADL, or PDDL OCL - like Ruby expressions Constraints Preconditions only Preconditions plus semantic class relationships Creation of New State Components Typically, not supported Object instantiations *
Support No Support for Combined Fragments Not Comparing States for Equality Possible Bias in Experiments Using Ruby for Inputs and Raw Outputs Other Limitations 92
the sequence of message passes, select the Actor. 2. If the receiver of the message is a boundary object, select the Actor. 3. If the receiver of the message is a dependency object, select the object’s creator. 4. If the message has more than one candidate sender, select the most recently activated candidate sender. 5. If the message does not have any candidate sender, select the Actor. 95