Рассмотрим классификацию програмного обеспечиния компьютера.
ПО (програмное обеспечение) и программы - это синонимы. На чаще ПО называют целые классы программ, т.е. определённый вид программ, а также систему или пакет из определённого класса.
Если речь идёт о конкретной программе, то её обычно называют приложением. Т.е. приложение - это отдельно взятая программа, обычно из прикладного ПО. Например Ворд - это приложение из пакета взаимосвязанных программ "Майкрософт Офис". Для средств программирования этот термин как правило не используют.
Теперь об утилитах. Утилитой обычно называют вспомогательную программу для решения узких специализированных задач, связанных с настройкой оборудования или для обслуживания операционной системы. Например, программу, которая специально предназначена для переименования группы файлов, можно назвать утилитой. То же - для форматирования. Или программу для настройки параметров работы видеокарты, можно говорить, как об утилите, если функциональность этой программы достаточно узкая. Или программу для смешивания цветов палитры тоже можем назвать утилитой. Утилиты могут использоваться для диагностики оборудования и работы операционной системы, обслуживания носителей информации (например, флешек), обслуживания сети, настройки какого-то переферийного оборудования и т.д. Вообще, совершенно чёткую границу между утилитой и иными сервисными программами, относящимися к системному ПО, сложно провести. Бывают случаи, когда разработчики называют свою программу утилитой, но по признакам известным им только одним. Таким образом, утилита - это узкоспециализированн<wbr />ая программа чаще всего из системного ПО, но иногда и прикладного.
Теперь плагины. Плагины - это дополнения к основной программе - их надстройка, позволяющая расширять функцинальность программы. Например, широко распространены плагины для различного рода прикладных программ. Очень много плагинов у графического редактора Фотошоп, у разных видео и звуковых редакторов. Плагины повсеместно используются и в браузерах. Т.е. плагины можно отнести к прикладному вспомогательному ПО, которые являются дополнительными програмами к некоторой базовой программе и расширяющие её возможности. И особенностью плагинов является то, что самостоятельно они не работают, а только будучи подключенными к базовой программе. Поэтому плагин - это подключаемый модуль к основной программе, расширяющий её функциональность.