A given modeling and code generation framework Formalization of UML with Traceability Department of Computer Science & Engineering College of Engineering.

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

CASE tools Upper CASE tools: support for the analysis and design Lower CASE tools: support for construction and maintenance 1980s… Nowadays… Integrated.
1 Translation Validation: From Simulink to C Michael RyabtsevOfer Strichman Technion, Haifa, Israel Acknowledgement: sponsored by a grant from General.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
M INERVA (Metamodel-based Intuitive Editors with Reports and Visualizations of Analysis) Laura A. Campbell Advisor: Dr. Betty H.C. Cheng Software Engineering.
Hydra (A General Framework for Formalizing UML with Formal Languages for Embedded Systems*) *from the Ph.D. thesis of William E. McUmber Software Engineering.
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Code Generation for UML Morgan Bird Tom Lilley Lauren Revard Min Deng, Sascha Konrad, Karli López Dr. Betty H.C. Cheng.
Formal Methods of Systems Specification Logical Specification of Hard- and Software Prof. Dr. Holger Schlingloff Institut für Informatik der.
Automata Based Programming Anatoly Shalyto, Fedor Tsarev Saint-Petersburg State University of Information Technologies, Mechanics and Optics.
Object-Oriented Analysis and Design
Informatics 43 – May 7, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases  No.
1 Carnegie Mellon UniversitySPINFlavio Lerda SPIN An explicit state model checker.
Smart Cruise, an application of M INERVA and Hydra Dr. William E. McUmber, Laura A. Campbell, and Dr. Betty H.C. Cheng This work is supported in part by.
More on RDT Robert John Walters. RDT – a reprise A Graphically based formal modelling language Models represented as diagrams (not text) Communications.
Metrics-Based Analysis of UML Designs Department of Computer Science & Engineering Ryan Stephenson Advisor: Prof. Betty H.C. Cheng Software Engineering.
Automating Checking of Models Built Using a Graphically Based Formal Language Robert John Walters.
Data Analysis (and User Interaction) GEOG 463 5/7/04.
Describing Syntax and Semantics
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Department of Computer Science & Engineering College of Engineering Dr. Betty H.C. Cheng, Laura A. Campbell, Sascha Konrad The demand for distributed real-time.
Safe Dynamic Adaptation Department of Computer Science & Engineering Ji Zhang and Zhenxiao Yang Advisor: Prof. Betty H.C. Cheng Software Engineering and.
Andrew SuttonKent State University1 Software Modeling Andrew Sutton Department of Computer Science Kent State University.
Using UML Models for the Performance Analysis of Network Systems Nico de Wet and Pieter Kritzinger Department of Computer Science University of Cape Town.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
1 MERIDIAN and RAPIDware (and other SENS projects) Dr. Betty H.C. Cheng Software Engineering and Network Systems Lab Michigan State University
L. Dillon Software Engineering & Network Systems Laboratory Michigan State University 1 Getting Results From Testing Laura K. Dillon Software Engineering.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
CMPD 434 MULTIMEDIA AUTHORING Chapter 06 Multimedia Authoring Process IV.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
1 Presentation and tool by Jason Kealey University of Ottawa CSI5180 Automatic conversion of Use Cases to Use Case Maps.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
S oftware E ngineering & N etwork S ystems Lab A Requirements Pattern-Driven Approach to Modeling and Analyzing Embedded Systems Betty H.C. Cheng Software.
Selected Topics in Software Engineering - Distributed Software Development.
Computer Programs and Programming Languages What are low-level languages and high-level languages? High-level language Low-level language Machine-dependent.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Algorithms & Flowchart
Verification of behavioural elements of UML models using B Truong, Ninh-Thuan and Souquieres, Jeanine In Proceedings of the 2005 ACM Symposium on.
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. HTML5 Evolving Standards JavaScript.
Temporal Logic Model-checking with SPIN
Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong.
Lab 5 CPIT 250 System Analysis and Design.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
 Programming - the process of creating computer programs.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
The Hashemite University Computer Engineering Department
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect V7.5 Module 13: Traceability with WebSphere Business.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Abstract BPEL Candidate Use Case: Modeling for Business Understanding Wednesday, May 23, 2004 Disclaimer: These are the views of Phil Rossomando and not.
1 BTS330 Visual Modeling. What is Visual Modeling? 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship.
PROWIND (Positioning Relay over Wirelessly Networked Devices) Team Members: Alexander Smithson, Dian Ding, Yeh Cheng Yuan Graduate Advisor: Eric Liao Faculty.
Chapter 9: Relationships Chapter 10: Inheritance and Polymorphism [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada,
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
Software Engineering: Models David Millard
A Framework for Nuclear Software (NuFA)
Advanced Computer Systems
Security analysis of COM with Alloy
Course Outcomes of Object Oriented Modeling Design (17630,C604)
An explicit state model checker
Presentation transcript:

A given modeling and code generation framework Formalization of UML with Traceability Department of Computer Science & Engineering College of Engineering Min Deng State-of-the-Art The Unified Modeling Language (UML) is the de facto object-oriented modeling language widely used in industry and academia. However, UML notations are not defined formally. Formalization is a process of giving formal semantics to UML notations by translating them into a target formal specification language (for example, Promela). Tool support for automatic code generation from UML diagrams  Code here refers to specifications  Enables automatic analysis of the UML diagrams The Code Distribution Problem The formalization of some UML features produces code that crosscuts the modular structure of the target language.  one UML feature is mapped to many non-contiguous lines of target- language code  one line of target-language code is mapped from many UML features Thus, it is not obvious how the UML features and target-language code are related. As a result, it is difficult to understand and thus validate the correctness of the implementation of a formalization. In addition, property specification and analysis of UML diagrams is aggravated by this problem. Providing Traceability for UML Formalizations Enables understanding and validation of correctness of the implementation of a formalization  Visualize the code distribution problem  Validate coarse-grained correctness such as employed communication protocols  Visualize fine-grained correctness such as semantics of individual UML features Aids in property specification, automatic property generation and analysis of UML diagrams Facilitates the impact analysis of different design decisions for a formalization Helps the interpretation of analysis results from supporting tools for target formal languages Our Approach and Status U-Banyan  A framework to provide traceability between UML diagrams and target-language code using views  A view is a relation between the elements in UML diagrams and elements in target-language code. Views keep references to elements in UML diagrams and target-language code. Thus, we are able to trace forward and backward.  Instantiated with forward traceability in our own UML-to-Promela formalization, and applied to validate the implementation of the formalization and analyze UML state diagrams. Future Directions Automate property and instrumentation code generation for analyzing UML diagrams Provide more advanced visualization capabilities  Explore backward traceability Further explore the applicability of traceability in the analysis of UML diagrams Apply our framework to more UML formalizations References William E. McUmber and Betty H.C. Cheng, “A general framework for formalizing UML with formal languages”, Proceedings of 23 rd IEEE International Conference on Software Engineering, May 2001 Betty H.C. Cheng, R.E.K. Stirewalt, Min Deng, and Laura Campbell, "Enabling Validation of UML Formalizations", MSU-CSE-03-20, July, 2003 The Unified Modeling Language Specification, Promela Language Reference, Acknowledgements This work has been funded in part by NSF grants EIA , CDA , and CCR , Department of the Navy, Office of Naval Research under Grant No. N , and Eaton Corporation, and in cooperation With Siemens Automotive and Detroit Diesel Corporation. Ovals represent states; arrows represent transitions Transitions are labeled by events Sample distributions  Transition on event f is translated into 6 different places in Promela (in red)  Transition on event e is translated into 4 difference places in Promela (in blue)  Composite state comp3 is translated into two blocks of code (in black boxes), first of which leads an if-fi statement and second of which is a process declaration, in Promela Code Distribution in a UML-to-Promela Formalization An Example UML State Diagram proctype comp3(mtype state) { int comp2_pid; int comp3_pid; mtype msg; int dummy; /* Init state */ init: goto two; /* State one */ one: if :: ex_q?e -> t?free; wait!_pid,st_four; goto exit :: ex_q?f -> t?free; wait!_pid,st_five; goto exit :: ex_q?g -> t?free; wait!_pid,st_five; goto exit fi; /* State two */ two: if :: ex_q?e -> t?free; wait!_pid,st_four; goto exit :: ex_q?f -> t?free; wait!_pid,st_five; goto exit :: ex_q?g -> t?free; goto three fi; /* State three */ three: if :: ex_q?h -> t?free; goto one :: ex_q?e -> t?free; wait!_pid,st_four; goto exit :: ex_q?f -> t?free; wait!_pid,st_five; goto exit fi; exit: skip } proctype comp2(mtype state) { int comp2_pid; int comp3_pid; mtype msg; int dummy; /* Init state */ init: goto to_comp3; /* State four */ four: skip; if :: ex_q?f -> t?free; wait!_pid,st_five; goto exit fi; /* Link to composite state comp3 */ to_comp3: comp3_pid = run comp3(msg); wait??eval(comp3_pid),msg; if :: msg == st_five -> wait!_pid,st_five; goto exit :: msg == st_four -> goto four fi; exit: skip } proctype comp1(mtype state) { int comp2_pid; mtype msg; int dummy; /* Init state */ init: goto to_comp2; /* Link to composite state comp2 */ to_comp2: comp2_pid = run comp2(msg); wait??eval(comp2_pid),msg; if :: msg == st_five -> goto five fi; /* State five */ five: skip; exit: skip } active proctype ex() { mtype m; bit dummy; int comp1_pid; /* link to environment */ run Environment(); /*Init state*/ initS: goto to_comp1; /* Link to composite state comp1 */ to_comp1: comp1_pid = run comp1(m); wait??eval(comp1_pid),m; exit: skip } Produced Code in the Promela Language Advisors: Dr. Betty H.C. Cheng & Dr. R.E. Kurt Stirewalt Software Engineering and Network Systems (SENS) Laboratory Monday, May 10, 2004 Why name our framework U-Banyan? U stands for UML Banyan is an East Indian fig tree. It can establish new roots from its branches, but you can always trace it back to the original tree. Sometimes the branching can become quite complex, but there is always traceability ex comp1 five comp2 four two threeone comp3 g hg e f Data Flow Diagram of U-Banyan 1.User draws a UML diagram so that the diagram objects are in memory 2.User draws the same UML diagram in a given modeling and code generation framework to produce the target-language code 3.The code is input to its parser so that the in-memory representation for the code is created 4.User inputs the UML diagram element to highlight, and a view object is constructed, which connects the element with the target-language objects implementing the element 5.The code corresponding to target-language objects is highlighted in the HTML representation Graphical editors for UML diagrams UML diagram objects Generator for View objects Construction of traceability links from view objects to target-language objects Graphical editors for UML diagrams Target-language objects Generator for producing HTML file Code generator for producing a formal language Parser for target-language code HTML representation of target-language code View objects Target-language code U-Banyan