• No results found

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

N/A
N/A
Protected

Academic year: 2021

Share "Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Factories:

Assembling Applications

with Patterns, Models,

Frameworks, and Tools

Jack Greenfield

Keith Short

WILEY

(2)

Contents

Preface Acknowledgments Foreword

Parti

Chapter 1 Chapter 2

Introduction to Software Factories

Introduction Tools Lag Platforms

The Software Development Landscape Platform Technology Evolution Building Applications with Services Software Development Challenges Discontinuous Innovation

Notes

Dealing with Complexity The Problem of Complexity

Feature Delocalization Working at the Wrong Level

of Abstraction

Raising the Level of Abstraction Packaging Abstractions

Current Methods and Practices Encapsulation Partitioning Responsibility Documenting Design Automating Development Organizing Development Notes XV xxiii xxvii

1

3 4 7 8 24 30 32 34 35 35 38 41 53 61 66 67 68 73 77 82 85

vii

(3)

viii Contents

Chapter 3 Dealing with Change 87

The Problem of Change 87 Responses to Change 87 Software Aging 88 Software As Simulation 90 Sources of Change 99 Current Methods and Practices 100 Preventing Stagnation 101 Reducing Brittleness 104 Reducing Fatigue 106

Chapter 4 Paradigm Shift 109

Chronic Problems 109 Monolithic Construction 110 Gratuitous Generality 115 One-Off Development 120 Process Immaturity 121 Critical Innovations 125 Systematic Reuse 125 Development by Assembly 129 Model-Driven Development 139 Process Frameworks 150

Chapter 5 Software Factories 155

Industrializing Software Development 155 The Economics of Reuse 156 Economies of Scale and Scope 157 Systematic Software Reuse 159 Integrating the Critical Innovations 161 What Is a Software Factory? 163 What Is a Software Factory Schema? 164 What Is a Software Factory Template? 173 Building a Software Factory 174 Building a Software Product 175 A Software Factory Example 180 Implications of Software Factories 185 Development by Assembly 185 Software Supply Chains 186 Relationship Management 187 Domain Specific Assets 187 Organizational Changes 188 Mass Customization of Software 188 Realizing the Software Factory Vision 189 Notes 190

(4)

Part II

Chapter 6

Chapter 7

Chapter 8

Critical Innovations

Models and Patterns

Intent versus Implementation What Is Intent?

Capturing Intent A Closer Look at Patterns

Creating and Using Patterns Weaving Patterns into Languages Patterns in Product Families Encapsulating Pattern Languages

What Is Encapsulation?

Defining Languages with Encapsulation Formalizing Pattern Languages

What Are Models? Models as Abstractions Model Visualization Models as Metadata

Models as Development Artifacts Modeling or Programming?

Programming with Models

Model-Driven Development Generating Software Automating Patterns Automating Refactoring Automating Builds Automating Deployment Automating Testing Debugging with Models Using Multiple Views

Architectural Description Domain Specificity Modeling Aspects How to Model Software

Types of Information Level of Abstraction Style of Specification Domain-Specific Languages Business Ramifications Technical Ramifications Next Steps Notes

Language Anatomy

Example Laneuaee

Contents ix

191

193 193 194 195 197 198 201 204 205 206 208 210 212 213 214 217 218 226 231 231 233 238 249 249 249 251 252 253 253 254 258 263 264 266 271 274 274 275 277 277 279 282

(5)

Contents

Chapter 9

Chapter 10

Chapter 11

Abstract Syntax

Context-Free Grammars and BNF Metamodels

Abstract Syntax Graphs Well-Formedness Rules

Comparison of CFGs and Metamodels Concrete Syntax

Serialization Syntax Semantics

Translational Semantics Trace-Based Semantics Programming versus Modeling Notes

Families of Languages Language Families Tool Factories

Tool Factory Architecture The State of the Art Systematic Reuse

Software Product Families Software as a Product How Families Are Formed Working Within a Family Solving Problems in Advance The Role of Architecture Commonality and Variability Where Families Are Found Software Product Lines

Creating Economies of Scope Required Adaptations Software Supply Chains Notes

Software Product Lines Product Line Development

Product Line Analysis Product Line Design

Product Line Implementation Product Development

Problem Analysis Product Specification Collateral Development Product Implementation Product Line Evolution Product Line DeDlovment

285 286 289 293 294 297 299 306 309 310 312 318 319 321 321 328 328 333 337 337 338 338 340 341 342 344 345 347 348 350 355 358 359 359 361 375 379 382 382 382 385 385 391 391

(6)

Chapter 12

Chapter 13

Chapter 14

Chapter 15

Platform-Based Abstractions

Platform-Based Abstractions

Platform-Based Abstractions in Product Lines Properties of Platform-Based Abstractions Classes, Libraries, and Frameworks

Class Frameworks Summary

Components and Services

Software Components

Definition

Interface Specifications Component Dependencies Component-Based Development Defining Product Line Component

Architectures

From Components to Services Service Components

Business Protocols and Contracts Service-Oriented Architectures Web Services Technology

What's Different This Time? Web Service Data Semantics WS Process Semantics Summary

Notes

Mappings and Transformations

Transformations Types of Transformation Vertical Transformations Horizontal Transformations Transformation Problems Model-to-Model Transformations Model-to-Code Transformations Solving the Composition Problem Solving the Traceability Problem Summary

Notes

Generating Implementations

Describing Transformations

Mapping Rules Have IF-THEN Parts Implementing Mapping Rules

Specifying Horizontal Transformations Describing Aspect Weaving

Describing Refactoring Rules Patterns as Sets of Mapping: Rules

Contents xi

393 393 395 397 401 403 411 413 413 413 415 423 426 432 438 438 439 445 446 448 448 450 452 453 455 455 456 458 462 470 471 473 476 479 481 481 483 483 485 489 493 493 495 496

(7)

xii Contents

Part III Chapter 16

Chapter 17

Transformation Systems

Black-Box and White-Box Transformations Grey-Box Transformation Systems

Applying Black-Box Transformations Summary

Software Factories in Depth

A Software Factory Example A Review of the Approach

Building an Online eCommerce Application Family

Product Line Analysis Product Line Definition Problem Domain Scoping Solution Domain Scoping Business Case Analysis Product Line Design

Product Line Architecture Development Product Line Requirements Mapping Product Line Implementation

Asset Provisioning Asset Packaging Product Development Product Specification Conclusion Notes

Frequently Asked Questions

How Do Software Factories Differ From... ? How Do Software Factories Differ from RAD?

500 501 503 505 508

509

511 511 512 515 515 518 521 524 526 526 546 548 548 557 557 558 560 561 563 563 564 How Do Software Factories Differ

from MDA®? 567 How Do Software Factories

Differ from the UP? 573 How Do Software Factories Differ

from Agile Modeling? 577 How Agile Are Software Factories? 580 Agile Development Principles 580 Agile Development Practices 582 How Will Software Factories Be Adopted? 584 Types of Business Applications 586 Business Application Characteristics 586 How Mature Are Software Factories? 588 Language Technology 589 Tool Extensibility 589 Pattern Composition 590

(8)

Deferred Encapsulation

Standard Assets for Popular Domains How Should Software Factories

Be Implemented?

New Development Artifacts New Development Scope New Development Activities Implementing Software Factories What's Different This Time? Appendix A: Abstraction and Refinement 1 Appendix B: The Unified Modeling Language

Bibliography Index

Contents xiii

590 591 591 592 592 592 593 594 597 611 629 641

References

Related documents

³ Bottom Quartile Student Growth: 25% of the grade is based on the growth of the bottom 25% of incoming students as measured by Oklahoma’s standardized assessments in reading

As part of the strategy to support low-achieving students launched in 2010, the German Länder are implementing a range of initiatives designed to: improve the quality of

As media is a contributing factor of human rights promotion and protection, this dissertation examines the construction and representation of the right to privacy and

antibody and mass spectrometry will allow us to study serum, plasma, and urine from prostate cancer patients with or without bone metastases and determine any

(metro Jackson) Court Records, Mississippi Sex Offender Records, Missouri Corrections Records, Missouri Administrative Office of Court Records, Missouri Sex Offender Records,

If a participant enters an order to buy three GE1 contracts at this implied offer price of 9516, CME Globex will immediately fill three GE2 contracts at 9512 and also fill three of

The philosophy of the school literary translated into English is: Make the Central Academy of Drama a world class art institute which keeps theatre education as the core and also