1. A method for engineering software architectures with architectural aspects of a complex cyber physical system being captured in views comprising entities being related to each other and being related across various views, the method comprising: a) modeling, by graph-based modeling, the entities to be under analysis as nodes and relations between the entities as edges, wherein either no attribute or at least one attribute is assigned to the nodes and the edges, thereby mapping user input concepts into the nodes and the edges with the attributes and storing modeled graph data; b) specifying properties desired of the entities as constraints having to be satisfied; c) inputting at least one query and at least one constraint for the graph-based modeling; d) evaluating the at least one constraint by transforming one graph into at least one other graph and using provided implementations of graph algorithms; e) processing the at least one query against a current set of the stored graph data by using a graph-query-language; f) evaluating the inputted constraints on a set of nodes and edges against the current set of the stored graph data and providing on detecting constraint-violations callback functions specifying locations of the constraint-violations; and g) editing results of at least one of acts (a), (d), (e), or (f) for at least one of visualizing and outputting.