ABSTRACT

Component-based development and integration has become a practical proposition in the last few years with the emergence of industrial standards and component execution environments on the one hand, and the beginnings of a genuine marketplace for software components, considered as units of deployment and replacement, on the other. However, so far these advances appear to be quantitative rather than qualitative in their impact on the so-called software crisis—the gap between expectation and actuality in software-intensive systems. No new industrial revolution has as yet materialized. Software development remains a highly labor-intensive process, with quality and productivity depending on the skill and experience of development staff.

We argue that the recent major advances in the technology of components, though undeniably gains, could never deliver an analogue to manufacturing’s industrial revolution because software development is a creative, essentially intellectual and human process. What is required is the emergence of a set of software engineering disciplines based on a design culture specific to software development: this is what we regard as software architecture. Pattern languages for software development are presented as one potential way for delivering such cultures of design. The argument is presented by tracing the history of the development of the ADAPTOR pattern language: a language for the migration of large-scale systems to object technology and component-based development.