An edition of Software Engineering (1982)

Software engineering

a practitioner's approach

4th ed.
  • 4.5 (10 ratings)
  • 430 Want to read
  • 36 Currently reading
  • 16 Have read

My Reading Lists:

Create a new list

  • 4.5 (10 ratings)
  • 430 Want to read
  • 36 Currently reading
  • 16 Have read

Buy this book

Last edited by Drini
May 31, 2026 | History
An edition of Software Engineering (1982)

Software engineering

a practitioner's approach

4th ed.
  • 4.5 (10 ratings)
  • 430 Want to read
  • 36 Currently reading
  • 16 Have read

This edition doesn't have a description yet. Can you add one?

Publish Date
Publisher
McGraw-Hill
Language
English
Pages
852

Buy this book

Previews available in: English

Edition Availability
Cover of: Software engineering
Software engineering: a practitioner's approach
2009, McGraw-Hill
in English - 7th ed.
Cover of: Software engineering
Software engineering: a practitioner's approach
2005, McGraw-Hill
in English - 6th ed.
Cover of: Software Engineering Software Engineering
Software Engineering Software Engineering: A Practitioner's Approach 6th International Edition
April 2, 2004, MCGRAW HILL
Paperback - 6th edition
Cover of: Software engineering
Software engineering: a practitioner's approach
2001, McGraw Hill
in English - 5th ed.
Cover of: Software engineering
Software engineering: a practitioner's approach
1997, McGraw-Hill
in English - 4th ed.
Cover of: Software engineering
Software engineering: a practitioner's approach
1992, McGraw-Hill
in English - 3rd ed.
Cover of: Software engineering
Software engineering: a practitioner's approach
1987, McGraw-Hill
in English - 2nd ed.
Cover of: Software engineering
Software engineering: a practitioner's approach
1982, McGraw-Hill
in English

Add another edition?

Book Details


Table of Contents

Preface
Page xxvii
Part One. The Product and the Process
Page 1
Chapter 1. The Product
Page 3
1.1. The Evolving Role of Software
Page 4
1.1.1. An Industry Perspective
Page 7
1.1.2. An Aging Software Plant
Page 8
1.1.3. Software Competitiveness
Page 9
1.2. Software
Page 9
1.2.1. Software Characteristics
Page 10
1.2.2. Software Components
Page 13
1.2.3. Software Applications
Page 14
1.3. Software: A Crisis on the Horizon
Page 16
1.4. Software Myths
Page 17
1.5. Summary
Page 19
References
Page 19
Problems and Points to Ponder
Page 20
Further Readings and Information Sources
Page 21
Chapter 2. The Process
Page 22
2.1. Software Engineering - A Layered Technology
Page 22
2.1.1. Process, Methods, and Tools
Page 23
2.1.2. A Generic View of Software Engineering
Page 24
2.2. The Software Process
Page 26
2.2.1. SPICE Components
Page 29
2.2.2. The Future
Page 30
2.3. Software Process Models
Page 31
2.4. The Linear Sequential Model
Page 33
2.5. The Prototyping Model
Page 35
2.6. The RAD Model
Page 37
2.7. Evolutionary Software Process Models
Page 39
2.7.1. The Incremental Model
Page 40
2.7.2. The Spiral Model
Page 42
2.7.3. The Component Assembly Model
Page 44
2.7.4. The Concurrent Development Model
Page 46
2.8. The Formal Methods Model
Page 48
2.9. Fourth Generation Techniques
Page 49
2.10. Process Technology
Page 50
2.11. Product and Process
Page 50
2.12. Summary
Page 51
References
Page 52
Problems and Points to Ponder
Page 53
Further Readings and Other Information Sources
Page 54
Part Two. Managing Software Projects
Page 57
Chapter 3. Project Management Concepts
Page 59
3.1. The Management Spectrum
Page 60
3.1.1. People
Page 60
3.1.2. The Problem
Page 60
3.1.3. The Process
Page 61
3.2. People
Page 61
3.2.1. The Players
Page 62
3.2.2. Team Leaders
Page 62
3.2.3. The Software Team
Page 63
3.2.4. Coordination and Communication Issues
Page 67
3.3. The Problem
Page 68
3.3.1. Software Scope
Page 68
3.3.2. Problem Decomposition
Page 69
3.4. The Process
Page 70
3.4.1. Melding the Problem and the Process
Page 71
3.4.2. Process Decomposition
Page 72
3.5. The Project
Page 73
3.6. Summary
Page 74
References
Page 74
Problems and Points to Ponder
Page 75
Further Readings and Other Information Sources
Page 76
Chapter 4. Software Process and Project Metrics
Page 78
4.1. Measures, Metrics, and Indicators
Page 79
4.2. Metrics in the Process and Project Domains
Page 79
4.2.1. Process Metrics and Software Process Improvement
Page 80
4.2.2. Project Metrics
Page 84
4.3. Software Measurement
Page 85
4.3.1. Size-Oriented Metrics
Page 86
4.3.2. Function-Oriented Metrics
Page 87
4.3.3. Extended Function Point Metrics
Page 89
4.4. Reconciling Different Metrics Approaches
Page 92
4.5. Metrics for Software Quality
Page 94
4.5.1. An Overview of Factors That Affect Quality
Page 94
4.5.2. Measuring Quality
Page 95
4.5.3. Defect Removal Efficiency
Page 96
4.6. Integrating Metrics Within the Software Process
Page 97
4.7. The Development of Metrics and GQM
Page 99
4.8. Summary
Page 104
References
Page 104
Problems and Points to Ponder
Page 105
Further Readings and Other Information Sources
Page 107
Chapter 5. Software Project Planning
Page 110
5.1. Observations on Estimating
Page 110
5.2. Project Planning Objectives
Page 112
5.3. Software Scope
Page 112
5.3.1. Obtaining Information Necessary for Scope
Page 112
5.3.2. A Scoping Example
Page 114
5.4. Resources
Page 116
5.4.1. Human Resources
Page 117
5.4.2. Reusable Software Resources
Page 117
5.4.3. Environmental Resources
Page 118
5.5. Software Project Estimation
Page 119
5.6. Decomposition Techniques
Page 120
5.6.1. Software Sizing
Page 120
5.6.2. Problem-Based Estimation
Page 121
5.6.3. An Example of LOC-Based Estimation
Page 123
5.6.4. An Example of FP-Based Estimation
Page 124
5.6.5. Process-Based Estimation
Page 126
5.6.6. An Example of Process-Based Estimation
Page 126
5.7. Empirical Estimation Models
Page 128
5.7.1. The Structure of Estimation Models
Page 128
5.7.2. The COCOMO Model
Page 129
5.7.3. The Software Equation
Page 132
5.8. The Make-Buy Decision
Page 133
5.8.1. Creating a Decision Tree
Page 134
5.8.2. Outsourcing
Page 135
5.9. Automated Estimation Tools
Page 136
5.10. Summary
Page 137
References
Page 137
Problems and Points to Ponder
Page 137
Further Readings and Other Information Sources
Page 138
Chapter 6. Risk Management
Page 140
6.1. Reactive vs. Proactive Risk Strategies
Page 141
6.2. Software Risks
Page 141
6.3. Risk Identification
Page 142
6.3.1. Product Size Risks
Page 143
6.3.2. Business Impact Risks
Page 144
6.3.3. Customer-Related Risks
Page 144
6.3.4. Process Risks
Page 145
6.3.5. Technology Risk
Page 147
6.3.6. Development Environment Risks
Page 147
6.3.7. Risks Associated with Staff Size and Experience
Page 148
6.3.8. Risk Components and Drivers
Page 149
6.4. Risk Projection
Page 149
6.4.1. Developing a Risk Table
Page 149
6.4.2. Assessing Risk Impact
Page 152
6.4.3. Risk Assessment
Page 153
6.5. Risk Mitigation, Monitoring, and Management
Page 154
6.6. Safety Risks and Hazards
Page 156
6.7. The RMMM Plan
Page 157
6.8. Summary
Page 157
References
Page 158
Problems and Points to Ponder
Page 158
Further Readings and Other Information Sources
Page 159
Chapter 7. Project Scheduling and Tracking
Page 161
7.1. Basic Concepts
Page 162
7.1.1. Comments on "Lateness"
Page 162
7.1.2. Basic Principles
Page 164
7.2. The Relationship Between People and Effort
Page 165
7.2.1. An Example
Page 166
7.2.2. An Empirical Relationship
Page 166
7.2.3. Effort Distribution
Page 167
7.3. Defining a Task Set for the Software Project
Page 168
7.3.1. Degree of Rigor
Page 169
7.3.2. Defining Adaptation Criteria
Page 169
7.3.3. Computing a Task Set Selector Value
Page 170
7.3.4. Interpreting the TSS Value and Selecting the Task Set
Page 171
7.4. Selecting Software Engineering Tasks
Page 172
7.5. Refinement of Major Tasks
Page 173
7.6. Defining a Task Network
Page 176
7.7. Scheduling
Page 178
7.7.1. Timeline Charts
Page 178
7.7.2. Tracking the Schedule
Page 180
7.8. The Project Plan
Page 182
Summary
Page 183
References
Page 184
Problems and Points to Ponder
Page 184
Further Readings and Other Information Sources
Page 185
Chapter 8. Software Quality Assurance
Page 187
8.1. Quality Concepts
Page 188
8.1.1. Quality
Page 189
8.1.2. Quality Control
Page 189
8.1.3. Quality Assurance
Page 190
8.1.4. Cost of Quality
Page 190
8.2. The Quality Movement
Page 192
8.3. Software Quality Assurance
Page 193
8.3.1. Background Issues
Page 193
8.3.2. SQA Activities
Page 194
8.4. Software Reviews
Page 195
8.4.1. Cost Impact of Software Defects
Page 196
8.4.2. Defect Amplification and Removal
Page 197
8.5. Formal Technical Reviews
Page 198
8.5.1. The Review Meeting
Page 199
8.5.2. Review Reporting and Record Keeping
Page 200
8.5.3. Review Guidelines
Page 201
8.6. Formal Approaches to SQA
Page 202
8.7. Statistical Quality Assurance
Page 203
8.8. Software Reliability
Page 205
8.8.1. Measures of Reliability and Availability
Page 206
8.8.2. Software Safety and Hazard Analysis
Page 206
8.9. The Quality System
Page 208
8.10. The ISO 9001 Quality Standard
Page 211
8.11. A Selection of the Elements of ISO 9001
Page 212
8.11.1. Management Responsibility
Page 212
8.11.2. Quality System
Page 214
8.11.3. Contract Review
Page 214
8.11.4. Design Control
Page 216
8.11.5. Purchasing
Page 217
8.12. Attaining ISO Certification
Page 218
8.13. Summary
Page 219
References
Page 220
Problems and Points to Ponder
Page 221
Further Readings and Other Information Sources
Page 222
Chapter 9. Software Configuration Management
Page 225
9.1. Software Configuration Management
Page 226
9.1.1. Baselines
Page 226
9.1.2. Software Configuration Items
Page 228
9.2. The SCM Process
Page 230
9.3. Identification of Objects in the Software Configuration
Page 231
9.4. Version Control
Page 234
9.5. Change Control
Page 236
9.6. Configuration Audit
Page 239
9.7. Status Reporting
Page 240
9.8. SCM Standards
Page 240
9.9. Summary
Page 240
References
Page 241
Problems and Points to Ponder
Page 242
Further Readings and Other Information Sources
Page 242
Part Three. Conventional Methods for Software Engineering
Page 245
Chapter 10. System Engineering
Page 247
10.1. Computer-Based Systems
Page 248
10.2. The System Engineering Hierarchy
Page 250
10.2.1. System Modeling
Page 251
10.2.2. Information Engineering: An Overview
Page 253
10.2.3. Product Engineering: An Overview
Page 255
10.3. Information Engineering
Page 257
10.4. Information Strategy Planning
Page 257
10.4.1. Enterprise Modeling
Page 258
10.4.2. Business-Level Data Modeling
Page 260
10.5. Business Area Analysis
Page 261
10.5.1. Process Modeling
Page 263
10.5.2. Information Flow Modeling
Page 263
10.6. Product Engineering
Page 266
10.6.1. System Analysis
Page 269
10.6.2. Identification of Need
Page 269
10.6.3. Feasibility Study
Page 269
10.6.4. Economic Analysis
Page 271
10.6.5. Technical Analysis
Page 272
10.7. Modeling the System Architecture
Page 275
10.8. System Modeling and Simulation
Page 278
10.9. System Specification
Page 280
10.10. Summary
Page 280
References
Page 282
Problems and Points to Ponder
Page 282
Further Readings and Other Information Sources
Page 284
Chapter 11. Analysis Concepts and Principles
Page 286
11.1. Requirements Analysis
Page 286
11.2. Communication Techniques
Page 288
11.2.1. Initiating the Process
Page 289
11.2.2. Facilitated Application Specification Techniques
Page 290
11.2.3. Quality Function Deployment
Page 293
11.3. Analysis Principles
Page 294
11.3.1. The Information Domain
Page 295
11.3.2. Modeling
Page 297
11.3.3. Partitioning
Page 298
11.3.4. Essential and Implementation Views
Page 300
11.4. Software Prototyping
Page 301
11.4.1. Selecting the Prototyping Approach
Page 301
11.4.2. Prototyping Methods and Tools
Page 303
11.5. Specification
Page 304
11.5.1. Specification Principles
Page 304
11.5.2. Representation
Page 305
11.5.3. The Software Requirements Specification
Page 306
11.6. Specification Review
Page 308
11.7. Summary
Page 309
References
Page 310
Problems and Points to Ponder
Page 311
Further Readings and Other Information Sources
Page 312
Chapter 12. Analysis Modeling
Page 314
12.1. A Brief History
Page 315
12.2. The Elements of the Analysis Model
Page 316
12.3. Data Modeling
Page 317
12.3.1. Data Objects, Attributes, and Relationships
Page 317
12.3.2. Cardinality and Modality
Page 320
12.3.3. Entity-Relationship Diagrams
Page 321
12.4. Functional Modeling and Information Flow
Page 325
12.4.1. Data Flow Diagrams
Page 325
12.4.2. Extensions for Real-Time Systems
Page 328
12.4.3. Ward and Mellor Extensions
Page 328
12.4.4. Hatley and Pirbhai Extensions
Page 331
12.5. Behavioral Modeling
Page 332
12.6. The Mechanics of Structured Analysis
Page 336
12.6.1. Creating an Entity-Relationship Diagram
Page 337
12.6.2. Creating a Data Flow Model
Page 339
12.6.3. Creating a Control Flow Model
Page 341
12.6.4. The Control Specification
Page 344
12.6.5. The Process Specification
Page 346
12.7. The Data Dictionary
Page 346
12.8. An Overview of Other Classical Analysis Methods
Page 350
12.8.1. Data Structured Systems Development
Page 350
12.8.2. Jackson System Development
Page 351
12.8.3. SADT
Page 351
12.9. Summary
Page 352
References
Page 352
Problems and Points to Ponder
Page 353
Further Readings and Other Information Sources
Page 355
Chapter 13. Design Concepts and Principles
Page 357
13.1. Software Design and Software Engineering
Page 357
13.2. The Design Process
Page 359
13.2.1. Design and Software Quality
Page 359
13.2.2. The Evolution of Software Design
Page 360
13.3. Design Principles
Page 361
13.4. Design Concepts
Page 362
13.4.1. Abstraction
Page 363
13.4.2. Refinement
Page 364
13.4.3. Modularity
Page 364
13.4.4. Software Architecture
Page 367
13.4.5. Control Hierarchy
Page 368
13.4.6. Structural Partitioning
Page 369
13.4.7. Data Structure
Page 370
13.4.8. Software Procedure
Page 371
13.4.9. Information Hiding
Page 372
13.5. Effective Modular Design
Page 373
13.5.1. Functional Independence
Page 373
13.5.2. Cohesion
Page 374
13.5.3. Coupling
Page 375
13.6. Design Heuristics for Effective Modularity
Page 377
13.7. The Design Model
Page 379
13.8. Design Documentation
Page 379
13.9. Summary
Page 381
References
Page 382
Problems and Points to Ponder
Page 383
Further Readings and Other Information Sources
Page 384
Chapter 14. Design Methods
Page 387
14.1. Data Design
Page 387
14.2. Architectural Design
Page 389
14.2.1. Contributors
Page 390
14.2.2. Areas of Application
Page 390
14.3. The Architectural Design Process
Page 391
14.3.1. Transform Flow
Page 391
14.3.2. Transaction Flow
Page 391
14.4. Transform Mapping
Page 393
14.4.1. An Example
Page 393
14.4.2. Design Steps
Page 394
14.5. Transaction Mapping
Page 403
14.5.1. An Example
Page 403
14.5.2. Design Steps
Page 403
14.6. Design Postprocessing
Page 406
14.7. Architectural Design Optimization
Page 407
14.8. Interface Design
Page 409
14.8.1. Internal and External Interface Design
Page 410
14.8.2. User Interface Design
Page 410
14.9. Human-Computer Interface Design
Page 411
14.9.1. Interface Design Models
Page 411
14.9.2. Task Analysis and Modeling
Page 412
14.9.3. Design Issues
Page 414
14.9.4. Implementation Tools
Page 416
14.9.5. Design Evaluation
Page 417
14.10. Interface Design Guidelines
Page 419
14.10.1. General Interaction
Page 419
14.10.2. Information Display
Page 420
14.10.3. Data Input
Page 421
14.11. Procedural Design
Page 422
14.11.1. Structured Programming
Page 422
14.11.2. Graphical Design Notation
Page 423
14.11.3. Tabular Design Notation
Page 425
14.11.4. Program Design Language
Page 427
14.11.5. A PDL Example
Page 428
14.12. Summary
Page 431
References
Page 432
Problems and Points to Ponder
Page 433
Further Readings and Other Information Sources
Page 437
Chapter 15. Design for Real-Time Systems
Page 439
15.1. System Considerations
Page 440
15.2. Real-Time Systems
Page 441
15.2.1. Integration and Performance Issues
Page 441
15.2.2. Interrupt Handling
Page 442
15.2.3. Real-Time Databases
Page 444
15.2.4. Real-Time Operating Systems
Page 444
15.2.5. Real-Time Languages
Page 445
15.2.6. Task Synchronization and Communication
Page 446
15.3. Analysis and Simulation of Real-Time Systems
Page 446
15.3.1. Mathematical Tools for Real-Time System Analysis
Page 447
15.3.2. Simulation and Modeling Techniques
Page 451
15.4. Real-Time Design
Page 458
15.5. Summary
Page 459
References
Page 460
Problems and Points to Ponder
Page 461
Further Readings and Other Information Sources
Page 462
Chapter 16. Software Testing Methods
Page 464
16.1. Software Testing Fundamentals
Page 465
16.1.1. Testing Objectives
Page 465
16.1.2. Testing Principles
Page 466
16.1.3. Testability
Page 467
16.2. Test Case Design
Page 469
16.3. White Box Testing
Page 471
16.4. Basis Path Testing
Page 471
16.4.1. Flow Graph Notation
Page 472
16.4.2. Cyclomatic Complexity
Page 474
16.4.3. Deriving Test Cases
Page 476
16.4.4. Graph Matrices
Page 479
16.5. Control Structure Testing
Page 480
16.5.1. Condition Testing
Page 481
16.5.2. Data Flow Testing
Page 483
16.5.3. Loop Testing
Page 485
16.6. Black-Box Testing
Page 486
16.6.1. Graph-Based Testing Methods
Page 487
16.6.2. Equivalence Partitioning
Page 490
16.6.3. Boundary Value Analysis
Page 491
16.6.4. Comparison Testing
Page 492
16.7. Testing for Specialized Environments
Page 493
16.7.1. Testing GUIs
Page 493
16.7.2. Testing of Client/Server Architectures
Page 495
16.7.3. Testing Documentation and Help Facilities
Page 495
16.7.4. Testing for Real-Time Systems
Page 496
16.8. Summary
Page 497
References
Page 498
Problems and Points to Ponder
Page 499
Further Readings and Other Information Sources
Page 500
Chapter 17. Software Testing Strategies
Page 503
17.1. A Strategic Approach to Software Testing
Page 504
17.1.1. Verification and Validation
Page 504
17.1.2. Organizing for Software Testing
Page 505
17.1.3. A Software Testing Strategy
Page 506
17.1.4. Criteria for Completion of Testing
Page 508
17.2. Strategic Issues
Page 509
17.3. Unit Testing
Page 510
17.3.1. Unit Test Considerations
Page 511
17.3.2. Unit Test Procedures
Page 513
17.4. Integration Testing
Page 514
17.4.1. Top-Down Integration
Page 515
17.4.2. Bottom-Up Integration
Page 517
17.4.3. Regression Testing
Page 517
17.4.4. Comments on Integration Testing
Page 519
17.4.5. Integration Test Documentation
Page 519
17.5. Validation Testing
Page 521
17.5.1. Validation Test Criteria
Page 522
17.5.2. Configuration Review
Page 522
17.5.3. Alpha and Beta Testing
Page 522
17.6. System Testing
Page 523
17.6.1. Recovery Testing
Page 523
17.6.2. Security Testing
Page 524
17.6.3. Stress Testing
Page 524
17.6.4. Performance Testing
Page 525
17.7. The Art of Debugging
Page 525
17.7.1. The Debugging Process
Page 526
17.7.2. Psychological Considerations
Page 527
17.7.3. Debugging Approaches
Page 527
17.8. Summary
Page 529
References
Page 530
Problems and Points to Ponder
Page 530
Further Readings and Other Information Sources
Page 531
Chapter 18. Technical Metrics for Software
Page 533
18.1. Software Quality
Page 534
18.1.1. McCall's Quality Factors
Page 535
18.1.2. FURPS
Page 537
18.1.3. The Transition to a Quantitative View
Page 538
18.2. A Framework for Technical Software Metrics
Page 539
18.2.1. The Challenge of Technical Metrics
Page 539
18.2.2. Measurement Principles
Page 540
18.2.3. The Attributes of Effective Software Metrics
Page 541
18.3. Metrics for the Analysis Model
Page 542
18.3.1. Function-Based Metrics
Page 543
18.3.2. The Bang Metric
Page 545
18.3.3. Metrics for Specification Quality
Page 547
18.4. Metrics for the Design Model
Page 548
18.4.1. High-Level Design Metrics
Page 549
18.4.2. Component-Level Design Metrics
Page 552
18.4.3. Interface Design Metrics
Page 555
18.5. Metrics for Source Code
Page 556
18.6. Metrics for Testing
Page 558
18.7. Metrics for Maintenance
Page 559
18.8. Summary
Page 560
References
Page 560
Problems and Points to Ponder
Page 562
Further Readings and Other Information Sources
Page 563
Part Four. Object-Oriented Software Engineering
Page 565
Chapter 19. Object-Oriented Concepts and Principles
Page 567
19.1. The Object-Oriented Paradigm
Page 568
19.2. Object-Oriented Concepts
Page 569
19.2.1. Classes and Objects
Page 572
19.2.2. Attributes
Page 573
19.2.3. Operations, Methods, and Services
Page 574
19.2.4. Messages
Page 574
19.2.5. Encapsulation, Inheritance, and Polymorphism
Page 576
19.3. Identifying the Elements of an Object Model
Page 580
19.3.1. Identifying Classes and Objects
Page 581
19.3.2. Specifying Attributes
Page 584
19.3.3. Defining Operations
Page 585
19.3.4. Finalizing the Object Definition
Page 587
19.4. Management of Object-Oriented Software Projects
Page 587
19.4.1. The Common Process Framework for OO
Page 588
19.4.2. Object-Oriented Project Metrics and Estimation
Page 589
19.4.3. An OO Estimating and Scheduling Approach
Page 591
19.4.4. Progress for an Object-Oriented Project
Page 592
19.5. Summary
Page 593
References
Page 594
Problems and Points to Ponder
Page 594
Further Readings and Other Information Sources
Page 595
Chapter 20. Object-Oriented Analysis
Page 597
20.1. Object-Oriented Analysis
Page 598
20.1.1. Conventional vs. OO Approaches
Page 598
20.1.2. The OOA Landscape
Page 599
20.2. Domain Analysis
Page 602
20.2.1. Reuse and Domain Analysis
Page 603
20.2.2. The Domain Analysis Process
Page 603
20.3. Generic Components of the OO Analysis Model
Page 606
20.4. The OOA Process
Page 607
20.4.1. Use Cases
Page 608
20.4.2. Class-Responsibility-Collaborator Modeling
Page 610
20.4.3. Defining Structures and Hierarchies
Page 615
20.4.4. Defining Subjects and Subsystems
Page 616
20.5. The Object-Relationship Model
Page 617
20.6. The Object-Behavior Model
Page 621
20.6.1. Event Identification with Use Cases
Page 621
20.6.2. State Representations
Page 622
20.7. Summary
Page 625
References
Page 626
Problems and Points to Ponder
Page 627
Further Readings and Other Information Sources
Page 628
Chapter 21. Object-Oriented Design
Page 630
21.1. Design for Object-Oriented Systems
Page 631
21.1.1. Conventional vs. OO Approaches
Page 632
21.1.2. Design Issues
Page 633
21.1.3. The OOD Landscape
Page 634
21.2. The Generic Components of the OO Design Model
Page 639
21.3. The System Design Process
Page 640
21.3.1. Partitioning the Analysis Model
Page 641
21.3.2. Concurrency and Subsystem Allocation
Page 642
21.3.3. The Task Management Component
Page 642
21.3.4. The Data Management Component
Page 643
21.3.5. The Resource Management Component
Page 644
21.3.6. The Human-Computer Interface Component
Page 644
21.3.7. Inter-Subsystem Communication
Page 645
21.4. The Object Design Process
Page 647
21.4.1. Object Descriptions
Page 647
21.4.2. Designing Algorithms and Data Structures
Page 648
21.4.3. Program Components and Interfaces
Page 650
21.5. Design Patterns
Page 652
21.5.1. Describing a Design Pattern
Page 653
21.5.2. Using Patterns in Design
Page 654
21.6. Object-Oriented Programming
Page 654
21.7. Summary
Page 654
References
Page 655
Problems and Points to Ponder
Page 656
Further Readings and Other Information Sources
Page 657
Chapter 22. Object-Oriented Testing
Page 660
22.1. Broadening the View of Testing
Page 660
22.2. Testing OOA and OOD Models
Page 662
22.2.1. Correctness of OOA and OOD Models
Page 662
22.2.2. Consistency of OOA and OOD Models
Page 662
22.3. Object-Oriented Testing Strategies
Page 664
22.3.1. Unit Testing in the OO Context
Page 664
22.3.2. Integration Testing in the OO Context
Page 665
22.3.3. Validation Testing in an OO Context
Page 666
22.4. Test Case Design for OO Software
Page 666
22.4.1. The Test Case Design Implications of OO Concepts
Page 666
22.4.2. Applicability of Conventional Test Case Design Methods
Page 667
22.4.3. Fault-Based Testing
Page 667
22.4.4. The Impact of OO Programming on Testing
Page 668
22.4.5. Test Cases and the Class Hierarchy
Page 669
22.4.6. Scenario-Based Test Design
Page 670
22.4.7. Testing Surface Structure and Deep Structure
Page 671
22.5. Testing Methods Applicable at the Class Level
Page 672
22.5.1. Random Testing for OO Classes
Page 672
22.5.2. Partition Testing at the Class Level
Page 673
22.6. Interclass Test Case Design
Page 674
22.6.1. Multiple Class Testing
Page 674
22.6.2. Tests Derived from Behavior Models
Page 675
22.7. Summary
Page 677
References
Page 678
Problems and Points to Ponder
Page 678
Further Readings and Other Information Sources
Page 679
Chapter 23. Technical Metrics for Object-Oriented Systems
Page 680
23.1. The Intent of Object-Oriented Metrics
Page 680
23.2. The Distinguishing Characteristics
Page 681
23.2.1. Localization
Page 681
23.2.2. Encapsulation
Page 682
23.2.3. Information Hiding
Page 682
23.2.4. Inheritance
Page 682
23.2.5. Abstraction
Page 683
23.3. Metrics for the OO Design Model
Page 683
23.4. Class-Oriented Metrics
Page 683
23.4.1. The CK Metrics Suite
Page 683
23.4.2. Metrics Proposed by Lorenz and Kidd
Page 686
23.5. Operation-Oriented Metrics
Page 688
23.6. Metrics for Object-Oriented Testing
Page 688
23.7. Metrics for Object-Oriented Projects
Page 689
23.8. Summary
Page 690
References
Page 691
Problems and Points to Ponder
Page 691
Further Readings and Other Information Sources
Page 692
Part Five. Advanced Topics in Software Engineering
Page 695
Chapter 24. Formal Methods
Page 697
24.1. Basic Concepts
Page 697
24.1.1. Deficiencies of Less Formal Approaches
Page 698
24.1.2. Mathematics in Software Development
Page 700
24.1.3. Formal Methods Concepts
Page 701
24.2. Mathematical Preliminaries
Page 706
24.2.1. Sets and Constructive Specification
Page 706
24.2.2. Set Operators
Page 707
24.2.3. Logic Operators
Page 710
24.2.4. Sequences
Page 710
24.3. Applying Mathematical Notation for Formal Specification
Page 712
24.4. Formal Specification Languages
Page 714
24.5. Using Z to Represent an Example Software Component
Page 715
24.6. Object-Based Formal Methods
Page 717
24.7. Algebraic Specification
Page 721
24.8. Concurrent Formal Methods
Page 726
24.9. Summary
Page 730
References
Page 731
Problems and Points to Ponder
Page 732
Further Readings and Other Information Sources
Page 733
Chapter 25. Cleanroom Software Engineering
Page 735
25.1. The Cleanroom Approach
Page 736
25.1.1. The Cleanroom Strategy
Page 736
25.1.2. What Makes Cleanroom Different?
Page 739
25.2. Functional Specification
Page 739
25.2.1. Black-Box Specification
Page 740
25.2.2. State-Box Specification
Page 741
25.2.3. Clear-Box Specification
Page 742
25.3. Design Refinement and Verification
Page 742
25.3.1. Design Refinement and Verification
Page 743
25.3.2. Advantages of Design Verification
Page 747
25.4. Cleanroom Testing
Page 748
25.4.1. Statistical Use Testing
Page 748
25.4.2. Certification
Page 750
25.5. Summary
Page 751
References
Page 752
Problems and Points to Ponder
Page 752
Further Readings and Other Information Sources
Page 753
Chapter 26. Software Reuse
Page 756
26.1. Management Issues
Page 757
26.1.1. Roadblocks to Reuse
Page 757
26.1.2. A Hardware Analogy
Page 758
26.1.3. Some Suggestions for Establishing an Approach to Reuse
Page 759
26.2. The Reuse Process
Page 760
26.2.1. Reusable Artifacts
Page 760
26.2.2. A Process Model
Page 762
26.3. Domain Engineering
Page 763
26.3.1. The Domain Analysis Process
Page 764
26.3.2. Characterization Functions
Page 765
26.3.3. Structural Modeling and Structure Points
Page 766
26.4. Building Reusable Components
Page 768
26.4.1. Analysis and Design for Reuse
Page 768
26.4.2. Construction Methods
Page 769
26.4.3. Component-Based Development
Page 770
26.5. Classifying and Retrieving Components
Page 771
26.5.1. Describing Reusable Components
Page 772
26.5.2. The Reuse Environment
Page 774
26.6. Economics of Software Reuse
Page 775
26.6.1. Impact on Quality, Productivity, and Cost
Page 775
26.6.2. Cost Analysis Using Structure Points
Page 776
26.6.3. Reuse Metrics
Page 777
26.7. Summary
Page 778
References
Page 779
Problems and Points to Ponder
Page 780
Further Readings and Other Information Sources
Page 781
Chapter 27. Reengineering
Page 784
27.1. Business Process Reengineering
Page 785
27.1.1. Business Processes
Page 785
27.1.2. Principles of Business Process Reengineering
Page 787
27.1.3. A BPR Model
Page 788
27.1.4. Words of Warning
Page 789
27.2. Software Reengineering
Page 790
27.2.1. Software Maintenance
Page 790
27.2.2. A Software Reengineering Process Model
Page 791
27.3. Reverse Engineering
Page 795
27.3.1. Reverse Engineering to Understand Processing
Page 796
27.3.2. Reverse Engineering to Understand Data
Page 798
27.3.3. Reverse Engineering User Interfaces
Page 799
27.4. Restructuring
Page 801
27.4.1. Code Restructuring
Page 801
27.4.2. Data Restructuring
Page 802
27.5. Forward Engineering
Page 802
27.5.1. Forward Engineering for Client/Server Architectures
Page 803
27.5.2. Forward Engineering for Object-Oriented Architectures
Page 805
27.5.3. Forward Engineering User Interfaces
Page 806
27.6. The Economics of Reengineering
Page 806
27.7. Summary
Page 807
References
Page 808
Problems and Points to Ponder
Page 809
Further Readings and Other Information Sources
Page 810
Chapter 28. Client/Server Software Engineering
Page 812
28.1. The Structure of Client/Server Systems
Page 813
28.1.1. Software Components for C/S Systems
Page 814
28.1.2. The Distribution of Software Components
Page 815
28.1.3. Guidelines for Distributing Application Components
Page 816
28.1.4. Linking C/S Software Components
Page 817
28.1.5. Middleware and Object Request Broker Architectures
Page 817
28.2. Software Engineering for C/S Systems
Page 819
28.3. Analysis Modeling Issues
Page 819
28.4. Design for C/S Systems
Page 820
28.4.1. Conventional Design Approaches
Page 822
28.4.2. Database Design
Page 821
28.4.3. An Overview of a Design Approach
Page 824
28.4.4. Process Design Iteration
Page 825
28.5. Testing Issues
Page 826
28.5.1. Overall C/S Testing Strategy
Page 826
28.5.2. C/S Testing Tactics
Page 829
28.6. Intranets
Page 830
28.6.1. What is an Intranet?
Page 830
28.6.2. A Sample Technology
Page 831
28.6.3. The Process of Developing an Intranet Application
Page 831
28.7. Summary
Page 833
References
Page 833
Problems and Points to Ponder
Page 834
Further Readings and Other Information Sources
Page 835
Chapter 29. Computer-Aided Software Engineering
Page 837
29.1. What is CASE?
Page 838
29.2. Building Blocks for CASE
Page 838
29.3. A Taxonomy of CASE Tools
Page 840
29.4. Integrated CASE Environments
Page 845
29.5. The Integration Architecture
Page 846
29.6. The CASE Repository
Page 848
29.6.1. The Role of the Repository in I-CASE
Page 848
29.6.2. Features and Content
Page 849
29.7. Summary
Page 853
References
Page 854
Problems and Points to Ponder
Page 854
Further Readings and Other Information Sources
Page 855
Chapter 30. The Road Ahead
Page 858
30.1. The Importance of Software—Revisited
Page 859
30.2. The Scope of Change
Page 859
30.3. People and the Way They Build Systems
Page 861
30.4. The "New" Software Process
Page 864
30.5. New Modes for Representing Information
Page 865
30.6. Technology as a Driver
Page 867
30.7. A Concluding Comment
Page 869
References
Page 869
Problems and Points to Ponder
Page 870
Further Readings and Other Information Sources
Page 870
Index
Page 872

Edition Notes

Includes bibliographical references and index.

Published in
New York

Classifications

Dewey Decimal Class
005.1
Library of Congress
QA76.758 .P75 1997, QA76.758 .P75 1994

The Physical Object

Pagination
xxvii, 852 p. :
Number of pages
852

Edition Identifiers

Open Library
OL1019474M
Internet Archive
softwareengineer4edpres
ISBN 10
0070521824
LCCN
96077396
OCLC/WorldCat
35573720
LibraryThing
153862
Goodreads
3290603

Work Identifiers

Work ID
OL284009W

Excerpts

"Have you ever noticed how the invention of one technology can have profound and unexpected effects on other seemingly unrelated technologies, on commercial enterprises, on people, and even on culture as a whole?"
added anonymously.

Community Reviews (1)

Content Warnings 1 Trigger warnings 100%

Lists

Download catalog record: RDF / JSON / OPDS | Wikipedia citation