![](/user_photo/2706_HbeT2.jpg)
- •В.В. Литвин технології менеджменту знань
- •Розділ 1 основні поняття менеджменту знань
- •1.1. Основні означення менеджменту знань
- •1.1.1. Структура менеджменту знань
- •Маркетинґ Проектування Підготовка виробництва Виробництво Збут
- •1.1.2. Формування знань
- •1.1.3. Введення даних
- •1.1.4. Адміністрування
- •1.1.5. Мотивація
- •1.1.6. Особливості впровадження мз
- •1.2. Менеджмент знань
- •1.3. Базові поняття менеджменту знань
- •1.3.1. Видобування знань
- •1.3.2. Системи пізнання
- •1.3.3. Організація доступу до знань
- •1.3.4. Інновації в області автоматизації
- •1.3.5. Менеджмент знань та інформації
- •1.3.6. Менеджмент знань та Інтернет
- •1.4. Онтологічний інжиніринг
- •1.4.1. Системи керування знаннями
- •1.4.2. Онтологія
- •1.5. Висновки
- •Запитання для повторення та контролю знань
- •Розділ 2 теоретичні аспекти менеджменту та інженерії знань
- •2.1. Поле знань
- •2.1.1. Мова опису поля знань
- •2.1.2. Семіотична модель поля знань
- •2.1.3. “Піраміда” знань
- •2.2. Стратегії одержання знань
- •2.3. Теоретичні аспекти видобування знань
- •2.3.1. Психологічний аспект
- •2.3.2. Лінгвістичний аспект
- •2.3.3. Гносеологічний аспект видобування знань
- •2.4. Теоретичні аспекти структурування знань
- •2.4.1. Історична довідка
- •2.4.2. Ієрархічний підхід
- •2.4.3. Традиційні методології структуризації
- •2.4.4. Об’єктно-структурний підхід (осп)
- •Стратифікація знань предметної області
- •Матриця об’єктно-структурного аналізу
- •Запитання для повторення та контролю знань
- •Розділ 3 технології менеджменту та інженерії знань
- •3.1. Класифікація методів практичного видобування знань
- •3.2. Комунікативні методи
- •3.2.1. Пасивні методи
- •Порівняльні характеристики пасивних методів видобування знань
- •3.2.2. Активні індивідуальні методи
- •Порівняльні характеристики активних індивідуальних методів видобування
- •3.2.3. Активні групові методи
- •3.3. Текстологічні методи
- •3.3.1. Методи структурування
- •Дані концептуалізації
- •3.3.2. Еволюція систем одержання знань
- •Запитання для повторення та контролю знань
- •Завдання для самостійного розв’язування
- •Розділ 4 прикладні аспекти менеджменту та інженерії знань
- •4.1. Латентні структури знань і психосемантика
- •4.1.1. Семантичні простори і психологічне градуювання
- •Опис зв’язку між поняттями
- •4.1.2. Методи багатовимірного градуювання
- •4.1.3. Використання метафор для виявлення “прихованих” структур знань
- •4.2. Метод репертуарних решіток
- •4.2.1. Основні поняття
- •4.2.2. Методи виявлення конструктів. Метод мінімального контексту
- •4.2.3. Аналіз репертуарних решіток
- •4.2.4. Автоматизовані методи
- •4.3. Керування знаннями
- •4.3.1. Що таке “керування знаннями”?
- •4.3.2. Керування знаннями і корпоративна пам’ять
- •4.3.3. Системи omis
- •4.3.4. Особливості розроблення омis
- •4.4. Візуальне проектування баз знань як інструмент пізнання
- •4.4.1. Від понятійних карт до семантичних мереж
- •4.4.2. База знань як пізнавальний інструмент
- •4.5. Проектування гіпермедіа бд і адаптивних навчальних систем
- •4.5.1. Гіпертекстові системи
- •4.5.2. Від мультимедіа до гіпермедіа
- •4.5.3. На шляху до адаптивних навчальних систем
- •Запитання для повторення та контролю знань
- •Розділ 5 Класифікація даних та знань
- •5.1. Важливість правильної класифікації
- •5.1.1. Класифікація й об’єктно-орієнтовне проектування
- •5.1.2. Труднощі класифікації
- •5.2. Ідентифікація класів і об’єктів
- •5.2.1. Класичний і сучасний підходи
- •5.2.2. Об’єктно-орієнтований аналіз
- •5.3. Ключові абстракції й механізми
- •5.3.1. Ключові абстракції
- •5.3.2. Ідентифікація механізмів
- •5.4. Висновки
- •Запитання для повторення та контролю знань
- •Розділ 6 онтології й онтологічні системи
- •6.1. Поняття онтології
- •6.2. Моделі онтології й онтологічної системи
- •Класифікація моделей онтології
- •6.3. Методології створення і “життєвий цикл”онтології
- •6.4. Мови опису онтологій
- •6.4.1. Види owl
- •6.4.2. Структура онтологій
- •Запитання для повторення та контролю знань
- •Розділ 7 Програмні засоби побудови онтологій
- •7.1. Онтологія як засіб формалізації та алгоритмізації знань в інтелектуальній системі
- •7.1.1. Аналіз підходів до навчання онтологій
- •7.1.2. Загальні принципи проектування онтологій
- •7.1.3. Формати та стандарти подання інформації
- •7.1.4. Засоби для створення онтології
- •7.2. Технологія розроблення онтологій в редакторі Protégé
- •7.2.1. Еволюція Protégé
- •7.2.2. Protégé-owl. Мова Web онтологій owl
- •7.2.3. Основні терміни та поняття у Protégé-owl
- •Терміни та їх синоніми
- •7.2.4. Методика розроблення онтології засобами Protégé
- •Створення й експлуатація онтології
- •7.2.5. Створення онтології
- •Запитання для повторення та контролю знань
- •Завдання для самостійного розв’язування
- •Література
- •Литвин Василь Володимирович технології менеджменту знань
- •V lp.Com.Ua, ел. Пошта: vmr@vlp.Com.Ua
5.2.2. Об’єктно-орієнтований аналіз
Межі між стадіями аналізу й проектування розмиті, але розв’язувані ними задачі визначаються достатньо чітко. У процесі аналізу ми моделюємо проблему, виявляючи класи й об’єкти, які становлять словник предметної області. Під час об’єктно-орієнтовного проектування ми винаходимо абстракції й механізми, що забезпечують необхідну поведінку.
Розглянемо перевірені практикою підходи до аналізу об’єктно-орієнтовних систем.
Класичні підходи. Різні вчені пропонують різні джерела класів і об’єктів, які необхідні згідно з вимогами предметної області. Ми називаємо ці підходи класичними, оскільки вони спираються на класичну категоризацію.
Розглянемо кандидатів для класів і об’єктів.
Реальні предмети |
Автомобілі, телеметричні дані, давачі тиску |
Ролі |
Мати, вчитель, політик |
Події |
Приземлення, переривання, запит |
Взаємодія |
Позика, зустріч, перетин |
З огляду на перспективи моделювання баз даних кандидатами для класів й об’єктів є:
Люди |
Людські істоти, які виконують певні функції |
Місця |
Області, пов’язані з людьми або предметами |
Предмети |
Реальний матеріальний об’єкт або група об’єктів |
Організації |
Формально організована сукупність людей, ресурсів, устаткування, що має певну мету й існування якої загалом не залежить від індивідуумів |
Концепції |
Принципи й ідеї, призначені для організації діяльності і/або спілкування, або ж для спостереження за ними |
Події |
Щось відбулося з чимось у заданий час або послідовно |
Або:
Структури |
Відношення “ціле–частина” і “загальне–часткове” |
Інші системи |
Зовнішні системи, з якими взаємодіє інформаційна система |
Пристрої |
Пристрої, з якими взаємодіє інформаційна система |
Події |
Події, які мають бути збережені |
Виконують функції |
Функції, які виконують користувачі, що працюють з інформаційною системою |
Місця |
Будинки, офіси й інші місця, важливі для функціонування інформаційної системи |
Організаційні одиниці |
Групи, до яких належать користувачі |
На вищому рівні абстракції Коад уводить поняття предметної області, яка є логічно зв’язаною групою класів, які належать до високорівневих функцій системи.
Аналіз поведінки. Тоді як класичні підходи зосереджують увагу на реальних елементах предметної області, об’єктно-орієнтовний аналіз зосереджує увагу на динамічній поведінці як на першоджерелі об’єктів і класів. Це нагадує концептуальну кластеризацію, розглянуту вище: ми формуємо класи, ґрунтуючись на групах об’єктів, що проявляють подібну поведінку.
Відповідність об’єкта – його знання і вміння. Відповідність – це спосіб виразити мету об’єкта і його місце в системі. Відповідність об’єкта є сукупністю всіх послуг, які він може надавати за всіма його контрактами. Тобто, ми з’єднуємо разом ті об’єкти, які мають подібні відповідності й будуємо ієрархію класів, в якій кожний підклас, виконуючи зобов’язання суперкласу, приносить свої додаткові послуги.
Можна ідентифікувати класи й об’єкти, аналізуючи функціонування системи. Зіставляємо форму поведінки з частинами системи й намагаємося зрозуміти, яка частина ініціює поведінку і які частини в ній беруть участь... Ініціатори й учасники, які виконують істотні функції, розпізнаються як об’єкти й стають відповідальними за ці функції.
Функція визначається як окрема бізнес-дія кінцевого користувача, тобто: введення/виведення, запит, файл або інтерфейс. Очевидно, що ця концепція походить з галузі інформаційних систем. Однак, вона може бути застосована до будь-якої автоматизованої системи. За суттю, функція – це будь-яка видима ззовні поведінка системи, яка стосується справи.
Аналіз предметної області. Дотепер ми неявно мали на увазі розроблення єдиної ІС. Але іноді в пошуках корисних і таких, що вже довели свою працездатність, ідей корисно звернутися відразу до всіх систем, що функціонують у межах цієї предметної області, як, наприклад, ведення історій хвороби пацієнтів, торгівля цінними паперами, розроблення компіляторів або системи керування ракетами. Якщо ви перебуваєте в середині розроблення й застрягли, аналіз якої-небудь вузької предметної області може допомогти, вказавши вам на ключові абстракції, які є корисними в подібних системах. Аналіз предметної області працює дуже добре, за винятком спеціальних ситуацій, однак такі унікальні програмні системи трапляються украй рідко.
Ідею аналізу ПО вперше запропонував Нейборс. Визначимо такий аналіз як спробу виділити ті об’єкти, операції й зв’язки, які експерти цієї області вважають найважливішими. Існують такі етапи аналізу ПО:
побудова скелетної моделі предметної області під час консультацій з експертами цієї області;
вивчення наявних у цій області систем і подання результатів у стандартному вигляді;
визначення подібності й відмінностей між системами за участю експертів;
уточнення загальної моделі для пристосування до потреб конкретної системи.
Аналіз області можна здійснювати щодо аналогічних інформаційних систем (вертикально) або щодо аналогічних частин цієї самої інформаційної системи (горизонтально). Наприклад, починаючи проектувати систему обліку пацієнтів, є сенс розглянути наявні подібні системи, щоб зрозуміти, які ключові абстракції й механізми, використані в них, будуть корисні, а які ні. Аналогічно система бухгалтерського обліку має відображати різні види звітів. Якщо вважати звіти якоюсь предметною областю, її аналіз може привести розробника до розуміння ключових абстракцій і механізмів, які обслуговують усі види звітів. Отримані в такий спосіб класи й об’єкти є множиною ключових абстракцій і механізмів, відібраних з урахуванням мети вихідної задачі: створення системи звітів. Тому остаточний проект буде простіший.
Визначимо тепер, хто такий експерт? Як експерт часто виступає просто користувач системи, наприклад, інженер або диспетчер. Він не обов’язково має бути програмістом, але мусить бути близько знайомим з досліджуваною проблемою й розмовляти мовою цієї проблеми.
Менеджери проектів зацікавлені в безпосередній співпраці користувачів і розробників системи. Але для дуже складних систем прикладний аналіз є формальним процесом, для якого потрібна велика кількість експертів і розробників на тривалий період. На практиці такий формальний аналіз зрідка потрібний. Зазвичай для початкового з’ясування проблеми досить короткої зустрічі експертів і розробників. Дивно, як мало інформації потрібно для продуктивної роботи розробника. Однак ми вважаємо надзвичайно корисними такі зустрічі протягом усього процесу розроблення ІС. Аналіз ПО найкраще здійснювати крок за кроком – трохи проаналізувати, потім спроектувати тощо.
Аналіз варіантів. Окремо класичний підхід, поведінковий підхід і вивчення предметної області, розглянуті вище, дуже залежать від індивідуальних здібностей і досвіду аналітика. Для більшості реальних проектів одночасне застосування всіх трьох підходів неприйнятне, тому що процес аналізу стає недетермінованим і непередбачуваним.
Аналіз варіантів – це підхід, який можна успішно об’єднати з першими трьома, роблячи їх застосування впорядкованішим. Варіант застосування – це приватний приклад або зразок використання, сценарій, що починається з того, що користувач системи ініціює операцію або послідовність взаємозалежних подій.
Коротко кажучи, цей вид аналізу можна починати разом з аналізом вимог. У цей момент користувачі, експерти й розробники перераховують сценарії, найістотніші для роботи системи (не заглиблюючись у деталі). Потім вони ретельно розробляють сценарії, розкладаючи їх за кадрами, як роблять телевізійники й кінематографісти. Вони встановлюють, які об’єкти беруть участь у сценарії, які обов’язки кожного об’єкта і як вони взаємодіють у термінах операцій. Тим самим група розробників змушена чітко розподілити області впливу абстракцій. Далі набір сценаріїв розширюється, щоб урахувати виняткові ситуації й вторинну поведінку. Як результат з’являються нові або уточнюються наявні абстракції.
CRC-картки. CRC позначає Class-Responsibilities-Collaborators (Клас/Відповідальності/Учасники). Це простий і дуже ефективний спосіб аналізу сценаріїв. Карти CRC вперше запропонували Бек і Каннінгхем для навчання об’єктно-орієнтовному програмуванню, але такі картки виявилися чудовим інструментом для мозкових атак і спілкування розробників між собою.
Це звичайні бібліографічні картки 35 дюймів. На картках пишуть (обов’язково олівцем) зверху – назву класу, знизу в лівій половині – за що він відповідає, а в правій – з ким він співпрацює. За сценаріями заводять картки на кожний виявлений клас і дописують у нові пункти. Щоразу обмірковують, що з цього виходить, і “виділяють надлишок відповідності” у новий клас або, що трапляється найчастіше, переносять відповідальності з одного великого класу на детальніші класи, або, можливо, передають частину обов’язків іншому класу.
Картки можна розкладати так, щоб уявити форми співпраці об’єктів. Із погляду динаміки сценарію, їх розташування може показати потік повідомлень між об’єктами, з погляду структури – вони відображають ієрархію класів.
Неформальний опис. Радикальна альтернатива класичному аналізу була запропонована в надзвичайно простому методі Аббота. Відповідно до цього методу треба описати завдання або його частину природною мовою, а потім підкреслити іменники й дієслова. Іменни-ки – кандидати на роль класів, а дієслова можуть стати назвами операцій. Метод можна автоматизувати, і така система була побудована в Токійському технологічному інституті.
Підхід Аббота корисний, тому що він простий і змушує розробника займатися словником предметної області. Однак він при- близний і непридатний для складних проблем. Природна мова – неточний засіб вираження, тому список об’єктів і операцій залежить від уміння розроблювача записувати свої думки. До того ж для багатьох іменників можна знайти відповідну дієслівну форму й навпаки.
Структурний аналіз. Інша альтернатива класичній техніці об’єктно-орієнтовного аналізу передбачає структурний аналіз як основу для об’єктно-орієнтовного проектування. Такий підхід привабливий тому, що багато аналітиків застосовують його і є значна кількість програмних CASE-засобів, що підтримують автоматизацію цих методів. Нам особисто не подобається використовувати структурний аналіз як основу для об’єктно-орієнтовного проектування, але для деяких організацій такий прагматичний підхід не має альтернативи.
Після здійснення структурного аналізу ми вже маємо модель системи, описану діаграмами потоків даних й іншими продуктами структурного аналізу. Ці діаграми дають нам формальну модель проблеми. З огляду на моделі, ми можемо приступити до визначення осмислених класів і об’єктів трьома різними способами.
Насамперед необхідно приступити до формування словника даних, а потім – до аналізу контекстних діаграм моделі. Розглядаючи список основних структур даних, варто подумати, про що в них йдеться або що вони описують. Наприклад, якщо це прикметники, то які іменники вони описують? Відповіді на такі запитання можуть поповнити список об’єктів. Ці кандидати в об’єкти походять із довкілля, з істотних вхідних і вихідних даних, а також продуктів, послуг та інших ресурсів.
Наступні два способи ґрунтуються на аналізі окремих діаграм потоків даних. Якщо взяти яку-небудь діаграму потоків, то кандидатами в об’єкти є:
зовнішні сутності;
сховища даних;
сховища керівних сутностей;
керівні перетворення.
Кандидати у класи:
потоки даних;
потоки керування.
Залишається перетворення даних, яке ми можемо розглядати як операції над наявними об’єктами або як поведінка деякого об’єкта, який ми створили спеціально для виконання потрібного перетворення.
Існує ще один метод, який називається аналізом абстракцій. Цей метод ґрунтується на ідентифікації основних сутностей, які за своєю природою аналогічні до основних перетворень у структурному проектуванні. У структурному аналізі вхідні й вихідні дані вивчають доти, доки не досягнуть найвищого рівня абстракції. Процес перетворення вхідних даних у вихідні є основним перетворенням. В абстрактному аналізі розробник так само вивчає основне перетворення для того, щоб визначити, які процеси й стани відображають найкращу абстрактну модель системи. Після визначення основної сутності в діаграмі потоків даних аналітик приступає до вивчення всієї інфраструктури, простежуючи вхідні й вихідні потоки даних з центру, групуючи процеси й стани, що трапляються. Для практичного використання аналіз абстракцій занадто складний і як альтернативу пропонують об’єктно-орієнтований аналіз (ООА).
Необхідно відзначити, що принципи структурного проектування, яке слідує за структурним аналізом, повністю ортогональні принципам об’єктно-орієнтованого проектування (ООП). Досвід показує, що використання структурного аналізу в процесі ООП часто призводить до повного провалу. Інша дуже серйозна небезпека полягає в тому, що багато аналітиків полюбляють рисувати діаграми потоків даних, які є скоріше описом проекту, ніж моделлю системи. Дуже складно побудувати об’єктно-орієнтовну систему, якщо модель настільки очевидно орієнтована на алгоритмічну декомпозицію. Тому ми віддаємо перевагу об’єктно-орієнтованому аналізу й аналізу предметної області як підготовчому етапу об’єктно-орієнтованого проектування. Зменшується ризик засмітити проект елементами алгоритмічного аналізу.