tehnologia (1018792), страница 3

Файл №1018792 tehnologia (Г.С. Иванова - Учебник - Технология программирования) 3 страницаtehnologia (1018792) страница 32017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Это, в своюочередь, позволило увеличить сложность программ.Революционным было появление в языках средств, позволяющихоперировать подпрограммами. (Идея написания подпрограммпоявилась13гораздо раньше, но отсутствие средств поддержки в первыхязыковых средствах существенно снижало эффективность ихприменения.) Подпрограммы можно было сохранять ииспользовать в других программах.

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

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

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

Вотсутствии четких моделей описания подпрограмм и методов их проектированиясоздание каждой подпрограммы превращалось в непростую задачу, интерфейсыподпрограмм получались сложными, и при сборке программного продуктавыявлялось большое количество ошибок согласования. Исправление таких ошибок,как правило, требовало серьезного изменения уже разработанных подпрограмм, чтоеще более осложняло ситуацию, так как при этом в программу часто вносились новыеошибки, которые также необходимо было исправлять... В конечном итоге процесстестирования и отладки программ занимал более 80 % времени разработки, есливообще когда-нибудь заканчивался. На повестке дня самым серьезным образом стоялвопрос разработки технологии создания сложных программных продуктов,снижающей вероятность ошибок проектирования.Анализ причин возникновения большинства ошибок позволил сформулироватьновый подход к программированию, который был назван «структурным» [19, 23].Второй этап - структурный подход к программированию (60-70-е годы XX в.).Структурный подход к программированию представляет собой совокупностьрекомендуемых технологических приемов, охватывающих выполнение всех этаповразработки программного обеспечения.

В основе структурного подхода лежитдекомпозиция (разбиение на части) сложных систем с целью последующейреализации в виде отдельных небольших (до 40-50 операторов) подпрограмм. Споявлением других принципов декомпозиции (объектного, логического и т.д.) данныйспособ получил название процедурной декомпозиции.В отличие от используемого ранее процедурного подхода к декомпозиции,структурный подход требовал представления задачи в виде иерархии подзадачпростейшей структуры.

Проектирование, таким образом, осуществлялось «сверхувниз» и подразумевало реализацию общей идеи, обеспечивая проработку интерфейсовподпрограмм. Одновременно вводились ограничения на конструкции алгоритмов,рекомендовались формальные модели их описания, а также специальный методпроектирования алгоритмов -метод пошаговой детализации.Поддержка принципов структурного программирования была заложена в основутак называемых процедурных языков программирования. Как правило, они включалиосновные «структурные» операторы передачи управления, поддерживали вложениеподпрограмм, локализацию и ограничение об-15ласти «видимости» данных. Среди наиболее известных языков этой группы стоит назватьPL/1, ALGOL-68, Pascal, С.Одновременно со структурным программированием появилось огромное количествоязыков, базирующихся на других концепциях, но большинство из них не выдержалоконкуренции.

Какие-то языки были просто забыты, идеи других были в дальнейшемиспользованы в следующих версиях развиваемых языков.Дальнейший рост сложности и размеров разрабатываемого программного обеспеченияпотребовал развития структурирования данных. Как следствие этого в языках появляетсявозможность определения пользовательских типов данных. Одновременно усилилосьстремление разграничить доступ к глобальным данным программы, чтобы уменьшитьколичество ошибок, возникающих при работе с глобальными данными. В результатепоявилась и начала развиваться технология модульного программирования.Модульное программирование предполагает выделение групп подпрограмм,использующих одни и те же глобальные данные в отдельно компилируемые модули(библиотеки подпрограмм), например, модуль графических ресурсов, модуль подпрограммвывода на принтер (рис.

1.5). Связи между модулями при использовании данной технологииосуществляются через специальный интерфейс, в то время как доступ к реализации модуля(телам подпрограмм и некоторым «внутренним» переменным) запрещен. Эту технологиюподдерживают современные версии языков Pascal и С (C++), языки Ада и Modula.16Использованиемодульногопрограммированиясущественноупростилоразработку программного обеспечения несколькими программистами. Теперь каждыйиз них мог разрабатывать свои модули независимо, обеспечивая взаимодействиемодулей через специально оговоренные межмодульные интерфейсы. Кроме того,модули в дальнейшем без изменений можно было использовать в других разработках,что повысило производительность труда программистов.Практика показала, что структурный подход в сочетании с модульнымпрограммированием позволяет получать достаточно надежные программы, размеркоторых не превышает 100.000 операторов [10]. Узким местом модульногопрограммирования является то, что ошибка в интерфейсе при вызове подпрограммывыявляется только при выполнении программы (из-за раздельной компиляциимодулей обнаружить эти ошибки раньше невозможно).

При увеличении размерапрограммы обычно возрастает сложность межмодульных интерфейсов, и снекоторого момента предусмотреть взаимовлияние отдельных частей программыстановится практически невозможно. Для разработки программного обеспечениябольшого объема было предложено использовать объектный подход.Третий этап - объектный подход к программированию (с середины 80-х доконца 90-х годов XX в.). Объектно-ориентированное программирование определяется кактехнология создания сложного программного обеспечения, основанная напредставлении программы в виде совокупности объектов, каждый из которыхявляется экземпляром определенного типа (класса), а классы образуют иерархию снаследованием свойств [10, 24, 29].

Взаимодействие программных объектов в такойсистеме осуществляется путем передачи сообщений (рис. 1.6).Объектная структура программы впервые была использована в языкеимитационного моделирования сложных систем Simula, появившемся еще в 60-хгодах XX в. Естественный для языков моделирования способ представленияпрограммы получил развитие в другом специализированном языке моделирования языке Smalltalk (70-е годы XX в.), а затем был использован в новых версияхуниверсальных языков программирования, таких, как Pascal, C++, Modula, Java.Основным достоинством объектно-ориентированного программирования посравнению с модульным программированием является «более естественная»декомпозиция программного обеспечения, которая существенно облегчает егоразработку. Это приводит к более полной локализации данных и интегрированию их сподпрограммами обработки, что позволяет вести практически независимуюразработку отдельных частей (объектов) программы.

Кроме этого, объектный подходпредлагает новые способы организации программ, основанные на механизмахнаследования, полиморфизма, композиции, наполнения. Эти механизмы позволяютконструировать сложные объекты из сравнительно простых. В результатесущественно увеличивается пока-17затель повторного использования кодов и появляется возможность создания библиотекклассов для различных применений.Бурное развитие технологий программирования, основанных на объектном подходе,позволило решить многие проблемы. Так были созданы среды, поддерживающие визуальноепрограммирование, например, Delphi, C++ Builder, Visual C++ и т.д.

Характеристики

Тип файла
PDF-файл
Размер
7,85 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Учебник - Технология программирования
Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее