Abstract:
Software architectures may include many types of elements, such as classes, functions, databases, queries, and users. An architecture may be the subject of many types of analysis, such as discovery of architecture features and design choices, rendering according to (e.g.) a visual layout or as a hierarchical data set, validation and testing of a chosen design, and evaluation by systems analysis tools. However, the information documenting the software architecture is often organized in a disjointed manner, such as in a set of release documentation, inline comments in source code, notes recorded in version control systems, and contact databases. Instead, the software architecture may be represented as a set of nodes of various node categories interconnected by links of different types. The representation may then be utilized in many types of analysis, such as visualization, transformation, and element analysis by complex systems analysis tools.