
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