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

5.2. Ідентифікація класів і об'єктів

5.2.1. Класичний і сучасний підходи

Із часів Платона проблемою класифікації займалися філософи, лінгвісти, когнітивісти, математики. Тому було б розумно вивчити накопичений досвід і застосувати його в об’єктно-орієнтовному проектуванні. Історично відомі тільки три підходи:

  • класична категоризація;

  • концептуальна кластеризація;

  • теорія прототипів.

Класична категоризація. У класичному підході всі речі, що мають деяку властивість або сукупність властивостей, формують деяку категорію. Причому, наявність цих властивостей є необхідною й достатньою умовою, що визначає категорію. Наприклад, неодружені — це категорія: кожна людина або неодружена, або одружена, і ця ознака достатня для розв’язання задачі, до якої категорії належить той чи інший індивідуум. З іншого боку, високі люди не визначають категорії, якщо, звичайно, ми спеціально не уточнимо критерій, що дозволяє чітко відрізняти високих людей від невисоких.

Класична категоризація прийшла до нас від Платона й Аристотеля. Останній у своїй класифікації рослин і тварин користувався технікою міркувань, що нагадує сучасну дитячу гру у 20 запитань (Це мінерал, тварина чи рослина? Це покрито хутром чи пір'ям? Чи може воно літати? Чи пахне воно?). Такий підхід знайшов послідовників, найвидатнішими з яких були: Фома Аквінський, Декарт, Локк. За твердженням Фоми Аквінського: "Ми можемо йменувати речі відповідно до наших знань про їх природу, яку отримуємо через пізнання їх властивостей і дій".

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

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

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

Сучасне мислення найчастіше використовує класичну категоризацією, однак, як показує приклад з високими й низькими людьми, цей підхід не завжди працює. Природні категорії не чітко відмежовані. Більшість птахів літає, але не всі. Стілець може бути дерев'яним, металевим або пластмасовим, а кількість ніг у нього цілком залежить від примхи конструктора. Практично неможливо перелічити визначальні властивості природної категорії, так щоб не було винятків. Це, дійсно, проблема класичної категоризації, яку й спробували виправити в сучасних підходах. Розглянемо їх.  

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

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

Теорія прототипів. Класична категоризація й концептуальна кластеризація — досить виразні методи, цілком придатні для проектування складних програмних систем. Але є ситуації, в яких ці методи не працюють. Розглянемо сучасніший метод класифікації, теорію прототипів, передумови якої можна знайти у книзі із психології сприйняття [21].

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

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

Поняття властивостей взаємодії — центральне для теорії прототипів. У концептуальній кластеризації ми групуємо об’єкти відповідно до різних концепцій. У теорії прототипів класифікація об'єктів здійснюється за ступенем їх подібності до конкретного прототипу.

Застосування класичних і нових теорій. Три розглянутих підходи до класифікації мають безпосереднє відношення до об’єктно-орієнтовного проектування.

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

Ці три способи класифікації складають теоретичну основу об’єктно-орієнтовного підходу до аналізу, який пропонує багато практичних порад і правил, які можна застосувати для ідентифікації класів і об'єктів під час проектування складної програмної системи.