November 1996, Wiley-IEEE Computer Society Press
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.
Foreword (Barry Boehm, USC).
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).
Reviews and Audits (John J. Marciniak).
Traceability (James D. Palmer).
A Review of Software Testing (P. David Coward, Information and Software Technology, April 1988).
Chapter 8: Software Maintenance.
Software Maintenance: A Tutorial (Keith Bennett).
Chapter 9: Software Quality and Quality Assurance.
Software Quality Assurance: A Survey of an Emerging View (Patricia W. Hurst).
Elements of Software Configuration Management (Edward H. Bersoff, IEEE Transactions on Software Engineering, January 1984).
Evaluating Software Engineering Standards (Shari Lawrence Pfleeger, Norman Fenton, and Stella Page, IEEE Software, September 1994).
Software-Reliability Engineering: Technology for the 1990s (John D. Musa and William W. Everett, IEEE Software, November 1990).
Chapter 10: Software Project Management.
The Mythical Man-Month (Frederick P. Brooks Jr., Datamation, December 1974).
Software Engineering Project Management (Richard H. Thayer).
Why Does Software Cost so Much? (Tom DeMarco, IEEE Software, March 1993).
Software Cost Estimation (F.J. Heemstra, Information and Software Technology, October 1992).
Risk Management for Software Development (Richard E. Fairley and Paul Rook).
Chapter 11: Software Development Process.
Alternative Software Life Cycle Models (Edward R. Comer, Aerospace Software Engineering: A Collection of Concepts, American Institute of Aeronautics, 1991).
A Spiral Model of Software Development and Enhancement (Barry W. Boehm, Computer, May 1988).
Capability Maturity Model for Software (Mark C. Paulk, Bill Curtis, Mary Beth Chrissis, and Charles V. Weber).
Chapter 12: Software Technology.
The Re-engineering and Reuse of Software (Patrick A.V. Hall and Lingzi Jin).
Prototyping: Alternate Systems Development Methodology (J.M. Carey, Information and Software Technology, March 1990)
A Classification of CASE Technology (Alfonso Fuggetta, Computer, December 1993).
A Guidebook and a Spreadsheet Tool for a Corporate Metrics Program (Ronald E. Nusenoff and Dennis C. Bunde, Journal of Systems and Software, Volume 23, 1993).
Industrial Software Metrics Top 10 List (Barry Boehm, IEEE Software, September 1987).
Chapter 13: Software Engineering Education.
Education for Computing Professionals (David L. Parnas, Computer, January 1990).
A Software Engineering Bibliography (David Budgen and Pearl Brereton).
Software Engineering Standards (Richard H. Thayer).
Software Engineering Survey Results (Merlin Dorfman).
Dorfman wrote and taught a four-day course, "Software Requirements and Design Specifications," for Learning Tree International of Los Angeles, Calif. He co-teaches a two-week course in Software Project Management for the Center for Systems Management of Cupertino, Calif. He has been a guest lecturer on software systems engineering at the Defense Systems Management College. He is a Fellow of the American Institute of Aeronautics and Astronautics (AIAA), a member of its System Engineering Technical Committee, past chairman of the Software Systems Technical Committee, and past Chairman of the AIAA San Francisco Section, and is currently Assistant Director of Region 6 (West Coast). He is an affiliate member of the Institute of Electrical and Electronics Engineers (IEEE) Computer Society.
He has a BS and MS from the Massachusetts Institute of Technology and a PhD from Stanford University, all in Aeronautics and Astronautics. He is a registered Professional Engineer in the states of California and Colorado and is a member of the Tau Beta Pi and Sigma Gamma Tau honorary societies.
He is co-editor of two IEEE Tutorial volumes, Systems and Software Requirements Engineering and Standards, Guidelines, and Examples for System and Software Requirements Engineering, and co-editor of a volume, Aerospace Software Engineering in the AIAA "Progress in Aeronautics and Astronautics"
Richard H. Thayer, PhD, is a Professor of Computer Science at California State University, Sacramento, California, United States of America. He travels widely where he consults and lectures on software requirements analysis, software engineering, project management, software engineering standards, and software quality assurance. He is a Visiting Researcher at the University of Strathclyde, Glasgow, Scotland. As an expert in software project management and requirements engineering, he is a consultant to many companies and government agencies.
Prior to this, he served over 20 years in the U.S. Air Force as a senior officer in a variety of positions associated with engineering, computer programming, research, teaching, and management in computer science and data processing. His numerous positions include six years as a supervisor and technical leader of scientific programming groups, four years directing the U.S. Air Force R&D program in computer science, and six years of managing large data processing organizations.
Thayer is a Senior Member of the IEEE Computer Society and the IEEE Software Engineering Standards Subcommittee. He is Chairperson for the Working Group for Standard for a Concept of Operations (ConOps) document and past chairperson for the Working Group for a Standard for a Software Project Management Plans. He is a Distinguished Visitor for the IEEE Computer Society.
He is also an Associate Fellow of the American Institute of Aeronautics and Astronautics (AIAA) where he served on the AIAA Technical Committee on Computer Systems, and he is a member of the Association for Computer Machinery (ACM). He is also a registered professional engineer.
He has a BSEE and an MS degree from the University of Illinois at Urbana (1962) and a PhD from the University of California at Santa Barbara (1979) all in Electrical Engineering.
He has edited and/or co-edited numerous tutorials for the IEEE Computer Society Press: Software Engineering Project Management (1988), System and Software Requirement Engineering (1990), and Software EngineeringA European Prospective (1992). He is the author of over 40 technical papers and reports on software project management, software engineering, and software engineering standards and is an invited speaker at many national and international software engineering conferences and workshops.