Modularidade (Letra B):
"Modularidade é a manifestação mais comum da separação por interesses. O software é dividido em componentes separadamente especificados e localizáveis, algumas vezes denominados módulos, que são integrados para satisfazer os requisitos de um problema.
Já foi dito que “modularidade é o único atributo de software que possibilita um programa ser intelectualmente gerenciável” [Mye78]. Software monolítico (um grande programa composto de um único módulo) não pode ser facilmente entendido por um engenheiro de software."
Encapsulamento (Letra D):
"O princípio de encapsulamento de informações [Par72] sugere que os módulos sejam “caracterizados por decisões de projeto que ocultem (cada uma delas) todas as demais”.
Em outras palavras, os módulos devem ser especificados e projetados de modo que as informações (algoritmos e dados) contidas em um módulo sejam inacessíveis por parte de outros módulos que não necessitam de tais informações, disponibilizando apenas os itens que interessam aos outros módulos.
Encapsulamento implica que uma modularidade efetiva pode ser obtida por meio da definição de um conjunto de módulos independentes que passam entre si apenas as informações necessárias para realizar determinada função do software"
--
Engenharia de Software - 8ª Edição - Roger Pressman , página 234