A method based on the construction of models which can then be "translated" into code using a CASE tool.
The method originated from experience designing RealTime
systems (although they claim their method works with all kinds of systems).
, Object Life Cycles: Modelling the World in States
, ISBN 0-13-629940-7
, Modelling the World in Data
, ISBN 013629023X
Comparison with RDD
There's a case study that compares Shlaer-Mellor with responsibility-driven design:
Sharble R. S. and Cohen S., The Object Oriented Brewery: A comparison of two OO development methods
, ACM SIGSOFT, 18(2),1994
(According to their judgement of "good" design, SM compares unfavourably.)
Event Driven Approach
The dynamic behaviour aspect of Shlaer-Mellor modelling depends on sending an event to an object. Each object performs only one event at a time.
Performing an event effectively means executing a flat DataflowDiagram?
(which can perform computations, evaluate its attributes and even "write" into the attributes of other objects). Some translation models involve synchronized event queues for each object that has behaviour - this is very similar to DataflowProgramming
. - See "WhatIsAnEvent
Shlaer-Mellor differs from most approaches because their class definitions
contain the notion of an object identifier
- a subset of attributes that uniquely identify an instance.
I think with the difficulties concerning distributed objects expressed by those including MartinFowler
I suspect patterns and concepts authored by S/M could be very useful in distributed systems (e.g. wormholes, bridges, transfer vectors, etc.)