--- Video Title: Component Reusability Description: Component Reusability Watch more Videos at https://www.tutorialspoint.com/videotutorials/index.htm Lecture By: Mr. Arnab Chakraborty, Tutorials Point India Private Limited --- We are going to discuss component reusability. A component is nothing but maybe one small subprogram or a module which can work independently and can carry out one specific task. So, a component is a part of the software program code which executes an independent task in the system. And it can be a small module or a subsystem itself. So, as an example, if you consider the login procedures used in the web can be considered as a component. The printing system in software can be seen as a component of the software. Components have high cohesion of functionality. That means, all these instructions, statements which you be deciding within the component, they are having, they are very much related. So, cohesion is very high. And they also have the lower rate of coupling. That means, in between components, the coupling is very less. That means, they can work independently. That is, they can work independently and can perform tasks tasks without depending on the other modules. In object-oriented programming, the objects are designed, are very specific to their concern, and have fewer chances to be used in some other software. As each and every time, in case of object-oriented programming, the objects are the main thing and they are getting constructed, they are getting defined for some specific purpose. So, it is not very common that one object, object in one object-oriented application will be used in another object-oriented application. So, in modular programming, the modules are coded to perform specific tasks, which can be used across number of other software programs. So, there is a whole new vertical, which is based on reuse of software component. And is known as the component-based software engineering and in short, in abbreviated form, it is CBSE. So, that is the component-based software engineering. So, here we are having these components. That is another component. These two components can do the communication in between. And there are the other interfaces are there with the help of which other components can get connected. So, you can use that. You can see that multiple components are cooperating and communicating with each other and they are reusable in nature. So, reuse can be done at various levels. So, at first we are considering the application level, where an entire application is used as subsystem of a new system. So, entire application can be used as a component for a new system. Component level, where subsystem of an application is used. Modules level, that means, where the functional modules are reused. So, software components Components provide interfaces which can be used to establish communication among multiple different components. Now, reuse process. Two kinds of methods that can be adopted either by keeping requirements same and adjusting components or by keeping components same and modifying the requirements. So, try to get my point. So, two kinds of methods that can be adopted either by keeping requirements same and adjusting components or by keeping components same and modifying the respective requirements. So, here we are having this specified requirements. Then system will be designed according to the requirements given and specify the respective components required and then search suitable components. So, this searching will be done in And the components repository. If the components have been found, then it will be reused. And here, we are having incorporate components. So, in this way, we are giving you the phases through which the reuse process will be initiated. Recommend Specification. The functional and non-functional requirements are specified which a software product must comply to. So, we are having two types of recommends. One is a functional recommend and the other one is a non-functional requirement. We have discussed a lot on this in our previous videos. So, with the help of the existing system and user input or both. So, here we are having this requirement specifications. So, this requirements will be obtained from the users, from the clients, from the stakeholders in from this particular domain of the in the in which the problem or the software is going to get developed. So, from there will be having this requirement specifications. And here this requirements can be divided mainly into two categories, one is the functional requirements and another one is the non-functional requirement. So, next one is our design. So, this is also Also a standard SDLC process step, where requirements are defined in terms of software parlance. And basic architecture of system as a whole and its subsystem will get created. And that is the basic operation which you do in our design phase, where the basic architecture of the software and the respective subsystems are going to get created. Next one is our specify components. By starting the software design, the designers segregate the enter system into smaller components or subsystems. One complete software design turns into a collection of huge set of components which will be working together. And now we are having this search suitable components. So, the software component repository is referred by the designer to search for the matching component, whether it is existing or not, on the basis of the functionality and intended software requirements. So, depending upon that, the component will be searched in the component repository. If you get that one, then obviously you can reuse that one. Otherwise, we are supposed to develop it back again. So, incorporate components. All masked components are packed together to shape them as a complete software. So, in our discussion, we have done enough discussion on this component reusability. We have started our discussion on what is the component and how to use this component reusability in our software development process. Thanks for watching this video. TutorialsPoint.com Simply easy learning.