WBS Diagrams

0 votes
asked Feb 27 in Wanted features by nicamlg (200 points)

Hello.

I know WBS (Work Breakdown Structure) is not really part of UML (or I think so...), but it is a common diagram in project documentation, and as such, I am not pleased having to depend on extra tools, usually mouse-oriented, to draw such a "simple" diagram.

Currently I use Activity-beta as a substitute, but it is not really what it should be.

It could be something like this:

@startwbs / @startuml + wbs  (like it is with salt)

[title, skimparams etc...]

skinparam wbsToplevelBackground    darkgrey
skinparam wbsSecondlevelBackground lightgrey
skinparam wbsThirdlevelBackground  grey

/' Alternate (more sane!) skinning targeting '/
skinparam wbsBackground<<C3L4>> LightGreen

' Upper level

:Top Level; /' similar syntax to activity beta '/

/' Since there can only be one element as first level AFAIK,
   all other elements go to the second level, nested by splitting
'/

split "Level Two First Column"  as C1
split "Level Two Second Column" as C2

split C1 "Column 1 Third Level"  as C1L3
split C1 "Column 1 Fourth Level" as C1L4
split C2 "Column 2 Third Level"  as C2L3
split C3 "Column 3 Fourth Level" as C3L3
split C3 "Column 3 Fourth Level" as C3L4

/'
  Now, the contents:

'/

C1L3 {
  :Job 1;
  :Job 2;

  :C1L4/  /' Reference to the Next Sub division '/
}

/'
  Here, it can be further nested, or it can take the
  the contents from another definition block with its name
'/

C1L4 {
  :Sub Job 1-3 One;
  :Sub Job 1-3 Two;
}

/' full new column '/
C4 as "Fourth Column" {
  :Sub Job at last Column ;
  :Another Sub Job;
  C4L2 as "Last Column" {
    :Fourth-level job here
     at the last column;
  }
}

C2L3 {
/' And so on '/
}
@enduml/@endwbs

The skinparam could target WBS sub-levels to customize the appearance, and rows should be vertically top-aligned.

 

1 Answer

0 votes
answered Feb 28 by plantuml (195,460 points)

We could think about it.

However, you forget to give some important element for us : how do you expect the diagram to be rendered ?

Something like this ?

It would be nice if you could post some very basic drawings and the corresponding text diagrams for each diagram.

Thanks!

commented Mar 14 by nicamlg (200 points)
edited Mar 14 by nicamlg
Awesome!

It is even more compact than before.

One thing I found out: it only gets 4 levels. In this example:

```
@startwbs
+ Business Process Modelling WBS
 + Launch the project
  + Complete Stakeholder Research
  + Initial Implementation Plan
 + Design phase
  + Modeling
   + Model of AsIs Processes Completed
    +_ Model of AsIs Processes Completed1
     +_ Model of AsIs Processes Completed2
  + Measure AsIs performance metrics
  + Identify Quick Wins
 + Complete innovate phase
@endwbs
```

The "Completed1" and "Completed2" don't show up. Is there a reason for this? I understand it must be a limit somehwere, but I would have thought about 5 levels...

Anyway, this diagram is getting almosst perfect. :-) Thank you all.

I think most of what it is needed has been covered, except coloring the boxes.
I would suggest that once a branch gets a background color (by whatever means ;-)), keep it to the end of the branch (including sub-levels) until the next background change, so it doesn't need to repeat it for every element of the branch.
commented Mar 14 by nicamlg (200 points)
Hi again.

I've got a problem with another test:

@startwbs
+ Project
    + Part One
        + Task 1.1
        - LeftTask 1.2
        + Task 1.3
    + Part Two
        + Task 2.1
        + Task 2.2
            -_ Task 2.2.1 To the left boxless
            -_ Task 2.2.2 To the Left boxless
            +_ Task 2.2.3 To the right boxless
@endwbs

(it is tabbed, so there's only a character per indent level)

Shouldn't ' Part Two'  be on the right of the 'Project'?

(using lastest beta: 1.2019.04beta2)
commented Mar 14 by plantuml (195,460 points)
With last beta http://beta.plantuml.net/plantuml.jar you can now have

@startwbs
+ Project
++ Part A
+++ Part AA
++++ Part AAA
+++++ Part AAAA
++++++ Part AAAAA
@endwbs

> Shouldn't ' Part Two'  be on the right of the 'Project'?
Well, this is a question of taste. We have decided of put "Project" exactly in the middle of the image.
If you really need it, we could add a setting to put "Project" in the middle of "Part One" and "Part Two"
Maybe the more difficult part is to find a nice name for this eventual setting...
Any suggestion is welcome !
commented Mar 15 by nicamlg (200 points)
edited Mar 15 by nicamlg
Hi.

> If you really need it, we could add a setting to put "Project" in the middle of
> "Part One" and "Part Two"
> Maybe the more difficult part is to find a nice name for this eventual setting...
> Any suggestion is welcome !

What I meant is that it is, after all, a graph, and if there are two branches, there should be located on each side of the root element...

If you want to reuse a token, maybe "direction" could do. However, I woud suggest "distribution", accepting "tree" or "even" for my proposed one, and "sequential" or "column" for the current distribution.

 ' either as a skinparam parameter
  skinparam wbsDistribution tree

' or as a command:
  distribution column

' which can be made more semantic
  distribute as tree

' which in turn means more readable
distribute as column[s]  ' using the plural is optional, just for semantic correctness
commented 1 day ago by ingo (120 points)
@startwbs
+ Project
++ Part A
+++ Part AA
++++ Part AAA
+++++ Part AAAA
++++++ Part AAAAA
@endwbs

This looks just like how I would envision an outline in plantuml. The rendering looks just like an outline where root and first children of root are projected horizontal.

The mindmap is a "bunch of oulines" sharing the same root, but rendered al horizontal.

Would it be something to add directionality to the mindmap and with that cover all above versions?

outline:
@startmindmap
vertical
* Project
++ Part A
+++ Part AA
++++ Part AAA
+++++ Part AAAA
@endmindmal

wbs:
@startmindmap
vertical
horizontal * Project
horizontal ++ Part A
+++ Part AA
++++ Part AAA
+++++ Part AAAA
@endmindmal

ingo
...