Contents
PART 1 SYSTEMS ANALYSIS FUNDAMENTALS 1
1 Systems, Roles, and Development Methodologies 1
Need for Systems Analysis and Design 2
Roles of a Systems Analyst 2
Systems Analyst as Consultant 2
Qualities of a Systems Analyst 4
The Systems Development Life Cycle 4
Identifying Problems, Opportunities, and Objectives 5
Determining Human Information Requirements 5
Analyzing System Needs 6
Designing the Recommended System 6
Developing and Documenting Software 7
Testing and Maintaining the System 7
Implementing and Evaluating the System 7
The Impact of Maintenance 7
Using CASE Tools 8
The Agile Approach 10
Exploration 10
Planning 11
Iterations to the First Release 12
Productionizing 12
Maintenance 12
Object-Oriented Systems Analysis and Design 12
Object-Oriented Similarities to SDLC 12
Choosing Which Systems Development Method to Use 14
Developing Open Source Software 15
Why Organizations Participate in Open Source Communities 15
The Role of the Analyst in Open Source Software 15
Summary 16
Keywords and Phrases 17
Review Questions 17
Selected Bibliography 18
2 Understanding and Modeling Organizational Systems 19
Organizations as Systems 20
Interrelatedness and Interdependence of Systems 20
Virtual Organizations and Virtual Teams 21
Taking a Systems Perspective 22
Enterprise Systems: Viewing the Organization as a System22
Depicting Systems Graphically 24
Systems and the Context-Level Data Flow Diagram 24
Systems and the Entity-Relationship Model 25
Use Case Modeling 30
Use Case Symbols 31
Developing System Scope 33
Use Case Relationships 32
Developing Use Case Scenarios 34
Developing Use Case Diagrams 33
Use Case Levels 35
Creating Use Case Descriptions 38
Why Use Case Diagrams Are Helpful 39
Levels of Management 39
Implications for Information Systems Development 40
Collaborative Design 41
Organizational Culture 42
Technology抯 Impact on Culture 42
Summary 43
Keywords and Phrases 44
Review Questions 44
Problems 45
Group Projects 46
Selected Bibliography 47
3 Project Management 48
Project Initiation 49
Problems in an Organization 49
Defining the Problem 49
Selection of Projects 53
Determining Feasibility 54
Determining Whether It Is Possible 54
Estimating Workloads 55
Ascertaining Hardware and Software Needs 56
Inventorying Computer Hardware 56
Evaluating Computer Hardware for Purchase 58
Renting Time and Space in the Cloud 58
Evaluation of Vendor Support for Computer Hardware 60
Understanding the Bring Your Own Device (BYOD) Option 60
Creating Custom Software 61
Purchasing COTS Software 62
Using the Services of a SaaS Provider 63
Evaluation of Vendor Support for Software and SaaS 64
Identifying, Forecasting, and Comparing Costs and Benefits 65
Forecasting 65
Identifying Benefits and Costs 65
Comparing Costs and Benefits 67
Managing Time and Activities 68
The Work Breakdown Structure 68
Time Estimation Techniques 69
Project Scheduling 71
Using Gantt Charts for Project Scheduling 72
Using PERT Diagrams 73
Controlling a Project 76
Estimating Costs and Preparing the Budget 76
Managing Risk 78
Managing Time Using Expediting 79
Controlling Costs Using Earned Value Management 80
Managing the Project Team 84
Assembling a Team 84
Communication Strategies for Managing Teams 84
Setting Project Productivity Goals 86
Motivating Project Team Members 86
Managing Ecommerce Projects 86
Creating a Project Charter 87
The Systems Proposal 87
What to Include in a Systems Proposal 87
Using Figures for Effective Communication 89
Summary 92
Keywords and Phrases 93
Review Questions 94
Problems 94
Group Projects 99
Selected Bibliography 100
PART 2 INFORMATION REQUIREMENTS ANALYSIS 103
4 Information Gathering: Interactive Methods 103
Interviewing 104
Five Steps in Interview Preparation 104
Question Types 105
Arranging Questions in a Logical Sequence 107
Writing the Interview Report 110
Listening to Stories 110
Stories Are Made Up of Elements 111
Reasons for Telling Stories 112
Joint Application Design 113
Conditions That Support the Use of JAD 113
Who Is Involved? 113
Where to Hold JAD Meetings 114
Accomplishing a Structured Analysis of Project Activities 115
Potential Benefits of Using JAD in Place of Traditional Interviewing 115
Potential Drawbacks of Using JAD 115
Using Questionnaires 115
Planning for the Use of Questionnaires 116
Writing Questions 117
Designing Questionnaires 122
Administering Questionnaires 123
Summary 125
Keywords and Phrases 126
Review Questions 127
Problems 127
Group Projects 130
Selected Bibliography 131
5 Information Gathering: Unobtrusive Methods 132
Sampling 133
The Need for Sampling 133
Sampling Design 133
The Sample Size Decision 135
Analyzing Quantitative Documents 137
Systematically Examining Quantitative Documents 137
Analyzing Qualitative Documents 141
Systematically Examining Qualitative Documents 141
Using Text Analytics 143
Observing a Decision Maker抯 Behavior 143
Observing a Typical Manager抯 Decision-Making Activities 144
Observing the Physical Environment 145
Structured Observation of the Environment (STROBE) 145
Applying STROBE 147
Summary 147
Keywords and Phrases 149
Review Questions 149
Problems 149
Group Projects 151
Selected Bibliography 151
6 Agile Modeling, Prototyping, and Scrum 153
Prototyping 154
Kinds of Prototypes 154
The Users?Role in Prototyping 156
Agile Modeling 156
Values and Principles of Agile Modeling 156
Activities, Resources, and Practices of Agile Modeling 159
The Agile Development Process 163
Scrum 165
Roles Played in Scrum 166
The Product Backlog 167
The Sprint Cycle 167
Other Unique Scrum Features 168
Kanban 170
Scrum Advantages and Disadvantages 171
DevOps: A Cultural Shift for App Development 172
Comparing Agile Modeling and Structured Methods 173
Lessons Learned from Agile Modeling 173
Improving Efficiency in Knowledge Work: SDLC versus Agile 174
Risks Inherent in Organizational Innovation 177
Summary 180
Keywords and Phrases 180
Review Questions 181
Problems 181
Group Projects 183
Selected Bibliography 183
PART 3 THE ANALYSIS PROCESS 185
7 Using Data Flow Diagrams 185
The Data Flow Approach to Human Requirements Determination 186
Conventions Used in Data Flow Diagrams 186
Developing Data Flow Diagrams 187
Creating the Context Diagram 187
Drawing Diagram 0 (The Next Level) 188
Creating Child Diagrams (More Detailed Levels) 190
Checking Diagrams for Errors 190
Logical and Physical Data Flow Diagrams 192
Developing Logical Data Flow Diagrams 195
Developing Physical Data Flow Diagrams 196
Partitioning Data Flow Diagrams 198
A Data Flow Diagram Example 200
Developing the List of Business Activities 201
Creating a Context-Level Data Flow Diagram 201
Drawing Diagram 0 201
Creating a Child Diagram 202
Creating a Physical Data Flow Diagram from the Logical DFD 202
Partitioning the Physical DFD 204
Partitioning Websites 206
Communicating Using Data Flow Diagrams 207
Summary 210
Keywords and Phrases 211
Review Questions 211
Problems 211
Group Projects 213
Selected Bibliography 214
8 Analyzing Systems Using Data Dictionaries 215
The Data Dictionary 216
Need for Understanding the Data Dictionary 216
The Data Repository 216
Defining the Data Flows 217
Describing Data Structures 218
Logical and Physical Data Structures 219
Data Elements 221
Data Stores 224
Creating a Data Dictionary 225
Analyzing Input and Output 225
Developing Data Stores 226
Using a Data Dictionary 228
Using Data Dictionaries to Create XML 230
XML Document Type Definitions 232
XML Schemas 233
Summary 234
Keywords and Phrases 235
Review Questions 235
Problems 235
Group Projects 237
Selected Bibliography 237
9 Process Specifications and Structured Decisions 239
Overview of Process Specifications 240
Process Specification Format 241
Structured English 242
Writing Structured English 242
Data Dictionary and Process Specifications 245
Decision Tables 246
Developing Decision Tables 248
Checking for Completeness and Accuracy 250
Decision Trees 252
Drawing Decision Trees 252
Choosing a Structured Decision Analysis Technique 254
Summary 254
Keywords and Phrases 255
Review Questions 255
Problems 255
Group Projects 257
Selected Bibliography 258
10 Object-Oriented Systems Analysis and Design Using UML 259
Object-Oriented Concepts 260
Objects 260
Classes 260
Inheritance 261
CRC Cards and Object Think 262
Interacting During a CRC Session 264
Unified Modeling Language (UML) Concepts and Diagrams 264
Use Case Modeling 267
Activity Diagrams 269
Creating Activity Diagrams 271
Repository Entries for an Activity Diagram 272
Sequence and Communication Diagrams 273
Sequence Diagrams 273
Communication Diagrams 275
Class Diagrams 276
Method Overloading 277
Types of Classes 277
Defining Messages and Methods 278
Enhancing Sequence Diagrams 278
A Class Example for the Web 279
Presentation, Business, and Persistence Layers in Sequence Diagrams 281
Enhancing Class Diagrams 281
Relationships 282
Generalization/Specialization (Gen/Spec) Diagrams 285
Statechart Diagrams 288
A State Transition Example 289
Packages and Other UML Artifacts 290
Putting UML to Work 292
The Importance of Using UML for Modeling 294
Summary 295
Keywords and Phrases 296
Review Questions 297
Problems 297
Selected Bibliography 298
PART 4 THE ESSENTIALS OF DESIGN 299
11 Designing Effective Output 299
Output Design Objectives 300
Designing Output to Serve the Intended Purpose 300
Designing Output to Fit the User 300
Delivering the Appropriate Quantity of Output 300
Making Sure the Output Is Where It Is Needed 300
Providing Output on Time 300
Choosing the Right Output Method 301
Relating Output Content to Output Method 301
Output Technologies 301
Factors to Consider When Choosing Output Technology 301
Realizing How Output Bias Affects Users 306
Recognizing Bias in the Way Output Is Used 306
Avoiding Bias in the Design of Output 307
Designing Printed Output 307
Designing Output for Displays 308
Guidelines for Display Design 308
Using Graphical Output in Screen Design 311
Dashboards 311
Infographics 313
Designing a Website 313
Responsive Web Design 313
Flat Web Design 315
General Guidelines for Designing Websites 315
Specific Guidelines for Website Design 317
Web 2.0 Technologies 320
Social Media Design 322
Guidelines for Social Media Design 322
Designing Apps for Smartphones and Tablets 323
Set Up a Developer Account 324
Choose a Development Process 324
Be an Original 324
Determine How You Will Price the App 325
Follow the Rules 326
Design Your Icon 326
Choose an Appropriate Name for the App 326
Design for a Variety of Devices 326
Design the Output for the App 326
Design the Output a Second Time for a Different Orientation 327
Share a Prototype of Your Work 327
Design the App抯 Logic 327
Design Movement 327
Create the User Interface Using Gestures 327
Market Your App 328
Protect Your Intellectual Property 327
Output Production and XML 328
Ajax 330
Summary 330
Keywords and Phrases 331
Review Questions 331
Problems 332
Group Projects 335
Selected Bibliography 336
12 Designing Effective Input 337
Good Form Design 338
Making Forms Easy to Fill In 338
Meeting the Intended Purpose 341
Ensuring Accurate Completion 341
Keeping Forms Attractive 341
Controlling Business Forms 341
Good Display and Web Forms Design 342
Keeping the Display Simple 342
Keeping the Display Consistent 343
Facilitating Movement 343
Designing an Attractive and Pleasing Display 343
Using Icons in Display Design 343
Graphical User Interface Design 345
Form Controls and Values 347
Hidden Fields 347
Event-Response Charts 348
Dynamic Web Pages 348
Three-Dimensional Web Pages 350
Ajax (Asynchronous JavaScripe and XML) 351
Using Color in Display Design 352
Website Design 352
Summary 354
Keywords and Phrases 355
Review Questions 356
Problems 356
Group Projects 359
Selected Bibliography 359
13 Designing Databases 361
Databases 362
Data Concepts 363
Reality, Data, and Metadata 363
Files 368
Relational Databases 370
Normalization 372
The Three Steps of Normalization 372
A Normalization Example 372
Using an Entity-Relationship Diagram to Determine Record Keys 380
One-to-Many Relationships 381
Many-to-Many Relationships 381
Guidelines for Master File/Database Relation Design 382
Integrity Constraints 382
Anomalies 383
Making Use of a Database 384
Steps in Retrieving and Presenting Data 384
Denormalization 384
Data Warehouses 386
Online Analytical Processing 388
Data Mining 388
Business Intelligence (BI) 390
Data Analytics 391
Blockchains 392
Summary 394
Keywords and Phrases 395
Review Questions 396
Problems 396
Group Projects 398
Selected Bibliography 398
14 Human-Computer Interaction and UX Design 400
Understanding Human朇omputer Interaction 401
How Fit Affects Performance and Well-Being 401
Usability 402
Designing for the Cognitive Styles of Individual Users 403
Physical Considerations in HCI Design 403
Considering Human Limitations, Disabilities, and Design 404
Implementing Good HCI Practices 404
Types of User Interface 405
Natural-Language Interfaces 406
Question-and-Answer Interfaces 406
Menus 406
Form-Fill Interfaces 407
Choosing and Evaluating Interfaces 408
UX Design 408
Five Designer Actions That Promote Good UX Design 409
Five Designer Actions to Avoid in UX Design 410
UX Design Guidelines: An Ecommerce Example 411
Benefits of UX Design 411
Designing Interfaces for Smartphones and Tablets 412
Gestures 412
Alerts, Notices, and Queries 413
Badges 414
Design for Intelligent Personal Assistants 414
Designing for Virtual Reality and Augmented Reality 415
Guidelines for Dialogue Design 415
Meaningful Communication 416
Minimal User Action 417
Standard Operation and Consistency 418
Feedback for Users 419
Types of Feedback 419
Including Feedback in Design 420
Special Design Considerations for Ecommerce 421
Soliciting Feedback from Ecommerce Website Customers 421
Easy Navigation for Ecommerce Websites 423
Mashups 424
Designing Queries 424
Query Types 424
Query Methods 427
Summary 430
Keywords and Phrases 430
Review Questions 431
Problems 432
Group Projects 433
Selected Bibliography 434
PART 5 QUALITY ASSURANCE AND IMPLEMENTATION 435
15 Designing Accurate Data Entry Procedures 435
Effective Coding 436
Keeping Track of Something 436
Classifying Information 437
Concealing Information 439
Revealing Information 439
Requesting Appropriate Action 441
General Guidelines for Coding 441
Effective and Efficient Data Capture 444
Deciding What to Capture 445
Letting the Computer Do the Rest 445
Avoiding Bottlenecks and Extra Steps 446
Starting with a Good Form 446
Choosing a Data Entry Method 446
Ensuring Data Quality through Input Validation 449
Validating Input Transactions 450
Validating Input Data 452
The Process of Validation 454
Data Accuracy Advantages in Ecommerce Environments 455
Customers Keying Their Own Data 455
Storing Data for Later Use 455
Using Data through the Order Fulfillment Process 455
Providing Feedback to Customers 456
Summary 456
Keywords and Phrases 457
Review Questions 457
Problems 458
Group Projects 460
Selected Bibliography 460
16 Quality Assurance and Implementation 462
The Total Quality Management Approach 463
Six Sigma 463
Responsibility for Total Quality Management 463
Structured Walkthrough 464
Top-Down Systems Design and Development 465
Using Structure Charts to Design Modular Systems 467
Service-Oriented Architecture (SOA) 468
Documentation Approaches 470
Procedure Manuals 470
The FOLKLORE Method 470
Choosing a Design and Documentation Technique 472
Testing, Maintenance, and Auditing 473
The Testing Process 473
Maintenance Practices 476
Auditing 476
Implementing Distributed Systems 476
Client/Server Technology 477
Cloud Computing 478
Network Modeling 481
Training Users 484
Training Strategies 484
Guidelines for Training 485
Conversion to a New System 487
Conversion Strategies 487
Other Conversion Considerations 488
Organizational Metaphors and Their Relationship to Successful Systems 488
Security Concerns for Traditional and Web-Based Systems 489
Physical Security 489
Logical Security 490
Behavioral Security 490
Special Secruity Considerations for Ecommerce 491
Privacy Considerations for Ecommerce 491
Disaster Recovery Planning 492
Evaluation 494
Evaluation Techniques 494
The Information System Utility Approach 494
Evaluating Corporate Websites 496
Summary 497
Keywords and Phrases 498
Review Questions 499
Problems 500
Group Projects 502
Selected Bibliography 502
GLOSSARY 503
ACRONYMS 511