Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Software Engineering Modern Approaches Eric J. Braude All Chapter Instant Download

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

Download the full version of the textbook now at textbookfull.

com

Software Engineering Modern Approaches Eric


J. Braude

https://textbookfull.com/product/software-
engineering-modern-approaches-eric-j-braude/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Fundamental Approaches to Software Engineering Alessandra


Russo

https://textbookfull.com/product/fundamental-approaches-to-software-
engineering-alessandra-russo/

textbookfull.com

Engineering Software Products: An Introduction to Modern


Software Engineering 1st Edition Ian Sommerville

https://textbookfull.com/product/engineering-software-products-an-
introduction-to-modern-software-engineering-1st-edition-ian-
sommerville/
textbookfull.com

Fundamental Approaches to Software Engineering 1st Edition


Esther Guerra

https://textbookfull.com/product/fundamental-approaches-to-software-
engineering-1st-edition-esther-guerra/

textbookfull.com

Fortran 2018 with Parallel Programming 1st Edition Subrata


Ray (Author)

https://textbookfull.com/product/fortran-2018-with-parallel-
programming-1st-edition-subrata-ray-author/

textbookfull.com
Dermatopathology Dirk Elston

https://textbookfull.com/product/dermatopathology-dirk-elston/

textbookfull.com

Geodynamics and Earth Tides Observations from Global to


Micro Scale Carla Braitenberg

https://textbookfull.com/product/geodynamics-and-earth-tides-
observations-from-global-to-micro-scale-carla-braitenberg/

textbookfull.com

Managing Distributed Cloud Applications and


Infrastructure: A Self-Optimising Approach Theo Lynn

https://textbookfull.com/product/managing-distributed-cloud-
applications-and-infrastructure-a-self-optimising-approach-theo-lynn/

textbookfull.com

Remapping the Indian Postcolonial Canon: Remap, Reimagine


and Retranslate 1st Edition Nirmala Menon (Auth.)

https://textbookfull.com/product/remapping-the-indian-postcolonial-
canon-remap-reimagine-and-retranslate-1st-edition-nirmala-menon-auth/

textbookfull.com

Physics (Class 9) 2nd Edition Trishna Knowledge Systems

https://textbookfull.com/product/physics-class-9-2nd-edition-trishna-
knowledge-systems/

textbookfull.com
Practical Soft Tissue Pathology: A Diagnostic Approach: A
Volume in the Pattern Recognition Series 2nd Edition Jason
L. Hornick
https://textbookfull.com/product/practical-soft-tissue-pathology-a-
diagnostic-approach-a-volume-in-the-pattern-recognition-series-2nd-
edition-jason-l-hornick/
textbookfull.com
SOFTWARE
ENGINEERING
Modern Approaches Second Edition

Eric J. Braude
Boston University, Metropolitan College

Michael E. Bernstein
Boston University, Metropolitan College
For information about this book, contact,
Waveland Press, Inc.
4180 IL Route 83, Suite 101
Long Grove, IL 60047-9580
(847) 634-0081
info@waveland.com
www.waveland.com

Copyright © 2011 by Eric]. Braude and Michael E. Bernstein


Reissued 2016 by Waveland Press, Inc.

10-digit ISBN 1-4786-3230-5


13-digit ISBN 978-1-4786-3230-6

All rights reseroed. No part of this book may he reproduced, stored in a retrieval system, or transmitted
in any form or by any means without permission in writing from the publisher.

Printed in the United States of America

7 6 5 4 3 2
For Judy (Eric 1. Braude)
To Bambi, Garrett and Reid,
for all their love and support (Michael E. Bernstein)
Brief Contents

Pre face xiv


Acknowledgments xvii

Part I Introduction to Software 1 The Go al s and Terminolo gy o f So ftw are Engineeri ng


Engineering 2 Introduction to Qu al ity and Metrics i n So ftw are
Engi neeri ng 2 1
Part II Software Process 3 So ftw are Process 3 2
4 Agi le So ftw are Processes 6 3
5 Qu al ity i n the So ftw are Process 80
6 So ftw are Configur ation M an agement 120
Part III Project Management 7 Principles o f So ftw are Project M an agement I 140
8 Principles o f So ftw are Project M an agement I I 16 8
9 Qu ali ty and Metrics in Project M an agement 2 13
Part IV Requirement Analysis 10 Pri nciples o f Re quirements An alysis 2 3 0
11 An alyzing High - Level Re quireme nts 24 5
12 An alyzing Det ailed Re quirements 27 8
13 Qu al i ty and Metrics in Re quirements An alysis 3 3 1
14 Form al and Emerging Methods in Re quirements An alysis
(Online ch apter) 34 9
Part V Software Design
15 Principles o f So ftw are Design 3 50
16 The U n i fied Modeling L angu age 3 6 1
17 So ftw are Design P atterns 3 8 3
18 So ftw are Archi tecture 4 3 8
19 Det ailed Design 476
20 Design Qu ali ty and Metrics 50 8
21 Adv anced and Emerging Methods in So ftw are Design
(Online ch apter) 5 3 8
Part VI Implementation 22 Pri nciples o f Implemen t ation 53 9
2 3 Qu al ity and Metrics in Implemen t ation 5 84
24 Re factori ng 60 1
Part VII Testing and 25 Introduction to So ftw are Testing 62 1
Maintenance 26 U n it Testing 6 3 0
27 Module and Integr atio n Testing 666
28 Testi ng at the System Level 6 94
29 So ftw are M ainte n ance 730
Gloss ary 7 59
Index 767
Contents

Preface xiv
The Issue of Scale xiv
This Edition Compared with the First . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
How I nstructors Can Use This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

Ackn owledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii

PART I Introduction to Software Engineering

t The Goals and Terminology of Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . I


1. 1 What is Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
t. 2 Why Software Engineering Is Critical : Software Disasters . . . . . .
. . . . . . . . . . . . . . . . 3
1 .3 Why Software Fails or Succeeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1. 4 Software Engineeri ng Act iv ities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1. 5 Software Engineeri ng Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1. 6 Ethics i n Software Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1. 7 Case Studies . . . . .. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . 14
1. 8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1. 9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
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 Veri fication 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 Gui dance . . . . . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . . 55
vi CONTENTS

3.4 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59


3.5 Exercises 60
Bibliogr aphy 62

4 Agile Software Processes . . . . . . ... .. .... . . . . ... . . . . . . . . . . . . . . . . . . . . . . . . 63


4. 1 Agile Histo ry and Agi le M ani festo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2 Agi le Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3 Agile Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.4 Agi le Processes . . . . . . . . . . . . . . . . . . .
. . . . . . .. . . .
. . . . . . . . . . . . . . . . . . . . . . 68
4. 5 Integr ating Agile with Non -Agi le Processes . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.6 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.7 Exercises . . . . . . . . . . . .
. . . . . . . . . . . . . 78
Bibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5 Quality in the Software Process . . . . . 80


5. 1 Principles of M an aging Qu ali ty . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . 81
5.2 M an aging Qu al i ty in Agile Processes . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 82
5.3 Qu al ity Pl anning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4 Inspections . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . 87
5.5 QA Reviews and Aud its . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.6 De fect M an agement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.7 Process Improvement and Process Metrics . . . . . . . . . . . . . . . . . . .. . . . . . .
. 96
5. 8 Org aniz ation- Level Qu al ity and the CMMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tOO
5.9 C ase Study: So ftw are Qu al ity Assur ance Pl an for Encounter . . . . . . . . . . . . . . . . . 10 3
5 . 10 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5 . 11 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 118
Bibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

6 Software Configuration Management 1 20


6. I So ftw are Configur ation M an agement Go als 12 1
6.2 SCM Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1
6.3 Configur ation M an agement Pl ans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.4 Con figur ation M an agement Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 8
6.5 C ase Study : Encounter Video Game . . . . . . . . . . . . . . . . . . . 129
6.6 C ase Study: Eclipse . . . . . . . . . . . . . . . . . . . . . . . 13 4
6.7 Student Te am Guid ance : Configur ation M an agement . . . . . . . . . . . . . . . . . . . . . . . . . 13 6
6. 8 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7
6.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .. . . . 13 8
B ibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

PART III Project Management

7 Principles of Software Project Management I: Organization, Tools, and Risk Management 1 40

7. I Softw are Project Org aniz ation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142


7.2 Te am Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7.3 Geogr aphic ally Distributed Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
7.4 The Te am So ftw are Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1
7.5 So ftw are Project Tools and Tec hniques . . . 15 3
CONTENTS vii

7.6 Risk M an agement . . . . . . . . . . . . . . . . . . . . .. . . . . . .. . . . . . . 15 9


7.7 Student Te am Gu id ance : Org aniz ing the Softw are Proj ect s' M an agement . . . .. . . . ... 162
7. 8 Summ ary . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .... ... 1 65
7. 9 Exerc ises . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . . . . ... . ... . ... 166
Bibl iogr aphy . . . . . . .
. . . . . ... . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . .... .. . 1 67

8 Principles of Software Project Management II: Estimation, Scheduling, and Planning . . . . . . 1 68


8. 1 Cost Est im at ion . . . . . . . . . . . . . . . .. . . . . . . . . .. .. . . . . . . .. . . . . . . . . . . . . . . 16 9
8. 2 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 1 82
8. 3 The Softw are Project M an agement Pl an . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 85
8. 4 C ase Study: Encounter Proj ect M an agement Pl an . . . . . . . . . . . . . . . . . . . . . . . . .
. . 1 87
8.5 C ase Study: Project M an agement in Eclipse . . . . . . . . . .. . . . . . . . . . . . . . . . . .
. . . 1 96
8. 6 C ase Study : Project M an agement for Open Office . . . . . . . . . . . . . .. . . . . . . . . . . . . 205
8. 7 C ase Study: Student Te am Guid ance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 8
8. 8 Summ ary . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
8. 9 Exerc ises . . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . .. . . . . . 21 1
Bibl iogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2

9 Quality and Metrics in Project Management .................................. . 213


9.1 Cul t iv at ing and Pl anning Intern al Qu al ity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
9. 2 Project Metr ic s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
9. 3 Us ing Metrics for Improvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9
9.4 Softw are Verific at ion and V al id ation Pl an . . . . . .. . . . . . . . . . . .. . . . . . . . . . . . . . 2 23
9. 5 C ase Study : Softw are Ver ific ation and V alid at ion Pl an for Encounter . . . . . . . . . . . . . . 2 25
9 .6 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . 228
9 .7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
B ib liogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . .. . . . . . . 22 9

PART IV Requirement Analysis

1 0 Principles of Requirements Analysis 230


1 0. 1 The V alue of Re qu irements An alysis . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . . . . . . 23 1
1 0 .2 Sources of Re qu irements . .. . . . . . . ... . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . 23 1
1 0. 3 High-level vs. Detailed Re qu irements . . . . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . . 23 2
1 0. 4 Types of Re qu irements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........ ..... 233
1 0. 5 Nonfunct ion al Re qu irements . . . . .. . . . . . . . . . . . . . . .. .... .. . ... .... . .. . 233
1 0 .6 Document ing Re qu irements . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . 23 8
1 0. 7 Tr ace ab i l ity . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . .. 23 9
1 0. 8 Ag ile Methods and Re qu irements . . . . . . . . . . . . . . . . ... . . . . . . . . . .. .. 23 9
10. 9 Upd at ing the Proj ect to Reflect Re qu irements An alysis . . . . . . . . . . . . . . . ... . .. . . 24 1
10. 10 Summ ary . . . . .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .. .. 243
1 0. 1 1 Exerc ises . . .. . . . . .... . . . . .. . .. . . . . . .... . . . . . .. . . . . . . ... . . . . . 244
Bibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. ....... . ..... . 244

1 1 Analyzing High-Level Requirements. . . . .. . . . . . . . . . . . ..... . . ... .. . .. .. . . . . . .. 24 5


1 1.1 Ex amples of Customer W ants . . . . . . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . .
. . 246
1 1.2 St akehol der V is ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
1 1. 3 The I nterv iew and Document at ion Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 8
viii CONTENTS

1 1. 4 Writing an Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 9
1 1. 5 Describing M ai n Functions and Use C ases . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . 24 9
1 1. 6 Agile Methods for High - Level Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2
1 1 .7 Speci fying User Inter faces : High Level . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . 254
1 1. 8 Security Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 8
1 1. 9 Using Di agr ams for High -Level Re quirement . . . . . . . . . . . . . . . . . . 260
11. 1 0 C ase Study : High - Level So ftw are Re quirements Specific ation
(SRS ) for the Encounter Video G ame . . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . 264
1 1. 1 1 C ase Study: High - Level Re quirements for Ecl i pse . . . . . . . . . . . . . . . . . . . . 26 8
11. 12 Eclipse Pl at form Subproject (First o f three) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 9
1 1. 1 3 C ase Study : High - Level Re quirements for Open O ffice . . . . . . . . . . .. .. . . . . . . . 273
11. 1 4 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 2 75
1 1. 15 Exercises . . . . . . . . .
. . . . . . .
. . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 2 75
Bibli ogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 76

12 Analyzing Detailed Requirements 278


12.1 The Me aning o f Det ailed Re quirements . . . . . . . . . . . . . . . . . .. . . . . . . 27 9
12. 2 Org anizing Det ailed Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 80
1 2.3 User Inter faces: Det ai l ed Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . 2 91
12. 4 Det ailed Security Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 96
1 2.5 Error Conditions . . .. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 96
12. 6 Tr ace abil ity o f Det ailed Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 97
12. 7 Using Det ailed Re quirements to M an age Projects . . . . . . . . . . . . . . . . . . 3 00
1 2. 8 Prioritizing Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . 301
12. 9 Associ ating Re quirements with Tests . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 30 2
1 2. 1 0 Agile Methods for Det ailed Re quirements . . . . . . . . . . . . . . . . . . . . . . . 303
12 . 11 Using Tool s and the Web for Re quirements An alysis . . . . . . . . . . . . . . . . . . . . . . . 305
1 2. 1 2 The E ffects on Proj ects o f the Det ailed Re quirements Process . . . . . . . . . . . . . . 30 8
12.13 Student Project Guide : Re quirements for the Encounter C ase Study . . . . . . . . . . . . . . 30 9
1 2. 1 4 C ase Study: Det ai led Re quirements for the Encounter Video G ame . . . . . . . . . . . . . . . 315
1 2.1 5 Summ ary . . . . . . . . . . . . . . ..
. . . . . . . . . 328
1 2. 1 6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Bibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 30

I 3 Quality and Metrics in Requirements Analysis .................. ............. . 33 1


1 3.1 Qu al ity o f Re quirements for Agile Projects . . . . . . . . . . . ... . . . . . .
. . . . . . . . . . 33 2
1 3. 2 Accessibil i ty o f Re quirements . . . . . ... . . 33 2
1 3. 3 Comprehensiveness o f Re quirements . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . 333
1 3. 4 Underst and ability o f Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
1 3.5 Un ambiguity o f Re quirements . . . . . . . . . .
. . . . . . . .
. . . . . 335
1 3.6 Consistency o f Re quirements . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 336
1 3. 7 Prioritiz ation o f Re quirements . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 337
1 3. 8 Security and High -Level Re quirements . . . . . .
. . . .
. . . . . .
. . . . . . . . . . . . . . . 33 8
1 3. 9 Sel f-Completeness o f Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 9
1 3 . 10 Test ability o f Re quirements . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 3 40
1 3. 1 1 Tr ace ability o f Re quirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . 342
1 3. 1 2 Metrics fo r Re qui rements An alysis . . . . . . . . . . . .
. . . . . . . . . .. . .. . . . . . . . . . . . . 3 43
CONTENTS ix

13 . 13 I nspecting Det ailed Re quirements 344


13.14 Summ ary . . . . . . . 34 7
13 . 15 Exercises . . . 34 8

t 4 Formal and Emerging Methods in Requirements Analysis: An Introduction


(Online Chapter) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . ..... . . .. . 349

14 . 1 Prov able Re quirements Method


14. 2 I n troduction to Form al Methods
14.3 M athem atic al Prel im i n aries
14.4 The Z-Spec ific at ion L angu age
14 . 5 The B L angu age System
14 . 6 Tr ade -o ffs for Us ing a B - l ike system
14.7 Summ ary
14 . 8 Exercises
B ib liogr aphy

PART V Software Design

t 5 Principles of Software Design . . . . . . . .. . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . .. . . . 350


15.1 The Go als of Softw are Des ign . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . .. 35 1
15. 2 Integr ating Design Models . . . . . . . . . . . . . . . .. . . . . . . . . . .. . . . .. . .. . . . . . . . 354
15 . 3 Fr ameworks . . . . . . . . . . . . . . .. . . . ... . . .. .... .. .. . . . . . . .. . 35 7
15.4 IEEE S t and ards for Express ing Des igns . . . . ... . . . . . . . . .. . . .. . ... ..... . ... . 359
15. 5 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .. . ... . .. . . ..... . .. 359
15 . 6 Exercises . . 360

t 6 The Unified Modeling Language . .... .. . . . . . . .. . . . . . . . . . . . . . . . . . . . ... . . .. . . 36 1


16.1 Cl asses i n U M L . . . . ... . . .. . .. . . . . . . . . . . . .. . . . . . . . . .. . . . . . . .... . 36 2
16. 2 Cl ass Rel ationsh ips in UML . . . . . . . . . . . . . . .. . .. . . . . . . . .. . . . . . . . . . . . .
. . 36 2
16.3 Mult iplicity . . . . . . . . . . . . . . . .. . . .... . . .. . . ... . . . . . .... ... . .. . . 364
16 . 4 Inher it ance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
16 . 5 Se quence D i agr ams . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 36 8
16. 6 St ate D i agr ams . . . . . . . . . . . . . . . . . . . . . . . .. . . . .
. . . . . . . . . . . . . . . . .. . . . . 3 72
16 . 7 Act iv ity D i agr ams . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . .. .. .. . . .. . . . .
. . 3 74
16.8 D at a Flow Models . . . . . . .. . . . . . . . .. . . . .. . . ....... . . . .. 3 76
16. 9 A Design Ex ample w ith UML 3 77
16. 10 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 80
16. 11 Exercises . . . . . . . . . . . . . . . . . . .. . . . . . .. . . . . . . . . . . ... . ... . 3 81
B ibl iogr aphy . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . ... . . ............ .. . 3 82

1 7 Software Design Patterns . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


. . 38 3
17. 1 Ex amples o f a Recurring Design Purpose . . . . . . . . . . . . . . . .. . . . . . . . . . . . . .
. . . 3 84
17.2 An I ntroduct ion to Design P atterns . . . . . . .. . . . . . . . ... .. . ... . ..
. . 3 86
17.3 Summ ary o f Des ign P atterns by Type: Cre at ion al ,
Structur al , and Beh avior al . . .... . . . . . . ... . ..... . . . . .. .. . . .. . ..
. . 390
17.4 Ch ar acteristics o f Des ign P atterns: V iewpoints, Roles, and Level s . . . . . . . . . . . . . . . . 396
17. 5 Selected C re ation al Design P atte rns . . ... . ...... . ...... . . .. . . . "
. 400
17. 6 Selected Structur al Design P atte rns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
. . 40 8
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
x CONTENTS

17. 7 Selected Beh avior al Design P atterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 17


17. 8 Design P attern Forms : Deleg ation and Recursion . . . . . . . .. . . . . . . . . . . . . . . . . . . . . 43 1
17.9 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
.

17. 10 Exercises . . . 436


Bibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7

t 8 Software Architecture . . ... .. .. . . .. . .. .... . .. . . . .. . . .. .. .. .. . . . . 4 38


18 . 1 A C ategoriz ation of Architectures . . . . . . . . . .. . . . . . .. . . . . . . . . . . . . . 439
18. 2 Softw are Architecture Altern atives and Their Cl ass Models . . . . . . . . . . . . . . . . . . . . 439
18. 3 Tr ading O f f Architecture Altern atives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 453
18.4 Tools for Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
18 . 5 IEEE St and ards for Expressing Designs . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
18.6 Effects of Architecture Selection on the Project Pl an . . . . . . . . . . . . . . . . . . . . 455
18 . 7 C ase Study : Prep aring to Design Encounter (Student Project Guide continued) . . . . . . 45 7
18. 8 C ase Study: Softw are Design Document for the Role-Playing Video Game Fr amework . 460
18.9 C ase Study: Softw are Design Document for Encounter ( U ses the Fr amework) . . 46 2
18. 10 C ase Study: Architecture of Ecl i pse . . . . . . . . . . . . . . . . . . . . . . 466
18. 1 1 C ase Study : OpenO ffice Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 8
18. 12 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 4 73
1 8 . 13 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 74
Bibliogr aphy . . . . . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . ... . . . . ... . 4 75

1 9 Detailed Design . . . . . . . . . . . . . . . . . . . . . . . ... . . . . .


. . . . . . . . . . . . . . . . . . . . . . . 476
19. 1 Rel ating Use C ases, Architecture, and Det ailed Design . . . .. . . . .. . . . . . . . . . . . . 4 77
19 . 2 A Typic al Ro ad M ap for the "Det ailed Design" Process . . . . . . . . . . . . . . . . . . . . . . . 4 78
19 . 3 Object-Oriented Design Principles . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 4 79
19. 4 Design ing ag ainst Interf aces . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 4 81
19. 5 Specifying Cl asses , Functions, and Algorithms . . . . . . . . . . .. . . . . .. . .. . . . . 4 82
19. 6 Reusing Components . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . 4 85
19 . 7 Se quence and D at a Flow Di agr ams for Det ailed Design .. . . . . .. . . . . . . .. . . . . 4 86
19. 8 Det ailed Design and Agile Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
19 . 9 Design i n the Uni fied Development Process . . . . . . . . . . .. . . . . . . . . . .. . . 490
19 . 10 IEEE St and ard 890 for Det ailed Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 1
19 . 11 Upd ating a Project with Det ailed Design . .. . . . . . . . . . . . . . . . . . . . . . 49 1
19.12 C ase Study : Det ailed Design of Encounter . . . . . . . . . . . . ... . . . . . . . . . . . . . . . .. 494
19 . 13 C ase Study: Det ailed Design of Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
19. 14 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 505
19. 15 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Bibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7

20 Design Quality and Metrics . . .. .. . . . .. . . . . .... .. . . . .... . .. . . . 508


20. 1 Degree of Underst and ability ,Cohesion, and Coupling . . . . . . . . . . . . . . . . . . . . . . . . 5 10
20. 2 Degree of Sufficiency as a Qu ali ty Go al . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 10
20. 3 Degree of Robustness as a Qu ali ty Go al . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 11
20.4 Degree of Flexibility as a Design Qu ality Go al . . . . . . . . . . . . . . .
. . . . . . . 5 12
20.5 Degree of Reus ability as a Design Qu al ity Go al . . . . . . . . . . . . . .
. . . . . . . . . . . . .. 5 13
20.6 Degree of Time E fficiency as a Design Qu ali ty Me asure . . . . . . . .
. . . . . . . . . . . . . . 5 17
CONTENTS xi

20.7 Degree o f Sp ace E ffic ie ncy as a Des ig n Qu al ity Me asure . .. . . . . . .. . . . .... ... . . 5 19
20. 8 Degree of Rel iab il ity as a Des ig n Qu al ity Me asure . . . . ... . . . . . . .. . . .... . ... . 52 1
20.9 Degree o f Security as a Des ig n Qu al ity Me asure . . . . . . ... . . . . ... . . . . . . 5 23
20. 10 Assessi ng Qu al ity i n Architecture Selectio n . . . . . . . . . . . .. . . . . ... . . . .. . . . . . . 5 25
20. 1 1 Assessi ng the Qu ality o f Det ailed Desig ns . . . . . . . . . . . .. . . . . .. .. . . . . . . . . .. . 53 1
20. 12 Summ ary . . . . . . . . .... . . . . . . . . . . . .. . ... . . .. . . . .. . . . . . . . . . . . . . 536
20. 13 Exerc is es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 536
B ibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . .. . 537

2 1 Advanced and Emerging Methods in Software Design (Online Chapter) 538

2 1. I Desig n ing in a Distributed E nv iro nme nt


2 1. 2 I ntroductio n to Aspect-Ori e nted Progr ammi ng
2 1. 3 Desig n i ng for Secur ity with UM Lsec
2 1. 4 Model-Drive n Architectures
2 1. 5 The Form al Des ig n Process i n B
2 1. 6 Summ ary
2 1. 7 Exerc ises
Bibl iogr aphy

PART VI Implementation

22 Principles of Implementation . ....... . . ............. . ............. . .. .... 539


2 2. 1 Ag ile and No n-Ag ile Appro aches to Impleme nt atio n . . . . . . . . . . . . . . . . . . . . . . . . . 540
2 2. 2 Choosi ng a Progr ammi ng L angu age . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
2 2. 3 I de nti fyi ng Cl asses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
2 2.4 Defi n ing Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . 54 1
2 2.5 Impleme nt atio n Pr actices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 544
2 2.6 De fe ns ive Progr amm ing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 8
2 2.7 Codi ng St and ards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2
2 2. 8 Comme nts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
2 2 .9 Tools and E nviro nme nts for Progr amm ing . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 555
2 2 . 10 C ase Study : E ncou nter Impleme nt at io n . . . . .. . . . . . . . . ... . . . . . . . . . . . . . . . . . 556
2 2. 1 1 C ase Study : Ecli pse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
2 2. 12 C ase Study : Ope n O ffice . . . . . . . . . . .
. .. .. .. . . . .. . .. . . . . . . ... . . .. . .
. . 559
2 2 . 13 Stude nt Te am Cu id ance for Impleme nt atio n . . . . . . . . . . .. . .. . . . ..... . . 565
2 2 . 14 Summ ary . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . ... . .. . . ... . .. . .. 566
2 2 . 15 Code List ings Re ferred to i n th is Ch apter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
2 2 . 16 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 1
B ib l iogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 83

23 Quality and Metrics in Implementation .. . . . . . . . . . . . . . .


. . .. .... . ....... 584
2 3. 1 Qu al ity o f Impleme nt atio n . . . . . . . . . . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . . 5 85
2 3 . 2 Code I nspect io ns and Rel ated Qu ality Procedures . . .. . . . . ... . . ... . .. . . . . 597
2 3. 3 Summ ary . . . . . . . . . . . . . . .. . . . . . . . .. .. ..... . . . .. .. .... . . . . . 599
2 3 . 4 Exercises 59 9
xii CONTENTS

24 Refactoring . . . . . . . . ......... ... . . . . ... . . . ... ... .. .... 60 1


2 4 .1 B i g Re factorings . . . . . . . . .. . . . . . . . . .... . . . . . .. . . .. . . .. ... . . . . 604
24.2 Composing Methods . . . . ...... ..... ....... . .. .. . . . ... ... . . .. .. .. 60 6
24.3 Moving Features between Ob jects . . . . . . . . . . . . . ... . . . . . . .. . . . . . . . . . .. . . 60 8
2 4 .4 Organizing Data . .. .. . . . . . . .......... . ..... ... . . . ... 609
2 4 .5 Genera lization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
24.6 I n troducing Modules . . . .. ... . .. . .. ..... .. ....... .. . ...... .... 616
2 4 .7 Re factori ng in Projects . ............ .... ... ... ... . ...... .. .. . . 617
24.8 Summary .. . . . . . . . . . . . .. . .. . .... . . . . .. ..... . . .. .. . .. ... .. .. . . .. 6 19
2 4 .9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Bibliography .. ..... . ..... .. . .. . . . ... . .. . .. . . . . . . ... . . . .. .... 620

PART VII Testing and Maintenance

25 Introduction to Software Testing . . .... ........ . .. ......................... 62 1


25. 1 Testing Early and O ften ; and the Agile Connection . . . . . . . . . . .. . . . . . . . . . . . . . 62 2
2 5 .2 Retesting : Regression Testing . . . . . . . . .. . . . .. .... ..... .... ... 62 2
2 5 .3 B lack Box and White Box Testing . . . . . . ... .. . . . . . . . . . . . . . . . . . . . . . . .. .
. . 62 3
2 5 .4 Unit Testing vs. Post -U n i t Testing . . . . . . . . .. . . .. . . . .. . . . .. . 624
2 5 .5 Testing Ob ject-Oriented Implementations . . . .. . . . . . . . . . . . . . . . . . .. . .. . . . . . 625
2 5 .6 Documenting Tests .. .. ... . ...... .
. .. . ....... 62 6
25 .7 Test Planning . . . . . . . . . . . . . .. .... ... ............ .. .. .. 62 6
25. 8 Testing Test Suites by Faul t Injection ........ . ....... . .. . .... .
. 62 8
2 5 .9 Summary . . . . . . . . . . . . . . . . . .. . .. ...... .. .. .. .... .. .... 62 8
25 .10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . 629

2 6 Unit Testing . . . . .............. . . . . . .. . . . . .... . . . . ........... . . .... 630


2 6.1 The Sources o f U n i ts for U n i t Testing . . . . . . .. . .. . . . . . . ... . . 63 1
2 6. 2 U n i t Test Methods . .. . . . . . . . . . ... .. . .. . ... . .. . .. . . . . . . . . .. . . 63 1
2 6.3 Testing Methods . . . . .. .. . .. . . . . . . . . . ... . . . . . . . .. . .. . 64 2
2 6.4 Test -Driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7
2 6.5 Case Study: Encounter Video Game . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. 65 2
2 6.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . .. ... . . . . ... . . . . . . . . . 662
2 6.7 Exercises . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Bibliography . . . . . . . . . . . .. . . .. . . . . .. . .. . . . . . . . . . . . . .. . . 665

27 Module and Integration Testing . .. . . . . ............... . ... . . . ... .. 666


2 7.1 Stubs and Drivers . . . .. . .. . . .. . . .. . . . . . . . . . . . . .. . . . . . . . . . . .. . .. 66 7
2 7. 2 Testing a Class . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. . . . . . . . . .. . .. . . . . . . . . 66 8
2 7. 3 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 72
2 7. 4 Daily Bui lds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 79
2 7. 5 Inter face Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 680
2 7. 6 Module Integration . . . . . . . . . . 68 2
2 7.7 Case Study: Class Test for Encounter . . . . . . . .
. . . ... . .. .. . . . . . 683
2 7.8 Case Study: Encounter Integration Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 8
2 7. 9 Summary . . . . . . . .. . . . . . . . . . . . . . ... . . . . . . . . . . .
. . . . . . . 69 2
2 7.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 2
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3
CONTENTS xiii

28 Testing at the System Level. ............................................ .. 694

2 8 . 1 Function al Test ing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696


2 8 . 2 Non function al Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 69 8
2 8 . 3 Testi ng with Lightweight Re quirements . . . . . . . . . . . ... . .... . ... . .. . . ... . . . 70 8
2 8 . 4 Test ing Shortly Be fore Rele ase . . ... . .... . . . . . . . . . . .. . . . . . . . ... . . .. . . . . 713
2 8 . 5 C ase Study : Encounter So ftw are Test Document ation . . . . .... . . . ...... . .. . . . . 7 14
2 8 . 6 C ase Study : Ecl ipse . . . .. . . . . . . . . . . ... . . . . . .. . . . .... . . . . . . . .. . . . . . . 72 3
2 8 . 7 C ase Study : OpenO ffice . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . 726
2 8 . 8 Summ ary .. . . . . . . . . ... . . . . ... . . ..... . . . ... . . . .. . ... . . . .. . . . . . .
. . 72 8
2 8 . 9 Exercises . ... . . . . . . . . . . . . . . . . . . . . . ... . . . .. . . . . ... . . ... . . . . . . .. . . . 72 8
Bibliogr aphy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729

29 Software Maintenance. . .............................. . ................ 730


29. 1 Types o f So ftw are M ai n ten ance . . . . . . . . . . . . . . . . . . . . .... . . . . . . . . . . . . . . . . 73 1
29. 2 Issues o f So ftw are M ainten ance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4
29.3 M ainten ance Process . . . . . .. . . . . . . . . .... . . . . . . . . . . ... . . .. . . ... . . .. . 73 6
29.4 IEEE M ai n ten ance S t and ards . . . . . . ... . . . .... . . . .. . . ..... . .. . . . .. . . . .. . 74 1
29.5 So ftw are Evolution . ... . . . .... . . . . . . . . .... . . . .... . .... . . . . . . ... 749
29.6 M ainten ance Metrics . . . . . ...... . .. . . ..... . . . . . .. . .... . ... . . ... . . .. . 75 1
29.7 C ase Study . . .... . .... . . . .. . . . . . . . . . . .. . . . . . . . . . . ... . . .. . .... . . .. 754
29. 8 Summ ary . . . . .... . . .. . . . .... . . . . .. . . . . . . ... . . .. . . . .. . . . . . . 756
29.9 Exercises . . . . . . .. . . . . . . . . . ... . . . ... . . . . ... . . . .. . . .... . . .. . .. . . . . 75 7
Bibl io gr aphy . . . . . . . . . . . . . .... . . . . . . . . . . . .. . . . .. . . . . .. . .. . . . . .. . . . 75 8

Glossary . ............................. . ............................ 759


Index . ... . . . . . .. . .. . .. . .... . . . . . . . .. . . . . . . . .. . ... . . ......... . . .... 767
Preface

Much o f the modern world runs on so ftw are. As a result, so ftw are engi neers are entrusted with signific ant
responsibi lity. Although it is a biomedic al engi neer, for ex amp le, who designs he alth monitoring systems, it is
a so ftw are engi neer who cre ates its actu al control functions. A m arketing pro fession al develops w ays to re ach
customers online but it is a so ftw are engineer who m akes the system a re ality.
Tod ay's so ftw are engi neer must be able to p articip ate i n more th an one kind o fso ftw are process, work in
agile te ams, de al with customers, express re quirements cle arly, cre ate modul ar designs, utilize leg acy and
open source projects, monitor qu al ity, incorpor ate security, and apply m any types o f tests.

THE ISSUE OF SCALE

A so ftw are applic ation consists o f tens, hundreds, even thous ands o f cl asses. This is very di fferent from
m an aging three or four o f them, and results i n the dr agon o f comp lexity suggested by this book's cover. As
al so suggested there, however, this dr agon c an be subdued. Indeed, to de al with numerous and complex
c lasses, so ftw are engineers h ave at their dispos al a wide v ariety o f too ls and techni ques. These r ange from the
w ater fal l process to agile methodologies, from high ly integr ated tool suites to re factoring and loosely coupled
tool sets . Underlying this v ariety is continuing rese arch into rel i able appro aches, and an acknowledgment o f
the fact th at one size does not fit all projects.

THIS EDITION COMPARED WITH THE F IRST

The first edition o f this book emph asized the object -oriented appro ach, which h as subse quently
become widespre ad. It w as also designed to help student te ams c ar ry out h ands -on term projects through
theory, ex amp le s , c ase studies, and pr actic al steps. Object-orient ation and h ands -on continue to be m ajor fe atures
o f this edition. However, we h ave widened the scope o f the first edition, especi ally by including extensive
cover age o f agile methods and re factoring, together with deeper cover age o f qu ality and so ftw are design.
Re aders o f the first edition m ade extensive use o f the complete video g ame c ase study -an ex ample th at
they could fo llow " from soup to nuts" but which w as signific antly more comprehensive th an a toy. This edition
ret ains and upd ates th at c ase study, but it adds the explor ation o f asimpler ex ample on one h and ( aDVD rent al
store) and l arge, re al , open source c ase studies on the other. In p articul ar, to provide students a fee ling fo r the
scope and complexity o f re al-world app lic ation s, thi s boo k le ads them through se le cted re quireme nt s, de si gn,
implement ation, and m ainten ance o f the Ecli pse and OpenO fflc e open source projects . The size, complexity ,
and tr ansp arency o f these projects provide students a wi ndow into so ftw are engi neering on a re alistic sc ale .
Every book on so ftw are engineeri ng faces a di lem ma: h o w t o reconcile the org aniz ation o f the topics
with the org aniz ation o f actu al so ftw are project phases. An org aniz atio n o f ch apters into process/project
m an agement/re quirements an alysis/design limp lement ation/test/m ainten ance is str aightforw ard but is li able
to be misinterpreted as pro moting the w ater fall deve lopment process at the expe nse others . Our appro ach h as
been to use this org aniz ation in the seven p arts o f the book but to demonstr ate throughout th at e ach ph ase
PREFACE XV

typic ally belongs to a cycle r ather th an to a single w aterf al l se quence. I n p articul ar , our appro ach integr ates
agile methodologies consistently.
This edition also i n troduces somewh at adv anced i nfluenti al i de as , i nc ludi ng mode l - driven archi ­
tectures and aspect -oriented progr amming. Now ad ays, form al methods are m an d ated by government
agencies for the h i ghest l eve ls o f security, and thi s book aims to educ ate re aders i n their possibilities. Due
to print sp ace l i m i t ations, some of this m ateri al is to be found in the online extension of this book.
I n summ ary , speci fic fe atures of this edition comp ared with the first are as fol 1ows :

• A sh arpening and st and ardi z ation of the m ateri al from the first edition

• A strong agile thre ad throughout, includi ng a ch apter on agil ity alone and one devoted to ref actoring.

• A sep ar ate ch apter on qu ality in six of the book's seven p arts

• Re al -world c ase studies , t aken from the Eclipse and OpenOffice open source pro je cts

• Gre atly exp anded cover age of softw are design and design p atterns

• New ch apters on adv anced , i nfluenti al softw are engineering i de as

• An org aniz ation of m any of the book 's seven p arts as follows :

• Principles

• Det ails

• Qu ality

• Adv anced Methods

HOW I NSTRUCTO RS CAN USE THIS BOOK

This book h as been designed to accommod ate multiple appro aches to the le arning and te aching of softw are
engineering. Most instructors te ach the fun d ament als of softw are process, pro ject m an agemen t , re quirements
an alysis, deSign , testing , implement ation, and m ai nten ance . Beyond this common ground , however ,
i nstructors employ a wide v ariety of styles and emph ases. The following are m ajor appro aches , together
with the se quence of ch apters th at support e ach of them .

A. Process emphasis, concentr ating on how applic ations are developed


All of P arts I through IV ; and Ch apters 15 , 2 2 , and 25 (the rem ai n i ng principles and introduction
ch apters)

B. Design emphasis, which te aches softw are engineering prim arily as a design activity
Principles and introduction : Ch apters 1, 3 , 7, and 10 ; all of P art V ; and Ch apters 2 2 and 25 (principles
and introduction)

C. Programming and agile emphasis, which emph asizes softw are engineering as a code-oriented activity th at
s atisfies re quiremen ts , emph asizing agile appro aches
Principles and i ntroduction : Ch apters 1,3 ,7, 10, and 15 ; all of P art V I; and Ch apters 25 and 26

D . Two-semester course, which en ables the instructor to cover most topics and assign a subst anti al h ands-on
pro je ct
xvi PREFACE

Di. All o f the chapters in the book, either in se quence from beginning to end
or

D2. I n two passes as follows:

( i ) Pri nciples and i ntroduction chapters in the first semester : Chapters 1, 3 , 7, 15, 2 2 , and 2 5
( i i ) The remaining chapters in the second semester

E. Emphasis on a hands-on projects and case studies, which relies mostly on an active team or individual project as
the vehicle for learning theory and principles
Principles and introduction chapters: Chapters 1, 3 , 7, 15, 2 2 , 25, and 26, and all case study sections i n
the remaining chapters

F. Theory and principles emphasis, concen trating on what one can learn about so ftware engineeri ng and its
underpin nings
Principles and introduction chapters : Chapters 1, 2, 3 , 7, 15 , 2 2 , and 2 5 , followed , as time allows, by
Chapters 14 and 2 1 (emergi ng topics)

G. Quality assurance and testing emphasis


Principles and i ntroduction : Chapters 1, 3 , 7, and 10 ; Chapters 2, 5, 9, 13 , 20, 2 3 ( quali ty) ; and Chapters
2 5 , 26, 2 7, and 2 8 (testing) .

The web site for this book, including review questions and the Encounter game case study , is
waveland. com /Extra Material /3 2306 /.
_

Eric Braude
Michael Bernstein
Boston, MA
January 20 10
Acknowledgments

We owe a de bt of gr atitude to our students at Boston University's Metropo li t an Co lIe ge. Working in myri ad
industries and busi nesses , they h ave given us inv alu ab le feed back. The Co lIege i tse lf h as provided amode lpl ace
for the te aching and le arning of softw are engi neeri ng. Our th anks go to Dick Bostwick and Tom V anCourt,
much of whose work in the first edition c arries over to this one. We are gr atefu l to the peop le who worked with
us through the p ainst aking process of writing and pu blishing this book. We are p articul arly appreci ative of the
he lp from our editors, D an S ayre and Jon ath an Ship ley ; from Georgi aKing, Yee Lyn Song, and the indef atig able
st aff. We th ank the reviewers of our m anuscript, whose feed back h as been inv alu able :
Arvin Ag ah , U niversity of Kans as
Steven C . Sh affer, Pennsy lv ani a St ate University
Stephen M. Theb aut, U niversity of F lorid a
Ar avind a P. Sist la, U niversity of I lli nois, Chic ago
James P . Purtilo, Un iversi ty of M aryl and
Li nd a M . Ott, Michig an Techno logic al University
Ji anwei Niu, University of Tex as, S an Antonio
Wi lli am Lively, Tex as A &M U n iversity
Chung Lee, C al i forni a St ate University, Pomon a
Sudipto Ghosh , Color ado St ate Un iversity
M ax I. Fomitchev, Pennsy lv ani a St ate University
L awrence Bernste i n , Stevens Institute of Techno logy
Joh n D albey, C ali forni a Po ly tech nic University
Len Fisk, C ali forn i a St ate U niversity, Chico
Ahmed M. S alem , C ali forni a St ate U niversity, S acr amento
Fred Str auss, New York University
Kai H. Ch ang, Auburn University
Andre v an der Hoek, Un iversity of C ali forni a, Irvine
S aeed Monemi , C al i forni a Polytechnic University
Ro bert M . Cu bert, U niversity of Florid a
Chris Tseng, S an Jose St ate University
Mich ael James P ayne, Purdue U niversity
C aro l A. Wel l ington, Shippens burg U n iversity
Yifei Dong, University of Ok lahom a
Peter B lanchfie ld , Nottingh am U niversity
Desmond Greer , Queen's University Be lf ast
Wei Qi Yan, Queen s' University Bel f ast
Zaigh am M ahmood, Der by U niversity
Karel Pieterson, Hogeschool V an Amsterd am
This book would not h ave been possi ble without the const ant love , p atience , and encour agement of our families.
The Goals and Terminology
of Software Engineering

Why is software engineering


Planning
important?

� Maintenance
Who and what does is consist of?

Testing
\
The Software What are its main activities?
Development
Lifecycle What are the principles of software
Requirements

/
engineering?
analysis
Implementation
What ethics are involved?

� DeSign
What sorts of case studies will be
used to illustrate the subject?

Figure 1.1 The context and learning goals for this chapter

The goal o f so ftware engi neeri ng, and the theme o f this book, is the creation o f so ftware systems that
meet the needs o f customers and are reliable, e fficient, and maintainable. In addition, the system should be
produce d in an econom ical fash ion ,meeting project schedules and budgets. Thi s i s n o easy task, especially
for large , complex app l ic ations. Th is chapter i ntroduces the field o f so ftware engineering and explains how
i t addresses these goals . We first expl ain the term "so ftware engineering," showing that i t consists o f many
parts .
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
2 CHAPTER 1 THE GOALS AND TERM INOLOGY OF SOFTWARE ENGIN EERING

1 . 1 WHAT IS SOFTWARE E N G I NEERING?

Software engineering is an engineering discipline that involves all aspects of developing and maintai ning a
software product. Engineering disciplines such as civil , mechanical , and electrical involve the design, analysis,
and construction of an arti fact for some practical purpose. Software engineering is no excepti on to thi s­
software products certainly have practical purposes.
The IEEE defines Software Engineering [ 1] as follows:

1 . The application of a systematic, disciplined, quanti fiable approach to the development, operation and
maintenance of software; that is, the appl ication of engineering to software .

2 . The study of approaches as i n ( 1) .

A s this definition suggests, it's not only what i s produced that's i mportant but also how it is produced.
Engineering disciplines employ an established set of systematic, disciplined, and quantifiable approaches to the
development of artifacts. By thoroughly applying an analogous set of approaches to the development of software,
we can expect the production of software that is highly reliable, is maintainable, and meets specified
requirements. A disciplined approach is particularly important as the size of a software project grows. With
i ncreased size comes greatly increased complexity, and applying a systematic and disciplined approach is critical.
One of the first uses of the phrase "software engineering" was i n 1 96 8 , by a NATO Study Group on
Computer Science [ 2 ] . A conference was organized at that time, motivated by the "rapidly i ncreasing importance
of computer systems in many activities of society." The Study Group focused their attention on the problems
with software, and held a working conference on Software Engineeri ng that turned out to see far i nto the future.
The following are some quotes from the conference that summarize the cause for their concern :

The basic problem is that certain classes of systems are placing demands on us which are beyond
our capabilities and our theories and methods of design and production at this time . . . It is large
systems that are encounteri ng great difficulties. We should not expect the production of such
systems to be easy.

Particularly alarming is the seemingly unavoidable fallibility of large software, s i nce a mal ­
function in an advanced hardware-software system can be a matter of l i fe and death .

Programming management will continue to deserve its current poor reputation for cost and schedule
effectiveness until such time as a more complete understanding of the program design process is achieved.

One of the problems that is central to the software production process is to identi fy the nature of
progress and to find some way of measuring it.

Today we tend to go on for years, with tremendous investments to find that the system, which was
not well understood to start with, does not work as anticipated. We build systems l ike the Wright
brothers built airplanes-bUild the whole thing, push it off the cliff, let it crash, and start over again .

The Study Group discussed possible techniques a n d methods that might lead t o solving these problems.
They deliberately and provocatively used the term "software engineering," with an emphasis on engineering,
as they wanted to "imply the need for software manufacture to be based on the types of theoretical
foundations and practical disciplines that are traditional i n the established branches of engi neering." They
believed that if these foundations and discipline were applied to building software systems, the quality of the
resulting systems would be vastly improved.
Today, many of the issues they identified are addressed by evolving software engineering tech ni ques
and practices even as the scope of appli cations has increased dramatically. Throughout thi s book we exam ine
these practices and explain how they contribute to producing high-quality software . Before doi n g that,
WHY SOFTWARE E N G I N EERING IS CRITICAL: SOFTWARE DISASTERS 3

however, it is instructive to begin examining why software fails in the first place, and how some failures can
even lead to catastrophic results.

1 . 2 WHY SOFTWARE E N G I N E E R I N G IS CRITICAL: SOFTWARE DISASTERS

Even with the best of intentions, a large number of software projects today are unsuccessful, with a large
percentage never completed. Worse , quite a few software projects stil l end in disaster, causing a loss of
money, time, and tragically, even l ives. We review some representative samples here as cautionary tales. In all
cases, the methods employed were i nadequate for the complexity of the required application. Failures such as
these motivate us to conti nually ask: How can we apply software engineering methodologies to ensure the
appropriate level of quality in software applications?

1 .2 . 1 The Virtual Case File project

The FBI's Virtual Case File system was intended to automate the FBI's cumbersome paper-based case system, allow
agents to share investigative information, and replace obsolete systems. Instead, after an expenditure of $ 1 70
million, the result did not accomplish these objectives at all . The effect has been to inhibit the FBI from growing its
crime-fighting mission despite the growth in terrorism and the increased sophistication of many criminal
organizations. All of 700,000 lines of code, costing $ 1 00 milIion, had to be abandoned. Poorly defined requirements,
networking plans, and software development plans were cited by investigators as causes for this disaster.

1 . 2 . 2 The Ariane project

"On 4 June 1 996, the maiden flight of the Ariane s launcher ended in failure. Only about 40 seconds after initiation of
the flight sequence, at an altitude of about 3700 m, the launcher veered off its flight path, broke up and exploded." [ 3 ]
The cost o f developing Ariane during the preceding decade has been estimated a t $7 billion. A significant fraction o f
this was wasted o n June 4, 1 996. Ariane s itself, including its specific development, has been valued a t $500 million.
The source of the problem was described i n the official report [ 3 ] as fol l ows ( italics added) :

The internal Inertial Reference System software exception was caused during execution of a data
conversion from 64-bit floating point to 1 6-bit signed integer value . The floating-point number
which was converted had a value greater than what could be represented by a 1 6-bit signed
integer. This resulted in an Operand Error. The data conversion instructions ( i n Ada code) were
not protected from causing an Operand Error. . . The error occurred in a part of the software that only
.

performs alignment of the strap- down inertial platform . This software module computes mean ­
ingful results only before l i ft-off. As soon as the launcher l i fts off, this function serves no purpose.

In other words, the data conversion code itsel f was "correct" but was called upon to execute when it should
not have been . The defect lay within controlling code. This kind of problem is easy to describe but not easy to
avoid because many people are involved in large projects. Large projects become extraordinarily complex.
Development efforts like Ariane call for extensive education and coordination within project management, quality
assurance, configuration management, architecture, detailed design, programming, and testi ng organizations.
Depending on how the project was organized and designed, any one of these organizations could have been
partly responsible for seeing to it that the code in question was not called after l i ftoff.

1 . 2 . 3 Rad i ation Overdose

As software controls an ever-increasing number of devices, its reliability is coming under increasingly intense
scrutiny. In the project management magazine Baseline, Debbie Gage, John McCormick, and Berta Ramona wrote
4 CHAPTER 1 THE GOALS AND TERMINOLOGY OF SOFTWARE E N G I N EERING

of a lawsuit alleging "massive overdoses of gamma rays partly due to limitations of the computer program that
guided use of' a particular radiation-therapy machine. They reported the following: "The International Atomic
Energy Agency said in May 200 1 that at least five of the deaths were probably from radiation poisoning ( from the
machi ne) and at least 1 5 more patients risked developing 'serious compl ications' from radiation. " [4] The defect
did not show up until a significant time after release, and only after certain sequences of operator actions.
The followi ng describes the software defect, and is quoted from [ 5 ] .

Setting the bending magnets takes about 8 seconds. Magnet calls a subrouti ne called Ptime to
i ntroduce a time delay. Since several magnets need to be set, Ptime is entered and exited several
times . A flag to indicate that bending magnets are being set is initial ized upon entry to the Magnet
subroutine and cleared at the end of Ptime. Furthermore, Ptime checks a shared variable, set by the
keyboard handler, that indicates the presence of any editi ng requests . If there are edits, then Ptime
clears the bending magnet variable and exi ts to Magnet, which then exits to Datent. But the edit
change variable is checked by Ptime only i f the bendi ng magnet flag is set. Si nce Ptime clears it
duri ng its first executio n , any edits performed duri ng each succeedi ng pass through Ptime will not
be recogn ized. Thus, an edit change of the mode or energy, although reflected on the operator's
screen and the mode/energy offset variable, will not be sensed by Datent so it can index the
appropriate calibration tables for the machine parameters. 1

This is a fairly involved explanation but not at all beyond the complexity of many software systems in
existence today. When should this type of error have been found? I f sound software engineering discipline
had been employed duri ng all phases of the project, there would have been several opportun ities in the
development process to detect it.

1 . 2.4 More software Disasters

Readers who wish to know about more software disasters, big and small, are referred to Neumann [6], who discusses
risks, problems, defects, and disasters relating to reliability, safety, security vulnerabilities, integrity, and threats to
privacy and well-being. Another source is the ACM publication Software Engineering Notes and its Risks Forum [7].

1 .3 WHY SOFTWARE FAI LS OR SUCCE EDS

Thankfully, not all software proj ects end in the types of disasters described above, but far too many end in
failure . What does it mean for a software project to be unsuccessful? Simply put, an unsuccessful project is one
that fails to meet expectations. More speci fically, the undesirable outcomes may include the following:

• Over budget

• Exceeds schedule and/or misses market window

• Doesn't meet stated customer requirements

• Lower quality than expected

• Performance doesn't meet expectations

• Too di fficult to use

1 Leve n s o n , Nancy, and Turner C . S . , "An I nvestigation o f the Therac - 2 5 Acci de n ts , " IEEE Computer, Vol . 26, No. 7,
luly 1 99 3 , pp. 1 8-4 1 , copyright © 1 99 3 IEEE.
SOFTWARE E N G I N EERING ACTIVITIES 5

Failing to meet just one of these objectives can cause a project to be deemed unsuccessful. For example,
i f a project is completed under budget, meets all requirements and functionality, has h i gh quality, good
performance and is easy to use, it still may not be successful if the schedule was missed and no customers are
wil l i ng to purchase it as a result.
Charette [ 8 J notes that there are many underlying reasons software proj ects are unsuccessful , including:

• U nrealistic or unarticulated project goals

• Poor project management

• Inaccurate estimates of needed resources

• Badly defined system requirements

• Poor reporting of the project's status

• Unmanaged risks

• Poor communication among customers , developers, and users

• Inability to handle the project's complexity

Other contributing factors are :

• Poor software design methodology

• Wrong or inefficient set of development tools

• Poor testing methodology

• Inadequate test coverage

• Inappropriate (or lack of) software process2

Unsuccessful software projects usually fall victim to several of these . To reiterate, the goal of software
engineering, and the theme of this book, is the creation of software systems that are reliable, efficient,
maintainable, and meet the needs of customers. Software engineering provides the tools and methodologies
necessary to accomplish these goals, resulting in the development of successful software systems .
We'll end this section on a positive note. The authors feel that software engineering has improved greatly,
when measured fairly. Projects of equal ambition can typically get done far more successfully now than 1 0 years
ago. The issue really is that the ambition and scope of applications have grown enormously. The Eclipse software
development platform , which this book uses as a case study, is an excellent example of a successful application.
This is largely due to its flexible design, inclusive requirements process, and thorough testing.

1 .4 SOFTWARE E N G I N E E R I N G ACTIVITI ES

The production of software systems can be extremely complex and present many challenges. Systems, especially
large ones, require the coordination of many people, called stakeholders, who must be organized into teams and
whose primary objective is to build a product that meets defined requirements. The entire effort must be organized

2 Charett, Robert, "Why Software Fails," IEEE Spectrum, Vol . 4 2 , N o . 9, September 2005, pp. 42-49, copyright ©
2005 IEEE.
6 CHAPTER 1 THE GOALS AND TERM I N O LOGY OF SOFTWARE E N G I N EERING

• People

• Project stakeholders .

• Product

• The software product plus associated documents.

• Project

• The activities carried out to produce the product .

• Process

• Framework within which the team carries out the activities necessary to build the product .

Figure 1 .2 The four " p's" that constitute software engineering

i nto a cohesive project, with a solid plan for success. Finally, to successfully develop the product, the activities of
the people must be organi zed through use of an orderly and wel l-defined process. Collectively, these activities are
known as the 4 P's of software engineering: people , product, project, and process. Successful software projects
must adequately plan for and address all of them . Sometimes, the needs of each of the P's conflict with each other,
and a proper balance must be achieved for a project to be successful . Concentrating on one P without the others
can lead to a project's failure. For example, i f people are organized into efficient teams and given the resources
they need to perform their roles, a project can still be unsuccessful if there's no defi ned software process to follow,
as chaos can ensue . The 4 P's are summarized in Figure 1 . 2 and are discussed in the sections that follow .

1 . 4 . 1 people

People are the most important resource on a software project. It is through their efforts that software is
successfully constructed and delivered. Competent people must be recruited, trained, motivated, and
provided with a growth path , which is no easy task. They are the l i feblood of any successful project.
Software development is o ften dictated by tight, market- driven deadli nes and demanding l ists o f required
product features. Because of this, only wel l - organized groups of engi neers, educated and experienced in the
methods of software engineering, are capable of conSistently carryi ng out these activities to everyone's
satisfacti o n . The alternative is often chaos and, all too frequently, disaster.
Typically, several groups of people are i nvolved with and have a stake in a proj ect's outcome. These are
called its stakeholders. They include business management, project management, the development team ,
customers , and end users. Although each group is motivated to see the project succeed, given their diverse
roles each has a di fferent perspective on the process . This is discussed next, for each of the groups cited.

Business Management
These are people responsible for the busi ness side of the company developing the software . They include senior
management (e.g., V . P . Finance), marketing (e.g., Product Manager), and development managers . Their primary
focus is on business issues i ncluding profit, cost effectiveness, market competitiveness, and customer satisfaction .
They are typically not particularly knowledgeable about or involved in the technical aspects of the project.

project Management
Project managers are responsible for planning and tracking a proj ect. They are involved throughout,
managing the people, process, and activities . They continuously monitor progress and proactively implement
necessary changes and improvements to keep the project on schedule and with i n budget.
Random documents with unrelated
content Scribd suggests to you:
Section 4. Information about Donations to
the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or determine
the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.

You might also like