Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Технология программирования и основные этапы ее развития

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ. ОСНОВНЫЕ ПОНЯТИЯ И ПОДХОДЫ

Технологией программирования называют совокупность методов и средств, используемых в

процессе разработки программного обеспечения. Как любая другая технология, технология

программирования представляет собой набор технологических инструкций, включающих:

• указание последовательности выполнения технологических операций;

• перечисление условий, при которых выполняется та или иная операция;

• описания самих операций, где для каждой операции определены исходные данные,

результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п. (рис.

1.1).

Кроме набора операций и их последовательности, технология также определяет способ

описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки.

Различают технологии, используемые на конкретных этапах разработки или для решения

отдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процесс

разработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий

решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход,

определяющий совокупность методов, используемых на разных этапах разработки, или

Методические материалы, инструкции, нормативы и стандарты, критерии оценки результатов
методологию.

 

       
 
   
Результаты в стандартном представлении  
 

 


Рис. 1.1. Структура описания технологической операции

Чтобы разобраться в существующих технологиях программирования и определить основные

тенденции их развития, целесообразно рассматривать эти технологии в историческом контексте,

выделяя основные этапы развития программирования, как науки.

Первый этап - «стихийное» программирование. Этот этап охватывает период от момента

появления первых вычислительных машин до середины 60-х годов XX в. В этот период

практически отсутствовали сформулированные технологии, и программирование фактически было искусством. Первые программы имели простейшую структуру. Они состояли из собственно

программы на машинном языке и обрабатываемых ею данных (рис. 1.2). Сложность программ в

машинных кодах ограничивалась способностью программиста одновременно мысленно

отслеживать последовательность выполняемых операций и местонахождение данных при

программировании.

Появление ассемблеров позволило вместо двоичных или 16-ричных кодов использовать

символические имена данных и мнемоники кодов операций. В результате программы стали более

«читаемыми».

Создание языков программирования высокого уровня, таких, как FORTRAN и ALGOL,

существенно упростило программирование вычислений, снизив уровень детализации операций.

Это, в свою очередь, позволило увеличить сложность программ.

Революционным было появление в языках средств, позволяющих оперировать

подпрограммами.

 

(Идея написания подпрограмм появилась гораздо раньше, но отсутствие средств поддержки

в первых языковых средствах существенно снижало эффективность их применения.)

Подпрограммы можно было сохранять и использовать в других программах. В результате были

созданы огромные библиотеки расчетных и служебных подпрограмм, которые по мере надобности

вызывались из разрабатываемой программы.

Типичная программа того времени состояла из основной программы, области глобальных

данных и набора подпрограмм (в основном библиотечных), выполняющих обработку всех данных

или их части (рис. 1.3).

 

Слабым местом такой архитектуры было то, что при увеличении количества подпрограмм

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

Например, подпрограмма поиска корней уравнения на заданном интервале по методу деления

отрезка пополам меняет величину интервала. Если при выходе из подпрограммы не предусмотреть

восстановления первоначального интервала, то в глобальной области окажется неверное значение

интервала. Чтобы сократить количество таких ошибок, было предложено в подпрограммах

размещать локальные данные (рис. 1.4).

 

Сложность разрабатываемого программного обеспечения при использовании подпрограмм

с локальными данными по-прежнему ограничивалась возможностью программиста отслеживать

процессы обработки данных, но уже на новом уровне. Однако появление средств поддержки

подпрограмм позволило осуществлять разработку программного обеспечения нескольким

программистам параллельно.

В начале 60-х годов XX в. разразился «кризис программирования». Он выражался в том, что

фирмы, взявшиеся за разработку сложного программного обеспечения, такого, как операционные

системы, срывали все сроки завершения проектов [8]. Проект устаревал раньше, чем был готов к

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

завершены.

Объективно все это было вызвано несовершенством технологии программирования. Прежде

всего стихийно использовалась разработка «снизу-вверх» - подход, при котором вначале

проектировали и реализовывали сравнительно простые подпрограммы, из которых затем пытались

построить сложную программу. В отсутствии четких моделей описания подпрограмм и методов

их проектирования создание каждой подпрограммы превращалось в непростую задачу,

интерфейсы подпрограмм получались сложными, и при сборке программного продукта

выявлялось большое количество ошибок согласования. Исправление таких ошибок, как правило,

требовало серьезного изменения уже разработанных подпрограмм, что еще более осложняло ситу-

ацию, так как при этом в программу часто вносились новые ошибки, которые также необходимо

было исправлять... В конечном итоге процесс тестирования и отладки программ занимал более 80

% времени разработки, если вообще когда-нибудь заканчивался. На повестке дня самым

серьезным образом стоял вопрос разработки технологии создания сложных программных про-

дуктов, снижающей вероятность ошибок проектирования.

Анализ причин возникновения большинства ошибок позволил сформулировать новый подход

к программированию, который был назван «структурным» [19, 23].

<== предыдущая лекция | следующая лекция ==>
Краткая историческая справка | 
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 376; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.