1. A method for providing a representation of a software, the method comprising: receiving semantic concern defining information; populating at least one semantic concern, in response to the received semantic concern defining information; and associating between multiple semantic elements in response to semantic relation information, if semantic relation information was previously received, wherein associating is performed by constructing a plurality of models having model elements; executing a graphic interface on a computing device to display a graphic representation of the models; constructing semantic queries to validate the models; detecting a re-evaluation event; responsively to the re-evaluation event making a revision of the graphic representation to conform the at least one semantic concern to the re-evaluation event; automatically or semi-automatically, using the computing device, conforming the models with the revision of the graphic representation, updating the semantic queries in compliance with the conformed models; and executing the updated semantic queries to determine whether the software violates a predetermined validation rule.