100 likes | 247 Views
Integrating Domain Specific Modeling into the Production Method of a Software Product Line. Gary Chastek John D. McGregor. Research Question. How can product production be engineered to achieve the goals of a software product line?. Overview.
E N D
Integrating Domain Specific Modeling into the Production Method of a Software Product Line Gary Chastek John D. McGregor
Research Question • How can product production be engineered to achieve the goals of a software product line?
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
Product 1 Product 2 Product 3 Core Assets The core assets and product production system must be jointly engineered to achieve the organization’s goals for the software product line. Product Production Software Product Line Development Organization Production Strategy Production Method Production Plan 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? What processes, models, and technologies can be used to ensure consistency across the core assets? What does the product developer need to know to effectively utilize the core assets to develop products?
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.
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
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+
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
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?
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