Объектная ориентация

Объектная ориентация

Перед исследованием ориентированности системы SAP R/3 на процессы необходимо кратко осветить смысл такой ориентации. Объектно-ориентированная парадигма основывается на новом взгляде на традиционное противопоставление данных и вычислительных процедур.

Парадигма ориентации на объекты

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

Основных компонентов объектно-ориентированной парадигмы всего четыре: объект, класс, сообщение и метод, что соотносится с записью, типом записи, процедурой и вызовом процедуры в традиционных системах. Набор методов иногда называют интерфейсом. Интерфейсы приложений SAP (BAPI) — хороший пример таких интерфейсов (см. раздел «Интерфейс программирования бизнес-приложений» в главе 19).

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

Так как между методами различных объектов есть много общего, объекты с одинаковой внутренней структурой и одинаковыми методами группируются в класс, который называется Определяющий класс объекта (Class Defining Object, CDO), в рамках которого объекты называются экземплярами этого класса. Класс может содержать в себе экземпляры других классов; однако каждый экземпляр принадлежит только одному CDO, и ассоциирован только с ним. Таким образом, вычисления производятся путем обращения к объекту с помощью сообщения; объект унаследует метод своего CDO. Этот метод, в свою очередь, может обратиться к другим объектам и т. д. Цепочка может прерваться, когда вызывается простейший объект, который изменяет переменную величину экземпляра или затрагивает внешние устройства — такие, как принтер, жесткий диск и т. д. Например, автомобили с бензиновым или дизельным двигателем можно рассматривать как случаи (подклассы) объекта «четырехколесное транспортное средство», который в свою очередь является подклассом в классе автомобилей.

Унаследование и инкапсуляция

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

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

Рис. 8.1. Подклассы и классы случаев Определяющего класс объекта (CDO) под названием «Автомобиль».

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

Преимущества объектной ориентации

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

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

Объектная ориентация и SAP

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

Сама по себе система SAP R/3 не является объектно-ориентированной средой, но этот подход в большой степени повлиял на архитектуру и разработку SAP.

Основная структура SAP, которая включает в себя словарь АВАР/4, управляемое событиями программирование, ЕРС (управляемая событиями последовательность процессов) уже использует различные аспекты этой концепции и возможно в будущем будет переработана в полноценную объектно-ориентированную среду. С появлением SAP 3.0 был представлен рабочий процесс SAPWorkflow, который полностью основывается на объектно-ориентированной архитектуре бизнес-объектов, методов, событий, подклассов и т. д. В версии SAP R/3 4.0 Объекты АВАР — это полноценное распространение объектов на АВАР, которое полностью подготовлено для использования и программирования SAP в сети Интернет. Впрочем, для полной реализации потенциала объектной ориентации базовая архитектура SAP должна была бы внедряться объектно-ориентированным способом. Кроме того, все функциональные модули SAP должны были бы в этой среде разрабатываться, поддерживаться, документироваться и т. д. Преимущества такого подхода будут обсуждаться на протяжении данной главы.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Горизонтальная или вертикальная ориентация

Из книги автора

Горизонтальная или вертикальная ориентация Эти понятия легко спутать (юнит можно считать как вертикальным, так и горизонтальным элементом страницы, в зависимости от направления взгляда), поэтому в этой книге речь пойдет о колоночной сетке (о разбиении страницы по


5.1. Местоположение и ориентация

Из книги автора

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


21.1.2 Ориентация на Unix

Из книги автора

21.1.2 Ориентация на Unix Исходный вариант интерфейса socket был разработан для Unix. Архитектура этой операционной системы позволяет единообразно обращаться к файлам, терминалам и вводу/выводу. Операции с файлами предполагают использование одного из следующих вызовов:descriptor =


6.2. Ориентация экрана

Из книги автора

6.2. Ориентация экрана Возможность изменять ориентацию изображения используется уже достаточно давно, с того времени, как появились ЖК-мониторы, которые можно было поворачивать на 90°. Подобный подход позволяет увеличить количество выводимой информации и просматривать


Ориентация

Из книги автора

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


Объектная привязка

Из книги автора

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


Ориентация бумаги

Из книги автора

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


1.5.5. Ориентация на выражения и прочие вопросы

Из книги автора

1.5.5. Ориентация на выражения и прочие вопросы В Ruby выражения важны почти так же, как предложения. Для программиста на С это звучит знакомо, а для программиста на Pascal — откровенная нелепость. Но Ruby ориентирован на выражения даже в большей степени, чем С.Заодно в этом разделе


Объектная привязка

Из книги автора

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


Объектная привязка

Из книги автора

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


Объектная привязка координат

Из книги автора

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


Объектная привязка

Из книги автора

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


ТЕХНОЛОГИИ: Ориентация на язык

Из книги автора

ТЕХНОЛОГИИ: Ориентация на язык Автор: Дмитрий КирилловОдну из самых актуальных, наболевших и, не побоюсь этого слова, фундаментальных проблем разработки можно кратко назвать так: «проект программы не равен ее исходному коду». Впечатляющий набор современных инструментов


Ориентация в пространстве

Из книги автора

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