Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 семестр.doc
Скачиваний:
35
Добавлен:
02.08.2019
Размер:
1.11 Mб
Скачать
  1. Сложные объекты. Использование объектной технологии. Объекты м классы объектов в uml. Взаимодействие между объектами.

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

Большой вклад в ее формирование вносит консорциум OMG (Object Management Group), который вот уже почти полтора десятилетия ведет активную работу по созданию комплекса стандартов интероперабельных неоднородных распределенных объектных сред. Центральное место в этом комплексе занимает стандарт архитектуры интероперабельности CORBA, а также ряд дополнительных стандартов горизонтальной и вертикальной сферы. Стандарты горизонтальной сферы включают спецификации комплекса объектных сервисов, функционирующих в архитектурной среде CORBA, языка представления метаданных инструментов объектного анализа и проектирования, компонентной модели, метамодели для представления метаданных хранилищ данных и др. Стандарты вертикальной сферы определяют объектные среды (среды бизнес-объектов) для многих областей приложений.

Существенный вклад в компонентные технологии внесла корпорация Microsoft, которая первой разработала компонентную объектную модель COM (Component Object Model) и ее распределенную версию DCOM (Distributed Component Model), ставшие основой ряда программных продуктов компании.

Важное значение имеет создание компанией Sun Microsystems и широкое распространение объектного языка программирования Java, а также основанного на этом языке комплекса средств компонентной разработки приложений из повторно используемых объектных компонентов — компонентная модель JavaBeans, архитектура Enterprise JavaBeans, а также технология Java 2 Enterprise Edition.

Наряду с указанными общими элементами объектной инфраструктуры, независимыми от класса информационных систем, созданы также ее элементы, ориентированные на отдельные классы систем, — системы баз данных, Web, текстовые системы.

Основой разработки коммерческих объектных СУБД стал стандарт объектных баз данных консорциума ODMG (Object Data Management Group). Разработаны стандарты API объектных СУБД для объектных языков программирования Java и Smalltalk (часть стандарта ODMG), а также API SQL-серверов для языка Java — JDBC и SQLJ. Миграция реляционных приложений баз данных в объектную среду обеспечивается новым стандартом языка запросов SQL: 1999, поддерживающим объектно-реляционную модель данных, а также объектно-реляционными SQL-серверами, созданными ведущими поставщиками программного обеспечения систем баз данных.

Объектный подход нашел применение и в технологиях Web. Технология Java-аплетов обеспечивает мобильность программного обеспечения в среде Web с помощью Web-браузеров со встроенной виртуальной машиной Java (Java Virtual Machine, JVM). Консорциумом W3C был разработан стандарт DOM (Document Object Model), обеспечивающий объектное представление XML-документов — единицы информационных ресурсов в новой технологической платформе Web, основанной на языке XML. Языковые средства DOM используются как спецификации API для XML-ориентированных СУБД.

Для работы с текстовыми информационными ресурсами объектные типы данных, поддерживаемые расширителями типов, используются в объектно-реляционных серверах DB2, Oracle, Informix.

Объектное направление в области информационных систем хорошо оснащено инструментальными средствами CASE, основанными на методах объектного анализа и проектирования и использующими стандартизованный консорциумом OMG язык UML (Unified Modeling Language) для представления метаданных.

Класс — это такая абстракция множества предметов реального мира, что

Предметы в этом множестве - объекты имеют одни и те же характеристики

Все объекты подчинены и согласованы с одним и тем же набором правил и линий поведений

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

Например, абстрактный тип данных «строка текста» может быть оформлен в виде класса, и тогда все строки текста в программе будут являться объектами — экземплярами класса «строка текста».

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

Как и структуры, классы могут задавать поля — то есть переменные, принадлежащие либо непосредственно самому классу (статические), либо экземплярам класса (обычные). Статические поля существуют в одном экземпляре на всю программу (или, в более сложном варианте, — в одном экземпляре на процесс или на поток/нить). Обычные поля создаются по одной копии для каждого конкретного объекта — экземпляра класса. Например, общее количество строк текста, созданных в программе за время её работы, будет являться статическим полем класса «строка текста». А конкретный массив символов строки будет являться обычным полем экземпляра класса «строка текста», так же как переменная «фамилия», имеющая тип «строка текста», будет являться обычным полем каждого конкретного экземпляра класса «человек».

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]