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.