text.skipToContent text.skipToNavigation

Fundamentals of Software Engineering, 2nd edition

  • Carlo Ghezzi
  • Mehdi Jazayeri
  • Dino Mandrioli

Published by Pearson (September 19th 2002) - Copyright © 2003

2nd edition

Overview

The long-awaited second edition of Fundamentals of Software Engineering presents the fundamental principles of software engineering and illustrates the application of those principles in the different phases of software development. It stresses the importance of a rigorous approach to the practice of software engineering. Over 350 exercises are provided to aid in the comprehension of the material. Over 20 in-depth case studies show how to deal with the intricacies of real-world problems.

This second edition maintains the successful structure of the first edition and enhances the contents by adding treatment of recent developments in software engineering.

New coverage to this edition includes:

  • More thorough treatment of object orientation
  • Greater coverage of software architecture and components
  • Introduction to modeling languages Z and UML
  • Description and case study of requirements engineering
  • New validation techniques, including model checking
  • Quality improvement paradigms, including GQM and CMM
  • More material on software processes, including the unified process
  • Several new case studies on process, requirements, design, organization, and systems engineering
  • A comprehensive supplement package, including an Instructor's Resource CD and a Companion Website.

Table of contents



1. Software Engineering: A Preview.

The Role of Software Engineering in System Design. A Shortened History of Software Engineering. The Role of the Software Engineer. The Software Life Cycle. The Relationship of Software Engineering to Other Areas of Computer Science. The Relationship of Software Engineering to Other Disciplines.


2. Software: Its Nature and Qualities.

Classification of Software Qualities. Representative Qualities. Quality Requirements in Different Application Areas. Measurement of Quality.


3. Software Engineering Principles.

Rigor and Formality. Separation of Concerns. Modularity. Abstraction. Anticipation of Change. Generality. Incrementality. Two Case Studies Illustrating Software Engineering Principles.


4. Software Design.

The Software Design Activity and its Objectives. Modularization Techniques. Handling Anomalies. A Case Study in Design. Concurrent Software. Object-Oriented Design. Architecture and Components.


5. Software Specification.

The Uses of Specifications. Specification Qualities. Classification of Specification Styles. Verification of Specifications. Operational Specifications. Descriptive Specifications. Building and Using Specifications in Practice.


6. Software Verification.

Goals and Requirements of Verification. Approaches to Verification. Testing. Analysis. Symbolic Execution. Model Checking. Putting it All Together. Debugging. Verifying Other Software Properties.


7. The Software Production Process.

What is a Software Process Model? Why Are Software Process Models Important? The Main Activities of Software Production. An Overview of Software Process Modes. Dealing with Legacy Software. Case Studies. Organizing the Process. Organizing Artifacts: Configuration Management. Software Standards.


8. Management of Software Engineering.

Management Functions. Project Planning. Project Control. Organization. Risk Management. Capability Maturity Model.


9. Software Engineering Tools and Environments.

Historical Evolution of Tools and Environments. Dimensions for Comparing Software Tools. Representative Tools. Tool Integration. Forces Influencing the Evolution of Tools.


10. Epilogue.

The Future. Ethics and Social Responsibility. Software Engineering Code of Ethics.


Case Studies.


References.


Index.

For teachers

All the material you need to teach your courses.

Discover teaching material