Most modern programming languages (such as C++ or Java) can be used simply as procedural languages.
However, doing so leaves the most powerful techniques unused...
...only a small fraction of the potential language benefits is gained.
Focus is on approaches to design that enable effective use of
data abstraction
object-oriented programming facilities
Such techniques are often called object-oriented design.
Black box way of thinking is typical in procedural programming: