Software Engineering 2nd Edition David C. Kung
pdf download
https://ebookname.com/product/software-engineering-2nd-edition-
david-c-kung/
Get Instant Ebook Downloads – Browse at https://ebookname.com
Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...
Software Engineering for Game Developers Software
Engineering Series 1st Edition Ph.D.
https://ebookname.com/product/software-engineering-for-game-
developers-software-engineering-series-1st-edition-ph-d/
Component Software Beyond Object Oriented Programming
2nd Edition Szyperski C.
https://ebookname.com/product/component-software-beyond-object-
oriented-programming-2nd-edition-szyperski-c/
Software engineering effective teaching and learning
approaches and practices 1st Edition Heidi J. C. Ellis
https://ebookname.com/product/software-engineering-effective-
teaching-and-learning-approaches-and-practices-1st-edition-heidi-
j-c-ellis/
Practical Analog And Digital Filter Design Les Thede
https://ebookname.com/product/practical-analog-and-digital-
filter-design-les-thede/
Doing Time on the Outside Deconstructing the Benevolent
Community 1st Edition Madonna R. Maidment
https://ebookname.com/product/doing-time-on-the-outside-
deconstructing-the-benevolent-community-1st-edition-madonna-r-
maidment/
Sites of European Antisemitism in the Age of Mass
Politics 1880 1918 Robert Nemes
https://ebookname.com/product/sites-of-european-antisemitism-in-
the-age-of-mass-politics-1880-1918-robert-nemes/
Student s Guide to Landmark Congressional Laws on Civil
Rights Marcus D. Pohlmann
https://ebookname.com/product/student-s-guide-to-landmark-
congressional-laws-on-civil-rights-marcus-d-pohlmann/
Leisure Pleasure and Healing 1st Edition Dvorjetski
https://ebookname.com/product/leisure-pleasure-and-healing-1st-
edition-dvorjetski/
Substance Abuse Prevention The Intersection of Science
and Practice 1st Edition Julie Hogan
https://ebookname.com/product/substance-abuse-prevention-the-
intersection-of-science-and-practice-1st-edition-julie-hogan/
The Art of SEO Mastering Search Engine Optimization
Theory in Practice 1st Edition Eric Enge
https://ebookname.com/product/the-art-of-seo-mastering-search-
engine-optimization-theory-in-practice-1st-edition-eric-enge/
Software Engineering
Second Edition
David C. Kung
SOFTWARE ENGINEERING
Published by McGraw Hill LLC, 1325 Avenue of the Americas, New York, NY 10019. Copyright ©2024 by McGraw Hill LLC. All
rights reserved. Printed in the United States of America. No part of this publication may be reproduced or distributed in any form or
by any means, or stored in a database or retrieval system, without the prior written consent of McGraw Hill LLC, including, but not
limited to, in any network or other electronic storage or transmission, or broadcast for distance learning.
Some ancillaries, including electronic and print components, may not be available to customers outside the United States.
This book is printed on acid-free paper.
1 2 3 4 5 6 7 8 9 LCR 28 27 26 25 24 23
ISBN 978-1-265-24243-5
MHID 1-265-24243-7
Cover Image: Shutterstock Images, LLC
All credits appearing on page or at the end of the book are considered to be an extension of the copyright page.
The Internet addresses listed in the text were accurate at the time of publication. The inclusion of a website does not indicate an
endorsement by the authors or McGraw Hill LLC, and McGraw Hill LLC does not guarantee the accuracy of the information presented
at these sites.
mheducation.com/highered
Dedication
To My Father
iv
Preface xv
Part I
Introduction and System
Engineering 1
1 
Introduction 2
2 
Software Process and Methodology 10
3 
System Engineering 43
Part II
Analysis and Architectural Design 67
4 
Software Requirements Elicitation 68
5 
Domain Modeling 92
6 
Architectural Design 123
Part III
Modeling and Design of Interactive
Systems 155
7 
Deriving Use Cases from Requirements 156
8 
Actor–System Interaction Modeling 182
9 
Object Interaction Modeling 196
10 
Applying Responsibility-Assignment
Patterns 224
11 
Deriving a Design Class Diagram 246
12 
User Interface Design 259
Part IV
Modeling and Design of Other Types
of Systems 281
13 
Modeling and Design of Event-Driven
Systems 282
14 
Activity Modeling for Transformational
Systems 314
15 
Modeling and Design of Rule-Based
Systems 330
Part V
Applying Situation-Specific
Patterns 351
16 
Applying Patterns to Design a State
Diagram Editor 352
17 
Applying Patterns to Design a Persistence
Framework 400
Part VI
Implementation and Quality
Assurance 423
18 
Implementation Considerations 424
19 
Software Quality Assurance 442
20 
Software Testing 474
Brief Contents
Brief Contents v
Part VII
Maintenance and Configuration
Management 511
21 
Software Maintenance 512
22 
Software Configuration Management 541
Part VIII
Project Management and
Software Security 553
23 
Software Project Management 554
24 
Software Security 584
Appendices
A 
Personal Software Process: Estimation,
Planning, and Quality Assurance 608
B 
Java Technologies 611
C 
Software Tools 623
D 
Project Descriptions 638
E 
Object Constraint Language 644
Index 649
vi
Preface xv
Part I
Introduction and System
Engineering 1
Chapter 1
Introduction 2
1.1 
What Is Software Engineering? 3
1.2 Why Software Engineering? 5
1.3 
Software Engineering Ethics 6
1.4 Software Engineering and Computer Science 7
1.5 Summary 8
1.6 Chapter Review Questions 9
1.7 Exercises 9
Chapter 2
Software Process and Methodology 10
2.1 
Challenges of System Development 11
2.2 
Software Process 12
2.3 
Theory of Wicked Problems 13
2.4 
Software Process Models 15
2.4.1 
Prototyping Process 15
2.4.2 
Evolutionary Process 15
2.4.3 
Spiral Process 16
2.4.4 
The Unified Process 17
2.4.5 
Personal Software Process 18
2.4.6 
Team Software Process 23
2.4.7 
Agile Processes 25
2.5 
Software Methodology 31
2.5.1 
Difference between Process and
Methodology 31
2.5.2 
Benefits of a Methodology 32
2.5.3 
Status of Software Development
Methodologies 32
2.6 Agile Methods 33
2.6.1 
Dynamic Systems Development
Method 33
2.6.2 
Feature-Driven Development 35
2.6.3 
Scrum 36
2.6.4 
Extreme Programming 37
2.6.5 
Agile Unified Methodology 38
2.6.6 
Kanban 39
2.7 Summary 41
2.8 Chapter Review Questions 42
2.9 References 42
2.10 Exercises 42
Chapter 3
System Engineering 43
3.1 
What Is a System? 44
3.2 
What Is System Engineering? 45
3.3 
System Requirements Definition 48
3.3.1 
Identifying Business Needs 48
3.3.2 
Defining System Requirements 50
3.4 
System Architectural Design 50
3.4.1 
System Decomposition 51
3.4.2 
Requirements Allocation 54
3.4.3 
Architectural Design Diagrams 55
3.4.4 
Specification of Subsystem Functions and
Interfaces 59
3.5 Subsystems Development 61
3.5.1 
Object-Oriented Context Diagram 61
3.5.2 
Usefulness of an Object-Oriented Context
Diagram 61
3.5.3 
Collaboration of Engineering Teams 62
3.6 System Integration, Testing, and Deployment 63
3.7 System Configuration Management 63
3.8 Summary 65
3.9 Chapter Review Questions 65
3.10 Exercises 66
Contents
Contents vii
Part II
Analysis and Architectural Design 67
Chapter 4
Software Requirements Elicitation 68
4.1 What Is Requirements Elicitation? 68
4.2 Importance of Requirements Elicitation 70
4.3 Types of Requirement 71
4.4 Challenges of Requirements Elicitation 72
4.5 Steps for Requirements Elicitation 74
4.5.1 
Collecting Information 75
4.5.2 
Constructing Analysis Models 78
4.5.3 
Deriving Requirements and Constraints 79
4.5.4 
Requirements Specification Standards 84
4.5.5 
Conducting Feasibility Study 86
4.5.6 Reviewing Requirements Specification 86
4.6 Applying Agile Principles 87
4.7 Requirements Management and Tools 89
4.8 Summary 90
4.9 Chapter Review Questions 90
4.10 Exercises 90
Chapter 5
Domain Modeling 92
5.1 
What Is Domain Modeling? 92
5.2 
Why Domain Modeling? 93
5.3 
Object-Orientation and Class Diagram 94
5.3.1 
Extensional and Intentional Definitions 94
5.3.2 
Class and Object 95
5.3.3 
Object and Attribute 96
5.3.4 
Association 97
5.3.5 
Multiplicity and Role 98
5.3.6 
Aggregation 99
5.3.7 
Inheritance 100
5.3.8 
Inheritance and Polymorphism 101
5.3.9 
Association Class 102
5.4 
Steps for Domain Modeling 103
5.4.1 
Collecting Application Domain
Information 104
5.4.2 
Brainstorming 105
5.4.3 
Classifying Brainstorming Results 106
5.4.4 
Visualizing the Domain Model 110
5.4.5 
Domain Model Review Checklist 115
5.5 
Putting It Together 115
5.6 
Guidelines for Domain Modeling 118
5.7 
Applying Agile Principles 120
5.8 
Tool Support for Domain Modeling 121
5.9 Summary 121
5.10 Chapter Review Questions 122
5.11 Exercises 122
Chapter 6
Architectural Design 123
6.1 
What Is Architectural Design? 124
6.2 
The Importance of Architectural Design 124
6.3 
Software Design Principles 125
6.3.1 
What Are Software Design Principles? 126
6.3.2 
Design for Change 126
6.3.3 
Separation of Concerns 127
6.3.4 
Information Hiding 128
6.3.5 
High Cohesion 129
6.3.6 
Low Coupling 130
6.3.7 
Keep It Simple and Stupid 131
6.4 
Types of System 131
6.4.1 
Interactive Systems 132
6.4.2 
Event-Driven Systems 133
6.4.3 
Transformational Systems 134
6.4.4 
Rule-Based Systems 135
6.4.5 
Object-Persistence Subsystems 135
6.4.6 
System and Subsystem 135
6.5 
Architectural Styles 136
6.5.1 
N-Tier Architectural Style 137
6.5.2 
Client-Server Architectural Style 139
6.5.3 
Main Program and Subroutine Architectural
Style 140
6.5.4 
Event-Driven System Architecture 142
6.5.5 
Persistence Framework Architectural Style 144
6.5.6 
Other Architectural Styles 145
6.6 
Architectural Design Process 146
6.6.1 
Determine Architectural Design
Objectives 147
6.6.2 
Perform Custom Architectural Design 148
6.6.3 
Specify Subsystem Functions and
Interfaces 148
6.6.4 
Review the Architectural Design 149
6.7 
Architectural Style and Package Diagram 149
viii Contents
6.8 
Guidelines for Architectural Design 151
6.9 
Architectural Design and Design Patterns 152
6.10 
Applying Agile Principles 152
6.11 Summary 153
6.12 Chapter Review Questions 153
6.13 Exercises 154
Part III
Modeling and Design of Interactive
Systems 155
Chapter 7
Deriving Use Cases from Requirements 156
7.1 
What Is An Actor? 157
7.2 
What Is a Use Case? 157
7.3 
Business Process, Operation, and Action 158
7.4 
Steps for Deriving Use Cases from Requirements 160
7.4.1 
Deriving Use Cases, Actors, and
Subsystems 161
7.4.2 
Constructing Use Case Diagrams 167
7.4.3 
Specify Use Case Scopes 174
7.4.4 
Producing a Requirement–Use Case
Traceability Matrix 176
7.4.5 
Reviewing Use Case Specifications 177
7.4.6 
Allocating Use Cases to Iterations 178
7.5 
Applying Agile Principles 179
7.6 
Tool Support for Use Case Modeling 180
7.7 Summary 180
7.8 Chapter Review Questions 181
7.9 Exercises 181
Chapter 8
Actor–System Interaction Modeling 182
8.1 
What Is Actor–System Interaction Modeling? 183
8.2 
Importance of Actor–System Interaction Modeling 184
8.3 
Steps for Actor–System Interaction Modeling 184
8.3.1 
Initializing a Two-Column Table 184
8.3.2 
Specifying Actor–System Interaction 185
8.3.3 
Reviewing Expanded Use Cases 186
8.4 
Specifying Alternative Flows 186
8.5 
Using User Interface Prototypes 187
8.6 
Do Not Show Exception Handling 190
8.7 
Including Other Use Cases 191
8.8 
Continuing with Other Use Cases 191
8.9 
Commonly Seen Problems 192
8.10 
Guidelines for Expanded Use Cases 193
8.11 Summary 195
8.12 Chapter Review Questions 195
8.13 Exercises 195
Chapter 9
Object Interaction Modeling 196
9.1 
What Is Object Interaction Modeling? 196
9.2 
Uml Sequence Diagram 198
9.2.1 
Notions and Notations 198
9.2.2 
Representing Instances of a Class 198
9.2.3 
Sequence Diagrams Illustrated 200
9.2.4 
Sequence Diagram for Analysis and
Design 200
9.2.5 
Using the Notations Correctly 202
9.3 
Steps for Object Interaction Modeling 204
9.3.1 
Collecting Information About Business
Processes 204
9.3.2 
Identifying Nontrivial Steps 204
9.3.3 
Writing Scenarios for Nontrivial
Steps 205
9.3.4 
Constructing Scenario Tables 207
9.3.5 
Scenarios: How to Write Them 208
9.3.6 
Converting Scenario Tables into Sequence
Diagrams 212
9.3.7 
Object Interaction Modeling Review
Checklist 220
9.4 
Applying Agile Principles 220
9.5 
Tool Support for Object Interaction Modeling 222
9.6 Summary 222
9.7 Chapter Review Questions 222
9.8 Exercises 223
Chapter 10
ApplyingResponsibility-AssignmentPatterns 224
10.1 
What Are Design Patterns? 225
10.2 
Why Design Patterns? 226
10.3 
Categories of Patterns 226
10.4 
Pattern Specification 227
Contents ix
10.5 
The Controller Pattern 227
10.5.1 
A Motivating Example 228
10.5.2 
What Is a Controller? 230
10.5.3 
Applying the Controller Pattern 231
10.5.4 
Controller and Software Design
Principles 231
10.5.5 
Types of Controller 233
10.5.6 
Keeping Track of Use Case State 234
10.5.7 
Bloated Controller 235
10.5.8 When to Apply the Controller
Pattern? 237
10.5.9 
Guidelines for Applying Controller 237
10.6 
The Expert Pattern 238
10.6.1 
Expert and Antiexpert 239
10.6.2 
Expert Pattern Involving More Than One
Object 240
10.6.3 
When to Apply the Expert Pattern? 240
10.6.4 
Guidelines for Applying Expert 240
10.7 
The Creator Pattern 241
10.7.1 
What Is a Creator? 242
10.7.2 
Benefits of the Creator Pattern 243
10.7.3 
When to Apply the Creator Pattern? 243
10.8 Summary 243
10.9 Chapter Review Questions 244
10.10 References 245
10.11 Exercises 245
Chapter 11
Deriving a Design Class Diagram 246
11.1 
What Is a Design Class Diagram? 248
11.2 
Usefulness of a Design Class Diagram 248
11.3 
Steps for Deriving a Design Class Diagram 249
11.3.1 
Identifying Classes 249
11.3.2 
Identifying Methods 250
11.3.3 
Identifying Attributes 251
11.3.4 
Identifying Relationships 253
11.3.5 
Design Class Diagram Review
Checklist 255
11.4 
Organize Classes with Package Diagram 255
11.5 
Applying Agile Principles 256
11.6 
Tool Support for Design Class Diagram 257
11.7 Summary 257
11.8 Chapter Review Questions 257
11.9 Exercises 258
Chapter 12
User Interface Design 259
12.1 
What Is User Interface Design? 260
12.2 
Why Is User Interface Design Important? 261
12.3 
Graphical User Interface Widgets 262
12.3.1 
Container Widgets 262
12.3.2 
Input, Output, and Information
Presentation Widgets 263
12.3.3 
Guidelines for Using GUI Widgets 265
12.4 
User Interface Design Process 266
12.4.1 
Case Study: User Interface Design for a
Diagram Editor 266
12.4.2 
Identify Major System Displays 267
12.4.3 
Producing a Draft Layout Design 268
12.4.4 
Specifying Interaction Behavior 270
12.4.5 
Constructing a Prototype 272
12.4.6 
Evaluating the User Interface Design
with Users 273
12.4.7 
User Interface Design Review
Checklist 274
12.5 
Designing User Support Capabilities 275
12.6 
Guidelines for User Interface Design 276
12.7 
Applying Agile Principles 278
12.8 
Tool Support for User Interface Design 279
12.9 Summary 279
12.10 Chapter Review Questions 280
12.11 Exercises 280
Part IV
Modeling and Design of Other Types
of Systems 281
Chapter 13
ModelingandDesignofEvent-DrivenSystems 282
13.1 
What Is Object State Modeling? 283
13.2 
Why Object State Modeling? 284
13.3 
Basic Definitions 284
13.4 
Steps for Object State Modeling 285
13.4.1 
Collecting and Classifying State Behavior
Information 285
13.4.2 
Constructing a Domain Model to Show
the Context 288
x Contents
13.4.4 
Usefulness of the State Transition Table 292
13.4.5 
Converting State Transition Table into
Analysis State Diagram 293
13.4.6 
Converting Analysis State Diagram into
Design State Diagram 296
13.4.7 
State Modeling Review Checklists 297
13.5 
The State Pattern 298
13.5.1 
Conventional Approaches 298
13.5.2 
What Is State Pattern? 299
13.5.3 
Applying State Pattern 300
13.6 
Real-Time Systems Modeling and Design 303
13.6.1 
The Transformational Schema 303
13.6.2 
Timed State Machine 307
13.6.3 
Interrupt Handling 308
13.7 
Applying Agile Principles 309
13.8 
Tool Support for Object State Modeling 310
13.9 Summary 310
13.10 Chapter Review Questions 311
13.11 Exercises 311
Chapter 14
Activity Modeling for Transformational
Systems 314
14.1 
What Is Activity Modeling? 315
14.2 
Why Activity Modeling? 316
14.3 
Activity Modeling: Technical Background 316
14.3.1 
Flowchart 316
14.3.2 
Petri Net 317
14.3.3 
Data Flow Diagram 318
14.4 
Uml Activity Diagram 320
14.5 
Steps for Activity Modeling 321
14.5.1 
Identifying Activities and Workflows 322
14.5.2 
Producing a Preliminary Activity
Diagram 324
14.5.3 
Introducing Branching, Forking, and
Joining 325
14.5.4 
Refining Complex Activities 326
14.5.5 
Activity Modeling Review Checklist 326
14.6 
Relationships to Other Diagrams 327
14.7 
Applying Agile Principles 328
14.8 
Tool Support for Activity Modeling 328
14.9 Summary 329
14.10 Chapter Review Questions 329
14.11 Exercises 329
Chapter 15
ModelingandDesignofRule-BasedSystems 330
15.1 
What Is a Decision Table? 331
15.2 
Usefulness of Decision Table 332
15.3 
Systematic Decision Table Construction 333
15.4 
Progressive Decision Table Construction 334
15.5 
Checking for Desired Properties 335
15.6 
Decision Table Consolidation 336
15.7 
Generating Code from a Decision Table 337
15.8 
Using a Decision Table in Test-Driven
Development 337
15.9 
Decision Trees 337
15.10 
Applying the Interpreter Pattern 338
15.10.1 
Defining a Grammar 340
15.10.2 
Constructing a Class Diagram to
Represent the Grammar 340
15.10.3 
Converting a Conditional Expression
into a Parse Tree 341
15.10.4 
Implementing the Context 342
15.10.5 
Creating and Evaluating Business
Rules 342
15.10.6 
Updating Rules Dynamically 342
15.10.7 
Merits of the Interpreter Pattern 342
15.11 
Machine Learning and AI Application
Development 344
15.11.1 
Brief Introduction to Machine
Learning 344
15.11.2 
A Workflow for Developing AI
Applications 345
15.11.3 
Applying Patterns 348
15.12 Summary 348
15.13 Chapter Review Questions 349
15.14 Exercises 349
Part V
Applying Situation-Specific
Patterns 351
Chapter 16
Applying Patterns to Design a State Diagram
Editor 352
16.1 
Techniques Used by Patterns 353
Contents xi
16.1.1 
Program to an Interface 354
16.1.2 
Use Polymorphism to Provide Behavioral
Variations 354
16.1.3 
Favor Composition over Inheritance 355
16.1.4 
UseDelegationto SupportComposition 356
16.2 
Process for Applying Patterns 356
16.3 
Case Study: State Diagram Editor 358
16.4 
Working with Complex Structures 359
16.4.1 
Representing Recursive Whole-Part
Structures 360
16.4.2 
Accessing Different Data Structures with
Iterator 363
16.4.3 
Choosing Algorithms with Strategy 366
16.4.4 
Applying Type-Dependent Operations
with Visitor 368
16.4.5 
Storing and Restoring Object State with
Memento 372
16.5 
Object Creation for Different Design Objectives 375
16.5.1 
Creating Families of Products 375
16.5.2 
Varying Process and Process Steps 377
16.5.3 
Reusing Objects with Flyweight 380
16.6 
Designing Graphical User Interface and Display 384
16.6.1 
Keeping Track of Editing States 384
16.6.2 
Responding to Editing Events 386
16.6.3 
Converting One Interface to Another 389
16.6.4 
Request Handler Is Unknow in Advance 391
16.6.5 
Enhancing Display Capability with
Decorator 395
16.7 
Applying Agile Principles 398
16.8 Summary 398
16.9 Chapter Review Questions 399
16.10 Exercises 399
16.11 References 399
Chapter 17
Applying Patterns to Design a Persistence
Framework 400
17.1 
Problems with Direct Database Access 401
17.2 
Hiding Persistence Storage with Bridge 401
17.3 
Encapsulating Database Requests as Commands 404
17.4 
Hiding Network Communication with Remote
Proxy 408
17.5 
Sharing Common Code with Template Method 411
17.6 
Retrieving Different Objects with Factory
Method 414
17.7 
Reducing Number of Classes with Prototype 416
17.8 
Applying Agile Principles 421
17.9 Summary 421
17.10 Chapter Review Questions 422
17.11 Exercises 422
Part VI
Implementation and Quality
Assurance 423
Chapter 18
Implementation Considerations 424
18.1 
Coding Standards 424
18.1.1 
What Are Coding Standards? 425
18.1.2 
Why Coding Standards? 429
18.1.3 
Guidelines for Practicing Coding
Standards 429
18.2 
Organizing the Implementation Artifacts 431
18.3 
Generating Code from Design 433
18.3.1 
Implementing Classes and Interfaces 433
18.3.2 
From Sequence Diagram to Method
Code Skeleton 433
18.3.3 
ImplementingAssociationRelationships 434
18.4 
Assigning Implementation Work to Team
Members 435
18.5 
Pair Programming 435
18.6 
Test-Driven Development 436
18.6.1 
Test-Driven Development Workflow 436
18.6.2 
Merits of Test-Driven Development 439
18.6.3 
Potential Problems 439
18.7 
Applying Agile Principles 439
18.8 
Tool Support for Implementation 440
18.9 Summary 440
18.10 Chapter Review Questions 441
18.11 Exercises 441
Chapter 19
Software Quality Assurance 442
19.1 
Benefits of Software Quality Assurance 442
xii Contents
19.2 
Software Quality Attributes 443
19.3 
Quality Measurements and Metrics 445
19.3.1 
Usefulness of Quality Measurements and
Metrics 446
19.3.2 
Conventional Quality Metrics 447
19.3.3 
Reusing Conventional Metrics
for Object-Oriented Software 453
19.3.4 
Object-Oriented Quality Metrics 453
19.4 
Software Verification and Validation
Techniques 457
19.4.1 
Inspection 458
19.4.2 
Walkthrough 459
19.4.3 
Peer Review 459
19.5 
Verification and Validation in the Life Cycle 461
19.6 
Software Quality Assurance Functions 464
19.6.1 
Definition of Processes and
Standards 465
19.6.2 
Quality Management 468
19.6.3 
Process Improvement 469
19.7 
Applying Agile Principles 471
19.8 
Tool Support for SQA 472
19.9 Summary 473
19.10 Chapter Review Questions 473
19.11 Exercises 473
Chapter 20
Software Testing 474
20.1 
What Is Software Testing? 475
20.2 
Why Software Testing? 476
20.3 
Conventional Black-Box Testing 477
20.3.1 
Functional Testing: An Example 477
20.3.2 
Equivalence Partitioning 478
20.3.3 
Boundary Value Analysis 480
20.3.4 
Cause-Effect Analysis 482
20.4 
Conventional White-Box Testing 483
20.4.1 
Basis Path Testing 483
20.4.2 
Cyclomatic Complexity 485
20.4.3 
Flow Graph Test Coverage Criteria 485
20.4.4 
Testing Loops 486
20.4.5 
Data Flow Testing 487
20.4.6 
Coverage Criteria for Data Flow
Testing 488
20.4.7 
Interprocedural Data Flow Testing 489
20.5 
Test Coverage 489
20.6 
A Generic Software Testing Process 490
20.7 
Object-Oriented Software Testing 492
20.7.1 
Use Case–Based Testing 492
20.7.2 
Object State Testing with ClassBench 494
20.7.3 
Testing Class Hierarchy 497
20.7.4 
Testing Exception-Handling Capabilities 497
20.8 
Testing Web Applications 498
20.8.1 
Object-Oriented Model for Web
Application Testing 498
20.8.2 
Static Analysis Using the Object-Oriented
Model 499
20.8.3 
Test Case Generation Using the Object-
Oriented Model 500
20.8.4 
Web Application Testing with HttpUnit 500
20.9 
Testing for Nonfunctional Requirements 500
20.9.1 
Performance and Stress Testings 500
20.9.2 
Testing for Security 501
20.9.3 
Testing User Interface 502
20.10 
Software Testing in the Life Cycle 503
20.11 
Regression Testing 506
20.12 
When to Stop Testing? 506
20.13 
Applying Agile Principles 507
20.14 
Tool Support for Testing 507
20.15 Summary 508
20.16 Chapter Review Questions 508
20.17 Exercises 508
20.18 References 509
Part VII
Maintenance and Configuration
Management 511
Chapter 21
Software Maintenance 512
21.1 
What Is Software Maintenance? 513
21.2 
Factors That Mandate Change 513
21.3 
Lehman’s Laws of System Evolution 514
21.4 
Types of Software Maintenance 515
21.5 
Software Maintenance Process and Activities 516
21.5.1 
Maintenance Process Models 516
21.5.2 
Program Understanding 517
21.5.3 
Change Identification and Analysis 518
21.5.4 
Configuration Change Control 520
Contents xiii
21.5.5 
Change Implementation, Testing, and
Delivery 521
21.6 
Reverse-Engineering 521
21.6.1 
Reverse-Engineering Workflow 521
21.6.2 
Usefulness of Reverse-Engineering 522
21.6.3 
Reverse-Engineering: A Case Study 522
21.7 
Software Reengineering 523
21.7.1 
Objectives of Reengineering 523
21.7.2 
Software Reengineering Process 524
21.7.3 
Software Reengineering: A Case
Study 525
21.8 
Software Evolution 527
21.8.1 
Planning Phase 527
21.8.2 
Iterative Phase 529
21.9 
Patterns for Software Maintenance 532
21.9.1 
Simplifying Client Interface with Facade 532
21.9.2 
Simplifying Component Interaction with
Mediator 533
21.9.3 
Patterns for Software Maintenance 534
21.10 
Applying Agile Principles 535
21.11 
Tool Support for Software Maintenance 536
21.12 Summary 539
21.13 Chapter Review Questions 539
21.14 Exercises 539
Chapter 22
Software Configuration Management 541
22.1 
The Baselines of a Software Life Cycle 542
22.2 
What Is Software Configuration Management? 543
22.3 
Why Software Configuration Management? 544
22.4 
Software Configuration Management
Functions 544
22.4.1 
Software Configuration Identification 545
22.4.2 
Software Configuration Change Control 547
22.4.3 
Software Configuration Auditing 548
22.4.4 
Software Configuration Status
Accounting 549
22.5 
Configuration Management in an Agile Project 549
22.6 
Software Configuration Management Tools 549
22.7 Summary 551
22.8 Chapter Review Questions 551
22.9 Exercises 551
Part VIII
Project Management and
Software Security 553
Chapter 23
Software Project Management 554
23.1 
Project Organization 555
23.1.1 
Project Format 555
23.1.2 
Team Structure 557
23.2 
Effort Estimation Methods 558
23.2.1 
The Function Point Method 559
23.2.2 
The COCOMO II Model 561
23.2.3 
The Delphi Estimation Method 566
23.2.4 
Agile Estimation 567
23.3 
Project Planning and Scheduling 569
23.3.1 
PERT Chart 569
23.3.2 
Gantt Chart and Staff Allocation 571
23.3.3 
Agile Planning 572
23.4 
Risk Management 573
23.4.1 
Risk Identification 574
23.4.2 
Risk Analysis and Prioritizing 575
23.4.3 
Risk Management Planning 577
23.4.4 
Risk Resolution and Monitoring 577
23.5 
Process Improvement 577
23.6 
Applying Agile Principles 579
23.7 
Tool Support for Project Management 580
23.8 Summary 581
23.9 Chapter Review Questions 581
23.10 Exercises 582
Chapter 24
Software Security 584
24.1 
What Is Software Security? 585
24.2 
Security Requirements 585
24.3 
Secure Software Design Principles 586
24.4 
Secure Software Design Patterns 588
24.5 
Seven Best Practices of Software Security 590
24.6 
Risk Analysis with an Attack Tree 591
24.7 
Software Security in the Life Cycle 592
24.7.1 
Security in the Planning Phase 593
xiv Contents
24.8 
Applying Agile Principles 605
24.9 Summary 606
24.10 Chapter Review Questions 606
24.11 Exercises 607
Appendices
A 
Personal Software Process: Estimation,
Planning, and Quality Assurance 608
A.1 
Effort Estimation in PSP 608
A.2 
Software Quality Assurance in PSP 610
A.3 
Design and Quality 610
B 
Java Technologies 611
B.1 
Getting Started with Database Connectivity 611
B.1.1 
What Is Database Connectivity? 611
B.1.2 
Setting Up Data Sources 611
B.1.3 
Accessing Databases from a Program 611
B.2 
Getting Started with Swing 613
B.2.1 
Creating Main Window with JFrame 613
B.2.2 
Using Layout Managers to Arrange Com-
ponents 614
B.2.3 
Processing Button Events with Action
Listener 616
B.2.4 
Implementing Drawing Capabilities 617
B.3 
Getting Started with Java Server Pages 617
B.3.1 
What Are Java Server Pages? 617
B.3.2 
JSP Workflow 617
B.3.3 
Installing a Web Server with a JSP
Container 618
B.3.4 
Using Java Server Pages 618
C 
Software Tools 623
C.1 
NetBeans 623
C.2 
Using JUnit 624
C.3 
Running JUnit in NetBeans 628
C.4 
The Cobertura Coverage Tool 628
C.5 
Using CVS and Subversion in NetBeans 629
C.5.1 
Creating a CVS Remote Repository 629
C.5.2 
Setting Up Subversion in NetBeans 631
C.5.3 
Checking Out Files from a Repository 633
C.5.4 
Editing Sources and Viewing Changes 635
C.5.5 
Viewing File Status 635
C.5.6 
Comparing File Revisions 635
C.5.7 
Merging Changes from Repository 636
C.5.8 
Resolving Conflicts 636
C.5.9 
Updating Local Copies 636
C.5.10 
Committing Local Files to a
Repository 636
C.5.11 
Importing Files into a Repository 637
D 
Project Descriptions 638
D.1 
Car Rental System 638
D.2 
National Trade Show Service System 639
D.3 
Study Abroad Management System 640
D.4 UML Class Diagram Editor 642
E 
Object Constraint Language 644
E.1 
Reserved Words and Operators 644
E.2 
Context and Invariant 644
E.3 
Attribute Initialization 645
E.4 
Operation Specification 645
E.5 
Derivation Rules 646
E.6 
Navigation over Association Relationships 646
E.7 
Navigation to and from Association Classes 646
E.8 
Collection Types 646
E.9 
Collection Operations 647
E.10 
Let Operation 648
Index 649
BACKGROUND
Computers are widely used in all sectors of our society, performing a variety of func-
tions with the application software running on them. As a result, the market for soft-
ware engineers is booming. There is a significant gap between the demand and supply,
especially for graduates with software engineering education.
Many people do not know the scope and usefulness of software engineering, and
the discipline is often misunderstood. Many media outlets deem software engineering
as writing Java programs. Some students think that software engineering includes
everything related to software. Others think that software engineering is drawing
UML diagrams, as the following story illustrates. Years ago, after the first class of a
software engineering course, a student told me, “professor, you know that this will be
an easy course for me because we’ve drawn lots of UML diagrams before.” At the end
of the semester, the student came to me again and said, “professor, I want to tell you
that we worked very hard, but we learned a lot about OO design. It is not just drawing
UML diagrams.” So what is software engineering? As a discipline, it encompasses
research, education, and application of engineering processes, methodologies, quality
assurance, and project management to significantly increase software productivity
and software quality while reducing software cost and time to market. A software pro-
cess describes the phases and what should be done in each phase. It does not specify
(in detail) how to perform the activities in each phase. A modeling language, such
as UML, defines the notations, syntax, and semantics for communicating and docu-
menting analysis and design ideas. UML and the Unified Process (UP) are good and
necessary but not sufficient. This is because how to produce the analysis and design
ideas required to draw meaningful UML diagrams is missing.
MOTIVATION
To fill the gap mentioned above, we need a methodology or a “cook-book.” Unlike a
process, a methodology is a detailed description of the steps and procedures or how to
carry out the activities to the extent that a beginner can follow to produce and deploy
the desired software system. Without a methodology, a beginning software engineer
would have to spend years of on-the-job training to learn design, implementation, and
testing skills.
This book is also motivated by emerging interests in agile processes, design pat-
terns, and test-driven development (TDD). Agile processes emphasize teamwork, de-
sign for change, rapid deployment of small increments of the software system, and
joint development with the customer and users. Design patterns are effective design
Preface
xvi Preface
solutions to common design problems. They promote software reuse and improve
team communication. Patterns also empower less-experienced software engineers to
produce high-quality software because patterns encode software design principles.
TDD advocates testable software, and requires test scripts to be produced before the
implementation so that the latter can be tested immediately and frequently.
As an analogy, consider the development of an amusement park. The overall pro-
cess includes the following phases: planning, public approval, analysis and design, fi-
nancing, construction drawings, construction, procurement of equipment, installation of
equipment, preopening, and grand opening. However, knowing the overall process is not
enough. The development team must know how to perform the activities of the phases.
For example, the planning activities include development of initial concept, feasibility
study, and master plan generation. The theme park team must know how to perform these
activities. The analysis and design activities include “requirements acquisition” from stake-
holders, site investigation, design of park layout, design of theming for different areas of the
park, creating models to study the layout design and theming, and producing the master
design. Again, the theme park team must know how to perform these activities to produce
the master design. Unlike a process that describes the phases of activities, a methodology
details the steps and procedures or how to perform the activities.
The development of an amusement park is a multiyear project and costs billions
of dollars. The investor wants the park to generate revenue as early as possible, but
with the above process, the investor has to wait until the entire park is completed.
Once the master design is finalized, it cannot be modified easily due to the restrictions
imposed by the conventional process. If the park does not meet the expectations of the
stakeholders, then changes are costly once the park is completed.
Agile processes are aimed to solve these problems. With an agile process, a list
of preliminary theme park requirements is acquired quickly and allowed to evolve
during the development process. The amusement and entertainment facilities are
then derived from the requirements and carefully grouped into clusters of facilities.
A plan to develop and deploy the clusters in relatively short periods of time is pro-
duced, that is, rapid deployment of small increments. Thus, instead of a finalized
master design, the development process designs and deploys one cluster at a time. As
the clusters of facilities are deployed and operational, feedback is sought and changes
to the requirements, the development plan, budget, and schedule are worked out with
the stakeholders—that is, joint development. In addition, the application of architec-
tural design patterns improves quality and ability of the park to adapt to changing
needs— that is, design for change. Teamwork is emphasized because effective col-
laboration and coordination between the teams and team members ensure that the
facilities will be developed and deployed timely and seamlessly. The agile process
has a number of merits. The investor can reap the benefits much earlier because the
facilities are operational as early as desired and feasible. Since a small number of the
facilities are developed and deployed at a time, errors can be corrected and changes
can be made more easily.
In summary, this text is centered around an agile unified methodology that inte-
grates UML, design patterns, and TDD, among others. The methodology presented
in this book is called a “unified methodology” because it uses UML as the modeling
language and it follows an agile unified process. It does not mean to unify any other
Preface xvii
AUDIENCES
This book is for students majoring in computer science, software engineering or
­
information systems, as well as software development professionals. In particular, it
is ­
intended to be used as the primary material for upper-division undergraduate and
­
introductory graduate courses and professional training courses in the software ­
industry.
This book’s material evolved over the last two decades from courses taught at universi-
ties and companies domestically and internationally, as well as from applications of the
material to industry-sponsored projects and projects conducted by software engineers in
various companies. These allowed the author to observe how students and software engi-
neers applied UP, UML, design patterns, and TDD, and the difficulties they faced. Their
feedback led to the development of the Agile Unified Methodology (AUM) presented in
this book and the continual improvement of the material.
The book describes AUM in detail to facilitate students to learn and develop anal-
ysis and design abilities. In particular, each analysis or design activity is decomposed
into a number of steps, and how to perform each step is described in detail. This treat-
ment is intended to facilitate students learning how to perform analysis and design.
Once acquired the abilities, one may skip some or most of the steps.
ORGANIZATION
The book has 24 chapters, divided into eight parts:
Part I. Introduction and System Engineering. This part consists of the first three
chapters. It provides an overview of the software life-cycle activities. In particular,
it covers software process models, the notion of a methodology, the difference
between a process and a methodology, and system engineering.
Part II. Analysis and Architectural Design. This part presents the planning phase activ-
ities. It includes requirements elicitation, domain modeling, and architectural design.
Part III. Modeling and Design of Interactive Systems. This part deals with the
modeling and design of interactive systems. It consists of six chapters. These
chapters present how to identify use cases from the requirements, how to model
and design actor–system interaction and object interaction behavior, how to ap-
ply responsibility assignment patterns, how to derive a design class diagram to
serve as the design blueprint, and how to design the user interface.
Part IV. Modeling and Design of Other Types of Systems. This part consists of
three chapters; each presents the modeling and design of one type of system.
In particular, Chapter 13 presents the modeling and design of event-driven sys-
tems. Chapter 14 presents the modeling and design of transformational systems.
Chapter 15 presents the modeling and design of business rule-based systems.
Part V. Applying Situation-Specific Patterns. This part consists of two chapters
and presents how to apply situation-specific patterns. A case study, that is, the
design of a state diagram editor, is used to help understand the process.
Part VI. Implementation and Quality Assurance. This part consists of three chap-
ters. They present implementation considerations, software quality assurance
concepts and activities, and software testing.
xviii Preface
Part VII. Maintenance and Configuration Management. This part includes
two chapters and covers software maintenance and software configuration
management.
Part VIII. Project Management and Software Security. The last part of the book
consists of the last two chapters. One of the chapters presents software project
management. The other chapter covers software security, that is, life-cycle activi-
ties concerning the modeling and design of secure software systems.
The material can satisfy the needs of several software engineering courses. For
example,
1. Part I through Part III and selected topics from Part VI to Part VIII are a good
combination for an Object-Oriented Software Engineering (OOSE) course or an
Introduction to Software Engineering course. This could be a junior- or senior-
level undergraduate course as well as an introductory graduate-level course.
2. Part II, Part V, and selected sections from the other chapters could form a Soft-
ware Design Patterns course. It is recommended that the OOSE course described
above be a prerequisite for this course. However, many international students
may not have taken the OOSE course. In this case, a review of the methodology
presented in Part II and Part III is recommended. The review of the methodology
provides the framework for applying patterns. The review may take two to four
weeks.
3. Part VI and Part VII could be taught in various ways. They could form one course—
Quality Assurance, Testing, and Maintenance. They could be taught as two courses—
Software Quality Assurance, and Software Testing and Maintenance.
4. Chapters 13–15, 19, and 20 plus selected patterns from the other chapters may
form a course on modeling, design, verification, and validation of complex systems.
5. Part I, Parts VI–VIII, and selected chapters from the other parts may form a Soft-
ware Project Management course.
Various teaching supplements can be found at http://www.mhhe.com/kung. These in-
clude PowerPoint teaching slides, pop quiz and test generation software, databases of
test questions, sample course descriptions, syllabi, and a solution manual. Instructors
who have not taught the courses may find these helpful in reducing preparation time
and effort.
Preface xix
ACKNOWLEDGMENTS
I would like to thank my numerous students who constantly stimulate me with their
questions, feedback, enthusiasm, and effort to apply AUM to real-world projects. They
provided valuable improvement suggestions. Many continue to practice AUM in in-
dustry after graduation and share with me their valuable experiences. I also want to
thank the reviewers and numerous instructors for their comments and suggestions.
These have significantly improved the organization, presentation, and many other as-
pects of the book. I am thankful for the opportunities to teach on-site training courses
and for-credit courses for various companies. These allow me to interact with many
software developers and learn from them. Some companies let the developers apply
AUM and patterns to in-house or product-development projects. All of these proj-
ects generated very positive feedback including high-quality design documentation
and drastic reduction in defect rates. I want to thank the managements of various
companies for their constant support to industry-university collaboration and the
­
opportunity for me to learn from practice.
This page intentionally left blank
Introduction and System
Engineering
Chapter 1 Introduction 2
Chapter 2 Software Process and Methodology 10
Chapter 3 System Engineering 43
p a r t I
2
1
Introduction
Key Takeaway Points
•
•Software engineering aims to significantly improve software productivity
and software quality while reducing software costs and time to market.
•Software engineering consists of three tracks of interweaving life-cycle activities:
software development, software quality assurance, and software project man-
agement activities.
Computers are used everywhere in our society. It is difficult to find a hospital, school,
retail shop, bank, factory, or any other organization that does not rely on computers.
Our cell phones, cars, and televisions are also based on computer-powered platforms.
The driving force behind the expanding use of computers is the market economy.
However, it is the software that makes the computers work in the ways we want. Soft-
ware or computer programs consist of thousands or millions of instructions that di-
rect the computer to perform complex calculations and control the operations of hard-
ware devices. The demand for computer software has been rapidly increasing during
the last several decades. This trend is expected to continue for the foreseeable future.
The proliferation of computer applications creates a huge demand for application
software developers. According to the Bureau of Labor Statistics (BLS), application
software developer was one of the 30 fastest-growing occupations in America (bls.
gov/emp/tables/fastest-growing-occupations.htm). The number of positions was pro-
jected to grow from 1,469,200 in 2019 to 1,789,200 in 2029, an increase of 316,000,
or 21.50%. The median annual wage for an application software developer in
May 2019 was $110,140, much higher than the median annual wage for all occupa-
tions ($41,950). Among the 10 computer and IT occupations surveyed by the BLS,
only application software developer and information security analyst enter into the
30 fastest-growing list. Its median pay was also much higher than the median pay of
$91,250 for the 10 computer and IT occupations surveyed by the BLS.
There are two popular misconceptions. One equates application software de-
velopment with computer programming. The other equates an application software
developer with a computer programmer. However, according to the BLS, software de-
velopers create the applications or systems that run on a computer or another device.
Chapter
2
Chapter 1 Introduction 3
Computer programmers write and test code that allows computer applications and
software programs to function properly. The BLS survey also showed that the median
pay for a computer programmer in May 2019 was $89,190, which was lower than the
median pay for computer and IT occupations and much lower than the median pay for
an application software developer.
Unlike a computer programmer, an application software developer is required to
identify and formulate feasible and cost-effective solutions to solve large, complex re-
al-world problems and design software to implement such solutions. The solutions and
the software must take into account potential impact to public health, safety, security,
and welfare as well as cultural, social, and environmental aspects (abet.org). To be
able to perform the work required of an application software developer, an education
in software engineering is highly desired.
1.1 WHAT IS SOFTWARE ENGINEERING?
Software systems are complex intellectual products. Software development must en-
sure that the software system meets the needs of the intended application, the budget
is not overrun, and the system is delivered on time. To accomplish these goals, the
term “software engineering” was proposed at a NATO conference in 1968 to advocate
the need for an engineering approach to software production. Since then, software
engineering has become a discipline and made remarkable progress. The efforts that
take place in the field lead to the following:
Definition 1.1 Software engineering as a discipline is focused on the research,
education, and practice of engineering processes, methods, and techniques to
significantly increase software productivity and software quality while reducing
software costs and time to market.
This definition includes several important points. First, the overall objective of
software engineering is significantly increasing software productivity (P) and quality
(Q) while reducing software production and operating costs (C) as well as time to
market (T). These are abbreviated as PQCT in this book. In other words, significantly
improving PQCT means producing higher-quality software more quickly, efficiently,
and cost-effectively. These will eventually contribute to the improvement of our lives.
Second, research, education, and practice of software engineering processes, meth-
ods, and techniques are the means to significantly improve PQCT.
Software development involves three tracks of interweaving activities, as Figure 1.1
exhibits. These activities take place simultaneously throughout the software life cycle:
1. Software development activities.
2. Software quality assurance activities.
3. Software project management activities.
Software development activities are a set of activities performed to transform
an initial system concept into a software system running in the target environment.
Like many engineering projects, software development activities include software
4 Part I Introduction and System Engineering
specification, software design, implementation, testing, deployment, and mainte-
nance. Software specification determines what the customer and users want. These
are specified as requirements or capabilities that the software system must deliver.
Software design produces a software solution to realize the software requirements.
In particular, it determines the overall software structure, called the software archi-
tecture, of the software system. The architecture depicts the major system compo-
nents and how they relate, interface, and interact with each other. Software design
also defines the user interfaces as well as high-level algorithms for the system com-
ponents. During implementation and testing, the design is converted into computer
programs, which are tested to ensure that they work as the customer and users
expect. The software system is then installed in the target environment, tested and
modified to ensure that it works properly. During the maintenance phase, the soft-
ware system is continually modified to correct errors and enhance functionality
until it is abandoned or replaced.
Software quality assurance (QA) activities are carried out alongside the de-
velopment activities. QA activities ensure that the development activities are car-
ried out correctly; the required artifacts, such as software requirements document
(SRD) and software design document (SDD), are produced and conform to quality
standards; and the software system will fulfill the requirements. These are accom-
plished through requirements review, design review, code review and inspection, as
well as testing.
Software project management activities ensure that the software system under
development will be delivered on time and within budget constraint. One important
activity of project management is project planning. It takes place at the beginning of
a project, immediately after the requirements for the software system are determined.
In particular, effort and time required to perform the three tracks of activities for the
project are estimated. A schedule of activities is produced to guide the project. During
the development and deployment process, project management is responsible for con-
tinuous monitoring of project progress and costs, and executing necessary actions to
adapt the project to emerging situations.
FIGURE 1.1 Three tracks of life-cycle activities
Software quality assurance activities
Software project management activities
Cost  time
to market
Quality
Productivity
Software development activities
Random documents with unrelated
content Scribd suggests to you:
Everything! For emphasis Mr. Jordon clapped two fat hands down
upon two fat knees. But he's as solid as a rock. If we were dealing
with the real owners individually, it would be different. They're
anxious to sell and they're all short on nerve. It's him that holds
them together and keeps them braced up.
I suppose you've tried to get them to withdraw their land from his
control?
I tried that long ago. But it wouldn't work. He's promised them a
big price, and he's made them believe they'll get it.
Then you think as you say here—he laid his hand upon the letter
—that we'd better pay him what he demands and close the deal?
I certainly do. We've got to have that land, and to get it we've got
to pay his price. He knows that and he won't come down a dollar.
Since we've got to pay the price in the end, I'm for paying it right
now and not losing any more time in launching the company before
the public.
Your reasoning is sound. But you're aware, of course, that the
difference between his price and the rate we've been paying is
considerably over fifty thousand?
Yes, but we're not going to lose money on it even at that. Mr.
Jordon nodded knowingly. Besides, when we come to counting up
the profits on the whole deal, we'll never miss that fifty thousand.
Fifty thousand dollars, Mr. Jordon, Mr. Chambers said quietly, is
fifty thousand dollars.
Mr. Jordon blushed as though caught in an ill deed. Yes—yes—of
course, he stammered. We don't want to lose it, but how are we
going to help it?
Mr. Chambers did not answer—gave no sign of having noticed the
other's embarrassment. Suppose we have a meeting here to-
morrow afternoon, and try again to get him to lower his price.
Very well—I'll write him to be here. But I warn you that he'll not
come down a cent.
Then I suppose we'll have to settle on some other basis. There
was a moment's pause. By the way, who is this Mr. Rogers?
Never heard of him till I ran across him in this deal. Nobody seems
to know much about him. He's just a little two-for-a-cent agent that
was cute enough to see this chance and grab it.
Mr. Chambers said no more, and Mr. Jordon, seeing that use for
himself was over, departed.
Mr. Chambers had an instinct for loss that was like a composer's ear
for false notes. In his big financial productions he detected a
possible loss instantly; it pained him as a discord, and he at once set
about correcting it. The New Jersey Home Company was but one of
the many coexisting schemes that had sprung from his creative
brain, and the fifty thousand dollars was a beggar's penny compared
to the sums that floated through his mind. But the fifty thousand
dollars was a loss, a flaw, and he could not pass it by.
Mr. Chambers had the theory, proved by long practice, that many
men have something hidden away in their lives which if discovered
and properly used, or some vulnerable business spot which if struck,
will so disable them that they cannot stand up against your plans.
This theory, applied, had turned for him many a hopeless struggle
into a quiet, easy victory—so that it had become his practice, when
dealing with a man whose past life and whose present business
relations he did not know, to acquaint himself with all that could be
uncovered.
The moment Mr. Jordon had gone Mr. Chambers wrote a line,
requesting full information about Rogers, and enclosed it in an
envelope which he addressed to the man who usually served him in
such confidential matters. He touched a button and handed the note
to his secretary. See that Mr. Hawkins gets this at once, he said.
That afternoon a man, whom David afterward remembered as a
diamond ring, a diamond shirt-stud and a heavy gold watch-chain,
walked into the office of John Rogers.
Is this Mr. Rogers? he asked of David, who was alone in the room.
No. Aldrich is my name. But I represent him. Can I do anything for
you?
I'd like to see him if I can. I'm thinking of investing in some real
estate in this neighbourhood, and I've been looking at a couple of
houses that I was told he was agent for.
I'll call him—wait a minute.
David went into the living room, and at once returned. Mr. Rogers
will be right in, he said.
Thanks. The man turned his pinkish face about the room. Cosy
little office you've got, for this part of town, he remarked, with an
air of speaking pleasantries to kill time.
Yes—we think so.
How long's Mr. Rogers been interested in real estate in this
neighbourhood?
I've been with him for less than a year, so I don't exactly know. But
I believe about eight or nine years.
In the same business before then?
But the entrance of Rogers at that instant saved David a reply. The
caller, who had sat down, rose and held out his hand.
Is this Mr. Rogers? Harris is my name—William Harris.
Rogers, as he came up, laid hold of the back of a chair. He did not
see Mr. Harris's hand.
I'm glad to meet you, he returned in his low voice. Won't you sit
down?
The three took chairs, and the next hour was filled with talk about
the houses Mr. Harris had examined. Mr. Harris was very eager for
the buildings, and David became excited at the prospect of the
agent's commission that would come from the sale. But Rogers was
quiet and reserved as always—answering all questions fully, save a
few casual personal queries which he evaded. When Mr. Harris went
away he said in so many words that the deal was as good as settled,
except for a small difference in the price which would bother them
little.
The instant the office door closed upon Mr. Harris David turned
eagerly to Rogers, who was sitting motionless in his chair.
Won't that be a windfall though if he takes those houses! he cried.
Your commission will be at least two thousand dollars!
There was no tinge of enthusiasm in Rogers's pale cheeks. He did
not speak at once, and when he did he ignored David's
exclamations.
Did you notice, Aldrich, he said in a strained voice, that I avoided
taking his hand when he offered it at first and again when we
parted?
No. Why?
I was afraid.
Afraid? repeated David, puzzled. What of?
I shook hands with Bill Halpin—and you know what he found out.
David stepped nearer to Rogers, and saw in his eyes the look of
hunted fear.
I don't understand, he said slowly.
Mr. Harris may be a bona-fide dealer in real estate—but fifteen
years ago he was one of the cleverest detectives on the New York
police force. I recognised him the instant I saw him. He helped
arrest me once.
David sank slowly to a chair. You don't say so! he ejaculated. He
stared for several moments at Rogers's thin face, on which he could
now see the exhaustion of the straining interview. Do you think he
can possibly be on your trail?—and if so, what for?
What for, I don't know. But didn't you notice how he was constantly
studying me?—how he slipped in a question about what I used to
do?—how he tried to learn the names of some of my friends, whom
he might quiz about me? He's clever.
But do you think he found out anything?
I don't think he did. I was watching him closer than he was
watching me, for any least sign of recognition. I didn't see any. But
you know I can't help fearing, Aldrich! I can't help fearing!
David tried to drive the strained, hunted look from Rogers's face by
saying that there was hardly any possibility of his identity being
discovered, and no apparent motive for it being used against him
even if found out. David succeeded in bringing back his own
confidence, and at length drew from Rogers the admission, Well,
maybe you're right.
CHAPTER XIII
THE END OF THE DEAL
The next morning when David glanced at the envelopes the postman
had handed him he saw that one letter was from Mr. Jordon. He was
ripping it open eagerly when he noticed the envelope beneath it
bore the handwriting of Helen Chambers. He dropped Jordon's letter
and excitedly opened the other. Its cordiality set him afire. She was
just back in town for the winter, she wrote, and the following
afternoon she would be at St. Christopher's. Would he care to come
to meet her at about four for an hour's walk?
Would he! He had not seen her since the early summer—and how he
had hungered to see her, speak with her, feel her near presence! He
walked across the office, in which he was alone, half a dozen times
before he took up the letter of Mr. Jordon. Mr. Jordon asked that Mr.
Rogers and his associates be at the office of Mr. Chambers at three
o'clock that afternoon. He hoped that they would be able to reach
an agreement on terms and close the matter up.
David, the letter in his hand, was rushing into the living room to
read the news to Rogers, when he saw, through the open hall-door,
the ample form of the Mayor passing out. He captured the Mayor
and led him in to the side of the couch on which Rogers was lying.
Listen to this, will you! David cried, and excitedly read the letter.
Did you take in that sentence at the last?—'I hope that we will at
length be able to agree on terms.' Now what do you think that
means?
It means, said the Mayor, explosively, that they've woke up and
see that you ain't never goin' to come down to them, they've got to
come up to you! It means that you've won!
Rogers's sunken eyes flamed, and he stood up. It seems so! he
breathed.
They all seized hands. This don't mean much to me personally, for
I've only got a little in it, said the Mayor, but I certainly have the
glad feeling on your account, Rogers. You can clear right out to a
land where the air was made for breathin' purposes. Here in New
York the air ain't good for much except fillin' in lots. Yes sir, Rogers,
I'm certainly glad!
They talked on excitedly, as men do who are but a step from
success. David was glad, too, on Rogers's account, for he saw afresh
how thinly disease had sculptured his cheeks and nose, and how
deeply it had chiselled about the eyeballs, and to what a slender
shaft it had carved the neck. Also he was ablaze with gladness on
his own account. Success, but a few hours off, meant the partial
clearing of his name. His mind exulted over the details of the scene
to-morrow afternoon when he would tell Helen Chambers he had the
means to pay his debt to St. Christopher's.
In the course of the morning Mr. Harris dropped in. He asked for
Rogers, but David said that Rogers was out. For half an hour the
detective talked about the houses in which he was interested, now
and then slipping in a guileless question about Rogers. But David
was on his guard; he matched his wits against Mr. Harris's, and
when at length the detective went away David was certain he was
no wiser than when he came.
At half past two the Mayor thrust his head into the office and, seeing
Kate was there, beckoned David into the hall. The Mayor had never
before been at elbows with a real money king, so for him the
meeting was a new experience; and despite his ire toward Mr.
Chambers he was prompted to make his appearance before royalty
in fitting court costume.
D'you think I look all right? he asked, anxiously.
David surveyed the Mayor's bulky figure. There was a silk hat with
not a single hair in disarray, a long light overcoat, a pair of fresh
gloves that were staringly tan, and the most gorgeous vest in the
Mayor's closet. David could have wished that the whole scheme of
dress had been pitched in a lower key, but he criticised nothing but
the vest.
If that's all you kick about, then I'm O. K., the Mayor said
complacently, smoothing a yellow glove over the silken pinks.
You've give me some good points, but when it comes to vests,
friend—well, you ain't got no real taste for vests.
He walked to the door and looked out. There comes our carriage,
he called. Get Rogers and we'll be movin'.
Carriage! cried David.
Sure. D'you think we're goin' to let Chambers and his bunch think
we're a lot o' cheapskates? Not much. We're goin' to do this thing
proper.
But Mr. Chambers himself uses the street cars.
Well, he can afford to, the Mayor returned with equanimity. We
can't.
When David walked with Rogers to the carriage he would not have
been surprised had the Mayor handed them for their lapels a bunch
of roses knotted with ribbon. They settled back against the cushions
and suspense silenced them—and with hardly a word they rumbled
over to Broadway, down into Wall Street and up before Mr.
Chambers's office.
As they stepped from the carriage, Rogers's thin fingers gripped
David's hand like taut cords. Clasp, face, and the feverish fire in his
eyes told David how great was the strain Rogers bore. This was the
climax of his life.
David returned the pressure of his hand. It'll be all right, he
whispered reassuringly.
They went up the broad steps into a tiled hallway, and turned to
their right to the entrance of the private banking house of Alexander
Chambers  Co. An erect, liveried negro, whose stiffly formal
manners suggested a spring within him, admitted them into a great
light room, in which, behind a partition of glass and bronze grating
that half reached the ceiling, sat scores of men working swiftly
without appearance of speed. A word and a lifted finger from the
black automaton directed them to the far end of the room. Here a
man with the bearing of a statesman, Mr. Chambers's doorkeeper,
bowed them into three leather-seated chairs, and carried their
names into Mr. Chambers's private secretary.
They did not speak; the nearness of the climax awed even the
Mayor. And to add to the suspense throbbing within him, David
began to wonder how he would be greeted by Mr. Chambers, whom
he had not seen since his ante-prison days.
Almost at once the doorkeeper reappeared, and with the subdued
air that characterised the place, led them into a large office. The
keen-faced secretary rose from a desk, ushered them through a door
and into another office. At the great desk in the center of the room
were Mr. Chambers and Mr. Jordon.
The two men rose, and David's wonder as to how Mr. Chambers
would receive him was at once relieved. An inclination of the head
and a quiet, Glad to see you, Mr. Aldrich—that was all; nothing in
his impassive face and manner to suggest that he remembered the
prison-gap in David's life.
The Mayor had announced during the carriage drive that if
Chambers holds out his hand to me to be shook, I won't see nothin'
but the ceilin'. But there was no opportunity thus to humiliate Mr.
Chambers, for his response to the introduction was but a brief nod.
So the Mayor could only declare his independence by opening the
front of his overcoat, like a pair of doors, upon his brilliant waistcoat,
and by gazing into Mr. Chambers's face with aggressive hauteur.
Mr. Jordon shook hands all around. Well, I hope we'll settle things
up to-day, he said. As to how things were going to be settled, he
had not the slightest doubt. He was certain the afternoon would
force Mr. Chambers to his way of thinking. A few minutes before Mr.
Chambers had asked his opinion as to the result of the conference,
and he had said, They'll not give in; we've got to pay what they
ask. Mr. Chambers had said nothing—which had not surprised him,
for he knew it was instinctive with Mr. Chambers, even in such small
matters as this, to let the completed act announce his purpose.
They all sat down, David, Rogers, and the Mayor in three leather-
bottomed chairs which stood in front and to the right of Mr.
Chambers's desk. To the left, in a row, were half a dozen other
chairs. Mr. Chambers leaned slightly forward and folded his hands on
his desk's plate-glass top.
Let us go straight to the point of this matter, he began, addressing
Rogers, who sat between David and the Mayor. Mr. Jordon tells me
you refuse to consider any sum less than one hundred and fifty
thousand dollars for the land you control. Is that correct?
It is.
David's shoulder against Rogers told him that Rogers's lean frame
was as rigid as the chair that held it.
This then is your ultimatum?
It is.
Just as I told you, nodded Mr. Jordon, who was at Mr. Chambers's
elbow.
Mr. Chambers pressed a button beneath the desk and the door
opened before his secretary.
Please show in the others, he requested quietly.
The secretary bowed and the door closed.
The others? breathed Rogers; and he and David and the Mayor
looked at each other.
The others! exclaimed Mr. Jordon. What others?
Mr. Chambers sat silent, with unchanged face. The next instant the
door, opening, answered the question. Into the room hesitantly filed
the five owners of the land Rogers controlled. Rogers, David, and
the Mayor, and also Mr. Jordon, rose in astonishment. The five
stopped and stared at Rogers's party; plainly the surprise was
mutual.
Mr. Chambers, remaining in his seat, motioned the new-comers to
the chairs at the left of his desk. Be seated, gentlemen.
What's this mean? David asked, catching Rogers's arm.
Rogers turned toward him, and for an instant David felt he was
gazing into the abyss of fear. Then the arm he held tightened and
Rogers looked toward his five clients and nodded.
Good afternoon. I'm glad to see you, he said in an even tone.
They sat down again, and Rogers's eyes fastened on the finely
wrinkled face of Mr. Chambers—as did every other pair of eyes in the
room. They vainly strove to read the purpose behind that inscrutable
countenance. The purpose was simple enough. By bringing together
the two elements of Rogers's crowd, each ignorant that the other
was to be present, unprepared with common replies, he had thought
he might possibly play them against each other in a way to bring
them to his price; and if not, he would at least have them all
together, and so be able to make an immediate settlement upon
their terms. He had had a faint hope that Mr. Hawkins might discover
something significant, but a note from the detective during the
morning had contained no single new fact.
Mr. Chambers did not give the surprised group time to readjust itself.
I have called together all parties interested in this transaction in
order that we may more effectively reach an agreement, and in the
hope that we may obviate the necessity for future meetings.
He fastened his gray eyes upon the five owners, who were looking
very much at a loss, and spoke coldly, calmly, as though his decision
were unchangeable and his words immutable facts. First I desire to
say that you gentlemen and your agent have a very inflated idea of
the value of your property. The price is one we cannot, and will not,
pay. If you want to take what we offer, very well. If not, I assure you
that we shall run no streets, water-mains, sewers or gas pipes near
your tract. We shall leave the neighbourhood of your property
entirely unimproved. You will recall that our land lies between yours
and the car line; we shall forbid anybody living on your land crossing
our land. Nobody else is going to buy your land under these
conditions. You can sell it only to us.
The owners, struck while off guard, were dazed; and David, Rogers,
and the Mayor, who had expected the exact opposite of this talk,
were completely taken back.
The cold, dominant voice went on. Such being the situation, does it
not seem better to accept our price, which is a fair price, than to
have your land made unsaleable, to have your investment tied up for
years to come?
He centered his personality upon the weakest of the five. I'm sure
you think so, do you not?
The man blinked—then nodded his head.
But— began Rogers.
And you, I'm sure you think so, Mr. Chambers demanded of
another owner.
Ye-e-s, said the man.
This was child's play to Mr. Chambers, who had browbeaten and
overpowered even the directors of great corporations. He tried to
rush his plan through, before the men could recover.
It is plain you are all agreed. You see how your clients stand, Mr.
Rogers. It certainly seems the only course to settle this matter at
once upon the basis of our offer, which seems to them fair and just.
Rogers saw that awe of the great financier and his intimidating
statments had fairly stampeded his clients. Fighting down the
momentary sense of defeat, and not heeding Mr. Chambers's words
to him, he fixed his great burning eyes on the five men.
Gentlemen! he said desperately. They shifted their gaze from Mr.
Chambers to him. Gentlemen, I want to assure you that if we hold
out we will get our own price. I happen to know they've just bought
a piece of ground beyond ours; without ours it will be worthless to
them. They've got to have our land! You understand? Simply got to
have it!
The Mayor lifted an emphatic yellow hand toward the owners. Of
course they have! And don't you listen to no bluffin'.
Rogers continued to talk for several minutes; and gradually
confidence and determination came into the manner of the five. At
the end Rogers turned to Mr. Chambers.
We shall stand out for our price, he said firmly.
Mr. Chambers had wrecked railroads in order to buy them in at a
lower rate, but the similar procedure which he had threatened did
not seem worth while here. He had tried his plan, which he had
known had only a chance of success, and it had failed. There was
but only one thing to do—to yield.
He was thoughtful for several moments. If we should refuse your
terms, we of course in the end would buy your land at our own
price. But it occurs to me that the bother and extra cost of improving
the land and opening it up at a later date, might be as much as the
difference between your price and ours. What do you think, Mr.
Jordon?
There's much in what you say, returned the general manager,
guardedly.
Rogers, David, and the Mayor exchanged quick, triumphant glances.
They had won.
Mr. Chambers again relapsed into his appearance of thoughtfulness,
and they all sat waiting for him to speak. David laid his hand on
Rogers's and pressed it exultantly.
While Mr. Chambers still sat thus, the office door opened and his
secretary apologetically tiptoed across the room with a letter in his
hand.
I told Mr. Hawkins you were engaged, but he insisted that this was
important, the secretary said to Mr. Chambers, and withdrew.
Mr. Chambers read the note, thought a moment, slowly folded the
sheet, then raised his eyes.
Before going further, there is one point—of no importance, I dare
say it will prove to be—that it might be well for us to touch upon.
He centered his calm gaze upon the five owners. Since you have
intrusted Mr. Rogers with the management of your property I take it
that he has your fullest confidence?
Ye-es, said one hesitatingly, and the others followed with the same
word.
Your confidence, of course, is founded on thorough acquaintance?
David glanced from the impassive Mr. Chambers to Rogers. The
mask of control had fallen from his face. He was leaning forward, his
whole being at pause, his face a climax of fear and suspense.
A succession of slow Yes-es came from the owners.
Then of course, Mr. Chambers went on in his composed voice, you
are perfectly aware that Mr. Rogers is a man with a long criminal
career.
A shiver ran through Rogers; he stiffened, grew yet whiter. There
was a moment of blankest silence. Then the Mayor sprang up, his
face purpling.
It's an infernal lie! he shouted.
Consternation struggled on the faces of the five; they looked from
the rigid, white figure of Rogers to the calm face of Mr. Chambers.
It isn't so, declared one tremulously.
We will leave the question to Mr. Rogers, said Mr. Chambers's
unexcitable voice, and he pivoted in his chair so that his steady eyes
pointed upon Rogers. If Mr. Rogers is not 'Red Thorpe,' the one
time notorious safe-blower, with scores of burglaries and three terms
in the penitentiary against him, let him say so. However, before he
denies it, I shall tell him that I have all the police data necessary for
his identification. Now, Mr. Rogers.
Their gaze on Rogers's face, all waited for him to speak—Jordon,
astounded, the five pale with the fear of loss, the Mayor glowering,
David with a sense that supreme ruin was crushing upon them.
At length Rogers's lips moved. It is true, he whispered.
What if it is? roared the Mayor at Mr. Chambers. There's nothin'
agin him now!
I'm making no charges against him, returned Mr. Chambers. This
is merely some information it seemed his clients might be interested
in having.
All eyes again turned upon Rogers. He came slowly to his feet,
walked to Mr. Chambers's desk, leaned his hands upon it and
directed his large burning eyes down into Mr. Chambers's face.
I have done many bad things, yes, he said in a voice, low, flame-
hot, but nothing as bad as you have just done. You have stolen
more this minute than I have stolen in my lifetime.
He held his eyes, blazing with accusation, upon Mr. Chambers's
imperturbable face for several moments, then looked about on the
five owners. There was a chance, a bare chance, they might not turn
against him.
Yes, I am Red Thorpe, he said in a vibrant voice that became more
and more appealing with every word. I knew it would be found out
—some day. There are some things I always told myself I'd say to
the world when this day came. But to you I want to say only this:
For ten years I've been honesty itself. I've been honest with you—
you know it. If you stand by me, I'll do everything I've promised.
He stood rigid, awaiting their verdict. There was a strained silence.
The five looked dazedly at Rogers, at one another, completely at a
loss.
If the gentlemen desire to entrust their affairs to a most dangerous
criminal, one who might defraud them of everything, that is their
privilege, put in Mr. Chambers quietly.
Their bewilderment was gone; Mr. Chambers's words had roused
their property instinct. A murmuring rose among them.
David and the Mayor sprang up, but Rogers raised a hand and they
remained beside their chairs. A flame began to burn in his white
cheeks, in his deep eyes.
I knew this day was coming, he said in a low voice, that had a wild
bitter ring of challenge. Instead of you, you weaklings—he looked
at the five—and you, you mere soulless Acquisition—his eyes
blazed at Mr. Chambers—I wish I had the world before me. I'd like
to tell it what a vast fool it is in its treatment of such as me—how
eyeless and brainless and soulless! Oh, what a fool!... But the
world's not here.
He was silent for a moment. And why am I at an end?—why? His
answer rang through the room with a passionate resentment, with
an agony of loss. Because the world did not care to step in and
point the right way to me. To have saved me would have been so
easy! I was worth saving! I had brains—there was a man in me.
Whose fault is it that I am now at the end?—a miserable remnant of
a man! The world's. I was robbed of my chance in life—robbed, yes
sir, robbed!—and I could have made it a splendid life! Ah, how I've
wanted to make it a splendid life. And the world—the world that
robbed me!—that world calls me criminal. And I must pay the
penalty, and the penalty is—what you see! Oh, my God!
For ten years Rogers had cherished the purpose of accusing the
world on the day of his exposure—but now his loss was so
overwhelming, speech to these people was so utterly useless,
strength was so little, that he could say no more—could only, leaning
against the desk, gaze in hatred and despair at Mr. Chambers and
the owners. The faces of the five were pale and blank. There was a
trace of sympathy in Mr. Jordon's face, and a momentary change in
Mr. Chambers's that indicated—who knows what?
David sprang to Mr. Chambers's desk, his soul on fire.
This, sir, is a damned inhuman outrage! he flung down into the
older man's face.
It might also have been of interest to Mr. Rogers's clients, Mr.
Chambers returned calmly, to have known the record of Mr.
Rogers's associate.
David's wrath had no time to fashion a retort, for the Mayor, at his
side, hammered the desk with a great yellow-gloved fist. That's
what it is! he shouted. It's a low, dirty, murdering trick!
I merely acquainted his clients with his record—which they have a
right to know.
A huge sarcastic laugh burst from the Mayor, and he pushed his face
down into Mr. Chambers's.
You, he roared, you, when you're in a deal, you always show your
clients your record, don't you!
Rogers, out of whose cheeks the fire had gone, leaving them an
ashen gray, tugged at their sleeves.
It's no use!—let's go! he begged, chokingly. Quick!
David's eyes blazed down upon Mr. Chambers. Yes, let's leave the
infernal thief!
He took one of Rogers's arms, the Mayor, shaking a huge fist in Mr.
Chambers's face, took the other, and they made for the door. Mr.
Chambers, still seated, watched Rogers's thin figure, head pitched
forward and sunken between his shoulders, pass out of the office.
Brushing people out of his way had become the order of his life, and
he did it impersonally, without malice, as a machine might have
done it. And Rogers was one of the most insignificant he had ever
brushed aside.
Mr. Rogers, as of course you are aware, has not the rights of a
citizen, Mr. Chambers said to the five. Consequently his agreement
with you is invalid; he can not hold you to it. If you will kindly wait in
the next room a moment, Mr. Jordon will speak with you.
After they had filed out he remarked to Jordon: They are
stampeded. They will come to your terms. I leave them in your
hands.
He touched the button on his desk and his secretary appeared. If
Senator Speed has come, he said, ask him to step in.
When David and Rogers were home again, and the Mayor and his
profanity had gone, there was a long silence during which both sat
motionless. David searched his mind for some word of hope for
Rogers, who was a collapsed bundle in a Morris chair, gazing through
the window into the dusky air-shaft.
At length he bent before Rogers and took his hand. We'll go to
some new place together, and start all over again, he said.
Rogers turned his face—the only part of him that the deepening
twilight had not blotted out. It seemed a bodyless face—the mask of
hopelessness.
It's no use—I'm all in, he whispered. Even if I had the courage to
make another fight, there's no strength.
He was silent for several moments. Then a low moan broke from
him. Ten years! he whispered. And this is the end!
BOOK IV
THE SOUL OF WOMAN
CHAPTER I
HELEN CHAMBERS GETS A NEW VIEW OF HER
FATHER
The morning light that sunk down the deep air-shaft and directed its
dimmed gaze through the window, saw Rogers lying dressed on the
couch and David sitting with sunken head at the window, a sleepless
night on both their faces. There had been little talk during the
crawling hours, save when the Mayor had dropped in near midnight
and set walls and furniture trembling with his deep chest-notes of
profanity. Even Tom, awed by the overwhelming disaster, moved
noiselessly about and spoke only a few whispered monosyllables.
The blow was too heavy to be talked of—too heavy for them to think
of what should next be done.
Once, however, David, whose personal loss was almost forgotten in
his sympathy for Rogers, had spoken of the future. There is no
future, Rogers had said. In a few days the owners of my buildings
will hear about me. They will take the agency from me. I have a few
hundred dollars. That will soon go. And then—?
The dinginess in the light began to settle like the sediment of a
clearing liquid, and the sense that the sun must be breakfast-high
worked slowly to the seat of David's will. He rose, quietly set a few
things in order, Rogers's eyes following him about, then put on his
hat with the purpose of going to the Pan-American for his breakfast
and to bring Rogers's.
As he started for the door Rogers reached forth his hand. I'm glad
you found out about me, Aldrich, he said. I can never tell you how
much you've meant to me during the last eight months, and how
much you mean to me now.
David grasped the hand and looked down into the despairing eyes.
I'm glad, he said, simply.
After a moment Rogers's weak grip relaxed and he turned away his
face with a sigh. David went softly out.
While David was at breakfast—his appetite shrunk from it—the
Mayor sat down at his table, which had the privacy of an empty
corner. By the way, the Mayor whispered, d'you have any idea yet
how Chambers found out?
No more than yesterday. We told you of the call of that detective.
He must have been from Chambers, and he must have made the
discovery. But how, we don't know.
Poor Rogers! The Mayor shook his head sadly, thoughtfully. His
face began slowly to redden and his eyes to flash. He thrust out a
big fist. Friend, I don't believe in fightin'—but say, I'd give five years
to flatten the face that belongs to Mr. Chambers!
David had to smile at the idea of the Mayor and Mr. Chambers
engaged in fisticuffs. It's sad, but men like Mr. Chambers are
beyond the reach of justice.
The Mayor dropped his belligerent attitude. Oh, I don't know.
Mebbe they can't be reached with fists, or law—but there's other
ways. And I'd like to jab him any old way. I've been thinkin' about
that daughter o' his. Wouldn't I like to tell her a few things about her
dad!
The Mayor swayed away in response to a summons from the
kitchen, and a few minutes later David entered his room bearing in a
basket Rogers's prescribed milk and soft-boiled eggs. Rogers drank
down the eggs, which David had stirred to a yellow liquid, and after
them the milk, and then with a gasp of relief sank back upon the
couch. As David was clearing up after the breakfast he heard some
one—Kate he guessed—enter the office, and presently there was a
rap on the door between the two rooms. David opened the door and
found, as he had expected, Kate Morgan. She wore her coat and
hat, just as she had come from the street. On her face was a
strange, compressed look, and her eyes were red-lidded.
Can I come in? she asked with tremulous abruptness.
Please do, said David.
She entered and moved to the foot of the couch where she could
look down on Rogers. I've come to say something—and to say
good-bye, she announced.
Say good-bye? Rogers sat up. Good-bye? Why? Oh, you have a
new position?
No. I've no right to be here. You won't want me when you know. So
I'm going.
Her face tightened with the effort of holding down sobs. The two
men looked at her in wonderment, waiting.
You know how broke up I was when you told me about yesterday
afternoon, she went on, and how mad I was at Mr. Chambers. And
then to find out what I have!... Here's what I've come to tell you.
Yesterday afternoon and last night my father was drinking a great
deal. I wondered where he got the money. This morning I went
through his clothes while he was asleep; there were several dollars.
I asked him about it. He lied to me, of course. But I got the truth
out of him in the end.
You remember that detective you told me about last night. When
he left here yesterday about noon he happened to see my father
sweeping off the sidewalk. He began to talk to my father, got my
father to drinking, gave him some money. And after a while my
father—he'd learned it somehow—he told the detective—he told him
you were Red Thorpe.
The two men were silent a moment, looking at the strained face
down which tears were now running.
So that's how it happened! Rogers breathed.
Yes—my father told! The tremor in her voice had grown to sharp
sobs—of shame, agony, and wrath. My father brought all this on
you. And it's all because of me. If you both hadn't tried to be good
to me, my father would not have been here and everything would
have turned out right. It's all because of me!—all my fault!—don't
you see? I know you'll both hate me now. I know you'll want me to
go away. Well—I'm going. But I want to tell you how sorry I am—
how sorry!... Good-bye.
David wanted to speak to her, but this was Rogers's affair rather
than his.
She swept them both with her brimming eyes. Good-bye, she said
again, and turned to the door.
Miss Morgan! called Rogers.
She paused and looked at him.
Don't go yet.
He rose and came to her with outstretched hand. It wasn't your
fault.
She stared dazedly at him. You're ruined—you told me so last night,
and I did it. Yes, I did it.
No. You couldn't help it. You mustn't go at all.
She took his hand slowly, in astonishment. Oughtn't I to go? she
quavered.
You must stay and help bear it, he said.
She looked steadfastly into his eyes. You're mighty good to me,
she breathed in a dry whisper. And then a sob broke from her, and
turning abruptly she went into the office.
In the afternoon David walked over to St. Christopher's to meet
Helen Chambers. Besides his bitterness, and his suspense over
seeing her, David felt as he entered the door of the Mission (what he
had felt on his three or four previous visits) a fear of meeting some
wrathful, upbraiding body who would recognise him. But he met no
one except a group of children coming with books from the library,
and unescorted he followed the familiar way to the reception room,
where Helen had written she would meet him. This, like the rest of
the Mission's interior he had seen, was practically unchanged; and in
this maintenance of old arrangements he read reverence for Morton.
He wandered about the room, looking at the friendly, brown-framed
prints that summoned back the far, ante-prison days. The past,
flooding into him, and his sense of the nearness of Helen, crowded
out for the time all his bitterness over Rogers's destruction.
When Helen appeared at the door, he was for an instant powerless
to move, so thrilled was he with his love for her. She came across
the room with a happy smile, her hand held out. He strode toward
her, and as he caught her hand his blood swept through him in a
warm wave.
I'm so glad to see you again! she cried, and a little laugh told him
how sincere her joy was.
A sudden desire struggled to tell her, truly, how great was his
gladness, and its kind, at seeing her again; and fighting the desire
back made him dizzy. And I to see you! he said.
It's been—let's see—five months since I've seen you, and—
Five months and four days, the desire within David corrected.
And four days, she accepted, with a laugh. And there've been so
many things during that time I've wanted to talk with you about. But
how are you?
She moved near a window. She was full of spirits this day. The out-
door life from which she had just come, the wind, the sun, the
water, were blowing and shining and rippling within her. David, in
analysing his love for her, had told himself he loved her because of
her able mind, her nobility of soul, her feeling of responsibility
toward life. Had he analysed further he would have found that her
lighter qualities were equally responsible for his love—her sense of
humour, the freshness of her spirits, her joy in the pleasures of life.
She had never shown him this lighter side with more freedom than
now—not even during the summer seven years before when for two
weeks they had been comrades;—and David, yesterday forgotten,
yielded to her mood.
He frankly looked her over. She wore a tailor-made suit of a rich
brown, that had captured some of the warm glow of sun-lit autumn,
and a little brown hat to match on which bloomed a single red rose.
Her face had the clear fresh brown of six months' sun, and the sun's
sparkle, stored in her deep eyes, beamed joyously from them. She
was a long vacation epitomised, idealised.
May I say, he remarked at length, with the daring of her own free
spirit, that you are looking very well?
For her part, she had been making a like survey of him. His tall
figure, which had regained its old erectness, was enveloped in
clothes that fit and set it off; and his clean-lined face, whose
wanness had been driven away by the life in hers, looked
distinguished against the background of the dark-green window
hangings.
You may, she returned, if you will permit me to say the same of
you.
Of me? Oh, no. I'm an old man, he said exultantly. Do you know
how old I am? He touched his head. See! The gray hairs!
Yes—at least a dozen, she said gravely. Such an old man!
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!
ebookname.com

Software Engineering 2nd Edition David C. Kung

  • 1.
    Software Engineering 2ndEdition David C. Kung pdf download https://ebookname.com/product/software-engineering-2nd-edition- david-c-kung/ Get Instant Ebook Downloads – Browse at https://ebookname.com
  • 2.
    Instant digital products(PDF, ePub, MOBI) available Download now and explore formats that suit you... Software Engineering for Game Developers Software Engineering Series 1st Edition Ph.D. https://ebookname.com/product/software-engineering-for-game- developers-software-engineering-series-1st-edition-ph-d/ Component Software Beyond Object Oriented Programming 2nd Edition Szyperski C. https://ebookname.com/product/component-software-beyond-object- oriented-programming-2nd-edition-szyperski-c/ Software engineering effective teaching and learning approaches and practices 1st Edition Heidi J. C. Ellis https://ebookname.com/product/software-engineering-effective- teaching-and-learning-approaches-and-practices-1st-edition-heidi- j-c-ellis/ Practical Analog And Digital Filter Design Les Thede https://ebookname.com/product/practical-analog-and-digital- filter-design-les-thede/
  • 3.
    Doing Time onthe Outside Deconstructing the Benevolent Community 1st Edition Madonna R. Maidment https://ebookname.com/product/doing-time-on-the-outside- deconstructing-the-benevolent-community-1st-edition-madonna-r- maidment/ Sites of European Antisemitism in the Age of Mass Politics 1880 1918 Robert Nemes https://ebookname.com/product/sites-of-european-antisemitism-in- the-age-of-mass-politics-1880-1918-robert-nemes/ Student s Guide to Landmark Congressional Laws on Civil Rights Marcus D. Pohlmann https://ebookname.com/product/student-s-guide-to-landmark- congressional-laws-on-civil-rights-marcus-d-pohlmann/ Leisure Pleasure and Healing 1st Edition Dvorjetski https://ebookname.com/product/leisure-pleasure-and-healing-1st- edition-dvorjetski/ Substance Abuse Prevention The Intersection of Science and Practice 1st Edition Julie Hogan https://ebookname.com/product/substance-abuse-prevention-the- intersection-of-science-and-practice-1st-edition-julie-hogan/
  • 4.
    The Art ofSEO Mastering Search Engine Optimization Theory in Practice 1st Edition Eric Enge https://ebookname.com/product/the-art-of-seo-mastering-search- engine-optimization-theory-in-practice-1st-edition-eric-enge/
  • 6.
  • 7.
    SOFTWARE ENGINEERING Published byMcGraw Hill LLC, 1325 Avenue of the Americas, New York, NY 10019. Copyright ©2024 by McGraw Hill LLC. All rights reserved. Printed in the United States of America. No part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written consent of McGraw Hill LLC, including, but not limited to, in any network or other electronic storage or transmission, or broadcast for distance learning. Some ancillaries, including electronic and print components, may not be available to customers outside the United States. This book is printed on acid-free paper. 1 2 3 4 5 6 7 8 9 LCR 28 27 26 25 24 23 ISBN 978-1-265-24243-5 MHID 1-265-24243-7 Cover Image: Shutterstock Images, LLC All credits appearing on page or at the end of the book are considered to be an extension of the copyright page. The Internet addresses listed in the text were accurate at the time of publication. The inclusion of a website does not indicate an endorsement by the authors or McGraw Hill LLC, and McGraw Hill LLC does not guarantee the accuracy of the information presented at these sites. mheducation.com/highered
  • 8.
  • 9.
    iv Preface xv Part I Introductionand System Engineering 1 1  Introduction 2 2  Software Process and Methodology 10 3  System Engineering 43 Part II Analysis and Architectural Design 67 4  Software Requirements Elicitation 68 5  Domain Modeling 92 6  Architectural Design 123 Part III Modeling and Design of Interactive Systems 155 7  Deriving Use Cases from Requirements 156 8  Actor–System Interaction Modeling 182 9  Object Interaction Modeling 196 10  Applying Responsibility-Assignment Patterns 224 11  Deriving a Design Class Diagram 246 12  User Interface Design 259 Part IV Modeling and Design of Other Types of Systems 281 13  Modeling and Design of Event-Driven Systems 282 14  Activity Modeling for Transformational Systems 314 15  Modeling and Design of Rule-Based Systems 330 Part V Applying Situation-Specific Patterns 351 16  Applying Patterns to Design a State Diagram Editor 352 17  Applying Patterns to Design a Persistence Framework 400 Part VI Implementation and Quality Assurance 423 18  Implementation Considerations 424 19  Software Quality Assurance 442 20  Software Testing 474 Brief Contents
  • 10.
    Brief Contents v PartVII Maintenance and Configuration Management 511 21  Software Maintenance 512 22  Software Configuration Management 541 Part VIII Project Management and Software Security 553 23  Software Project Management 554 24  Software Security 584 Appendices A  Personal Software Process: Estimation, Planning, and Quality Assurance 608 B  Java Technologies 611 C  Software Tools 623 D  Project Descriptions 638 E  Object Constraint Language 644 Index 649
  • 11.
    vi Preface xv Part I Introductionand System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 3 1.2 Why Software Engineering? 5 1.3 Software Engineering Ethics 6 1.4 Software Engineering and Computer Science 7 1.5 Summary 8 1.6 Chapter Review Questions 9 1.7 Exercises 9 Chapter 2 Software Process and Methodology 10 2.1 Challenges of System Development 11 2.2 Software Process 12 2.3 Theory of Wicked Problems 13 2.4 Software Process Models 15 2.4.1 Prototyping Process 15 2.4.2 Evolutionary Process 15 2.4.3 Spiral Process 16 2.4.4 The Unified Process 17 2.4.5 Personal Software Process 18 2.4.6 Team Software Process 23 2.4.7 Agile Processes 25 2.5 Software Methodology 31 2.5.1 Difference between Process and Methodology 31 2.5.2 Benefits of a Methodology 32 2.5.3 Status of Software Development Methodologies 32 2.6 Agile Methods 33 2.6.1 Dynamic Systems Development Method 33 2.6.2 Feature-Driven Development 35 2.6.3 Scrum 36 2.6.4 Extreme Programming 37 2.6.5 Agile Unified Methodology 38 2.6.6 Kanban 39 2.7 Summary 41 2.8 Chapter Review Questions 42 2.9 References 42 2.10 Exercises 42 Chapter 3 System Engineering 43 3.1 What Is a System? 44 3.2 What Is System Engineering? 45 3.3 System Requirements Definition 48 3.3.1 Identifying Business Needs 48 3.3.2 Defining System Requirements 50 3.4 System Architectural Design 50 3.4.1 System Decomposition 51 3.4.2 Requirements Allocation 54 3.4.3 Architectural Design Diagrams 55 3.4.4 Specification of Subsystem Functions and Interfaces 59 3.5 Subsystems Development 61 3.5.1 Object-Oriented Context Diagram 61 3.5.2 Usefulness of an Object-Oriented Context Diagram 61 3.5.3 Collaboration of Engineering Teams 62 3.6 System Integration, Testing, and Deployment 63 3.7 System Configuration Management 63 3.8 Summary 65 3.9 Chapter Review Questions 65 3.10 Exercises 66 Contents
  • 12.
    Contents vii Part II Analysisand Architectural Design 67 Chapter 4 Software Requirements Elicitation 68 4.1 What Is Requirements Elicitation? 68 4.2 Importance of Requirements Elicitation 70 4.3 Types of Requirement 71 4.4 Challenges of Requirements Elicitation 72 4.5 Steps for Requirements Elicitation 74 4.5.1 Collecting Information 75 4.5.2 Constructing Analysis Models 78 4.5.3 Deriving Requirements and Constraints 79 4.5.4 Requirements Specification Standards 84 4.5.5 Conducting Feasibility Study 86 4.5.6 Reviewing Requirements Specification 86 4.6 Applying Agile Principles 87 4.7 Requirements Management and Tools 89 4.8 Summary 90 4.9 Chapter Review Questions 90 4.10 Exercises 90 Chapter 5 Domain Modeling 92 5.1 What Is Domain Modeling? 92 5.2 Why Domain Modeling? 93 5.3 Object-Orientation and Class Diagram 94 5.3.1 Extensional and Intentional Definitions 94 5.3.2 Class and Object 95 5.3.3 Object and Attribute 96 5.3.4 Association 97 5.3.5 Multiplicity and Role 98 5.3.6 Aggregation 99 5.3.7 Inheritance 100 5.3.8 Inheritance and Polymorphism 101 5.3.9 Association Class 102 5.4 Steps for Domain Modeling 103 5.4.1 Collecting Application Domain Information 104 5.4.2 Brainstorming 105 5.4.3 Classifying Brainstorming Results 106 5.4.4 Visualizing the Domain Model 110 5.4.5 Domain Model Review Checklist 115 5.5 Putting It Together 115 5.6 Guidelines for Domain Modeling 118 5.7 Applying Agile Principles 120 5.8 Tool Support for Domain Modeling 121 5.9 Summary 121 5.10 Chapter Review Questions 122 5.11 Exercises 122 Chapter 6 Architectural Design 123 6.1 What Is Architectural Design? 124 6.2 The Importance of Architectural Design 124 6.3 Software Design Principles 125 6.3.1 What Are Software Design Principles? 126 6.3.2 Design for Change 126 6.3.3 Separation of Concerns 127 6.3.4 Information Hiding 128 6.3.5 High Cohesion 129 6.3.6 Low Coupling 130 6.3.7 Keep It Simple and Stupid 131 6.4 Types of System 131 6.4.1 Interactive Systems 132 6.4.2 Event-Driven Systems 133 6.4.3 Transformational Systems 134 6.4.4 Rule-Based Systems 135 6.4.5 Object-Persistence Subsystems 135 6.4.6 System and Subsystem 135 6.5 Architectural Styles 136 6.5.1 N-Tier Architectural Style 137 6.5.2 Client-Server Architectural Style 139 6.5.3 Main Program and Subroutine Architectural Style 140 6.5.4 Event-Driven System Architecture 142 6.5.5 Persistence Framework Architectural Style 144 6.5.6 Other Architectural Styles 145 6.6 Architectural Design Process 146 6.6.1 Determine Architectural Design Objectives 147 6.6.2 Perform Custom Architectural Design 148 6.6.3 Specify Subsystem Functions and Interfaces 148 6.6.4 Review the Architectural Design 149 6.7 Architectural Style and Package Diagram 149
  • 13.
    viii Contents 6.8 Guidelinesfor Architectural Design 151 6.9 Architectural Design and Design Patterns 152 6.10 Applying Agile Principles 152 6.11 Summary 153 6.12 Chapter Review Questions 153 6.13 Exercises 154 Part III Modeling and Design of Interactive Systems 155 Chapter 7 Deriving Use Cases from Requirements 156 7.1 What Is An Actor? 157 7.2 What Is a Use Case? 157 7.3 Business Process, Operation, and Action 158 7.4 Steps for Deriving Use Cases from Requirements 160 7.4.1 Deriving Use Cases, Actors, and Subsystems 161 7.4.2 Constructing Use Case Diagrams 167 7.4.3 Specify Use Case Scopes 174 7.4.4 Producing a Requirement–Use Case Traceability Matrix 176 7.4.5 Reviewing Use Case Specifications 177 7.4.6 Allocating Use Cases to Iterations 178 7.5 Applying Agile Principles 179 7.6 Tool Support for Use Case Modeling 180 7.7 Summary 180 7.8 Chapter Review Questions 181 7.9 Exercises 181 Chapter 8 Actor–System Interaction Modeling 182 8.1 What Is Actor–System Interaction Modeling? 183 8.2 Importance of Actor–System Interaction Modeling 184 8.3 Steps for Actor–System Interaction Modeling 184 8.3.1 Initializing a Two-Column Table 184 8.3.2 Specifying Actor–System Interaction 185 8.3.3 Reviewing Expanded Use Cases 186 8.4 Specifying Alternative Flows 186 8.5 Using User Interface Prototypes 187 8.6 Do Not Show Exception Handling 190 8.7 Including Other Use Cases 191 8.8 Continuing with Other Use Cases 191 8.9 Commonly Seen Problems 192 8.10 Guidelines for Expanded Use Cases 193 8.11 Summary 195 8.12 Chapter Review Questions 195 8.13 Exercises 195 Chapter 9 Object Interaction Modeling 196 9.1 What Is Object Interaction Modeling? 196 9.2 Uml Sequence Diagram 198 9.2.1 Notions and Notations 198 9.2.2 Representing Instances of a Class 198 9.2.3 Sequence Diagrams Illustrated 200 9.2.4 Sequence Diagram for Analysis and Design 200 9.2.5 Using the Notations Correctly 202 9.3 Steps for Object Interaction Modeling 204 9.3.1 Collecting Information About Business Processes 204 9.3.2 Identifying Nontrivial Steps 204 9.3.3 Writing Scenarios for Nontrivial Steps 205 9.3.4 Constructing Scenario Tables 207 9.3.5 Scenarios: How to Write Them 208 9.3.6 Converting Scenario Tables into Sequence Diagrams 212 9.3.7 Object Interaction Modeling Review Checklist 220 9.4 Applying Agile Principles 220 9.5 Tool Support for Object Interaction Modeling 222 9.6 Summary 222 9.7 Chapter Review Questions 222 9.8 Exercises 223 Chapter 10 ApplyingResponsibility-AssignmentPatterns 224 10.1 What Are Design Patterns? 225 10.2 Why Design Patterns? 226 10.3 Categories of Patterns 226 10.4 Pattern Specification 227
  • 14.
    Contents ix 10.5 TheController Pattern 227 10.5.1 A Motivating Example 228 10.5.2 What Is a Controller? 230 10.5.3 Applying the Controller Pattern 231 10.5.4 Controller and Software Design Principles 231 10.5.5 Types of Controller 233 10.5.6 Keeping Track of Use Case State 234 10.5.7 Bloated Controller 235 10.5.8 When to Apply the Controller Pattern? 237 10.5.9 Guidelines for Applying Controller 237 10.6 The Expert Pattern 238 10.6.1 Expert and Antiexpert 239 10.6.2 Expert Pattern Involving More Than One Object 240 10.6.3 When to Apply the Expert Pattern? 240 10.6.4 Guidelines for Applying Expert 240 10.7 The Creator Pattern 241 10.7.1 What Is a Creator? 242 10.7.2 Benefits of the Creator Pattern 243 10.7.3 When to Apply the Creator Pattern? 243 10.8 Summary 243 10.9 Chapter Review Questions 244 10.10 References 245 10.11 Exercises 245 Chapter 11 Deriving a Design Class Diagram 246 11.1 What Is a Design Class Diagram? 248 11.2 Usefulness of a Design Class Diagram 248 11.3 Steps for Deriving a Design Class Diagram 249 11.3.1 Identifying Classes 249 11.3.2 Identifying Methods 250 11.3.3 Identifying Attributes 251 11.3.4 Identifying Relationships 253 11.3.5 Design Class Diagram Review Checklist 255 11.4 Organize Classes with Package Diagram 255 11.5 Applying Agile Principles 256 11.6 Tool Support for Design Class Diagram 257 11.7 Summary 257 11.8 Chapter Review Questions 257 11.9 Exercises 258 Chapter 12 User Interface Design 259 12.1 What Is User Interface Design? 260 12.2 Why Is User Interface Design Important? 261 12.3 Graphical User Interface Widgets 262 12.3.1 Container Widgets 262 12.3.2 Input, Output, and Information Presentation Widgets 263 12.3.3 Guidelines for Using GUI Widgets 265 12.4 User Interface Design Process 266 12.4.1 Case Study: User Interface Design for a Diagram Editor 266 12.4.2 Identify Major System Displays 267 12.4.3 Producing a Draft Layout Design 268 12.4.4 Specifying Interaction Behavior 270 12.4.5 Constructing a Prototype 272 12.4.6 Evaluating the User Interface Design with Users 273 12.4.7 User Interface Design Review Checklist 274 12.5 Designing User Support Capabilities 275 12.6 Guidelines for User Interface Design 276 12.7 Applying Agile Principles 278 12.8 Tool Support for User Interface Design 279 12.9 Summary 279 12.10 Chapter Review Questions 280 12.11 Exercises 280 Part IV Modeling and Design of Other Types of Systems 281 Chapter 13 ModelingandDesignofEvent-DrivenSystems 282 13.1 What Is Object State Modeling? 283 13.2 Why Object State Modeling? 284 13.3 Basic Definitions 284 13.4 Steps for Object State Modeling 285 13.4.1 Collecting and Classifying State Behavior Information 285 13.4.2 Constructing a Domain Model to Show the Context 288
  • 15.
    x Contents 13.4.4 Usefulnessof the State Transition Table 292 13.4.5 Converting State Transition Table into Analysis State Diagram 293 13.4.6 Converting Analysis State Diagram into Design State Diagram 296 13.4.7 State Modeling Review Checklists 297 13.5 The State Pattern 298 13.5.1 Conventional Approaches 298 13.5.2 What Is State Pattern? 299 13.5.3 Applying State Pattern 300 13.6 Real-Time Systems Modeling and Design 303 13.6.1 The Transformational Schema 303 13.6.2 Timed State Machine 307 13.6.3 Interrupt Handling 308 13.7 Applying Agile Principles 309 13.8 Tool Support for Object State Modeling 310 13.9 Summary 310 13.10 Chapter Review Questions 311 13.11 Exercises 311 Chapter 14 Activity Modeling for Transformational Systems 314 14.1 What Is Activity Modeling? 315 14.2 Why Activity Modeling? 316 14.3 Activity Modeling: Technical Background 316 14.3.1 Flowchart 316 14.3.2 Petri Net 317 14.3.3 Data Flow Diagram 318 14.4 Uml Activity Diagram 320 14.5 Steps for Activity Modeling 321 14.5.1 Identifying Activities and Workflows 322 14.5.2 Producing a Preliminary Activity Diagram 324 14.5.3 Introducing Branching, Forking, and Joining 325 14.5.4 Refining Complex Activities 326 14.5.5 Activity Modeling Review Checklist 326 14.6 Relationships to Other Diagrams 327 14.7 Applying Agile Principles 328 14.8 Tool Support for Activity Modeling 328 14.9 Summary 329 14.10 Chapter Review Questions 329 14.11 Exercises 329 Chapter 15 ModelingandDesignofRule-BasedSystems 330 15.1 What Is a Decision Table? 331 15.2 Usefulness of Decision Table 332 15.3 Systematic Decision Table Construction 333 15.4 Progressive Decision Table Construction 334 15.5 Checking for Desired Properties 335 15.6 Decision Table Consolidation 336 15.7 Generating Code from a Decision Table 337 15.8 Using a Decision Table in Test-Driven Development 337 15.9 Decision Trees 337 15.10 Applying the Interpreter Pattern 338 15.10.1 Defining a Grammar 340 15.10.2 Constructing a Class Diagram to Represent the Grammar 340 15.10.3 Converting a Conditional Expression into a Parse Tree 341 15.10.4 Implementing the Context 342 15.10.5 Creating and Evaluating Business Rules 342 15.10.6 Updating Rules Dynamically 342 15.10.7 Merits of the Interpreter Pattern 342 15.11 Machine Learning and AI Application Development 344 15.11.1 Brief Introduction to Machine Learning 344 15.11.2 A Workflow for Developing AI Applications 345 15.11.3 Applying Patterns 348 15.12 Summary 348 15.13 Chapter Review Questions 349 15.14 Exercises 349 Part V Applying Situation-Specific Patterns 351 Chapter 16 Applying Patterns to Design a State Diagram Editor 352 16.1 Techniques Used by Patterns 353
  • 16.
    Contents xi 16.1.1 Programto an Interface 354 16.1.2 Use Polymorphism to Provide Behavioral Variations 354 16.1.3 Favor Composition over Inheritance 355 16.1.4 UseDelegationto SupportComposition 356 16.2 Process for Applying Patterns 356 16.3 Case Study: State Diagram Editor 358 16.4 Working with Complex Structures 359 16.4.1 Representing Recursive Whole-Part Structures 360 16.4.2 Accessing Different Data Structures with Iterator 363 16.4.3 Choosing Algorithms with Strategy 366 16.4.4 Applying Type-Dependent Operations with Visitor 368 16.4.5 Storing and Restoring Object State with Memento 372 16.5 Object Creation for Different Design Objectives 375 16.5.1 Creating Families of Products 375 16.5.2 Varying Process and Process Steps 377 16.5.3 Reusing Objects with Flyweight 380 16.6 Designing Graphical User Interface and Display 384 16.6.1 Keeping Track of Editing States 384 16.6.2 Responding to Editing Events 386 16.6.3 Converting One Interface to Another 389 16.6.4 Request Handler Is Unknow in Advance 391 16.6.5 Enhancing Display Capability with Decorator 395 16.7 Applying Agile Principles 398 16.8 Summary 398 16.9 Chapter Review Questions 399 16.10 Exercises 399 16.11 References 399 Chapter 17 Applying Patterns to Design a Persistence Framework 400 17.1 Problems with Direct Database Access 401 17.2 Hiding Persistence Storage with Bridge 401 17.3 Encapsulating Database Requests as Commands 404 17.4 Hiding Network Communication with Remote Proxy 408 17.5 Sharing Common Code with Template Method 411 17.6 Retrieving Different Objects with Factory Method 414 17.7 Reducing Number of Classes with Prototype 416 17.8 Applying Agile Principles 421 17.9 Summary 421 17.10 Chapter Review Questions 422 17.11 Exercises 422 Part VI Implementation and Quality Assurance 423 Chapter 18 Implementation Considerations 424 18.1 Coding Standards 424 18.1.1 What Are Coding Standards? 425 18.1.2 Why Coding Standards? 429 18.1.3 Guidelines for Practicing Coding Standards 429 18.2 Organizing the Implementation Artifacts 431 18.3 Generating Code from Design 433 18.3.1 Implementing Classes and Interfaces 433 18.3.2 From Sequence Diagram to Method Code Skeleton 433 18.3.3 ImplementingAssociationRelationships 434 18.4 Assigning Implementation Work to Team Members 435 18.5 Pair Programming 435 18.6 Test-Driven Development 436 18.6.1 Test-Driven Development Workflow 436 18.6.2 Merits of Test-Driven Development 439 18.6.3 Potential Problems 439 18.7 Applying Agile Principles 439 18.8 Tool Support for Implementation 440 18.9 Summary 440 18.10 Chapter Review Questions 441 18.11 Exercises 441 Chapter 19 Software Quality Assurance 442 19.1 Benefits of Software Quality Assurance 442
  • 17.
    xii Contents 19.2 SoftwareQuality Attributes 443 19.3 Quality Measurements and Metrics 445 19.3.1 Usefulness of Quality Measurements and Metrics 446 19.3.2 Conventional Quality Metrics 447 19.3.3 Reusing Conventional Metrics for Object-Oriented Software 453 19.3.4 Object-Oriented Quality Metrics 453 19.4 Software Verification and Validation Techniques 457 19.4.1 Inspection 458 19.4.2 Walkthrough 459 19.4.3 Peer Review 459 19.5 Verification and Validation in the Life Cycle 461 19.6 Software Quality Assurance Functions 464 19.6.1 Definition of Processes and Standards 465 19.6.2 Quality Management 468 19.6.3 Process Improvement 469 19.7 Applying Agile Principles 471 19.8 Tool Support for SQA 472 19.9 Summary 473 19.10 Chapter Review Questions 473 19.11 Exercises 473 Chapter 20 Software Testing 474 20.1 What Is Software Testing? 475 20.2 Why Software Testing? 476 20.3 Conventional Black-Box Testing 477 20.3.1 Functional Testing: An Example 477 20.3.2 Equivalence Partitioning 478 20.3.3 Boundary Value Analysis 480 20.3.4 Cause-Effect Analysis 482 20.4 Conventional White-Box Testing 483 20.4.1 Basis Path Testing 483 20.4.2 Cyclomatic Complexity 485 20.4.3 Flow Graph Test Coverage Criteria 485 20.4.4 Testing Loops 486 20.4.5 Data Flow Testing 487 20.4.6 Coverage Criteria for Data Flow Testing 488 20.4.7 Interprocedural Data Flow Testing 489 20.5 Test Coverage 489 20.6 A Generic Software Testing Process 490 20.7 Object-Oriented Software Testing 492 20.7.1 Use Case–Based Testing 492 20.7.2 Object State Testing with ClassBench 494 20.7.3 Testing Class Hierarchy 497 20.7.4 Testing Exception-Handling Capabilities 497 20.8 Testing Web Applications 498 20.8.1 Object-Oriented Model for Web Application Testing 498 20.8.2 Static Analysis Using the Object-Oriented Model 499 20.8.3 Test Case Generation Using the Object- Oriented Model 500 20.8.4 Web Application Testing with HttpUnit 500 20.9 Testing for Nonfunctional Requirements 500 20.9.1 Performance and Stress Testings 500 20.9.2 Testing for Security 501 20.9.3 Testing User Interface 502 20.10 Software Testing in the Life Cycle 503 20.11 Regression Testing 506 20.12 When to Stop Testing? 506 20.13 Applying Agile Principles 507 20.14 Tool Support for Testing 507 20.15 Summary 508 20.16 Chapter Review Questions 508 20.17 Exercises 508 20.18 References 509 Part VII Maintenance and Configuration Management 511 Chapter 21 Software Maintenance 512 21.1 What Is Software Maintenance? 513 21.2 Factors That Mandate Change 513 21.3 Lehman’s Laws of System Evolution 514 21.4 Types of Software Maintenance 515 21.5 Software Maintenance Process and Activities 516 21.5.1 Maintenance Process Models 516 21.5.2 Program Understanding 517 21.5.3 Change Identification and Analysis 518 21.5.4 Configuration Change Control 520
  • 18.
    Contents xiii 21.5.5 ChangeImplementation, Testing, and Delivery 521 21.6 Reverse-Engineering 521 21.6.1 Reverse-Engineering Workflow 521 21.6.2 Usefulness of Reverse-Engineering 522 21.6.3 Reverse-Engineering: A Case Study 522 21.7 Software Reengineering 523 21.7.1 Objectives of Reengineering 523 21.7.2 Software Reengineering Process 524 21.7.3 Software Reengineering: A Case Study 525 21.8 Software Evolution 527 21.8.1 Planning Phase 527 21.8.2 Iterative Phase 529 21.9 Patterns for Software Maintenance 532 21.9.1 Simplifying Client Interface with Facade 532 21.9.2 Simplifying Component Interaction with Mediator 533 21.9.3 Patterns for Software Maintenance 534 21.10 Applying Agile Principles 535 21.11 Tool Support for Software Maintenance 536 21.12 Summary 539 21.13 Chapter Review Questions 539 21.14 Exercises 539 Chapter 22 Software Configuration Management 541 22.1 The Baselines of a Software Life Cycle 542 22.2 What Is Software Configuration Management? 543 22.3 Why Software Configuration Management? 544 22.4 Software Configuration Management Functions 544 22.4.1 Software Configuration Identification 545 22.4.2 Software Configuration Change Control 547 22.4.3 Software Configuration Auditing 548 22.4.4 Software Configuration Status Accounting 549 22.5 Configuration Management in an Agile Project 549 22.6 Software Configuration Management Tools 549 22.7 Summary 551 22.8 Chapter Review Questions 551 22.9 Exercises 551 Part VIII Project Management and Software Security 553 Chapter 23 Software Project Management 554 23.1 Project Organization 555 23.1.1 Project Format 555 23.1.2 Team Structure 557 23.2 Effort Estimation Methods 558 23.2.1 The Function Point Method 559 23.2.2 The COCOMO II Model 561 23.2.3 The Delphi Estimation Method 566 23.2.4 Agile Estimation 567 23.3 Project Planning and Scheduling 569 23.3.1 PERT Chart 569 23.3.2 Gantt Chart and Staff Allocation 571 23.3.3 Agile Planning 572 23.4 Risk Management 573 23.4.1 Risk Identification 574 23.4.2 Risk Analysis and Prioritizing 575 23.4.3 Risk Management Planning 577 23.4.4 Risk Resolution and Monitoring 577 23.5 Process Improvement 577 23.6 Applying Agile Principles 579 23.7 Tool Support for Project Management 580 23.8 Summary 581 23.9 Chapter Review Questions 581 23.10 Exercises 582 Chapter 24 Software Security 584 24.1 What Is Software Security? 585 24.2 Security Requirements 585 24.3 Secure Software Design Principles 586 24.4 Secure Software Design Patterns 588 24.5 Seven Best Practices of Software Security 590 24.6 Risk Analysis with an Attack Tree 591 24.7 Software Security in the Life Cycle 592 24.7.1 Security in the Planning Phase 593
  • 19.
    xiv Contents 24.8 ApplyingAgile Principles 605 24.9 Summary 606 24.10 Chapter Review Questions 606 24.11 Exercises 607 Appendices A  Personal Software Process: Estimation, Planning, and Quality Assurance 608 A.1 Effort Estimation in PSP 608 A.2 Software Quality Assurance in PSP 610 A.3 Design and Quality 610 B  Java Technologies 611 B.1 Getting Started with Database Connectivity 611 B.1.1 What Is Database Connectivity? 611 B.1.2 Setting Up Data Sources 611 B.1.3 Accessing Databases from a Program 611 B.2 Getting Started with Swing 613 B.2.1 Creating Main Window with JFrame 613 B.2.2 Using Layout Managers to Arrange Com- ponents 614 B.2.3 Processing Button Events with Action Listener 616 B.2.4 Implementing Drawing Capabilities 617 B.3 Getting Started with Java Server Pages 617 B.3.1 What Are Java Server Pages? 617 B.3.2 JSP Workflow 617 B.3.3 Installing a Web Server with a JSP Container 618 B.3.4 Using Java Server Pages 618 C  Software Tools 623 C.1 NetBeans 623 C.2 Using JUnit 624 C.3 Running JUnit in NetBeans 628 C.4 The Cobertura Coverage Tool 628 C.5 Using CVS and Subversion in NetBeans 629 C.5.1 Creating a CVS Remote Repository 629 C.5.2 Setting Up Subversion in NetBeans 631 C.5.3 Checking Out Files from a Repository 633 C.5.4 Editing Sources and Viewing Changes 635 C.5.5 Viewing File Status 635 C.5.6 Comparing File Revisions 635 C.5.7 Merging Changes from Repository 636 C.5.8 Resolving Conflicts 636 C.5.9 Updating Local Copies 636 C.5.10 Committing Local Files to a Repository 636 C.5.11 Importing Files into a Repository 637 D  Project Descriptions 638 D.1 Car Rental System 638 D.2 National Trade Show Service System 639 D.3 Study Abroad Management System 640 D.4 UML Class Diagram Editor 642 E  Object Constraint Language 644 E.1 Reserved Words and Operators 644 E.2 Context and Invariant 644 E.3 Attribute Initialization 645 E.4 Operation Specification 645 E.5 Derivation Rules 646 E.6 Navigation over Association Relationships 646 E.7 Navigation to and from Association Classes 646 E.8 Collection Types 646 E.9 Collection Operations 647 E.10 Let Operation 648 Index 649
  • 20.
    BACKGROUND Computers are widelyused in all sectors of our society, performing a variety of func- tions with the application software running on them. As a result, the market for soft- ware engineers is booming. There is a significant gap between the demand and supply, especially for graduates with software engineering education. Many people do not know the scope and usefulness of software engineering, and the discipline is often misunderstood. Many media outlets deem software engineering as writing Java programs. Some students think that software engineering includes everything related to software. Others think that software engineering is drawing UML diagrams, as the following story illustrates. Years ago, after the first class of a software engineering course, a student told me, “professor, you know that this will be an easy course for me because we’ve drawn lots of UML diagrams before.” At the end of the semester, the student came to me again and said, “professor, I want to tell you that we worked very hard, but we learned a lot about OO design. It is not just drawing UML diagrams.” So what is software engineering? As a discipline, it encompasses research, education, and application of engineering processes, methodologies, quality assurance, and project management to significantly increase software productivity and software quality while reducing software cost and time to market. A software pro- cess describes the phases and what should be done in each phase. It does not specify (in detail) how to perform the activities in each phase. A modeling language, such as UML, defines the notations, syntax, and semantics for communicating and docu- menting analysis and design ideas. UML and the Unified Process (UP) are good and necessary but not sufficient. This is because how to produce the analysis and design ideas required to draw meaningful UML diagrams is missing. MOTIVATION To fill the gap mentioned above, we need a methodology or a “cook-book.” Unlike a process, a methodology is a detailed description of the steps and procedures or how to carry out the activities to the extent that a beginner can follow to produce and deploy the desired software system. Without a methodology, a beginning software engineer would have to spend years of on-the-job training to learn design, implementation, and testing skills. This book is also motivated by emerging interests in agile processes, design pat- terns, and test-driven development (TDD). Agile processes emphasize teamwork, de- sign for change, rapid deployment of small increments of the software system, and joint development with the customer and users. Design patterns are effective design Preface
  • 21.
    xvi Preface solutions tocommon design problems. They promote software reuse and improve team communication. Patterns also empower less-experienced software engineers to produce high-quality software because patterns encode software design principles. TDD advocates testable software, and requires test scripts to be produced before the implementation so that the latter can be tested immediately and frequently. As an analogy, consider the development of an amusement park. The overall pro- cess includes the following phases: planning, public approval, analysis and design, fi- nancing, construction drawings, construction, procurement of equipment, installation of equipment, preopening, and grand opening. However, knowing the overall process is not enough. The development team must know how to perform the activities of the phases. For example, the planning activities include development of initial concept, feasibility study, and master plan generation. The theme park team must know how to perform these activities. The analysis and design activities include “requirements acquisition” from stake- holders, site investigation, design of park layout, design of theming for different areas of the park, creating models to study the layout design and theming, and producing the master design. Again, the theme park team must know how to perform these activities to produce the master design. Unlike a process that describes the phases of activities, a methodology details the steps and procedures or how to perform the activities. The development of an amusement park is a multiyear project and costs billions of dollars. The investor wants the park to generate revenue as early as possible, but with the above process, the investor has to wait until the entire park is completed. Once the master design is finalized, it cannot be modified easily due to the restrictions imposed by the conventional process. If the park does not meet the expectations of the stakeholders, then changes are costly once the park is completed. Agile processes are aimed to solve these problems. With an agile process, a list of preliminary theme park requirements is acquired quickly and allowed to evolve during the development process. The amusement and entertainment facilities are then derived from the requirements and carefully grouped into clusters of facilities. A plan to develop and deploy the clusters in relatively short periods of time is pro- duced, that is, rapid deployment of small increments. Thus, instead of a finalized master design, the development process designs and deploys one cluster at a time. As the clusters of facilities are deployed and operational, feedback is sought and changes to the requirements, the development plan, budget, and schedule are worked out with the stakeholders—that is, joint development. In addition, the application of architec- tural design patterns improves quality and ability of the park to adapt to changing needs— that is, design for change. Teamwork is emphasized because effective col- laboration and coordination between the teams and team members ensure that the facilities will be developed and deployed timely and seamlessly. The agile process has a number of merits. The investor can reap the benefits much earlier because the facilities are operational as early as desired and feasible. Since a small number of the facilities are developed and deployed at a time, errors can be corrected and changes can be made more easily. In summary, this text is centered around an agile unified methodology that inte- grates UML, design patterns, and TDD, among others. The methodology presented in this book is called a “unified methodology” because it uses UML as the modeling language and it follows an agile unified process. It does not mean to unify any other
  • 22.
    Preface xvii AUDIENCES This bookis for students majoring in computer science, software engineering or ­ information systems, as well as software development professionals. In particular, it is ­ intended to be used as the primary material for upper-division undergraduate and ­ introductory graduate courses and professional training courses in the software ­ industry. This book’s material evolved over the last two decades from courses taught at universi- ties and companies domestically and internationally, as well as from applications of the material to industry-sponsored projects and projects conducted by software engineers in various companies. These allowed the author to observe how students and software engi- neers applied UP, UML, design patterns, and TDD, and the difficulties they faced. Their feedback led to the development of the Agile Unified Methodology (AUM) presented in this book and the continual improvement of the material. The book describes AUM in detail to facilitate students to learn and develop anal- ysis and design abilities. In particular, each analysis or design activity is decomposed into a number of steps, and how to perform each step is described in detail. This treat- ment is intended to facilitate students learning how to perform analysis and design. Once acquired the abilities, one may skip some or most of the steps. ORGANIZATION The book has 24 chapters, divided into eight parts: Part I. Introduction and System Engineering. This part consists of the first three chapters. It provides an overview of the software life-cycle activities. In particular, it covers software process models, the notion of a methodology, the difference between a process and a methodology, and system engineering. Part II. Analysis and Architectural Design. This part presents the planning phase activ- ities. It includes requirements elicitation, domain modeling, and architectural design. Part III. Modeling and Design of Interactive Systems. This part deals with the modeling and design of interactive systems. It consists of six chapters. These chapters present how to identify use cases from the requirements, how to model and design actor–system interaction and object interaction behavior, how to ap- ply responsibility assignment patterns, how to derive a design class diagram to serve as the design blueprint, and how to design the user interface. Part IV. Modeling and Design of Other Types of Systems. This part consists of three chapters; each presents the modeling and design of one type of system. In particular, Chapter 13 presents the modeling and design of event-driven sys- tems. Chapter 14 presents the modeling and design of transformational systems. Chapter 15 presents the modeling and design of business rule-based systems. Part V. Applying Situation-Specific Patterns. This part consists of two chapters and presents how to apply situation-specific patterns. A case study, that is, the design of a state diagram editor, is used to help understand the process. Part VI. Implementation and Quality Assurance. This part consists of three chap- ters. They present implementation considerations, software quality assurance concepts and activities, and software testing.
  • 23.
    xviii Preface Part VII.Maintenance and Configuration Management. This part includes two chapters and covers software maintenance and software configuration management. Part VIII. Project Management and Software Security. The last part of the book consists of the last two chapters. One of the chapters presents software project management. The other chapter covers software security, that is, life-cycle activi- ties concerning the modeling and design of secure software systems. The material can satisfy the needs of several software engineering courses. For example, 1. Part I through Part III and selected topics from Part VI to Part VIII are a good combination for an Object-Oriented Software Engineering (OOSE) course or an Introduction to Software Engineering course. This could be a junior- or senior- level undergraduate course as well as an introductory graduate-level course. 2. Part II, Part V, and selected sections from the other chapters could form a Soft- ware Design Patterns course. It is recommended that the OOSE course described above be a prerequisite for this course. However, many international students may not have taken the OOSE course. In this case, a review of the methodology presented in Part II and Part III is recommended. The review of the methodology provides the framework for applying patterns. The review may take two to four weeks. 3. Part VI and Part VII could be taught in various ways. They could form one course— Quality Assurance, Testing, and Maintenance. They could be taught as two courses— Software Quality Assurance, and Software Testing and Maintenance. 4. Chapters 13–15, 19, and 20 plus selected patterns from the other chapters may form a course on modeling, design, verification, and validation of complex systems. 5. Part I, Parts VI–VIII, and selected chapters from the other parts may form a Soft- ware Project Management course. Various teaching supplements can be found at http://www.mhhe.com/kung. These in- clude PowerPoint teaching slides, pop quiz and test generation software, databases of test questions, sample course descriptions, syllabi, and a solution manual. Instructors who have not taught the courses may find these helpful in reducing preparation time and effort.
  • 24.
    Preface xix ACKNOWLEDGMENTS I wouldlike to thank my numerous students who constantly stimulate me with their questions, feedback, enthusiasm, and effort to apply AUM to real-world projects. They provided valuable improvement suggestions. Many continue to practice AUM in in- dustry after graduation and share with me their valuable experiences. I also want to thank the reviewers and numerous instructors for their comments and suggestions. These have significantly improved the organization, presentation, and many other as- pects of the book. I am thankful for the opportunities to teach on-site training courses and for-credit courses for various companies. These allow me to interact with many software developers and learn from them. Some companies let the developers apply AUM and patterns to in-house or product-development projects. All of these proj- ects generated very positive feedback including high-quality design documentation and drastic reduction in defect rates. I want to thank the managements of various companies for their constant support to industry-university collaboration and the ­ opportunity for me to learn from practice.
  • 25.
  • 26.
    Introduction and System Engineering Chapter1 Introduction 2 Chapter 2 Software Process and Methodology 10 Chapter 3 System Engineering 43 p a r t I
  • 27.
    2 1 Introduction Key Takeaway Points • •Softwareengineering aims to significantly improve software productivity and software quality while reducing software costs and time to market. •Software engineering consists of three tracks of interweaving life-cycle activities: software development, software quality assurance, and software project man- agement activities. Computers are used everywhere in our society. It is difficult to find a hospital, school, retail shop, bank, factory, or any other organization that does not rely on computers. Our cell phones, cars, and televisions are also based on computer-powered platforms. The driving force behind the expanding use of computers is the market economy. However, it is the software that makes the computers work in the ways we want. Soft- ware or computer programs consist of thousands or millions of instructions that di- rect the computer to perform complex calculations and control the operations of hard- ware devices. The demand for computer software has been rapidly increasing during the last several decades. This trend is expected to continue for the foreseeable future. The proliferation of computer applications creates a huge demand for application software developers. According to the Bureau of Labor Statistics (BLS), application software developer was one of the 30 fastest-growing occupations in America (bls. gov/emp/tables/fastest-growing-occupations.htm). The number of positions was pro- jected to grow from 1,469,200 in 2019 to 1,789,200 in 2029, an increase of 316,000, or 21.50%. The median annual wage for an application software developer in May 2019 was $110,140, much higher than the median annual wage for all occupa- tions ($41,950). Among the 10 computer and IT occupations surveyed by the BLS, only application software developer and information security analyst enter into the 30 fastest-growing list. Its median pay was also much higher than the median pay of $91,250 for the 10 computer and IT occupations surveyed by the BLS. There are two popular misconceptions. One equates application software de- velopment with computer programming. The other equates an application software developer with a computer programmer. However, according to the BLS, software de- velopers create the applications or systems that run on a computer or another device. Chapter 2
  • 28.
    Chapter 1 Introduction3 Computer programmers write and test code that allows computer applications and software programs to function properly. The BLS survey also showed that the median pay for a computer programmer in May 2019 was $89,190, which was lower than the median pay for computer and IT occupations and much lower than the median pay for an application software developer. Unlike a computer programmer, an application software developer is required to identify and formulate feasible and cost-effective solutions to solve large, complex re- al-world problems and design software to implement such solutions. The solutions and the software must take into account potential impact to public health, safety, security, and welfare as well as cultural, social, and environmental aspects (abet.org). To be able to perform the work required of an application software developer, an education in software engineering is highly desired. 1.1 WHAT IS SOFTWARE ENGINEERING? Software systems are complex intellectual products. Software development must en- sure that the software system meets the needs of the intended application, the budget is not overrun, and the system is delivered on time. To accomplish these goals, the term “software engineering” was proposed at a NATO conference in 1968 to advocate the need for an engineering approach to software production. Since then, software engineering has become a discipline and made remarkable progress. The efforts that take place in the field lead to the following: Definition 1.1 Software engineering as a discipline is focused on the research, education, and practice of engineering processes, methods, and techniques to significantly increase software productivity and software quality while reducing software costs and time to market. This definition includes several important points. First, the overall objective of software engineering is significantly increasing software productivity (P) and quality (Q) while reducing software production and operating costs (C) as well as time to market (T). These are abbreviated as PQCT in this book. In other words, significantly improving PQCT means producing higher-quality software more quickly, efficiently, and cost-effectively. These will eventually contribute to the improvement of our lives. Second, research, education, and practice of software engineering processes, meth- ods, and techniques are the means to significantly improve PQCT. Software development involves three tracks of interweaving activities, as Figure 1.1 exhibits. These activities take place simultaneously throughout the software life cycle: 1. Software development activities. 2. Software quality assurance activities. 3. Software project management activities. Software development activities are a set of activities performed to transform an initial system concept into a software system running in the target environment. Like many engineering projects, software development activities include software
  • 29.
    4 Part IIntroduction and System Engineering specification, software design, implementation, testing, deployment, and mainte- nance. Software specification determines what the customer and users want. These are specified as requirements or capabilities that the software system must deliver. Software design produces a software solution to realize the software requirements. In particular, it determines the overall software structure, called the software archi- tecture, of the software system. The architecture depicts the major system compo- nents and how they relate, interface, and interact with each other. Software design also defines the user interfaces as well as high-level algorithms for the system com- ponents. During implementation and testing, the design is converted into computer programs, which are tested to ensure that they work as the customer and users expect. The software system is then installed in the target environment, tested and modified to ensure that it works properly. During the maintenance phase, the soft- ware system is continually modified to correct errors and enhance functionality until it is abandoned or replaced. Software quality assurance (QA) activities are carried out alongside the de- velopment activities. QA activities ensure that the development activities are car- ried out correctly; the required artifacts, such as software requirements document (SRD) and software design document (SDD), are produced and conform to quality standards; and the software system will fulfill the requirements. These are accom- plished through requirements review, design review, code review and inspection, as well as testing. Software project management activities ensure that the software system under development will be delivered on time and within budget constraint. One important activity of project management is project planning. It takes place at the beginning of a project, immediately after the requirements for the software system are determined. In particular, effort and time required to perform the three tracks of activities for the project are estimated. A schedule of activities is produced to guide the project. During the development and deployment process, project management is responsible for con- tinuous monitoring of project progress and costs, and executing necessary actions to adapt the project to emerging situations. FIGURE 1.1 Three tracks of life-cycle activities Software quality assurance activities Software project management activities Cost time to market Quality Productivity Software development activities
  • 30.
    Random documents withunrelated content Scribd suggests to you:
  • 31.
    Everything! For emphasisMr. Jordon clapped two fat hands down upon two fat knees. But he's as solid as a rock. If we were dealing with the real owners individually, it would be different. They're anxious to sell and they're all short on nerve. It's him that holds them together and keeps them braced up. I suppose you've tried to get them to withdraw their land from his control? I tried that long ago. But it wouldn't work. He's promised them a big price, and he's made them believe they'll get it. Then you think as you say here—he laid his hand upon the letter —that we'd better pay him what he demands and close the deal? I certainly do. We've got to have that land, and to get it we've got to pay his price. He knows that and he won't come down a dollar. Since we've got to pay the price in the end, I'm for paying it right now and not losing any more time in launching the company before the public. Your reasoning is sound. But you're aware, of course, that the difference between his price and the rate we've been paying is considerably over fifty thousand? Yes, but we're not going to lose money on it even at that. Mr. Jordon nodded knowingly. Besides, when we come to counting up the profits on the whole deal, we'll never miss that fifty thousand. Fifty thousand dollars, Mr. Jordon, Mr. Chambers said quietly, is fifty thousand dollars. Mr. Jordon blushed as though caught in an ill deed. Yes—yes—of course, he stammered. We don't want to lose it, but how are we going to help it? Mr. Chambers did not answer—gave no sign of having noticed the other's embarrassment. Suppose we have a meeting here to- morrow afternoon, and try again to get him to lower his price.
  • 32.
    Very well—I'll writehim to be here. But I warn you that he'll not come down a cent. Then I suppose we'll have to settle on some other basis. There was a moment's pause. By the way, who is this Mr. Rogers? Never heard of him till I ran across him in this deal. Nobody seems to know much about him. He's just a little two-for-a-cent agent that was cute enough to see this chance and grab it. Mr. Chambers said no more, and Mr. Jordon, seeing that use for himself was over, departed. Mr. Chambers had an instinct for loss that was like a composer's ear for false notes. In his big financial productions he detected a possible loss instantly; it pained him as a discord, and he at once set about correcting it. The New Jersey Home Company was but one of the many coexisting schemes that had sprung from his creative brain, and the fifty thousand dollars was a beggar's penny compared to the sums that floated through his mind. But the fifty thousand dollars was a loss, a flaw, and he could not pass it by. Mr. Chambers had the theory, proved by long practice, that many men have something hidden away in their lives which if discovered and properly used, or some vulnerable business spot which if struck, will so disable them that they cannot stand up against your plans. This theory, applied, had turned for him many a hopeless struggle into a quiet, easy victory—so that it had become his practice, when dealing with a man whose past life and whose present business relations he did not know, to acquaint himself with all that could be uncovered. The moment Mr. Jordon had gone Mr. Chambers wrote a line, requesting full information about Rogers, and enclosed it in an envelope which he addressed to the man who usually served him in such confidential matters. He touched a button and handed the note to his secretary. See that Mr. Hawkins gets this at once, he said.
  • 33.
    That afternoon aman, whom David afterward remembered as a diamond ring, a diamond shirt-stud and a heavy gold watch-chain, walked into the office of John Rogers. Is this Mr. Rogers? he asked of David, who was alone in the room. No. Aldrich is my name. But I represent him. Can I do anything for you? I'd like to see him if I can. I'm thinking of investing in some real estate in this neighbourhood, and I've been looking at a couple of houses that I was told he was agent for. I'll call him—wait a minute. David went into the living room, and at once returned. Mr. Rogers will be right in, he said. Thanks. The man turned his pinkish face about the room. Cosy little office you've got, for this part of town, he remarked, with an air of speaking pleasantries to kill time. Yes—we think so. How long's Mr. Rogers been interested in real estate in this neighbourhood? I've been with him for less than a year, so I don't exactly know. But I believe about eight or nine years. In the same business before then? But the entrance of Rogers at that instant saved David a reply. The caller, who had sat down, rose and held out his hand. Is this Mr. Rogers? Harris is my name—William Harris. Rogers, as he came up, laid hold of the back of a chair. He did not see Mr. Harris's hand.
  • 34.
    I'm glad tomeet you, he returned in his low voice. Won't you sit down? The three took chairs, and the next hour was filled with talk about the houses Mr. Harris had examined. Mr. Harris was very eager for the buildings, and David became excited at the prospect of the agent's commission that would come from the sale. But Rogers was quiet and reserved as always—answering all questions fully, save a few casual personal queries which he evaded. When Mr. Harris went away he said in so many words that the deal was as good as settled, except for a small difference in the price which would bother them little. The instant the office door closed upon Mr. Harris David turned eagerly to Rogers, who was sitting motionless in his chair. Won't that be a windfall though if he takes those houses! he cried. Your commission will be at least two thousand dollars! There was no tinge of enthusiasm in Rogers's pale cheeks. He did not speak at once, and when he did he ignored David's exclamations. Did you notice, Aldrich, he said in a strained voice, that I avoided taking his hand when he offered it at first and again when we parted? No. Why? I was afraid. Afraid? repeated David, puzzled. What of? I shook hands with Bill Halpin—and you know what he found out. David stepped nearer to Rogers, and saw in his eyes the look of hunted fear. I don't understand, he said slowly.
  • 35.
    Mr. Harris maybe a bona-fide dealer in real estate—but fifteen years ago he was one of the cleverest detectives on the New York police force. I recognised him the instant I saw him. He helped arrest me once. David sank slowly to a chair. You don't say so! he ejaculated. He stared for several moments at Rogers's thin face, on which he could now see the exhaustion of the straining interview. Do you think he can possibly be on your trail?—and if so, what for? What for, I don't know. But didn't you notice how he was constantly studying me?—how he slipped in a question about what I used to do?—how he tried to learn the names of some of my friends, whom he might quiz about me? He's clever. But do you think he found out anything? I don't think he did. I was watching him closer than he was watching me, for any least sign of recognition. I didn't see any. But you know I can't help fearing, Aldrich! I can't help fearing! David tried to drive the strained, hunted look from Rogers's face by saying that there was hardly any possibility of his identity being discovered, and no apparent motive for it being used against him even if found out. David succeeded in bringing back his own confidence, and at length drew from Rogers the admission, Well, maybe you're right.
  • 36.
    CHAPTER XIII THE ENDOF THE DEAL The next morning when David glanced at the envelopes the postman had handed him he saw that one letter was from Mr. Jordon. He was ripping it open eagerly when he noticed the envelope beneath it bore the handwriting of Helen Chambers. He dropped Jordon's letter and excitedly opened the other. Its cordiality set him afire. She was just back in town for the winter, she wrote, and the following afternoon she would be at St. Christopher's. Would he care to come to meet her at about four for an hour's walk? Would he! He had not seen her since the early summer—and how he had hungered to see her, speak with her, feel her near presence! He walked across the office, in which he was alone, half a dozen times before he took up the letter of Mr. Jordon. Mr. Jordon asked that Mr. Rogers and his associates be at the office of Mr. Chambers at three o'clock that afternoon. He hoped that they would be able to reach an agreement on terms and close the matter up. David, the letter in his hand, was rushing into the living room to read the news to Rogers, when he saw, through the open hall-door, the ample form of the Mayor passing out. He captured the Mayor and led him in to the side of the couch on which Rogers was lying. Listen to this, will you! David cried, and excitedly read the letter. Did you take in that sentence at the last?—'I hope that we will at length be able to agree on terms.' Now what do you think that means? It means, said the Mayor, explosively, that they've woke up and see that you ain't never goin' to come down to them, they've got to
  • 37.
    come up toyou! It means that you've won! Rogers's sunken eyes flamed, and he stood up. It seems so! he breathed. They all seized hands. This don't mean much to me personally, for I've only got a little in it, said the Mayor, but I certainly have the glad feeling on your account, Rogers. You can clear right out to a land where the air was made for breathin' purposes. Here in New York the air ain't good for much except fillin' in lots. Yes sir, Rogers, I'm certainly glad! They talked on excitedly, as men do who are but a step from success. David was glad, too, on Rogers's account, for he saw afresh how thinly disease had sculptured his cheeks and nose, and how deeply it had chiselled about the eyeballs, and to what a slender shaft it had carved the neck. Also he was ablaze with gladness on his own account. Success, but a few hours off, meant the partial clearing of his name. His mind exulted over the details of the scene to-morrow afternoon when he would tell Helen Chambers he had the means to pay his debt to St. Christopher's. In the course of the morning Mr. Harris dropped in. He asked for Rogers, but David said that Rogers was out. For half an hour the detective talked about the houses in which he was interested, now and then slipping in a guileless question about Rogers. But David was on his guard; he matched his wits against Mr. Harris's, and when at length the detective went away David was certain he was no wiser than when he came. At half past two the Mayor thrust his head into the office and, seeing Kate was there, beckoned David into the hall. The Mayor had never before been at elbows with a real money king, so for him the meeting was a new experience; and despite his ire toward Mr. Chambers he was prompted to make his appearance before royalty in fitting court costume. D'you think I look all right? he asked, anxiously.
  • 38.
    David surveyed theMayor's bulky figure. There was a silk hat with not a single hair in disarray, a long light overcoat, a pair of fresh gloves that were staringly tan, and the most gorgeous vest in the Mayor's closet. David could have wished that the whole scheme of dress had been pitched in a lower key, but he criticised nothing but the vest. If that's all you kick about, then I'm O. K., the Mayor said complacently, smoothing a yellow glove over the silken pinks. You've give me some good points, but when it comes to vests, friend—well, you ain't got no real taste for vests. He walked to the door and looked out. There comes our carriage, he called. Get Rogers and we'll be movin'. Carriage! cried David. Sure. D'you think we're goin' to let Chambers and his bunch think we're a lot o' cheapskates? Not much. We're goin' to do this thing proper. But Mr. Chambers himself uses the street cars. Well, he can afford to, the Mayor returned with equanimity. We can't. When David walked with Rogers to the carriage he would not have been surprised had the Mayor handed them for their lapels a bunch of roses knotted with ribbon. They settled back against the cushions and suspense silenced them—and with hardly a word they rumbled over to Broadway, down into Wall Street and up before Mr. Chambers's office. As they stepped from the carriage, Rogers's thin fingers gripped David's hand like taut cords. Clasp, face, and the feverish fire in his eyes told David how great was the strain Rogers bore. This was the climax of his life.
  • 39.
    David returned thepressure of his hand. It'll be all right, he whispered reassuringly. They went up the broad steps into a tiled hallway, and turned to their right to the entrance of the private banking house of Alexander Chambers Co. An erect, liveried negro, whose stiffly formal manners suggested a spring within him, admitted them into a great light room, in which, behind a partition of glass and bronze grating that half reached the ceiling, sat scores of men working swiftly without appearance of speed. A word and a lifted finger from the black automaton directed them to the far end of the room. Here a man with the bearing of a statesman, Mr. Chambers's doorkeeper, bowed them into three leather-seated chairs, and carried their names into Mr. Chambers's private secretary. They did not speak; the nearness of the climax awed even the Mayor. And to add to the suspense throbbing within him, David began to wonder how he would be greeted by Mr. Chambers, whom he had not seen since his ante-prison days. Almost at once the doorkeeper reappeared, and with the subdued air that characterised the place, led them into a large office. The keen-faced secretary rose from a desk, ushered them through a door and into another office. At the great desk in the center of the room were Mr. Chambers and Mr. Jordon. The two men rose, and David's wonder as to how Mr. Chambers would receive him was at once relieved. An inclination of the head and a quiet, Glad to see you, Mr. Aldrich—that was all; nothing in his impassive face and manner to suggest that he remembered the prison-gap in David's life. The Mayor had announced during the carriage drive that if Chambers holds out his hand to me to be shook, I won't see nothin' but the ceilin'. But there was no opportunity thus to humiliate Mr. Chambers, for his response to the introduction was but a brief nod. So the Mayor could only declare his independence by opening the
  • 40.
    front of hisovercoat, like a pair of doors, upon his brilliant waistcoat, and by gazing into Mr. Chambers's face with aggressive hauteur. Mr. Jordon shook hands all around. Well, I hope we'll settle things up to-day, he said. As to how things were going to be settled, he had not the slightest doubt. He was certain the afternoon would force Mr. Chambers to his way of thinking. A few minutes before Mr. Chambers had asked his opinion as to the result of the conference, and he had said, They'll not give in; we've got to pay what they ask. Mr. Chambers had said nothing—which had not surprised him, for he knew it was instinctive with Mr. Chambers, even in such small matters as this, to let the completed act announce his purpose. They all sat down, David, Rogers, and the Mayor in three leather- bottomed chairs which stood in front and to the right of Mr. Chambers's desk. To the left, in a row, were half a dozen other chairs. Mr. Chambers leaned slightly forward and folded his hands on his desk's plate-glass top. Let us go straight to the point of this matter, he began, addressing Rogers, who sat between David and the Mayor. Mr. Jordon tells me you refuse to consider any sum less than one hundred and fifty thousand dollars for the land you control. Is that correct? It is. David's shoulder against Rogers told him that Rogers's lean frame was as rigid as the chair that held it. This then is your ultimatum? It is. Just as I told you, nodded Mr. Jordon, who was at Mr. Chambers's elbow. Mr. Chambers pressed a button beneath the desk and the door opened before his secretary.
  • 41.
    Please show inthe others, he requested quietly. The secretary bowed and the door closed. The others? breathed Rogers; and he and David and the Mayor looked at each other. The others! exclaimed Mr. Jordon. What others? Mr. Chambers sat silent, with unchanged face. The next instant the door, opening, answered the question. Into the room hesitantly filed the five owners of the land Rogers controlled. Rogers, David, and the Mayor, and also Mr. Jordon, rose in astonishment. The five stopped and stared at Rogers's party; plainly the surprise was mutual. Mr. Chambers, remaining in his seat, motioned the new-comers to the chairs at the left of his desk. Be seated, gentlemen. What's this mean? David asked, catching Rogers's arm. Rogers turned toward him, and for an instant David felt he was gazing into the abyss of fear. Then the arm he held tightened and Rogers looked toward his five clients and nodded. Good afternoon. I'm glad to see you, he said in an even tone. They sat down again, and Rogers's eyes fastened on the finely wrinkled face of Mr. Chambers—as did every other pair of eyes in the room. They vainly strove to read the purpose behind that inscrutable countenance. The purpose was simple enough. By bringing together the two elements of Rogers's crowd, each ignorant that the other was to be present, unprepared with common replies, he had thought he might possibly play them against each other in a way to bring them to his price; and if not, he would at least have them all together, and so be able to make an immediate settlement upon their terms. He had had a faint hope that Mr. Hawkins might discover something significant, but a note from the detective during the morning had contained no single new fact.
  • 42.
    Mr. Chambers didnot give the surprised group time to readjust itself. I have called together all parties interested in this transaction in order that we may more effectively reach an agreement, and in the hope that we may obviate the necessity for future meetings. He fastened his gray eyes upon the five owners, who were looking very much at a loss, and spoke coldly, calmly, as though his decision were unchangeable and his words immutable facts. First I desire to say that you gentlemen and your agent have a very inflated idea of the value of your property. The price is one we cannot, and will not, pay. If you want to take what we offer, very well. If not, I assure you that we shall run no streets, water-mains, sewers or gas pipes near your tract. We shall leave the neighbourhood of your property entirely unimproved. You will recall that our land lies between yours and the car line; we shall forbid anybody living on your land crossing our land. Nobody else is going to buy your land under these conditions. You can sell it only to us. The owners, struck while off guard, were dazed; and David, Rogers, and the Mayor, who had expected the exact opposite of this talk, were completely taken back. The cold, dominant voice went on. Such being the situation, does it not seem better to accept our price, which is a fair price, than to have your land made unsaleable, to have your investment tied up for years to come? He centered his personality upon the weakest of the five. I'm sure you think so, do you not? The man blinked—then nodded his head. But— began Rogers. And you, I'm sure you think so, Mr. Chambers demanded of another owner. Ye-e-s, said the man.
  • 43.
    This was child'splay to Mr. Chambers, who had browbeaten and overpowered even the directors of great corporations. He tried to rush his plan through, before the men could recover. It is plain you are all agreed. You see how your clients stand, Mr. Rogers. It certainly seems the only course to settle this matter at once upon the basis of our offer, which seems to them fair and just. Rogers saw that awe of the great financier and his intimidating statments had fairly stampeded his clients. Fighting down the momentary sense of defeat, and not heeding Mr. Chambers's words to him, he fixed his great burning eyes on the five men. Gentlemen! he said desperately. They shifted their gaze from Mr. Chambers to him. Gentlemen, I want to assure you that if we hold out we will get our own price. I happen to know they've just bought a piece of ground beyond ours; without ours it will be worthless to them. They've got to have our land! You understand? Simply got to have it! The Mayor lifted an emphatic yellow hand toward the owners. Of course they have! And don't you listen to no bluffin'. Rogers continued to talk for several minutes; and gradually confidence and determination came into the manner of the five. At the end Rogers turned to Mr. Chambers. We shall stand out for our price, he said firmly. Mr. Chambers had wrecked railroads in order to buy them in at a lower rate, but the similar procedure which he had threatened did not seem worth while here. He had tried his plan, which he had known had only a chance of success, and it had failed. There was but only one thing to do—to yield. He was thoughtful for several moments. If we should refuse your terms, we of course in the end would buy your land at our own price. But it occurs to me that the bother and extra cost of improving the land and opening it up at a later date, might be as much as the
  • 44.
    difference between yourprice and ours. What do you think, Mr. Jordon? There's much in what you say, returned the general manager, guardedly. Rogers, David, and the Mayor exchanged quick, triumphant glances. They had won. Mr. Chambers again relapsed into his appearance of thoughtfulness, and they all sat waiting for him to speak. David laid his hand on Rogers's and pressed it exultantly. While Mr. Chambers still sat thus, the office door opened and his secretary apologetically tiptoed across the room with a letter in his hand. I told Mr. Hawkins you were engaged, but he insisted that this was important, the secretary said to Mr. Chambers, and withdrew. Mr. Chambers read the note, thought a moment, slowly folded the sheet, then raised his eyes. Before going further, there is one point—of no importance, I dare say it will prove to be—that it might be well for us to touch upon. He centered his calm gaze upon the five owners. Since you have intrusted Mr. Rogers with the management of your property I take it that he has your fullest confidence? Ye-es, said one hesitatingly, and the others followed with the same word. Your confidence, of course, is founded on thorough acquaintance? David glanced from the impassive Mr. Chambers to Rogers. The mask of control had fallen from his face. He was leaning forward, his whole being at pause, his face a climax of fear and suspense. A succession of slow Yes-es came from the owners.
  • 45.
    Then of course,Mr. Chambers went on in his composed voice, you are perfectly aware that Mr. Rogers is a man with a long criminal career. A shiver ran through Rogers; he stiffened, grew yet whiter. There was a moment of blankest silence. Then the Mayor sprang up, his face purpling. It's an infernal lie! he shouted. Consternation struggled on the faces of the five; they looked from the rigid, white figure of Rogers to the calm face of Mr. Chambers. It isn't so, declared one tremulously. We will leave the question to Mr. Rogers, said Mr. Chambers's unexcitable voice, and he pivoted in his chair so that his steady eyes pointed upon Rogers. If Mr. Rogers is not 'Red Thorpe,' the one time notorious safe-blower, with scores of burglaries and three terms in the penitentiary against him, let him say so. However, before he denies it, I shall tell him that I have all the police data necessary for his identification. Now, Mr. Rogers. Their gaze on Rogers's face, all waited for him to speak—Jordon, astounded, the five pale with the fear of loss, the Mayor glowering, David with a sense that supreme ruin was crushing upon them. At length Rogers's lips moved. It is true, he whispered. What if it is? roared the Mayor at Mr. Chambers. There's nothin' agin him now! I'm making no charges against him, returned Mr. Chambers. This is merely some information it seemed his clients might be interested in having. All eyes again turned upon Rogers. He came slowly to his feet, walked to Mr. Chambers's desk, leaned his hands upon it and directed his large burning eyes down into Mr. Chambers's face.
  • 46.
    I have donemany bad things, yes, he said in a voice, low, flame- hot, but nothing as bad as you have just done. You have stolen more this minute than I have stolen in my lifetime. He held his eyes, blazing with accusation, upon Mr. Chambers's imperturbable face for several moments, then looked about on the five owners. There was a chance, a bare chance, they might not turn against him. Yes, I am Red Thorpe, he said in a vibrant voice that became more and more appealing with every word. I knew it would be found out —some day. There are some things I always told myself I'd say to the world when this day came. But to you I want to say only this: For ten years I've been honesty itself. I've been honest with you— you know it. If you stand by me, I'll do everything I've promised. He stood rigid, awaiting their verdict. There was a strained silence. The five looked dazedly at Rogers, at one another, completely at a loss. If the gentlemen desire to entrust their affairs to a most dangerous criminal, one who might defraud them of everything, that is their privilege, put in Mr. Chambers quietly. Their bewilderment was gone; Mr. Chambers's words had roused their property instinct. A murmuring rose among them. David and the Mayor sprang up, but Rogers raised a hand and they remained beside their chairs. A flame began to burn in his white cheeks, in his deep eyes. I knew this day was coming, he said in a low voice, that had a wild bitter ring of challenge. Instead of you, you weaklings—he looked at the five—and you, you mere soulless Acquisition—his eyes blazed at Mr. Chambers—I wish I had the world before me. I'd like to tell it what a vast fool it is in its treatment of such as me—how eyeless and brainless and soulless! Oh, what a fool!... But the world's not here.
  • 47.
    He was silentfor a moment. And why am I at an end?—why? His answer rang through the room with a passionate resentment, with an agony of loss. Because the world did not care to step in and point the right way to me. To have saved me would have been so easy! I was worth saving! I had brains—there was a man in me. Whose fault is it that I am now at the end?—a miserable remnant of a man! The world's. I was robbed of my chance in life—robbed, yes sir, robbed!—and I could have made it a splendid life! Ah, how I've wanted to make it a splendid life. And the world—the world that robbed me!—that world calls me criminal. And I must pay the penalty, and the penalty is—what you see! Oh, my God! For ten years Rogers had cherished the purpose of accusing the world on the day of his exposure—but now his loss was so overwhelming, speech to these people was so utterly useless, strength was so little, that he could say no more—could only, leaning against the desk, gaze in hatred and despair at Mr. Chambers and the owners. The faces of the five were pale and blank. There was a trace of sympathy in Mr. Jordon's face, and a momentary change in Mr. Chambers's that indicated—who knows what? David sprang to Mr. Chambers's desk, his soul on fire. This, sir, is a damned inhuman outrage! he flung down into the older man's face. It might also have been of interest to Mr. Rogers's clients, Mr. Chambers returned calmly, to have known the record of Mr. Rogers's associate. David's wrath had no time to fashion a retort, for the Mayor, at his side, hammered the desk with a great yellow-gloved fist. That's what it is! he shouted. It's a low, dirty, murdering trick! I merely acquainted his clients with his record—which they have a right to know.
  • 48.
    A huge sarcasticlaugh burst from the Mayor, and he pushed his face down into Mr. Chambers's. You, he roared, you, when you're in a deal, you always show your clients your record, don't you! Rogers, out of whose cheeks the fire had gone, leaving them an ashen gray, tugged at their sleeves. It's no use!—let's go! he begged, chokingly. Quick! David's eyes blazed down upon Mr. Chambers. Yes, let's leave the infernal thief! He took one of Rogers's arms, the Mayor, shaking a huge fist in Mr. Chambers's face, took the other, and they made for the door. Mr. Chambers, still seated, watched Rogers's thin figure, head pitched forward and sunken between his shoulders, pass out of the office. Brushing people out of his way had become the order of his life, and he did it impersonally, without malice, as a machine might have done it. And Rogers was one of the most insignificant he had ever brushed aside. Mr. Rogers, as of course you are aware, has not the rights of a citizen, Mr. Chambers said to the five. Consequently his agreement with you is invalid; he can not hold you to it. If you will kindly wait in the next room a moment, Mr. Jordon will speak with you. After they had filed out he remarked to Jordon: They are stampeded. They will come to your terms. I leave them in your hands. He touched the button on his desk and his secretary appeared. If Senator Speed has come, he said, ask him to step in.
  • 49.
    When David andRogers were home again, and the Mayor and his profanity had gone, there was a long silence during which both sat motionless. David searched his mind for some word of hope for Rogers, who was a collapsed bundle in a Morris chair, gazing through the window into the dusky air-shaft. At length he bent before Rogers and took his hand. We'll go to some new place together, and start all over again, he said. Rogers turned his face—the only part of him that the deepening twilight had not blotted out. It seemed a bodyless face—the mask of hopelessness. It's no use—I'm all in, he whispered. Even if I had the courage to make another fight, there's no strength. He was silent for several moments. Then a low moan broke from him. Ten years! he whispered. And this is the end!
  • 50.
  • 51.
    CHAPTER I HELEN CHAMBERSGETS A NEW VIEW OF HER FATHER The morning light that sunk down the deep air-shaft and directed its dimmed gaze through the window, saw Rogers lying dressed on the couch and David sitting with sunken head at the window, a sleepless night on both their faces. There had been little talk during the crawling hours, save when the Mayor had dropped in near midnight and set walls and furniture trembling with his deep chest-notes of profanity. Even Tom, awed by the overwhelming disaster, moved noiselessly about and spoke only a few whispered monosyllables. The blow was too heavy to be talked of—too heavy for them to think of what should next be done. Once, however, David, whose personal loss was almost forgotten in his sympathy for Rogers, had spoken of the future. There is no future, Rogers had said. In a few days the owners of my buildings will hear about me. They will take the agency from me. I have a few hundred dollars. That will soon go. And then—? The dinginess in the light began to settle like the sediment of a clearing liquid, and the sense that the sun must be breakfast-high worked slowly to the seat of David's will. He rose, quietly set a few things in order, Rogers's eyes following him about, then put on his hat with the purpose of going to the Pan-American for his breakfast and to bring Rogers's. As he started for the door Rogers reached forth his hand. I'm glad you found out about me, Aldrich, he said. I can never tell you how much you've meant to me during the last eight months, and how much you mean to me now.
  • 52.
    David grasped thehand and looked down into the despairing eyes. I'm glad, he said, simply. After a moment Rogers's weak grip relaxed and he turned away his face with a sigh. David went softly out. While David was at breakfast—his appetite shrunk from it—the Mayor sat down at his table, which had the privacy of an empty corner. By the way, the Mayor whispered, d'you have any idea yet how Chambers found out? No more than yesterday. We told you of the call of that detective. He must have been from Chambers, and he must have made the discovery. But how, we don't know. Poor Rogers! The Mayor shook his head sadly, thoughtfully. His face began slowly to redden and his eyes to flash. He thrust out a big fist. Friend, I don't believe in fightin'—but say, I'd give five years to flatten the face that belongs to Mr. Chambers! David had to smile at the idea of the Mayor and Mr. Chambers engaged in fisticuffs. It's sad, but men like Mr. Chambers are beyond the reach of justice. The Mayor dropped his belligerent attitude. Oh, I don't know. Mebbe they can't be reached with fists, or law—but there's other ways. And I'd like to jab him any old way. I've been thinkin' about that daughter o' his. Wouldn't I like to tell her a few things about her dad! The Mayor swayed away in response to a summons from the kitchen, and a few minutes later David entered his room bearing in a basket Rogers's prescribed milk and soft-boiled eggs. Rogers drank down the eggs, which David had stirred to a yellow liquid, and after them the milk, and then with a gasp of relief sank back upon the couch. As David was clearing up after the breakfast he heard some one—Kate he guessed—enter the office, and presently there was a rap on the door between the two rooms. David opened the door and
  • 53.
    found, as hehad expected, Kate Morgan. She wore her coat and hat, just as she had come from the street. On her face was a strange, compressed look, and her eyes were red-lidded. Can I come in? she asked with tremulous abruptness. Please do, said David. She entered and moved to the foot of the couch where she could look down on Rogers. I've come to say something—and to say good-bye, she announced. Say good-bye? Rogers sat up. Good-bye? Why? Oh, you have a new position? No. I've no right to be here. You won't want me when you know. So I'm going. Her face tightened with the effort of holding down sobs. The two men looked at her in wonderment, waiting. You know how broke up I was when you told me about yesterday afternoon, she went on, and how mad I was at Mr. Chambers. And then to find out what I have!... Here's what I've come to tell you. Yesterday afternoon and last night my father was drinking a great deal. I wondered where he got the money. This morning I went through his clothes while he was asleep; there were several dollars. I asked him about it. He lied to me, of course. But I got the truth out of him in the end. You remember that detective you told me about last night. When he left here yesterday about noon he happened to see my father sweeping off the sidewalk. He began to talk to my father, got my father to drinking, gave him some money. And after a while my father—he'd learned it somehow—he told the detective—he told him you were Red Thorpe. The two men were silent a moment, looking at the strained face down which tears were now running.
  • 54.
    So that's howit happened! Rogers breathed. Yes—my father told! The tremor in her voice had grown to sharp sobs—of shame, agony, and wrath. My father brought all this on you. And it's all because of me. If you both hadn't tried to be good to me, my father would not have been here and everything would have turned out right. It's all because of me!—all my fault!—don't you see? I know you'll both hate me now. I know you'll want me to go away. Well—I'm going. But I want to tell you how sorry I am— how sorry!... Good-bye. David wanted to speak to her, but this was Rogers's affair rather than his. She swept them both with her brimming eyes. Good-bye, she said again, and turned to the door. Miss Morgan! called Rogers. She paused and looked at him. Don't go yet. He rose and came to her with outstretched hand. It wasn't your fault. She stared dazedly at him. You're ruined—you told me so last night, and I did it. Yes, I did it. No. You couldn't help it. You mustn't go at all. She took his hand slowly, in astonishment. Oughtn't I to go? she quavered. You must stay and help bear it, he said. She looked steadfastly into his eyes. You're mighty good to me, she breathed in a dry whisper. And then a sob broke from her, and turning abruptly she went into the office.
  • 55.
    In the afternoonDavid walked over to St. Christopher's to meet Helen Chambers. Besides his bitterness, and his suspense over seeing her, David felt as he entered the door of the Mission (what he had felt on his three or four previous visits) a fear of meeting some wrathful, upbraiding body who would recognise him. But he met no one except a group of children coming with books from the library, and unescorted he followed the familiar way to the reception room, where Helen had written she would meet him. This, like the rest of the Mission's interior he had seen, was practically unchanged; and in this maintenance of old arrangements he read reverence for Morton. He wandered about the room, looking at the friendly, brown-framed prints that summoned back the far, ante-prison days. The past, flooding into him, and his sense of the nearness of Helen, crowded out for the time all his bitterness over Rogers's destruction. When Helen appeared at the door, he was for an instant powerless to move, so thrilled was he with his love for her. She came across the room with a happy smile, her hand held out. He strode toward her, and as he caught her hand his blood swept through him in a warm wave. I'm so glad to see you again! she cried, and a little laugh told him how sincere her joy was. A sudden desire struggled to tell her, truly, how great was his gladness, and its kind, at seeing her again; and fighting the desire back made him dizzy. And I to see you! he said. It's been—let's see—five months since I've seen you, and— Five months and four days, the desire within David corrected. And four days, she accepted, with a laugh. And there've been so many things during that time I've wanted to talk with you about. But how are you?
  • 56.
    She moved neara window. She was full of spirits this day. The out- door life from which she had just come, the wind, the sun, the water, were blowing and shining and rippling within her. David, in analysing his love for her, had told himself he loved her because of her able mind, her nobility of soul, her feeling of responsibility toward life. Had he analysed further he would have found that her lighter qualities were equally responsible for his love—her sense of humour, the freshness of her spirits, her joy in the pleasures of life. She had never shown him this lighter side with more freedom than now—not even during the summer seven years before when for two weeks they had been comrades;—and David, yesterday forgotten, yielded to her mood. He frankly looked her over. She wore a tailor-made suit of a rich brown, that had captured some of the warm glow of sun-lit autumn, and a little brown hat to match on which bloomed a single red rose. Her face had the clear fresh brown of six months' sun, and the sun's sparkle, stored in her deep eyes, beamed joyously from them. She was a long vacation epitomised, idealised. May I say, he remarked at length, with the daring of her own free spirit, that you are looking very well? For her part, she had been making a like survey of him. His tall figure, which had regained its old erectness, was enveloped in clothes that fit and set it off; and his clean-lined face, whose wanness had been driven away by the life in hers, looked distinguished against the background of the dark-green window hangings. You may, she returned, if you will permit me to say the same of you. Of me? Oh, no. I'm an old man, he said exultantly. Do you know how old I am? He touched his head. See! The gray hairs! Yes—at least a dozen, she said gravely. Such an old man!
  • 57.
    Welcome to ourwebsite – the ideal destination for book lovers and knowledge seekers. With a mission to inspire endlessly, we offer a vast collection of books, ranging from classic literary works to specialized publications, self-development books, and children's literature. Each book is a new journey of discovery, expanding knowledge and enriching the soul of the reade Our website is not just a platform for buying books, but a bridge connecting readers to the timeless values of culture and wisdom. With an elegant, user-friendly interface and an intelligent search system, we are committed to providing a quick and convenient shopping experience. Additionally, our special promotions and home delivery services ensure that you save time and fully enjoy the joy of reading. Let us accompany you on the journey of exploring knowledge and personal growth! ebookname.com