Monolithic design
Generally, a monolithic design is given when a software provides its functionality centralised in one or just a few classes. Such classes are very powerful and typically easy to apply.
Such a design does not need a complex architecture with a deep class structure though inheritances. Developer typically will not have troubles to conceive the software as only a few elements must be studied in detail (exept the top-level class is very complex). Further, such an approach typically ensures fast results when applying the software. This is obtained as such implementations typically do not provide excessive functionality, instead, they are specialized on a limited count of features that may be applied easily.
However, in case of providing a lot of functionality such an approach may lead to unclear or sleazy code as there is no clear separation to other areas of the software. Further, it is hard to manipulate or change existing code, also extensions may be hard to realize. So, developers are well advised to implement more flexible code when a certain dimension of functionality is reached.
In visualization a software is called monolithic when abstract data, visual structures, and rendering routines are not separated explicity.
See also: polylithic design