The OpenSees software framework uses object-oriented methodologies to maximize modularity and extensibility for implementing models for behavior, solution methods, and data processing and communication procedures. The framework is a set of inter-related classes, such as domains (data structures), models, elements (which are hierarchical), solution algorithms, integrators, equation solvers, and databases. The classes are as independent as possible, which allows great flexibility in combining modules to solve simulation problems for buildings and bridges, including soil and soil-structure-foundation interaction, and most recently including reliability computational modules.