The 6th edition of Software Engineering: A Practitioner's Approach is now available from McGraw-Hill. The information presented on this page provides an overview this new 2005 edition of the world's most widely used software engineering textbook.
What's new in SEPA, 6/e?
The 6th edition is considerably more than a simple update. The book has been revised to accommodate the dramatic growth in the field and to emphasize new and important software engineering methods. The format and style of the 6th edition have undergone significant change, making the presentation more reader-friendly and the content more easily accessible. Key additions and ehnancements include:
· NEW! Five new chapters on Web Engineering (Part 3 of the book) presents a complete engineering approach for the formulation, planning, analysis, design, and testing of Web Applications.
· NEW! Two new chapters consider requirements engineering and design engineering in detail.
· NEW! A new chapter considers agile process models including Extreme Programming and other methods.
· NEW! Extended and updated coverage in many chapters that addresses the Unified Process (and UML), the CMMI, software engineering patterns (for process, analysis, design and testing), use-cases, component-level design strategies, OCL, goal-oriented software metrics, project management, SQA, and SCM issues, and many other important topics.
· NEW! The new modular organization allows instructors to use the book for a course that fits their need. Some of emphases supported by this organization are a "design course," a "survey course," "management course," and a "web engineering course."
· NEW! A running case study has been added to the sixth edition. It applies software engineering concepts to industry situations. The case study is further expanded as part of the SEPA, 6/e Web site.
· NEW! New sidebars have been added that give students additional information on selected topics, suggestions for relevant software tools, and descriptions of workflow for various software engineering tasks.
· NEW! The coverage of UML (Unified Modeling Language) has been signficantly enhanced for the sixth edition.
A comprehensive Web site has been developed to complement the content of the SEPA, 6/e. The Web site, called SepaWeb, provides a broad array of software engineering resources that will benefit instructors, students, and industry professionals.
Like all Web sites, SepaWeb will evolve over time, but the following major content areas will always be present:
(1) a broad array of instructor resources including a comprehensive on-line Instructor's Guide and supplementary teaching materials (e.g., slide presentations to supplement lectures);
(2) a wide variety of student resources including an extensive on-line learning center (encompassing study guides, problem solutions, web-based resources, a FAQ for each chapter, and self-tests), an evolving collection of "tiny tools," a case study, and additional supplementary content, and
(3) a detailed collection of professional resources including outlines (and samples of) software engineering documents and other work products, a useful set of software engineering checklists, a catalog of software engineering (CASE) tools, a comprehensive collection of web-based resources, and an "adaptable process model" that provides a detailed task breakdown of the software engineering process.
In addition, SepaWeb will contain other goodies that are currently in development.
From the Preface of SEPA, 6/e
When computer software succeedswhen it meets the needs of the people who use it, when it performs flawlessly over a long period of time, when it is easy to modify and even easier to useit can and does change things for the better. But when software failswhen its users are dissatisfied, when it is error prone, when it is difficult to change and even harder to usebad things can and do happen. We all want to build software that makes things better, avoiding the bad things that lurk in the shadow of failed efforts. To succeed, we need discipline when software is designed and built. We need an engineering approach.
In the 25 years since the first edition of this book was written, software engineering has evolved from an obscure idea practiced by a relatively small number of zealots to a legitimate engineering discipline. Today, it is recognized as a subject worthy of serious research, conscientious study, and tumultuous debate. Throughout the industry, software engineer has replaced programmer as the job title of preference. Software process models, software engineering methods, and software tools have been adopted successfully across a broad spectrum of industry applications.
Although managers and practitioners alike recognize the need for a more disciplined approach to software, they continue to debate the manner in which discipline is to be applied. Many individuals and companies still develop software haphazardly, even as they build systems to service todays most advanced technologies. Many professionals and students are unaware of modern methods. And as a result, the quality of the software that we produce suffers, and bad things happen. In addition, debate and controversy about the true nature of the software engineering approach continue. The status of software engineering is a study in contrasts. Attitudes have changed, progress has been made, but much remains to be done before the discipline reaches full maturity.
The sixth edition of Software Engineering: A Practitioner's Approach is intended to serve as a guide to a maturing engineering discipline. The sixth edition, like the five editions that preceded it, is intended for both students and practitioners, retaining its appeal as a guide to the industry professional and a comprehensive introduction to the student at the upper level undergraduate or first year graduate level.
The 6th edition of Software Engineering: A Practitioner's Approach contains 32 chapters organized into five parts. The book is 880 pages in length. A chapter outline follows:
1 Software and Software Engineering
Part 1 The Software Process
2 Process: A Generic View
3 Prescriptive Process Models
4 Agile Development
Part 2 Software Engineering Practice
5 Practice: A Generic View
6 System Engineering
7 Requirements Engineering
8 Analysis Modeling
9 Design Engineering
10 Architectural Design
11 Component-Level Design
12 User Interface Design
13 Software Testing Strategies
14 Software Testing Techniques
15 Product Metrics for Software
Part 3 Applying Web Engineering
16 Web Engineering
17 Formulation and Planning for Web Engineering
18 Analysis Modeling for Web Applications
19 Design Modeling for Web Applications
20 Testing Web Applications
Part 4 Managing Software Projects
21 Project Management Concepts
22 Process and Project Metrics
23 Estimation for Software Projects
24 Software Project Scheduling
25 Risk Management
26 Quality Management
27 Change Management
Part 5 Advanced Topics in Software Engineering
28 Formal Methods
29 Cleanroom Software Engineering
30 Component-Based Software Engineering
32 The Road Ahead