Программирование - в широком смысле представляет собой все технические операции, необходимые для создания программы, включая анализ требований и все стадии разработки и реализации. В узком смысле - это кодирование и тестирование программы в рамках некоторого конкретного проекта.
Программное обеспечение (ПО) (software) - общий термин для обозначения «неосязаемых» (в отличие от физических) составных частей вычислительной системы. В большинстве случаев он относится к программам, выполняемым вычислительной системой, чтобы подчеркнуть их отличие от аппаратных средств той же системы. Этот термин охватывает как программы в символической записи, так и исполняемые формы этих программ. Все существующее ПО можно разделить на следующие классы:
для разработчиков: среды программирования; трансляторы и интерпретаторы; CASE-средства; библиотеки программ;
для конечных пользователей: текстовые процессоры; электронные таблицы; графические редакторы; решатели математических задач; обучающие и контролирующие системы; компьютерные игры; прикладные программы.
Прикладная программа (application program) - любая программа, способствующая выполнению задачи, возложенной на ЭВМ в пределах данной организации, и вносящая прямой вклад в реализацию этой задачи. Например, там, где на ЭВМ возложена задача контроля финансовой деятельности какой-либо фирмы, прикладной программой будет программа подготовки платежных ведомостей. В противоположность этому операционная система не является прикладной программой, так как не вносит прямого вклада в удовлетворение конечных потребностей пользователя.
Программная система представляет собой набор решений множества различных, но связанных между собой задач (ОС, СУБД). Более узкоспециализированные программы не называют системами (редактор текстов, компилятор и т. п.)
Жизненный цикл ПО (software life-cycle) - весь период времени существования системы программного обеспечения, начиная от выработки первоначальной концепции этой системы и кончая ее моральным устареванием.
Жизненный цикл (рис. 1) представляется в виде некоторого числа последовательных фаз, в определенных местах охватываемых обратными связями, когда может возникнуть необходимость повторения какого-либо одного или даже всех этапов разработки системы. Такая модель обеспечивает отражение итеративности* процессов существования ПО.
Итерация - повторение численного или нечисленного процесса, когда результаты одного или нескольких шагов являются входной информацией для следующего начального шага этого цикла. Как правило, такая циклическая процедура заканчивается при достижении заданных результатов, или после того, как результаты перестают меняться.
Термин «жизненный цикл ПО» используется в том случае, когда предполагается, что программы будут иметь достаточно большой срок действия, в отличие от экспериментального программирования, при котором программы обычно прогоняются несколько раз, а затем аннулируются.