Agile Modeling and Lightweight uml drawing Two of the aims of Agile modeling

Yüklə 461 b.
ölçüsü461 b.

Agile Modeling and Lightweight UML Drawing

  • Two of the aims of Agile modeling:

    • Reduce drawing overhead
    • Model to understand and communicate
  • This is a change from a view of modeling as documentation. In a era of rapid change, documentation tends to have minimal value.

  • More Agile Principles

    • Modeling with others
    • Create several models in parallel
    • Use temporary models such as diagrams on white boards
    • Digital photographs of white boards can be shared on a wiki. (See

UML Case Tools

  • You can also do agile modeling with UML case tools like Rational Rose, Together, or one that comes with a popular IDE such as Eclipse or Visual Studio.

  • Choose a tool that can read your code and reverse engineer it to create diagrams from your code.

  • Switch back and forth from diagramming to reverse engineering.

How much time spent during UML before coding?

  • Limit time spent drawing

  • A few hours or at most one day of diagramming should do most of the work for a three week iteration.

  • Occasional short sessions of modeling during the iteration can clarify any concepts that still need to be understood.

Designing Objects: Static and Dynamic Modeling

  • Dynamic models such as interaction diagrams (sequence or communication diagrams) help design logic, code behavior, and method bodies.

  • Static Models such as class diagrams help define packages, class names, attributes, and method signatures.

  • Switch back and forth during modeling sessions.

Dynamic Models

  • Most of the challenging, interesting, and useful design work comes during dynamic modeling.

    • The interaction diagrams are typically where we apply design patterns such as the GRASP patterns.
  • If the most important skill in object design is assigning behavior to objects, this is when it usually takes place.

  • Dynamic UML models include

    • sequence,
    • communication,
    • state machine
    • and deployment diagrams.

Static Models

  • If behavior is designed during dynamic modeling, it is the static models, such as the class diagrams, which give the overall structure to our software, and allow us to divide the work into manageable and maintainable chunks.

  • Static UML models include

    • class,
    • package,
    • and deployment diagrams.

The Importance of Object Design Skill over UML Notation Skill

  • UML is only an ancillary tool to object design. The real skill is the design, not the diagramming.

  • Seeking a software design job because you are good at making UML diagrams is like seeking a career as a novelist because you have good penmanship.

Other Object Design Techniques: CRC Cards

  • An alternative to UML Object Design is the Class, Responsibility, Collaboration Cards popularized by Kent Beck in eXtreme Programming.

    • There are some brief examples in the text, but you should get a book on eXtreme Programming or go to a Web site if you are interested.

CRC Cards


  • Why do objects exist?

    • To perform an activity to help fulfill a system’s purpose
  • UML interaction diagrams are used to illustrate how objects interact via messages.

    • They are used for dynamic object modeling.
  • Interaction Diagrams provide a thoughtful, cohesive, common starting point for inspiration during programming

Interaction Diagrams

  • There are two common types:

    • Sequence diagrams
    • Communication diagrams
  • Both diagram types are semantically equivalent, however, they may not show the same information

Comparison of Diagrams

Basic Sequence Diagram Notation

Basic Communication Diagram Notation

Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur © 2016
rəhbərliyinə müraciət

    Ana səhifə