Systems Analysis and Design: An Object-Oriented Approach with UML, Sixth Edition helps students develop the core skills required to plan, design, analyze, and implement information systems. Offering a practical hands-on approach to the subject, this textbook is designed to keep students focused on doing SAD, rather than simply reading about it. Each chapter describes a specific part of the SAD process, providing clear instructions, a detailed example, and practice exercises. Students are guided through the topics in the same order as professional analysts working on a typical real-world project.
Now in its sixth edition, this edition has been carefully updated to reflect current methods and practices in SAD and prepare students for their future roles as systems analysts. Every essential area of systems analysis and design is clearly and thoroughly covered, from project management, to analysis and design modeling, to construction, installation, and operations. The textbook includes access to a range of teaching and learning resources, and a running case study of a fictitious healthcare company that shows students how SAD concepts are applied in real-life scenarios.
Table of Contents
Chapter 1 Introduction to Systems Analysis and Design 1
Introduction 1
Typical Systems Analyst Roles and Skills 2
Business Analyst 3
Systems Analyst 3
Infrastructure Analyst 3
Change Management Analyst 3
Project Manager 4
The Systems Development Life Cycle 4
Planning 5
Analysis 5
Design 6
Implementation 6
Systems Development Methodologies 7
Structured Design 7
Rapid Application Development (RAD) 9
Object-Oriented Systems Analysis and Design (OOSAD) 11
Agile Development 13
DevOps 16
Custom Methodologies 17
The Unified Process 17
Phases 18
Workflows 20
Extensions to the Unified Process 22
The Unified Modeling Language 26
Applying the Concepts at Patterson Superstore 28
Chapter Review 28
Key Terms 28
Questions 29
Exercises 30
Minicases 30
Appendix Basic Characteristics of Object-Oriented Systems 32
Classes and Objects 32
Methods and Messages 33
Encapsulation and Information Hiding 34
Polymorphism and Dynamic Binding 34
Inheritance 36
Appendix Review 39
Key Terms 40
Questions 40
Exercises 40
Chapter 2 Project Management 41
Introduction 41
Project Identification 43
System Request 44
Feasibility Analysis 45
Technical Feasibility 45
Economic Feasibility 46
Organizational Feasibility 51
Project Selection 53
Ethical Considerations 54
Traditional Project Management Tools 55
Work Breakdown Structures 55
Gantt Chart 57
Network Diagram 57
Project Effort Estimation 60
Creating and Managing the Workplan 65
Evolutionary Work Breakdown Structures and Iterative Workplans 65
Managing Scope 69
Timeboxing 70
Refining Estimates 71
Managing Risk 72
Agile Alternatives to Iterative Workplans 73
Staffing the Project 74
Tuckman’s Stages of Small Group Development 74
Characteristics of a Jelled Team 75
Staffing Plan 76
Motivation 79
Handling Conflict 80
Meeting Management 81
Environment and Infrastructure Management 83
CASE Tools 83
Standards 83
Documentation 84
Configuration and Change Management 85
Applying the Concepts at Patterson Superstore 87
Chapter Review 87
Key Terms 88
Questions 88
Exercises 89
Minicases 90
Part One Analysis Modeling 93
Chapter 3 Requirements Determination 95
Introduction 95
Requirements Determination 96
Defining a Requirement 96
Real-World Problems with Requirements Determination 98
Requirements Analysis Approaches 99
Problem Analysis 99
Root Cause Analysis 100
Duration Analysis 100
Activity-Based Costing 102
Informal Benchmarking 102
Outcome Analysis 102
Technology Analysis 103
Activity Elimination 103
Requirements-Gathering Techniques 103
Interviews 104
Questionnaires 108
Observation 111
Document Analysis 112
Selecting the Appropriate Techniques 113
Text Analysis 115
Requirements Definition 117
Creating a Requirements Definition 117
User Stories 119
The System Proposal 120
Applying the Concepts at Patterson Superstore 121
Chapter Review 122
Key Terms 122
Questions 122
Exercises 123
Minicases 124
Chapter 4 Business Process and Functional Modeling 126
Introduction 126
Business Process Identification with Use Cases and Use-Case Diagrams 128
Types of Use Cases 129
Elements of Use-Case Diagrams 130
Identifying the Major Use Cases 134
Creating a Use-Case Diagram 135
Business Process Modeling with Activity Diagrams 138
Elements of an Activity Diagram 139
Guidelines for Creating Activity Diagrams 143
Creating Activity Diagrams 145
Business Process Documentation with Use-Case Descriptions 148
Elements of a Use-Case Description 149
Guidelines for Creating Use-Case Descriptions 152
Creating Use Case Descriptions 153
Verifying and Validating the Business Processes and Functional Models 160
Verification and Validation through Walkthroughs 160
Functional Model Verification and Validation 161
Applying the Concepts at Patterson Superstore 163
Chapter Review 164
Key Terms 164
Questions 164
Exercises 165
Minicases 167
Chapter 5 Structural Modeling 169
Introduction 169
Structural Models 170
Classes, Attributes, and Operations 170
Relationships 171
Object Identification 172
Textual Analysis 173
Brainstorming 173
Patterns 175
CRC Cards 178
Responsibilities and Collaborations 178
Elements of a CRC Card 179
Role-Playing CRC Cards with Use Cases 180
Class Diagrams 181
Elements of a Class Diagram 181
Simplifying Class Diagrams 190
Object Diagrams 190
Structural Models Using CRC Cards and Class Diagrams 191
Campus Housing Example 193
Library Example 193
Verifying and Validating the Structural Model 200
Balancing Functional and Structural Models 203
Applying the Concepts at Patterson Superstore 206
Chapter Review 206
Key Terms 206
Questions 207
Exercises 207
Minicases 209
Chapter 6 Behavioral Modeling 211
Introduction 211
Behavioral Models 212
Interaction Diagrams 213
Objects, Operations, and Messages 213
Activity Diagrams 213
Sequence Diagrams 215
Creating a Sequence Diagram 223
Crude Analysis 230
Campus Housing Example 231
Library Example 232
Behavioral State Machines 232
States, Events, Transitions, Actions, and Activities 232
Elements of a Behavioral State Machine 234
Guidelines for Creating Behavioral State Machines 238
Creating a Behavioral State Machine 238
Campus Housing Example 239
Library Example 240
Verifying and Validating the Behavioral Model 241
Balancing Functional and Behavioral Models 242
Balancing Structural and Behavioral Models 244
Applying the Concepts at Patterson Superstore 248
Chapter Review 248
Key Terms 248
Questions 249
Exercises 249
Minicases 251
Part Two Design Modeling 253
Chapter 7 Moving on to Design 255
Introduction 255
Verifying and Validating the Analysis Models 257
Evolving the Analysis Models into Design Models 257
Factoring 258
Partitions and Collaborations 258
Layers 259
Packages and Package Diagrams 263
Guidelines for Creating Package Diagrams 265
Creating Package Diagrams 266
Verifying and Validating Package Diagrams 268
Design Criteria 270
Coupling 271
Cohesion 273
Connascence 274
Design Strategies 275
Custom Development 275
Packaged Software 276
Outsourcing 277
Selecting a Design Strategy 279
Selecting an Acquisition Strategy 280
Alternative Matrix 281
Applying the Concepts at Patterson Superstore 282
Chapter Review 283
Key Terms 283
Questions 283
Exercises 284
Minicases 285
Chapter 8 Class and Method Design 287
Introduction 287
Object Design Activities 289
Adding Specifications 289
Identifying Opportunities for Reuse 290
Restructuring the Design 293
Optimizing the Design 294
Mapping Problem-Domain Classes to Implementation Languages 296
Constraints and Contracts 300
Types of Constraints 302
Elements of a Contract 302
Example 305
Method Specification 310
General Information 310
Events 310
Message Passing 311
Algorithm Specifications 312
Example 313
Verifying and Validating Class and Method Design 314
Applying the Concepts at Patterson Superstore 317
Chapter Review 317
Key Terms 317
Questions 317
Exercises 318
Minicases 319
Chapter 9 Data Management Layer Design 320
Introduction 320
Object Persistence Formats 321
Sequential- and Random-Access Files 321
Relational Databases 324
Object-Relational Databases 326
Object-Oriented Databases 326
NoSQL Data Stores 327
Selecting an Object Persistence Format 329
Mapping Problem Domain Objects to Object Persistence Formats 331
Mapping Problem Domain Objects to an OODBMS Format 332
Mapping Problem Domain Objects to an ORDBMS Format 335
Mapping Problem Domain Objects to a RDBMS Format 338
Designing Data Access and Manipulation Classes 340
Nonfunctional Requirements and Data Management Layer Design 344
Verifying and Validating the Data Management
Layer 345
Applying the Concepts at Patterson Superstore 346
Chapter Review 346
Key Terms 346
Questions 347
Exercises 347
Minicases 348
Appendices
Appendix 9-1: Optimizing RDBMS-Based Object Storage 349
Optimizing Storage Efficiency 349
Optimizing Data Access Speed 352
Estimating Data Storage Size 358
Appendix 9-2: Converting Class Diagrams to Entity-Relationship Diagrams 359
Appendix Review 361
Key Terms 361
Questions 361
Exercises 361
Minicases 362
Chapter 10 Human-Computer Interaction Layer Design 364
Introduction 364
Principles for User Interface Design 365
Layout 366
Content Awareness 367
Aesthetics 367
User Experience 368
Consistency 369
Minimizing User Effort 369
User Interface Design Process 369
Use Scenario Development 370
Navigation Structure Design 371
Interface Standards Design 373
Interface Design Prototyping 374
Common Sense Approach to User Interface Design 378
Navigation Design 378
Basic Principles 379
Types of Navigation Controls 379
Messages 381
Navigation Design Documentation 381
Input Design 383
Basic Principles 383
Types of Inputs 385
Input Validation 385
Output Design 386
Basic Principles 386
Types of Outputs 388
Media 388
Mobile Computing and User Interface Design 389
Social Media and User Interface Design 392
Games, Multidimensional Information Visualizations, and Immersive Environments 394
Games, Gamification, and User Interface Design 394
Multidimensional Information Visualization Design 396
User Interface Design and Immersive Environments 398
International and Cultural Issues and User Interface Design 400
Multilingual Requirements 400
Color 401
Cultural Differences 401
Nonfunctional Requirements and Human-Computer Interaction Layer Design 404
Verifying and Validating the Human-Computer Interaction Layer 405
Applying the Concepts at Patterson Superstore 407
Chapter Review 407
Key Terms 407
Questions 408
Exercises 409
Minicases 410
Chapter 11 Physical Architecture Layer Design 414
Introduction 414
Elements of the Physical Architecture Layer 415
Architectural Components 415
Server-Based Architectures 416
Client-Based Architectures 416
Client-Server Architectures 417
Client-Server Tiers 418
Selecting a Physical Architecture 420
Cloud Computing 422
Ubiquitous Computing and the Internet of Things 424
Green IT 427
Infrastructure Design 428
Deployment Diagram 428
Network Model 431
Hardware and System Software Specifications 434
Nonfunctional Requirements and Physical Architecture Layer Design 436
Operational Requirements 437
Performance Requirements 438
Security Requirements 440
Cultural and Political
Requirements 443
Synopsis 445
Verifying and Validating the Physical Architecture Layer 445
Applying the Concepts at Patterson Superstore 446
Chapter Review 446
Key Terms 446
Questions 447
Exercises 448
Minicases 449
Part Three Construction, Installation, and Operations 451
Chapter 12 Construction 452
Introduction 452
Managing Programming 453
Assigning Programmers 453
Coordinating Activities 454
Managing the Schedule 454
Cultural Issues 456
Developing Documentation 458
Types of Documentation 459
Designing Documentation Structure 459
Writing Documentation Topics 461
Identifying Navigation Terms 461
Designing Tests 463
Testing and Object Orientation 464
Test Planning 466
Unit Tests 469
Integration Tests 472
System Tests 473
Acceptance Tests 475
Testing and Security Considerations 475
Applying the Concepts at Patterson Superstore 476
Chapter Review 476
Key Terms 476
Questions 477
Exercises 477
Minicases 478
Chapter 13 Installation and Operations 479
Introduction 479
Cultural Issues and Information Technology Adoption 481
Conversion 483
Conversion Style 484
Conversion Location 485
Conversion Modules 485
Selecting the Appropriate Conversion Strategy 486
DevOps and Continuous Delivery 487
Change Management 488
Understanding Resistance to Change 489
Revising Management Policies 490
Assessing Costs and Benefits 491
Motivating Adoption 493
Enabling Adoption: Training 494
Post-Implementation Activities 496
System Support 496
System Maintenance 497
Project Assessment 499
Applying the Concepts at Patterson Superstore 501
Chapter Review 501
Key Terms 501
Questions 502
Exercises 502
Minicases 503
Index I-1