Description:
This first edition of the popular tutorial, Software Engineering, describes the current state of the practice of software engineering. This book begins with an overview of current issues and in particular the engineering of large complex systems. Its collection of landmark papers goes on to describe the problems that occur in developing software, and presents the concepts for system engineering of software intensive systems and of engineering software products as the solution to the "software crisis."
The text illustrates the phases of the software development life cycle: requirements, design, implementation, testing, and maintenance. Furthermore, it discusses the current practices in requirements and design, and defines software development methodologies, including a special emphasis on object-oriented tools and formal methods. The book also covers programming activities as they affect software engineering, details verification and validation throughout the software life cycle, and discusses software quality assurance, configuration management, and standards. In addition, the book covers project management and risk management concerns, and discusses the various life cycle process models including the spiral and incremental models.
Table of Contents:
List of Contributors.
Foreword (Barry Boehm, USC).
Preface.
Chapter 1: Issues — The Software Crisis. Software's Chronic Crisis (W. Wayt Gibbs, Scientific American, September 1994).
No Silver Bullet: Essence and Accidents of Software Engineering (Frederick P. Brooks, Computer, 1987).
Chapter 2: System and Software System Engineering.
Engineering a Small System (Kurt Skytte, IEEE Spectrum, March 1994).
Software Systems Engineering: The Case for a New Discipline (Stephen J. Andriole and Peter A. Freeman, Software Engineering Journal, May 1993).
The Concept of Operations: The Bridge from Operational Requirements to Technical Specifications (Richard E. Fairley and Richard H. Thayer).
Chapter 3: Software Engineering.
Software Engineering (Roger S. Pressman).
Foreword: Software Engineering — A European Perspective (Freidrich L. Bauer).
Software Engineering — 20 Years On and 20 Years Back (J.N. Buxton, Journal of Systems and Software, Volume 13, 1990).
Chapter 4: Software Requirements Engineering and Software Design.
Software Requirements: A Tutorial (Stuart Faulk).
Software Design: An Introduction (David Budgen).
Design Methods for Concurrent and Real-Time Systems (Hussan Gomaa).
Computer Human Interface Software Development Survey (Robert J. Remington).
Chapter 5: Software Development Methodologies.
Object-Oriented Development (Linda M. Northrop).
Object-Oriented Systems Development: Survey of Structured Methods (A.G. Sutcliffe, Information and Software Technology, July/August 1991).
Structured Systems Analysis and Design Method (SSADM) (Caroline Ashworth, Information and Software Technology, April 1988).
A Review of Formal Methods (Robert Vienneau, extracted from A Review of Formal Methods, Kaman Science Corporation, May 26, 1993).
Chapter 6: Coding.
Structured Programming: Retrospect and Prospect (Harlan D. Mills, IEEE Software, November 1986).
The Programming Language (Dough Bell, Ian Morrey, and John Pugh).
Chapter 7: Software Validation, Verification, and Testing.
Software Verification and Validation (Roger Fujii and Dolores R. Wallace).
Software Inspections and the Cost-Effective Production of Reliable Software (A. Frank Ackerman).