Hello guys. I am Nikhil Gupta and today's topic is software models and their implementation, we saw many parts of software engineering last time. We saw 8 parts of software engineering planning to deploy. We mostly don’t follow all these parts. We have to create different software according to different customer demands, so as per customers demand we need to choose different models for our application development, okay, so the first and the most simple model is waterfall model.
Now our waterfall model looks something like stairs, as we are going down by stairs so it is very simple. In this, we first gather requirements and then accordingly create a design, and gathering requirement means planning, so first planning then designing after that implementing design then verify it and then maintenance, in maintenance our deploy and monitor is done, both things are merged and then it is named as maintenance, now let’s understand what is this model ? and why was there a need to create this model ? and why didn’t we use our 8 points methods here, okay.
So if a customer comes to me and demands of making a simple calculator, okay so what is the work of calculator? It is only used for multiplication, division, subtraction and addition, so here my work is very simple and if I follow all my 8 steps in this, if I will start with planning it will take long time and then I will start coding then I will deploy it and build it then monitor it and then I will do related marketing, and all these process will be very time consuming okay, so you may notice this thing that we don’t need to follow all these steps for a simple calculator, so for such projects we will not use that model, we will use different model that is known as waterfall model okay. So the waterfall model is generally used for very short projects, such projects which you have to submit in less time and second once the project is done you don’t have to make changes for a long time okay, if you have such a project then you can use the waterfall model.
Now what happens in waterfall model, is first you will get the requirements and then you start with designing once it is completed you will show it to customer that your product looks like this after completion, and once the client confirms it , you will start implementing it and then after completion of whole project you will show it to customer and ask him to verify whether it is working properly or not. After that you submit your project, now in that project if the customer wants some changes then you can do it as maintenance, costing him extra charge. done, so this model is used for short projects, okay.
If my project is short then I can use waterfall model but if my project is big but it is similar to that only in which I just have to create it once and submit it, and for those projects we use rapid action model which is also known as rad in short, so rad model is also similar to waterfall model but in that what happens is, we differentiate it in different parts, now those parts can be called as features also or modules also okay, so what happens in rapid action development is you will follow the same process that of waterfall but in that you will have different branches, means for example we have facebook if you have to create facebook through rad then what will you do? In previous example as we divided our project between 5 different people, like 1 person will work on login page and second person will handle wall page and third person will handle friends page and fourth person will look into profile page, so in this way we divided our program in four different features after that those four person will work on that project and when the work will be completed we will merge it and deploy, so this whole process is known as rad, rapid action deployment or rapid action development and in this process your coding will be very fast okay, and this process you will use when you have to complete any code quickly and then you don’t have to provide maintenance okay, so at such time you will use rapid action development .
Now if such a project comes which is big and will consume a lot of time to create and you have time okay, so for such projects you will use a spiral model, now what is this spiral model? Normally spiral model looks like spring…, so process is same but in that what happens is you start your project and make plans of your big project, here if I take another example of amazon which can deliver anything, so here I will start planning and I created a small part according to that now here what will happen? We don’t need to submit the whole application here, we already know our application will take time to get ready and the application is also big and its demand is not much in the market right now, for such applications you can use a spiral model.
In this you will first create a small application very basic in which only one feature will be given okay, so you started with planning, then you did risk analysis and then you created its prototype and after that the whole process of building it, deploying it, and after finishing this whole process you created its version 1 which we gave to user, so here our 1st round finishes but it is not completed yet it will move little further and again this whole process will start, again we will start with planning and then we will check, now in between this one more thing comes that is review, so here we will take customers reviews as in, do they want any changes in our version 1, if there are some changes to be done then you will take that changes into consideration and start planning, then analysis and then you will start with coding, and after testing, maintenance you will release a new version which will be version 2 okay, so here you can see this will be used when we know our application is going to be big and second thing our customer has demands, it is not specified means even we don’t know what customer wants and customer also don’t know what they want, so at such times you will create a small thing according to customer’s requirement, then if customer asks to make some changes then you will change accordingly, so the best part of this model is if any customer in future changes any feature then you can easily do that okay, so in spiral model if any requirement of client is changing then you can easily handle it, but if you are using waterfall model or rapid action development model then in this models ,once your process starts you will not be able to go back, means the customer will get the product according to its demand but it can be used when customer’s demand is static means not changing, and if customer’s demand is dynamic then you will use rad model, and if you give it to customer then you have to rework a lot in its maintenance okay, so that’s why if you are facing any one problem then you can use the spiral model, so through this spiral model you can see, we do not know what is customer’s demand and in this our whole work is fixed okay.
You have to start with planning, and while planning if there is any demand then it’s good but if we move further from that planning part and move on to risk analysis phase or we are creating its prototype or we are building the application, and if that time we get any demand then we will not make any changes in that okay, now in this what is happening, a whole cycle is running when this cycle will end after that only another part will start from planning, so here if customer has any problem then he needs to wait till new version, so this is its disadvantage okay, so in order to remove this disadvantage another model came into existence that is agile model okay.
So ,here the name agile model itself specifies that it can dissolve in any situation okay, so if customer is changing its demand then no problem, if any problem is arising and we need to relaunch it then also it is possible, so what happens in this is if you see the model carefully it looks like circle only, but in that it is not necessary that your first part means my first circle is in motion means planning is done, designing is done, and development is also done but at that time if there some other demand of customer then what will happen? The another circle will start from there only it will not wait for the first circle to end, means you can start you second part straight away and then it will be added to the coding part okay, means in agile model if any difficulty is coming that can be easily handled and even if customer is changing its demand then that can also be easily handled okay.
The biggest difference between spiral model and agile model is, that in agile model we don’t have anything related to risk whereas in spiral model risk management is very important, so here when we start spiral model we start from smallest things, so that time we don’t pay attention to many things, and as we proceed further we realize that we need to add some more things in that and every time you add something new then you have to analyse everything like time, cost and how many developers are required and how many are available? Will you be able to create this whole project? You need to analyse each and everything again whereas in an agile model this is not the case.
In agile model you do need to check planning and all, but in this if demand changes then we handle that in next plan okay, in this model risk analysis does not play much role means this is not for such software in which risk is higher, this model can be used for such software where you have to quickly develop it and give, customer demands he wants software in 1 or 2 days, so during such situations you can use agile model but it will work only with low risk project, if your project is risk prone then you cannot use agile model, in such cases you need to use spiral model, as it has totally separate part dedicated to risk management and that is its speciality, okay.
Now after the agile model the latest one is devops, now as our course is also devops now what is the difference between devops and other models of software engineering? devops is not a model in itself it can be used along with agile and with spiral also, so devops is just a way of working ,it is not a model, but normally for devops a personal model has also been created because mainly as we discussed there are total 8 steps, so mostly all those 8 steps are merged and steps are reduced and separated according to company’s demand based on that.
So devops is divided in total 8 parts now what is its specialty? If customer is changing its demand then no issue , devops can easily handle that, but in this if you look carefully , its cost estimation will be always high, means if your project is small and you want to use devops then you need to first get the cost estimate, like can I use devops in this project? Is it worth it? if you use devops for small project you will find it very costly, so if project is small then better to go with rapid action development and waterfall model, they both are good choice and if they both do not work then in such case another model is also available for short term projects, we call that as prototype model.
So in prototype model what happens is, you will first make a prototype of any application and after that it works something like this, you will gather data first, then you will quickly make a design and after that based on design you will start coding and give it to customer okay, now after that if customer asks you to make some changes then you will change accordingly and then change the design and create new prototype and gave it to customer again for verification, once customer says yes it is perfect and then we will start with its actual design, and after that we will start with testing coding and then it will proceed like waterfall model okay, so this prototype model will be used when customer’s requirement is not static and you don’t want to go on high cost, it is small project so at this time for such cases you will use prototype model .
So devops as model is very good but it is bit costly also, every model has its own advantages and disadvantages as we discussed now in all the model so I will again tell you what are the advantages of devops so in this no matter how complicated the code is you will not face any problem with security or development and you will not even face any problem with planning and all the customers will also be handled easily, the only disadvantage of this project is you will require more people and you need to monitor all the steps and coding so it is widely used model today in market.
If you have any comments or questions regarding this course then click on the discussion button given below this video and post it there, and you will be able to discuss the course with learners.
Thank you.
Share a personalized message with your friends.