Abstract

we have arrived at the last layer of the foundation. I now can begin a systematic analysis of design. As a brief reminder, this really is a book about the development of software applications. My thesis is that we can expect only limited improvement to software application and productivity by working within the current design paradigm (i.e, technological design). I believe that we must shift paradigms to exploit the special characteristics of software. But paradigm shifts are revolutions, and one cannot comprehend any new paradigm by extrapolating from the concepts and methods of the present paradigm. Thus, we must destroy before we can rebuild. In the physical sciences, the justification for destruction comes from outside the paradigm; phenomena are observed that are at variance with the models of normal science, and new theories are needed to explain them. Computer science and software engineering, however, are formalizations for free phenomena. In a sense, they are self-defining; they establish their own criteria for relevance and evaluation. If we are to replace those criteria, therefore, we must begin outside normal computer science. And that is the justification for these first two parts. Part I examines the meaning and limitations of science and provides an interpretation of design: the modification of the environment (or “changing existing conditions into preferred ones”). Part II looks at design from the perspective of those who make and use the designs. I deliberately remain outside the domain of computer science in my search for the knowledge that will be relevant to the subsequent examination of software. Once this knowledge has been assembled, Part III can enter into a less biased consideration of software and its role in the next millennium. Thus, the first two parts construct the context within which a new computer science can be defined, and Part III offers adaptive design as an illustration of what this new computer science can accomplish. where are we now in this odyssey? Chapter 1 begins with the traditional view in which the maturity of software engineering as a discipline is related to its utilization of computer science principles.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call