|
|
xvii | |
Fist of Tables |
|
xxvii | |
Preface |
|
xxix | |
Use of the Book xxxi Acknowledgments |
|
xxxi | |
|
Chapter 1 Introduction to Software History |
|
|
1 | (56) |
|
|
1 | (2) |
|
1.2 Challenges of Software History |
|
|
3 | (2) |
|
1.3 Modeling Software Technology Evolution |
|
|
5 | (9) |
|
1.4 Computer Hardware History |
|
|
14 | (24) |
|
1.5 Computer Hardware Trends and "Laws" |
|
|
38 | (3) |
|
1.6 Lessons Learned from Hardware Evolution Affecting Software |
|
|
41 | (1) |
|
|
41 | (2) |
|
1.8 Exercises and Projects |
|
|
43 | (12) |
|
1.9 Further Readings and Online Resources |
|
|
55 | (2) |
|
Chapter 2 Software History Fundamentals |
|
|
57 | (1) |
|
2.1 Overview of Software History |
|
|
57 | (31) |
|
|
61 | (6) |
|
2.3 Cultures and Communities of Software |
|
|
67 | (5) |
|
|
72 | (1) |
|
2.5 Influences on Software History |
|
|
73 | (4) |
|
|
77 | (1) |
|
2.7 Exercises and Projects |
|
|
78 | (3) |
|
2.8 Further Readings and Online Resources |
|
|
81 | (7) |
|
Chapter 3 Operating Systems S3 |
|
|
|
3.1 Operating Systems and Their Evolution 8.5 Operating Systems Scope |
|
|
88 | (16) |
|
3.3 Operating Systems Case Study: Pipes in the UNIX System |
|
|
104 | (3) |
|
3.4 Lessons Learned from Operating System Software |
|
|
107 | (2) |
|
|
109 | (1) |
|
3.6 Exercises and Projects |
|
|
109 | (5) |
|
3.7 Further Readings and Online Resources |
|
|
114 | (3) |
|
Chapter 4 Programming Languages |
|
|
117 | (36) |
|
|
118 | (5) |
|
4.2 Types of Programming Languages |
|
|
123 | (17) |
|
4.3 Prehistory of Programming Languages and Compilers |
|
|
140 | (2) |
|
4.4 Influences on Programming Language Change |
|
|
142 | (1) |
|
|
143 | (1) |
|
4.6 Lessons Learned from Programming Languages |
|
|
144 | (2) |
|
4.7 Exercises and Projects |
|
|
146 | (6) |
|
4.8 Further Readings and Online Resources |
|
|
152 | (1) |
|
Chapter 5 Programming Environments, Tools, and Methodologies |
|
|
153 | (34) |
|
5.1 Early Programming Environments and Tools |
|
|
153 | (5) |
|
5.2 Evolution of Programmer Tools Over Time |
|
|
158 | (5) |
|
5.3 Large Projects and the Software "Crisis" |
|
|
163 | (2) |
|
5.4 Reflections on Programming Tools and Environments |
|
|
165 | (2) |
|
|
167 | (2) |
|
5.6 Case Study: GNU Emacs |
|
|
169 | (5) |
|
|
174 | (2) |
|
5.8 Lessons Learned from Programming Tools and Environments |
|
|
176 | (2) |
|
5.9 Exercises and Projects |
|
|
178 | (8) |
|
5.10 Further Readings and Online Resources |
|
|
186 | (1) |
|
Chapter 6 Networking Software |
|
|
187 | (34) |
|
6.1 Overview of the Evolution of Data Networking |
|
|
187 | (14) |
|
|
201 | (1) |
|
|
202 | (2) |
|
6.4 Network Software and Applications |
|
|
204 | (5) |
|
|
209 | (1) |
|
6.6 NCSA httpd and Apache Web Server |
|
|
209 | (4) |
|
6.7 Networking Influences |
|
|
213 | (1) |
|
6.8 Lessons Learned from Networking Software |
|
|
214 | (1) |
|
6.9 Exercises and Projects |
|
|
215 | (4) |
|
6.10 Further Readings and Online Resources |
|
|
219 | (2) |
|
Chapter 7 Database Management Systems |
|
|
221 | (28) |
|
7.1 Overview of Database Systems and Their Evolution |
|
|
222 | (5) |
|
7.2 Early Database History |
|
|
227 | (3) |
|
7.3 Types and Evolution of Database Systems |
|
|
230 | (4) |
|
|
234 | (5) |
|
7.5 System R: Sample Code |
|
|
239 | (2) |
|
7.6 Factors Affecting Change of Database Software |
|
|
241 | (1) |
|
7.7 Lessons Learned from Database Software |
|
|
242 | (1) |
|
7.8 Exercises and Projects |
|
|
243 | (4) |
|
7.9 Further Readings and Online Resources |
|
|
247 | (2) |
|
Chapter 8 Software Futures and Overall Trends |
|
|
249 | (22) |
|
8.1 Overview of Software History |
|
|
249 | (2) |
|
|
251 | (3) |
|
8.3 Perpetual Challenges of Software Development |
|
|
254 | (2) |
|
8.4 Emerging Software Trends |
|
|
256 | (1) |
|
8.5 Other Areas of Software |
|
|
257 | (6) |
|
8.6 Software History's Relevance |
|
|
263 | (2) |
|
8.7 Exercises and Projects |
|
|
265 | (5) |
|
8.8 Further Readings and Online Resources |
|
|
270 | (1) |
|
Appendix A Appendix--Source Code |
|
|
271 | (8) |
|
|
271 | (5) |
|
A.2 System R Where Clause Code |
|
|
276 | (3) |
Bibliography |
|
279 | (20) |
Author's Biography |
|
299 | (2) |
Index |
|
301 | |