Skip to content

Protocols

Thomas Kühn edited this page Apr 5, 2019 · 45 revisions

Protocols of the meetings

17.07.2018

  • Create an UML class diagram editor with the following functionality
    • Create and remove classes
    • Permit adding and removing of attributes to classes
    • Allow adding and removing of inheritance relations between classes
    • Allow adding and removing of associations between classes
    • Associations have a name and two multiplicity constraints at each end, whereas each is editable
    • Permit adding and removing of packages, which lists the classes it contains
    • Allow the editor to step in to "packages", where classes, packages, inheritance, and associations can be added and removed
    • Optionally, check inputs to names, multiplicities and attributes for correctness
  • Think about useful user interactions for the editor
  • Refine your architecture to support modular development

24.07.2018

Notes

  • presentation of new UML features
  • analyzing possible future requirements (see page "Requirements")
    • "flat" and "deep" model representation
    • file handling (save, load, export, esp. PDF)
    • templates for "core models" as adaptation starting point -> base for new models (instead of greenfield approach)
    • model views: different (graphical) representations for the same underlying model -> no different data; defined by the users' needs
    • metadata for models and views
    • separation of CROM and BROS feature sets for model creation
    • IDE comfort features (error highlighting, auto-completion, minimap)
    • general server usability
  • introduction into BROS and its concepts (with mapping on new requirements)
  • user interface analysis
    • view management
    • structure tree for already available elements (?) -> creating views needs selectable elements
    • minimal toolbox for new elements
    • configuration hidden via sidebar or right-click
    • creating new elements via left-click on existing elements
    • fixed background grid

Todos (2-3 weeks)

  • complete previous todos
  • extending the functionality of the UML editor, part I
    • relationships
      • different types
      • names, multiplicities
      • directed and undirected
      • drag-drop of anchor points
    • entities
      • different types
    • configuration
      • change element type at runtime
      • (graphically hidden) data within elements

07.08.2018

Notes

  • presentation of new UML features
  • another introduction into BROS
  • feasibility talk about:
    • reuse of elements in different views
    • cutting lines
    • background: fixed, zoom, snap of elements, infinite size

Todos (1-3 weeks)

  • previous todos:
    • drag-drop of relationship anchor points
    • creating a relationship type at runtime
    • editable multiplicity
      • suggested presets
  • extending the functionality of the UML editor, part II
    • general
      • element type change at runtime
      • suggest presets when creating new elements
      • multi-selection of elements
        • drag-drop
      • drag-drop of elements into another element (e.g., class into package)
        • (bonus) flat representation support with package resizing
        • show iconized/visual representation of the inner elements
      • add metadata for root diagram (Author, Contributors, Creation-Date, Modify-Date, Metric-Example: # of Elements)
    • relationships
      • properties available in the sidebar
      • change relationship source and target at runtime, incl. "swap" button
      • relationship labels (name, multipl.) above or to the right of the line, able to be moved by the user
      • (brainstorming) small arcs at edge overlap (-> far future)

14.08.2018

Notes

  • info about current state

Todos

  • finish previous todos
    • suggest presets when creating new elements and for multiplicities
    • drag-drop of elements into another element (e.g., class into package)
      • (bonus) flat representation support with package resizing
      • show iconized/visual representation of the inner elements
    • add metadata for root diagram (Author, Contributors, Creation-Date, Modify-Date, Metric-Example: # of Elements)
  • new
    • try drawing of "return events": bubbles at the edge of a package (view from outside) and at the left of a drawing canvas inside the package (when stepped in)
    • a package-to-package relationship
    • a "class-in-package"-to-"class-in-another-package" relationship (inheritance)

23.08.2018

skipped

25.09.2018

Notes

  • discussion about editor architecture (domain model, link model, picto model)
  • sum up of the last weeks

Todos

  • previous
    • suggest presets when creating new elements and for multiplicities
    • drag-drop of elements into another element (e.g., class into package)
      • show iconized/visual representation of the inner elements
    • add metadata for root diagram (Author, Contributors, Creation-Date, Modify-Date, Metric-Example: # of Elements)
    • try drawing of "return events": bubbles at the edge of a package (view from outside) and at the left of a drawing canvas inside the package (when stepped in)
    • a package-to-package relationship
    • a "class-in-package"-to-"class-in-another-package" relationship (inheritance)
  • new
    • relationships from return events to everything else

04.10.2018

Notes

  • architecture discussion
  • persistency with JSON
  • tasks done:
    • suggest presets when creating new elements and for multiplicities
    • add metadata for root diagram (Author, Contributors, Creation-Date, Modify-Date, Metric-Example: # of Elements)
    • try drawing of "return events"

Todos

  • previous
    • drag-drop of elements into another element (e.g., class into package)
      • show iconized/visual representation of the inner elements
    • a package-to-package relationship
      • a "class-in-package"-to-"class-in-another-package" relationship (inheritance)
    • relationships from return events to/from roles and packages/compartments
  • new
    • event handling
      • return events: draw them at package/compartment edge when stepped out
      • "create" & "destroy" relationships:
        • events to/from roles
        • events to/from packages
    • backend: linker & edit policies

09.10.2018

Notes

  • supervisor note: Please write down which task you are doing (may differ from the concrete list), what you are working on, the progress you have made and/or what the problems are.
  • general outlook
  • "sharpening" of the goals
  • main tasks done:
    • backend: linker & edit policies
    • persistency
    • initial undo/redo

Todos

  • previous
    • drag-drop of elements into another element (e.g., class into package) (Sebastian)
      • show iconized/visual representation of the inner elements (Sebastian)
    • (bonus) a compartment-to-compartment relationship
      • a "class-in-compartment"-to-"class-in-another-compartment" relationship
    • (bonus) event handling
      • return events: draw them at package/compartment edge when stepped out
      • "create" & "destroy" relationships:
        • events to/from roles
        • events to/from compartments
  • new
    • undo/redo with respect to relationships (Lars)
    • when creating a relationship: choice of suitable relationship types (Lars)
    • relationship label (name) placeholder (Lars)
    • save/load as file download/upload (Lars)
    • compartment as new entity type (like a class-package mix) (Sebastian)

19.10.2018

Notes

  • features demo (save/load, relations, undo/redo, compartments, class-in-comp)
  • formalities
  • discussion about backend and flat representation

Todos

  • main tasks
    • colors
      • roles = gray, classes = white, compartments = anything (but orange or blue)
    • flat representation switch:
      • switch off: list of element names in compartment (default)
      • switch on: showing element shapes and relationships with auto-layout
        • switch linker backend
        • switch on -> show shapes (e.g., of class elements) instead of pure list of names
  • bonus tasks
    • relationship labels only with double-click, otherwise hidden

26.10.2018

Notes

  • features demo (shape variation, flat-rep, flat-rep-switch, auto-layout, drop-in)
  • discussion about relationship representation
  • (note) save of switch in view

Todos

  • main tasks
    • relationships within flar-rep
    • think about better auto-layout algor.
    • relationship representation from outer compartment into inner comp.
  • bonus tasks
    • (open) relationship labels only with double-click, otherwise hidden

02.11.2018

Notes

  • feature demo (relationships in flat-rep)
  • auto-layout discussion (see wiki; no rubber-band, "Dagre" as fav)
  • arrow representation (always show the arrow heads)
    • Thomas will think about "deep arrow" layout -> "Port" (rectangle) layout for anchors ?
    • Thomas will also think about visualization of everything with members of the chair of visualization.. you know .. because visualizations ..
  • formalities... >_>

Todos

  • Nothing. Just pure void.

07.12.2018

Notes

  • discussion of the current state
  • port & event discussions
  • small feature demo (anchor points, magnetic lines, model elements)
  • formalities ("task allocation", working hour time plans)

Open Tasks

  • General
    • multiple anchor points for container
    • try "Dagre" for auto layout - Seb (demo in git repo)
  • Ports - added by Lars ( + border view container) Event notation
    • add an icon (small square) as "port" into the picto model, that may appear on the edge of every container element
    • port semantics: port as an "inner element representative" that can be used by outer outer elements via a relationship
      • a port can exist for any inner model element, that are roles, events, scenes, compartments, ...)
      • can be used by multiple outer elements
      • a port can be a representative for a combination of inner elements (e.g., a port for "role A" and "role B")
      • (nothing to do for inner-to-outer relationships by now)
      • target element as relationship label (instead of port label)
      • draw arrow head on port
  • Events
    Event notation
    • draw event bubbles
      • standard events (simple circle)
      • return events (boolean: double border line)
    • draw event associations
      • connection between event <-> role/container
      • simple implementation: choose between "create" or "destroy" when drag-drop the association end onto something
      • "create": dotted arrow with simple arrowhead towards role/container (we have to consider the "port" for connection towards "inner elements")
      • "destroy": dotted arrow with simple arrowhead towards the event
    • show name label for events

14.12.2018

Notes

  • auto-layout demo
    • various parameters
    • one "main class" as options
    • implementable for flar & deep
  • anchor point & port demo, return events are possible
  • next meeting in January

Open Tasks

  • short term (~ next 3-4 weeks)

    • apply the Dagre framework and enable auto-layout
    • labels for entities (esp. ports and events)
    • main task 1: implement the use case of adding an association from an outer towards an inner element (within a container)
      • click on an (outer) element (e.g., a class) and start drawing the association, drop it on a container
      • the system should ask for a target (inner) element (= drop-down list of available possible elements)
      • the association gets drawn and a port gets created (if not already available)
      • (bonus) if the association is dropped directly on an inner element, the editor choose this element as target without question
    • main task 2: events
      • enable return events (as a switch of "standard" events)
      • event associations: "create" & "destroy" (see above at previous tasks)
  • long term (~ January/February)

    • implement CROM and BROS edit policies (constraints regarding the creation and usage of elements)
      • e.g., 'no class can be created in a compartment'
      • e.g., 'fulfillment arrows have to end with a role, a role port, or with an compartment'
      • ...

11.01.2019

Notes

  • auto-layout demo
  • ports
  • technical dicussion

Todos

  • auto-layout -> dynamic container size, dependent on graph
  • fix labels for ports
  • fix "high frequency" highlighting bug
  • port highlighting when hovering over class (and vice versa)
  • Events:
    • normal event becomes "return event" with switch
    • return events: on edge of containers (in flat rep) or random (when stepped in)

18.01.2019

Notes

  • all Todos are fulfilled

Todos

  • Gruppen (Packages) als UML Packages darstellen
  • CompartmentType um Attributen und Operationen erweitern
  • RoleType um Attribute und Operationen erweitern
  • Edit Policies Implementieren
    //CanEvent Type "(" Feature ")" "when" Predicate ";" 
    Start Relationship (Relationships) when IsSourceType(RoleType);
    Add Relationship (Relationships) when IsTargetType(RoleType) and IsSourceType(RoleType) and !SourceEqualsTarget();
    Add RoleType (true) when InType(CompartmentType);
    Create RoleType (true) when InType(CompartmentType); 
    Direct_Edit RoleType (true) when true;
    
    • Implement default EditPolicies (cf. Rules or the Files send to you)
    • Implement EditPolicies for Rules with features (Naturals, CompartmentTypes, Relationships)
    • Implement Rules according to Event Relations (from Event to Role Type, or from Role Type to Event), i.e., wie im BROS Papier beschrieben (Siehe PDF-Datei).

25.01.

Notes

  • feature demos
  • edit policies for Framed (1.0) -> Thomas' feedback needed
    • missing natural-role fulfillment: was intended, a historical design decition .. however, we now allow such a connection
    • create natural within compartment: ?
  • discussion: relationships over two edges (e.g., into stacked packages): we should implement a first simple solution (a port on every crossing edge + a fulfillment from the filler to the first edge port)
  • new svg icons for event types

Todos

  • possibility to change attributes/operations (e.g., in sidebar) when stepped in
  • package notch
  • "full view" toggle for inner elements in flat-rep (with regard to auto-sizing)
  • change of the container height when adding new attributes/operations
  • bug fixes
    • arrow swap button
    • click into labels (e.g., relationship name) not possible
    • check source/target when drawing the composition & bug with disply of deleted compositions (renderer?)
  • auto-size of packages
    • auto-size button
    • auto-size when moving elements over the edge (but no "auto-downsizing")
  • Events
    • create/destroy relationship:
      • possible between event <-> role/scene as dashed line with simple (filled) arrowhead
      • "create" only possible from event, "destroy" only possible towards events; switch button between types for already drawn arrows
    • event labels
  • Scenes
    • representation
      • sub-type of package, has only name and attributes but no operations
      • like compartment but with an additional vertical (left) borderline .. see paper PDF
    • some specific requirements:
      • needs at least one "invoker" event as initiator of the scene (paper page 10) -> event with "create" arrow towards the scene
      • needs at least one return event (the exit events are optional)
      • no objects/naturals can be part of the scene, only roles and events
      • unlike compartments, a scene cannot play a role itself or can be filled by a role

01.02.

Notes

  • edit poilicy discussions
    • fulfillment from object to role allowed
    • no natural types in compartments
  • colors of elements (package, event, ...)

Todos

Open Issues

  • General
    • change of the container height when adding new attributes/operations
  • Bug fixes
    • arrow swap button (this error only happens within compartments)
    • click into labels (e.g., relationship name) not possible
    • check source/target when drawing the composition
    • bug with display of deleted compositions (renderer?)
  • Auto-size of packages
    • auto-size button
    • auto-size when moving elements over the edge (but no "auto-downsizing")
  • Events
    • create/destroy relationship:
      • possible between event <-> role/scene as dashed line with simple (filled) arrowhead
      • "create" only possible from event, "destroy" only possible towards events; switch button between types for already drawn arrows
    • event labels
  • Scenes
    • representation
      • sub-type of package, has only name and attributes but no operations
      • like compartment but with an additional vertical (left) borderline .. see paper PDF
    • some specific requirements:
      • needs at least one "invoker" event as initiator of the scene (paper page 10) -> event with "create" arrow towards the scene
      • needs at least one return event (the exit events are optional)
      • no objects/naturals can be part of the scene, only roles and events
      • unlike compartments, a scene cannot play a role itself or can be filled by a role

New Issues

  • nice screenshot of the modeled banking example
  • new button for the sidebar for instant hide/show

15.03.

Notes

  • feature demo
    • scenes
    • events, create/destroy (+ arrow discussion)
  • relationship discussion
    • difference between association (between naturals) and relationship (between roles)
    • aggregation (empty diamond) and composition (filled diamond) between role-role and natural-natural
  • naming: no space char
  • bugs

Todos

Open Issues

  • Auto-size of packages
    • auto-size button
    • auto-size when moving elements over the edge (but no "auto-downsizing")
  • Events
    • event labels

New Issues

  • check path features: "moving endpoints" and "change path"
  • bug fixes

22.03.2019

Notes

  • bug fix demo 👍

5.4.2019

Notes

  • bug fixes created more bugs

Todos

Open Issues

  • Auto-size of packages
    • auto-size button
    • auto-size when moving elements over the edge (but no "auto-downsizing")

New Issues

  • bug fixes
  • Double event labels when toggling flat view
  • Create Relation to Parent (Scene / Compartment) should be forbidden

Clone this wiki locally