Model-Driven Development and Product Lines: Synergies and Experience Generative Software Development and Software Economy Ulrich W. Eisenecker 20. Oktober 2006
Overview Quick introduction to generative software development Software economy References 2
You remember? The conference topics in a four quadrants scheme The first part of this presentation provides more detail about generative software development Single System System Family Manual Crafting Automated Assembly Classical Software Development Model-Driven Software Development Software Product Lines Generative Software Development 3
One-Sentence Definition Generative Software Development (GSD) is a software engineering paradigm based on modeling software system families such that, given a particular requirements specification, a highly customized and optimized system or component can be automatically created on demand from elementary, reusable implementation components by means of configuration knowledge. 4
Generative Domain Model (GDM) Mapping of specifications to corresponding configurations Problem Space Domain specific concepts Features Configuration Knowledge Illegal feature combinations Default settings Default dependencies Construction rules Optimizations Solution Space Elementary components Maximum combinability Minimum redundancy Domain Specific Language(s) (DSLs) Generator(s), Product Configurators, Reflection,... Components & System Familiy Architecture 5
Basic Patterns of Federated GDMs Chaining of mappings Multiple problem spaces Multiple solution spaces Alternative problem spaces Alternative solution spaces 6
Domain Network Mapped to Federated GDMs Linear equation solvers Factorization algorithms Matrix expressions Each subdomain is implemented as a generative domain model Higher order components Matrix types Containers Jim Neighbors, Draco, 1980
Generic Generative Generic "relating to or characteristic of a whole group or class" (Merriam- Webster Online) Solution space technique for developing parameterizable components Generative "having the power or function of generating, originating, producing, or reproducing" (Merriam-Webster Online) System for producing other systems; comprises problem space, configuration knowledge, and solution space 8
Technology Projection A technology projection is a mapping of a GDM onto other software development paradigms, a programming language, several development tools that are combined within one environment or on one platform Meanwhile, several technology projections are available 9
Existing Technology Projections (Selection) Problem Space Domain specific concepts Features Configuration Knowledge Illegal feature combinations Default settings Default dependencies Construction rules Optimizations Solution Space Elementary components Maximum combinability Minimum redundancy C++ Template meta-programming Static configuration Language-specific means only Java and AspectJ Using an aspect weaver Static configuration Separate preprocessing step ANGIE & XFramer Using a frame processor Static configuration Separate preprocessing step XML, TL and Ada 83 Graphically-interactive specification Static configuration Separate preprocessing step Java and JavaBeans Interactive parameterization of JavaBeans Dynamic configuration Language-specific means only Small components Using an XML specification file Static and dynamic configuration Separate preprocessing step 10
Two Main Processes of GSD "Factory" "Product" Domain Engineering Application Engineering Iterative Process Domain Knowledge Domain Analysis Domain Model Architecture & Production Plan Domain Design Domain Implementation New Requirements Components, DSL, Generators, Infrastructure Customer Requirements Requirements Analysis Product Features Product Configuration Product Configuration Integration & Test Initial Prototype Development GDM Product 11
Overview Quick introduction to generative software development Software economy References 12
Cost The initial cost of developing software using a single system approach is high Afterwards identical copies of the system can be produced with small cost per unit (economies of scale) Developing a factory for producing software system variants is even more expensive But as soon as the factory is ready to use, system variants can be produced at minimal cost (economies of scope) However in most cases the cost difference between single system and identical copy will be larger than between factory system and variant Thus two important questions are How to license system variants? How to set their prices? 13
Software Economy Software is information and as such it is costly to produce but cheap to reproduce (Shapiro/Varian 1999, p. 22) Thus economies of scale is less significant in software business Based on this fact software economy investigates answers to the following questions with respect to single systems as well as system variants How to license software? How to set prices for software licenses? How to distribute software licenses? How to pay software licenses? What are suitable competitive strategies for selling software licenses? 14
Competitive Strategies There are two fundamental competitive strategies, that also apply to software business (Shapiro/Varian 1999, p. 25) Product differentation in order to be distinguishable from competitors, one has to add value to the product Cost leadership achieve cost leadership through economies of scale and scope A product line approach is one possibility to differentiate products, provided it allows to produce highly customer specific variants Additionaly generative software development enables economies of scope which is a precondition for cost leadership Remember: economies of scale is less relevant in software business 15
Putting it All Together Functional features and platform technology are common sources of variability A sophisticated product line approach may include further sources of variability geared towards specific needs of customers, such as License Price Form of payment Besides mutual dependencies among them, license, price, and payment may also interact with functional features as well as platform technology This leads to a considerable increase of overall variability covered by a product line 16
License Features Licenses can be based on various criteria and their combination Ownership vs. right to install and use a copy Subscription Customer pays a recurring fee to continue using the software Perpetual Customer pays once for running the program as long as he chooses Pay-per-use Customer pays a fee for actual use, e.g. number of uses, time of use, number of transactions,... Financial metrics, e.g. revenue, saved costs, profit,... User-based metrics, e.g. named user, number of concurrent users,... Hardware-based criteria, e.g. number of CPUs or CPU cores, number of clients connected to a server,...... 17
Pricing Methods There are various pricing methods, such as Cost-oriented pricing Price that covers fixed and variable costs, taking into account expected number of sales and return Competition-oriented pricing Price that is oriented on competitors majority Demand-oriented pricing Price that is oriented on requested quantity per time Value-based pricing Price that is based on the value that a product creates for the customer... It is imaginable to combine different pricing methods for the different components a product is made from 18
Price Differentiation The result of price building is not necessarily a fixed price Price differentiation may lead to varying prices according to a number of criteria, such as Individual characteristics, e.g. age, employment status, membership Group characteristics, e.g. group rates Territory, e.g. place of use (home zone vs. remote access) Quantity, e.g. discount for bulk purchase Time, e.g. business hours vs. leisure hours, time unit of billing Search costs, e.g. effort for locating or specifying a desired product... Some of these criteria may be cumulated, some are mutually exclusive 19
Form of Payment The form of payment constitutes a further source of variability, among them Cash Prepayment Bank collection Purchase on credit Cash on delivery E-cash, micropayment... Usually the form of payment applies to the entire product, but it is also conceivable to provide different forms of payment for different components (or features respectively) of a product 20
Concrete Components The majority of functional features and platform technology is implemented by concrete software components Features of licensing, pricing, price differentation, and form of payment primarily affect planning, legal contracts and commercial documents A forceful product line approach should also include the automated creation of product-specific documentation This requires sophisticated techniques for producing non-code artefacts The quality of these artefacts should be at least at the same level of quality as the code Nevertheless, some of these features as well as their eletronic enforcement might also require concrete implementation components, e.g. for collecting and transferring use data 21
Mutual Dependencies We expect a variety of mutual dependencies between features of software economy, e.g. Use based license is not compatible with prepayment Subscription license can not be combined with purchase on credit These dependencies have to be analyzed carefully and documented as configuration knowledge in machine processable form 22
Workflow From 10.000 Feet Above License agreement User manual Product Functional features Specification Platform technology Software economic features Factory Functional component I License component I Platform component I 23
Benefits of Integrating Software Economy Into Product Lines Customer can choose license, pricing, and way of payment that are most suitable to his needs Not only the same for the entire system, but also different mix for subsystems or functional features and platform technology Developer/supplier can greatly expand product differentiation beyond functional features and platform technology It will change over the lifecycle of the product line which features of software economy are visible to the customer and selectable by him The policies which features of software economy can or can not be combined may change accordingly Value-based pricing, which creates most revenue and profit, is strongly supported 24
Ongoing Research Software economy and system families PhD work by Denis Sewerjuk Diploma thesis by Marco Schröter Producing non-code artefacts PhD work by André Haucke 25
Overview Quick introduction to generative software development Software economy References 26
References & More to Read 1/2 Hermann Diller: "Handbuch der Preispolitik", Gabler-Verlag, 2003 Stephen Graham, Amy Mizoras Konary, and Laurie A. Seymour: "The Future of Software Licensing: Software Licensing Under Siege", IDC Study, 2004 Homepage of Strategic Pricing Group, www.strategicpricinggroup.com Carl Shapiro and Hal R. Varian: "Information Rules A strategic guide to the network economy", Harvard Business School Press, Boston, 1999 27
References & More to Read 2/2 SIIA, Macrovision, SoftSummit, and CELUG: "Key Trends in Software Pricing And Licensing. A Survey of Software Industry Executives And Their Enterprise Customers", 2006, available from www.softsummit.com Bernd Skiera und Anja Lambrecht: "Erlösmodelle im Internet", in: Sönke Albers und Andreas Herrmann, A. (Hg.), "Handbuch Produktmanagement", Gabler Verlag, 2006, S. 813-831 Patrick Stähler: "Geschäftsmodelle in der digitalen Ökonomie", Dissertation, St. Gallen, Lohmar, 2001 Axel Zerdick u.a.:"die Internet-Ökonomie. Strategien für die digitale Wirtschaft", Springer, Berlin, 1999 28