From Metamodels to Models: Organizing and Reusing Domain Knowledge in System Dynamics Model Development Márcio de Oliveira Barros Cláudia Maria Lima Werner.

Slides:



Advertisements
Similar presentations
Architecture Representation
Advertisements

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
© 2005 Prentice Hall6-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Design Patterns for Object Oriented systems CSC 515 Ashwin Dandwate.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Márcio Barros Cláudia Werner Guilherme Travassos Explaining the Behavior of System Dynamics Models POSTER OBJECTIVE To present.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Object-oriented Programming Concepts
Geography 465 Overview Geoprocessing in ArcGIS. MODELING Geoprocessing as modeling.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
João Batista Camargo Jr Safety Analysis Group (GAS) Computer and Digital Systems Engineering Department (PCS) Escola Politécnica.
Scenario Oriented Project Management Knowledge Reuse within a Risk Analysis Process Márcio de Oliveira Barros Cláudia Maria Lima Werner Guilherme Horta.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Software Product Line Architectures (SPLA) Nipun Shah
Domain-Specific Software Engineering Alex Adamec.
UML and Object Oriented Concepts
The chapter will address the following questions:
Drawing on Linguistics: Concepts, Metaphors and Colored Pencils Kristen Precht-Byrd.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
O BJECT O RIENTATION F UNDAMENTALS Prepared by: Gunjan Chhabra.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Abstract Factory Design Pattern making abstract things.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Your First Java Application Chapter 2. 2 Program Concepts Modern object-oriented programs help us build models to manage the complexity found in a problem.
Systems Analysis and Design in a Changing World, 3rd Edition
Educational Objectives
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
For Goal-Driven Business Process Modeling Saeed A.Behnam,  Daniel Amyot, Gunter Mussbacher SITE, University of.
Design Principle & Patterns by A.Surasit Samaisut Copyrights : All Rights Reserved.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 3 System Performance and Models Introduction A system is the part of the real world under study. Composed of a set of entities interacting.
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Introduction to OOP CPS235: Introduction.
Advanced Object-oriented Design Patterns Creational Design Patterns.
SWE 4743 Responsibility Driven Design with CRC cards Richard Gesick.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Java Inheritance in Java. Inheritance Inheritance is a mechanism in which one object acquires all the properties and behaviors of parent object. The idea.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
Design Patterns: MORE Examples
A Hierarchical Model for Object-Oriented Design Quality Assessment
Object Oriented Programming
Chapter 5:Design Patterns
MPCS – Advanced java Programming
SysML v2 Formalism: Requirements & Benefits
Unified Modeling Language
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN
PRINCIPALES OF OBJECT ORIENTED PROGRAMMING
Advanced Programming Behnam Hatami Fall 2017.
Software Engineering with Reusable Components
Chapter 20 Object-Oriented Analysis and Design
DESIGNING YOUR SYSTEM.
Automated Analysis and Code Generation for Domain-Specific Models
point when a program element is bound to a characteristic or property
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
Chapter 26 Estimation for Software Projects.
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

From Metamodels to Models: Organizing and Reusing Domain Knowledge in System Dynamics Model Development Márcio de Oliveira Barros Cláudia Maria Lima Werner Guilherme Horta Travassos COPPE / UFRJ

Motivation  SD Model Building –Models represent real-world elements, but their behavior are usually not easy to identify within model equations –Generally, models describe uniformly (by using average values) all elements pertaining to the same category –Knowledge embedded within a model is not easily reused in new model developments –SD model constructors are very flexible, but they are at a very low abstraction level

Proposal  Models are getting more complex and larger –We need simpler, easy to understand, models –We also need models that capture the particularities of the problem being analyzed  Our proposal aims to raise model abstraction level –Instead of working directly with SD constructors, model builders would work with high-level constructors –These high-level constructors represent concepts close to real-world elements –High-level constructors are described in a metamodel, using SD constructors

Metamodels and Models SD Metamodel HL Constructors (Classes) HL Constructors (Classes) SD Models Specific Elements (Objects) Specific Elements (Objects) Attends to Contains

Metamodeling  A metamodel is composed by: –Classes –Relationships  A class describes a category of elements –Classes have properties and behavior –Properties are values that can parameterize behavior –Behavior is described through basic SD constructors  Relationships –A relationship is an association between two classes –They allow manipulation of other classes behavior –They can be single or multiple

Simplified Metamodel - Software MODEL ProjectModel { CLASS Developer {... }; CLASS Artifact {... }; CLASS Activity {... }; MULTIRELATION Team Activity, Developer; MULTIRELATION Income Activity, Artifact; RELATION Outcome Activity, Artifact; }; Activity Developer Artifact Works On UsesProduces

Class Behavior  Described by extended SD constructors –The DOT operator allows a class to access the behavior of other classes through a relationship –The GROUPSUM function sums a selected behavior for every element in a relationship –The COUNT operator calculates the number of elements within a relationship –Multirates allows one RATE equation to affect several stocks in associated elements

Class Behavior - Examples PROC ScaledSize Outcome.Size / Factor; PROC ExpLevel GROUPSUM (Team, ExperienceLevel); PROC NDevelopers COUNT (Team); RATE (Income.Errors) NewErrors -ErrorsPerDay * Work / ExpLevel; Must be a single relationship Parameters: relationship and behavior Parameter: relationship A relationship identifies a multirate. Errors must be a stock in the elements associated through Income.

Models  A model is associated to a metamodel  A model is composed by several elements –An element pertains to a metamodel class –Each element provides values for its class properties –Each element inherits class behavior  Model relationships –Each element indicates other elements which fulfill their classes relationships

Model Example - Software DEFINE MyProject ProjectModel { Jimmy = NEW Developer SET Experience = 0.8; DesignModel = NEW Artifact SET latent_errors = 10; CodingModel = NEW Artifact SET latent_errors = 0; Coding = NEW Activity SET duration = 5; LINK Team Jimmy; LINK Income DesignModel; LINK Outcome SourceCode; }; Coding

Simulation  Models are translated to system dynamics –Metamodel behavior, inherited by model elements, can be translated to traditional SD constructors –Simulation analysis proceeds upon the translated version, using known mechanisms  Tool support –Model development environment –Metamodel development environment –Model and metamodel compiler to system dynamics –Simulation environment

Results  What is achieved ? –Separation of concerns: each high-level constructor contains the equations that describe its behavior –Reusable domain knowledge: once a metamodel is developed for a given modeling domain, several models can be build upon it –Element properties: high-level constructors define properties for their counterparts real-world elements. Different elements are described by distinct property values

Conclusions  First analysis shows promising results: –The metamodel / model compiler was developed –A simulation environment was built –Some models were developed  Future work –We want people to use the modeling approach for: Observing them using it Improving it by analyzing feedback reports Providing automated support to build models