Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Предст знаний(Лекции) / Представление знаний (Лекции).doc
Скачиваний:
20
Добавлен:
17.04.2015
Размер:
318.46 Кб
Скачать

Объекто ориентированная модель данных.

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

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

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

Можно заметить, что представление окружающего нас мира в виде совокупности каких-то объектов и процессов свойственно любому человеку. Об этом говорили еще древние греки.

Что дает объектно-ориентирование моделирование?

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

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

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

На практике фундаментальные понятия объектно-ориентированного подхода к проектированию систем воплощаются по-разному. Основой любого проекта служит объектная модель.

Концептуальными положениями объектной модели являются:

  • абстрагирование;

  • модульность;

  • иерархия;

  • типизация;

  • параллелизм;

  • устойчивость.

Объектно- ориентированная модель должна обладать следующими свойствами:

  • наличием объектов и возможностью описания их взаимодействия;

  • наличием классов и возможностью создания новых классов;

  • наличием механизма наследования для расширения или уточнения поведения классов;

  • наличием полиморфизма между классами или объектами;

  • наличием инкапсуляции.

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

Как уже было отмечено, центральным понятием в объектно-ориентированной модели служит понятие объекта.

Объект - абстракция некоторого понятия или действия рассматриваемой предметной области.

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

Следует признать, что строгого понятия объект в информатике нет. Один из основопложников объектно-ориентированного моделирования Гради Буч дал объекту такое определение: «Это то, с чем можно оперировать. У него есть состояние, поведение. Его можно отличить от других объектов». И. Якобсон определяет объект несколько по-другому: «Объект – это сущность, способная сохранять свое состояние и обладающая набором операций для проверки этого состояния и/или его изменения».

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

Описание способа взаимодействия объекта с другими объектами называют интерфейсом объекта.

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

Интерфейс, являясь внешней частью объекта, включает в себя некоторые его атрибуты и методы.

Метод можно заранее вложить в объект или присвоить ему в период его жизненного цикла.

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

Состояние объекта характеризуется текущими значениями его атрибутов.

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

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

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

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

Индивидуальные объекты называют экземплярами класса.

Рассмотрим несколько примеров построения классов объектов.

Клиент

Код идентификации

Имя

Ввести код идент.

Банкомат

Адрес

Начать работу

Выдать деньги

Счет

Баланс

Снять со счета

Принять на счет

Отношения между классами.

Наследование является самым важным свойством объектно-ориентированного моделирования систем.

По Б. Струстрапу объектно-ориентированное программирование – это программирование с наследованием. П. Вегнер, подчеркивая особую важность свойства наследования классов, дает следующее определение объектно- ориентированного языка: “Объектно-ориентированный = объекты + классы объектов +наследование.”

Класс может иметь свои подклассы. При образовании подклассов применяют принцип наследования свойств вышестоящих по иерархии классов нижестоящими классами.

Наследование – это такое отношение между классами, при котором происходит наследование структуры и поведения (методов и атрибутов) одного или нескольких других классов. Приведем пример.

Счет

Баланс

Проверить баланс

Снять

Принять

Депозит

Срок

Процентная ставка

Снять

Принять

Проверить срок

Расчетный счет

Снять

Принять

Депозит

Баланс

Проверить баланс

Класс «Счет» обладает атрибутом «баланс» и методами: - «проверить баланс», «снять» и «принять на счет».

Подкласс «Расчетный счет» наследует атрибут класса «Счет» и метод «проверить баланс». Методы «снять» и «положить на счет» уточняются.

Подкласс «Депозит» уточняет методы базового класса, добавляет новые методы и атрибуты.

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

Классы и объекты, образующие их, в реальности могут не существовать. Если в рассматриваемой предметной области отсутствует реальный объект (класс), соответствующий некоторому вымышленному объекту, то последний называют абстрактным объектом/классом.

Так, в реальной предметной области нет «Счета» как такового, а есть «Расчетный счет», «Депозит» и т.п.

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

Ассоциация.

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

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

Включение.

В случае, когда класс определяет атрибуты, являющиеся объектами другого класса, то такое отношение называют включением. Например, класс «Автомобили» может иметь такие атрибуты, как Двигатель, Рулевое управление и т.п. Эти атрибуты могут выступать в качестве классов.

Использование.

Если при выполнении какого-либо метода один класс пользуется методами другого класса, то говорят, то между этими классами имеется отношение использования. Например, Класс Фигура как правило использует методы класса Рисование.

Класс служит шаблоном для создания новых объектов.

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

Метаобъекты содержат всю информацию о структуре классов, объектов и их свойствах.

Зачем нужно свойство наследования классам?

Наследование позволяет значительно ускорить разработку ИС. Например, на основе базового класса можно быстро создать новые конкретные классы. Для этого нужно только добавить некоторые атрибуты или уточнить характеристики какого-либо объекта.

Таким образом, классы служат образцами (шаблонами) для создания новых классов.

К основным свойствам объектно-ориентированного программирования относят также полиморфизм и инкапсуляцию.

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

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

Полиморфизм обеспечивает возможность взаимодействия с объектом без указания класса, к которому. он принадлежит.

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

Лекция 14