Model-Driven Development and Product Lines: Synergies and Experience



Similar documents
Introduction to Generative Software Development

Overview of Generative Software Development

Pricing of Software Product Lines

9 Research Questions Resolved

Difference Between Model-Driven and Traditional Iterative Software Development

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

Process-Family-Points

15 Jahre Software-Produktlinien: Einführung und aktueller Stand

A Study Conducted by SIIA, Macrovision, SoftSummit, SVPMA and Study Conducted by SIIA, Macrovision, SoftSummit and CELUG CELUG

1 Business Modeling. 1.1 Event-driven Process Chain (EPC) Seite 2

Because of inherent tradeoffs between marketing mix elements, pricing will depend on other product, distribution, and promotion decisions.

Chapter 13 Configuration Management

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

Integration of Time Management in the Digital Factory

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Pricing Strategies of Software Vendors

Dynamic Security. Concepts & Facilities

Visible Business Templates An Introduction

Certifying Energy Efficiency of Android Applications

Software Product Lines

Chapter 13 Configuration Management

Managing Large Imagery Databases via the Web

Fundamentals of Web Programming a

E-Mall as solution for marketing the Federated ERP Components on basis of Web Services

Building a Flexible Software Factory Using Partial Domain Specific Models

AN APPROACH FOR SECURE CLOUD COMPUTING FOR FEM SIMULATION

Security Design Patterns

System Software Product Line

Concept of a Domain Repository for Industrial Automation

Dynamic Scheduling of Object Invocations in Distributed Object Oriented Real-Time Systems Jørgensen, Bo Nørregaard; Joosen, Wouter

How To Do Continuous Integration

Ten Questions to Ask PLM Solution Suppliers What You Need to Know to Make an Informed Decision. August A CIMdata White Paper

Java-based Functionality and Data Management in the Automobile. Prototyping at BMW Car IT GmbH. by Alexandre Saad, BMW Car IT GmbH, Munich/Germany

Opportunities and Challenges in Software Engineering for the Next Generation Automotive

Integrating the Palladio-Bench into the Software Development Process of a SOA Project

Arcane/ArcGeoSim, a software framework for geosciences simulation

Business Models for ASP Marketplaces

Repurpose, Compose, Profit Next Generation SOA Infrastructure

Roles in Software Development using Domain Specific Modelling Languages

LOAD BALANCING TECHNIQUES FOR RELEASE 11i AND RELEASE 12 E-BUSINESS ENVIRONMENTS

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Basic Trends of Modern Software Development

PUSH CONCEPTS AN APPROACH TO ACTIVE CUSTOMER ORIENTED STRATEGIES IN E-COMMERCE

What is a life cycle model?

Cross-Company System Simulation using the GUSMA-Standard for Co-Simulation

Pentaho Data Mining Last Modified on January 22, 2007

A Model for Access Control Management in Distributed Networks

Modernizing enterprise application development with integrated change, build and release management.

Database Scheme Configuration for a Product Line of MPC-TOOLS

INTERNATIONAL CONFERENCE ON ENGINEERING DESIGN ICED 01 GLASGOW, AUGUST 21-23, 2001

Management and Web service Management

What is BPM? Software tools enabling BPM

Introduction to Software Paradigms & Procedural Programming Paradigm

What Is the Java TM 2 Platform, Enterprise Edition?

Software Production. Industrialized integration and validation of TargetLink models for series production

MULTIDIMENSIONAL META-MODELLING FOR AIR TRAFFIC MANAGEMENT SERVICE PROCESSES

Generating Aspect Code from UML Models

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

Designing and Implementing a Server Infrastructure

Information and Communications Technology Courses at a Glance

T-Mobile Umsetzung und Einsatz

Development of AUTOSAR Software Components within Model-Based Design

Designing and Implementing a Server Infrastructure

Capturing provenance information with a workflow monitoring extension for the Kieker framework

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Lecture Softwareengineering-Vertiefung

Big Data-Anwendungsbeispiele aus Industrie und Forschung

Bringing Value to the Organization with Performance Testing

CRAFT ERP modules. Introduction

Grid IQ. Solutions as a Service. GE Energy Digital Energy. Why Solutions as a Service? Subscription based integrated Smart Grid solutions

To introduce software process models To describe three generic process models and when they may be used

Structuring Product-lines: A Layered Architectural Style

A Peer-To-Peer (P2P) based Product Collaboration Platform (PCP) supporting decentral collaborative product development

Cloud Computing Services on Provisioning Cost Approach

ORACLE INFRASTRUCTURE AS A SERVICE PRIVATE CLOUD WITH CAPACITY ON DEMAND

Automated Performance Testing and Analysis. Armin Pruessner GAMS Development Corporation

Designing and Implementing a Server Infrastructure

Foundations of Model-Driven Software Engineering

BEST PRACTICES: Understanding and Comparing Software Price Quotes

Introduction. 1.1 Motivation. Chapter 1

SalesPad for Dynamics GP Security Settings

Towards Modeling and Transformation of Security Requirements for Service-oriented Architectures

COURSE OUTLINE MOC 20413: DESIGNING AND IMPLEMENTING A SERVER INFRASTRUCTURE

Abstract

M.S. Computer Science Program

Configuration & Build Management

IBM BPM Solutions Addressing the Enterprise Business Process Management

Towards Collaborative Requirements Engineering Tool for ERP product customization

Dynamic Hybrid (Cloud) Applications. Introducing the INAETICS project. Bram de Kruijff Luminis Technologies

Masters in Human Computer Interaction

LabStats 5 System Requirements

METHODOLOGIES, TECHNIQUES AND TOOLS FOR SOFTWARE DEVELOPMENT

Exploring Oracle E-Business Suite Load Balancing Options. Venkat Perumal IT Convergence

Models of Life Cycle Management in a Server

Data Mining Solutions for the Business Environment

IBM Rational systems and software solutions for the medical device industry

JOURNAL OF OBJECT TECHNOLOGY

Textual Modeling Languages

Software Configuration Management. Addendum zu Kapitel 13

The Internet of Services and USDL

Transcription:

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