Product Production in a Software Product Line

advertisement
Pittsburgh, PA 15213-3890
Integrating Domain Specific Modeling
into the Production Method of a
Software Product Line
Gary Chastek
John D. McGregor
Sponsored by the U.S. Department of Defense
© 2004 by Carnegie Mellon University
page 1
Research Question
How can product production be engineered to achieve the
goals of a software product line?
© 2004 by Carnegie Mellon University
page 2
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
© 2004 by Carnegie Mellon University
page 3
Product Production
Software
Product Line Production Production Production
Development Strategy
Method
Plan
Organization
Product 1
Product 2
Product 3
Core Assets
The
Thegoal
The
core
How
What
What
is
focus
assets
can
to
does
processes,
reduce
product
ofand
the
our product
the
work
development
models,
risk
is to
on
developer
production
product
product
andsatisfy
technologies
line
need
production
system
the
organizations
toorganization’s
know
must
can
asto
be
abeeffectively
system
jointly
used
by providing
goals
engineered
tothat is
explicit
engineered
totechniques
achieve
toensure
utilize
have
thefororganization’s
specified
the
for
consistency
strategizing
core
the software
assets
production
and
across
goals
toproduct
planning
develop
for
qualities
thethe
core
line?
for
products?
software
assets?
and
product
predictable
product
production.
line.
outputs.
© 2004 by Carnegie Mellon University
page 4
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.
© 2004 by Carnegie Mellon University
page 5
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
© 2004 by Carnegie Mellon University
page 6
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+
© 2004 by Carnegie Mellon University
page 7
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
© 2004 by Carnegie Mellon University
page 8
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?
© 2004 by Carnegie Mellon University
page 9
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
© 2004 by Carnegie Mellon University
page 10
Download