Book a Demo

Author Topic: Significance of Root Nodes ?  (Read 9962 times)

John Gentilin

  • EA Novice
  • *
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Significance of Root Nodes ?
« on: November 05, 2015, 06:57:25 am »
I am new to EA and started a pattern of creating Root Node per unit of unit of work, where a unit of work is typically a library or stand alone project in our system. My project org is similar to the following

(Root) System (contains common elements, Actors, my overall Deployment models and views)
(Root) Project 1
  Class View
  Model View
  Diagram view (sequence / use case)
(Root) Library 1
  Just Class diagrams, referenced by Projects


I am starting to see downsides to that decision, specifically in generating HTML documentation in that it won't generate docs across root nodes only within a root node/

I am looking for some insight  / pointers to documentation on suggested philosophy how to layout an entire system that has many sub components.

I searched the manual and found definitions of root views, and some stuff about project management but nothing about when to create a Root Node  and also how View folders are used. The seem to only be allowed as siblings of a Root Node and not a Folder.

Thank you
John Gentilin

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Significance of Root Nodes ?
« Reply #1 on: November 05, 2015, 07:48:34 am »
The terms root and view are proprietary Sparx. They are packages but Sparx put some constraints on both. Hard to tell what could be the best approach in your case. It all ends in try and error :-/

q.

bockfu

  • EA User
  • **
  • Posts: 55
  • Karma: +4/-1
    • View Profile
Re: Significance of Root Nodes ?
« Reply #2 on: November 06, 2015, 06:17:59 pm »
My take away from EA literature is a Root/Model(s)/View(s) is a recommended practice to start with:

- Root
 + Model X
   + View A
   + View B
 + Model Y

This is supported by the following:

http://www.sparxsystems.com/enterprise_architect_user_guide/12.0/modeling_basics/uml.html

Quote
Models - a model is the highest conceptual level, representing a distinct and complete representation of all or some part of a modeled system.
A Project can contain multiple models.

Quote
Views are the second level within a model and define a specific viewpoint of the system being modeled - for example a Use Case view, a Requirements View or a Dynamic (behavioral) View.
Views are simply Packages that have an additional conceptual meaning.

I assume the usage of 'View' is intentionally consistent with ISO 42010 https://en.wikipedia.org/wiki/ISO/IEC_42010, but as I understand it Views do not define a specific Viewpoint.  Instead Views conform to a Viewpoint (i.e. perspective) and a View does not define a Viewpoint in and of itself.  (Is this a doc bug Sparx?)

If you apply something like 4+1 https://en.wikipedia.org/wiki/4%2B1_architectural_view_model you (theoretically) have 5 Views (as packages) per model.

This sounds like a decent way to start.  Rationale:  Minimal package hierarchy is easier to navigate and intuitive to use.  The views are based on industry standards.

I stumbled on this presentation on a projects use of EA which shares another approach:  https://www.fbcinc.com/e/nlit/presentations/Monday/How_One_Project_at_Sandia_Labs_is_Using_Sparx_Enterprise_Architect_to_Create_Model-Driven_Requirements_and_Documents_(SF)_-_Meeks_20150420_x.pdf
I liked the idea of having diagrams nested under each use case, but not all diagrams nest so well (in my experience thus far) and this doesn't follow the 'view' convention.

I recently tried using the Systems Engineering Model
http://sparxsystems.com/enterprise_architect_user_guide/12.1/systems_engineering/systems_engineering_modeling.html

which is outlined like so:


This ended up being a bit cumbersome to navigate.   Note: Cumbersome to navigate does not mean don't do it.  I expect users utilize EA's 'Model View' feature to effectively navigate complex models.  
http://sparxsystems.com/enterprise_architect_user_guide/12.1/building_models/model_views.html

I also observed the built in html export is per root node, so if this is important to you it should be taken into account.  In my case, I included all items we may want to export together under one root node.

In summary, three approaches are discussed in this comment:
1 Systems Engineering Model Structure
2 Sandia Labs Model Structure
3 Basic Model, View Structure

Today I am opting for #3 to try next.  The approach I am taking is each Model package represents a Viewpoint (see 42010 reference above) of the system and not a Project as in your example.   In general Views can be applicable to more than one Viewpoint, so this is not foolproof, but I am thinking this is good enough and a good place to start.






qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Significance of Root Nodes ?
« Reply #3 on: November 06, 2015, 10:36:37 pm »
@bockfu: EA's terminology is older than the ISO spec. So that's probably simple coincidence.

My use of root is that it's an analogy for a project (whatever that may be). At the view level I always place CIM/PIM/PSM and Sandbox.

q.
« Last Edit: November 06, 2015, 10:38:04 pm by qwerty »

bockfu

  • EA User
  • **
  • Posts: 55
  • Karma: +4/-1
    • View Profile
Re: Significance of Root Nodes ?
« Reply #4 on: November 12, 2015, 04:51:06 pm »
Quote
At the view level I always place CIM/PIM/PSM and Sandbox.

Thanks for sharing, this is helpful.  This sounds like an appropriate outline for scenarios where MDA is applied.


qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Significance of Root Nodes ?
« Reply #5 on: November 12, 2015, 06:15:53 pm »
Yes, this seems to be a so elementary design pattern that it worked for me in really all circumstances. The only issues I had was when the system was trivial and actually just needed a two-tier architecture so one of the levels was left orphaned.

q.

John Gentilin

  • EA Novice
  • *
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Re: Significance of Root Nodes ?
« Reply #6 on: November 22, 2015, 07:52:54 am »
Wow thanks for all the feedback, got side tracked on another problem and just got a chance to review this now..

Abstractly, my project layout is similar to the SNL presentation and maybe I am trying to put too much in one project file.  

From a top level view, we have an Ad Server, GWT Based Web UI, Database System, a log receiver system, then a log processing system connected thru a MQ.  I choose to have each of those projects as a root node, where the Database System is also a seperate project treated as a common source lib. The project is outlined below.  

The System root folder holds all the common/overview model elements. So when the project opens, the Subsystem diagram opens, clicking on a subsystem drives you a use case diagram in one of the other root projects. The use cases are then linked into an activity or sequence diagram within the same root node.

It all works really nice, but when i try to do reporting, Sparx will only report (HTML) on a single root node at a time.  When I report on the System root node, it no longer drives you to the subsystem and sends you to a property page instead.

I like the segmentation of multiple root notes but the limited reporting is a short coming. I could move the root projects to be a sibling of the System root folder but then the View folders needs to be just regular folders since they will be 2 levels deep from the root node and View folders need to be a direct sibling of the root node. Since the semantics of a View folder vs a regular folder is subtle, the ability to do full report vs segmented trumps that difference.

Thanks again for all the info
-John Gentilin


System (Root)
- Actors (view)
 - Deployment Model (view)
   - Servers (folder)
 - Deployment View (view)
 -  Subsystem Diagram
  - Physical Server Diagram

AdServer (root)
   - Class Model
   - Class View
   - Sequence View
        Sequence / Activity diagrams

Log Receiver (root)
   - Class Model
   - Class View
   - Sequence View
        Sequence / Activity diagrams

LogProcessor (root)
   - Class Model
   - Class View
   - Sequence View
        Sequence / Activity diagrams

Database Library
   - Class Model
   - Class View
   - Sequence View
        Sequence / Activity diagrams