Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
новое пособие.doc
Скачиваний:
62
Добавлен:
25.09.2019
Размер:
20.48 Mб
Скачать

2.3.3. Системологический и объектно-ориентированный подход

Традиционные методологии разработки программных систем ориентированы на описание данных и процедур, но не на описание сущностей реального мира и их поведение. Поскольку инжиниринг бизнеса ориентирован на реальные бизнес-структуры и бизнес-процессы, а не на формальные данные и процедуры, традиционные подходы оказались неадекватными. Объектно-ориентированный подход является единственным подходом, позволяющим описывать как сущности, так и их реальное поведение. Кроме того, он обеспечивает создание прозрачных, легко модифицируемых моделей бизнеса и ИС, допускающих повторное использование отдельных компонент. Именно поэтому, в настоящее время, объектно-ориентированная методология анализа, моделирования и разработки ИС является базовой методологией создания программного инструментария для реинжиниринга бизнес-процессов [97].

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

Главным предметом исследования системологии является «система», объектно-ориентированная методология опирается на понятие «объект». Концептуальное сходство системологического и объектно-ориентированного подходов (ООП) основывается, в первую очередь, на сходном понимании природы системы и объекта, соответственно.

С точки зрения системологии, как уже было отмечено, система – есть функциональный объект, функция которого обусловлена функцией объекта более высокого яруса, т.е. надсистемой [5]; а объект, с точки зрения ООП, представляет собой предмет или сущность, имеющую определенное функциональное назначение в данной предметной области [13, 78].

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

Объектно-ориентированная методология в значительной степени опирается также на следующие основные понятия [13, 79]:

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

  • Дихотомию «интерфейс/реализация», обеспечивающую раздельное рассмотрение поведения и реализующего (поддерживающего) это поведение устройства экземпляра или абстракции.

  • Отношение «клиент – сервер», определяющее функциональные роли элементов и компонент предметной области и разрабатываемой системы.

  • Понятие «ответственности», связанное с контрактным проектированием и выражающее предназначение и место объекта или класса в системе.

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

С точки зрения дихотомии «класс/объект» в системологии рассматривается два вида систем: системы-классы и системы-явления (называемые в [6] внешними и внутренними системами соответственно).

При этом в настоящее время нам удалось обеспечить единство содержательного и формального рассмотрения обоих видов систем как функциональных объектов. Рассмотрение систем-явлений предметной области позволяет оценить её с точки зрения целостности, устойчивости функционирования, глубины и оптимальности адаптации. Рассмотрение систем-классов предметной области позволяет оценить её с точки зрения естественности (онтологичности) и функционального соответствия объективным запросам систем более высокого порядка [45, 94].

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

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

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

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

Кроме того, требование исследования иерархии объектов и иерархии классов в ходе объектно-ориентированного анализа системы находится в полном согласии и соответствии с требованиями системологии, в которой предполагается необходимость детерминантного анализа внутренних систем предметной области (систем-явлений или экземпляров) и внешних систем (систем-классов). Следовательно, системологический подход позволяет проанализировать полную и целостную архитектуру рассматриваемой системы в соответствии с требованиями методологии OOAD. При этом рассмотрение внутреннего и внешнего аспекта системности характерно именно для системологии и ни в какой другой концепции системного подхода не используется.

Связь между системологией и объектно-ориентированным подходом представлена в таблице 2.4.

Таблица 2.4. Объектный подход и системология.

Объектный подход

Системология

Объект.

Система-явление (внутренняя система).

Класс.

Система-класс (внешняя система).

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

Системная декомпозиция, на основе отношения поддержания функциональной способности целого.

Структура (иерархия) объектов.

Партитивная (цело-частная) классификация.

Структура (иерархия) классов.

Таксономическая (родо-видовая) классификация.

Контрактное программирование (клиент-сервер).

Внешняя детерминанта (запрос надсистемы) – Внутренняя детерминанта (функция системы, соответствующая запросу).

Варианты использования (прецеденты).

Внутренняя детерминанта.

Главная задача объектно-ориентированного проектирования: выбор правильного набора абстракций (классов).

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

Объектно-ориентированное мировоззрение, при котором «требования к системе воспринимаются с точки зрения классов и объектов, выявленных в предметной области» [13, с. 54], и системологическое мировоззрение, при котором предметная область рассматривается как иерархия функциональных объектов (систем-явлений), находящихся в отношении поддержания функциональной способности целого [5], а также как иерархия систем-классов, находящихся в том же отношении [94], таким образом, совершенно сходятся. Можно даже утверждать, что такие составные части объектно-ориентированной методологии как OOA и OOD есть, по сути своей, ни что иное, как изложение системологии в терминах программной инжинирии.