Bruce I. Blum
- Published in print:
- 1996
- Published Online:
- November 2020
- ISBN:
- 9780195091601
- eISBN:
- 9780197560662
- Item type:
- chapter
- Publisher:
- Oxford University Press
- DOI:
- 10.1093/oso/9780195091601.003.0008
- Subject:
- Computer Science, Software Engineering
This book is about a paradigm shift in the development of software; a move to a new era of design for software (and, for that matter, all manufactured artifacts). The goal of Part I is to lay out ...
More
This book is about a paradigm shift in the development of software; a move to a new era of design for software (and, for that matter, all manufactured artifacts). The goal of Part I is to lay out the scientific and technological foundations for this new era of design. In the chapter just concluded, we have seen how the Legend of science has become tarnished. During the stored-program computer’s brief history, we observe the general perceptions of science and scientific knowledge undergoing a fundamental change. I have focused on the philosophy of science because that tells us something about the theoretical limits of science; it suppresses the details of the day-to-day conduct of science that make it such a successful enterprise. This reassessment of science, of course, has been independent of the growth of computing; indeed, my examination has been free of any technological considerations. From the perspective of computer science, much of this revolution has gone unnoticed. Many still walk in the pathways first laid out in the era of the Legend; some even try to fit computer science into the framework of the Received View. If the conclusions of Chapter 2 are valid, however, such approaches cannot be sustained indefinitely. Therefore, any response to the evolving understanding of science ultimately must lead to a reexamination of computer science. If we are to shift the software design paradigm, we must expect modifications to the underlying principles embedded in computer science. How will these changes take place? will there be new scientific findings that alter the technology, or will a shift in the technology modify what the computer scientists study? To gain insight into the answers to these questions, this chapter addresses the relationship between science and technology and, in particular, between computer science and software engineering. As in the previous chapter, I conduct a broadly based, general review. The traditional relationship between science and engineering normally is described as being causal. Science creates knowledge, and technology consumes knowledge. This has been depicted as an assembly line: “Put money into pure science at the front end of the process.
Less
This book is about a paradigm shift in the development of software; a move to a new era of design for software (and, for that matter, all manufactured artifacts). The goal of Part I is to lay out the scientific and technological foundations for this new era of design. In the chapter just concluded, we have seen how the Legend of science has become tarnished. During the stored-program computer’s brief history, we observe the general perceptions of science and scientific knowledge undergoing a fundamental change. I have focused on the philosophy of science because that tells us something about the theoretical limits of science; it suppresses the details of the day-to-day conduct of science that make it such a successful enterprise. This reassessment of science, of course, has been independent of the growth of computing; indeed, my examination has been free of any technological considerations. From the perspective of computer science, much of this revolution has gone unnoticed. Many still walk in the pathways first laid out in the era of the Legend; some even try to fit computer science into the framework of the Received View. If the conclusions of Chapter 2 are valid, however, such approaches cannot be sustained indefinitely. Therefore, any response to the evolving understanding of science ultimately must lead to a reexamination of computer science. If we are to shift the software design paradigm, we must expect modifications to the underlying principles embedded in computer science. How will these changes take place? will there be new scientific findings that alter the technology, or will a shift in the technology modify what the computer scientists study? To gain insight into the answers to these questions, this chapter addresses the relationship between science and technology and, in particular, between computer science and software engineering. As in the previous chapter, I conduct a broadly based, general review. The traditional relationship between science and engineering normally is described as being causal. Science creates knowledge, and technology consumes knowledge. This has been depicted as an assembly line: “Put money into pure science at the front end of the process.
Bruce I. Blum
- Published in print:
- 1996
- Published Online:
- November 2020
- ISBN:
- 9780195091601
- eISBN:
- 9780197560662
- Item type:
- chapter
- Publisher:
- Oxford University Press
- DOI:
- 10.1093/oso/9780195091601.003.0010
- Subject:
- Computer Science, Software Engineering
The underlying thesis of this book is that, although computing technology, in its relatively short lifetime, has clearly impacted modern economies and cultures, our understanding of software ...
More
The underlying thesis of this book is that, although computing technology, in its relatively short lifetime, has clearly impacted modern economies and cultures, our understanding of software remains rooted in our experience with precomputer technology. It follows, therefore, that if we wish to take advantage of software’s unique capabilities, we must begin by reassessing our objectives and constraints. with this renewed understanding serving as a framework, we then can explore alternative paradigms. A revised interpretation is necessary, I assert, because there is a ceiling on the returns available by simply improving the present methods. To attain the level of productivity that software makes possible, we need a new normative model that explains how we ought to develop and employ software. Part III identifies one such normative model, called adaptive design, and demonstrates its efficacy. Yet this is not a book about adaptive design; it is about the mismatch between software’s inherent flexibility and the methods now used in software’s construction. If we are to rectify that disjunction, we must abandon our historical assumptions and reexamine the foundations upon which computer science and software engineering rest. The first two parts of the book are devoted to this reappraisal and foundation building. In Part I, the relationships between science and technology were considered. The discussion was not limited to computers and software. It began by examining the two myths that dominated technological thinking at the time the first digital electronic computers were created; resilient myths that sometimes persist in policy making and academic research. The first myth is that the goal of science is to discover immutable truths about the universe, and the second is that technological advancement depends on the application of this scientific knowledge. These two ideas combine to produce an implicit model of progress: As scientific knowledge accumulates, greater technological advances are enabled. The model is hierarchical. Technological progress follows the discovery of scientific knowledge, and, therefore, technology requires a scientific base to prosper.
Less
The underlying thesis of this book is that, although computing technology, in its relatively short lifetime, has clearly impacted modern economies and cultures, our understanding of software remains rooted in our experience with precomputer technology. It follows, therefore, that if we wish to take advantage of software’s unique capabilities, we must begin by reassessing our objectives and constraints. with this renewed understanding serving as a framework, we then can explore alternative paradigms. A revised interpretation is necessary, I assert, because there is a ceiling on the returns available by simply improving the present methods. To attain the level of productivity that software makes possible, we need a new normative model that explains how we ought to develop and employ software. Part III identifies one such normative model, called adaptive design, and demonstrates its efficacy. Yet this is not a book about adaptive design; it is about the mismatch between software’s inherent flexibility and the methods now used in software’s construction. If we are to rectify that disjunction, we must abandon our historical assumptions and reexamine the foundations upon which computer science and software engineering rest. The first two parts of the book are devoted to this reappraisal and foundation building. In Part I, the relationships between science and technology were considered. The discussion was not limited to computers and software. It began by examining the two myths that dominated technological thinking at the time the first digital electronic computers were created; resilient myths that sometimes persist in policy making and academic research. The first myth is that the goal of science is to discover immutable truths about the universe, and the second is that technological advancement depends on the application of this scientific knowledge. These two ideas combine to produce an implicit model of progress: As scientific knowledge accumulates, greater technological advances are enabled. The model is hierarchical. Technological progress follows the discovery of scientific knowledge, and, therefore, technology requires a scientific base to prosper.