0% found this document useful (0 votes)
548 views8 pages

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches Universitatsbibliothek Hannover ' Technische Inform Ationsbibliothek

This document is the table of contents for the book "Software Engineering: Modern Approaches" by Eric J. Braude and Michael E. Bernstein. It lists the book's chapters and sections which cover topics such as software process models, agile software processes, quality management, configuration management, project organization, estimation, scheduling, and planning. The book is intended to teach software engineering principles and processes to students.

Uploaded by

Eugene Fortunado
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
548 views8 pages

Engineering. Software. Eric J. Braude. Michael E. Bernstein. Modern Approaches Universitatsbibliothek Hannover ' Technische Inform Ationsbibliothek

This document is the table of contents for the book "Software Engineering: Modern Approaches" by Eric J. Braude and Michael E. Bernstein. It lists the book's chapters and sections which cover topics such as software process models, agile software processes, quality management, configuration management, project organization, estimation, scheduling, and planning. The book is intended to teach software engineering principles and processes to students.

Uploaded by

Eugene Fortunado
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Software

Engineering
Modern Approaches
SECOND EDITION

Eric J. Braude
Boston University, Metropolitan College

Michael E. Bernstein
Boston University, Metropolitan College

TECHNISCHE
INFORM ATIONSBIBLIOTHEK

UNIVERSITATSBIBLIOTHEK
HANNOVER
*
'

WILEY

JOHN WILEY & SONS, INC.


Contents

Preface x'v

The Issue of Scale xiv

This Edition Compared with the First xiv

How Instructors Can Use This Book xv

Acknowledgments xvn

PART I Introduction to Software Engineering

1 The Goals and Terminology of Software Engineering 1

1.1 What is Software Engineering 2


1.2 Why Software Engineering Is Critical: Software Disasters 3
1.3 Why Software Fails or Succeeds 4

1.4 Software Engineering Activities 5


1.5 Software Engineering Principles 10
1.6 Ethics in Software Engineering 12
1.7 Case Studies 14
1.8 Summary '9

1.9 Exercises '9


Bibliography 20

2 Introduction to Quality and Metrics in Software Engineering 21

2.1 The Meaning of Software Quality 22

2.2 Defects in Software 23


2.3 Verification and Validation 25

2.4 Planning for Quality 27

2.5 Metrics 28

2.6 Summary 30

2.7 Exercises 31

Bibliography 31

PART II Software Process

3 Software Process 32

3.1 The Activities of Software Process 33


3.2 Software Process Models 37

3.3 Case Study; Student Team Guidance 55


Vi CONTENTS

3.4 Summary 59
3.5 Exercises 60
Bibliography 62

4 Agile Software Processes 63

4.1 Agile History and Agile Manifesto 64

4.2 Agile Principles 65

4.3 Agile Methods 66

4.4 Agile Processes 68

4.5 Integrating Agile with Non-Agile Processes 74

4.6 Summary 77

4.7 Exercises 78

Bibliography 79

5 Quality in the Software Process 80

5.1 Principles of Managing Quality 81

5.2 Managing Quality in Agile Processes 82

5.3 Quality Planning 83

5.4 Inspections 87

5.5 QA Reviews and Audits 92

5.6 Defect Management 93

5.7 Process Improvement and Process Metrics 96

5.8 Organization-Level Quality and the CMMI 100

5.9 Case Study.- Software Quality Assurance Plan for Encounter 103

5.10 Summary 118

5.11 Exercises 118

Bibliography 119

6 Software Configuration Management 120

6.1 Software Configuration Management Goals 121

6.2 SCM Activities 121

6.3 Configuration Management Plans 128


6.4 Configuration Management Systems 128
6.5 Case Study: Encounter Video Game 129

6.6 Case Study: Eclipse 134


6.7 Student Team Guidance: Configuration Management 136
6.8 Summary 137
6.9 Exercises 138
Bibliography 139

PART III Project Management

7 Principles of Software Project Management I: Organization, Tools, and Risk Management . 140
.

7.1 Software Project Organization 142

7.2 Team Size 144

7.3 Geographically Distributed Development 146

7.4 The Team Software Process 151

7.5 Software Project Tools and Techniques 153


CONTENTS Vii

7.6 Risk Management 159


7.7 Student Team Guidance: Organizing the Software Project's Management 162

7.8 Summary 165

7.9 Exercises '66

Bibliography 167

8 Principles of Software Project Management II: Estimation, Scheduling, and Planning 168

8.1 Cost Estimation 169

8.2 Scheduling 182

8.3 The Software Project Management Plan 185

8.4 Case Study: Encounter Project Management Plan 187


8.5 Case Study: Project Management in Eclipse 196
8.6 Case Study: Project Management for OpenOffice 205
8.7 Case Study: Student Team Guidance 208
8.8 Summary 210
8.9 Exercises 211
Bibliography 212

9 Quality and Metrics in Project Management 213


9.1 Cultivating and Planning Internal Quality 214
9.2 Project Metrics 215

9.3 Using Metrics for Improvement 219


9.4 Software Verification and Validation Plan 223

9.5 Case Study: Software Verification and Validation Plan for Encounter 225

9.6 Summary 228

9.7 Exercises 228

Bibliography 229

PART IV Requirement Analysis

10 Principles of Requirements Analysis 230

10.1 The Value of Requirements Analysis 231


10.2 Sources of Requirements 231
10.3 High-level vs. Detailed Requirements 232
10.4 Types of Requirements 233
10.5 Nonfunctional Requirements 233
10.6 Documenting Requirements 238
10.7 Traceability 239

10.8 Agile Methods and Requirements 239

10.9 Updating the Project to Reflect Requirements Analysis 241

10.10 Summary 243

10.11 Exercises 244

Bibliography 244

11 Analyzing High-Level Requirements 245

11.1 Examples of Customer Wants 246

11.2 Stakeholder Vision 247

11.3 The Interview and Documentation Process 248


Viii CONTENTS

11.4 Writing an Overview 249

11.5 Describing Main Functions and Use Cases 249

11.6 Agile Methods for High-Level Requirements 252

1 1.7 Specifying User Interfaces.- High Level 254

11.8 Security Requirements 258

11.9 Using Diagrams for High-Level Requirement 260

11.10 Case Study: High-Level Software Requirements Specification

(SRS) for the Encounter Video Came 264

11.11 Case Study: High-Level Requirements for Eclipse 268

11.12 Eclipse Platform Subproject (First of three) 269

11.13 Case Study: High-Level Requirements for OpenOffice 273

11.14 Summary 275

11.15 Exercises 275

Bibliography 276

12 Analyzing Detailed Requirements 278

12.1 The Meaning of Detailed Requirements 279

12.2 Organizing Detailed Requirements 280

12.3 User Interfaces: Detailed Requirements 291

12.4 Detailed Security Requirements 296

12.5 Error Conditions 296

12.6 Traceability of Detailed Requirements 297

12.7 Using Detailed Requirements to Manage Projects 300

12.8 Prioritizing Requirements 301

12.9 Associating Requirements with Tests 302

12.10 Agile Methods for Detailed Requirements 303

12.11 Using Tools and the Web for Requirements Analysis 305
12.12 The Effects on Projects of the Detailed Requirements Process 308

12.13 Student Project Guide: Requirements for the Encounter Case Study 309
12.14 Case Study: Detailed Requirements for the Encounter Video Game 315
12.15 Summary 328
12.16 Exercises 329
Bibliography 330

13 Quality and Metrics in Requirements Analysis 331


13.1 Quality of Requirements for Agile Projects 332
13.2 Accessibility of Requirements 332
13.3 Comprehensiveness of Requirements 333
13.4 Understandability of Requirements 335
13.5 Llnambiguity of Requirements 335
13.6 Consistency of Requirements 336
13.7 Prioritization of Requirements 337

13.8 Security and High-Level Requirements 338

13.9 Self-Completeness of Requirements 339


13.10 Testability of Requirements 340

13.11 Traceability of Requirements 342


13.12 Metrics for Requirements Analysis 343
13.13 Inspecting Detailed Requirements
13.14 Summary
13.15 Exercises

14 Formal and Emerging Methods in Requirements Analysis: An Introduction


(Online Chapter)
14.1 Provable Requirements Method
14.2 Introduction to Formal Methods
14.3 Mathematical Preliminaries
14.4 The Z-Specification Language
14.5 The B Language System
14.6 Trade-offs for Using a B-like system
14.7 Summary
14.8 Exercises
Bibliography

PART V Software Design

1 5 Principles of Software Design


15.1 The Goals of Software Design
15.2 Integrating Design Models
15.3 Frameworks
15.4 IEEE Standards for Expressing Designs
15.5 Summary
15.6 Exercises

1 6 The Unified Modeling Language


16.1 Classes in UML

16.2 Class Relationships in UML

16.3 Multiplicity
16.4 Inheritance
16.5 Sequence Diagrams
16.6 State Diagrams
16.7 Activity Diagrams
16.8 Data Flow Models
16.9 A Design Example with UML
16.10 Summary
16.11 Exercises
Bibliography

17 Software Design Patterns


17.1 Examples of
Recurring Design Purpose
a

17.2 An Introductionto Design Patterns

17.3 Summary of Design Patterns by Type: Creational,


Structural, and Behavioral
17.4 Characteristics of Design Patterns: Viewpoints, Roles, and Levels . .

17.5 Selected Creational Design Patterns


17.6 Selected Structural Design Patterns
Xii CONTENTS

24 Refactoring 601

24.1 Big Refactorings 604

24.2 Composing Methods 606

24.3 Moving Features between Objects 608

24.4 Organizing Data 609

24.5 Generalization 612

24.6 Introducing Modules 616

24.7 Refactoring in Projects 617

24.8 Summary 619

24.9 Exercises 619

Bibliography 620

PART VII Testing and Maintenance

25 Introduction to Software Testing 621

25.1 Testing Early and Often,-and the Agile Connection 622


25.2 Retesting-. Regression Testing 622
25.3 Black Box and White Box Testing 623
25.4 Unit Testing vs. Post-Unit Testing 624
25.5 Testing Object-Oriented Implementations 625
25.6 Documenting Tests 626
25.7 Test Planning 626
25.8 Testing Test Suites by Fault Injection 628
25.9 Summary 628
25.10 Exercises 629

26 Unit Testing 630


26.1 The Sources of Units for Unit Testing 631
26.2 Unit Test Methods 631
26.3 Testing Methods 642
26.4 Test-Driven Development 647
26.5 CaseStudy-. Encounter Video Game 652
26.6 Summary 662
26.7 Exercises 663
Bibliography 665

27 Module and Integration Testing 666


27.1 Stubs and Drivers 667
27.2 Testing a Class 668
27.3 Integration 672
27.4 Daily Builds 679
27.5 Interface Testing 680
27.6 Module Integration 682
27.7 Case Study: Class Test for Encounter 683
27.8 Case Study: Encounter Integration Plan 688
27.9 Summary 692
27.10 Exercises 692
Bibliography 693
CONTENTS XiN

28 Testing at the System Level 694


28.1 Functional Testing 696
28.2 Nonfunctional Testing 698
28.3 Testing with Lightweight Requirements 708

28.4 Testing Shortly Before Release 713


28.5 Case Study: Encounter Software Test Documentation 714

28.6 Case Study: Eclipse 723

28.7 Case Study: OpenOffice 726


28.8 Summary 728

28.9 Exercises 728


Bibliography 729

19 Software Maintenance 730


29.1 Types of Software Maintenance 731
29.2 Issues of Software Maintenance 734
29.3 Maintenance Process 736
29.4 IEEE Maintenance Standards 741
29.5 Software Evolution 749
29.6 Maintenance Metrics 751
29.7 Case Study 754

29.8 Summary 756


29.9 Exercises 757

Bibliography 758

Glossary 759
Index 767

You might also like