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). '''Publications''' http://images.amazon.com/images/P/0136299407.01._PE_PI_SCMZZZZZZZ_.jpg SallyShlaer and SteveMellor, ''Object Life Cycles: Modelling the World in States'', [ISBN0-13-629940-7] http://images.amazon.com/images/P/013629023X.01._PE_PI_SCMZZZZZZZ_.jpg SallyShlaer and SteveMellor, ''Modelling the World in Data'', [ISBN 013629023X] '''See also''' * http://en.wikipedia.org/wiki/Shlaer%E2%80%93Mellor_method * EmbeddedSystems * FiniteStateMachine * FunctionalDecomposition * MassivelyParallelProcessing * ModelDrivenArchitecture * UML - UnifiedModelingLanguage * RealTime * RecursiveDesign ---- '''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" '''Object Identity''' 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. '''Distributed Applications''' 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.) JohnHarby ---- CategoryMethodology