Go to main content
Formats
Format
BibTeX
MARCXML
TextMARC
MARC
DublinCore
EndNote
NLM
RefWorks
RIS

Linked e-resources

Details

Intro
Software
Contents
List of Figures
List of Tables
Preface
Use of the Book
Acknowledgments
1 Introduction to Software History
1.1 What is "Software"?
1.2 Challenges of Software History
1.3 Modeling Software Technology Evolution
1.3.1 Software As a Technology
1.3.1.1 Linking Software to Physical Phenomena
1.3.1.2 Software Is Built from Other Components
1.3.1.3 Software Components Are Technologies
1.3.2 Software Domains
1.3.3 Other Terms and Techniques
1.3.4 How Software Technology Evolves
1.4 Computer Hardware History
1.4.1 Hardware Before the von Neumann Architecture
1.4.2 The von Neumann Architecture
1.4.3 Computers After the von Neumann Architecture
1.5 Computer Hardware Trends and "Laws"
1.6 Lessons Learned from Hardware Evolution Affecting Software
1.7 Summary
1.8 Exercises and Projects
1.8.1 Exercises
1.8.2 Projects
1.9 Further Readings and Online Resources
2 Software History Fundamentals
2.1 Overview of Software History
2.2 Types of Software
2.3 Cultures and Communities of Software
2.3.1 Professional Societies
2.3.2 Other Influential Groups
2.4 Environment
2.5 Influences on Software History
2.5.1 Software Change Due to Invention
2.5.2 Software Change Due to Functional Failure
2.6 Summary
2.7 Exercises and Projects
2.7.1 Exercises
2.7.2 Projects
2.8 Further Readings and Online Resources
3 Operating Systems
3.1 Operating Systems and Their Evolution
3.2 Operating Systems Scope
3.2.1 Operating System Types
3.2.2 Operating System Features
3.2.2.1 Memory Management
3.2.2.2 Process Management
3.2.2.3 Virtual Machines
3.2.3 General Operating System Technologies
3.2.3.1 Migration of Operating System Features
3.2.4 Influential Operating Systems.

3.3 Operating Systems Case Study: Pipes in the UNIX System
3.4 Lessons Learned from Operating System Software
3.5 Summary
3.6 Exercises and Projects
3.6.1 Exercises
3.6.2 Projects
3.7 Further Readings and Online Resources
4 Programming Languages
4.1 Definitions
4.1.1 Machine Language
4.1.2 Assembly Language
4.1.3 Compilers and Automatic Coding and Programming
4.1.4 Source Code, Object Code, Linkers, Loaders, Libraries, and Executables
4.2 Types of Programming Languages
4.2.1 Imperative and Procedural Languages
4.2.1.1 FORTRAN
4.2.1.2 COBOL
4.2.1.3 ALGOL
4.2.1.4 PL/I
4.2.1.5 C
4.2.2 Functional Programming Languages
4.2.2.1 LISP Dialects
4.2.3 Logic Programming Languages
4.2.4 Object-Oriented Programming Languages
4.2.4.1 Simula
4.2.4.2 Smalltalk
4.2.4.3 Java
4.3 Prehistory of Programming Languages and Compilers
4.3.1 Automatic Coding and Programming
4.4 Influences on Programming Language Change
4.5 Case Study: APL
4.6 Lessons Learned from Programming Languages
4.7 Exercises and Projects
4.7.1 Exercises
4.7.2 Projects
4.8 Further Readings and Online Resources
5 Programming Environments, Tools, and Methodologies
5.1 Early Programming Environments and Tools
5.2 Evolution of Programmer Tools Over Time
5.3 Large Projects and the Software "Crisis"
5.4 Reflections on Programming Tools and Environments
5.5 Case Study: SAGE
5.6 Case Study: GNU Emacs
5.7 Case Study: AUTOFLOW
5.8 Lessons Learned from Programming Tools and Environments
5.9 Exercises and Projects
5.9.1 Exercises
5.9.2 Projects
5.10 Further Readings and Online Resources
6 Networking Software
6.1 Overview of the Evolution of Data Networking
6.1.1 Information Networking Before Computers.

6.1.2 Communications Networks Contributing to Computer Networking
6.1.3 Wireless Networks
6.1.4 Some Networking Hardware
6.1.5 Overview of Data Network History
6.1.6 Proprietary Networks
6.1.6.1 One Example: IBM's SNA
6.1.6.2 The Problem of Bridging or Connecting Disparate Networks
6.1.6.3 Front-end Processors
6.1.7 Packet Networking and Internetworking
6.2 Networking Protocols
6.2.1 OSI 7-Layer Reference Model
6.3 Getting to TCP/IP
6.3.1 UUCPNET
6.3.2 ARPANET
6.4 Network Software and Applications
6.4.1 Electronic Bulletin Board Systems
6.4.2 Email
6.4.3 The WELL
6.4.4 Usenet and NetNews
6.4.5 FTP Archives
6.4.6 Gopher, Archie, and Veronica
6.4.7 World Wide Web
6.4.8 Network Operating Systems
6.5 Case Study: Minitel
6.6 NCSA httpd and Apache Web Server
6.7 Networking Influences
6.8 Lessons Learned from Networking Software
6.9 Exercises and Projects
6.9.1 Exercises
6.9.2 Projects
6.10 Further Readings and Online Resources
7 Database Management Systems
7.1 Overview of Database Systems and Their Evolution
7.2 Early Database History
7.2.1 Data Definition Languages
7.2.2 Report Generator Systems
7.3 Types and Evolution of Database Systems
7.3.1 I-D-S: The First DBMS?
7.3.2 IBM's IMS and Hierarchical Databases
7.3.3 Inverted File Systems
7.4 Relational DBMSs
7.4.1 SQL Standardization
7.5 System R: Sample Code
7.6 Factors Affecting Change of Database Software
7.7 Lessons Learned from Database Software
7.8 Exercises and Projects
7.8.1 Exercises
7.8.2 Projects
7.9 Further Readings and Online Resources
8 Software Futures and Overall Trends
8.1 Overview of Software History
8.2 Trends
8.3 Perpetual Challenges of Software Development
8.3.1 Software Quality and Reliability.

8.3.2 Software System Scalability
8.3.3 Software Re-usability
8.4 Emerging Software Trends
8.5 Other Areas of Software
8.6 Software History's Relevance
8.7 Exercises and Projects
8.7.1 Exercises
8.7.2 Projects
8.8 Further Readings and Online Resources
A Appendix-Source Code
A.1 UNIX Pipe.c
A.2 System R Where Clause Code
Bibliography
Author's Biography
Index.

Browse Subjects

Show more subjects...

Statistics

from
to
Export