1. A method for creating a service composition, the method comprising: receiving, by one or more processors, a plurality of software modules, wherein each software module performs part of a service requested by one or more users on a network; collecting, by one or more processors, one or more attributes and one or more dependencies for each of the plurality of software modules, wherein: the one or more attributes are information that describe one or more properties of a respective software module and includes one or more of the following: composability, sub-function, dependency type, and composition type; and the one or more dependencies are information that describe one or more reliances of a respective software module and includes one or more of the following: pre-deployment condition, post-deployment condition, composability type, and composability attribute; appending, by one or more processors, information about the one or more attributes and the one or more dependencies to each respective software module; storing, by one or more processors, each of the plurality of software modules with the, respective, appended information in a database, wherein the database is a knowledge base, and wherein one or more reports are generated that include a collection of the plurality of software modules with the, respective, appended information; and creating, by one or more processors, a service composition comprised of a combination of the plurality of software modules, based on the appended information and the service requested by the one or more users on the network.