Этапы развития инструментальных средств

Классификация инструментальных средств

Инструментальные средства разработки программ

Хороший инструментарий – важный фактор повышения производительности труда разработчиков программ. Классификация инструментальных средств разработки ПО:

Вид инструментов Назначение: Примеры
Методологические (когнитивные) Усиливают интеллектуальные возможности разработчиков, давая им общие способы (методы, подходы, стратегии) для решения задач. Структурное программирование, структурное кодирование...
Усиливающие (аугментивные) Увеличивают "силу" практиков при различных видах деятельности (специфицировании, реализации, верификации, тестировании, сопровождении...). Компиляторы, редакторы, отладчики, анализаторы...
Нотационные (языковые, графические) Обеспечивают среду выражения и связи идей, концепций, структур, процессов, отношений... Языки программирования, блок-схемы, диаграммы...

 

Этап 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).

Развиваются интегрированные инструментальные среды разработки программ. Получает признание объектно-ориентированный подход к проектированию и программированию.