by Mark Maier and Eberhardt Rechtin
CRC Press, 2nd edition 2000 (first edition Rechtin & Maier 1996) ISBN 0849304407, boards. | Systems Architecting:
Creating & Building Complex Systems Eberhardt Rechtin Prentice-Hall, 1990 Buy it from Amazon.com
|
At the other end of the hard-soft scale of systems thinking from Peter Checkland's Soft Systems Methodology lies the art of designing the best-engineered solution to a technical problem. How do you choose the right architecture for a product? The book is aimed principally at Systems Engineering type projects, but is undoubtedly also useful for software design.
Maier and Rechtin present with insight and clarity the principles of system design. The British may flinch at the ability of Americans to verb any noun (as in 'to architect'), but there is no doubting the practical skill and knowledge embodied in this valuable book. Rechtin was a true Systems Engineer: he was chief architect to NASA for the Apollo moon landings, among many other roles in his 40-year career. Maier too is an experienced aerospace designer.
Some of the principles will be familiar to anyone who has been on a computer science course: make sure your modules are coherent (rather than rag-bags of unrelated bits); conversely, make sure that each module is loosely-coupled to other modules (so you can change the mechanism inside one without redesigning the entire system). Others are more specific. The authors present many rules of thumb ('heuristics') in the body of the book, and list these in an appendix. For instance, they have a piece of advice rather like that traditionally given to army signallers: if you're having a problem with your radio, try looking at the connections (before rushing off to get a new transmitter, say). The army called this 'the theory of the ends'; Maier & Rechtin state it as:
"The greatest leverage in architecting is at the interfaces."
Applied to design, this means that you'll get best value for your time by making sure you have designed clean and adequate interfaces between components. If you have subcontractors building subsystems that individually 'work' but that don't fit together, you have a real problem that will impact your architecture, your schedule, and your budget. So, get the interfaces right first.
Principles like these are essentially the accumulated practical wisdom of expert designers, system architects, working in the field (who have been burnt before). Such principles are just what people trying to acquire design skill need. Heuristics can never be complete -- skill can't be written down so easily. But they are the best that can be got, and there simply isn't another book like Maier & Rechtin on the market. Every systems engineer, designer, and system architect should have a copy, and study it carefully: this is a book that repays slow reflection. By the way, some colleagues think that the First Edition (1990) was a better book.
© Ian Alexander 2004