BUILDING APPLICATION FRAMEWORKS: OBJECT-ORIENTED FOUNDATIONS OF FRAMEWORK DESIGN


Table of Contents

Preface xv

Acknowledgments xxi

Part One: Framework Overview 1

Mohamed E. Fayad

Chapter 1 Application Frameworks 3

Mohamed 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 29

Eyoun 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 55

Jan 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 83

David S. Hamu

Part Two: Framework Perspectives 87

Mohamed E. Fayad

Chapter 4 Simula Frameworks: The Early Experience 89

Jean 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 143

Art 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 153

Art 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 163

Paula S.C. Alencar, Donald D. Cowan, Torsten Nelson, Marcus F. Fontoura, and Carlos J.P. Lucena

Part Three: Frameworks and Domain Analysis 167

Mohamed E. Fayad

Chapter 7 Deriving Frameworks from Domain Knowledge 169

Mehmet 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 199

Joan 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 211

Giancarlo Succi, Paolo Predonzani, Andrea Valerio, and Tullio Vernazza

Part Four: Framework Development Concepts 215

Mohamed E. Fayad

Chapter 9 Reusing Hooks 219

Garry 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 237

Steven 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 267

Alejandra 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 289

Neelam 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 309

Granville 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 325

Andreas 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 345

Michael Goedicke and Torsten Meyer

Part Five: Framework Development Approaches 349

Mohamed E. Fayad

Chapter 15 Framework Design by Systematic Generalization 353

Hans 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 379

Wolfgang 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 395

Dirk 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 411

Wolfgang Pree and Kai Koskimies

Chapter 18 Understanding Macroscopic Behavior Patterns with Use-Case Maps 415

R.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 441

Desmond 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 460

Marshall Cline, Mike Girou, and Howard Young

Part Six: Framework Testing and Integration 465

Mohamed E. Fayad

Chapter 20 Composition Problems, Causes, and Solutions 467

Michael 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 488

Yingxu Wang, Graham King, and Mohamed E. Fayad

Part Seven: Framework Documentation 493

Mohamed E. Fayad

Chapter 21 Documenting Frameworks 495

Greg 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 505

Jutta 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 523

Hafedh 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 562

David C. Raines and James C. McKim, Jr.

Part Eight: Framework Management and Economics 565

Mohamed E. Fayad

Chapter 24 Strategic Analysis of Application Framework Investments 567

John 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 599

Jadish 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 617

Mohamed E. Fayad

26.1 Future Research Areas 617

26.2 References 619

26.3 Review Questions 619

Sidebar 9 Framework Maintenance: Vendor Viewpoint 620

Mauri Laitinen

Appendix A Glossary 625

Appendix B Index of Authors 635

Index 653


Cover
ISBN 0-471-24875-4
688 pages
September, 1999

WCP Home Page


WCP Home Page

[ Framework Foundations ] [ Implementing Frameworks ] [ Domain-Specific Frameworks ]

Copyright © 1999 John Wiley & Sons, Inc. Wiley Computer Publishing