 Hello everyone, welcome to this session. I am Priyanka Bidla and today we are going to see about model driven engineering. At the end of this session students will be able to explain model driven engineering and explain the transformations of model driven development. These are the contents of this video lecture. Basically we will concentrate on these points. Before moving towards to model driven engineering pause this video and you have to think for a while and recall types of system model. Those are already we studied in previous lectures. There are four types of system model. First context model, then interaction model, then structural model and last is the behavioral model. Now we see the classification of system model in detail. System model is divided into four types. Again these types have its subtypes. So first context model it shows how the system being model is placed in an environment with other system. It has no types. Then second type interaction model it may be user or system model. It involves user inputs and outputs and interaction between the systems being developed. It has two types. First use case modeling and second sequence diagram. Then third type is structural model. Structural models of software display that make up the system and their relationships. It has three types class diagram generalization and aggregation. Then last type is behavioral model. This model shows the behavior of the system and it has two types data driven modeling and second event driven modeling. Now we will move towards to our actual point that is model driven engineering. Model driven engineering is an approach to software development where models rather than programs are the principal outputs of the development process. Then these programs that execute on a hardware or software platform and then generated automatically from the models. It is during this process of translating the design to the code level that there is the potential for errors known as bugs in the software to come out. Mainly in model driven engineering all the parties work together within a single model keeping errors to a minimum. It raises the level of abstraction in software engineering so that engineers no longer have to be concerned with programming language or the specifics of execution platforms. Model driven engineering and model driven architecture are often seen as the same thing. Model driven engineering has a wider scope than the model driven architecture. MDA is nothing but model driven architecture focuses on the design and implementation stages of software development whereas MDE that is model driven engineering is concerned with all aspects of the software engineering process. Let us see model driven architecture. Model driven architecture is a model focus approach to software design and implementation that uses a subset of UML models to describe a system. And here models at different levels of abstractions are created from a high level platform independent model that is PIM. It is possible to generate a working program without manual involvement. The MDA method recommends that three types of abstract steam model should be produced. Now we see the transformations of MDA that is model driven architecture. So in this there are three translators, three models that are computation independent model that is CIM then PIM means platform independent model and the third one that is platform specific models that is PSM. A computation independent model CIM that models the important domain abstractions used in the system. CIMs are sometimes called domain models. You may develop several different CIMs then reflecting different views of the system. So CIM views specific guidelines and human intervention indicated by a stick figure will be needed for the future is given to the translator. For example there may be a security CIM in which you identify important security abstractions such as a benefit and a role and a patient record CIM in which you describe abstractions such as patients consultations and etc. So the translator provide the information to the PIM. Then a platform independent model that models the operation of the system without reference to its implementation. The PIM is usually described using UML models that show the static system structure and how it responds to internal and external events. There is some specific patterns and rules are decided then this is given to the next translator. Then second translator provides the information to the PSM. Platform specific models which are transformations of the platform independent model with a separate PSM for each application platform. In principle there may be layers of PSM with each layer adding some platform specific detail. As I have said transformations between these models may be defined and applied automatically by software tools. These transformations language specific patterns are given to the translator. This also shows a final level of automatic transformation and the transformation is applied to the PSM to generate executable code that runs on the design designated software platform. At the time of writing automatic CIM to PIM translation is still at the research prototype stage. It is intended to support an interactive approach to development and so can be used within agile methods. Transformations can be completely automated and a complete program generated from a PIM then in principle MDA could be used in agile development as no separate coding would be required for that. This is the part of MDA executable UML. The fundamental concept behind model driven engineering is that completely automated transformation of models to code should be possible. To achieve this to construct graphical models whose semantics are well defined add information to graphical models about the ways in which the operations defined in the model are implemented. This is possible using a subset of UML2 called executable UML or X UML. UML was designed as a language for supporting and documenting software design not as a programming language. They introduced useful notations such as use case diagrams that help with the design but which are too informal to support execution. Three types of model first domain model then class model and third state model. So domain models these are defined using UML class diagrams that include objects attributes and associations. Then class models in which classes are defined along with their attributes and operations. Then third that is state model in which a state diagram is associated with each class and it is used to describe the life cycle of the class. These are the references for this video lecture. Thank you.