Although Component-Based System (CBS) increases the efficiency of development and reduces the need for maintenance, but even good quality components could fail to compose good product if the composition is not managed appropriately. In real world, such as industrial automation domain, this probability is unacceptable because additional measures, time, efforts, and costs are required to minimize its impacts. Many general optimization approaches have been proposed in literature to manage the composition of system at early stage of development. This paper investigates recent approach es used to optimize software architecture. The results of this study are important since it will be used to develop an efficient optimization framework to optimize software architecture in next step of our ongoing research.