1 / 43

Dynamic Activity and Sequence Diagram Editor

This presentation outlines the agentTool (III) Dynamic tool, which includes Eclipse plug-ins for drawing Activity Diagrams and Sequence Diagrams using the MVC Architecture, GEF Framework, and Draw2D. It covers topics such as component design, assessment evaluation, project evaluation, future work, and lessons learned. The presentation also includes a demo of the Sequence Diagram Editor.

carrg
Download Presentation

Dynamic Activity and Sequence Diagram Editor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. agentTool (III) Dynamic MSE Presentation 3 Binti Sepaha

  2. Outline • Introduction • Action Items from Presentation 2 • Component Design • Assessment Evaluation • Project Evaluation • Future Work • Lessons Learnt • Sequence Diagram Editor Demo • Questions/Comments

  3. Introduction • agentTool (III) Dynamic includes 2 Eclipse plug-ins for drawing • Activity Diagrams and • Sequence Diagrams • MVC Architecture • GEF Framework and Draw2D

  4. Action Item #1 from Presentation 2 • Formal Specification 1. Each activity should have at least one entry and one exit (except for initial/final states and messages etc.) context i : IModel inv atleastOneEntryOneExit: (i.oclIsKindOf(ActionState) or i.oclIsKindOf(SynchronizationPoint) or i.oclIsKindOf(DecisionNode)) implies (i.target->size >= 1 and i.source->size >= 1)

  5. USE Model (contd.) 2. You have at least one valid path from the initial to (each) final state. context i : InitialState inv atleastOnePath: i.actionFlowClosure(i.target)->select(p | p.oclIsKindOf(FinalState) or p.oclIsKindOf(FlowFinalNode))->size >= 1 Operation: actionFlowClosure(i : Set(IModel)) : Set(IModel) = if i->includesAll(i.target->asSet) then i else actionFlowClosure(i->union(i.target->asSet)) endif

  6. USE Model (contd.) 3. For each activity, there should be at least one path from an initial to a final state that passes through it. --Final state should be reachable from each activity context i : IModel inv activityInPathToFinalState: (i.oclIsKindOf(ActionState) or i.oclIsKindOf(SynchronizationPoint) or i.oclIsKindOf(DecisionNode)) implies i.actionFlowClosure(i.target) ->select(p | p.oclIsKindOf(FinalState) or p.oclIsKindOf(FlowFinalNode))->size >= 1 --Each activity should be reachable from the Initial State context i : IModel inv activityInPathFromInitialState: (i.oclIsKindOf(ActionState) or i.oclIsKindOf(SynchronizationPoint) or i.oclIsKindOf(DecisionNode)) implies i.reverseActionFlowClosure(i.source) ->select(p | p.oclIsKindOf(InitialState))->size >= 1

  7. USE Model (contd.) Operation: reverseActionFlowClosure(i : Set(IModel)) : Set(IModel) = if i->includesAll(i.source->asSet) then i else reverseActionFlowClosure(i->union(i.source->asSet)) endif

  8. Action Item #2 and #3 • Add Names to Swim Lanes in Activity Diagram • Add frames in Activity Diagram Editor

  9. Controller Editor View Model Detailed Design

  10. Editor Design Entry Point to the Application

  11. Editor Design (contd.) Makes the editor a plug-in

  12. Editor Design (contd.) Sets the palette preferences

  13. Editor Design (contd.) This class is the canvas on which the diagram is drawn

  14. Model Design Responsible for part and model communication

  15. Model Design (contd.)

  16. Model Design (contd.) Class that represents the Action Flow

  17. View Design Figure that holds all other figures

  18. View Design (contd.)

  19. Controller Design – Edit Parts Responsible for part and model communication

  20. Controller Design – Edit Parts (contd.) Controller for Activity Diagram

  21. Controller Design – Edit Parts (contd.) Controller for Action State

  22. Controller Design – Edit Parts (contd.) Controller for Action Flow

  23. Controller Design – Edit Policies XYLayout Edit Policy Node Edit Policy

  24. Controller Design – Edit Policies (contd.) Direct Edit Policy Component Edit Policy

  25. Controller Design – Commands Command to add elements to the diagram

  26. Controller Design – Commands (contd.) Command to add an action flow between elements

  27. Controller Design – Commands (contd.) Command to delete elements from the diagram

  28. Controller Design – Commands (contd.) Command to change name of the element

  29. Controller Design – Commands (contd.) Command to move/resize elements

  30. Assessment Evaluation

  31. Bugs Encountered and Resolved • Message Position in Sequence Diagram • Positioning of elements after scrolling • Resizing of Elements • Deletion of Swim Lanes • Resize on Name Change • Adding Tags to Messages/Action Flows

  32. Project Evaluation • Problems Encountered • Comprehending Project Requirements • Learning GEF (Graphical Editing Framework) • Understanding Plug-in Development • Implementation of Some Features

  33. Project Evaluation (contd.) SLOC (Source Lines of Code) • Activity Diagram Editor – 5500 • Sequence Diagram Editor – 5500

  34. Project Evaluation (contd.)

  35. Project Evaluation (contd.) • Total Time 448 hrs

  36. Project Evaluation – Phase 1

  37. Project Evaluation – Phase 2

  38. Project Evaluation – Phase 3

  39. Future Work • Adding a message to self • Adding stop signs to loops and alternative frames

  40. Lessons Learnt • Learnt a New Technology • Learnt to work between deadlines • Better Organization of Work • Importance of Documentation • Going through the complete SDLC (System Development Life Cycle)

  41. Sequence Diagram Editor Demo

  42. Questions/Comments

More Related