UML: TIP: DO NOT refer to "analysis" Elements from "design" Packages (or from "design" diagrams) !
For example, consider a UML™ Parsing Analysis of a software tutorial into a UML™ model, with binding of text (in UML containers) to reverse-engineered "design" elements. Do this in analysis diagrams in Models that refer to the "design" elements, NOT the other way around.
Dr Darren says:
I can just hear certain i-have-never-actually-used-UML-in-real-projects IT academics going off about that tip ! Let 'em huff and puff. In my heavily reuse driven approach "design" classes are either (to be) forward or (have been) reverse engineered, and design diagrams NEVER refer to analysis elements of any kind, EVER, and thus the design packages modularise nicely. Which is nice.
I like to think of it this way. According to my model-driven UML™ Parsing Analysis development recipe the "design" classes usually "already exist", the "analysis" classes are merely there to define what you are going to "go and get" (reuse) after reverse engineering candidate packages into design packages. The analysis classes still play the role of "bridge" between use cases and the (possibly already implemented) design classes.
Besides, what are you going to do when the "designed" Classes are in a read-only package (possibly from many years before, and authored by somebody who had no idea how those classes might be used) ? You can «trace» (UML) or «allocate» (SysML) from the "designed" Class to the "analysis" Class if you really want, however that relationship still has to live outside the (read-only) "designed" Package anyway - and preferrably near the "analysis" Class - so you might as well just drop the idea that the "designed" Class knows or cares about the "analysis". Let go, and will promote reuse !
The old idea about design classes "tracing from" analysis classes as part of a formal development process introduces an unwanted "reverse" dependency that prevents modularisation of the design packages. This does not mean one cannot use a process such as: Requirements Analysis - Systems Analysis - Design - Implementation - Testing, one just has to understand the dependencies.
- Printer-friendly version
- Login to post comments
Zones
- IT zone
- UML zone
- Galleries meta-index: overview of all UML and SysML gallery groups
- UML Parsing Analysis zone
- UML tools zone
- UML: notes
- Galleries index: some miscellaneous (and curious) UML galleries
- Tutorial: some UML modelling and diagramming tips, tricks, and best practices
- Tips for all UML diagram types
- UML: TIP: WARNING: showing the symbol of a client Element or usage context in a diagram featuring a supplier Element can block modularisation of that supplier's Package or Model !
- UML: TIPS: Analysis vs. Design: how to organise your UML models
- UML: TIP: ALTERNATIVE: prefix each *Analysis Package with an asterix '*'
- UML: TIP: DO NOT refer to "analysis" Elements from "design" Packages (or from "design" diagrams) !
- UML: TIP: always use a Model (not a Package) for analysis elements and analysis diagrams (that may refer to design elements).
- UML: TIP: prefix analysis Classes with an indicator such as an asterix (*Thing) to distinguish them from reverse/forward engineered design classes (Thing) !
- UML: TIP: use a Package for design(ed) elements (only)
- UML: TIPS: Class diagrams
- UML: Tips for Composite Structure Diagrams
- UML reverse-engineering: code with the UML and your underlying model in mind
- The MetaTip: cognitive science, philosophy, and the UML are inseparable
- Tutorial: the UML2 Component as a logical and graphical «wrapper» (MagicDraw-centric)
- UML for Software Development
- Gallery: Tutorial: port-based software engineering with UML and Java
- Towards Executable UML
- Animated and simulated UML
- Java zone
- XML zone
- Drupal CMS zone
- SysML zone
- C++ zone
- Eclipse zone
- In MagicDraw UML, classifier-level sterotypes "show through" on symbols of instance level properties, unless that property has a visible (non-hidden) instance-level stereotype applied.
- Netbeans IDE zone
- Puredata synthesis zone
- Shibboleth zone
- Snippet-driven engineering: a meta-process for documentation-driven software and systems engineering
- Tools and Tips
- UML zone


















