I am reading "Seamsless object oriented software architecture" by Kim
Valden and Jean-Marc Nerson, and so far I find it pretty good. Although
it is from 1996, it seams like many ideas from agile modelling are taken
from that book.
Has anyone read that book? What are your thoughts of it? Would you
recommend it, or do you think there are better books?
I haven't read it. Can you summarize here some specific things you feel
they got right, and some they got wrong? That might make for some lively
discussion.
The book is here :
http://www.bon-method.com/book_print_a4.pdf
Authors said that since the book is no longer available in the paper
format, they are putting it on the web to be free to get.
I haven't read it completely, but here are ideas that I caught so far :
1) when someone receives requirements for the system to analyse and
design, they should partition it into logical subsystems, called
clusters. A cluster can be completely independent subsystem with
precisely defined interface, or it can contain group or independent
classes sharing the same interface and implementing one feature (for
example printing a document on printer or to a pdf).
2) The analysis includes writing textual description of classes and
clusters. The class description contain queries (what information you
can get from the class), commands (what you can order the class to do)
and constrains. After textual description, two diagrams are formed -
static and dynamic models.
3) Static model shows the high level classes grouped into clusters and
their relation.
4) Before forming the dynamic model, the designed has to collect events
that are causing objects communications. The dynamic model is group of
scenarios showing the objects interactions when certain event is triggered.
5) classes and clusters are communicating with messages (objects
carrying required informations). In the book, the instantiation of the
class represents one object.
The book seams to explain nicely how to do full design of the complex
system. You might think these are the basics, but I haven't found so
clear explanation how to do OO modelling anywhere else.
What I don't like is that authors are creating very complex
representation, but that is probably because UML was not widely adopted
(the book is from 1994). Another bad side is the size (500 pages).
The most important thing with representing the system at a design
level is not including implementation details.
500 pages is pretty much par for the course for a book on software
design. The seminal book on testing software, by Robert Binder, is
over 1000 pages long (!).
I have the book you are referring to somewhere in my personal library
and I'll try to leaf back through it and look at my notes after my
upcoming vacation.