--- Video Title: Software Design Approaches Description: Software Design Approaches Watch more Videos at https://www.tutorialspoint.com/videotutorials/index.htm Lecture By: Mr. Arnab Chakraborty, Tutorials Point India Private Limited --- In this session, we are going to define the software design approaches. So, here we shall discuss two different types of design approaches. So, here are two generic approaches for software designing. One is the top-down design and another one is the bottom-up design. So, let us go through them one by one. So, at first we are going for this top-down design. We know that a system is composed of more than one subsystems and it contains a number of different components and further this subsystems and components may have their own set of subsystems and components and creates hierarchical structure in the system. So, software system is the umbrella under which you are having different components and subsystems and those components and subsystems may have further subsup components and subsup subsystems. So, in this way we are getting one hierarchical structure of the software design. So, top-down design takes the whole software system as one entity and then decomposes it at it to achieve more than one subsystems or component based on So, in case of top down design, we shall consider the software itself as at the root of the hierarchical structure and then it will get divided into certain subsystems and then they will go for further divisions of them. Each subsystem and component is then treated as a system and decomposed further and this process keeps on running until the lowest level of system in the top down hierarchy is achieved. So, that means, each and every subsystem whatever you are getting as a leaf at that very level, they will be also treated individually as a system and they will go for further bifurcations. Top down design starts with a generalized model of the system and keeps on defining more specific parts of it. When all the components are composed the whole system because it comes to an existence. So, it indicates that how far should you go for sub such subdivisions. So, it is telling that the systems and keep on defining more specific parts on it. So, that is why if we find that this particular subsystem is consisting of more than multiple different parts, more than one parts or multiple different parts, then you can think of going for further bifurcations. And when all the components are composed the whole system comes into our existence. So, top down design is more suitable when the software solution needs to be designed from the scratch and specific details are unknown. In those cases, this top down approach will be useful. Now, next one is about bottom-up design. The bottom-up design model starts with the most specific and basic components. So, at first we shall consider that we are having about basic components. And it proceeds with composing higher level of components by using this basic or lower level components. So, this basic components will be comprising with a It keeps creating higher level components until the desired system is not evaluated as the one single component. So, this process will be continued until the basic system that is the main system whatever we are intending is becoming a single component. With each higher level the amount of abstraction is also getting increased. Bottom-up design we are continuing with that. So, bottom-up strategy is more suitable when a system needs to be created from some existing system. And where the basic primitives can be used in the newer system. So, if the system is pre-existing then you can go for this bottom-up approach. So, both top-down and bottom-up approaches are not practical individually. Instead, a good combination of them will be used in our basic software design approaches. So, in our software design approaches we have considered two things. One is a top-down approach and the one is the bottom-up approach. Thanks for watching this video.