Automated Analysis and Code Generation for Domain-Specific Models

Slides:



Advertisements
Similar presentations
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Advertisements

Guaranteed Component Assembly with Round Trip Analysis for Energy Efficient High-integrity Multi-core Systems Artemis-AAL day 7 May, Budapest 1BME and.
Architecture Representation
Alternate Software Development Methodologies
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.
Creating Domain-Specific Development Infrastructures George Edwards Computer Science Department University of Southern California.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Azad Madni Professor Director, SAE Program Viterbi School of Engineering Platform-based Engineering: Rapid, Risk-mitigated Development.
A Model-Driven Framework for Architectural Evaluation of Mobile Software Systems George Edwards Dr. Nenad Medvidovic Center.
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.
Domain-Specific Software Engineering Alex Adamec.
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.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
1 Introduction to Software Engineering Lecture 1.
10/03/05 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Department of Computer Science University of Southern California Los Angeles, CA, USA George Edwards Nenad Medvidovic
Lecture 21: Component-Based Software Engineering
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Introduction to Machine Learning, its potential usage in network area,
CIS 375 Bruce R. Maxim UM-Dearborn
Building Enterprise Applications Using Visual Studio®
Chapter 16 – Software Reuse
Chapter3:Software Processes
Complexity Time: 2 Hours.
Distribution and components
HCI in the software process
Embedded Systems Hardware/ Software Co-Development
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Tools of Software Development
Component-Based Software Engineering
Chapter 2 – Software Processes
Patterns.
Tools for Composing and Deploying Grid Middleware Web Services
The Extensible Tool-chain for Evaluation of Architectural Models
Software Architecture
Chapter 20 Object-Oriented Analysis and Design
Implementing Architectures
Thoughts on Model Interoperability
Service Oriented Architecture (SOA)
Architecture Description Languages
HCI in the software process
An Introduction to Software Architecture
Templatized Model Transformation: Enabling Reuse in Model Transformations Amogh Kavimandan and Aniruddha Gokhale Dept. of EECS, Vanderbilt University,
CS385T Software Engineering Dr.Doaa Sami
4+1 View Model of Software Architecture
Measurement What is it and why do it? 2/23/2019
HCI in the software process
4+1 View Model of Software Architecture
Chapter 16 – Software Reuse
Human Computer Interaction Lecture 14 HCI in Software Process
An Introduction to Embedded Software Architecture and Design
Software Architecture & Design
Presentation transcript:

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

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 properties

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

Challenge: Constructing Interpreters 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 Model Interpreter Implementation Tasks Find a computational theory that derives the relevant properties Discover the semantic relationships between the constructs present in the architectural models and those present in the analysis models Determine the compatibility between the assumptions and constraints of the architectural models and the analysis models, and resolve conflicts Implement a model interpreter that executes a sequence of operations to transform an architectural model into an analysis model 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

Visit the XTEAM website: For More Information Visit the XTEAM website: http://www-scf.usc.edu/~gedwards/xteam.html 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 2008. 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, 2008. 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 2007. 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