Этап 4 (“этап кризиса в развитии ПО”): начало 70-х–середина 70-х гг.
Этап 3: середина 60-х – начало 70-х гг.
Этап 2: середина 50-х – середина 60-х гг.
Этап 1: до середины 50-х.
Краткий исторический обзор развития инструментальные средства разработки ПО
Технологические стандарты.
OLE (Object Linking and Embedding) - позволяет создавать приложения, включающие в свой состав объекты, полученные из других приложений.
ODBC (Open DataBase Connectivity) - обеспечивает единый интерфейс доступа к различным базам данных на различных платформах.
MAPI (Messaging Application Program Interface) - обеспечивает независимость приложений от систем связи в режиме телекоммуникаций, работает по принципу драйвера.
Основные затраты связаны с кодированием (в машинных кодах). Появляются автокоды (языки с использованием мнемонических обозначений команд) и трансляторы с них (ассемблеры).
Реализуются возможности раздельной компиляции и перемещаемости программ. Появляются загрузчики и компоновщики программ.
Увеличиваются размеры программ, выявляется разрыв между понятиями проблемных областей и машинно-ориентированных языков. Появляются различные языки высокого уровня (алгоритмические, универсальные):
- Fortran (1954-1957);
- Algol-60 (1958-1960);
- Cobol (1959-1961);
- Lisp (1959);
- Basic (1964);
- PL/1 (1964).
и трансляторы с них (компиляторы). Изобретаются и опробуются почти все основные типы данных, операции над ними, управляющие структуры и способы изображения их в программах, различные варианты параметризации подпрограмм.
Резко увеличиваются размеры ПО, происходит переход к коллективному характеру работ. Повышаются требования к ПО вследствие перехода к товарному производству.
Изменяется соотношение затрат на разработку ПО (40% и более тратится на отладку, проектирование и документирование), кодирование – один из самых простых видов работ. Используются и создаются "большие" языки программирования – ПЛ/1, АЛГОЛ-68, СИМУЛА-67, обобщающие и интегрирующие ранее найденные решения.
Появляются развитые системы программирования с оптимизирующими и отладочными трансляторами, макробиблиотеками, библиотеками стандартных программ, специализированных текстовыми редакторами, средствами анализа и диалоговой отладки в терминах входного языка. Разрабатываются развитые операционные системы, первые СУБД, многочисленные системы автоматизации документирования, системы управления программной конфигурацией (отслеживания модификаций и сборки версий ПО).
Несмотря на развитие инструментальных средств, производительность труда программистов не растёт. Более того, вследствие повышения требований к ПО и нелинейного роста его сложности, производительность труда падает. Срываются сроки разработки ПО, растёт его стоимость, непредсказуемо его качество, не срабатывают традиционные методы (предоставление дополнительных человеческих и материальных ресурсов), что характеризуется как "кризис ПО".
Получают признание методологии структурного программирования (Дейкстра, 1968г.), формируются основы технологии программирования (язык Паскаль (Н.Вирт), 1971г.).