today 1,700 special programming languages used to communicate in over 700 application areas.



Similar documents
today 1,700 special programming languages used to communicate in over 700 application areas.

Overview of Generative Software Development

Introduction to Generative Software Development

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

Foundations of Model-Driven Software Engineering

Development of a Feature Modeling Tool using Microsoft DSL Tools.

Toward Families of QVT DSL and Tool

An eclipse-based Feature Models toolchain

Software Product Lines

Increasing Development Knowledge with EPFC

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

Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling

Building a Flexible Software Factory Using Partial Domain Specific Models

Language-Driven, Technology-Enhanced Instructional Systems Design

Tool Support for Model Checking of Web application designs *

Using Ontologies in the Domain Analysis of Domain-Specific Languages

Run-time Variability Issues in Software Product Lines

Embedded Software Development with MPS

Overview of Generative Software Development

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

MDE Adoption in Industry: Challenges and Success Criteria

An Approach for the Systematic Development of Domain-Specific Languages

VICCI. The Eclipse Modeling Framework (EMF) A Practical Introduction and Technology Overview. Dipl.-Inf. Christoph Seidl

Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

HP Systinet. Software Version: Windows and Linux Operating Systems. Concepts Guide

Roles in Software Development using Domain Specific Modelling Languages

An approach for the systematic development of domain-specific languages

Course 4 27 October Adrian Iftene adiftene@info.uaic.ro

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

A Software Development Platform for SOA

Developing ASP.NET MVC 4 Web Applications

Introduction to the Analysis and Management Framework

SOFTWARE TESTING TRAINING COURSES CONTENTS

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

On General-purpose Textual Modeling Languages. On General-purpose Textual Modeling Languages

Domain Analysis of E-Commerce Systems Using Feature-Based Model Templates

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Chap 1. Introduction to Software Architecture

Windchill PDMLink Curriculum Guide

Revel8or: Model Driven Capacity Planning Tool Suite

COCOVILA Compiler-Compiler for Visual Languages

Software Industrialization and The New IT

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

Development of Tool Extensions with MOFLON

Developing ASP.NET MVC 4 Web Applications MOC 20486

Business Process Modeling and Standardization

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Analysis of the Specifics for a Business Rules Engine Based Projects

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

Preparing for Automated Derivation of Products in a Software Product Line

Textual Modeling Languages

Approach to E-Learning Fundamental Aspects of Software Engineering

Business Process Modeling Information Systems in Industry ( )

BUSINESS RULES AND GAP ANALYSIS

Jos Warmer, Independent

METHOD & TOOLS TO SECURE AND SUPPORT COLLABORATIVE ARCHITECTING OF CONSTRAINED SYSTEMS

The value of modeling

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Surveying and evaluating tools for managing processes for software intensive systems

A Web Specific Language for Content Management Systems

Basic Unified Process: A Process for Small and Agile Projects

Requirements Definition and Management Processes

Towards a Generic Infrastructure for Framework-Specific Integrated Development Environment Extensions

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Fast and Easy Delivery of Data Mining Insights to Reporting Systems

WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation

Software Development Kit

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

Integration of Application Business Logic and Business Rules with DSL and AOP

Development Process Automation Experiences in Japan

Project VIDE Challenges of Executable Modelling of Business Applications

<Insert Picture Here> Oracle SQL Developer 3.0: Overview and New Features

EMC Documentum Composer

A Framework of Model-Driven Web Application Testing

UML Modelling of Automated Business Processes with a Mapping to BPEL4WS

Model-Driven Development - From Frontend to Code

UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling

Syntax Check of Embedded SQL in C++ with Proto

Information systems modelling UML and service description languages

The leading platform for Model Driven Architecture (MDA) Content:

Enterprise Application Development Using UML, Java Technology and XML

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Aplicando enfoque MDE a aplicaciones WEB-SOA

This course will also teach how to create various kinds of dashboards using Reporting Services.

Component visualization methods for large legacy software in C/C++

A Multi-layered Domain-specific Language for Stencil Computations

ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS

Database Application Developer Tools Using Static Analysis and Dynamic Profiling

Project Management Support

Developing SOA solutions using IBM SOA Foundation

Source Code Translation

Components Of Successful Software Development. Mobi-Sys Internet Solutions Inc. Software Development Solutions and Consulting

Luncheon Webinar Series July 29, 2010

EasyWeb: A Software Engineering Environment for Developing Web Applications in.net

Software Engineering Tools and Methods

Programmers rejoice: QML makes business people understand. Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1

Transcription:

today 1,700 special programming languages used to communicate in over 700 application areas. Computer Software Issues, an American Mathematical Association Prospectus, July 1965, quoted in P. J. Landin s famous article The Next 700 Programming Languages, 1966 1

Feature Modeling in Generative Software Development Krzysztof Czarnecki University of Waterloo

Overview Generative Software Development Example Staged Configuration Tool support Summary 3

Generative Software Development Is a product-line engineering approach Product-line development Product development Automates product development Based on a product specification in a set of domain-specific languages 4

Advantages of DSLs Over General- Purpose Languages (GPLs) Domain-specific abstractions Pre-defined abstractions to directly represent concepts from the application domain Domain-specific concrete syntax Natural notation for a domain avoiding syntactic clutter that often results when using GPLs Domain-specific error checking Analysers that find more errors than similar analysers for GPLs and report errors in a language familiar to the domain expert Domain-specific optimizations Code optimization based on domain-specific knowledge which is usually not available to a GPL compiler Domain-specific debugging, version control, etc. Opportunities for improving all aspects of a development environment 5

Different Forms of DSLs Wizard Configuration tool Library in a programming language page MainPage () { filename = index.html placeholders { header = fragmentcall { include = Header() } leftnavigation = fragmentcall { include = LeftNavigation(nil) } rightnavigation = fragmentcall { include = RightNavigation() } body = fragment { filename = main/main.html filterelement = body } footer = fragmentcall { include = Footer () } } } Textual DSL 6 Visual DSL

Modeling and DSLs Models are abstract representations of systems Answer questions of interest to stakeholders Capture stakeholder intentions more directly Without accidental implementation details Model driven development makes them source artifacts Fully integrated with the code and other source artifacts Not documentation that becomes obsolete as software is cut Used across the software life cycle Requirements, design, development, deployment, testing, debugging, maintenance, enhancement DSLs are perfect for model driven development Capture more information with higher fidelity than general purpose modeling languages designed for documentation 7

Feature-Oriented Approach Domain analysis Problem-space view Feature Model Solution-space view Architectural patterns Variability mechanisms DSL Mapping Family architecture DSL Technology Generator Technology 8 Component technology

Overview Generative Software Development Example Staged Configuration Tool support Summary 9

Feature Diagram mandatory feature OrderProcessing Transaction Approval Basket Fulfillment Payment Tax Invoice ShipmentCost Shipping ElectronicDelivery PayByBill Online Printed PackageTrackingNo PackageSlip PayOnDelivery CreditCard FrequentFlyer alternative features optional feature «implies» «excludes» No decision regarding the mechanism for implementing variability! 10

Cardinality-Based Feature Modeling EShop PasswordPolicy Shipping Inclusive-or group Expiration Chars ShippingGateway CustomMethods InDays(Integer) Never lower <2..4> special Group cardinality [0..*] Method(String) Feature cardinality Feature attribute upper digit FlatRate(Float) 11

Mapping Feature Variations To Software System Variability Ordering process Catalog browsing Targeting & Profiling... Security polices Transaction polices Caching polices Presentation policies... Information Model Web Content & Navigation Webpage Layout 12

Mapping Feature Variations To Software System Variability Ordering process Catalog browsing Targeting & Profiling... Security polices Transaction polices Caching polices Presentation policies... Information Model Web Content & Navigation Webpage Layout 13

Mapping Feature Variations To Software System Variability Ordering process Catalog browsing Targeting & Profiling... Security polices Transaction polices Caching polices Presentation policies... Information Model Web Content & Navigation Webpage Layout See webml.org 14

Mapping Feature Variations To Software System Variability Ordering process Catalog browsing Targeting & Profiling... Security polices Transaction polices Caching polices Presentation policies... Consistency management & reconciliation Information Model Web Content & Navigation Webpage Layout Refinements - Model-to-model transformations Database Model EJB Component Model Web Component Model <<EntityBean>> Customer <<PrimaryKey>> oid : java.lang.long +lastname : java.lang.string +firstname : java.lang.string 1..n +owner 0..n +account 15 <<EntityBean>> Account +number : java.lang.string +balance : java.math.bigdecimal +book(amount : java.math.bigdecimal)

Mapping Feature Variations To Software System Variability Ordering process Catalog browsing Targeting & Profiling... Security polices Transaction polices Caching polices Presentation policies... Consistency management & reconciliation Information Model Web Content & Navigation Webpage Layout Refinements - Model-to-model transformations Parameterization of transformations Database Model EJB Component Model Web Component Model Refinements - Model-to-code transformations EJB Class Model SQL Source Code EJB Source Code 16 JSP/HTML source code

Overview Generative Software Development Example Staged configuration Tool support Summary 17

Staged Configuration Using Specialization Specialization transforms a new feature diagram into a new one denoting a subset of configurations of the original diagram <1..1> f f Specialize Specialize Derive configuration <1..1> [0..2] [0..2] f (f, {(f 2, ), (f 4, )}) f 1 f 2 f 3 f 4 f 2 f 3 f 4 f 2 f 4 <1..1> f [0..2] (f, {(f 2, ), (f 4, )}) f 1 f 2 f 3 f 4 18

Staged Configuration Example: Policy Specialization Decisions taken in stages Time, e.g., Phases in product lifecycle Roles, e.g., Component integrator, deployer, administrator, maintainer Context/target, e.g., Multiple deployment contexts 19

Software Supply Chains 20

Staged Configuration Using Multi- Level Configuration Each stage has a separate feature model Each role performs configuration (not specialization) within a stage Manual configuration of one stage automatically specializes the feature model of the next stage 21

Multilevel Configuration Different roles will have different perspectives on the variability Product-line perspective System configuration perspective Just annotating features with binding times is not enough! 22

Multilevel Configuration 23

Overview Generative Software Development Example Staged configuration Tool support Summary 24

FeaturePlugin Eclipse Plugin for Feature Modeling Cardinality-based feature modeling Configuration support Configuration Specialization Global constraints User-extensible notation Defining additional information for a project Meta-level also defined as feature models Alternative renderings Explorer view & feature maps Feature trees & tables 25

FeaturePlugin Eclipse Plugin for Feature Modeling and Configuration 26 gp.uwaterloo.ca/fmp

FeaturePlugin 27

Mapping Features to Workflow 28

Designing DSLs Complex design space Textual, diagrammatic, form-based, grid-based, etc. Hierarchical, graph-like, spatial, etc. Declarative vs. procedural Dynamic vs. static Usability Mental walkthroughs Cognitive patterns Experience from visualization (architecture visualization, program understanding) 29

Target Audiences for DSLs Different audiences Software engineers Traditional engineers (control, mechanical, ) Business people (accounting, marketing, management, ) Analysts (consultants with DS expertise) Scientists (biology, chemistry, physics, ; computational science) Casual computer users (my mom ) Criteria Level of software development skills Depth of application-domain expertise Vastly varying requirements 30

Target Audiences for DSLs High Degree of Software Development Skills None Typical programmers & software architects End-user programming Skilled analysts Traditional engineers Business people, financial experts, scientists, etc. Low Degree of Application Domain Expertise High 31

Tools for Implementing DSLs To be defined Abstract syntax (e.g., using a class diagram) Rendering and editing Semantics (e.g., by translation) Other issues Serialization, language evolution, consistency management and change propagation, etc. Tools for DSLs become mainstream Direct metamodeling Microsoft, Xactium,, (EMF) UML profiling IBM Rational Modeller, Softeam, 32

Structure Spectrum of DSLs Routine configuration Creative construction Wizards Feature-based configuration Graph-like language (with user-defined elements) scr1 Eshop scr2 scr3 Catalog Payment Shipp InventoryTracking scr4 scr5 scr6 scr7 scr8 Check Debit Card Credit Card PO Cust Serv scr11 scr12 scr9 scr10 Path through a decision tree 33 Fedex UPS Subtree of a feature tree Subgraph of an (infinite) graph

Overview Generative Software Development Example Staged Configuration Tool support Summary 34

Key Concepts in Generative Software Development Product lines Cornerstone of systematic software reuse Domain-specific languages Optimal support for application developers Mappings Design knowledge capture Feature modeling Family scoping, DSL & architecture development 35

Further Information Czarnecki & Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000 http://www.swen.uwaterloo.ca/~kczarnec/ Greenfield & Short. Software Factories: Assembling Applications With Patterns, Models, Frameworks and Tools. Wiley, 2004 http://www.softwarefactories.com/ 4th Int. Conference on Generative Programming and Component Engineering (GPCE), Sep 29 - Oct 1, 2005, Tallinn, Estonia (co-located with ICFP) http://gpce.org/ 36