1. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, cause the processor to compliance check a software application during a software development process, the compliance check comprising: receiving an object definition file defining a plurality of software application objects; generating a starting object hierarchy from the object definition file, the starting object hierarchy including a plurality of objects; creating an augmented object hierarchy from the starting object hierarchy by applying a first rule of a plurality of rules from a rule engine to the starting object hierarchy; applying each subsequent rule of the plurality of rules from the rule engine to the augmented object hierarchy, including: detecting one or more objects in the augmented object hierarchy based on at least one of an object type, an object location within the augmented object hierarchy, an object property or an object property value, for each object detected by the subsequent rule: determining whether to modify the detected object based on the subsequent rule, and modifying the detected object if so determined; determining whether to create one or more new objects based on the subsequent rule, creating the new objects if so determined, and adding the new objects to the augmented object hierarchy, one or more new objects comprising a software development process exception; and creating a new version of the augmented object hierarchy for use by the next rule; when all rules have been applied, generating a final object hierarchy from the augmented object hierarchy; and modifying at least one object definition in the object definition file to eliminate at least one software development process exception.