Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИЧЕСКИЕ РАБОТЫ ПО ОСНОВАМ ИНЖЕНЕРИИ.doc
Скачиваний:
133
Добавлен:
09.02.2016
Размер:
1.51 Mб
Скачать

1.2.3. Послереволюционный период

Революция была успешной - в исторически кратчайшие сроки технология программиро­вания оформилась как инженерная дисциплина, и некоторые ее положения повсеместно были внедрены в практику. Результаты проявились незамедлительно - средняя произво­дительность труда в программировании увеличилась в несколько раз. Повысилась и на­дежность, за счет развития практики систематического тестирования. Кризис разрешился. Развитее технологии программирования продолжалось, но уже не революционным, а эво­люционным путем. Взятые за основу, идеи 60-х годов развивались и совершенствовались. Структурное программирование переросло в объектно-ориентированное, на смену водо­падным моделям процесса пришли итерационные, метод хирургической бригады дал на­чало целому спектру моделей команды разработчиков. Но эти подходы не были революционно новыми, они улучшали и совершенствовали уже известное 4.

Однако время не стоит на месте. Аппаратное обеспечение стремительно прогрессирует. Сфера применения компьютеров расширяется все больше. Уже сейчас без них нигде нель­зя обойтись, компьютеры применяются повсеместно. Пока еще слово «компьютер» ассо­циируется у среднего жителя нашей планеты с образом персонального компьютера, с эк­раном и клавиатурой, а программирование ассоциируется с программированием на персо­нальном компьютере и для персонального компьютера. Но это только пока. В самое бли­жайшее время компьютеры из устройств, которые используются очень часто и во многих местах, превратятся в устройства, которые используются везде и всегда. Речь идет о том, что сейчас называется встроенными системами. Персональные компьютеры выпускаются миллионами штук в год. Встроенные системы выпускаются миллиардами штук в год, а будут выпускаться многими миллиардами! И все эти устройства требуют для своей рабо­ты программного обеспечения. Не следует думать, что программировать эти устройства легко. Напротив. Уже сегодня возможности компьютера, скрытого в вашем мобильном телефоне, превосходят возможности того компьютера, которым пользовался Дейкстра, когда писал свое знаменитое письмо. Вполне вероятно, что консервативного усовершен­ствования старых идей, которого пока хватало для организации программирования персо­нальных компьютеров, уже не хватит для организации программирования необозримого парка встроенных систем. Тогда технологию программирования ждут новые, действи­тельно революционные изменения. Необходимо быть готовым к этому. Подчеркнем, что предлагаемая классификация - не более чем мнемоническая схема для удобства запоминания и анализа. Она не раскрывает причин изменений в технологии про­граммирования.

4 Из всего спектра технологий программирования, появившихся за последнее время, только для аспекто-ориентированного программирования трудно указать предтечу в пионерских работах конца 60-х начала 70-х годов. Все остальные «новинки» последних лет - прямые аналоги либо хорошо забытых, либо малоизвестных работ прошлых лет.

1.3. Типы программных проектов

Множество программ неоднородно - спектр реальных и возможных программных систем очень широк. Программы можно классифицировать по множеству различных факторов. Например:

  • тип программно-аппаратной платформы, на которой выполняется программа: встроенная систем, настольное приложение, сетевой сервис;

  • размер программы (измеренный в байтах, командах, операторах, строчках кода или иных единицах);

  • число пользователей: однопользовательская программа «для себя», внутренняя программа организации, программный продукт общего пользования;

  • регулярность использования: разовая программа, регулярно используемая про­грамма, постоянно работающая программа;

  • источник разработки: заказная разработка, инициативная разработка, конкурсная разработка;

  • предметная область: критически важная программа специального применения, при­ложение для автоматизации бизнес-процессов, демонстрационный прототип.

Этот список можно продолжать и продолжать, причем как в длину, указывая новые фак­торы, так и в ширину, указывая новые значения факторов. Огласить «весь список» очень трудно.

Важно, что при проведении проектов по разработке программ разных типов целесообраз­но использовать различные технологии. Программу управления ракетой разрабатывают не так, как информационную систему отдела кадров. Очень часто апологеты конкретных технологий, особенно новых, еще не зарекомендовавших себя широко, смело утверждают, что их технология «лучшая в мире». Очень может быть, что новая рекламируемая техно­логия действительно сейчас лучшая для того типа программных проектов, для которого она была придумана. Но совершенно невероятно, чтобы она оказалась действительно лучшей для всех типов программных проектов, везде и на все времена. При описании технологий программирования необходимо указывать типы программных проектов, для которых данная технология применима - то есть область применимости.