Черный ящик -- что это в программировании

Черный ящик (черный в смысле -- не прозрачный) -- это система (в т.ч. ПО), внутреннее устройство которой в рассматриваемой ситуации не важно, т.е. мы знаем что и из чего делает эта система, но не знаем/не хотим знать как она эта далает (не знаем "механизм" работы).

Примеры черных ящиков

  • Пусть в некоторой программной библиотеке есть некая функция, о внутренней реализации которой мы ничего толком не знаем (например, у нас нет исходного кода), знаем лишь способ её вызова и формат ответа (по сути это и есть сигнатура), так какая функция является для нас черным ящиком (т.к. её внутренняя логика не прозрачна для нас).
  • Черными ящиками для абсолютного большинства людей являются практически все технические устройства, которые они используют в своей жизни ;)

Метод черного ящика

Метод черного ящика -- подход, при котором изучаемая система рассматривается как черный ящик (в смысле указанном выше).

Такой подход применяется в случае, если:

  1. На данном уровне абстракции детали работы системы не важны.
  2. Детали работы невозможно или действительно очень трудно установить, например, в программах с закрытым исходным кодом или тех, чей код вообще не доступен (скажем, выполняются где-то на сервере и взаимодействовать с ними можно только посылая запросы по сети).