 Hello everyone, I am Dr. Ganapa A. Waliker, works in the Department of Computing Science Engineering, All-Chain Institute of Technology, Shalapur. Today, I am going to give a lecture on model-based software engineering. At the end of this session, students will be able to explain and outline a software process model for the development of software products, as is the need of software lifecycle model. Before discussing different process models, let we will have a generic definition about software process model. Software process model is a descriptive and diagrammatic representation of the software lifecycle. A lifecycle model represents all the activities required to make a software product, transits through the lifecycle phases. It also captures the order in which these activities are to be undertaken. Different lifecycle models may map the basic development activities to phases in the different ways. So, software development lifecycle consists of different phases. Usually, it begins from requirement analysis, design, implementation, testing, evolution. Now, these are the different process models, waterfall model, phototopic model, evolutionary model, spiral model, agile model. Let we will discuss one by one. A waterfall model consists of following phases, visibility study, requirement analysis and specification, system design, coding and unit testing, integration and system testing, maintenance. Let us discuss one by one. Waterfall model begins from feasibility study in which the requirement analyst will ensure whether the proposed project is going to satisfy the objective of the customer and it is going to interact with or insist with existing software or ensure whether it is possible to implement with current technologies and a current hardware. Once it demonstrate as it is possible to implement, then requirement analysis begins. The requirement analysis, the requirement analyst gather the requirements of a software from the stakeholders of a project and then they will write those requirements into document either using formal language or a natural language and then they will pass to the verification mechanism in which that will be verified for the completeness and connectedness. So, once the SRS is ready, the design begins, the design actual solution will find out for the problem identified in the requirement analysis. The design being carried out by performing three activities. One is architectural design, detail design and eye level design. Once the design is done, the design document will verify for the completeness and errors. So, then once it is completed, it is passed to the coding. In the coding, the development engineers will write fresh lines of code and then convert the design into executable program. So, once the executable program is ready, then it will pass to the testing. In the testing, test engineer will ensure whether the developer project is as per the needs of the customer or not or it is going to satisfy the all the requirements of the or all the needs of the customer. So, once it is testing being done and it will deliver to the customer, once it is under operative mode, the maintenance engineer will keep in touch with customers and if any problem faced by the customer, that problem shall be incorporated into the system as a new requirement. And these are the advantages and disadvantages of the waterfall model. The advantages are simple to implement and over product of each phases of this waterfall model is verified, that is why it is very, very advantage and disadvantage of the waterfall model are premature freezing of the requirement analysis phase, early selection of hardware requirements, big bang approach and it is document-driven process. Freezing of the requirement analysis phase means the requirements are freezed once all the requirements are collected and means what? There is no scope for the addition of the new requirements. So, the unchange of the requirements are unrealistic for the new project, where there is no the existing system is available and second problem is early selection of hardware requirements. Freezing of the requirement analysis means selection of the hardware in early stage. The hardware selected in the early stage become old when final project is ready. Big bang in which the customer will get full complete project or they will not get anything and as we say we discuss the document is verified at the end of the each phase and it incurs some cost. So, now we will discuss about next model that is rapid prototyping model. This rapid prototyping model counters drawback of the waterfall model. The goal of the prototype model is to counter the limitations of the waterfall model and this model specifies that the working model or prototype system should be built before developing the final system is ready. This model is more suitable for projects where requirements are hard to determine in the first shot. This model is more suitable for large and complex projects for which there is no manual process or existing system to determine the requirements. So, prototyping model begins from the outline requirements for that outline requirement informal design being done, informal coding is done and informal testing is done. So, once the first prototype is ready that is exposed to the user comments and allow customer to play with it. When customers are experiencing this prototype they will give feedback about this prototype and that feedback includes what should be there, what should not be there and what are the additional features should be add. So, once they give the feedback that feedback will be considered as a input to the next prototype. So, before starting the next prototype, so again they will do analysis on the feedback given by the customer on the first feedback and then informal design is considered and then coding will be done and testing will be done and once the testing is done they will expose to the user comments. This will be continued until and unless the last prototype is going to be satisfy the most of the requirement of the customer. So, once it is finalized that requirement analysis is freezed. Once the requirement analysis is freezed then actual formal design will be begins and then the formal coding is done on the design and testing will be done to ensure whether the last prototype is as per the requirements of the customer or not. And these are the advantages and disadvantages of the prototyping model. The prototype which is developed is generally discarded after the system is being built, but the experience gained during the development of the prototype helped the design issues as expected from the customer. And second advantage is early availability of the software to the customer. Customers no need to wait until final project is available. If the first prototype is going to satisfy the minimum requirements of their business then they can use the first prototype as their working project. Then disadvantages, it is a more development cost as the prototype is being developed it is thrown away. Next one is it follows rapid prototyping model and it is a low quality software. Think and write which is the best software process model for the development of large software product. Pause the video now and answer the questions. What are the process model the suitable process to develop a large and complex industry strength projects? The evolutionary life cycle model. The evolutionary model is based upon the principle of incremental development of the functional unit then integrating it for the usable. And each incremental version of the product is fully functional software product providing more switches than it is previous version. The incremental model they are developed in different phases can be useful to the customers as they can be used as standalone units when they are treated independently. The incremental model begins with outline requirements that which are not in detail and then implementation design and analysis is being done on that first increment that is called initial version of the software project. So, once initial version being done it is exposed to the user experience when the users are working with first version or initial version they will give feedback about that particular initial version and that feedback will be considered as an requirement for the next version. And again design being done on the first increment implementation is carried out. And once the first increment is available that increment will be exposed to the user and now users are playing with this and when they are working with first increment they will give the feedback on this increment for the next increment. And this will be continued until and unless the last increment will satisfy all the needs of the customer. So, once the last increment is going to satisfy all the needs that will be considered as a final requirement or final project. So, it also having advantages and disadvantages. Advantages of this incremental model is the customer does not have to wait until the entire system is delivered. The better tested system as it went through several testing processes. The requirements considered in the first increment will tested most when it come to the final increment. It provides feedback for the better increment in the next increment as the previous increment will act as a reference to the next increment that is why it will be improving productivity. There is a lower risk of the overall project failure. So, if the last increment is get failed and customers are having all previous increments. The disadvantage of this evolutionary model is increment of this right size. There is a constant of the size of the increment usually it is about 20,000 lines of code and with this size it is very difficult to accommodate all the needs of the customer. The second one is R to identify common facility that are needed by all the increments. Usually development of increment begin with outline requirement that is not in detail. With not detail increments it is very difficult to define what language it required what are the technology required what are the adverts required etc. And these are the references I referred to prepare this puberty. Thank you.