Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.

Slides:



Advertisements
Similar presentations
Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient High-integrity Multi-core Systems Artemis-AAL day 7 May, Budapest 1BME and.
Advertisements

Architecture Representation
Software Reuse SEII-Lecture 28
Alternate Software Development Methodologies
Eugene Syriani Jeff Gray University of Alabama Software Engineering Group Department of Computer Science College of Engineering.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Software Architectures and Embedded Systems Nenad Medvidovic with Sam Malek and Marija Mikic-Rakic Computer Science Department University of Southern California.
Model-Based Product Line Architecture and Analysis
Filling the Gap Between System Design & Performance Verification Rafik HENIA, Laurent RIOUX, Nicolas SORDON Thales Research & Technology.
Creating Domain-Specific Development Infrastructures George Edwards Computer Science Department University of Southern California.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure SoftArch, USC October 20th Jae young Bang, USC
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
Azad Madni Professor Director, SAE Program Viterbi School of Engineering Platform-based Engineering: Rapid, Risk-mitigated Development.
Software Reuse Building software from reusable components Objectives
Programming in the Many Software Engineering Paradigm for the 21 st Century Nenad Medvidovic Center for Software Engineering Computer Science Department.
A Model-Driven Framework for Architectural Evaluation of Mobile Software Systems George Edwards Dr. Nenad Medvidovic Center.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
XTEAM: Architecture-Based Modeling and Analysis Tools with Metamodeling Nenad Medvidovic George Edwards
Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic University of Southern California.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
XTEAM: Automated Synthesis of Domain-Specific Code Generators George Edwards Introduction to the Center for Systems and Software Engineering.
CoDesign A Highly Extensible Collaborative Software Modeling Framework SoftArch, USC March, 2010 Jae young George.
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
Domain-Specific Software Engineering Alex Adamec.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
David Garlan Ivan Ruchkin Carnegie Mellon University Pittsburgh, PA, USA December 2014.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
An Introduction to Software Architecture
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Computer Science Open Research Questions Adversary models –Define/Formalize adversary models Need to incorporate characteristics of new technologies and.
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Key Challenges for Modeling Language Creation by Demonstration Hyun Cho, Jeff Gray Department of Computer Science University of Alabama Jules White Bradley.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
August/2007 Helton Souza Lima SBCARS 1 Automatic Generation of Platform Independent Built-in Contract Testers Helton Souza Lima Franklin Ramalho Patricia.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
CoSMIC: Tool-suite for Weaving Deployment & Configuration Crosscutting Concerns of CCM-based DRE Systems Dr. Aniruddha Gokhale (PI) Institute for Software.
A Context Model based on Ontological Languages: a Proposal for Information Visualization School of Informatics Castilla-La Mancha University Ramón Hervás.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Department of Computer Science University of Southern California Los Angeles, CA, USA George Edwards Nenad Medvidovic
An Introduction to Software Engineering. Objectives  To introduce software engineering and to explain its importance  To set out the answers to key.
POSAML: A Visual Language for Middleware Provisioning Dimple Kaul, Arundhati Kogekar, Aniruddha Gokhale ISIS, Dept.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Lecture 21: Component-Based Software Engineering
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
National Aeronautics and Space Administration Jet Propulsion Laboratory March 17, 2009 Workflow Orchestration: Conducting Science Efficiently on the Grid.
CHESS Methodology and Tool Federico Ciccozzi MBEES Meeting Sälen, January 2011 January 2011.
CIS 375 Bruce R. Maxim UM-Dearborn
Building Enterprise Applications Using Visual Studio®
Embedded Systems Hardware/ Software Co-Development
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Component-Based Software Engineering
The Extensible Tool-chain for Evaluation of Architectural Models
Implementing Architectures
CS385T Software Engineering Dr.Doaa Sami
Automated Analysis and Code Generation for Domain-Specific Models
Presentation transcript:

Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California

Presentation Outline Background: Domain-Specific Languages and Model-Driven Engineering Research Challenge: Code Generation and Analysis Using Domain-Specific Models Promising Solution: Model Interpreter Frameworks XTEAM: Extensible Toolchain for Evaluation of Architectural Models

Domain-Specific Languages Software and systems modeling languages that are customized for a particular context Concisely and intuitively express the essential features of system designs – No missing or extraneous features – Capture common, reusable patterns – Enforce of architectural constraints – Use symbols and names native to the domain Easily modified, evolved, and composed

DSL Examples Specialized types, attributes, and relationships Constraints on how types may be used Customized symbols and multiple model views

DSL Specification

Common DSL Uses Architecture DSLs Architectural styles Reference architectures Product line architectures Platform DSLs Middleware configuration Deployment descriptors Code generation for application frameworks Analysis DSLs Simulation Model checking Quantification of quality properities

Why Use DSLs? Heterogeneity of platforms and technologies – Examples: multiple types of networks, data models, middleware – Result: A “one-size-fits-all” modeling language doesn’t fit Close and continual interaction with external systems, such as electrical and mechanical systems – Examples: embedded systems, space ground systems – Result: models need to capture interfaces to external systems Strict operating requirements – Examples: real-time data processing, robust fault-tolerance – Result: models need to be analyzable, executable

Model-Driven Engineering Model-driven engineering (MDE) combines domain-specific languages (DSLs) with model interpreters – Metamodels define elements, relationships, views, and constraints – Model interpreters leverage domain-specific models for analysis, generation, and transformation 8

Challenge: Constructing Interpreters 1.Designing, developing, and maintaining DSLs and interpreters is difficult and expensive – A model interpreter must be constructed for each analysis that will be applied to a model – Reusing model interpreters for different DSLs is hard – Little guidance exists on how to construct DSLs and interpreters – The semantics applied to models are opaque (embedded in code) – Requires particular types of expertise – Common topic of research papers in the modeling community 9 Model Interpreter Implementation Tasks 1.Find a computational theory that derives the relevant properties 2.Discover the semantic relationships between the constructs present in the architectural models and those present in the analysis models 3.Determine the compatibility between the assumptions and constraints of the architectural models and the analysis models, and resolve conflicts 4.Implement a model interpreter that executes a sequence of operations to transform an architectural model into an analysis model 5.Verify the correctness of the transformation

Simplifying Insight Automatically synthesize domain-specific model interpreters the same way that domain-specific model editors are synthesized

Solution: Model Interpreter Frameworks Use a model interpreter framework to implement domain-specific analysis – Implements a mapping from metamodel types to target platform types – Configured via plug-ins generated from a metamodel

The eXtensible Toolsuite for Evaluation of Architectural Models A MDE platform for software architectures Includes: – A specialized metamodeling language and metamodel editor – Two metamodel interpreters with paired model interpreter frameworks (model editor and simulation generator) – Example metamodels and framework extensions Provides the extensibility to easily accommodate both new modeling language features and new architectural analyses

XTEAM Usage Providing design rationale Weighing architectural trade-offs Discovering emergent behavior of component assemblies Generating test cases and validating component implementations

XTEAM Simulation Generator

XTEAM Benefits Reduced implementation effort – Effort saved through code generation and reuse – Quantified by: Lines of generated interpreter code Total lines of reused interpreter code Lines of generated code per domain-specific type Lines of reused code per domain-specific type Reduced maintenance effort – Due to relative ease of performing DSL modifications within a metamodel rather than within model interpreter source code – Quantified by number of metamodel objects altered vs. number of classes, methods, and SLOC altered

Implementation Effort Metrics COCOMO Estimates: Nominal settings  23.4 person-months Favorable settings  4.2 person-months

Maintenance Effort Metrics

Summary Building model interpreters to analyze and generate code from domain-specific models is hard Our methodology leverages a metamodel and extensible interpreter frameworks to automatically synthesize domain-specific model analysis tools and code generators

For More Information Visit the XTEAM website: XTEAM Publications: George Edwards and Nenad Medvidovic, A Methodology and Framework for Creating Domain-Specific Development Infrastructures, Proceedings of the 23rd IEEE ACM International Conference on Automated Software Engineering (ASE), September George Edwards, Chiyoung Seo, and Nenad Medvidovic, Model Interpreter Frameworks: A Foundation for the Analysis of Domain-Specific Software Architectures, Journal of Universal Computer Science (JUCS), Special Issue on Software Components, Architectures and Reuse, George Edwards, Chiyoung Seo, and Nenad Medvidovic, Construction of Analytic Frameworks for Component-Based Architectures, Proceedings of the Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), August George Edwards, Sam Malek, and Nenad Medvidovic, Scenario-Driven Dynamic Analysis of Distributed Architectures, Proceedings of the 10th International Conference on Fundamental Approaches to Software Engineering (FASE), March 2007.

Thanks for your attention