1. A method of managing software in a datacenter comprising operating a computer to perform steps of: storing a data construct representative of at least a portion of a datacenter having a distributed computer architecture, the data construct comprising a first component portion, a second component portion, and a relating portion, the first component portion comprising a first list of components within the datacenter, the second component portion comprising a second list of components within the datacenter, and the relating portion comprising a list of dependencies that signify a relationship between each component in the first list of components and a corresponding component in the second list of components; receiving a request to change software on a target component in the datacenter; receiving target information representative of the target component; receiving a software bundle that includes the software to be installed on the target component, metadata that includes information used to describe a relationship between the software and components, and one or more probe scripts that discover a component dependency not listed in the relating portion; updating the list of dependencies to include the component dependency not listed in the relating portion; identifying, by a processor, the target component within at least one of the first component portion and the second component portion; identifying, within the relating portion, one or more dependencies that associate the target component with one or more other components listed within at least one of the first component portion and the second component portion, the one or more dependencies including the component dependency discovered by the one or more probe scripts; using the metadata and the identified one more dependencies to identify, by the processor, any affected components from among the one or more other components listed within at least one of the first component portion and the second component portion, wherein the affected components reflect a set of possible conflicts that occur due to the installing of the software; when the set of possible conflicts cannot be resolved, outputting information for the set of possible conflicts that cannot be resolved for one or more of the affected components; and when the set of possible conflicts are resolvable, enabling the change of the software to be performed on the target component.