Muutke küpsiste eelistusi

Software: A Technical History [Pehme köide]

  • Formaat: Paperback / softback, 358 pages, kõrgus x laius x paksus: 234x190x18 mm, kaal: 617 g
  • Sari: ACM Collection II
  • Ilmumisaeg: 30-Sep-2021
  • Kirjastus: Association of Computing Machinery,U.S.
  • ISBN-10: 145038725X
  • ISBN-13: 9781450387255
Teised raamatud teemal:
  • Formaat: Paperback / softback, 358 pages, kõrgus x laius x paksus: 234x190x18 mm, kaal: 617 g
  • Sari: ACM Collection II
  • Ilmumisaeg: 30-Sep-2021
  • Kirjastus: Association of Computing Machinery,U.S.
  • ISBN-10: 145038725X
  • ISBN-13: 9781450387255
Teised raamatud teemal:

Software history has a deep impact on current software designers, computer scientists, and technologists. System constraints imposed in the past and the designs that responded to them are often unknown or poorly understood by students and practitioners, yet modern software systems often include “old” software and “historical” programming techniques. This work looks at software history through specific software areas to develop student-consumable practices, design principles, lessons learned, and trends useful in current and future software design. It also exposes key areas that are widely used in modern software, yet infrequently taught in computing programs. Written as a textbook, this book uses specific cases from the past and present to explore the impact of software trends and techniques.

Building on concepts from the history of science and technology, software history examines such areas as fundamentals, operating systems, programming languages, programming environments, networking, and databases. These topics are covered from their earliest beginnings to their modern variants. There are focused case studies on UNIX, APL, SAGE, GNU Emacs, Autoflow, internet protocols, System R, and others. Extensive problems and suggested projects enable readers to deeply delve into the history of software in areas that interest them most.

List of Figures
xvii
Fist of Tables xxvii
Preface xxix
Use of the Book xxxi Acknowledgments xxxi
Chapter 1 Introduction to Software History
1(56)
1.1 What is "Software"?
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)
1.7 Summary
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)
2.2 Types of Software
61(6)
2.3 Cultures and Communities of Software
67(5)
2.4 Environment
72(1)
2.5 Influences on Software History
73(4)
2.6 Summary
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)
Summary
109(1)
3.6 Exercises and Projects
109(5)
3.7 Further Readings and Online Resources
114(3)
Chapter 4 Programming Languages
117(36)
4.1 Definitions
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)
4.5 Case Study: APL
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)
5.5 Case Study: SAGE
167(2)
5.6 Case Study: GNU Emacs
169(5)
5.7 Case Study: AUTOFLOW
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)
6.2 Networking Protocols
201(1)
6.3 Getting to TCP/IP
202(2)
6.4 Network Software and Applications
204(5)
6.5 Case Study: Minitel
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)
7.4 Relational DBMSs
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)
8.2 Trends
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)
A.1 UNIX Pipe. C
271(5)
A.2 System R Where Clause Code
276(3)
Bibliography 279(20)
Author's Biography 299(2)
Index 301
Kim W. Tracy has a long and varied history in many different aspects of software. Trained as a second-generation computer scientist with many of his professors being first-generation computer scientists, he's worked on a wide variety of software ranging from system software (UNIX® at Bell Labs) to database systems and expert systems. While at Bell Labs, he worked on a number of different products including the 5ESS® Telephone Switch, as well as consulting for clients around the world. He has since served as Chief Information Officer at Northeastern Illinois University and oversaw all aspects of the technology used by the university. He's also taught many courses in computer science that range over traditional computer science, software engineering, and information technology. He currently teaches computer science and software engineering full-time at Rose-Hulman Institute of Technology. He is co-author of the textbook Object-Oriented Artificial Intelligence Using C++. He's also been involved with university-level computing program accreditation with ABET for several decades. He's a senior member of ACM and IEEE and a member of the Society for the History of Technology. He serves on the ACM History Committee and has served as editor-in-chief of IEEE Potentials magazine as well as other IEEE boards and committees.