Условия возникновения программного обеспечения
Как известно, первые компьютеры, работающие под управлением программ, хранящихся в памяти, появились в 40 - 50-х гг. XX в. Вместе с ними встала новая задача, заключающееся в создании программ, и процесс, направленный на ее решение - программирование. Поэтому дальнейшее развитие вычислительной техники связано не только с совершенствованием компьютеров и их распространением, но и с развитием программирования.
Почти одновременно с появлением компьютеров произошло разделение разработчиков программ на два типа - прикладных и системных программистов. Но несмотря на такое разделение, эти типы очень тесно взаимосвязаны. Как никак интересы у них общие. Любая разработка требует всесторонних и взвешенных решений. Практически все этапы, связанные с созданием серьёзного программного обеспечения, обсуждаются на форумах, конференциях, проводятся митапы (встречи по интересам), где решаются все текущие детали.
К первому типу (прикладные программисты) вошли специалисты по прикладным отраслям (доменов) - математики, физики, экономики, образования, технологий. Они писали программы на языках высокого уровня (Cobol, Fortran) для решения вопросов, возникающих в области. Их деятельность называлась прикладным программированием.
Ко второму типу (системные программисты) вошли специалисты, от которых требовалось знаний доменов, поскольку они занимались автоматизацией процессов разработки программ. Системные программисты обычно писали программы в машинном коде или на языке ассемблера. Их деятельность называлась системным программированием. Совокупность прикладных и системных программ называется программным обеспечением.
В 60 - 70-х гг. XX в. были созданы высокопроизводительные вычислительные машины (скоростью около 1 млн., опер. / с БЭСМ-6 в CPCP i UNIVAC в США). С их появлением возникла возможность решения больших и сложных задач. Это, в свою очередь, потребовало разработки больших программ (от 100 тыс. До 1 миллиона строк).
С увеличением производительности, количества вычислительных машин и расширением сферы их применения, появились программы двух типов.
Программы первого типа создаются и продаются вместе с машинами (трансляторы, операционные системы, библиотеки подпрограмм).
Программы второго типа создаются по заказу и предназначаются для решения задач из различных предметных областей.
Таким образом, появился заказчик - организация, которая ставила задачу, назначала сроки, выделяла бюджет и оплачивала работу. В связи с этим очень быстро появилась задача - сопровождение программ и проблема - непонимание между разработчиком и заказчиком.
Вот, собственно, в таких условиях приходится работать программисту. Насыщенный и трудоёмкий процесс.