BUILDING APPLICATION FRAMEWORKS: OBJECT-ORIENTED FOUNDATIONS OF FRAMEWORK DESIGNTable of ContentsPreface xvAcknowledgments xxiPart One: Framework Overview 1Mohamed E. Fayad Chapter 1 Application Frameworks 3Mohamed E. Fayad, Douglas C. Schmidt, and Ralph E. Johnson 1.1 What Is an Application Framework? 4 1.2 Benefits 8 1.3 An Overview of Widely Used Frameworks 9 1.4 Classifying Application Frameworks 9 1.5 The Strengths and Weaknesses of Application Frameworks 11 1.6 Reuse: Components versus Designs 13 1.7 Application Frameworks versus Other Reuse Techniques 15 1.8 How to Use Application Frameworks 17 1.9 How to Learn Application Frameworks 18 1.10 How to Evaluate Application Frameworks 19 1.11 How to Develop Application Frameworks 21 1.12 Organization of This Book 22 1.13 Summary 23 1.14 References 24 1.15 Review Questions 27 Chapter 2 Frameworks and Patterns: Architectural Abstractions 29Eyoun Eli Jacobson and Palle Nowack 2.1 Architectural Abstractions 31 2.2 Frameworks 33 2.3 Object-Oriented Patterns 37 2.4 Frameworks and Patterns 46 2.5 Summary 50 2.6 References 52 2.7 Review Questions 53 2.8 Problem Set 54 Chapter 3 Framework Problems and Experiences 55Jan Bosch, Peter Molin, Michael Mattsson, PerOlaf Bengtsson, and Mohamed E. Fayad 3.1 Object-Oriented Frameworks 56 3.2 Examples of Application Frameworks 59 3.3 Problems and Experiences 62 3.4 Summary 78 3.5 References 79 3.6 Review Questions 82 Sidebar 1 Enterprise Frameworks 83David S. Hamu Part Two: Framework Perspectives 87Mohamed E. Fayad Chapter 4 Simula Frameworks: The Early Experience 89Jean G. Vaucher and Boris Magnusson 4.1 History of Simula 91 4.2 Basic Concepts of Simula 92 4.3 Standard Simula Frameworks 98 4.4 Other Simulation Frameworks 109 4.5 Simula and Real Time 119 4.6 Other Early Simula Frameworks 130 4.7 Discussion 131 4.8 Summary 136 4.9 References 138 4.10 Review Questions 140 Chapter 5 Visual Builders: Framework Design Issues 143Art Jolin, Dave Lavin, and Susan Charpenter 5.1 Parts Can Address Both Sets of Needs 143 5.2 Programmers Connect Part Features to Build Applications 145 5.3 Making Classes into Parts 145 5.4 Ready-to-Wear Parts versus Tailor-Made Classes 145 5.5 Code Generation Changes the Equation 147 5.6 Giving Up Some Freedom for Convenience 147 5.7 Builders Give You Some Things for Free 148 5.8 A Matter of Degree 149 5.9 Summary 149 5.10 References 150 5.11 Review Questions 150 5.12 Problem Set 150 5.13 Projects 152 Chapter 6 Usability and Framework Design 153Art Jolin 6.1 Usability Guidelines 153 6.2 Summary 160 6.3 Review Questions 160 6.4 Problem Set 162 6.5 Projects 162 Sidebar 2 Viewpoints and Frameworks in Component-Based Software Design 163Paula S.C. Alencar, Donald D. Cowan, Torsten Nelson, Marcus F. Fontoura, and Carlos J.P. Lucena Part Three: Frameworks and Domain Analysis 167Mohamed E. Fayad Chapter 7 Deriving Frameworks from Domain Knowledge 169Mehmet Aksit, Bedir Tekinerdogan, and Francesco Marcelloni 7.1 Description of the Pilot Projects 170 7.2 Modeling Domain Knowledge 172 7.3 Mapping Knowledge Graphs to Object-Oriented Frameworks 181 7.4 Evaluation of the Approach and Summary 189 7.5 References 191 7.6 Review Questions 194 7.7 Problem Set 194 Chapter 8 Harvesting Design 199Joan Boone 8.1 The Harvesting Process 200 8.2 Identifying Candidates 200 8.3 Solution Domain Analysis 201 8.4 Framework Implementation 203 8.5 Application Development with the Framework 209 8.6 Summary 209 8.7 References 209 8.8 Review Questions 210 8.9 Problem Set 210 Sidebar 3 Frameworks and Domain Models: Two Sides of the Same Coin 211Giancarlo Succi, Paolo Predonzani, Andrea Valerio, and Tullio Vernazza Part Four: Framework Development Concepts 215Mohamed E. Fayad Chapter 9 Reusing Hooks 219Garry Froehlich, H. James Hoover, Ling Liu, and Paul Sorenson 9.1 Background 220 9.2 The Hooks Model: An Overview 222 9.3 Hooking into SEAF 225 9.4 Summary 232 9.5 References 233 9.6 Review Questions 233 9.7 Problem Set 234 9.8 Projects 234 9.9 Appendix: Grammar for Hook Descriptions 235 Chapter 10 A Framework Recipe 237Steven R. Jones 10.1 The Transition 237 10.2 The Pattern System 241 10.3 Summary 265 10.4 References 265 10.5 Review Questions 266 10.6 Problem Set 266 Chapter 11 Capturing Hypermedia Functionality 267Alejandra Garrido and Gustavo Rossi 11.1 An Example 268 11.2 The OO-Navigator Architecture 269 11.3 Using the Framework 271 11.4 Describing the Architecture with Patterns 275 11.5 Summary 282 11.6 References 282 11.7 Review Questions 284 11.8 Problem Set 284 11.9 Projects 284 11.10 CASE Tool Appendix 285 Chapter 12 Understanding Frameworks 289Neelam Soundarajan 12.1 A Simple Model of Frameworks 292 12.2 Behavioral Refinement: From Frameworks to Applications 293 12.3 Case Study: A Simple Diagram Editor Framework 299 12.4 Summary 305 12.5 References 306 12.6 Review Questions 307 12.7 Problem Set 308 12.8 Projects 308 Chapter 13 Capturing Framework Requirements 309Granville G. Miller, John McGregor, and Melissa L. Major 13.1 Background 310 13.2 Framework Requirements 311 13.3 Related Work 318 13.4 Summary 320 13.5 References 321 13.6 Review Questions 322 13.7 Problem Set 322 Chapter 14 Managing Class Dependencies 325Andreas Rüping 14.1 Case Study 327 14.2 Classification 332 14.3 Related Work 341 14.4 Summary 342 14.5 References 343 14.6 Review Questions 344 14.7 Problem Set 344 Sidebar 4 Formal Design and Performance Evaluation 345Michael Goedicke and Torsten Meyer Part Five: Framework Development Approaches 349Mohamed E. Fayad Chapter 15 Framework Design by Systematic Generalization 353Hans Albrecht Schmid 15.1 Framework Design Activities 354 15.2 Application Modeling Activity 355 15.3 Hot Spots and Hot-Spot Specification 356 15.4 Hot-Spot Analysis 359 15.5 Hot-Spot Subsystem 362 15.6 Hot-Spot Subsystem High-Level Design: Mapping Characteristics to the Subsystem Structure 365 15.7 Generalization Transformation 367 15.8 Transformations Generalizing the Editor 369 15.9 Summary 373 15.10 References 377 15.11 Review Questions 377 15.12 Problem Set 378 Chapter 16 Hot-Spot-Driven Development 379Wolfgang Pree 16.1 Hot Spots in Whitebox and Blackbox Frameworks 379 16.2 Hook Methods as Elementary Building Blocks of Hot Spots 381 16.3 Hot-Spot-Driven Development Process 384 16.4 Summary 392 16.5 References 392 16.6 Review Questions 393 16.7 Problem Set 393 Chapter 17 Structuring Large Application Frameworks 395Dirk Bäumer, Guido Gryczan, Rolf Knoll, Carola Lilienthal, Dirk Riehle, and Heinz Züllighoven 17.1 Framework Layering in Large Systems 396 17.2 Framework Construction for Large Systems 403 17.3 Related Work 408 17.4 Summary 408 17.5 References 409 17.6 Review Questions 410 17.7 Problem Set 410 Sidebar 5 Framelets-Small Is Beautiful 411Wolfgang Pree and Kai Koskimies Chapter 18 Understanding Macroscopic Behavior Patterns with Use-Case Maps 415R.J.A. Buhr 18.1 Understanding Macroscopic Behavior Patterns 415 18.2 HotDraw 420 18.3 ACE 428 18.4 Discussion 433 18.5 Summary 437 18.6 References 437 18.7 Review Questions 439 18.8 Problem Set 439 18.9 Projects 439 Chapter 19 Composing Modeling Frameworks in Catalysis 441Desmond D'Souza and Alan Cameron Wills 19.1 Frameworks--Beyond OOP 441 19.2 Frameworks Build on Types, Refinements, and Collaborations 450 19.3 Frameworks with Placeholders 455 19.4 Examples of Frameworks 458 19.5 Summary 458 19.6 References 459 19.7 Review Questions 459 19.8 Problem Set 459 19.9 Projects 459 Sidebar 6 Enduring Business Themes 460Marshall Cline, Mike Girou, and Howard Young Part Six: Framework Testing and Integration 465Mohamed E. Fayad Chapter 20 Composition Problems, Causes, and Solutions 467Michael Mattsson and Jan Bosch 20.1 Object-Oriented Framework Examples 469 20.2 Framework Composition Problems 471 20.3 Underlying Causes 476 20.4 From Problems to Causes to Solutions 479 20.5 Summary 484 20.6 References 485 20.7 Review Questions 487 Sidebar 7 Built-In Test Reuse 488Yingxu Wang, Graham King, and Mohamed E. Fayad Part Seven: Framework Documentation 493Mohamed E. Fayad Chapter 21 Documenting Frameworks 495Greg Butler and Pierre Dénommée 21.1 Kinds of Framework Reuse 496 21.2 Types of Documentation 497 21.3 Guidelines 501 21.4 Summary 501 21.5 References 502 21.6 Review Questions 503 Chapter 22 Empowering Framework Users 505Jutta Eckstein 22.1 The Aim of Empowerment 505 22.2 Teaching Techniques 506 22.3 Combining the Teaching Techniques 509 22.4 Summary 515 22.5 References 520 22.6 Review Questions 521 22.7 Problem Set 521 Chapter 23 Describing and Using Frameworks 523Hafedh Mili and Houari Sahraoui 23.1 Requirements 524 23.2 Model 527 23.3 Implementation 539 23.4 Framework Search and Realization 545 23.5 Framework Packaging 552 23.6 Related Work 555 23.7 Summary 557 23.8 References 558 23.9 Review Questions 560 23.10 Problem Set 560 Sidebar 8 Documenting Frameworks: Solitaire Is Not Alone 562David C. Raines and James C. McKim, Jr. Part Eight: Framework Management and Economics 565Mohamed E. Fayad Chapter 24 Strategic Analysis of Application Framework Investments 567John M. Favaro and Kenneth K. Favaro 24.1 Software Reuse Economics and Organizational Reuse Capability 568 24.2 Strategy: A Value-Based Investment Framework 569 24.3 Finance: Linking Strategy to Value 577 24.4 Summary and Related Work 592 24.5 References 593 24.6 Review Questions 595 24.7 Problem Set 595 24.8 Projects 596 Chapter 25 Evaluating Structural and Functional Stability 599Jadish Bansiya 25.1 Metrics and OOAF Characteristics Assessment 600 25.2 Framework Stability 601 25.3 Framework Architecture Assessment Method 602 25.4 Summary 611 25.5 References 613 25.6 Review Questions 613 25.7 Problem Set 614 25.8 Projects 615 Chapter 26 Future Trends 617Mohamed E. Fayad 26.1 Future Research Areas 617 26.2 References 619 26.3 Review Questions 619 Sidebar 9 Framework Maintenance: Vendor Viewpoint 620Mauri Laitinen Appendix A Glossary 625Appendix B Index of Authors 635Index 653
|
ISBN 0-471-24875-4 688 pages September, 1999
| |||||
|
Copyright © 1999 John Wiley & Sons, Inc. Wiley Computer Publishing | ||||||