本书综合而全面地介绍计算机系统分析与设计方法。共分为四个部分。第一部分介绍信息系统开发的概念和过程。第二部分涵盖了生命周期前期活动、工具和技术。第三部分涵盖了生命周期中期活动、工具和技术。第四部分通过纵览生命周期后期活动,透视系统分析和设计工作。
计算机\软件工程
《系统分析与设计方法》一书是系统分析与设计方面的一本优秀教材,被众多院校采用作为教材。本书是作者应广大师生的要求,在该书第7版的基础上改编而成的,更强调系统概念。
本书详细阐述面向对象系统分析和设计技术。作者通过融入基于UML的面向对象分析和设计技术,对现代概念、工具、技术以及应用等各方面内容进行了很好的平衡。本书提供了市场上可用的、丰富的系统分析和设计的实例。
(美)Jeffrey L. Whitten;Lonnie D. Bentley 著:Jeffrey L.Whitten美国普度大学计算机技术系主任兼教授,曾两次荣获James G.Dwyer最佳教师奖。自1984年任教授后,他开始编著《系统分析与设计方法》一书,目前已经出版到第7版。该书长期位子同类书销售排行榜第1名,被700多所学校采纳作为教材。Whitten教授是多个学术组织的活跃成员,其中包括:信息技术专业学会(ATP)、信息系统学会(AIS),计算机学会(ACM)、信息管理协会(SIM)等。 Lonnie D.Bentley美国普度大学计算机技术系教授,主要教学和研究领域包括:系统分析和设计,企业应用系统。业务过程重构、计算机辅助软件工程(CASE),快速应用开发(RAD)和图形用户界面设计。
Preface iv
P A R T O N E
The Context of Systems Development Projects 3
1 THE CONTEXT OF SYSTEMS ANALYSIS AND DESIGN METHODS 4
Introduction 5
The Product—Information System 5
The People—System Stakeholders 7
Systems Owners 7
Systems Users 7
Systems Designers 9
Systems Builders 9
Systems Analysts 10
External Service Providers 10
The Project Manager 10
Business Drivers for Today’s Information Systems 11
Globalization of the Economy 11
Electronic Commerce and Business 11
Security and Privacy 14
Collaboration and Partnership 14
Knowledge Asset Management 15
Continuous Improvement and Total Quality
Management 15
Business Process Redesign 16
Technology Drivers for Today’s Information Systems 16
Networks and the Internet 16
Mobile and Wireless Technologies 18
Object Technologies 18
Collaborative Technologies 19
Enterprise Applications 19
The Process—System Development Process 23
System Initiation 25
System Analysis 25
System Design 26
System Implementation 26
System Support and Continuous Improvement 27
2 INFORMATION SYSTEMS DEVELOPMENT 00
Introduction 35
The Process of Systems Development 35
The Capability Maturity Model 35
Life Cycle versus Methodology 37
Underlying Principles for Systems Development 38
A Systems Development Process 41
Where Do Systems Development Projects Come From 41
The Systems Development Phases 43
Cross Life-Cycle Activities 52
Sequential versus Iterative
Development 54
Alternative Routes and Strategies 54
The Model-Driven Development Strategy 57
The Rapid Application Development Strategy 60
The Commercial Application Package Implementation Strategy 62
Hybrid Strategies 65
System Maintenance 65
Automated Tools and Technology 68
Computer-Assisted Systems Engineering 68
Application Development Environments 71
Process and Project Managers 71
3 PROJECT MANAGEMENT 78
Introduction 79
What Is Project Management 79
The Causes of Failed Projects 80
The Project Management Body of Knowledge 83
The Project Management Life Cycle 87
Activity 1—Negotiate Scope 89
Activity 2—Identify Tasks 89
Activity 3—Estimate Task Durations 91
Activity 4—Specify Intertask Dependencies 93
Activity 5—Assign Resources 94
Activity 6—Direct the Team Effort 98
Activity 7—Monitor and Control Progress 99
Activity 8—Assess Project Results and
Experiences 107
P A R T T W O
Systems Analysis Methods 115
4 SYSTEMS ANALYSIS 116
Introduction 117
What Is Systems Analysis 117
Systems Analysis Approaches 118
Model-Driven Analysis Approaches 118
Accelerated Systems Analysis Approaches 120
Requirements Discovery Methods 122
Business Process Redesign Methods 123
Systems Analysis Strategies 123
The Scope Definition Phase 123
Task 1.1—Identify Baseline Problems and
Opportunities 124
Task 1.2—Negotiate Baseline Scope 127
Task 1.3—Assess Baseline Project Worthiness 127
Task 1.4—Develop Baseline Schedule and Budget 128
Task 1.5—Communicate the Project Plan 128
The Problem Analysis Phase 129
Task 2.1—Understand the Problem Domain 129
Task 2.2—Analyze Problems and Opportunities 133
Task 2.3—Analyze Business Processes 133
Task 2.4—Establish System Improvement Objectives 135
Task 2.5—Update or Refine the Project Plan 135
Task 2.6—Communicate Findings and Recommendations 136
The Requirements Analysis Phase 137
Task 3.1—Identify and Express System Requirements 138
Task 3.2—Prioritize System Requirements 139
Task 3.3—Update or Refine the Project Plan 140
Task 3.4—Communicate the Requirements Statement 140
Ongoing Requirements Management 140
The Logical Design Phase 140
Task 4.1a—Structure Functional Requirements 141
Task 4.1b—Prototype Functional Requirements(alternative) 142
Task 4.2—Validate Functional Requirements 142
Task 4.3—Define Acceptance Test Cases 142
The Decision Analysis Phase 143
Task 5.1—Identify Candidate Solutions 143
Task 5.2—Analyze Candidate Solutions 144
Task 5.3—Compare Candidate Solutions 146
Task 5.4—Update the Project Plan 146
Task 5.5—Recommend a System Solution 147
5 FACT-FINDING TECHNIQUES FOR REQUIREMENTS DISCOVERY 154
Introduction 155
An Introduction to Requirements Discovery 155
The Process of Requirements Discovery 157
Problem Discovery and Analysis 157
Requirements Discovery 158
Documenting and Analyzing
Requirements 158
Requirements Management 159
Fact-Finding Techniques 160
Sampling of Existing Documentation, Forms, and Files 160
Research and Site Visits 162
Observation of the Work Environment 163
Questionnaires 164
Interviews 166
How to Conduct an Interview 167
Discovery Prototyping 171
Joint Requirements Planning 172
A Fact-Finding Strategy 176
6 MODELING SYSTEM REQUIREMENTS WITH USE CASES 183
Introduction 184
An Introduction to Use-Case Modeling 184
System Concepts for Use-Case Modeling 185
Use Cases 186
Actors 186
Relationships 187
The Process of Requirements Use-Case Modeling 190
Step 1: Identify Business Actors 190
Step 2: Identify Business Requirements Use Cases 190
Step 3: Construct Use-Case Model Diagram 194
Step 4: Document Business Requirements Use-Case Narratives 195
Use Cases and Project Management 199
Ranking and Evaluating Use Cases 199
Identifying Use-Case Dependencies 200
7 DATA MODELING AND ANALYSIS 206
Introduction 207
What Is Data Modeling 207
System Concepts for Data Modeling 208
Entities 208
Attributes 209
Relationships 212
The Process of Logical Data Modeling 220
Strategic Data Modeling 220
Data Modeling during Systems
Analysis 222
Looking Ahead to Systems Design 222
Automated Tools for Data Modeling 223
How to Construct Data Models 225
Entity Discovery 225
The Context Data Model 226
The Key-Based Data Model 228
Generalized Hierarchies 231
The Fully Attributed Data Model 231
Analyzing the Data Model 234
What Is a Good Data Model 234
Data Analysis 235
Normalization Example 235
Mapping Data Requirements to Locations 243
8 PROCESS MODELING 249
Introduction 250
An Introduction to Process Modeling 250
System Concepts for Process Modeling 252
External Agents 252
Data Stores 253
Process Concepts 253
Data Flows 258
The Process of Logical Process Modeling 266
How to Construct Process Models 269
The Context Data Flow Diagram 270
The Functional Decomposition Diagram 271
The Event-Response or Use-Case List 272
Event Decomposition Diagrams 275
Event Diagrams 276
The System Diagram(s) 278
Primitive Diagrams 279
Completing the Specification 279
9 OBJECT-ORIENTED ANALYSIS AND MODELING USING THE UML 293
An Introduction to Object-Oriented Modeling 294
System Concepts for Object Modeling 294
Objects, Attributes, Methods, and
Encapsulation 294
Classes, Generalization, and
Specialization 296
Object Class Relationships 299
Messages and Message Sending 300
Polymorphism 303
The UML Diagrams 304
The Process of Object Modeling 306
Modeling the Functional Description of the System 306
Constructing the Analysis Use-Case Model 306
Modeling the Use-Case Activities 309
Guidelines for Constructing Activity Diagrams 314
Drawing System Sequence Diagrams 317
Guidelines for Constructing System Sequence Diagrams 319
Finding and Identifying the Business Objects 319
Organizing the Objects and Identifying Their Relationships 324
10 FEASIBILITY ANALYSIS AND THE SYSTEM PROPOSAL 334
Introduction 335
Feasibility Analysis and the System Proposal 335
Feasibility Analysis—A Creeping Commitment
Approach 335
Systems Analysis—Scope Definition
Checkpoint 337
Systems Analysis—Problem Analysis
Checkpoint 337
Systems Design—Decision Analysis
Checkpoint 337
Six Tests for Feasibility 338
Operational Feasibility 338
Technical Feasibility 338
Schedule Feasibility 339
Economic Feasibility 339
Cost-Benefit Analysis Techniques 339
How Much Will the System Cost 339
What Benefits Will the System Provide 340
Is the Proposed System Cost-Effective 342
Feasibility Analysis of Candidate Systems 346
Candidate Systems Matrix 346
Feasibility Analysis Matrix 349
The System Proposal 351
Written Report 351
Formal Presentation 352
P A R T T H R E E
Systems Design Methods 363
11 SYSTEMS DESIGN 364
Introduction 365
What Is Systems Design 365
Systems Design Approaches 365
Model-Driven Approaches 366
Rapid Application Development 370
Systems Design Strategies 370
Systems Design for In-House Development—The “Build” Solution 372
Task 5.1—Design the Application
Architecture 372
Task 5.2—Design the System Database(s) 372
Task 5.3—Design the System Interface 376
Task 5.4—Package Design
Specifications 377
Task 5.5—Update the Project Plan 378
Systems Design for Integrating Commercial
Software—The “Buy” Solution 378
Task 4.1—Research Technical Criteria and Options 381
Task 4.2—Solicit Proposals or Quotes from Vendors 382
Task 5A.1—Validate Vendor Claims and Performances 382
Task 5A.2—Evaluate and Rank VendorxxxxProposals 384
Task 5A.3—Award (or Let) Contract and
Debrief Vendors 384
Impact of Buy Decision on Remaining Life-Cycle Phases 385
12 APPLICATION ARCHITECTURE AND MODELING 391
Introduction 392
Application Architecture 392
Physical Data Flow Diagrams 393
Physical Processes 393
Physical Data Flows 396
Physical External Agents 398
Physical Data Stores 398
Information Technology Architecture 399
Distributed Systems 399
Data Architectures—Distributed Relational Databases 407
Interface Architectures—Inputs, Outputs, and Middleware 409
Process Architectures—The Software Development Environment 414
Modeling the Application Architecture of an Information System 416
Drawing Physical Data Flow Diagrams 416
The Network Architecture 417
Data Distribution and Technology Assignments 418
Process Distribution and Technology Assignments 420
The Person/Machine Boundaries 420
13 DATABASE DESIGN 429
Introduction 430
Database Concepts for the Systems Analyst 430
Fields 430
Records 431
Files and Tables 432
Databases 432
Prerequisite for Database Design— Normalization 438
Modern Database Design 438
Goals and Prerequisites to Database Design 439
The Database Schema 439
Data and Referential Integrity 444
Roles 447
Database Distribution and Replication 447
Database Prototypes 448
Database Capacity Planning 448
Database Structure Generation 448
14 OUTPUT DESIGN AND PROTOTYPING 454
Introduction 455
Output Design Concepts and Guidelines 455
Distribution and Audience of Outputs 455
Implementation Methods for Outputs 458
How to Design and Prototype Outputs 463
Automated Tools for Output Design and
Prototyping 463
Output Design Guidelines 466
The Output Design Process 466
Web-Based Outputs and E-Business 474
15 INPUT DESIGN AND PROTOTYPING 483
Introduction 484
Input Design Concepts and Guidelines 484
Data Capture, Data Entry, and Data Processing 484
Input Methods and Implementation 487
System User Issues for Input Design 489
Internal Controls—Data Editing for Inputs 491
GUI Controls for Input Design 492
Common GUI Controls for Inputs 494
Advanced Input Controls 498
How to Design and Prototype Inputs 500
Automated Tools for Input Design and Prototyping 500
The Input Design Process 501
Web-Based Inputs and E-Business 507
16 USER INTERFACE DESIGN 513
Introduction 514
User Interface Design Concepts and Guidelines 514
Types of Computer Users 514
Human Factors 515
Human Engineering Guidelines 516
Dialogue Tone and Terminology 517
User Interface Technology 517
Operating Systems and Web Browsers 517
Display Monitor 518
Keyboards and Pointers 518
Graphical User Interface Styles and Considerations 519
Windows and Frames 519
Menu-Driven Interfaces 520
Instruction-Driven Interfaces 526
Question-Answer Dialogues 527
Special Considerations for User Interface Design 529
How to Design and Prototype a User Interface 533
Automated Tools for User Interface Design and Prototyping 533
The User Interface Design Process 533
17 OBJECT-ORIENTED DESIGN AND MODELING USING THE UML 544
Introduction 545
The Design of an Object-Oriented System 545
Entity Classes 545
Interface Classes 545
Control Classes 546
Persistence Classes 546
System Classes 546
Design Relationships 547
Attribute and Method Visibility 547
Object Responsibilities 548
The Process of Object-Oriented Design 549
Refining the Use-Case Model 549
Modeling Class Interactions, Behaviors, and States That Support the Use-Case Scenario 551
Updating the Object Model to Reflect the Implementation Environment 560
P A R T F O U R
Beyond Systems Analysis and Design 567
18 SYSTEMS CONSTRUCTION AND IMPLEMENTATION 568
Introduction 569
What Is Systems Construction and Implementation 569
The Construction Phase 569
Task 6.1—Build and Test Networks(if Necessary) 569
Task 6.2—Build and Test Databases 572
Task 6.3—Install and Test New Software
Packages (if Necessary) 572
Task 6.4—Write and Test New Programs 573
The Implementation Phase 574
Task 7.1—Conduct System Test 574
Task 7.2—Prepare Conversion Plan 574
Task 7.3—Install Databases 577
Task 7.4—Train Users 577
Task 7.5—Convert to New System 578
Photo Credits 584
Glossary/Index 585