
Low-Code in 30: Deliver High-Quality Apps
In this webinar, learn how Mendix helps development teams take a proactive approach to delivering high-quality apps customers love.
-
Transcript
[00:00:04.709]
Welcome to the latest edition in[00:00:06.750]
locating thirty.[00:00:08.509]
My name is Simon Black. Kind of a technology evangelist[00:00:11.169]
here. Bendix[00:00:13.240]
in today’s located thirty, we’re[00:00:15.269]
gonna be covering delivering high quality[00:00:17.429]
APS throughout the entire application[00:00:19.670]
life cycle.[00:00:23.879]
Over the last few months, we’ve covered a number[00:00:26.320]
ofthe topics in these low code in thirteen,[00:00:30.570]
everything from collaborative visual development[00:00:33.060]
through to comprehensive security.[00:00:35.840]
So if you weren’t able to attend that particular[00:00:38.109]
weapon ours, you can always catch them on[00:00:40.229]
demands are our YouTube channel.[00:00:46.240]
Before we dive into today’s topic,[00:00:48.679]
I want to just give you an overview as to what[00:00:52.590]
Bendix was born to help enterprises bring[00:00:54.700]
with APS.[00:00:55.829]
And it’s the fastest and easiest loco platform[00:00:58.509]
to create mobile and Web applications[00:01:00.509]
at scale.[00:01:02.560]
The way they do this is we have an[00:01:04.599]
entire platform[00:01:06.209]
that takes everything from requirements[00:01:08.439]
covering development, deployment[00:01:10.510]
on operating[00:01:11.939]
on each of those stages. We try[00:01:14.019]
to bring business together[00:01:16.459]
so that they can collaborate around[00:01:18.469]
the development off that project.[00:01:21.640]
By doing so, it enables us to[00:01:23.730]
build applications ten times faster[00:01:26.150]
than traditional development,[00:01:27.840]
unused seventy percent fewer resources.[00:01:31.939]
When developing these applications,[00:01:34.840]
we need to make sure that we’re still[00:01:36.849]
delivering the same level of quality[00:01:39.260]
at a quicker speed.[00:01:44.739]
So for equality is a top priority[00:01:46.920]
for many organizations[00:01:49.439]
approximately seventy percent[00:01:51.540]
of all digital projects of failing[00:01:54.140]
because they’re not meeting the expectations[00:01:56.599]
or the quality levels that[00:01:58.609]
business demands.[00:02:02.090]
These expectations are often defined[00:02:04.819]
in certain requirements,[00:02:06.819]
and usually these split into two[00:02:09.219]
functional requirements on non functional[00:02:11.430]
requirements.[00:02:14.120]
Functional requirements dictate[00:02:16.060]
how well it complies[00:02:18.319]
and conforms to a given design.[00:02:20.939]
You come up with a list of requirements, like[00:02:22.969]
in this ring binder here.[00:02:24.719]
These are often defined by the business[00:02:27.129]
they’re given to the team’s, who[00:02:29.180]
then have to go and deliver it.[00:02:31.419]
But often this does not meet the level[00:02:33.629]
ofthe quality that the business requires,[00:02:36.719]
because often these changing over time,[00:02:39.389]
their expectations of changing business[00:02:41.520]
requirements are changing.[00:02:43.120]
So therefore you need to have a different process[00:02:45.439]
where these requirements are gathered[00:02:47.870]
on their communicated together[00:02:51.520]
on the non functional side.[00:02:53.319]
If we start to deliver applications that[00:02:55.740]
are not scaleable are not performing.[00:02:58.189]
We often result in situations like[00:03:00.409]
this picture here. When we have frustrated[00:03:02.840]
end users,[00:03:04.060]
they’re not able to use our application[00:03:06.300]
the way that they want[00:03:12.280]
to ensure the applications are built.[00:03:15.750]
Meet the business needs.[00:03:17.719]
The minutes platform encompasses several[00:03:19.800]
key tools.[00:03:21.520]
The first one is that we have a development platform[00:03:24.210]
is designed to enable Business ninety[00:03:26.500]
collaboration,[00:03:27.819]
every state of the development process.[00:03:31.560]
The second is that we have a requirements[00:03:33.680]
management tool, allowing to have one[00:03:35.879]
central view of all of the projects[00:03:38.340]
and requirements[00:03:39.560]
and see an updated overview of[00:03:41.800]
the Progress Wass development.[00:03:46.219]
And lastly, we have a central portal[00:03:48.490]
so that we can manage and uses ideas,[00:03:51.400]
issues on bucks.[00:03:53.460]
I’ll be able to give their feedback from[00:03:55.599]
their stakeholders and it rained upon[00:03:57.680]
our application.[00:04:03.539]
Haven’t complete visibility off all those[00:04:05.659]
requirements is important.[00:04:07.639]
But you must make sure that what’s your[00:04:09.789]
building those requirements.[00:04:11.840]
You’re consistently meeting those needs[00:04:14.169]
and you’re not breaking things in the process.[00:04:17.189]
This is where testing is important.[00:04:19.819]
Bendix platform treats testing no different[00:04:22.269]
to any other development platform.[00:04:24.540]
Recover all types of testing.[00:04:27.240]
But three key areas would like to highlight[00:04:29.459]
today. The first[00:04:31.550]
one is functional testing,[00:04:33.439]
insuring what we build meets[00:04:35.779]
the end users expectations.[00:04:38.129]
And this is usually performed using our application[00:04:40.509]
test suite.[00:04:41.980]
I’ll demonstrate this later in my demo.[00:04:45.639]
Second, we need to have a facility[00:04:48.389]
for unit testing.[00:04:50.040]
This is done using the J Unit module[00:04:52.819]
on the unit testing module from our APP store.[00:04:56.740]
Finally, we need tohave integration[00:04:58.990]
testing,[00:04:59.939]
So we need to be able to test the dependencies[00:05:02.220]
between our different micro services[00:05:04.350]
or different applications.[00:05:06.139]
And usually we do this using soap[00:05:14.939]
when we’re developing in speed,[00:05:17.319]
it’s important that those applications[00:05:20.230]
are built to be maintainable over[00:05:22.310]
time. The platform[00:05:24.660]
is designed to ensure that whatever[00:05:27.060]
you build is maintainable of[00:05:29.290]
perform herbal,[00:05:31.740]
not leaving you with the technical debt[00:05:33.949]
over the years.[00:05:36.639]
We do this on several levels,[00:05:39.339]
but I’ve highlighted three here today.[00:05:42.189]
The first one is the[00:05:44.639]
A current will perform static analysis[00:05:46.860]
of your application models[00:05:48.660]
and tells you how maintainable is[00:05:51.019]
where you need to make changes.[00:05:53.800]
This is part of my demo. Later,[00:05:56.519]
I’ll show you how we can utilize[00:05:58.589]
that tool to be able to improve[00:06:00.973]
our applications, maintain ability.[00:06:06.072]
When we were building our application. The[00:06:08.362]
model is consistently checking it for[00:06:10.562]
errors[00:06:11.642]
usually checked ten to twenty times[00:06:14.202]
more consistently checks compared[00:06:16.463]
to traditional programming platforms.[00:06:19.052]
And this is so that we can ensure that when we run the[00:06:21.103]
application, it will run correct[00:06:23.543]
first time[00:06:26.052]
and finally throughout the platform,[00:06:28.372]
we haven’t a I assisted development.[00:06:31.372]
This enables us to give suggestions[00:06:34.033]
as to best next steps[00:06:35.892]
based on industry standards[00:06:37.872]
so that we can improve the quality as[00:06:40.033]
we’re going through our development.[00:06:46.872]
In order to guarantee the applications[00:06:49.223]
are maintain away. The time[00:06:51.033]
is also important. That we re[00:06:53.283]
use thes components[00:06:55.862]
we use is an essential part ofthe[00:06:57.983]
software development.[00:07:00.862]
Almond ex applications are built using model[00:07:03.213]
driven development.[00:07:04.642]
This ensures that we can reuse any[00:07:07.142]
part off the platform on any part[00:07:09.322]
of the APP[00:07:10.543]
against other applications.[00:07:13.872]
The way we usually reuse thes module[00:07:16.083]
components[00:07:17.233]
is by uploading those into our APP[00:07:19.353]
store. The APP store[00:07:21.382]
comes in two flavors. A private APP[00:07:23.523]
store only available for your[00:07:25.622]
price[00:07:26.673]
on a public APP store. This available to[00:07:28.802]
the whole community.[00:07:30.773]
The story’s a component library, which[00:07:32.942]
really accelerates that application developed.[00:07:37.262]
Finally,[00:07:38.372]
in order to have true reuse,[00:07:40.942]
you need to be able to break up your app into[00:07:43.302]
a set of single mike services[00:07:46.372]
to being out to orchestrate those being[00:07:48.523]
out to build those[00:07:50.142]
out, to reuse those different logic[00:07:52.562]
in multiple aps[00:07:58.442]
for my demonstration today[00:08:00.492]
that you’re going to use a scenario that we’ve[00:08:02.579]
used in three previous weapon ours.[00:08:05.509]
This scenario is around on[00:08:07.560]
inspections up.[00:08:08.930]
An inspector is on a particular container[00:08:11.189]
ship he might have received on[00:08:13.329]
a on his mobile device[00:08:15.689]
That something has happened to a particular container[00:08:18.000]
on the ship.[00:08:19.029]
He needs to go and inspect it[00:08:20.779]
and then see what is wrong.[00:08:23.040]
Records and information on his mobile device.[00:08:27.230]
This demonstration. We’ve got a showcase.[00:08:29.420]
Quickly, the application.[00:08:31.329]
We’re gonna submit a feedback,[00:08:33.769]
see how we can manage that feedback[00:08:36.190]
and see how we can add. Then use[00:08:38.470]
use attests to that particular use[00:08:40.600]
a story and finally,[00:08:42.889]
would then see how you could leverage[00:08:46.129]
so that we can see how well our[00:08:48.149]
application is in terms of maintain ability.[00:08:51.779]
Now that we’ve seen how the medics[00:08:53.879]
platform addresses quality,[00:08:55.830]
let’s take a look at two of those particular[00:08:58.019]
platforms in more detail.[00:09:00.490]
Thie platform on[00:09:02.490]
the platform. A leverage. This[00:09:04.570]
particular demo application[00:09:11.230]
So I have the open in my browser[00:09:13.399]
here, and we can in this particular[00:09:15.620]
avocation, CIA number ofthe inspections[00:09:18.120]
that we need to do on a particular container[00:09:20.450]
ship. We can see the task[00:09:22.539]
for each of those inspections on. As[00:09:24.590]
we drill down, we can see each[00:09:26.659]
individual question. We need to answer[00:09:28.769]
when we do this particular inspection[00:09:31.129]
for each of the questions, we can upload photos[00:09:33.659]
we cannot notes[00:09:35.070]
and be able to get a complete overview as to[00:09:37.139]
what we need to complete for this particular[00:09:39.389]
task.[00:09:42.129]
Now, when you’re developing an application, often you need[00:09:44.259]
to capture ideas, questions[00:09:46.570]
and issues from your end, uses[00:09:48.700]
your developers or testers.[00:09:51.039]
And to do that minutes has a booting[00:09:53.340]
feedback mechanism[00:09:55.200]
on the right side. Here we have this feedback button[00:09:57.610]
when we press it, it brings us into the[00:09:59.649]
feedback mode.[00:10:01.049]
And once we’re in the feed back road, we can select[00:10:03.110]
anywhere on the screen that we would like.[00:10:05.381]
Our new particular feature or issue[00:10:07.642]
has occurred,[00:10:08.912]
and this pool automatically take a screenshot[00:10:11.331]
off where the user was at the time[00:10:13.861]
and also identified there where[00:10:16.182]
they were clicking as well.[00:10:18.812]
We can then add a comment to this particular[00:10:21.172]
feedback item so that the[00:10:23.322]
Jews of the tester on developers[00:10:25.491]
no, exactly what needs to be added[00:10:27.922]
to satisfied my particular demands.[00:10:31.562]
I’m not gonna go through that process today, but[00:10:33.892]
earlier weaponized feature this particular[00:10:35.932]
scenario.[00:10:38.412]
So all of that feedback will go into our[00:10:40.481]
project management portal.[00:10:42.251]
And this is really where we can gather[00:10:44.442]
those requirements. Collaborate[00:10:46.491]
arounds, thie, initial user stories, and[00:10:48.822]
we can also manage out our feedback as well.[00:10:51.611]
So all of the feedback that users submit[00:10:54.381]
goes into this central portal here[00:10:56.511]
we can manage the open feedback, the[00:10:58.601]
handled and also accepted feedback,[00:11:01.461]
and we can then tie those back into[00:11:03.721]
individual users stories.[00:11:05.611]
So when we accept a feedback item, this[00:11:07.711]
will go into our story section[00:11:10.052]
and creates a new requirement which[00:11:12.172]
we can then start test cases, too,[00:11:14.902]
in our[00:11:16.072]
platform,[00:11:17.851]
so we can see here we have a user story as a[00:11:19.851]
user would like to be out to get conditional[00:11:21.881]
questions based on your response.[00:11:24.412]
So in order to make sure that we are meeting that[00:11:26.581]
requirement consistently, as we[00:11:28.682]
add new features, we need to be able to[00:11:30.741]
add a test script for this,[00:11:33.412]
and to do so we need to jump into[00:11:35.501]
the platform.[00:11:39.971]
This is a browser based platform and[00:11:42.011]
allows it to see across all of our applications[00:11:45.001]
which test cases have passed[00:11:47.341]
on which have failed over the last[00:11:49.412]
seven days. So this gives us a high level[00:11:51.652]
view as to the progress of our[00:11:53.792]
applications.[00:11:55.652]
See, here are loco mobile experiences[00:11:58.642]
application[00:11:59.792]
and when we drew down on this, we can see some more[00:12:01.871]
in depth information about the test[00:12:04.172]
cases. And over the last seven days, we[00:12:06.246]
can see this graft to see how we’re progressing.[00:12:11.917]
On the test cases section here. This is really[00:12:13.976]
where we can see each of the test cases[00:12:16.417]
or the test sweets that we’ve[00:12:18.567]
recorded in this particular technology.[00:12:23.187]
We can also see certain test data[00:12:25.716]
so we can upload that test data[00:12:28.067]
in C S V in Excel.[00:12:30.437]
And this allows us to run on a[00:12:32.756]
bulk upload bulk process[00:12:35.407]
a number of tests in this particular[00:12:37.486]
script.[00:12:39.616]
So we might want to test on a thousand[00:12:41.716]
users, for instance,[00:12:43.116]
and upload them and register them into the[00:12:45.157]
platform. We can do this by the test[00:12:47.407]
data scripts.[00:12:49.687]
And finally, we have a direct link[00:12:52.006]
into those stories that we showed[00:12:54.167]
in the development platform[00:12:56.317]
so we can add certain test cases[00:12:58.976]
to those new features that we’ve[00:13:00.996]
developed.[00:13:03.777]
So we’re going to take the last test case here. The[00:13:05.927]
last user story here on added new[00:13:07.956]
test case.[00:13:09.317]
When we do so, this sidebar will come[00:13:11.537]
up here, and this is where we can select[00:13:13.767]
existing test cases or[00:13:15.826]
test sweets on link those two individual[00:13:18.366]
use stories.[00:13:20.586]
In our case, we’re going to create a new test case.[00:13:23.616]
We’re going to give it a name off answering[00:13:26.466]
questions,[00:13:29.537]
select a number ofthe templates.[00:13:32.586]
So a template is essentially a[00:13:35.267]
baseline of what we want.[00:13:37.647]
This particular test case to include[00:13:40.297]
so include a number ofthe steps as[00:13:42.626]
default[00:13:44.787]
and help with this particular flow. We[00:13:46.797]
already created some of these as a template,[00:13:49.667]
so we’re going to open up the particular task.[00:13:52.157]
We’re gonna open up a particular question,[00:13:54.547]
and then this gives us the ability to then[00:13:56.777]
add our additional steps.[00:13:59.917]
If I hit, create an open, it will take[00:14:02.297]
that particular example test[00:14:04.657]
template and create those individual[00:14:06.884]
steps for us.[00:14:08.624]
So we see here on the test steps, we could drill[00:14:10.774]
down on each of those and see some more[00:14:13.014]
in depth information,[00:14:14.624]
so for each type off, activity[00:14:16.764]
will have a number off different properties[00:14:18.793]
here. This one, We’re cooking a[00:14:20.793]
button, so we need to know the witch it[00:14:22.793]
name that we need to click[00:14:24.484]
and in minutes every property, every[00:14:26.653]
container, every button[00:14:28.433]
contains his own unique which it name,[00:14:31.173]
and this allows us to identify it when we[00:14:33.244]
performed the script.[00:14:38.583]
We also have the test data as well as we can[00:14:40.624]
mark back which particular test data[00:14:42.813]
we want to use for this particular test[00:14:45.024]
case, we can see the usages[00:14:47.153]
of where it’s being used.[00:14:48.974]
Finally, we can see those stories that have been links.[00:14:51.293]
We combine multiple stories for a[00:14:53.333]
particular test case.[00:14:57.384]
Now, when we’re defining thes individual[00:14:59.394]
steps, we can even decide to record[00:15:01.663]
them manually.[00:15:02.913]
And when we do so, we’re asked to select[00:15:04.984]
from a particular function or in action.[00:15:07.514]
There’s a number ofthe default actions in here[00:15:10.004]
that have been built to support the[00:15:12.063]
Mendez platform.[00:15:13.573]
So things like clicking on certain buttons,[00:15:15.884]
selecting certain CSS elements[00:15:18.384]
all could be configured and added into[00:15:20.634]
this app.[00:15:23.024]
But we also have the option to record[00:15:25.244]
these. So if we want to use the browser[00:15:27.653]
recording so[00:15:29.004]
we could simply select record step,[00:15:31.793]
what this does is now sets up a recording[00:15:33.833]
session for us so that we can[00:15:36.043]
in the browser click on certain items[00:15:38.203]
and it will create those individual steps for us.[00:15:41.803]
I’m gonna head over to that tool. Now we can see[00:15:44.014]
that we have the feedback item open from[00:15:46.203]
before close that down now[00:15:48.524]
started. Add certain tests.[00:15:51.423]
So when we click the options here,[00:15:53.583]
every record that I’ve selected certain items[00:15:56.433]
record I’ve selected No. And then yes,[00:15:59.293]
it will record when I enter in a[00:16:01.524]
date, for instance,[00:16:02.974]
and also record information like when[00:16:05.063]
I type in the condition ofthe[00:16:07.096]
the container.[00:16:10.876]
Hop over back over to the[00:16:13.397]
platform[00:16:14.346]
we can see here. It’s set.[00:16:16.417]
The item as good[00:16:18.136]
is answered. Certain items as[00:16:20.177]
No[00:16:21.017]
for our first question, is then[00:16:23.037]
answered no to the second question and[00:16:25.267]
then changed his mind. Tea? Yes, for instance,[00:16:28.657]
on the right hand side here you can see[00:16:30.986]
what the values are being set on, what[00:16:33.096]
the assertion value should be.[00:16:35.157]
It’s the session value is saying, What[00:16:37.417]
should that value be when[00:16:39.417]
we enter this information?[00:16:41.876]
It’s a really good way of comparing and making[00:16:43.937]
sure that when we select, the certain item[00:16:46.456]
is meeting those values that[00:16:48.527]
we we think it should.[00:16:51.057]
The witch it name here allows his store identify[00:16:53.086]
what we want to select allows[00:16:55.126]
us to make sure that that run[00:16:57.856]
when we hit safe. What This would do it and create[00:16:59.947]
those individual steps. Here. We see these[00:17:02.057]
now in here.[00:17:03.057]
We contract and drop these in the browser so[00:17:05.237]
that we can move the order around.[00:17:07.517]
So we want to be out two slept these answers before[00:17:10.297]
we actually hit the complete button[00:17:14.356]
So now we’ve added some additional steps. We[00:17:16.487]
want to be able to run this, and we want to be out to[00:17:18.527]
test it on a number of different browses[00:17:21.207]
on also a number of different environments.[00:17:25.146]
In our case, we’re going to select our acceptance[00:17:27.317]
environment,[00:17:28.237]
and we’re going to run this on a selenium, huh?[00:17:30.957]
So under the hood,[00:17:32.356]
the eighty s platform is creating[00:17:34.626]
a number ofthe selenium scripts.[00:17:36.817]
And selenium is a way of creating automated[00:17:39.217]
tests in the browser or[00:17:41.267]
on the device.[00:17:42.757]
And this is a selenium hub is[00:17:44.916]
a place where you can run. There’s selenium scripts.[00:17:47.757]
In our case, we’re going to use browser stack.[00:17:49.856]
You can also use source lamps all your own[00:17:52.126]
selenium. Heart of your choice.[00:17:55.257]
We’re also going to select the browser Chrome.[00:17:57.596]
I’m running on a Windows ten machine[00:18:01.356]
when I hit run. Now, once this will do,[00:18:03.567]
also take those scripts that we’ve[00:18:06.023]
could find in our[00:18:08.114]
platform. Send those to[00:18:10.173]
the browser hub Selenium stack[00:18:12.624]
on will allow us to then[00:18:14.513]
test phase in the process[00:18:18.294]
if I go get a browser stack now I can see[00:18:20.884]
that there is a test now starting to start[00:18:23.034]
up. That could have been triggered[00:18:25.473]
even manually[00:18:26.743]
or via assists.[00:18:28.263]
Pipeline.[00:18:29.453]
The platform has the ability to connect[00:18:31.753]
into any platform such as Jenkins.[00:18:34.284]
Vsd s allow you to trigger[00:18:36.374]
these over on a new build[00:18:38.614]
on a new commit and run[00:18:40.743]
thes in the browser.[00:18:43.433]
Do you see here it runs each of the steps[00:18:45.483]
so starts the browser opens up particularly[00:18:47.753]
Eurail. It waits for the application[00:18:50.003]
to be ready, and then we’ll perform each of[00:18:52.054]
those steps.[00:18:53.763]
Now, once is complete, it will actually[00:18:56.034]
record that particular session for us.[00:18:58.564]
So we can view each of those steps in[00:19:01.314]
the video recording here.[00:19:03.364]
So we can see, for instance, festival. It will go[00:19:05.523]
to the euro.[00:19:07.064]
It will then form a log in to[00:19:09.233]
the application[00:19:12.963]
it will finally[00:19:14.953]
open up the page that we want Teo[00:19:17.374]
to use. So[00:19:24.233]
it’s going to select the particular container.[00:19:27.864]
It will then answer. A number of these questions[00:19:30.673]
have. Finally, it will hit the complete[00:19:32.844]
button so you can see it’s selected good now[00:19:35.213]
on. Then it will close down the browser.[00:19:38.364]
If we go back into the[00:19:40.513]
platform,[00:19:41.564]
we will see that it’s past the actual[00:19:43.584]
overall test,[00:19:44.963]
and we can also see a number of tests[00:19:47.144]
that have failed.[00:19:48.663]
If any point that particular test fails,[00:19:51.294]
it will record it what step it failed[00:19:53.644]
and also record and air a log as to[00:19:55.683]
why it failed.[00:19:57.013]
And finally, a screenshot of[00:19:59.074]
at what point in that particular[00:20:01.153]
process, it failed during the journey.[00:20:05.364]
And also you can see the recording embedded[00:20:08.203]
into the platform here[00:20:10.384]
so we can look run this. We see[00:20:12.513]
why that particular step failed[00:20:14.753]
in the journey.[00:20:22.784]
So we’ve seen how we can leverage thie[00:20:25.463]
application test way to be able[00:20:27.483]
to record functional tests and[00:20:29.634]
ensure that the requirements that[00:20:31.673]
the end uses build in the form of users. Stories[00:20:34.453]
are met using these particular test[00:20:36.604]
scripts. Obviously,[00:20:39.844]
testing is a really poor in part[00:20:41.874]
off the platform. But in order to[00:20:43.903]
be over to add new features[00:20:46.094]
on B over to scale your application[00:20:48.294]
over time, you need to make sure that[00:20:50.344]
you are handing maintain[00:20:52.534]
ability[00:20:53.473]
and that the quality of your application[00:20:55.993]
is overall. Going[00:20:58.144]
to be easy enough so that you can add[00:21:00.354]
new features on DH add[00:21:02.584]
re factoring over time,[00:21:05.554]
and to do that, we use the[00:21:07.824]
rental. So this is the application[00:21:09.844]
quality monitor,[00:21:11.534]
and this does static analysis[00:21:13.544]
off your application models so[00:21:15.624]
it checks it for how well built[00:21:17.854]
Overall you’re you are maintaining[00:21:20.284]
your application[00:21:21.364]
on it will give it a five star rating[00:21:23.784]
based on Isis Standard.[00:21:25.983]
It would check for things like volume, duplication,[00:21:29.094]
unit size unit complexity and[00:21:31.213]
give each of these a five star rating[00:21:33.644]
and then give you an overall rating. Is the hell[00:21:35.673]
well built your application is.[00:21:37.884]
You should always try to aim for a four star[00:21:40.003]
rating. This enables you to have[00:21:42.473]
loose coupling and labels you to[00:21:44.503]
add new features over time much[00:21:46.673]
easier than it would be if it was a three[00:21:48.923]
star or a two star maintain ability.[00:21:53.483]
On the right. Inside here, you can see a maintain[00:21:55.614]
ability trends. So every day[00:21:57.854]
it will check your application using[00:22:00.453]
the Mende ex model s decay so it’ll[00:22:02.523]
connect using the[00:22:04.094]
stick, pull all the information about[00:22:06.344]
your application model.[00:22:07.827]
It will convert it into a pseudo coat,[00:22:10.667]
and then it will compare it against thousands[00:22:12.907]
of applications built in different[00:22:15.178]
technology types. So it might be[00:22:17.188]
in pi thin. It might be in Ruby, it[00:22:19.278]
might be in PHP[00:22:21.428]
and it will give you an overall rating[00:22:23.458]
based on those thousands of applications.[00:22:27.347]
And we could see over time how we’re improving[00:22:29.617]
in those individual components, whether it be[00:22:31.698]
maintain ability, volume, duplication[00:22:33.758]
and so on. We[00:22:36.327]
can see down here how we’re actually[00:22:38.678]
improving or no improving[00:22:41.347]
compared to the last change we made.[00:22:43.637]
So we see here. We’ve made some improvements in[00:22:45.768]
terms of our defecation, but we’ve made[00:22:48.087]
some units size[00:22:50.008]
decreases.[00:22:52.228]
So as we’re going through, we consistently make[00:22:54.518]
an improve[00:22:55.428]
this application.[00:22:57.127]
It also gives us a good idea as[00:22:59.288]
to how well our developers of in[00:23:01.357]
organization are developing.[00:23:03.448]
Are they using the best standards and best[00:23:05.498]
practices in terms ofthe[00:23:07.228]
building and using snippets and reusable[00:23:09.647]
components, or are they building[00:23:11.768]
a mess that’s going to be difficult to[00:23:13.827]
maintain going forward?[00:23:18.407]
The maintain ability dashboard gives us information[00:23:21.317]
as to the makeup[00:23:23.317]
off our application.[00:23:24.867]
So what type of technology are[00:23:26.988]
we using? We get more points if we’re using[00:23:29.298]
more mend its compared Teo using[00:23:31.298]
Java or HTML song.[00:23:33.827]
He also gives us information like a duplication[00:23:36.607]
in its size and gives these in information[00:23:39.627]
easy to use graphs.[00:23:42.807]
The trend section lets you see over time[00:23:45.498]
and compare certain snapshots to see[00:23:47.748]
how well we’re improving.[00:23:49.428]
So we compare, For instance, last year[00:23:51.498]
to this year and see overall,[00:23:54.008]
Are we improving or are we[00:23:56.048]
getting worse?[00:23:57.928]
This gives us a really good idea. As[00:24:00.278]
Teo overall, are[00:24:02.278]
we consistently making sure that[00:24:04.288]
our APP is maintainable on? The quality[00:24:06.758]
of it is is good.[00:24:11.472]
The metrics table allows us to look[00:24:13.532]
at our application from the top[00:24:15.742]
down, so allows us to see[00:24:18.022]
information about, for instance, from[00:24:20.153]
a system level. How many[00:24:22.153]
lines of code[00:24:23.542]
are we developing?[00:24:25.313]
These lines of code, as I mentioned, are based on Suda[00:24:27.623]
Coates. There’s no actual physical code,[00:24:30.673]
but it also gives us a good idea[00:24:32.913]
as to how many man months it would[00:24:34.992]
take to rebuild this particular application.[00:24:38.373]
So it’s based on all of these applications.[00:24:40.813]
They’ve taken from different technologies,[00:24:43.093]
and they’ve come to a baseline as to how long it[00:24:45.093]
would take to rebuild it.[00:24:46.972]
Now these moments are different. If you’re building[00:24:49.282]
in men Nick’s, because we are ten times[00:24:51.313]
faster than a traditional technology.[00:24:55.673]
When you drew down on an application[00:24:58.303]
you can see for each of the modules[00:25:00.462]
and sections were in your application, how[00:25:02.692]
that breaks down[00:25:04.022]
the handyman months. Would it be for each[00:25:06.083]
of those modules? How many comments,[00:25:08.202]
how many lines of code and how many elements[00:25:10.633]
you have within[00:25:13.772]
when we true down fervor in each of these[00:25:15.923]
modules,[00:25:16.972]
we can see the[00:25:18.833]
essentially the pseudo code. But behind[00:25:21.853]
each of those pages, Mike[00:25:23.863]
Flows or these entities.[00:25:26.373]
This is how men it’s built out its applications[00:25:28.772]
that uses these visual models to[00:25:30.932]
build out your maps.[00:25:32.593]
And this is a visual representation[00:25:34.813]
here in the suit, coat off a particular[00:25:37.182]
mike flow,[00:25:38.173]
so we can see it has an activity which is creating[00:25:40.512]
a variable importing and XML[00:25:43.002]
creating a[00:25:44.762]
import mapping.[00:25:47.373]
What it will do is use this so that you can compare[00:25:49.853]
it against other Mike Flows or[00:25:51.992]
other pages or other applications.[00:25:57.153]
The change snapshot section allows you to compare[00:25:59.653]
snapshots from today to yesterday and[00:26:01.673]
so on. The violations[00:26:03.752]
tap here allows us to see what have[00:26:06.002]
we been down marked off.[00:26:07.792]
So why are we not getting that five star[00:26:09.803]
rating? And what can we do to[00:26:11.803]
improve that?[00:26:13.593]
So here we can see we have some[00:26:15.843]
units size violations. So this[00:26:17.923]
might be because we have too many[00:26:19.942]
items on a page. It could be that[00:26:22.012]
we have an entity with lots and[00:26:24.012]
lots of attributes. So that’s not good[00:26:26.133]
practice to do. We should always break those[00:26:28.133]
up. It will show us duplications.[00:26:31.073]
So where On certain pages on[00:26:33.123]
Mike Flows, we have applications[00:26:35.452]
and also it will give us violations[00:26:37.512]
if we have bad coupling.[00:26:39.353]
So if we have modules that are[00:26:41.432]
not loosely coupled, it[00:26:43.502]
will be a ll give us negative[00:26:45.813]
marks and allow us to then[00:26:47.942]
improve those over time.[00:26:50.042]
But it not only does men next models, it[00:26:52.093]
will also look your CSS you’re html[00:26:55.032]
java JavaScript if you’ve added[00:26:57.432]
into the module.[00:26:59.542]
So here we can see we have some java, which[00:27:01.952]
actually is fairly identical.[00:27:04.272]
There’s several sections in here that[00:27:06.383]
we should actually look[00:27:08.573]
to re factor in the process.[00:27:13.542]
Funny, the last section. I want to showcase[00:27:16.343]
his thie dependency graphs[00:27:18.942]
so the dependency grafts looks out.[00:27:21.093]
Your application is a hole[00:27:22.843]
on each of those modules and how[00:27:25.113]
those a couple together.[00:27:27.143]
So you notice there’s a number of lines in between[00:27:29.442]
these and for each of[00:27:31.462]
theme modules. It will check whether[00:27:33.803]
those dependencies on those[00:27:35.942]
couples couplings between those modules[00:27:38.373]
are good or bad.[00:27:40.103]
So here we can see we’ve got some bad coupling[00:27:42.492]
because it’s using certain[00:27:44.782]
activities modules,[00:27:47.163]
and it’s not using those[00:27:48.863]
in a reusable way.[00:27:50.942]
That’s why it’s highlighted in red,[00:27:52.853]
and we can then start to go in and fix those.[00:27:57.042]
So has mentioned all of this. Information[00:27:59.482]
that is getting about these application[00:28:01.762]
models is provided by the model[00:28:04.163]
s decay[00:28:05.542]
on the model. S Decay is something that we[00:28:07.553]
will feature in our next weapon on which[00:28:09.553]
will be about open, extensive bility.[00:28:11.803]
It’s a powerful feature of the platform[00:28:14.492]
that allows you to do several things[00:28:16.692]
with it allows you to import, to[00:28:18.972]
export, but also do analysis[00:28:21.182]
off those models.[00:28:26.222]
So hopefully in the last twenty minutes or[00:28:28.282]
so off this demo, I’ve been out. Which should[00:28:30.373]
demonstrate to you some of the capabilities[00:28:33.333]
that make up the men, Dex software quality.[00:28:36.153]
And we’ve been able to demonstrate, in[00:28:38.242]
particular the eighty s platform[00:28:40.553]
on the platform.[00:28:44.923]
So I hope you have enjoyed this low[00:28:47.143]
coat Webinar[00:28:49.123]
with