Типичные черты исследовательского проекта




Скачать 381.19 Kb.
НазваниеТипичные черты исследовательского проекта
страница4/7
Дата публикации14.05.2014
Размер381.19 Kb.
ТипЛитература
literature-edu.ru > Лекции > Литература
1   2   3   4   5   6   7

Три базовых понятия ООП

Инкапсуляция.


Сокрытие данных. Объединение данных и методов работы с ними. Смысл понятия в том что, каждый элемент системы является объектом.

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


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

Откуда берется наследование:

  1. Обобщение – например, List и Choice являются подклассами Component.

  2. Роли – один объект может исполнять несколько ролей. Например, подкласс Component может быть подклассом DragSource, если ее можно тащить и подклассом DropTarget, если в нее можно кидать.

Полиморфизм.


Любой объект класса 1, реализующего интерфейс класса 2 может быть использован как объект класса 2.

Объектная модель системы


Основными частями ОМ являются иерархическая модель системы (whole-part hierarchy) и граф наследования (generalization hierarchy).

Иерархическая модель разбиения системы на части


Каждый элемент иерархического разбиения на подсистемы является объектом. Таким образом, система представляется как дерево владения. Объекты связаны каналами обмена информацией.

Граф наследования


Направленный ациклический граф, определяющий порядок наследования классов. Может быть несвязным. Он является деревом для языков программирования не поддерживающих множественное наследование (Pascal with Objects).

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

Стандартные способы изображения


Будем использовать специальную нотацию для поясняющих рисунков. Эта нотация согласована с нотацией диаграмм классов UML. Поясняющие рисунки не являются частью модели, поскольку не могут быть автоматически использованы для генерации кода или тестирования. (Диаграммы UML при некоторых ограничениях могут использоваться для генерации кода или тестирования и в этом случае являются частью модели).

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




Здесь Класс2 является подклассом Класс1.

Агрегация




Здесь объект Класс2 является частью объекта Класс1. Часть1 – элемент внутренней структуры данных Класс1, использующийся для хранения этой части.

Атомарность взаимодействий


Для обеспечения инкапсуляции обычно делаются следующие предположения о взаимодействии объектов (Ш, М).

  1. Объекты взаимодействуют между собой посредством дискретных блоков информации (сообщений).

  2. В каждый момент времени один объект может обрабатывать только одно сообщение. Следующее сообщение может быть обработано только после завершения обработки предыдущего.

  3. Различные объекты могут обрабатывать сообщения одновременно (параллелизм).

  4. Обработка сообщения требует времени.

  5. Один приемник обрабатывает все сообщения из одного источника в порядке отправления.

Модель объектов, удовлетворяющая этим требованиям, называется моделью независимых актеров (actors model). Она так же называется активной моделью (active model) поскольку объект сам выбирает момент обработки сообщения.

Во время обработки сообщения объект может иметь неправильное внутренне состояние. Но никакие другие объекты не могут наблюдать это состояние, поскольку другие сообщения не обрабатываются. Следовательно, это не нарушает инкапсуляцию.

Классификация сообщений


Сообщение может (не) изменять состояние объекта.

Сообщение может (не) требовать ответа.

Сообщение может быть ответом на другое сообщение.

Наблюдаемость


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

От сообщений к методам


Метод, эквивалентен паре сообщений запрос-ответ.

Запросом является вызов метода, ответом – возврат управления. Типичная ошибка использования методов: предполагается, что после вызова метода другого объекта, состояние объекта не изменяется. Это неправда. Между запросом (вызов метода) и ответом (возврат управления) объект может обработать другие сообщения, меняющие его состояние. Например, другие объекты могут вызвать его методы.

Типичные проблемы взаимодействия объектов


  1. Взаимная блокировка (Deadlock).



Объект 1 посылает запрос Объекту 2 и ждет ответа, прекращая обработку всех других сообщений. Объект 2 в это время посылает запрос Объекту 1 и ждет ответа. Оба объекта навечно остаются в состоянии ожидания, заблокировав друг друга.

  1. Гонка (Thread Race).



Объект 1 посылает сообщение Объекту 2, переводящее его в состояние А, после этого Объект 3 посылает сообщение Объекту 2, переводящее его в состояние В. Объект 1 продолжает думать, что Объект 2 в состоянии А. Почему этот сценарий называется гонкой? Если бы Объект 3 успел раньше Объекта 1, то все было бы хорошо.

  1. Одновременная модификация (Concurrent Modification).



Одна из разновидностей гонки. Состояние Объекта 2 изменилось, когда он не был к этому готов.

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

Ограничение количества связей


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

Введем на дереве владения “феодальное” правило: вассал моего вассала не мой вассал. Разрешим только взаимодействия Владелец-Часть и Часть-Часть внутри одного владельца. Таким образом, количество типов связей в системе

L≈N+N*C*(C-1)/2=Θ(N),

где N – количество элементов дерева владения, а С – характерное количество классов частей для одного элемента.

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

Агрегация и атомарность взаимодействий


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

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

Простейшая модель


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

Модель транзакций


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

Для улучшения ситуации может использоваться механизм транзакций.

Транзакция – последовательность (может иметь параллельные ветки) взаимодействий между объектами, обладающая свойствами атомарности, непротиворечивости, изолированности, устойчивости или ACID (Atomicity, Consistency, Isolation, Durability).

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

Непротиворечивость – транзакция не нарушает инкапсуляцию.

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

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

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

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

Объект, участвующий в транзакции может обрабатывать только сообщения, принадлежащие транзакции. Другая транзакция включающая, тот же объект откладывается до завершения первой. Если объекты включаются в транзакцию последовательно, то возможна ситуация взаимной блокировки транзакций. Например, Транзакция1 владеет Объект1 и пытается завладеть Объект2, а Транзакция2 владеет Объект2 и пытается завладеть Объект1. Для исключения взаимных блокировок может использоваться одновременный захват всех объектов транзакции или упорядочивание объектов, чтобы все транзакции захватывали их в одном порядке. В более сложных системах используется механизм обнаружения взаимной блокировки и механизм отката. Одна из заблокированных транзакций принудительно отменяется и все объекты в ней участвующие возвращаются в состояние до транзакции.
Оптимистичная модель транзакций

Для всех включаемых в транзакцию объектов создается временная копия внутреннего состояния. Все транзакции исполняются одновременно, используя временные копии состояний. При окончании транзакции производится разрешение конфликтов между временной копией состояния и реальным состоянием объектов. Если разрешение конфликтов прошло успешно, то состояние участвующих объектов изменяется в соответствии с временной копией, в противном случае транзакция отменяется.
1   2   3   4   5   6   7

Похожие:

Типичные черты исследовательского проекта iconКонспект внеклассного мероприятия «Подготовка к созданию учебного...
Конспект внеклассного мероприятия Подготовка к созданию учебного исследовательского проекта

Типичные черты исследовательского проекта iconСценарий проекта Полное название проекта «Солнце Русской поэзии»
Участники проекта – воспитанники, воспитатель, музыкальный родители

Типичные черты исследовательского проекта iconОтче т
Южного филиала федерального государственного бюджетного научно-исследовательского учреждения

Типичные черты исследовательского проекта iconОтче т
Южного филиала федерального государственного бюджетного научно-исследовательского учреждения

Типичные черты исследовательского проекта iconВладимир Исаевич Круковер 300 практических советов владельцам собак. Типичные ошибки

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

Типичные черты исследовательского проекта iconЧерты развития русской литературы XVIII века. Классицизм в русском и мировом искусстве
Цель – общий обзор «Черты развития русской литературы XVIII века», введение понятия «классицизм»

Типичные черты исследовательского проекта iconПроекта
Название проекта должно отражать суть нир, которую заявители считают необходимым выполнить и обозначать действие (разработка, исследование,...

Типичные черты исследовательского проекта iconПлан мероприятий в рамках проекта «Этот загадочный Шерлок Холмс»
Составление учителями визитки проекта, методических и дидактических материалов к проекту и размещение их на школьном сайте

Типичные черты исследовательского проекта iconОтдела образования Администрации Макушинского района о реализации...
Од, о реализации проекта «Интеллектуал Зауралья» в образовательных учреждениях района. Был заслушан отчёт директора Макушинской сош...

Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции