This book is intended as a handbook for students and practitioners alike. The book is structured around the type of tasks that practitioners are confronted with, beginning with requirements definition and concluding with maintenance and withdrawal. It identifies and discusses existing laws that have a significant impact on the software engineering field. These laws are largely independent of the technologies involved, which allow students to learn the principles underlying software engineering. This also guides students toward the best practice when implementing software engineering techniques.
Preface List of abbreviations 1. Introduction
2. Requirements definition, prototyping and modeling
3. System design and specification
4. System construction and composition
5. Validation and static verification
6. Testing or dynamic verification 7. System manufacturing, distribution, and installation
8. System administration, evolution and maintenance
9. Project management and business analysis
10. User skills, motivation, and satisfaction
11. Technology, architecture, and industry capabilities
12. Measurements, experiments, and empirical research
13. Conclusions and challenges Appendix 1: Summary of laws, hypotheses, and conjectures Appendix 2: Biographies of pioneers and key contributors Appendix 3: On-going projects/research groups References Index
Albert Endres has lived, worked and taught all over the world. Before retiring from IBM in 1992, Endres worked for the company in Germany, France and New York, mostly dealing with software engineering. He was a professor of computer science at the Technical University of Munich and a member of ACM and IEEE. Currently he concentrates on his hobbies.
Dieter Romabch is the director of software engineering at Fraunhofer Institut Experimentelles in Germany. The institute is the leading center for applied research and technology transfer in experimental software engineering. He is also the head of a software engineering research group for AGSE.