1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.

Slides:



Advertisements
Similar presentations
purpose Search : automation methods for device driver development in IP-based embedded systems in order to achieve high reliability, productivity, reusability.
Advertisements

Visual Scripting of XML
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
ArchE Presented By Samanvitha Ramayanam. TOPICS 1. Introduction 2. Theoretical assumptions 3. ArchE as an expert system 4. Overall flow of ArchE 5. Key.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Client Side Programming Using Java Applet Outcomes: You will be expected to know: – Java Applets and HTML file; –bytecode and platform independent programs;
Object-Oriented Analysis and Design
1 Knowledge, Action and Systems Some emerging foundational issues in Computing … Can Information Studies Help? Eric Yu Faculty of Information Studies University.
Introduction To System Analysis and Design
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS Sumant Tambe Graduate Intern, Applied Research, Telcordia Technologies Inc.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction To System Analysis and design
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
OOPSLA workshop on Domain-Specific Modeling (DSM’03) 1 Jeff Gray, Juha-Pekka Tolvanen, Matti Rossi OOPSLA Workshop.
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
© 2006 MetaCase 1 Agile Development with Domain-Specific Languages 19 th June 2006 Aali Alikoski, Microsoft Steven Kelly, MetaCase.
National Institute of Standards and Technology Technology Administration U.S. Department of Commerce 1 Patient Care Devices Domain Test Effort Integrating.
Introduction to MDA (Model Driven Architecture) CYT.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Key Challenges for Modeling Language Creation by Demonstration Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CMPD 434 MULTIMEDIA AUTHORING Chapter 06 Multimedia Authoring Process IV.
Workshop 16: An upward shift in abstraction leads to a corresponding increase in productivity. In the past this has occurred when programming languages.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Introduction To System Analysis and Design
Juha-Pekka Tolvanen MetaCase Consulting Domain-Specific Modeling Languages and Generators - Examples.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Selected Topics in Software Engineering - Distributed Software Development.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
FlexElink Winter presentation 26 February 2002 Flexible linking (and formatting) management software Hector Sanchez Universitat Jaume I Ing. Informatica.
© 2004 MetaCase 1 Collected Experiences of Defining Domain-Specific Modeling Languages 10/24/2004 Steven Kelly MetaCase.
October 2007 Montréal, Canada The 7th OOPSLA Workshop on Domain-Specific Modeling.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
OOPSLA workshop on Domain-Specific Visual Languages 1 Framework for Domain-Specific Visual Languages Juha-Pekka.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
OOPSLA workshop on Domain-Specific Modeling (DSM’03) 1 Vasco Amaral, Univ. of Mannheim Steve Cook, Microsoft Daniel Dvorak, JPL/Cal Tech Lars Grunske,
1 17 October 2005 San Diego, CA The 5th OOPSLA Workshop on Domain-Specific Modeling.
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 24 October 2004 Vancouver, Canada The 4th OOPSLA Workshop on Domain-Specific Modeling.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
1 Unified Modeling Language, Version 2.0 Chapter 2.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
Spring 2009 Programming Fundamentals I Java Programming XuanTung Hoang Lecture No. 8.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
1 Review for Midterm 2 Aaron Bloomfield CS 101-E.
T imed Languages for Embedded Software Ethan Jackson Advisor: Dr. Janos Szitpanovits Institute for Software Integrated Systems Vanderbilt University.
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
Algorithms and Problem Solving
Systems Analysis and Design With UML 2
CompSci 230 Software Construction
Algorithms and Problem Solving
Presentation transcript:

1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED

2 Contents Background Domain-Specific Methods (DSM) DSM architecture Example Lessons learned

3 Domain Idea Finished Product Solve problem in domain terms Assembler Map to code, implement UML Model Map to UML Generate, Add bodies Components Domain Model Generate calls to components No map! Code Map to code, implement Modelling domain vs. modelling code

4 What is domain-specific modelling Captures domain knowledge (as opposed to code) –Uses domain abstractions –Applies domain concepts and rules as modelling constructs –Narrow down the design space –Focus on single range of products Lets developers design products using domain terms  Apply familiar terminology  Solve the RIGHT problems!  Solve problems only ONCE!

5 About product families studied Different type of product families, ranging from embedded to financial products Size of the families vary from a few to more than 200 members Size of development teams ranges from 4 to more than 300 developers per family Largest product families have over 10 million model elements and largest DSM languages have about 500 language constructs Some families stable, some others under frequent change Variability in different places, e.g. user interface, hardware settings, platform services, business rules, communication mechanisms The experiences gathered from domain engineers, architects, tool- smiths, and from consultants creating DSMs

6 Our focus in the paper How to build languages and generators for fast variant development based on the results of domain analysis? DSM environment consists of –Domain-specific modeling language operates on domain concepts, not on code limited variation space –Domain-specific code generator generates products described by the models variation for output formats –Domain framework supports code generation primitive services and components on top of the platform DOMAIN- SPECIFIC MODELLING LANGUAGE DOMAIN- SPECIFIC CODE GENERATOR DOMAIN FRAMEWORK

7 Building languages Choose among computational models for describing variation –data models, state machine, process models, interaction, flow, etc –often several needed (static/dynamic, high/low level variation) Use family concepts directly as modeling constructs –already known and used –established semantics exist –natural to operate with –easy to understand and remember –requirements already expressed using them Keep language independent from implementation code Extend computational models with family rules and formalize with metamodels

8 Case: Wristwatches product family Product family –Different watch models: Sport, Kid, Traveler, Diver, Luxery etc. Common architecture of time-based applications –Time, Timer, LapTime, WorldTime, StopWatch, Alarm, etc. Family-specific language and generators New models specified with high-level watch concepts –Alarms, buttons, displays, icons, states, etc. Code generators to produce 100% implementation in Java from graphical models

9 Variability space Variation space with variation parameters

10 Watch architecture and variation V8 V4 V10 Variation point V7 V12 V9 V11 V2 V3 V5 V6 V1 All variation allocated –behaviour –static

11 Sample models (wristwatch) 2 time applications

12 Making generators Generator translates the computational model into a required output 1.crawls through the models 2.extract required information 3.translates it as the code 4.using some output format Generator should operate directly with domain concepts Keep generator simple Move to generator –Language syntax –Output format

13 Modular implementation to manage complexity Example of the generator Report '_Roll’ 'get'; do ~Set.() {id;}; '().'; 'roll(METime.'; :Time unit; ', '; if :Up?; = 'T’ then 'true'; else 'false'; endif; ', displayTime());'; endreport

14 Example: generation of watch applications (continues) Example of the generator public Object perform(int methodId) { switch (methodId) { case a22_2926: getclockOffset().roll(METime.HOUR_OF_DAY, true, displayTime()); return null; case a22_1405: getclockOffset().roll(METime.MINUTE, true, displayTime()); return null; case d22_977: return getclockTime(); } return null; } Generator output

15 Domain Framework Raise the level of abstraction on the platform side Achieved by atomic implementations of commonalities and variabilities Include interface for the code to be generated –often the only needed part for static variation (e.g. for XML schema) Often have three layers: –the interface with models by defining the expected code generation output –the core implementing the counterparts for the logical structures presented by the models as templates and components for higher- level variability. –the components and services interfacing with the target platform

16 Watch framework Watch framework provides –Expected code generation output interface –Basic building blocks in the form of abstract superclass ’templates’ –Java classes to interface with the target platform Platform includes: –Hardware and OS Windows Linux –Java with AWT –Emulator Browser MIDP

17 Example: all together public void roll(int field, boolean up, METime displayTime) {... } Framework primitive getclockOffset().roll(METime.MINUTE, true, displayTime());... Generated code + DOMAIN FRAMEWORK PRODUCT IDEA PRODUCT MODEL PRODUCT CODE + DSM CASE TOOL

18 Summary All variation don’t need to be expressed and managed in one place  DSM architecture gives possibilities –model, generator, framework Domain-specific methods –make a product family explicit –leverage the knowledge of the family to help developers –substantially increase the speed of variant creation –ensure that the family approach is followed de facto The amount of expert resources needed to build and maintain a DSM does not grow with the size of product family and/or number of developers. Biggest difficulties are in organizational (e.g. introduction, diffusion) than technical side