Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Стихийное программирование




Этот этап охватывает период от момента появления первых вычислительных машин до середины 60-х годов XX в. В этот период практически отсутствовали сформулированные технологии, и программирование фактически было искусством. Первые программы имели простейшую структуру. Они состояли из собственно программы на машинном языке и обрабатываемых ею данных
(рис. 1.2). Сложность программ в машинных кодах ограничивалась способ­ностью программиста одновременно мысленно отслеживать последовательность выполняемых операций и местонахождение данных при программиро­вании.

 

Появление ассемблеров позволило вместо двоичных или 16-ричных ко­дов использовать символические имена данных и мнемоники кодов опера­ций. В результате программы стали более «читаемыми».

Создание языков программирования высоко­го уровня, таких, как FORTRAN и ALGOL, суще­ственно упростило программирование вычисле­ний, снизив уровень детализации операций. Это, в свою очередь, позволило увеличить сложность программ.

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

гораздо раньше, но отсутствие средств поддержки в первых языковых средст­вах существенно снижало эффектив­ность их применения.) Подпрограммы можно было сохранять и использовать в других программах. В результате бы­ли созданы огромные библиотеки рас­четных и служебных подпрограмм, ко­торые по мере надобности вызывались из разрабатываемой программы.

Типичная программа того време­ни состояла из основной программы, области глобальных данных и набора подпрограмм (в основном библиотеч­ных), выполняющих обработку всех данных или их части (рис. 1.3).

Слабым местом такой архитектуры было то, что при увеличении коли­чества подпрограмм возрастала вероятность искажения части глобальных данных какой-либо подпрограммой. Например, подпрограмма поиска корней уравнения на заданном интервале по методу деления отрезка пополам меня­ет величину интервала. Если при выходе из подпрограммы не предусмотреть восстановления первоначального интервала, то в глобальной области ока­жется неверное значение интервала. Чтобы сократить количество таких оши­бок, было предложено в подпрограммах размещать локальные данные (рис. 1.4).

Сложность разрабатываемого программного обеспечения при использовании подпрограмм с локальными данными по-прежнему ограничивалась возможностью программиста от­слеживать процессы обработки данных, но уже на новом уровне. Однако появление средств под­держки подпрограмм позволило осуществлять разработку про­граммного обеспечения несколь­ким программистам параллельно.

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

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

Анализ причин возникновения большинства ошибок позволил сформу­лировать новый подход к программированию, который был назван «струк­турным».

 




Поделиться с друзьями:


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


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



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




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