On Designing Complex Systems

Engineering as a science and an art

The practice of every engineering discipline involves elements of both science and art. As Petroski states, the conception of a design of a new structure can involve as much a leap of imagination and as much as a synthesis of experienced and knowledge as any artist is required to bring to his canvas or paper. And once that design is articulated by the engineer as artist, it must be analyzed by the engineer as scientist in as rigorous an application of the scientific method as any scientist must make.

The role of the engineer is particularly challenging when the task is to design an entirely new system. Frankly this is the most common circumstance in software engineering .Especially in the case of reactive systems and systems of command and control, we are frequently asked to write software for an entirely unique set of requirements often to be executed on a configuration of target processors constructed specifically for the system. In other cases such as the creation of frameworks , tools for research in artificial intelligence, or even information management systems, we may have a well defined ,stable target environment ,but our requirements may stress the software technology in one or more dimensions. For example we may be asked to craft systems that are faster ,have greater capacity ,or have radically improved functionality. In all these situations ,we try to use proven abstractions and mechanisms as a foundation upon which to build new software systems .In the presence of a large library of reusable software components ,the software engineer must assemble these parts in innovative ways to satisfy the stated and implicit requirements ,just as the painters or the musicians must push the limits of his or her medium.Unfortunately ,since rich libraries rarely exists for the software engineer, He or she must usually proceed with a relatively primitive set of facilities.


Next Page »