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



Similar documents
Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Object-Oriented Systems Analysis and Design

Executive's Guide to Project Management

Table of Contents. Preface. Chapter 1 Introduction 1.1 Background. 1.2 Problem description. 1.3 The role of standardization. 1.4 Scope and objectives

today 1,700 special programming languages used to communicate in over 700 application areas.

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Object-Oriented Design

Foundations of Model-Driven Software Engineering

The Unified Software Development Process

Service Oriented Enterprise Architecture

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Table of Contents. Testimonials from the MDM Alliance Group... Introduction to MDM...

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

The Internet of Products

Ontologies for Software Engineering and Software Technology

Delivery. Enterprise Software. Bringing Agility and Efficiency. Global Software Supply Chain. AAddison-Wesley. Alan W. Brown.

The SPES Methodology Modeling- and Analysis Techniques

MDE Adoption in Industry: Challenges and Success Criteria

An Enterprise Modeling Framework for Banks using. Algebraic Graph Transformation

Cloud Computing. and Scheduling. Data-Intensive Computing. Frederic Magoules, Jie Pan, and Fei Teng SILKQH. CRC Press. Taylor & Francis Group

The Data Warehouse Challenge

A Software Development Platform for SOA

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Federal Enterprise Architecture and Service-Oriented Architecture

Obj ect-oriented Construction Handbook

IMPROVEMENT THE PRACTITIONER'S GUIDE TO DATA QUALITY DAVID LOSHIN

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Mastering Tomcat Development

From Agile by Design. Full book available for purchase here.

Online Recruiting and Selection

Modern Industrial Automation Software Design

OMG SOA Workshop - Burlingame Oct 16-19, 2006 Integrating BPM and SOA Using MDA A Case Study

Master Data Management

Beginning ASP.NET 4.5

SOA, Cloud Computing & Semantic Web Technology: Understanding How They Can Work Together. Thomas Erl, Arcitura Education Inc. & SOA Systems Inc.

A Comparison of SOA Methodologies Analysis & Design Phases

Business-Driven Software Engineering Lecture 3 Foundations of Processes

CONTENTS Preface xv 1 Introduction

Model-Driven Development of a Biosignal Analysis Framework: Benefits and Impacts on Processes. Nikolas Hofmann

Implementation. Business-Driven IT-Wide Agile (Scrum) and Kanban (Lean) Andrew T. Pham and David K. Pham. An Action Guide for Business and IT Leaders

The OMG BPM Standards

Schneps, Leila; Colmez, Coralie. Math on Trial : How Numbers Get Used and Abused in the Courtroom. New York, NY, USA: Basic Books, p i.

Software Maintenance Management

The Complete Guide to Option Strategies

Building a Flexible Software Factory Using Partial Domain Specific Models

C ONTENTS. Acknowledgments

Microsoft SharePoint 2010 Administration

Dagstuhl seminar on Service Oriented Computing. Service design and development. Group report by Barbara Pernici, Politecnico di Milano

Advanced Software Engineering. Software Development Processes

Measuring Data Quality for Ongoing Improvement

MDA Journal A BPT COLUMN. David S. Frankel. January Until February. David Frankel

SQL Server Integration Services. Design Patterns. Andy Leonard. Matt Masson Tim Mitchell. Jessica M. Moss. Michelle Ufford

Enterprise Architecture at Work

Applying 4+1 View Architecture with UML 2. White Paper

Global Project Management

Management. Oracle Fusion Middleware. 11 g Architecture and. Oracle Press ORACLE. Stephen Lee Gangadhar Konduri. Mc Grauu Hill.

Localization Strategies for Global E-Business

Acknowledgements PART ONE: CONCEPTUAL FRAMEWORK. 1. ERP Systems: An Introduction 3

Design Patterns for Complex Event Processing

SOA + BPM = Agile Integrated Tax Systems. Hemant Sharma CTO, State and Local Government

Data Warehouse Design

Introduction to Generative Software Development

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Effective Methods for Software and Systems Integration

Introduction. Acknowledgments Support & Feedback Preparing for the Exam. Chapter 1 Plan and deploy a server infrastructure 1

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

SYSTEMS ANALYSIS DESIGN

INNOVATION MANAGEMENT

Improving Business Process Performance

THE CERTIFIED SIX SIGMA BLACK BELT HANDBOOK

Big Data JAMES WARREN. Principles and best practices of NATHAN MARZ MANNING. scalable real-time data systems. Shelter Island

for Research and Guiding Innovation for Positive R&D Outcomes Lory Mitchell Wingate

Agile! Springer. The Good, the Hype and the Ugly. Bertrand Meyer

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Five best practices for deploying a successful service-oriented architecture

Jairson Vitorino. PhD Thesis, CIn-UFPE February Supervisor: Prof. Jacques Robin. Ontologies Reasoning Components Agents Simulations

Business Administration of Windchill PDMLink 10.0

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

Business Architecture

The Software. Audit Guide. ASQ Quality Press. Milwaukee, Wisconsin. John W. Helgeson

Workflow Administration of Windchill 10.2

Service-oriented architecture in e-commerce applications

SOA GOVERNANCE MODEL

CHAPMAN & HALL/CRC INNOVATIONS IN SOFTWARE ENGINEERING AND SOFTWARE DEVELOPMENT. Software Test Attacks to Break Mobile and Embedded Devices

Agile Modeling and Design of Service-Oriented Component Architecture

Introduction to Windchill PDMLink 10.0 for Heavy Users

Transcription:

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools Jack Greenfield Keith Short WILEY Wiley Publishing, Inc.

Preface Acknowledgments Foreword Parti Introduction to Software Factories XV xxiii xxvii 1 Chapter 1 Chapter 2 Introduction Tools Lag Platforms The Software Development Landscape Platform Technology Evolution Building Applications with Services Software Development Challenges Discontinuous Innovation 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 3 4 7 8 24 30 32 34 35 35 38 41 53 61 66 67 68 73 77 82 85 vii

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 190

ix 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 Language Anatomy Example Laneuaee 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

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

xi 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 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 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 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

xii Contents Part III Chapter 16 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 500 501 503 505 508 509 511 511 512 515 515 518 521 524 526 526 546 548 548 557 557 558 560 561 Chapter 17 Frequently Asked Questions How Do Software Factories Differ From...? How Do Software Factories Differ from RAD? 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

xiii 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 590 591 591 592 592 592 593 594 597 611 629 641