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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Объектный подход Системология
Объект. Система-явление (внутренняя система).
Класс. Система-класс (внешняя система).
Объектно-ориентированная декомпозиция. Системная декомпозиция, на основе отношения поддержания функциональной способности целого.
Структура (иерархия) объектов. Партитивная (цело-частная) классификация.
Структура (иерархия) классов. Таксономическая (родо-видовая) классификация.
Контрактное программирование (клиент-сервер). Внешняя детерминанта (запрос надсистемы) – Внутренняя детерминанта (функция системы, соответствующая запросу).
Варианты использования (прецеденты). Внутренняя детерминанта.
Главная задача объектно-ориентированного проектирования: выбор правильного набора абстракций (классов). Метод построения классификаций, отражающих существенные свойства предметной области: системологический классификационный анализ.

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

Вопросы для повторения

1. Назовите основные проблемы традиционного системного подхода.

2. В чем состоит основное отличие понятия «система» от понятия «множество»?

3. Что такое объектно-ориентированный анализ?

4. Что такое объектно-ориентированное проектирование?

5. Что такое объектно-ориентированное программирование?

6. Назовите основные понятия объектно-ориентированного подхода.

7. Что такое «UML»?

8. Зачем необходима интеграция системно-структурного и объектно-ориентированного подходов?

9. Дайте определение системы как функционального объекта?

10. Что такое связь между системами с точки зрения системологии?

11. Что такое внешняя детерминанта?

12. Что такое внутренняя детерминанта?

13. Что такое адаптация системы?

14. Что такое эволюция системы?

15. Какие понятия теории организации соответствуют каким понятиям системологии?

16. Какие понятия логистики соответствуют каким понятиям системологии?

17. Какие понятия инжиниринга бизнеса соответствуют каким понятиям системологии?

18. Какие понятия объектно-ориентированного подхода соответствуют каким понятиям системологии?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: