did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780471202844

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

by ; ; ; ;
  • ISBN13:

    9780471202844

  • ISBN10:

    0471202843

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2004-09-24
  • Publisher: Wiley
  • Purchase Benefits
List Price: $40.00

Summary

understanding of these technologies, and will learn how to apply them to implement Software Factories within their own organizations.

Author Biography

JACK GREENFIELD (Redmond, WA) is an Architect for Visual Studio Team System. He is an author, frequent speaker, and key contributor to component, model, and pattern technologies at Microsoft.<BR> KEITH SHORT (Redmond, WA) is an Architect for Visual Studio Team System. He is responsible for strategy and architecture for enterprise tools at Microsoft.<BR> STEVE COOK (Canterbury, UK) is an Architect for Visual Studio Team System. He was formerly an IBM Distinguished Engineer and a major contributor to UML and UML2.<BR> STUART KENT (Bishop&#146;s Stortford, UK) is a Program Manager for Visual Studio Team System. He focuses on modeling technology and is an internationally recognized authority on UML.

Table of Contents

Prefacep. xv
Acknowledgmentsp. xxiii
Forewordp. xxvii
Introduction to Software Factoriesp. 1
Introductionp. 3
Tools Lag Platformsp. 4
The Software Development Landscapep. 7
Platform Technology Evolutionp. 8
Building Applications with Servicesp. 24
Software Development Challengesp. 30
Discontinuous Innovationp. 32
Notesp. 34
Dealing with Complexityp. 35
The Problem of Complexityp. 35
Feature Delocalizationp. 38
Working at the Wrong Level of Abstractionp. 41
Raising the Level of Abstractionp. 53
Packaging Abstractionsp. 61
Current Methods and Practicesp. 66
Encapsulationp. 67
Partitioning Responsibilityp. 68
Documenting Designp. 73
Automating Developmentp. 77
Organizing Developmentp. 82
Notesp. 85
Dealing with Changep. 87
The Problem of Changep. 87
Responses to Changep. 87
Software Agingp. 88
Software As Simulationp. 90
Sources of Changep. 99
Current Methods and Practicesp. 100
Preventing Stagnationp. 101
Reducing Brittlenessp. 104
Reducing Fatiguep. 106
Paradigm Shiftp. 109
Chronic Problemsp. 109
Monolithic Constructionp. 110
Gratuitous Generalityp. 115
One-Off Developmentp. 120
Process Immaturityp. 121
Critical Innovationsp. 125
Systematic Reusep. 125
Development by Assemblyp. 129
Model-Driven Developmentp. 139
Process Frameworksp. 150
Software Factoriesp. 155
Industrializing Software Developmentp. 155
The Economics of Reusep. 156
Economies of Scale and Scopep. 157
Systematic Software Reusep. 159
Integrating the Critical Innovationsp. 161
What Is a Software Factory?p. 163
What Is a Software Factory Schema?p. 164
What Is a Software Factory Template?p. 173
Building a Software Factoryp. 174
Building a Software Productp. 175
A Software Factory Examplep. 180
Implications of Software Factoriesp. 185
Development by Assemblyp. 185
Software Supply Chainsp. 186
Relationship Managementp. 187
Domain Specific Assetsp. 187
Organizational Changesp. 188
Mass Customization of Softwarep. 188
Realizing the Software Factory Visionp. 189
Notesp. 190
Critical Innovationsp. 191
Models and Patternsp. 193
Intent versus Implementationp. 193
What Is Intent?p. 194
Capturing Intentp. 195
A Closer Look at Patternsp. 197
Creating and Using Patternsp. 198
Weaving Patterns into Languagesp. 201
Patterns in Product Familiesp. 204
Encapsulating Pattern Languagesp. 205
What Is Encapsulation?p. 206
Defining Languages with Encapsulationp. 208
Formalizing Pattern Languagesp. 210
What Are Models?p. 212
Models as Abstractionsp. 213
Model Visualizationp. 214
Models as Metadatap. 217
Models as Development Artifactsp. 218
Modeling or Programming?p. 226
Programming with Modelsp. 231
Model-Driven Developmentp. 231
Generating Softwarep. 233
Automating Patternsp. 238
Automating Refactoringp. 249
Automating Buildsp. 249
Automating Deploymentp. 249
Automating Testingp. 251
Debugging with Modelsp. 252
Using Multiple Viewsp. 253
Architectural Descriptionp. 253
Domain Specificityp. 254
Modeling Aspectsp. 258
How to Model Softwarep. 263
Types of Informationp. 264
Level of Abstractionp. 266
Style of Specificationp. 271
Domain-Specific Languagesp. 274
Business Ramificationsp. 274
Technical Ramificationsp. 275
Next Stepsp. 277
Notesp. 277
Language Anatomyp. 279
Example Languagep. 282
Abstract Syntaxp. 285
Context-Free Grammars and BNFp. 286
Metamodelsp. 289
Abstract Syntax Graphsp. 293
Well-Formedness Rulesp. 294
Comparison of CFGs and Metamodelsp. 297
Concrete Syntaxp. 299
Serialization Syntaxp. 306
Semanticsp. 309
Translational Semanticsp. 310
Trace-Based Semanticsp. 312
Programming versus Modelingp. 318
Notesp. 319
Families of Languagesp. 321
Language Familiesp. 321
Tool Factoriesp. 328
Tool Factory Architecturep. 328
The State of the Artp. 333
Systematic Reusep. 337
Software Product Familiesp. 337
Software as a Productp. 338
How Families Are Formedp. 338
Working Within a Familyp. 340
Solving Problems in Advancep. 341
The Role of Architecturep. 342
Commonality and Variabilityp. 344
Where Families Are Foundp. 345
Software Product Linesp. 347
Creating Economies of Scopep. 348
Required Adaptationsp. 350
Software Supply Chainsp. 355
Notesp. 358
Software Product Linesp. 359
Product Line Developmentp. 359
Product Line Analysisp. 361
Product Line Designp. 375
Product Line Implementationp. 379
Product Developmentp. 382
Problem Analysisp. 382
Product Specificationp. 382
Collateral Developmentp. 385
Product Implementationp. 385
Product Line Evolutionp. 391
Product Line Deploymentp. 391
Platform-Based Abstractionsp. 393
Platform-Based Abstractionsp. 393
Platform-Based Abstractions in Product Linesp. 395
Properties of Platform-Based Abstractionsp. 397
Classes, Libraries, and Frameworksp. 401
Class Frameworksp. 403
Summaryp. 411
Components and Servicesp. 413
Software Componentsp. 413
Definitionp. 413
Interface Specificationsp. 415
Component Dependenciesp. 423
Component-Based Developmentp. 426
Defining Product Line Component Architecturesp. 432
From Components to Servicesp. 438
Service Componentsp. 438
Business Protocols and Contractsp. 439
Service-Oriented Architecturesp. 445
Web Services Technologyp. 446
What's Different This Time?p. 448
Web Service Data Semanticsp. 448
WS Process Semanticsp. 450
Summaryp. 452
Notesp. 453
Mappings and Transformationsp. 455
Transformationsp. 455
Types of Transformationp. 456
Vertical Transformationsp. 458
Horizontal Transformationsp. 462
Transformation Problemsp. 470
Model-to-Model Transformationsp. 471
Model-to-Code Transformationsp. 473
Solving the Composition Problemp. 476
Solving the Traceability Problemp. 479
Summaryp. 481
Notesp. 481
Generating Implementationsp. 483
Describing Transformationsp. 483
Mapping Rules Have IF-THEN Partsp. 485
Implementing Mapping Rulesp. 489
Specifying Horizontal Transformationsp. 493
Describing Aspect Weavingp. 493
Describing Refactoring Rulesp. 495
Patterns as Sets of Mapping Rulesp. 496
Transformation Systemsp. 500
Black-Box and White-Box Transformationsp. 501
Grey-Box Transformation Systemsp. 503
Applying Black-Box Transformationsp. 505
Summaryp. 508
Software Factories in Depthp. 509
A Software Factory Examplep. 511
A Review of the Approachp. 511
Building an Online eCommerce Application Familyp. 512
Product Line Analysisp. 515
Product Line Definitionp. 515
Problem Domain Scopingp. 518
Solution Domain Scopingp. 521
Business Case Analysisp. 524
Product Line Designp. 526
Product Line Architecture Developmentp. 526
Product Line Requirements Mappingp. 546
Product Line Implementationp. 548
Asset Provisioningp. 548
Asset Packagingp. 557
Product Developmentp. 557
Product Specificationp. 558
Conclusionp. 560
Notesp. 561
Frequently Asked Questionsp. 563
How Do Software Factories Differ From...?p. 563
How Do Software Factories Differ from RAD?p. 564
How Do Software Factories Differ from MDA?p. 567
How Do Software Factories Differ from the UP?p. 573
How Do Software Factories Differ from Agile Modeling?p. 577
How Agile Are Software Factories?p. 580
Agile Development Principlesp. 580
Agile Development Practicesp. 582
How Will Software Factories Be Adopted?p. 584
Types of Business Applicationsp. 586
Business Application Characteristicsp. 586
How Mature Are Software Factories?p. 588
Language Technologyp. 589
Tool Extensibilityp. 589
Pattern Compositionp. 590
Deferred Encapsulationp. 590
Standard Assets for Popular Domainsp. 591
How Should Software Factories Be Implemented?p. 591
New Development Artifactsp. 592
New Development Scopep. 592
New Development Activitiesp. 592
Implementing Software Factoriesp. 593
What's Different This Time?p. 594
Abstraction and Refinementp. 597
The Unified Modeling Languagep. 611
Bibliographyp. 629
Indexp. 641
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program