Об’єктно-орієнтовані технології проектування прикладних програмних систем - виділення

2.4.1. поняття підсистеми

Отже, прикладна система являє собою безліч взаємозалежних об'єктів (див. П. 2.1). Кожен об'єкт характеризується набором атрибутів, значення яких визначають стан об'єкта, і набором операцій, які можна застосовувати до цього об'єкта. При розробці прикладних систем зручно вважати, що всі атрибути об'єктів є закритими (тобто вони не доступні поза об'єктом, і для того, щоб в деякому об'єкті дізнатися значення атрибута іншого об'єкта, або змінити його, необхідно скористатися однією з відкритих операцій цього об'єкта , якщо, звичайно, така операція визначена). Операції об'єктів можуть бути як відкритими, так і закритими.

Таким чином, кожен об'єкт має строго певний інтерфейс. тобто набір відкритих операцій, які можна застосовувати до цього об'єкта. Всі об'єкти одного класу мають однаковий інтерфейс. Інтерфейс класу (а, отже, і кожного об'єкта цього класу) задається списком сигнатур його відкритих (загальнодоступних) операцій (і реалізують їх методів); сигнатури закритих операцій в інтерфейс об'єктів відповідного класу не входять.

Об'єктна модель системи задає безліч взаємозалежних об'єктів, що становлять систему, і, отже, визначає набір інтерфейсів, доступних всередині системи. Всі можливості по обробці даних усередині системи (тобто в кожному об'єкті, що входить до складу системи) визначаються цим набором інтерфейсів, який визначає внутрішнє оточення (або середу) системи.

Підсистема - це набір об'єктів і підсистем, що забезпечують деяку функціональність, і взаємодіючих між собою відповідно до їх інтерфейсами. Інтерфейс підсистеми є підмножина об'єднання інтерфейсів всіх об'єктів і підсистем, що складають цю підсистему. До складу підсистеми може входити один, або більше взаємозалежних об'єктів і / або підсистем.

Безліч інтерфейсів об'єктів (і підсистем), які в своїй сукупності складають деяку підсистему, становить внутрішнє оточення цієї підсистеми. До складу кожної підсистеми повинна бути включена підсистема оточення, що представляє зовнішнє оточення цієї підсистеми. Підсистема оточення для системи банківського обслуговування, що розглядається в якості наскрізного прикладу представлена ​​на малюнку 2.41. Інтерфейс підсистеми оточення визначає в якому програмному оточенні буде працювати проектована система і які можливості цього оточення будуть використовуватися під час її роботи (це важливо, коли виникає потреба модифікації або заміни окремих компонентів оточення).

Відзначимо, що підсистема оточення представляє тільки інтерфейс системи банківського обслуговування з її зовнішнім оточенням. Зовнішнє оточення системи банківського обслуговування складається з декількох підсистем і бібліотек, і для нього теж може бути розроблено об'єктну модель, яка може містити і систему, що розробляється (в цій об'єктної моделі вона буде однією з підсистем).

Об'єктну модель системи банківського обслуговування та її системного (зовнішнього) оточення теж можна зобразити у вигляді об'єктної діаграми (правда, до складу цієї об'єктної діаграми будуть входити не об'єкти, а тільки підсистеми, кожна підсистема зображується на діаграмі у вигляді прямокутника з подвійними вертикальними сторонами). Залежності між підсистемами, зображені на цій об'єктній діаграмі (рисунок 2.42), відображають взаємодію проектованої системи банківського обслуговування і відповідних підсистем в процесі роботи системи. Тим самим визначаються вимоги проектованої системи до її системного оточення.

Мал. 2.41. Об'єктна діаграма банківської мережі, в якій вказано інтерфейс з системним оточенням

Мал. 2.42. Об'єктна діаграма банківської мережі і її системного оточення

Введення поняття підсистеми і можливість включати в об'єктну модель поряд з об'єктами (класами) і підсистеми визначає ієрархічну структуру об'єктної моделі і дозволяє використовувати методологію OMT при проектуванні досить складних програмних систем, що містять велику кількість різних об'єктів і класів.