Martin Fowler: UML destilled - second edition

Last Sunday afternoon I managed to get some spare time for reading Martin Fowlers "UML destilled". Unfortunately it wasn't the latest edition (which is the third afaik) but the second one, covering up to UML 1.4. But this was all that was available at my university library.
This book is a must read. It is very short and that is the best part about it. Everything is in it, and nothing more. But as always, Martin Fowler starts with mentioning other books and most of them sound very interesting. There is still a lot to read for me. ;)
This weblog entry is just a quick review and for myself a short list of notes worth remembering.

UML = notation + metamodel
notation = graphical stuff, Syntax
metamodel = rigorous specification

Reasons for UML:

  • communication programmer 2 programmer
  • communication Domain expert 2 programmer
  • (learning OO)

    UML: Modeling Language
    most methods consist of a process (advices on steps to do the design) and a
    modeling language (to express the design)

    Use Cases
    Cockburn website (usecases.org)
    user interfaces from use cases website (foruse.com)

    Class diagrams (chapter 4 + 6):
    depend largely on the perspective:
    conceptional, specification or implementation view

    Operation (is the call) != method (is the implementation)

    Associations (role names, multiplicity, navigability)
    generalization (impliziert Abhaengigkeiten!)
    constraint rules (vgl. Design by Contract)
    -> (associations, attributes and generalization, + extra)

    Interaction Diagrams (chapter 5)
    sequence diagrams - objects are next to each others,
    + the order is clearer
    - no extension possible (already big)
    collaboration diagrams - numbering,
    + man kann mehr reinpacken
    - order nicht so schnell klar
    Global Alternative: CRC cards (Class-Responsibility-Collaboration) Purpose +

    Packages + Collaboration (Chapter 7)
    grouping for a higher-level (everything, classes, packages, ...)
    dependencies between bigger chunks
    !avoid cycles
    Collaboration shows interaction roles of objects => abstraction of sequence

    State diagrams (Chapter 8)
    describe a behaviour (lifetime)
    concurrent states possible

    Activity diagrams (Chapter 9)
    describe parallel processing+workflow
    like a state diagram with activity states
    swimlanes are a connection to interaction diagrams

    Physical Diagrams (Chapter 10)
    deployment: relationship software - hardware
    e.g. distributed system
    component = physical module of code

    UML and Programming (chapter 11)
    the last chapter of this book deals with the implementation of UML diagrams and
    problems that occur and how you might need to simplify things to implement them.
    The last chapter was one of the least important ones for me.
    But the rest of the book was very clear with a lot of notations and examples.
    The writing style was precise but not dry and boring.
    All in all a book worth reading and a quick and easy read as well.

    Posted by Karsten at 22:00 | Comments (0) | TrackBack