Download Visual Studio Community Edition:
https://visualstudio.microsoft.com/vs/community
Compare Different Versions of Visual Studio:
https://visualstudio.microsoft.com/vs/compare
IPO Diagram for Your Code (Application)
IPO Diagram visually shows/describes key inputs, Processes/Operations, and resulting outputs from those operations.

Ref: https://www.youtube.com/watch?v=a10a11oxjrA&pp=0gcJCdgAo7VqN5tD
For UML class diagram Concepts, please check:
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial
An example from the URL above:

In Object Oriented Design:
Ref: https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-aggregation-vs-composition/
Associations are relationships between classes in a UML Class Diagram i.e. How these classes are associated (in real world). Two types: Aggregation and Composition.
Aggregation and Composition are subsets of association meaning they are specific cases of association. In both aggregation and composition object of one class “owns” object of another class. But there is a subtle difference:
- Aggregation implies a relationship where the child can exist independently of the parent. Example: Class (parent) and Student (child). Delete the Class and the Students still exist.
- Composition implies a relationship where the child cannot exist independent of the parent. Example: House (parent) and Room (child). Rooms don’t exist separate to a House.
“Generalization is a mechanism for combining similar classes of objects into a single, more general class.”
“Specialization is the reverse process of Generalization means creating new sub-classes from an existing class.”
For OOP Concepts: Polymorphism, Encapsulation, Data Abstraction and Inheritance in Object-Oriented Programming