ABSTRACT

We have defined design as an activity that consists in specifying an artifact product, given requirements on that artifact. The requirements are global, abstract, and imprecise, thus incomplete; the final specifications are to be so detailed, precise, and concrete that they completely and explicitly specify the artifact product and its implementation. Both requirements and specifications are representations (both composite, generally). Therefore, the activity of design consists in the transformation of an input representation into an output representation, where these two representations are of a completely different nature, but represent the "same" artifact product. To be more precise, however, the input representation—the requirements—represents a great number of artifact products, whereas the output representation—the specifications—is indeed supposed to represent only one artifact product. The output representation instantiates one among the various possibilities provided by the abstract and global character of the input representation. Yet, in practice, given that only in theory an artifact's specifications are complete and entirely explicit, a design project's output representation still leaves space for different artifacts to be implemented. As noted, design continues during implementation.