Cover image for Building application frameworks : object-oriented foundations of framework design
Title:
Building application frameworks : object-oriented foundations of framework design
Author:
Fayad, Mohamed, 1950-
Publication Information:
New York : Wiley, [1999]

©1999
Physical Description:
xxiii, 664 pages : illustrations ; 25 cm
General Note:
"Wiley Computer Publishing."
Language:
English
ISBN:
9780471248750
Format :
Book

Available:*

Library
Call Number
Material Type
Home Location
Status
Item Holds
Searching...
QA76.64 .B85 1999 Adult Non-Fiction Central Closed Stacks
Searching...

On Order

Summary

Summary

Object Technology The first experience-based guide to building object-oriented frameworks Building Application Frameworks By providing reusable skeletons on which to build new applications, frameworks can save you countless hours and thousands (even millions) of dollars in development costs. Written and edited by some of the top names in the object-oriented programming world, this is the first complete study of building frameworks. Using examples drawn from successful implementations worldwide, it walks you through all the steps of a framework development project. Providing guidance on all key technical and business issues surrounding framework construction, it covers:
* Techniques for developing, integrating, and adapting frameworks
* Leveraging existing design and code
* Selecting and utilizing frameworks
* Tracking, controlling, and documenting framework development
* Maintaining, measuring, and controlling framework quality
* Training developers in the effective use of frameworks
* Evaluating frameworks and framework investments


Author Notes

MOHAMED E. FAYAD, PhD is a professor of Computer Science and Engineering at the University of Nebraska, a columnist for Communications of the ACM, lead author of Wiley's book Transition to Object-Oriented Software Development, a guest editor for six different theme issues, and a former editor-in-chief of IEEE Computer Society Press. He is a pioneer and expert in objectoriented software engineering. DOUGLAS C. SCHMIDT, PhD is a professor of Computer Science at Washington University and consults for Lucent Technologies. He is a pioneer in the field of telecommunications patterns and frameworks. RALPH E. JOHNSON, PhD is a member of the famed "Gang of Four" and a professor of Computer Science at the University of Illinois, Urbana-Champaign.


Table of Contents

Mohamed E. FayadMohamed E. Fayad and Douglas C. Schmidt and Ralph E. JohnsonEyoun Eli Jacobsen and Palle NowackJan Bosch and Peter Molin and Michael Mattsson and PerOlaf Bengtsson and Mohamed E. FayadDavid S. HamuMohamed E. FayadJean G. Vaucher and Boris MagnussonArt Jolin and Dave Lavin and Susan CharpenterArt JolinPaula S.C. Alencar and Donald D. Cowan and Torsten Nelson and Marcus F. Fontoura and Carlos J.P. LucenaMohamed E. FayadMehmet Aksit and Bedir Tekinerdogan and Francesco Marcelloni and Lodewijk BergmansJoan BooneGiancarlo Succi and Paolo Predonzani and Andrea Valerio and Tullio VernazzaMohamed E. FayadGarry Froehlich and H. James Hoover and Ling Liu and Paul SorensonSteven R. JonesAlejandra Garrido and Gustavo RossiNeelam SoundarajanGranville G. Miller and John McGregor and Melissa L. MajorAndreas RupingMichael Goedicke and Torsten MeyerMohamed E. FayadHans Albrecht SchmidWolfgang PreeDirk Baumer and Guido Gryczan and Rolf Knoll and Carola Lilienthal and Dirk Riehle and Heinz ZullighovenWolfgang Pree and Kai KoskimiesR.J.A. BuhrDesmond D'Souza and Alan Cameron WillsMarshall Cline and Mike Girou and Howard YoungMohamed E. FayadMichael Mattsson and Jan BoschYingxu Wang and Graham King and Mohamed E. FayadMohamed E. FayadGreg Butler and Pierre DenommeeJutta EcksteinHafedh Mili and Houari SahraouiDavid C. Raines and James C. McKim, Jr.Mohamed E. FayadJohn M. Favaro and Kenneth K. FavaroJadish BansiyaMohamed E. FayadMauri LaitinenMohamed E. FayadMohamed E. Fayad
Prefacep. xv
Acknowledgmentsp. xxi
Part 1 Framework Overviewp. 1
Chapter 1 Application Frameworksp. 3
1.1 What Is an Application Framework?p. 4
1.2 Benefitsp. 8
1.3 An Overview of Widely Used Frameworksp. 9
1.4 Classifying Application Frameworksp. 9
1.5 The Strengths and Weaknesses of Application Frameworksp. 11
1.6 Reuse: Components versus Designsp. 13
1.7 Application Frameworks versus Other Reuse Techniquesp. 15
1.8 How to Use Application Frameworksp. 17
1.9 How to Learn Application Frameworksp. 18
1.10 How to Evaluate Application Frameworksp. 19
1.11 How to Develop Application Frameworksp. 21
1.12 Organization of This Bookp. 22
1.13 Summaryp. 23
1.14 Referencesp. 24
1.15 Review Questionsp. 27
Chapter 2 Frameworks and Patterns: Architectural Abstractionsp. 29
2.1 Architectural Abstractionsp. 31
2.2 Frameworksp. 33
2.3 Object-Oriented Patternsp. 37
2.4 Frameworks and Patternsp. 46
2.5 Summaryp. 50
2.6 Referencesp. 52
2.7 Review Questionsp. 53
2.8 Problem Setp. 54
Chapter 3 Framework Problems and Experiencesp. 55
3.1 Object-Oriented Frameworksp. 56
3.2 Examples of Application Frameworksp. 59
3.3 Problems and Experiencesp. 62
3.4 Summaryp. 78
3.5 Referencesp. 79
3.6 Review Questionsp. 82
Sidebar 1 Enterprise Frameworksp. 83
Part 2 Framework Perspectivesp. 87
Chapter 4 Simula Frameworks: The Early Experiencep. 89
4.1 History of Simulap. 91
4.2 Basic Concepts of Simulap. 92
4.3 Standard Simula Frameworksp. 98
4.4 Other Simulation Frameworksp. 109
4.5 Simula and Real Timep. 119
4.6 Other Early Simula Frameworksp. 130
4.7 Discussionp. 131
4.8 Summaryp. 136
4.9 Referencesp. 138
4.10 Review Questionsp. 140
Chapter 5 Visual Builders: Framework Design Issuesp. 143
5.1 Parts Can Address Both Sets of Needsp. 143
5.2 Programmers Connect Part Features to Build Applicationsp. 145
5.3 Making Classes into Partsp. 145
5.4 Ready-to-Wear Parts versus Tailor-Made Classesp. 145
5.5 Code Generation Changes the Equationp. 147
5.6 Giving Up Some Freedom for Conveniencep. 147
5.7 Builders Give You Some Things for Freep. 148
5.8 A Matter of Degreep. 149
5.9 Summaryp. 149
5.10 Referencesp. 150
5.11 Review Questionsp. 150
5.12 Problem Setp. 150
5.13 Projectsp. 152
Chapter 6 Usability and Framework Designp. 153
6.1 Usability Guidelinesp. 153
6.2 Summaryp. 160
6.3 Review Questionsp. 160
6.4 Problem Setp. 162
6.5 Projectsp. 162
Sidebar 2 Viewpoints and Frameworks in Component-Based Software Designp. 163
Part 3 Frameworks and Domain Analysisp. 167
Chapter 7 Deriving Frameworks from Domain Knowledgep. 169
7.1 Description of the Pilot Projectsp. 170
7.2 Modeling Domain Knowledgep. 172
7.3 Mapping Knowledge Graphs to Object-Oriented Frameworksp. 181
7.4 Evaluation of the Approach and Summaryp. 189
7.5 Referencesp. 191
7.6 Review Questionsp. 194
7.7 Problem Setp. 194
Chapter 8 Harvesting Designp. 199
8.1 The Harvesting Processp. 200
8.2 Identifying Candidatesp. 200
8.3 Solution Domain Analysisp. 201
8.4 Framework Implementationp. 203
8.5 Application Development with the Frameworkp. 209
8.6 Summaryp. 209
8.7 Referencesp. 209
8.8 Review Questionsp. 210
8.9 Problem Setp. 210
Sidebar 3 Frameworks and Domain Models: Two Sides of the Same Coinp. 211
Part 4 Framework Development Conceptsp. 215
Chapter 9 Reusing Hooksp. 219
9.1 Backgroundp. 220
9.2 The Hooks Model: An Overviewp. 222
9.3 Hooking into SEAFp. 225
9.4 Summaryp. 232
9.5 Referencesp. 233
9.6 Review Questionsp. 233
9.7 Problem Setp. 234
9.8 Projectsp. 234
9.9 Appendix: Grammar for Hook Descriptionsp. 235
Chapter 10 A Framework Recipep. 237
10.1 The Transitionp. 237
10.2 The Pattern Systemp. 241
10.3 Summaryp. 265
10.4 Referencesp. 265
10.5 Review Questionsp. 266
10.6 Problem Setp. 266
Chapter 11 Capturing Hypermedia Functionalityp. 267
11.1 An Examplep. 268
11.2 The OO-Navigator Architecturep. 269
11.3 Using the Frameworkp. 271
11.4 Describing the Architecture with Patternsp. 275
11.5 Summaryp. 282
11.6 Referencesp. 282
11.7 Review Questionsp. 284
11.8 Problem Setp. 284
11.9 Projectsp. 284
11.10 Case Tool Appendixp. 285
Chapter 12 Understanding Frameworksp. 289
12.1 A Simple Model of Frameworksp. 292
12.2 Behavioral Refinement: From Frameworks to Applicationsp. 293
12.3 Case Study: A Simple Diagram Editor Frameworkp. 299
12.4 Summaryp. 305
12.5 Referencesp. 306
12.6 Review Questionsp. 307
12.7 Problem Setp. 308
12.8 Projectsp. 308
Chapter 13 Capturing Framework Requirementsp. 309
13.1 Backgroundp. 310
13.2 Framework Requirementsp. 311
13.3 Related Workp. 318
13.4 Summaryp. 320
13.5 Referencesp. 321
13.6 Review Questionsp. 322
13.7 Problem Setp. 322
Chapter 14 Managing Class Dependenciesp. 325
14.1 Case Studyp. 327
14.2 Classificationp. 332
14.3 Related Workp. 341
14.4 Summaryp. 342
14.5 Referencesp. 343
14.6 Review Questionsp. 344
14.7 Problem Setp. 344
Sidebar 4 Formal Design and Performance Evaluationp. 345
Part 5 Framework Development Approachesp. 349
Chapter 15 Framework Design by Systematic Generalizationp. 353
15.1 Framework Design Activitiesp. 354
15.2 Application Modeling Activityp. 355
15.3 Hot Spots and Hot-Spot Specificationp. 356
15.4 Hot-Spot Analysisp. 359
15.5 Hot-Spot Subsystemp. 362
15.6 Hot-Spot Subsystem High-Level Design: Mapping Characteristics to the Subsystem Structurep. 365
15.7 Generalization Transformationp. 367
15.8 Transformations Generalizing the Editorp. 369
15.9 Summaryp. 373
15.10 Referencesp. 377
15.11 Review Questionsp. 377
15.12 Problem Setp. 378
Chapter 16 Hot-Spot-Driven Developmentp. 379
16.1 Hot Spots in Whitebox and Blackbox Frameworksp. 379
16.2 Hook Methods as Elementary Building Blocks of Hot Spotsp. 381
16.3 Hot-Spot-Driven Development Processp. 384
16.4 Summaryp. 392
16.5 Referencesp. 392
16.6 Review Questionsp. 393
16.7 Problem Setp. 393
Chapter 17 Structuring Large Application Frameworksp. 395
17.1 Framework Layering in Large Systemsp. 396
17.2 Framework Construction for Large Systemsp. 403
17.3 Related Workp. 408
17.4 Summaryp. 408
17.5 Referencesp. 409
17.6 Review Questionsp. 410
17.7 Problem Setp. 410
Sidebar 5 Framelets--Small Is Beautifulp. 411
Chapter 18 Understanding Macroscopic Behavior Patterns with Use-Case Mapsp. 415
18.1 Understanding Macroscopic Behavior Patternsp. 415
18.2 HotDrawp. 420
18.3 ACEp. 428
18.4 Discussionp. 433
18.5 Summaryp. 437
18.6 Referencesp. 437
18.7 Review Questionsp. 439
18.8 Problem Setp. 439
18.9 Projectsp. 439
Chapter 19 Composing Modeling Frameworks in Catalysisp. 441
19.1 Frameworks--Beyond OOPp. 441
19.2 Frameworks Build on Types, Refinements, and Collaborationsp. 450
19.3 Frameworks with Placeholdersp. 455
19.4 Examples of Frameworksp. 458
19.5 Summaryp. 458
19.6 Referencesp. 459
19.7 Review Questionsp. 459
19.8 Problem Setp. 459
19.9 Projectsp. 459
Sidebar 6 Enduring Business Themesp. 460
Part 6 Framework Testing and Integrationp. 465
Chapter 20 Composition Problems, Causes, and Solutionsp. 467
20.1 Object-Oriented Framework Examplesp. 469
20.2 Framework Composition Problemsp. 471
20.3 Underlying Causesp. 476
20.4 From Problems to Causes to Solutionsp. 479
20.5 Summaryp. 484
20.6 Referencesp. 485
20.7 Review Questionsp. 487
Sidebar 7 Built-In Test Reusep. 488
Part 7 Framework Documentationp. 493
Chapter 21 Documenting Frameworksp. 495
21.1 Kinds of Framework Reusep. 496
21.2 Types of Documentationp. 497
21.3 Guidelinesp. 501
21.4 Summaryp. 501
21.5 Referencesp. 502
21.6 Review Questionsp. 503
Chapter 22 Empowering Framework Usersp. 505
22.1 The Aim of Empowermentp. 505
22.2 Teaching Techniquesp. 506
22.3 Combining the Teaching Techniquesp. 509
22.4 Summaryp. 515
22.5 Referencesp. 520
22.6 Review Questionsp. 521
22.7 Problem Setp. 521
Chapter 23 Describing and Using Frameworksp. 523
23.1 Requirementsp. 524
23.2 Modelp. 527
23.3 Implementationp. 539
23.4 Framework Search and Realizationp. 545
23.5 Framework Packagingp. 552
23.6 Related Workp. 555
23.7 Summaryp. 557
23.8 Referencesp. 558
23.9 Review Questionsp. 560
23.10 Problem Setp. 560
Sidebar 8 Documenting Frameworks: Solitaire Is Not Alonep. 562
Part 8 Framework Management and Economicsp. 565
Chapter 24 Strategic Analysis of Application Framework Investmentsp. 567
24.1 Software Reuse Economics and Organizational Reuse Capabilityp. 568
24.2 Strategy: A Value-Based Investment Frameworkp. 569
24.3 Finance: Linking Strategy to Valuep. 577
24.4 Summary and Related Workp. 592
24.5 Referencesp. 593
24.6 Review Questionsp. 595
24.7 Problem Setp. 595
24.8 Projectsp. 596
Chapter 25 Evaluating Structural and Functional Stabilityp. 599
25.1 Metrics and OOAF Characteristics Assessmentp. 600
25.2 Framework Stabilityp. 601
25.3 Framework Architecture Assessment Methodp. 602
25.4 Summaryp. 611
25.5 Referencesp. 613
25.6 Review Questionsp. 613
25.7 Problem Setp. 614
25.8 Projectsp. 615
Chapter 26 Future Trendsp. 617
26.1 Future Research Areasp. 617
26.2 Referencesp. 619
26.3 Review Questionsp. 619
Sidebar 9 Framework Maintenance: Vendor Viewpointp. 620
Appendix A Glossaryp. 625
Appendix B Index of Authorsp. 635
Indexp. 653