sponsored by the u.s. department of defense © 2004 by carnegie mellon university page 1 pittsburgh,...

10
Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling into the Production Method of a Software Product Line Gary Chastek John D. McGregor

Upload: beverly-blankenship

Post on 16-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

Sponsored by the U.S. Department of Defense© 2004 by Carnegie Mellon University

page 1

Pittsburgh, PA 15213-3890

Integrating Domain Specific Modeling into the Production Method of a

Software Product Line

Gary ChastekJohn D. McGregor

Page 2: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 2

Research Question

How can product production be engineered to achieve the goals of a software product line?

Page 3: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 3

Overview

Brief introduction to product production in a software product line (SPL)

Method engineering in a SPL

Our use of domain-specific modeling (DSM) in product production

SPL connections to domain modeling

Summary

Page 4: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 4

Software Product Line Development Organization

Product Production

Product 2

Product 3

Product 1

The focus of our work is on product production as a system that is engineered to have specified production qualities and predictable outputs.

The goal is to reduce the risk to product line organizations by providing explicit techniques for strategizing and planning for product production.

How can product development satisfy the organization’s goals for the software product line?

Production Strategy

What processes, models, and technologies can be used to ensure consistency across the core assets?

Production Method

Production Plan

What does the product developer need to know to effectively utilize the core assets to develop products?

Core Assets

The core assets and product production system must be jointly engineered to achieve the organization’s goals for the software product line.

Page 5: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 5

Goal-driven Method Engineering

Method engineering is the systematic definition of software development methods.

A method captures the processes, techniques, and models required to execute a software development effort.

For example, an object-oriented software development method defines specific modeling notations, languages, and iterative processes that work together to support effective software development.

Goal-driven means that method definition is driven by the specific goals to be achieved.

Page 6: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 6

Method Engineering in a SPL

The production method is derived from the production strategy and the production techniques are based on the specific product production goals

For example• if the production strategy includes the goal to enable

domain knowledgeable individuals to build products• the method

- must support complete specification of a product using only domain vocabulary

- must enable building a product automatically from that domain-based specification

Page 7: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 7

Arcade Game Maker (AGM)

Research SPL developed at Clemson• 3 games (Brickles, Pong, and Bowling)• 3 targets (PC, Wireless device, Customized)

Third increment of AGM• Customized “giveaways”• Based on the domain expertise from the previous

increments, used domain modeling approach• Used MetaEdit+

Page 8: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 8

DSM and SPLs

Current connections:• FODA developed at SEI• Product Line Analysis based on feature modeling• Understanding Relevant Domains (URD) is one of the 29

practice areas defined in the SEI SPL Framework• URD used in the What to Build Pattern• Our preliminary work using DSM in product production

Page 9: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 9

Our Open Questions

When is DSM the most appropriate technology for a software product line? • When production goals relate to domain knowledgeable

personnel?• When the domain is sufficiently well specified?

Are there explicit limitations when the method engineer should not choose DSM for the production method?

Page 10: Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA 15213-3890 Integrating Domain Specific Modeling

© 2004 by Carnegie Mellon University page 10

Summary

Conclusion so far: SPLs should be engineered by• explicitly setting product production goals• considering product production early (before core asset

design)• focusing on domain knowledge• merging these concerns

Conjecture: SPLs might be better designed and implemented by• domain modeling• using a domain-specific language that supports an

aspect-like mechanism for dealing with product variability