david sampson mathworks consulting...david sampson mathworks consulting matlab computational finance...
TRANSCRIPT
![Page 1: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/1.jpg)
1© 2016 The MathWorks, Inc.
MATLAB App and Toolbox Development
David SampsonMathWorks Consulting
MATLAB Computational Finance Conference - London - 25 May 2016
![Page 2: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/2.jpg)
2
Agenda
§ Frequently used design patterns§ Calling external code from MATLAB§ Packaging and distributing code§ Learning more
![Page 3: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/3.jpg)
3
Frequently used design patterns
![Page 4: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/4.jpg)
4
Frequently used design patterns
§ Data access layer§ Componentized apps§ Graphics components
![Page 5: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/5.jpg)
5
Data access layer
Source: Wikipedia
![Page 6: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/6.jpg)
6
Demonstration:
Data access layer
![Page 7: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/7.jpg)
7
Data access layers in MATLAB
§ Design pattern: adapter§ Define a data access API (a set of abstract methods)§ Implement a class for each actual data source or sink type§ Applications interact with data sources or sinks via these data access
objects
![Page 8: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/8.jpg)
8
Componentized apps
![Page 9: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/9.jpg)
9
Demonstration:
Data visualization app
![Page 10: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/10.jpg)
10
Model
Event notificationProperty access, method call
HeartRateHistogramView StripChartView
MapViewPlayer
![Page 11: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/11.jpg)
11
Componentized apps in MATLAB
§ Design pattern: model-view-controller§ Decompose the app into a model and a series of views and controllers§ Model owns shared data and state§ Model is a handle class whose API includes properties, methods and
events§ Views react to model events and update their graphics objects§ Controllers respond to user actions and set model properties and/or call
model methods
![Page 12: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/12.jpg)
12
Graphics components
![Page 13: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/13.jpg)
13
Demonstrations:
Password entry boxWeb map
![Page 14: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/14.jpg)
14
Graphics components in MATLAB
§ Design pattern: composite§ Handle class (matlab.mixin.SetGet)§ Create graphics in constructor, store in private properties§ Expose specific properties§ Expose standard properties: Parent, Units, Position, Visible§ Delete object when graphics is deleted, and vice versa
![Page 15: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/15.jpg)
15
Calling external code
![Page 16: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/16.jpg)
16
Calling external code from MATLAB
§ Java§ .NET§ Python§ WSDL§ C/C++/Fortran MEX§ C shared libraries
Why?§ Use algorithms§ Use utilities and services§ Interface to systems
![Page 17: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/17.jpg)
17
Demonstration:
Calling external code
![Page 18: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/18.jpg)
18
Packaging and distributing code
![Page 19: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/19.jpg)
19
![Page 20: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/20.jpg)
20
MATLAB Toolbox files (.mltbx)
§ Available from R2014b§ Packs multiple files into a single file to be distributed§ Includes metadata and product dependencies§ Single step to install (or update)§ Configures MATLAB path§ Registers apps and documentation
www.mathworks.com/help/matlab/matlab_prog/create-and-share-custom-matlab-toolboxes.html
![Page 21: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/21.jpg)
21
Toolbox artifacts
§ Code§ Apps§ Examples§ Documentation§ Tests§ Utilities
![Page 22: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/22.jpg)
22
Suggested toolbox structure
/my.prj/util.m/tbx/releases/tests
where tbx is what is released, and contains…
/tbx/my/Contents.m/fcn.m/Class.m
/mydoc/howto.html/example.m
/apps/app.m
![Page 23: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/23.jpg)
23
Toolbox packaging dialog
![Page 24: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/24.jpg)
24
Toolbox automation APIs
§ matlab.addons.toolbox.packageToolbox§ toolboxVersion§ installToolbox§ uninstallToolbox§ installedToolboxes
![Page 25: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/25.jpg)
25
Demonstration:
Toolbox UIs and automation APIs
![Page 26: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/26.jpg)
26
Learn more
§ Slides and some demos will be available§ “Building, Scaling, and Implementing Risk Model and Stress Test
Framework” by Bet Herrera @ 1520§ Training
– Building interactive applications in MATLAB– Object-oriented programming in MATLAB
§ Workshops by MathWorks Consulting– App development– Testing
§ Upcoming posts on Developer Zone, blogs.mathworks.com/developer
![Page 27: David Sampson MathWorks Consulting...David Sampson MathWorks Consulting MATLAB Computational Finance Conference -London -25 May 2016 2 Agenda Frequently used design patterns Calling](https://reader035.vdocuments.net/reader035/viewer/2022062416/611b57049251146d7d77318f/html5/thumbnails/27.jpg)
27
Thank you.
Questions?