I'm quite confused about the following terms:
Software architecture
Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. It involves a series of decisions based on a wide range of factors, and each of these decisions can have considerable impact on the quality, performance, maintainability, and overall success of the application. (microsoft)
System architecture
A system architecture is a conceptual model that defines the structure, behavior, and more views of a system.1 An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system (wiki)
Class diagrams
In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations (or methods), and the relationships among objects. (wiki)
If I read these descriptions all of these describe the interactions between different modules of the application. However what are the differences between these?
What I think/tried to compare these terms:
- Class diagrams are not a form of system architecture, because the above description (
structure, behavior, and more views of a system
) implies that no implementation details are present in an architecture whereas class diagrams describe implementation and are probably more in the direction of design rather than architecture? - I think system architecture is an architecture which also includes extern interactions (like database) whereas software architecture focuses on the application itself?