 Okay, so just to give you an example and this will be on an abstract level But just to discuss the idea of what we can do with a model. I have drawn a small state machine diagram Very similar to the UML state machine notation that basically shows an application where you handle customers It could be a web page. It could be a standalone desktop application and We have a login so once the The state machine starts we have a login and we show the customer list And we can log out then we're done and then we have two options at the moment We can add a customer through the ad operation and then we go back to the page and we can delete the customer Which requires an additional confirm step and then if it's Confirmed we go back to the customer list if it's a board that we also go back and of course You would expect that if we confirm the deletion then there is a customer less here if we abort it It's the same if we add a customer it should actually add a customer in the list So what could we theoretically do with this? So first of all, of course, we have to be able to understand this So it has to follow a certain notation and we have to have this in the modeling file So that we for example can get all the states. We know what the relations are between the states We know the actions So we can start processing this automatically now what we could do is for example generate a web page We could say that each of these boxes each state is a single page So then we can just generate the standard html code for each page. We might have a certain layout We're using for example diffs. So we're using bootstrap to to lay out this. We have certain colors We could do all of that automatically Then we have the relations between the web pages So we know at least that there are some kind of ad action that brings us from the initial page to the next And if we have a standardized way to go from one page to another for example a menu We could just automatically add this to the menu like a button that says add and if it's clicked it goes here same for delete then and Then we already have a page flow So we have certain things that are related to each other and then of course we need to work with the actual data So that's then a bit more tricky because we need to know what is a customer does a customer What kind of attributes does a customer have and then we need to have That generated automatically so this would actually require to have another model of the customer. Can we Have that if we have another model of the customer We could even generate this page automatically add all the fields that the customer requires Welly date them because we know what is required. What is not? We know what the data types are maybe so we can also check that and then We could actually add that automatically similar with deletion if we if we know the underlying data structure. We could actually make a delete page show the customers and Make sure they're deleted and have a confirmed dialogue that could be a standard dialogue There's an obvious issue with this especially if we talk about websites and that's nowadays that UX user interfaces in general are getting Quite customized and they're quite important. So maybe you don't want to generate that and that's completely fine It's just to give you an example what you could do But if we for example talk about a desktop application and I've earlier talked about information systems In these kind of systems, you also have these flows. They're very common and very often you just go for the standardized dialogue Instead of trying to come up with a fancy user experience, but at least you can recognize how the Flow is similar in different use cases. So that's one thing we could do here. We can actually generate the page flow Another thing we could do is try to generate test cases so We know the states and we know if a certain action happened where we should get so we can actually generate test cases for that We could go in each of these relations for each of the relation We could generate one test that says if you're in this state and you call add then you should end up in this state If you're in the confirm step and you actually confirm then there should be an additional customer in the list And you should end up in this state you can do more complex things You can do more integration system tests by actually going through several states so if you're in the customer list and you Press delete on one customer and you confirm then you should end up back in this state and the customer should be deleted What do we need for this? First of all again, of course, we have to have a formal diagram. We need to be able to process this We need to be able to Know in which state we are so that we can actually write our assertions we need to know okay, we are in this state or in this state and We need to be able to call these actions So we need to know how do these names here actually map to real events in the system For example, is this just a method call that we can call we need to know that and then finally We need certain instrumentation to get the testing done properly For example, if we want to test the step from delete customer to confirm We need a way to set up the test automatically that we end up in the delete step that we don't start here first So these are the kind of things we might need might want to have in our instrumentation and our testing framework But if you have this and you can of course reach this then this is a very nice tool to Automatically generate tests that can be quite complicated I mean you can go two or three times through this loop or you can do this action and then delete If you write all of these tests by yourself, it will take you a lot of time and it's very repetitive So there's a good chance that you do copy and paste errors, for example, and then Maybe as a final use case here This is a diagram. You need to roughly know what this means You need to know the notation, but we could also generate documentation from this So given that we understand this diagram that we know what languages is that it's a formal file We can just generate text that describes this for example, you can write down requirements that say if you're showing the customer list and The user chooses delete you should show the customers delete customer screen instead So you could generate these kind of documentation Artifacts automatically for example, if you need to have some kind of documentation for the user or for some other stakeholder So just based on this state machine diagram, you could do a lot of different things By having a model compared to when you just have an image So that's the power of it. If you really want to know how these things work in detail I will make one example in another video where I actually show some some modeling and coding how we can generate things But this is definitely also beyond the scope of the course So for that you would have to take an advanced course on model-based or model-driven engineering where you really go into the techniques of How is this done in practice?