Executable UML the silver bullet or maybe not Dr. Joel Henry October 22, 2008

Similar documents
xuml, AADL and Beyond

F-16 Modular Mission Computer Application Software

Practical Model-Driven Development with the IBM Software Development Platform

bahmanzamani.com Computer Engineering i Dept. University of Isfahan

ISO compliant verification of functional requirements in the model-based software development process

Model-Based Techniques in the Development of Net-Centric Applications. Timothy A. Anderson Basil C. Krikeles. June 20, 2007

MDA Driven xuml Plug-in for JAVA

Automated Requirements-Based Testing

Raising the Level of Development: Models, Architectures, Programs

ISO Compliant Automatic Requirements-Based Testing for TargetLink

Using AADL in Model Driven Development. Katholieke Universiteit Leuven Belgium

Introduction to Dependable Systems: Meta-modeling and modeldriven

Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures

UNIT II Requirements Analysis and Specification & Software Design

A (Very) Short Introduction to Model-Driven Development (MDD)

TESTING xuml: A STUDY OF IMPLEMENTING AND TESTING MODEL DRIVEN ARCHITECTURE

Model driven Engineering & Model driven Architecture

How to Harvest Reusable Components in Existing Software. Nikolai Mansurov Chief Scientist & Architect

Software Engineering with Objects and Components Open Issues and Course Summary

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

An Introduction to Model Driven Engineering (MDE) Bahman Zamani, Ph.D. bahmanzamani.com

17. GRASP: Designing Objects with Responsibilities

Simulink 를이용한 효율적인레거시코드 검증방안

The PISA Project A Model Driven Development case study

A Solution Based on Modeling and Code Generation for Embedded Control System

MDA and Integration of Legacy Systems: An Industrial Case Study

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Object-Oriented Design

Object-Oriented Design

USTGlobal INNOVATION INFORMATION TECHNOLOGY. Using a Test Design Tool to become a Digital Organization

Role of Executable UML in MDA. Presented by Shahid Alam

Improving Military Information Technology Through Common Conceptual Models

Expert Guidance on Migrating from Magento 1 to Magento 2

Generation Rules in POMA Architecture

Model-Driven *: Beyond Code Generation

MDSE USE CASES. Chapter #3

Chapter 5 System modeling

MDSE PRINCIPLES. Chapter #2

Unambiguous, Non-Binding Requirements for MDA. -David Hansz, Requirements Analyst -David Fado, Software Architect

Introduction to ALM, UFT, VuGen, and LoadRunner

Model Driven Architecture - The Vision

Model Driven Engineering (MDE)

Part I: Preliminaries 24

What s New with the MATLAB and Simulink Product Families. Marta Wilczkowiak & Coorous Mohtadi Application Engineering Group

"Charting the Course... Agile Database Design Techniques Course Summary

CODAGEN TECHNOLOGIES AND MODEL-DRIVEN ARCHITECTURE (MDA)

Agile Test Automation Framework - Overhauling the Challenges

Requirements and Design Overview

Defining Domain-Specific Modeling Languages

Components Based Design and Development. Unit 3: Software Design Quick Overview

Software Design and Analysis CSCI 2040

Reusable Object-Oriented Model

Quality-of-Service Modeling and Analysis of Dependable Aplication Models

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

CS487 Midterm Exam Summer 2005

OMG Workshop MDA. Tool Chains for MDA? Let's consider leaving our tool chains behind us.

Reducing the cost of FPGA/ASIC Verification with MATLAB and Simulink

Testing Simulink Models

A Generic Approach for Compliance Assessment of Interoperability Artifacts

Software Reuse Techniques

Drupal 8 THE VIDER ITY APPR OACH

All you need are models Anneke Kleppe, Klasse Objecten

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

Patterns and Testing

The Problems and Promise of UML 2.0 Structures for SCA

Model-Driven Architecture

Developing in OMG s Model-Driven Architecture

Introduction to MDE and Model Transformation

Domain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements

Welcome to this IBM Rational podcast, enhanced. development and delivery efficiency by improving initial

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Service Design Description for the xxx Service <xyz Technology>

An Introduction to MDE

ASSURING DATA INTEROPERABILITY THROUGH THE USE OF FORMAL MODELS OF VISA PAYMENT MESSAGES (Category: Practice-Oriented Paper)

FREQUENTLY ASKED QUESTIONS

Modelling in Enterprise Architecture. MSc Business Information Systems

Information Systems. Software Engineering. MCQ - Part 2

Module 16. Software Reuse. Version 2 CSE IIT, Kharagpur

Integration With the Business Modeler

Model Abstraction versus Model to Text Transformation

Lecture 15 Software Testing

INTEGRATING DESIGN RATIONALE WITH A PROCESS MODEL

Week 9 Implementation

Practical Statecharts In C/C++: Quantum Programming For Embedded Systems With CDROM By Miro Samek

An MDD Process for IEC based Industrial Automation Systems

Question 1: What is a code walk-through, and how is it performed?

developer.* The Independent Magazine for Software Professionals

APPROACHES TO AUTOMATED TEST IMPLEMENTATION IN MODEL DRIVEN TEST AUTOMATION ARCHITECTURES

Deliver robust products at reduced cost by linking model-driven software testing to quality management.

Developing AUTOSAR Compliant Embedded Software Senior Application Engineer Sang-Ho Yoon

Model-Based Design for Large High-Integrity Systems: A Discussion on Logic-Intensive Algorithms

CSSE 490 Model-Based Software Engineering: More MBSD. Shawn Bohner Office: Moench Room F212 Phone: (812)

Software Testing MANUAL TESTING. Introduction to Testing. Software Quality Software Testing Definition. Different Life Cycle Models Waterfall Model

Reengineering of Distributed Middleware Systems To a Model Driven Architecture (MDA)

Model based Design. Embedded Systems Engineering Benedikt Huber WS 2010/ Model based Design

10 Modelling Multimedia Applications

Semantic Integration of Data Models Across Engineering Disciplines

Transcription:

Executable UML the silver bullet or maybe not Dr. Joel Henry October 22, 2008

Background Overview Model Driven Development (MDD) Unified Modeling Language (UML) Executable UML (xuml) Testing challenges When? Where? How? xuml testing Integration into the process Preliminary research results

Model Driven Development Model Driven Development is about making: software development more domain-driven as opposed to software restricted model development in a specific domain is more efficient (in terms of development time) maintenance is model-centered rather than software-centered activity (challenge!)

Model Driven Development Model Driven Development has advantages: Models are free of implementation artifacts directly represent domain knowledge Domain experts can play a direct role in development Implementations for various platforms can be generated (Web, standalone, mobile device)

Model Driven Development Domain expert develops model(s) Using code generation templates, the model is transformed to executable code The generated code is merged with manually written code Maintenance done HERE!

Model Driven Development Instruction Fetch Instruction Hit in L1 Cache 0 True Decode 0 0 0 False Instruction Hit in L2 Cache 0 True Instruction Miss Delay 0 False 0 Instruction Miss L2 Cache Delay 0

Model Driven Development

Recap Model Driven Development Specifying requirements is development Graphical and mathematical specification Model and then generate source code Examples MatrixX Matlab/Simulink xuml (Restricted UML that can be simulated)

UML A brief primer Graphical representation Class diagram Use cases Sequence diagrams State charts Textual descriptions Pseudocode in methods State transition actions textual Many processes - design or reverse engineer

UML Example class diagram

UML Example use case

UML Example sequence diagram

UML Example state diagram

Challenges of UML Computationally incomplete UML describes a system by specifying the desired results (use cases, sequence diagrams) Specifies what the software produces but not how ( and the devil is in the ) Missing key ingredients: Implementation of methods are specified by a language dependent pseudocode Actions associated with state machines are specified by a text string, or action part of UML

Background Executable UML Requirements is development Graphical and mathematical specification xuml Restricted UML that can be executed (simulated) xuml = UML V1.x - Semantically Weak Elements + Precisely Defined Action Semantics

Executable UML xuml is an executable version of UML clearly defined model structure precise semantics for actions action specification language for methods an accompanying process xuml based on strict development process executable models large-scale reuse -> pattern based design

xuml contains Executable UML Domains (divide problem into smaller problems) Use cases (how domains work together) Sequence diagrams (what happens when) Within domains: Class diagrams each with a state transition diagram Methods written in precise, but limited, ASL Bridges between domains

Executable UML domain model

Executable UML use case diagram

Executable UML sequence diagram

Executable UML Model is a precise specification Can be simulated from use cases (Platform Independent Model - PIM) Easier transition to target system (Platform Specific Model - PSM) No ambiguity in the models Model results immediately available (simulation) Managers feel confidence that progress is being made No software development needed but wait

Model requires Executable UML State transition diagrams (simple. but) Interfaces between classes and domains (requires some thought ) Action specification language (another programming language ) Testing (BIGGEST CHALLENGE) How to test these models? Without testing how do we know any of the above is correct?

xuml System Development System Requirements Specify Domains Specify PIM to PSM Translation Build PIM Use cases Class Diagram State Charts Methods Deployed System Generate PSM TEST?

Requirements Driven Testing Required but unimplemented functionality SOFTWARE REQUIREMENTS Required and implemented functionality Implemented but unacceptable functionality SOFTWARE FUNCTIONALITY Implemented but acceptable functionality Where is this line?

Requirements Driven Testing What does this mean? Model and system functionality drives testing Use knowledge of model design to generate tests Why do this beyond black box testing? Monitor model functionality while testing Detect defects and locations/causes of defects What does this require? Knowledge of model and system Tools to generate and configure test data Ability to identify defects in test results

Requirements Driven Testing Ball and Urn Analogy Model Based Software (PIM or PSM) Test Results Test case 123 Requirements Compare

Requirements Driven Testing Analysis Ball and Urn Analogy Test case 1 Output Values and Events from Test 1 Output Values and Events from Test 2 Test case 2 Output Values and Events from Test 3 Test case 3

Requirements Driven Testing Ball and Urn Analogy What does this mean? Test cases for specific software functionality Likely to find defects Critical for safety, reliability, success, etc. What to test? Values around critical points Large number of input value combinations Sufficient coverage of each equivalence class What are the results? Test coverage for input ranges and combinations Output range coverage, reliability, MTTF, etc.

Testing Goals Testing solution requires: Innovative, reusable, long-term testing environment Requirements and structure driven testing Implement without change to models Defect detection, test case re-execution, testing measurement Test model and translated model with same tests Leverage past success with Matlab/Simulink

Testing Requirements Requirements Input file/matrix Output file/matrix Sample time variable or set frequency Variable Range Input variable min, max, and accuracy Output variable min, max, and accuracy Defects/Exceptions/Faults Identification Tracing

Test Execution Create test data Functions, freehand, imported Execute tests Configure input data Wrap model, simulate, unwrap Capture output values Capture results Input, states, output Detect exceptions Analyze results across multiple tests

Defect Detection Simple value range detection Percent change Allows exception detection if the output value changes more than a specified percent over a specified number of steps Absolute change Allows exception detection if the output value changes more than a specified amount over a specified number of steps

Defect Detection Advanced Exceptions Combinations of exception definitions Disjoint ranges Create exception definitions by time range Combinatorial definitions based on multiple exception definitions Overall system reliability Scenario based reliability per major function Overall reliability combining scenario reliability

Constraint Determination Search based method to find min or max values for a Simulink outport Two methods Genetic algorithm Combination of Simplex and Simulated Annealing Research tool (needs an interface, help, etc.) International acceptance (paper invited to conference in Oxford UK in 2007)

Constraint Determination Test Results Matlab/Simulink Model Constraint Determination Tool Tests Test results: Global Minimum Global Maximum Input values associated with Min and Max

Integration of Tools and Methods Where to place the tools? How to use the tools effectively? What to do with results? How to gain acceptance?

MDA Testing & Tool Usage Determine Objectives, Alternates and Constraints Evaluate alternatives And Resolve Risks Risk Analysis Simulate Test Algorithm Development Select Simulate Solution Test Initial Requirements Translate Link to 3GL code Plan Next Iteration Execute Test Build and Verify Develop and Verify Software and System

xuml Testing Placement System Requirements Specify Domains Testing Specify PIM to PSM Translation Build PIM Use cases Class Diagram State Charts Operations Testing Deployed System Generate PSM Test Data & Drivers Validate PIM Use cases Class Diagram State Charts Operations

xuml Testing Approach Build a set of testing domains independent of application domains Implement reusable testing methods within testing domains Encapsulate application-testing domain coupling in bridges Include the ability to automate testing New applications require only new bridges Suitable for PIM and PSM testing

xuml Testing Approach Data Creation Functions Test Data File Access Functions Expected Results Test Execution Functions Data Storage Functions Test Measurement Bridge Bridge Bridge Bridge Bridge Bridge Domain Domain Domain Application Domains

xuml Testing Domains Data Creation Functions File Access Functions Data Creation Test Data User configurable functions generate test data File Access Functions Functions to retrieve data from xml files or DB Test Data Data format conversion functions

xuml Testing Domains Expected Results Expected Results Organize output data into a consistent format Test Execution Functions Test Execution Functions A set of test types that can be executed on any application domain (through bridges)

xuml Testing Domains Data Storage Functions Data Storage Functions Output the test data, actual and expected results, and exceptions in a consistent format Test Measurements Test Measurement Functions that perform a variety of test measurements (MTTF, Range Coverage, etc.)

xuml Development Testing Data Creation Functions Test Data Bridge File Access Functions Expected Results Test Execution Functions Bridge Bridge Data Storage Functions Test Measurement 1. Read input data 2. Read expected results 3. Configure the Input Data (initialize, call-data pairs) 4. Execute the tests 5. Capture test results 6. Calculate test measurements 7. Store the test results Bridge Bridge Bridge Domain Domain Domain Application Domains

xuml Maintenance Testing Data Creation Functions Test Data Bridge Bridge Domain File Access Functions Expected Results Test Execution Functions Bridge Bridge Domain Bridge Bridge Domain Application Domains Version 2.0 Data Storage Functions Test Measurement 1. Read input data from data gathered during use 2. Read expected results a) Actual results from deployed system OR b) Expected results for new functionality 3. Configure the Input Data (initialize, call-data pairs) 4. Execute the tests 5. Capture test results 6. Calculate test measurements 7. Store the test results

Reuse xuml Testing Domains Data Creation Functions Test Data File Access Functions Expected Results Test Execution Functions Bridge Bridge Data Storage Functions Test Measurement 1. Read input data 2. Read expected results 3. Configure the Input Data (initialize, call-data pairs) 4. Execute the tests (using new Test Bridges) 5. Capture test results 6. Calculate test measurements 7. Store the test results Bridge Bridge Domain Domain New Application Domains

xuml Testing Process

xuml Testing Comparison How did it work? Unit testing: 31% less time than testing C++ Integration testing: 9% less time than C++ Requirements driven testing: still working but More time to build testing domains than application! 90% less time for 2 nd application (test bridges and test files) Caveats? Unit testing has NO reuse across applications Integration testing has some reuse (test harness) Requirements driven testing largely reusable (testing domains)

Questions.? This research funded by: Lockheed Martin (Denver) This research done with: MRI Technologies With strong support from: The University of Montana

Acronyms MDA model driven application PIM platform independent model PSM platform specfic model xuml executable unified modeling language MTTF mean time to failure MATT Matlab automated testing tool RATT reliability automated testing tool GIST graphical input specification tool