Студопедия

КАТЕГОРИИ:


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

Представление программы в виде взаимодействующих объектов

План лекции.

Основные принципы и этапы объектно- ориентированного программирования

Готика Италии.

Готика Испании.

Готика Германии.

Готика Англии.

Архитектура. Собор в Кентербери (1074 - 1495, 1503); Собор в Или (1083 - 1349); Собор в Винчестере (1079 - XV); Собор в Солсбери (1220 - 1260/1280); Собор в Уэллсе (1220 - XV); Собор в Глостере (1089 - XV); Собор в Личфильде (1220 - XIV); Собор в Линкольне (1192 - 1256/1320); Собор в Йорке (1230 - 1361/1370). Вестминстерское аббатство. Капелла Королевского колледжа в Кембридже (1508-1515). Капелла Вестминстерского аббатства (1503-1519). Капелла Виндзорского замка (1474-1483, своды – 1503-1519).

Миниатюра. Мэтью Парис ( ум. 1259): школа Сент Олбанс - «История англов» - «Historia Anglorum» (1250). Апокалипсис Дус - «Douce Apocalypse» (1270). Псалтырь королевы Марии (1310). Псалтырь Роберта де Лисля (1339).

Архитектура. Соборы: в Магдебурге (1209 - 1363); в Марбурге (1235 - 1283); в Трире (1245 - 1253); во Фрайбурге (XIII - XVI); в Страсбурге (сер. XIII - XV); в Кельне (1248 - 1350, XIX); в Ульме (1377 - конец XV). Кирпичная готика: Собор в Хорине (XIII); церковь Марии в Пренцлау, церковь Богоматери в Любеке.

Скульптура. Ю жный и северный порталы трансепта, западный фасад собора в Страсбурге. Скульптуры интерьера собора в Бамберге (до 1237). Бамбергский и Магдебургский всадники. П ортал собора в Магдебурге. Скульптура собора в Наумбурге: западный хор и леттнер. Деревянные распятия.

 

Архитектура. Соборы XIII века: в Бургосе, Толедо, в Леоне. Соборы XIV века: в Барселоне (начат в 1298), в Жероне (1312 -1347). Церковь Санта Мария дель Мар (1329 – 1384) в Барселоне. Соборы XV и XVI века: в Овиедо, Севилье, Саламанке, Сарагосе, в Бургосе.

Скульптура. « Портал славы» в ц. Сантяго да Компостелла. Фасады к афедрального собора. Скульптура соборов в Бургосе в Толедо, в Барселоне. Надгробные памятники собора в Бургосе.

Архитектура. Церкви Сан Франческо в Ассизи (1228 - 1253), Сан Франческо в Болонье (после 1236), Санта Мария Новелла во Флоренции (1283 - XV), Санта Кроче во Флоренции (1295). Кафедральные соборы в Сиене (1196 - XIV), в Орвието (1285 - 1310), во Флоренции (Санта Мария дель Фьоре, 1296 - XV), в Милане (1387 - 1452, XIX).

Монументальная живопись. Росписи ц. Сан Франциско Ассизского в Ассизи. Живопись Сиены и Флоренции.

1.1. Представление программы в виде взаимодействующих объектов

1.2. Абстрагирование

1.3. Ограничение доступа

1.4. Модульность

1.5. Иерархия

1.6. Наследование

1.7. Типизация

1.8. Параллелилизм

1.9. Устойчивость

В теории программирования ООП определяется как технология создания сложного программного обеспечения, которая основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса), а классы образуют иерархию с наследованием свойств [2].

Взаимодействие программных объектов в такой системе осуществляется путем передачи сообщений (рисунок 3.1).

Примечание. Такое представление программы впервые было использовано в языке имитационного моделирования сложных систем Simula, появившемся еще в 60-х годах. Естественный для языков моделирования способ представления программы получил развитие в другом специализированном языке моделирования - языке Smalltalk (70-е годы), а затем был использован в новых версиях универсальных языков программирования, таких как Pascal, C++, Ада, Modula.

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

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

Основной недостаток ООП – некоторое снижение быстродействия за счет более сложной организации программной системы.

В основу ООП положены следующие принципы: абстрагирование, ограничение доступа, модульность, иерархичность, типизация, параллелизм, устойчивость.

Рассмотрим, что представляет собой каждый принцип.

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

Ограничение доступа – сокрытие отдельных элементов реализации абстракции, не затрагивающих существенных характеристик ее как целого. Необходимость ограничения доступа предполагает разграничение двух частей в описании абстракции:

интерфейс – совокупность доступных извне элементов реализации абстракции (основные характеристики состояния и поведения);

реализация - совокупность недоступных извне элементов реализации абстракции (внутренняя организация абстракции и механизмы реализации ее поведения).

Ограничение доступа в ООП позволяет разработчику:

· выполнять конструирование системы поэтапно, не отвлекаясь на особенности реализации используемых абстракций;

· легко модифицировать реализацию отдельных объектов, что в правильно организованной системе не потребует изменения других объектов.

Сочетание объединения всех свойств предмета (составляющих его состояния и поведения) в единую абстракцию и ограничения доступа к реализации этих свойств получило название инкапсуляции.

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

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

В ООП используются два вида иерархии.

Иерархия «целое/часть» – показывает, что некоторые абстракции включены в рассматриваемую абстракцию как ее части, например, лампа состоит из цоколя, нити накаливания и колбы. Этот вариант иерархии используется в процессе разбиения системы на разных этапах проектирования (на логическом уровне – при декомпозиции предметной области на объекты, на физическом уровне – при декомпозиции системы на модули и при выделении отдельных процессов в мулътипроцессной системе).

Иерархия «общее/частное» - показывает, что некоторая абстракция является частным случаем другой абстракции, например, «обеденный стол -конкретный вид стола», а «столы - конкретный вид мебели». Используется при разработке структуры классов, когда сложные классы строятся на базе более простых путем добавления к ним новых характеристик и, возможно, уточнения имеющихся.

Один из важнейших механизмов ООП – наследование свойств, в иерархии общее/частное. Наследование – такое соотношение между абстракциями, когда одна из них использует структурную или функциональную часть другой или нескольких других абстракций (соответственно простое и множественное наследование).

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

Использование принципа типизации обеспечивает:

· раннее обнаружение ошибок, связанных с недопустимыми операциями над программными объектами (ошибки обнаруживаются на этапе компиляции программы при проверке допустимости выполнения данной операции над программным объектом);

· упрощение документирования;

· возможность генерации более эффективного кода.

Тип может связываться с программным объектом статически (тип объек­та определен на этапе компиляции - раннее связывание) и динамически (тип объекта определяется только во время выполнения программы - позднее связывание). Реализация позднего связывания в языке программирования позволяет создавать переменные - указатели на объекты, принадлежащие различным классам (полиморфные объекты), что существенно расширяет возможности языка.

Параллелизм – свойство нескольких абстракций одновременно находиться в активном состоянии, т.е. выполнять некоторые операции.

Существует целый ряд задач, решение которых требует одновременного выполнения некоторых последовательностей действий. К таким задачам, например, относятся задачи автоматического управления несколькими процессами.

Реальный параллелизм достигается только при реализации задач такого типа на многопроцессорных системах, когда имеется возможность выполнения каждого процесса отдельным процессором. Системы с одним процессором имитируют параллелизм за счет разделения времени процессора между задачами управления различными процессами. В зависимости от типа используемой операционной системы (одно- или мультипрограммной) разделение времени может выполняться либо разрабатываемой системой (как в MS DOS), либо используемой ОС (как в системах Windows).

Устойчивость – свойство абстракции существовать во времени независимо от процесса, породившего данный программный объект, и/или в пространстве, перемещаясь из адресного пространства, в котором он был создан.

Различают:

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

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

· глобальные объекты, существующие пока программа загружена в память;

· сохраняемые объекты, данные которых хранятся в файлах внешней памяти между сеансами работы программы.

Все указанные выше принципы в той или иной степени реализованы в различных версиях объектно-ориентированных языков.

 

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


Дата добавления: 2015-05-10; Просмотров: 405; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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