MathWorks | Developer Zone
392 FOLLOWERS
Find new ways of using MATLAB to develop, test, and integrate production-grade software on Developer Zone.
MathWorks | Developer Zone
1M ago
Let me start with a simple observation - You Probably Don’t Have Big Data. Modern data processing tools including our very own MATLAB and Simulink are powerful enough to handle hefty workloads.... read more >> ..read more
MathWorks | Developer Zone
5M ago
Hello everyone, today I am excited to introduce a guest on the blog. Akhilesh Mishra provides industry specific support for our tool, focusing on the medical devices industry in particular. He and I have been working together more often because the medical software and device industry that he supports is in the midst of a transformation to highly leverage the types of solid, robust, and proven software development practices that we know and love here on this blog. The further development of software tools such as our testing frameworks, quality management platforms like MATLAB Test, build auto ..read more
MathWorks | Developer Zone
1y ago
This is the final part in my series on MATLAB Test where we’ll look at how to select tests based on files they depend on. Previously, I have covered:
An introduction to MATLAB Test and the Test Manager
The use of advanced coverage metrics
Measuring and monitoring code quality
Equivalence testing.
In large and complex projects, running the entire test suite every time something changes can be prohibitively expensive in time and/or compute resource. In these instances, just running the tests that are affected by the changes may be preferable. MATLAB Test provides mechanisms for easily doing t ..read more
MathWorks | Developer Zone
1y ago
This is part 4 in my series on MATLAB Test in which we’ll look at the new equivalence testing functionality it provides for MATLAB code. Previously, I have covered:
An introduction to MATLAB Test and the Test Manager
The use of advanced coverage metrics
Measuring and monitoring code quality.
What is equivalence testing and why do I need it?
In MATLAB, we can transform MATLAB code to C or C++ using MATLAB Coder, or to .NET assemblies, Java classes, or Python packages using MATLAB Compiler SDK. In such cases, we will often want to verify that the transformed version of our code behaves in exa ..read more
MathWorks | Developer Zone
1y ago
MATLAB R2023a was released back in March, and with it was a new product MATLAB Test. In a series of blog posts starting today, I’m going to show you how MATLAB Test can help you improve the quality of your code whether you’re developing a MATLAB Toolbox to share with your colleagues or writing code that will be deployed into a safety critical environment such as for medical devices.
Overview
There are five key features in the first release of MATAB Test which I’m going to cover. They will be extended and added to over the coming releases:
Test Manager – manage your tests and results (today’s ..read more
MathWorks | Developer Zone
1y ago
Who among us doesn't have issues amirite? Let's just take a moment and acknowledge this fact and I think we can always be a bit more honest and understanding of all of our unique issues and the various idiosyncrasies we exhibit. While we can all offer understanding and grace to each other, some of the issues we face can be important to address quickly, and some we can perhaps choose to work on when the time is right.
...and so it is with our code. Issues, bugs, and other sub-optimal constructs crop up all the time in any serious codebase. Many of you are already aware of the features of the C ..read more
MathWorks | Developer Zone
1y ago
A long time ago in a blog post far, far away… Andy wrote about Han Solo Encapsulation – to keep Jabba’s “system working as designed he needed to encapsulate his system behind a rock solid interface”.
By a stroke of good fortune, or judicious design choices depending on your perspective, a recent refactoring job that I thought could have far reaching consequences turned into a few changes in a single class, ultimately saving much time. Let’s have a look.
My scenario is that I have a DataProvider that accepts a DataRequest and returns some data:
classdef DataProvider
methods ..read more
MathWorks | Developer Zone
2y ago
My people! Oh how I have missed you. It has been such a long time since we have talked about some developer workflow goodness here on the blog. I have found it hard to sit down and write up more thoughts and musings on these topics, but the silver lining here is a big reason for my lack of time is that we have been hard at work delivering development infrastructure for MATLAB.
One of those things is the new build tool for MATLAB that included in R2022b! We are super excited about this tool's rookie release, but even more excited for all the value that will come of it as you begin using it for ..read more
MathWorks | Developer Zone
2y ago
The official guidance on test-driven development is to follow the red-green-refactor cycle:
Write a test that fails.Make it pass.Refactor.
But what’s the point in starting with a test that fails? To make sure you’ve written the right test! I encountered some unexpected behaviour recently that highlighted this point.
Imagine you have a Library that aggregates Items. An Item can be either a Book or a Film, but not both at the same time. If we create a Library in "book mode", it should initially contain an empty Book. If we create it in "film mode", it should initially contain an empty Film. Let ..read more
MathWorks | Developer Zone
2y ago
Let’s send some emails!
Imagine you write a function that sends an email to a customer. Your initial function call might look like this:
sendEmail(emailAddress,firstName,lastName,bodyText)
Having 4 inputs to our function is fine, but if we need to add more customer details it becomes difficult to manage. When working on software projects, we find that certain variables tend to be grouped together. In our case, “first name”, “last name”, and “email address” represent a customer. We might also have “name”, “description”, and “price” to represent a product, or “customer”, “product”, and “datetim ..read more