IOC is stand for ( Inversion of Control ) which is used in software engineering for describing a design which is further used for writing custom block of a computer program for receiving the flow of control as generic and reusable library. IOC in software architecture all the custom design is IOC as compared to traditional procedural programming procedure and the custom code and the purpose of the program calls into reusable libraries to take care the generic tasks. But in IOC all the design code are reused with custom code. IOC is used to increase modularity of the program. IOC is mostly used in applications via object-oriented programming and other programming paradigms. It is totally opposite with dependency inversion which concerns itself with decoupling dependencies between high-level and low-level layers through shared abstractions.