Practices
  Home arrow Practices arrow Page 8 - Pragmatic Guidelines: Diagrams That Wo...
Dev Shed Forums 
Administration  
Apache  
BrainDump  
DHTML  
Flash  
Java  
JavaScript  
Multimedia  
MySQL  
Oracle  
Perl  
PHP  
Practices  
Python  
Reviews  
Security  
Style-Sheets  
Web Services  
XML  
Zend  
Zope  
Forums Sitemap 
IBM® developerWorks 
Dedicated Servers 
E-Commerce Hosting 
Linux Web Hosting 
Managed Hosting 
Small Business Hosting 
Download TestComplete 
VPS Hosting 
Weekly Newsletter

 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
PRACTICES

Pragmatic Guidelines: Diagrams That Work
By: Apress Publishing
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 4 stars4 stars4 stars4 stars4 stars / 11
    2005-08-11

    Table of Contents:
  • Pragmatic Guidelines: Diagrams That Work
  • The Model Rule
  • The MTB Rule
  • The Résumé Rule
  • Every Picture Tells a Story
  • Define Your Own UML with Stereotypes
  • Just Enough Modeling: Analysis, Not Paralysis
  • Summary

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
     
    ADVERTISEMENT

    Stay one step ahead of the competition. Evaluate and give feedback on some of the hottest web development tools on the market today. Make your opinion heard! Click Here

    Pragmatic Guidelines: Diagrams That Work - Summary
    (Page 8 of 8 )

    In this chapter, I’ve given you a set of practical “golden rules” to some of the issues that you’ll be dealing with as you begin to analyze your problem domain and develop your model. These are summarized here:

    • Do What Works

      The first rule is self-explanatory. There’s no point rigidly 
      obeying the rules if your model fails to communicate itself to 
      others, so do whatever works for you in your particular 
      situation.
    • The Model Rule

      UML diagrams are like a user interface into your underlying   model. Different diagrams illustrate different aspects of the  model, and so they will contain different information, but the   complete set should present a coherent picture. Completeness   lies in the model, not in a single diagram.

         •  Legible Does Not Mean Pretty

    Don’t spend an age getting your diagrams perfect: they only 
    need to look good enough to get across the information that 
    they are designed to communicate.

    • The MTB Rule (MTB—Minimum Two Brains)

     When you’re working on a new model or idea, always get 
     another member of the team to look at it. They might spot 
     flaws in a model that you didn’t, or help you to correct a 
     diagram. Two or more brains can spark a creative process.

    •  The 7 ± 2 Rule

      The average human brain can only hold 7 ± 2 things in its 
      short-term memory, so cluttered diagrams lead to confusion.
      Simplifying diagrams and reducing the number of elements
      often improves communication. When circumstances demand
      complexity, grouping related elembirtents can aid
      understanding.

    •  The Résumé Rule

            Each diagram should fit onto one standard-sized sheet of paper.

    •  "You just Don't Get It!" Is Never an Excuse

    It’s your responsibility to ensure information is communicated. When there’s a problem, listen to the other people, and find out what they understand and where they think the problem lies. Make sure they can communicate the idea back to you.

        •   Every Picture Tells a Story

    Every diagram should tell a story in its own right. All the details on that diagram should contribute to that particular story.

    • The Highway Map Rule

            Your models are maps to your code, so maintain them alongside
            your code, even after it has built. Although they might become
            a little out of step at times, don’t throw them away.

         •   Define Your Own UML with Stereotypes

             UML doesn’t contain a symbol for everything that you need.
             Sometimes it’s helpful to define your own symbols or add extra
             information to elements using UML stereotypes, but always
             check first that there’s not already something defined that you
             can use, or commonly, conventionally used stereotypes.

         •   Just Enough Modeling: Analysis, Not Paralysis

             Your model will never be completely perfect, and sooner or later
             you need to start coding. Learn to recognize when you have
             created a “good enough” model. Holes and other problems will
             show themselves up in review.

    We’re going to come back to the process of analysis and design again in Chapter 5, when we look at gathering and analyzing requirements, but because I want to focus on how you can apply modeling and UML in a .NET environment, let’s take some time out first to see what .NET itself looks like as a UML model. That’s going to be the focus of the next chapter.


    1.  Scott W. Ambler, Agile Modeling: Effective Practices for eXtreme 
         Programming and the Unified Process
    (John Wiley & Sons, 2002)

    2.  Jeff Del Papa, and The New England Rubbish Deconstruction
         Society, “The NERDS
    Tactical Rules for Scrapheap Challenges
         (Project Management for 10 Hour Projects),”
    The New England
         Rubbish Deconstruction Society Web site (
    http://www.the-
       nerds.org/
    contestant-advice.html
    ). Along with The MTB
          Rule
    , this site has some great practical rules for software
         development and management: “KISS. Keep It Simple, Stupid.”
         “Just  remember:
    If brute force doesn’t work, you aren’t using
         enough.” “If you break, you lose.” “MCF:
    Mission Critical First.”
         “Test Early, Test Often.” “Leave margins.” “Identify your hidden

         assumptions.” “The machine shop should be a last resort.” “Make
         time for silliness.” “If
    something isn’t right—LET THE DIRECTOR
         KNOW RIGHT AWAY!!!” These rules are stated
    in the context of a
         high-pressure hardware effort; but the spirit of these rules applies
         to
    software as well.

    3.  Stephen King, On Writing (Pocket Books, 2002), p. 103. King goes
         on to demonstrate what
    he means by writing as telepathy; and he
         makes a compelling (if metaphorical) case.

    4.  George A. Miller, Ph.D., “The Magical Number Seven, Plus or Minus
         Two: Some Limits
    on Our Capacity for Processing 
         Information,” (
    http://www.well.com/user/smalin/miller.html).

    5.  Robert A. Heinlein, Stranger in a Strange Land (Ace Books, 1991), 
         p. 266: “‘Grok’ means to
    understand so thoroughly that the
         observer becomes part of the process being observed—
    to merge,
         to blend, to intermarry, to lose personal identity in group
         experience.” In this
    usage, grokking the whole picture is to see in
         it something beyond its individual elements.

    6.  Jim McCarthy, Dynamics of Software Development: “Don’t Flip the
         Bozo Bit” and 53 More Rules for Delivering Great Software on Time

         (Microsoft Press, 1995), pp. 30–32. The
    communication issue is
         discussed in depth under “Rule #4: Don’t Flip the Bozo Bit.”

         McCarthy’s point in this rule is that assuming that anyone is a
         bozo—i.e., they just don’t
    get it—is destructive for that person
         and for the entire team. If they have the skills to make a

         contribution to the team, they have a valuable perspective to
         bring to any problem; and if
    you cut off the chance for them to
         make that contribution, you might just as well cut them
    loose from
         the team. Never assume your fellow programmers are bozos.

    7.   Martin Fowler et al., Refactoring: Improving the Design of Existing
         Code
    (Addison-Wesley, 1999)

    8.   In Agile Modeling (p. 171), Ambler argues—correctly, I believe—
         that they still ended up with
    a notation that is too large and
         bloated for most developers to use completely. Most modelers
    use
         only a fraction of the entire language. A large part of the UML 2.0
         effort is to identify the
    "core” elements of UML.


    DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware.

     

    Buy this book now. This article is excerpted from chapter three of the book UML Applied: A .NET Perspective, written by Martin L. Shoemaker (Apress, 2004; ISBN: 1590590872). Check it out at your favorite bookstore. Buy this book now.

       

    PRACTICES ARTICLES

    - Basic Data Types and Calculations
    - What`s the Address? Pointers
    - Design with ArgoUML
    - Pragmatic Guidelines: Diagrams That Work
    - Five-Step UML: OOAD for Short Attention Span...
    - Five-Step UML: OOAD for Short Attention Span...
    - Introducing UML: Object-Oriented Analysis an...
    - Class and Object Diagrams
    - Class Relationships
    - Classes
    - Basic Ideas
    - Choosing the Right Team
    - Trees
    - Basic Array Searching in C++
    - Solving Problems with Recursion

     
    Accelerating Trading Partner Performance
     
    Competing on Analytics
     
    Cost Effective Scaling with Virtualization and Coyote Point Systems
     
    Five Checkpoints to Implementing IP Telephony
     
    Hosted Email Security: Staying Ahead of New Threats
     




    © 2003-2008 by Developer Shed. All rights reserved. DS Cluster 6 hosted by Hostway