is a computer programming model that organizes software design around data, or objects, rather than functions and logic