Некоторые ключевые отличия между функционально-ориентированным и объектно-ориентированным подходами к проектированию систем:
1. Основа подхода:
- Функционально-ориентированный подход предполагает разбиение системы на набор взаимодействующих блоков, где каждый блок выполняет чётко определённую функцию. 2 При таком подходе главными структурными компонентами являются функции (операции, действия, работы), которые на диаграммах связываются между собой потоками объектов. 3
- Объектно-ориентированный подход использует объектную декомпозицию, при которой статическая структура описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. 3 Основными понятиями такого подхода являются объект и класс: объект — предмет или явление, имеющее чётко определённое поведение, класс — множество объектов, связанных общностью структуры и поведения. 3
2. Принцип проектирования:
- При функционально-ориентированном подходе реализуется структурный подход к проектированию по принципу «сверху-вниз»: каждый функциональный блок может быть декомпозирован на множество подфункций и так далее. 3
- При объектно-ориентированном подходе сначала выделяются классы объектов, а далее в зависимости от возможных состояний объектов (жизненного цикла объектов) определяются методы обработки (функциональные процедуры). 3 Это обеспечивает наилучшую реализацию динамического поведения информационной системы. 3
3. Наглядность представления модели:
- Функциональные модели более наглядны, так как представляют систему в виде набора взаимодействующих блоков. 2
- Объектно-ориентированные модели уступают функциональным моделям по наглядности представления модели пользователю-заказчику. 3
4. Область применения:
- Для более регламентированных задач больше подходят функциональные модели. 3
- Для более адаптивных бизнес-процессов (управления рабочими потоками, реализации динамических запросов к информационным хранилищам) — объектно-ориентированные модели. 3