2.2. Architecture through the Ages

Software engineering and software production in general are concerned inter alia with the manufacture of high quality systems for a reasonable outlay of effort and thus cost. Attempts to attack the issue of software quality have come from innovations in programming languages and from several structured approaches to system development methods. When there are claims that up to 80% of the cost of a system is accounted for by software costs, and that even good programmers have been generally unable to produce resilient, correct code to budget, then something is seriously amiss. Structured methods, 4GLs, CASE and modelling tools, prototyping techniques, database systems, code generators and MDA, object-orientation and component based development all represented attacks on this problem.

The extent to which structured methods based on modular design succeeded was questioned in reports from the Butler Cox Group in the 1990s that showed that the users of, for example, structured design were actually impairing both their productivity and the quality of the end-product. As we saw in the previous chapter, the impetus to structured methods came largely from the realization that many systems were either not finished, not used or were delivered with major errors.

Following hard on the heels of this discrediting of structured methods, object-orientation (OO) represented a significant architectural shift towards loose coupling and Larry Constantine's complimentary ...

Get Requirements Modelling and Specification for Service Oriented Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.