Advanced Software Development with MATLAB

Similar documents
Integrate MATLAB Analytics into Enterprise Applications

Integrate MATLAB Analytics into Enterprise Applications

MATLAB. Senior Application Engineer The MathWorks Korea The MathWorks, Inc. 2

Integrate MATLAB Analytics into Enterprise Applications

Integrating Advanced Analytics with Big Data

Sharing and Deploying MATLAB Applications

Scaling MATLAB. for Your Organisation and Beyond. Rory Adams The MathWorks, Inc. 1

Sharing and Deploying MATLAB Programs Sundar Umamaheshwaran Amit Doshi Application Engineer-Technical Computing

Scaling up MATLAB Analytics Marta Wilczkowiak, PhD Senior Applications Engineer MathWorks

What's New in MATLAB for Engineering Data Analytics?

Integrating MATLAB Analytics into Business-Critical Applications Marta Wilczkowiak Senior Applications Engineer MathWorks

MATLAB 에서작업한응용프로그램의공유 : App 에서부터웹서비스까지

Introduction to MATLAB application deployment

Tackling Big Data Using MATLAB

Application Development and Deployment With MATLAB

MATLAB as a Financial Engineering Development Platform Delivering Financial / Quantitative Models to the Enterprise Eugene McGoldrick

개발과정에서의 MATLAB 과 C 의연동 ( 영상처리분야 )

What s New in MATLAB May 16, 2017

System Requirements & Platform Availability by Product for R2016b

From Apps to Web Services: Deploying Your MATLAB Algorithms and Applications Marta Wilczkowiak

Automated Trading with MATLAB Stuart Kozola Computational Finance

Deploying MATLAB Applications in Excel, Java, and.net Environments

MATLAB Introduction. Ron Ilizarov Application Engineer

Cisco Unified Application Designer 2.4

Introduction to MATLAB for Finance

MathWorks Products and Prices North America January 2018

MathWorks Products and Prices Euro Academic January 2018

20532D: Developing Microsoft Azure Solutions

Integrated Workflow to Implement Embedded Software and FPGA Designs on the Xilinx Zynq Platform Puneet Kumar Senior Team Lead - SPC

IP PBX for Service Oriented Architectures Communications Web Services

Techno Expert Solutions

Model-Based Design for High Integrity Software Development Mike Anthony Senior Application Engineer The MathWorks, Inc.

Industrial system integration experts with combined 100+ years of experience in software development, integration and large project execution

Mind Q Systems Private Limited

What s New in MATLAB and Simulink

OSIsoft Technologies for the Industrial IoT and Industry 4.0

Getting Started with MATLAB Francesca Perino

Simplifier la mise en production d applications MATLAB. Marc Wolff Application Engineer MathWorks 1

2015 The MathWorks, Inc. 1

Introduction to C and HDL Code Generation from MATLAB

IP-PBX for Service Oriented Architectures Communications Web Services

Developing Microsoft Azure Solutions

J2EE Application Development : Conversion and Beyond Osmond Ng

What s New in MATLAB and Simulink The MathWorks, Inc. 1

Technical Computing with MATLAB

Fusion Registry 9 SDMX Data and Metadata Management System

A Mashup-Based Strategy for Migration to Web 2.0

Simulation-based Test Management and Automation Sang-Ho Yoon Senior Application Engineer

Understanding the latent value in all content

Test-driven development

STREAMLINED CERTIFICATION PATHS

Hardware-Software Co-Design and Prototyping on SoC FPGAs Puneet Kumar Prateek Sikka Application Engineering Team

ClearPath Secure Java Overview For ClearPath Libra and Dorado Servers

Microsoft vision for a new era

What s New in MATLAB and Simulink

Spotfire and Tableau Positioning. Summary

Introduction to Worklight Integration IBM Corporation

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

MCSE Cloud Platform & Infrastructure CLOUD PLATFORM & INFRASTRUCTURE.

What s New in MATLAB and Simulink Young Joon Lee Principal Application Engineer

Move Performance Testing to the Next Level with HP Performance Center September 11, Copyright 2013 Vivit Worldwide

Implementation and Verification Daniel MARTINS Application Engineer MathWorks

Deploy. Your step-by-step guide to successfully deploy an app with FileMaker Platform

Team-Based Collaboration in Simulink

Developing Microsoft Azure Solutions: Course Agenda

The Now Platform Reference Guide

BIG DATA: Data Analytics with MATLAB Christophe POUILLOT Senior Consultant MathWorks

Now you can Microsoft Visual Studio 2010 with MSDN

Chapter 9 Quality and Change Management

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

Pearson Education 2007 Chapter 9 (RASD 3/e)

Moving MATLAB Algorithms into Complete Designs with Fixed-Point Simulation and Code Generation

How to Route Internet Traffic between A Mobile Application and IoT Device?

MathWorks Products and Prices Euro Academic September 2016

Hardware Implementation and Verification by Model-Based Design Workflow - Communication Models to FPGA-based Radio

Deploying, Managing and Reusing R Models in an Enterprise Environment

Easily Extend Ignition to the Edge of Your Network

Driving Efficiency with MATLAB and Simulink. Centurion Lake Hotel 25 May 2017

What s New in MATLAB and Simulink Prashant Rao Technical Manager MathWorks India

Microsoft certified solutions associate

Parallel and Distributed Computing with MATLAB The MathWorks, Inc. 1

Azure Development Course

AT&T Flow Designer. Current Environment

2015 The MathWorks, Inc. 1

FOR IMMEDIATE RELEASE

Distributed Multitiered Application

microsoft

OpenESB SE Enterprise Edition V3.0 Installation guide

2015 The MathWorks, Inc. 1

Meltem Özturan misprivate.boun.edu.tr/ozturan/mis515

MATLAB is a multi-paradigm numerical computing environment fourth-generation programming language. A proprietary programming language developed by

Provide Real-Time Data To Financial Applications

STREAMLINED CERTIFICATION PATHS

Microsoft SharePoint Server 2013 Plan, Configure & Manage

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led

Effective Team Collaboration with Simulink

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

CloudSwyft Learning-as-a-Service Course Catalog 2018 (Individual LaaS Course Catalog List)

Appendix A - Glossary(of OO software term s)

Micro Focus Net Express

Transcription:

Advanced Software Development with MATLAB From research and prototype to production 2017 The MathWorks, Inc. 1

What Are Your Software Development Concerns? Accuracy Compatibility Cost Developer Expertise Development Time Documentation Ease of Collaboration Effective Testing Integration Legacy Code Liability Maintainability Model Risk Reusability Robustness Software Speed Software Stack Complexity? 2

Development Process Research & Discovery Explore and evaluate ideas Weigh alternatives, trade-offs Discover Prototype Verify Prototype to Production Formalize design & testing Optimize performance Elaborate Implement Document Test & Verification Production Deployment Migrate design to production Deploy / Integrate / Test.NET.dll Web C/C++ Python.exe Java DBMS 3

Case Study: Energy Load Forecasting System Current State Software developed by ex-colleague System entirely undocumented Stability issues take a long time to debug Days of downtime after security threat disrupted server Future State Backward compatible for legacy applications Reusable, extensible, and documented components Testing and support for test environments 4

Agenda Architecture and Design Code Quality Writing Code Testing Code Integration Additional Resources 5

Progression of Programming Techniques value variable Data structure Level of Abstraction / Sophistication (properties) class (methods) command line script function Algorithm 6

Object Oriented Design Modularity Encapsulation Data Access Model Development Charts Data Cleaning User Interface Reporting Price Series Constraints Compute Metrics Historical Statistics Constraint Matrices Price Series Optimization Algorithm Simulation Constraints Asset Weights Plot Frontier Compute Risks Portfolio 7

Object Oriented Class Hierarchy Reusable pieces through inheritance and composition Consistent interfaces Easily testable Source control Developed by MathWorks Consulting Services 8

File Structure Namespaces (+packages) Separation of Tests from Source Source control managed 9

Interface Control Document Agree on interface between external software and production server Separate development of front end and back end Allows for trivial updating 10

Source Control Current Folder, Simulink Projects, outside of MATLAB Text files, MAT files, live scripts, et al. 11

Requirements Management Link between source, test, and requirements Identify which requirements have been met 12

Agenda Architecture and Design Code Quality Writing Code Testing Code Integration Additional Resources 13

Flexible, Extensible Interfaces inputparser Parameter / Value Pairs Inheritance 14

Exceptions, Errors, Warnings MException error assert warning try / catch oncleanup 15

Polymorphism & Weak Typing Attribute Validation Property Validation Access Restriction 16

Preferences Add preferences to your application that persist to customize application Allows for configuration in compiled applications 17

Debugging Conditional breakpoints stop when something happens Test fixes by running code while paused Code analyzer to find quick fixes Use unit tests to set up state 18

Execution Performance Profiler Performance testing framework Parallel computing Automatic C / C++ / CUDA Code generation 19

Documentation Functions, classes self document Full markup documentation that can be included in Help Browser 20

Code Complexity 1 10 idxgroupedbylevel = {}; done = false; findhole = false; % start with an object boundary Simple program, low risk while ~done if (findhole) 10 20 I = FindOutermostBoundaries(holes); holes = holes(~i); % remove processed boundaries idxgroupedbylevel = [idxgroupedbylevel, {holeidx(i)}]; Moderate risk holeidx = holeidx(~i); % remove boundaries else I = FindOutermostBoundaries(objs); 20 idxgroupedbylevel = [idxgroupedbylevel, {objidx(i)}]; end if (processholes) High risk findhole = ~findhole; end if ( isempty(holes) && isempty(objs) ) done = true; end Untestable program, very high risk end 50 50+ 21

Code Complexity checkcode cyc Include test cases for complexity 22

Why use Automated Testing? Improve quality Understand and document code Reduce and not introduce risk Catch bugs early and often Four Phase Test 23

Authoring Tests Script, function, and class based tests Setup and teardown for four phase testing Rich qualifications and diagnostics Parameterization to build combinations of inputs 24

Mocking Framework to emulate software or hardware that is inaccessible or slow Spy on mock usage for testing 25

Testing Infrastructure Run suites of tests from many files, directories, and packages Select tests based on tags or parameters Shared fixtures (e.g. path management, temporary folders) 26

Test Outputs Coverage report 27

Test Outputs Test results report 28

Continuous Integration Runs tests after code changes to track development progress Support for TAP, junit XML 29

Agenda Architecture and Design Code Quality Writing Code Testing Code Integration Additional Resources 30

Integrating with Other Languages, Frameworks, Databases Calling Out Calling In C / C++ C / C++ Python Python.NET.NET REST / HTTP Java WSDL / SOAP Excel Java REST (MATLAB Production Server) System FORTRAN FORTRAN System Perl COM Verilog / VHDL (HDL Verifier) Databases ODBC / JDBC / Some NoSQL (Database Toolbox) OPC / Historian (OPC Toolbox) CUDA (Parallel Computing Toolbox or GPU Coder) 31

Getting out of MATLAB Embedded Hardware Enterprise Systems C, C++ HDL PLC CUDA Standalone Application Excel Add-in Hadoop/ Spark C/C++ Java ++ Python.NET MATLAB Production Server MATLAB Runtime 32

What is Production Server? Enterprise class framework for running packaged MATLAB programs Server software Manages packaged MATLAB programs and worker pool Single server can use runtimes from different releases Lightweight client libraries for: C/C++,.NET, Python, Java, and RESTful JSON interface Enterprise Application MPS Client Library Enterprise Application MATLAB Production Server Request Broker & Program Manager RESTful JSON MATLAB Runtime 33

MATLAB Production Server Workflow Development Initial Test Application Debug Algorithm MATLAB Algorithm Verify data handling and initial behavior MATLAB Compiler SDK Deployable Archive (CTF) Production. Web Application Function Calls MATLAB Production Server 34

Integration of MATLAB Based Analytics with your IT infrastructure Data Business System Databases MATLAB Visualization MATLAB Production Server Cloud Storage Azure Blob Azure SQL Request Broker Web IoT & Big Data Azure IoT Hub MDCS Custom App Public Cloud Platform Private Cloud 35

Agenda Architecture and Design Code Quality Writing Code Testing Code Integration Additional Resources 36

MATLAB Central Community Every month, over 2 million MATLAB & Simulink users visit MATLAB Central to get questions answered, download code and improve programming skills. Answers MATLAB Answers File Exchange Blogs Blogs ThingSpeak MATLAB Answers: Q&A forum; most questions get answered in only 60 minutes File Exchange: Download code from a huge repository of free code including tens of thousands of open source community files Cody: Sharpen programming skills while having fun Learn Contribute Connect Cody and more Blogs: Get the inside view from Engineers who build and support MATLAB & Simulink ThingSpeak: Explore IoT Data And more for you to explore 37

Training: MATLAB Programming Techniques After this 2-day course you will be able to: Ensure code correctness. Create robust and user-friendly application interfaces. Optimize performance by choosing appropriate function and data types. Create custom toolboxes. 38

Commerzbank Develops Production Software System for Calculating Derived Market Data Challenge Compute a variety of derived market data from raw market data Solution Used MATLAB to read data from a data management system in a Windows and Linux architecture, perform analyses and optimizations, visualize results, and deploy mission-critical calculations. Working with MathWorks consultants, Commerzbank business analysts developed a proof-of-concept implementation of the crossplatform architecture. Results Integration with existing system simplified Implementation time reduced by months Updates made in days, not weeks Our solution required a Windows client and Linux server software. We used MATLAB to rapidly develop both by taking advantage of distributed computing, a MEX-file interface to access our financial Commerzbank headquarters in Frankfurt. data, and fast, built-in functions for optimization, regression, and more. Julian Zenglein Commerzbank 39

Want to Learn More? Engineers Sean de Wolski Senior Application Engineer Sean.deWolski@mathworks.com Account Managers Chuck Castricone Account Manager Chuck.Castricone@mathworks.com Marshall Alphonso Senior Finance Engineer, New York Marshall.Alphonso@mathworks.com Mike DeLucia Senior Account Manager Mike.DeLucia@mathworks.com 40

2017 The MathWorks, Inc. 41