57
Simulation: Past, Present and Future With Cameo Simulation Toolkit SysML Seminar Japan January 20, 2011

Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation: Past, Present and Future With Cameo Simulation Toolkit

SysML Seminar Japan January 20, 2011

Page 2: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Agenda

•  Qualifications in the Simulation Domain •  Simulation Defined •  Simulation, a Brief History •  Simulation Applications •  Executable Models:

–  Real World Applications with Cameo Simulation Toolkit, Codeless Simulation Now a Reality!

•  The Future of Simulation •  Live Demonstration

Page 3: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Our Simulation Qualifications and Experience

•  Purdue University Computer and Electrical Engineering –  Robotics

•  Eaton Corporation / Contel Federal Systems – CATIS/SID 88 –  Testing of Satellite Reconnaissance System, Network Simulation

•  NASA JPL – US Army ASAS/ENCE Program –  Communication Message Processing

•  Motorola –  International Cellular Telephone Behavior and Testing

•  Magnavox –  Advanced Field Artillery Tactical Data System

•  Naval Warfare Assessment Division –  War Gaming, WAM - Warfare Assessment Modeling, BFTT – Battle Force Tactical Trainer

•  Texas Instruments –  Harm Missile Simulated Testing System

•  Bridge Medical Systems –  Infusion pump included simulation of system components that were delayed by manufacturing

•  No Magic –  Part of task force determining capabilities and functionality of Cameo Simulation Toolkit

Page 4: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

No Magic’s Qualifications

•  Executive Leadership Team with extensive simulation background –  30+ Years of simulation experience –  U.S. Government NSA Simulation –  Involved with SCS, the Society for Modeling & Simulation Intl

•  OMG - Co-Chair SysML Specification •  OMG - Co-Chair UPDM Specification •  First company to support full standards-based simulation solution •  MagicDraw / Cameo Suite used by INCOSE Challenge Teams •  Varied background in simulation across domains •  …UPDM, BPMN, Enterprise Architecture •  Online and on-site UML, SysML, and UPDM training •  On site Requirements Management training •  Simulation training coming soon No Magic, known industry-wide for modeling, simulation and analysis

Page 5: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Defined

Webster’s Defines Simulation

“To assume the mere appearance of… without the reality”

Page 6: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Defined: Gartner on Simulation

Gartner defines simulation as “Using analytical tools and models to maximize

business process and decision effectiveness by examining alternative outcomes and scenarios, before, during and after process implementation and execution.”

Source: A Vision of Advanced Business Process Simulation and Optimization, June 2010

Page 7: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Defined

“Simulation is the process of designing a model of a real system and conducting experiments with this model for the purpose of either understanding the behavior of the system and/or evaluating various strategies for the operation of the system.”

–  Source: Introduction to Simulation Using SIMAN, 2nd Ed

Page 8: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Defined

Simulation allows us to: –  Model complex systems –  Describe the behavior of systems –  Develop theories or hypotheses that

account for the observed behavior –  Use the simulation to predict future

behavior such as the effects resulting from system changes

–  Analyze proposed systems which have not yet been developed

Page 9: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Defined

Simulation is one of the most widely used techniques in operations research and management science… –  It is not a “last resort” –  In the 1950’s & 1960’s as computers came of age, introduction

of languages such as SIMSCRIPT, GPSS, simulation was seen as a tool of “last resort”

–  Fairly recent, based on Monte Carlo Simulation

Page 10: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation a Brief History

–  In the late 60’s and 70’s most computers were mainframes and access and interaction was limited”

–  Widely used today for problems which are not analytically solvable such as complex multiple integrals

–  Pritsker introduced GASP IV which resulted in a number of applications, significant in the evolution of simulation

Page 11: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation: A Brief History

–  In the late 70’s and early 80’s SLAM introduced in ‘79 by Pritsker and Pergden

–  Models were more credible because of sophisticated tools –  SIMAN introduced in ’82 by Pergden. 1st language to run on

both mainframe and microcomputer –  Late 80’s till now, advent of powerful PC’s, sophisticated

languages –  Major advancement in graphics –  Models can now be simulated

Page 12: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Applications: What Can Be Simulated?

What can be simulated?

Almost anything can be simulated and almost everything has! –  Computer Systems –  Manufacturing –  Business –  Government –  Military –  Healthcare

Page 13: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Applications: What Can Be Simulated?

–  Computer Systems: hardware components, software systems, networks, database management, information processing

–  Manufacturing: material handling systems, assembly, automated production, inventory control, plant logistics

–  Business: financial analysis, stock and commodity analysis, pricing policies, cash flow analysis, financial “what-if” analysis and forecasting

–  Government: state and local municipal growth, jobs and population forecasting, land use, health care delivery, traffic scenarios, fire and safety simulations, criminal justice and traffic control

–  Military: weapon design, UAV simulations, tactical simulations, war fighting simulation, communication and logistics and weaponry cost/benefit simulation

–  Healthcare: Patient records, payer/provider analytics

Page 14: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Applications: Advantages

Simulation’s greatest strength is its ability to answer

“what-if” questions… Other advantages of

simulation include: –  Ability to study existing systems without

disrupting ongoing operations –  Systems can be “tested” before committing

resources –  Ability to better control time and resources –  Identify process bottlenecks –  Gain insight into system performance:

»  which variables are most important?

Page 15: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Applications: Gartner on Simulation Context

Source: A Vision of Advanced Business Process Simulation and Optimization, June 2010

•  Improve the detection of and response to important signals/patterns (such as market movement) •  Examine the effectiveness of alternative decision frameworks •  Fine-tune process performance •  Maximize the effectiveness of resources

Source: A Vision of Advanced Business Process Simulation and Optimization, June 2010

Page 16: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Applications: Advantages

“If your organization seeks innovation in dealing with known and unknown business and market scenarios, leverage simulation to target future process states, and exploit emerging conditions or protect from threats.”

Source: A Vision of Advanced Business Process Simulation and Optimization, June 2010

Page 17: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Simulation Applications: The Simulation Professional Body of Knowledge

•  Referent: What is simulated?

•  Intention: Why is it simulated?

•  Implementation: How is it simulated?

•  Credibility: How well is it simulated?

•  Programmatics: How is the simulation managed?

•  Application: What value is derived?

Page 18: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

18

Executable Models

“Executable UML is the next logical, and perhaps inevitable, evolutionary step in the ever-rising level of abstraction at which programmers express software solutions.”

Grady Booch

The purpose of a simulation is to gain system understanding without manipulating the real system, either because it is not yet defined or available, or because it cannot be exercised directly due to cost, time, resources or risk constraints.

Simulation is typically performed on a model of the system.

Page 19: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Executable Models

•  A model may be used to describe a domain or system under study or to specify a (business, software and/or hardware) system to be built. •  Descriptive models are generally used for analysis. •  Specification models are generally used for engineering.

•  The benefits of executable models •  Testable platform independent models (PIMs). •  Act as the implementation of the system (particularly for business

processes or software systems) •  Explore possible (desirable and undesirable) behaviors of a system •  Validate the behavioral specification for a system

Page 20: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Executable Models: A New Idea?

•  Model execution tools are available, but execution semantics or modeling capabilities are not standardized

•  Mentor Graphics BridgePoint •  Kennedy-Carter xUML •  Rational Rose Real Time and Rhapsody •  Vitech CORE

•  OMG standards are now filling these gaps •  Unified Modeling Language (UML) •  Systems Modeling Language (SysML) •  Executable UML Foundation (fUML) •  UML Action Language (Alf)

•  XBRL standards for financial modeling •  Standards body using No Magic solutions

Page 21: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

21

Executable Models: Cameo Simulation Toolkit

+

Page 22: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

22

Executable Models: Cameo Simulation Toolkit

The standard based model execution of:

  Activities (OMG fUML standard)   Statemachines (W3C SCXML standard)   OpaqueBehaviors (JSR223 standard)   Parametrics (OMG SysML standard)

Page 23: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

23

Executable Models: Foundation for Executable UML

•  OMG RFP for the Semantics of a Foundational Subset for Executable UML Models – Issued April 2005

•  fUML Version 1.0 Beta 3 (finalized) – February 2010

•  An executable subset of standard UML that can be used to define the structural and behavioral semantics of systems.

•  fUML defines a basic virtual machine for the Unified Modeling Language, enabling compliant models to be transformed into various executable forms for verification, integration and deployment.

Page 24: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

24

Executable Models: Classifier Execution

The structural semantics of systems

  An active class is one that has a classifier behavior.   Only active class may receive signals.   A classifier behavior is an autonomous behavior started when an active

class is instantiated.   A behavioral model is executable if it is complete enough   UML Behaviors: Activity, Statemachine, Interaction, OpaqueBehavior

Page 25: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Executable Models: UML Object Diagram

The standard way to specify objects and values

Page 26: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Executable Models: Activity

An activity specifies behavior as the execution of a set of actions.

An action in one activity may call another activity.

Data and control tokens flow between the actions.

An action takes a set of inputs and converts them into a set of outputs

Action is the fundamental unit of computational behavior.

Page 27: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

27

Activity Execution

How it works:

  An activity diagram is a graph structure consisting of activity nodes connected by activity edges

  The object or control tokens flow along edges at runtime   A token is a container for an object, datum or locus of control   An action is a fundamental unit of executable behavior within an activity.   When all input pins have required number of tokens, action is fired and

produces an object token in its output pin   An output pin offers its tokens to the targets of all outgoing object flows.

Page 28: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

28

Activity Execution

Sending and receiving signals:

  A signal is a classifier whose instances may be communicated asynchronously.

  A signal may have attributes that represent transmittable data.   A reception is a declaration of the ability to receive a signal.   A SendSignalAction may create and send signal instance to any target

Object   AcceptEventAction suspends execution and waits for a trigger

Page 29: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Actions Semantics

Page 30: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Action Language

•  The class and state models can only provide a static view of the domain

•  Action Semantics was added to the UML specification in 2001

•  It is convenient to use a textual rather than graphical notation •  “this.light = new Light()”

•  Textual action languages have been around for a while: Object Action Language(OAL), Shlaer-Mellor Action Language(SMALL), Action Specification Language(ASL), That Action Language(TALL), Starr's Concise Relational Action Language(SCRALL), Platform-independent Action Language (PAL) and PathMATE Action Language (PAL).

•  UML Action Language (Alf) •  OMG RFP for Concrete Syntax for a UML Action Language – Issued September 2008 •  Two initial submissions – August 2009 •  Joint revised submission – February 2010

Page 31: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Action Languages in Cameo Simulation Toolkit

JSR 223: Scripting for the Java Platform •  Pluggable scripting languages/engines •  Context variables can be defined in scripting environment •  MagicDraw utility methods can be called

Built-in languages: •  OCL, Java binary, Javascript, Ruby, Groovy and Python •  Many other can be freely downloaded at https://scripting.dev.java.net

OpaqueExpressions can be used in: •  OpaqueActions •  OpaqueBehaviors •  Constraints, guards and decisions •  Default values of the properties

Page 32: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

The State Machine

A state machine abstracts system behavior into a finite number of states.

The system is modeled as having discrete transitions between the states.

Behaviors are associated with transitions (Mealy style)

..or are associated with states (Moore style)

Page 33: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

33

State Machine Execution

How it works:

  Put all objects into an initial state   When an object enters a state, it begins executing the entry

activity (procedure) immediately   Upon completion, the object waits for an event to occur   If one of these events corresponds to a trigger of outgoing

transition, the waiting object will follow the transition and get busy again.

  Busy objects do not react to any events.   When events targeted at a busy object occur, they are held

Page 34: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

The Calculator

Page 35: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

State Machines

  State machine semantics are described in detail in the UML Superstructure specification, but this is not formalized.

  State machine semantics have been formalized by Harel and others, but these formalizations have not been standardized for UML.

  It is NOT part of fUML specification

Page 36: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

36

State Chart XML (SCXML): State Machine Notation for Control Abstraction

•  W3C Working Draft 13 May 2010

•  Provides a generic state machine–based execution environment based on Harel state charts.

•  Describes complex state-machines, including sub-states, concurrency, history, time events and more.

Page 37: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

37

fUML and SCXML Integration

The problem: •  fUML does NOT support Statemachines •  SCXML engine uses SCXML document for execution

The solution: •  Implement UML Statemachine to SCXML mapping •  SCXML engine is wrapped into fUML interfaces •  fUML engine is wrapped into SCXML interfaces

The result: •  Engines are independent, integration is part of the toolkit •  Statemachine in CallBehaviorActions •  Activities or OpaqueBehaviors as entry/do/exit behaviors of the State •  SendSignalAction can trigger Transitions in the Statemachine •  UML Statemachine can be exported to SCXML file

Page 38: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

38

Cameo Simulation Toolkit

Model execution framework and infrastructure:

  Model debugging and animation   Pluggable engines, languages and evaluators   User Interface prototyping   Model driven configs and test cases

Page 39: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

39

Simulation Management Window

  Sessions tree   Variables   Breakpoints   Console   Control panel   Triggers   Animation speed slider

Page 40: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

40

Sessions Panel

  Represents running threads/sessions   Hierarchical view (nested sessions)   Synchronous/asynchronous sessions   Status of the session (started, paused)   Independently terminate or suspend any session

Page 41: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

41

Variables Panel

  Represents runtime structure in a selected session context   Runtime objects tree and values   Based on fUML execution model   Editable primitive values   Allows inject event into selected Object event pool   Represents the current state of every object

Page 42: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

42

Breakpoints

  Breakpoint can be added from the model element context menu   The execution will be paused when this element is activated   Conditional execution suspending   Suspend modes : on entry, on exit and both   Values can be changed while execution is suspended

Page 43: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

43

Animation

  Visited and active element highlighting   Breakpoints highlighting   Custom colors   Exposing token values on diagram   Adjustable animation speed

Page 44: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

44

Execution Configuration

  Some predefined execution settings can be set using model-based execution configuration

  «ExecutionConfig» configuration properties consist of:   executionTarget – the element which execution should be started.   silent – if true, animation and idle will not be used.   ui – user interface mockup configuration.   log – element to which execution trace will be recorded.

The execution configuration can be selected and executed directly, or may be used as target element in other execution configurations.

Page 45: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

45

Execution Trace

  DSL for execution trace   All events are recorder to the special model   Custom reports and validation rules   DSL customization for user-friendly browsing

Page 46: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

The Goal: Automated Analysis

Page 47: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

47

User Interface Prototyping

Cameo Simulation Toolkit provides several approaches for UI prototyping:

  “Executable” User Interface Modeling Diagram

  System state animator (ImageSwitcher)

  API for custom UI implementations or third party integrations

Page 48: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

48

User Interface Prototyping

User Interface diagram allows creating mockups in seconds:   Drop signal on “Button” to assign name and trigger   Drop property on “Label” to be monitored   Drop images from disk or web browser

Page 49: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

49

ActiveImage and ImageSwitcher

•  ImageSwitcher is one more predefined subtype of UI config. •  It contains collection of ActiveImage elements to represent all the states •  The whole lifecycle of the object can be animated

Definition : Runtime representation :

Page 50: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

50

Verification and Validation

•  Various kinds of validation and verification options are available: •  model validation before execution (new validation suite) •  action preconditions and postconditions checking •  conditional breakpoints •  constraints in any action language

Page 51: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

51

Model-based Test Cases

Page 52: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

52

The Future of Simulation: Our Vision

What’s next:

  V&V, analysis and report tools   SysML execution semantics support   BPMN diagrams execution (BPEL and XPDL standards)   UPDM support   Alf (UML Action Language) support   Sequence diagram execution   Webservices – remote access to execution environment

“Why are we so bullish on simulation in general…As mankind tackles more and more complex problems, simulation plays an increasingly important role in solving those problems.”

Source: Drew Hamilton, Assoc Professor of Computer Science and Software Engineering, Simulation Magazine, Vol. 84, #12, December, 2008

Page 53: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

53

The Future of Simulation: Industry Collaboration

Organizations Devoted to Modeling & Simulation:

  Society for Modeling and Simulation International (SCS)   Simulation Interoperability Standards Organization   Association for Computing Machinery (ACM)   SimSummit

Page 54: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Gartner on the Future of Simulation

“ While many optimization methods, techniques and tools can help in BPI* efforts, we have selected simulation as the most important optimization technique for processes now and in the near future.”

*BPI is represented today by BPM disciplines which treat processes as assets

Page 55: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

55

Live Demonstration: Cameo Simulation Toolkit

Try it now!

  1.0 GA version was released on December 20, 2010   Free trial download at www.magicdraw.com   Training and Mentoring Available

Page 56: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Let’s See the Cameo Simulation Toolkit in Action

Live Demonstration

Page 57: Simulation · 2020-01-17 · Gartner defines simulation as “Using analytical tools and models to maximize business process and decision effectiveness by examining alternative outcomes

Gary Duncanson

President and CEO

No Magic, Inc.

+1 214-291-9100

[email protected]

Contact Information