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:
UML: Modeling Language
most methods consist of a process (advices on steps to do the design) and a
modeling language (to express the design)
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
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.