At least one non-transitory computer-readable storage medium having encoded thereon computer-executable instructions for causing a computer system programmed thereby to perform a method comprising:
- receiving one or more viewing concepts of a software system;
- identifying one or more viewing instances comprising one or more concept instances or descendants of the one or more concept instances, the one or more concept instances or descendants of the one or more concept instances associated with at least one of the one or more viewing concepts or one or more sub-concepts of the one or more viewing concepts;
- and
- assigning layer indices to the one or more viewing instances based on one or more associated viewing instances relationships for use in generating a visualization of the one or more viewing instances and/or the one or more viewing instances relationships, the visualization generated for rendering on an output device in communication with the computer system, wherein at least one of the one or more viewing instances relationships are inbound uses relationships;
- wherein the assigning layer indices to the one or more viewing instances comprises:
- a) initializing a current layer index value;
- b) selecting at least one unindexed viewing instance having no inbound uses relationships associated with at least one other unindexed viewing instance, wherein the selecting the at least one unindexed viewing instance comprises removing a cycle condition if respective of unindexed viewing instances have at least one inbound uses relationship associated with at least one other unindexed viewing instance;
- and
- c) assigning the current layer index value to the selected at least one unindexed viewing instance;
- wherein the removing the cycle condition comprises iteratively selecting at least one viewing instances uses relationship associated with at least one unindexed viewing instance until at least one unindexed viewing instance has no inbound uses associated with at least one other unindexed viewing instance based on viewing instances uses relationships associated with unindexed viewing instances minus the at least one selected viewing instances uses relationship or until viewing uses instances relationships with unindexed viewing instances have been selected at least once.