OATAO is an open access repository that collects the work of Toulouse researchers and makes it freely available over the web where possible. This is an author-deposited version published in : http://oatao.univ-toulouse.fr/ Eprints ID : 15305The contribution was presented at :http://www.icsoft.org/?y=2015 Abstract: Traditional software development relies on building and assembling pieces of software in order to satisfy explicit requirements. Component-based software engineering simplifies composition and reuse, but software adaptation to the environment remains a challenge. Opportunistic composition is a new approach for building and re-building software in open and dynamic contexts. It is based on the ability to compose software components in a bottom-up manner, merely because they are available at a point and not because the construction of a specific software has been demanded. In this way, software emerges from the environment. This paper analyzes the advantages of such an approach in terms of flexibility and reuse, along with the requirements that an infrastructure supporting opportunistic composition should satisfy: it should be decentralized, autonomic, and dynamically adaptive. The state of the art of automatic software composition shows that few solutions are actually bottom-up, and that none of them fully satisfies the requirements of opportunistic composition.