Этапы развития инструментальных средств
Классификация инструментальных средств
Инструментальные средства разработки программ
Хороший инструментарий – важный фактор повышения производительности труда разработчиков программ. Классификация инструментальных средств разработки ПО:
Вид инструментов | Назначение: | Примеры |
Методологические (когнитивные) | Усиливают интеллектуальные возможности разработчиков, давая им общие способы (методы, подходы, стратегии) для решения задач. | Структурное программирование, структурное кодирование... |
Усиливающие (аугментивные) | Увеличивают "силу" практиков при различных видах деятельности (специфицировании, реализации, верификации, тестировании, сопровождении...). | Компиляторы, редакторы, отладчики, анализаторы... |
Нотационные (языковые, графические) | Обеспечивают среду выражения и связи идей, концепций, структур, процессов, отношений... | Языки программирования, блок-схемы, диаграммы... |
Этап 1: до середины 50-х.
Основные затраты связаны с кодированием (в машинных кодах). Появляются автокоды (языки с использованием мнемонических обозначений команд) и трансляторы с них (ассемблеры).
Реализуются возможности раздельной компиляции и перемещаемости программ. Появляются загрузчики и компоновщики программ.
Этап 2: середина 50-х – середина 60-х гг..
Увеличиваются размеры программ, выявляется разрыв между понятиями проблемных областей и машинно-ориентированных языков. Появляются различные языки высокого уровня (алгоритмические, универсальные):
· Fortran (1954-1957);
· Algol-60 (1958-1960);
· Cobol (1959-1961);
· Basic (1964);
· PL/1 (1964);
· Lisp (1959)
и трансляторы с них (компиляторы). Изобретаются и опробуются почти все основные типы данных, операции над ними, управляющие структуры и способы изображения их в программах, различные варианты параметризации подпрограмм.
Этап 3: середина 60-х – начало 70-х гг.
Резко увеличиваются размеры ПО, происходит переход к коллективному характеру работ. Повышаются требования к ПО вследствие перехода к товарному производству.
Изменяется соотношение затрат на разработку ПО (40% и более тратится на отладку, проектирование и документирование), кодирование – один из самых простых видов работ. Используются и создаются "большие" языки программирования – ПЛ/1, АЛГОЛ-68, СИМУЛА-67, обобщающие и интегрирующие ранее найденные решения.
Появляются развитые системы программирования с оптимизирующими и отладочными трансляторами, макробиблиотеками, библиотеками стандартных программ, специализированных текстовыми редакторами, средствами анализа и диалоговой отладки в терминах входного языка. Разрабатываются развитые операционные системы, первые СУБД, многочисленные системы автоматизации документирования, системы управления программной конфигурацией (отслеживания модификаций и сборки версий ПО).
Этап 4 (“этап кризиса в развитии ПО”): начало 70-х–середина 70-х гг.
Несмотря на развитие инструментальных средств, производительность труда программистов не растёт. Более того, вследствие повышения требований к ПО и нелинейного роста его сложности, производительность труда падает. Срываются сроки разработки ПО, растёт его стоимость, непредсказуемо его качество, не срабатывают традиционные методы (предоставление дополнительных человеческих и материальных ресурсов), что характеризуется как "кризис ПО".
Получают признание методологии структурного программирования (Дейкстра, 1968г.), формируются основы технологии программирования (язык Паскаль (Н.Вирт), 1971г.).
Этап 5:1976г.– наше время. Этап посткризисного развития инструментальных средств
1976г. – публикация работы Боэма, где вводится понятие жизненного цикла ПО и указывается, что основные затраты приходятся не на разработку, а на сопровождение программ.
Языки программирования:
· C (начало 1970-х, впервые достаточно полно описан в 1978 г.);
· Modula-2 (1978 г., развитие – язык Oberon (1988));
· Ada (1980);
· Prolog (1972 г., распространение получил с 1980 г.);
· Smalltalk (1970-е годы, в 1980 был представлен как Smalltalk-80);
· C++ (начало 1980-х гг., название – 1983, в привычном сегодня виде существует с 1990 г.);
· Java (версия Java 1.0 – 1996 г., Java 2.0 – 1998, Java 5 – 2004...);
· C# (1998–2001, версия 1.0 – 2000–2002, версия 2.0 – 2003-2005, версия 3.0 – 2004–2008, версия 4.0 – 2008–2010).
Развиваются интегрированные инструментальные среды разработки программ. Получает признание объектно-ориентированный подход к проектированию и программированию.