Abstract , Postscript Structuring Z Specifications With Views . Digital hardware and software components are becoming ever more common in industrial, commercial and adminstrative systems and products of every kind. These components are unlike traditional mechanical and electrical components. Their relevant behaviour can be much more complex, sometimes by an order of magnitude, leading to very high costs of design and construction and to greatly reduced quality of the whole system or product. The most effective technique for mastering complexity is to have mastered the same or a very similar complexity in previous problems.
Major innovation is exceptional, scarcely ever radical, and recognised to carry large dangers.
Some software products have trodden this path of specialisation, with large benefits in cost and quality. Compilers and graphical user interfaces are notable examples. But many more systems and products seem to require ad hoc design because they fall into no established specialised category. Unfortunately, effective decomposition is not easy. Part of the cause is the lack of effective design heuristics or rules to distinguish between good and bad decompositions.