Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KPZ.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
875.49 Кб
Скачать

Змістовий модуль 2. Моделювання предметної області

Лекція 2. Мета та засоби моделювання

Література: 1 [49-59];2 [147-181];4; 13

Мета моделювання. Методики моделювання з застосуванням імених груп, загальних шаблонів, прецедентів, CRC методика. Виявлення концептуальних класів.

Додавання асоціацій.

Модель предметної області – це візуальне представлення концептуальних класів або об'єктів реального світу в термінах предметної області.

Моделювання предметної області – це перша спроба уявити собі майбутню систему як сукупність класів.

Концептуальний клас може представляти ідею або об'єкт реального миру, але не модель програмних компонентів

Способи побудови моделі предметної області

Існує кілька відомих підходів до виявлення концептуальних класів.

  1. Підхід на основі використання іменних груп.

  2. Підхід на основі використання загальних шаблонів для класів.

  3. Підхід на основі використання CRC (class-responsibility-collaboration).

  4. Підхід на основі використання прецедентів. Підхід на основі використання іменних груп

Аналітик читає вимоги з метою виявлення іменних груп (іменників). Кожний іменник розглядається як потенційний клас.

Підхід на основі використання загальних шаблонів для класів

Цей підхід дозволяє визначити потенційні класи на основі теорії родової класифікації об'єктів.

Наприклад, Барамі [18] пропонує наступний перелік шаблонів.

  • Понятійний клас (ідея, з якою згідна більшість людей, наприклад, Резервування).

  • Клас подій (Прибуття).

  • Організаційний клас – будь-який вид цілеспрямованого об'єднання (Бюро подорожей).

  • Клас ролей (Пасажир).

  • Клас місць розташування.

Підхід на основі використання CRC

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

Підхід на основі використання прецедентів.

В основі підходу лежить опис прецеденту. Аналіз змісту кожного пункту сценарію на предмет можливості його реалізації в проектованій системі дозволяє виявити ті класи, які будуть відповідальні за цю реалізацію.

Цей підхід найкраще підтримується мовою UML, і є основним у технології RUP.

Асоціації у моделі предметної області

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

Асоціація (association) – це зв'язок між типами, який відображає деяке значиме й корисне відношення між ними.

Кожний кінець асоціацій називається роллю. Роль додатково може мати наступні характеристики:

· ім'я;

· кратність;

· напрямок зв'язку.

Контрольні запитання

  1. Для чого використовується й що відображає модель предметної області?

  2. Які прийоми використовують для виділення концептуальних класів?

  3. Як будувати модель предметної області на підставі опису прецедентів?

  4. Як вирішити задачу: чи є деякий об'єкт атрибутом або концептуальним класом?

  5. Яке призначення специфікацій при описі концептуальних класів?

  6. Що собою представляють і для чого використовуються асоціації в моделі предметної області?

  7. Як читати асоціації в моделі предметної області?

  8. Які зі стандартних асоціацій є найбільш важливими?

  9. Яку роль грає і як записується кратність асоціації?

  10. Як варто записувати ім'я асоціації?

Приклад виявлення концептуальних класів

Визначення концептуальних класів для предметної області пасажирського залізничного сполучення

Користуючись списком категорій і наведених міркувань про технології покупки квитка можна скласти список кандидатур на роль концептуальних класів для основного сценарію прецеденту «Продаж квитка». Замовлення (квитка) Order

Станція (відправлення stD, призначення stA, пересадки) Station

Маршрут (послідовність станцій між двома кінцевими станціями, що

обслуговується поїздами прямого сполучення) Itinerary

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

Поїзд (зареєстрований у розкладі руху поїзд, що обслуговує деякий маршрут) Train

Карта місць (перелік місць для конкретного поїзда й дати, розподілених по вагонах, з оцінками про покупку й бронювання) Map_seat

Тарифи (перелік бізнес-правил для визначення вартості квитка залежно від відстані, класу місця clS й поїзда clТ, пільг для певних категорій пасажирів, сезону й т.д.) Tariff

Оплата (квитка) Payment

Розклад (руху поїздів) Time_table

Журнал (реєструє покупки квитків) Register Каса Booking_office Продаж Sale

Касир Cashier

Пасажир Passenger

Лекція 3. Атрибути у моделі концептуальних класів

Література: 1 [49-59];2 [147-181];4; 13

Додавання атрибутів у модель. Узагальнення класів. Агрегація. Класи замість атрибутів. Класи асоціацій. Представлення моделі мовою UML. Модель системи RTS. Використання атрибутів у моделі предметної області Атрибут – це абстрактна властивість об'єкта.

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

Атрибути повинні бути простими. Типи простих атрибутів у більшості випадків розглядаються як примітивні типи даних.

До стандартних типів атрибутів відносяться : Boolean, Date, Number, String (Text), Time.

Деякі сутності набагато зручніше представити не у вигляді атрибутів, а у формі асоціацій.

Вимога простих типів для атрибутів не поширюється на реалізацію, наприклад, для класів в мовах С++ і Java.

Непримітивні типи

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

  • якщо він складений з окремих частин (номер телефону, ім'я людини);

  • якщо із цим типом звичайно асоціюються операції, такі, як синтаксичний аналіз і перевірка (ідентифікаційний код);

  • якщо він містить інші атрибути (для пільгової вартості квитка можуть установлюватися терміни дії (початок/кінець));

  • якщо цей тип використовується для завдання кількості з одиницями виміру

(відстань у кілометрах);

  • якщо це абстракція одного або декількох типів.

Атрибути не повинні використовуватися для зв'язку концептуальних класів у моделі предметної області.

Більшість кількісних сутностей не можна представити у вигляді числових типів даних.

Уточнення моделі предметної області

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

Якщо суперклас, не має власних екземплярів, а має тільки екземпляри для своїх підкласів, то він зветься абстрактним.

Агрегація – це вид асоціації, що моделює відношення «ціле – частина» між сутностями.

Якщо кратність із боку композитного об'єкта більше одиниці, то говорять про спільну агрегацію.

Класи замість атрибутів і класи асоціацій

Якщо в моделі предметної області деякий об'єкт класу С може мати одночасно кілька значень для свого атрибута А, то замість атрибута А слід створити окремий клас, пов'язаний із класом С асоціацією «один до багатьох».

У деяких випадках однієї асоціації між екземплярами класу недостатньо для розуміння їхнього взаємозв'язку. Для внесення ясності в модель уводять клас асоціації .

Включення класу асоціації в модель предметної області виконують у наступних випадках.

  • Атрибут пов'язаний з асоціацією.

  • Час життя атрибута залежить від асоціації.

  • Між двома поняттями існує асоціація «багато до багатьох», і є інформація, пов'язана із самою асоціацією.

Контрольні запитання

  1. Що собою представляє атрибут? Які атрибути повинні бути присутні у моделі предметної області?

  2. Що мається на увазі під непримітивним типом атрибута?

  3. Яка особливість представлення багатьох кількісних атрибутів?

  4. Чому поняття «гроші» часто повинне бути представлено окремим класом?

  5. Для чого використовуються і як позначаються суперкласи й підкласи в моделі предметної області?

  6. Що собою представляє «агрегація» у моделі предметної області? Яка різниця між спільною й композитною агрегацією?

  7. У яких випадках варто використати клас замість атрибута?

  8. Як можна розв’язати невизначеність асоціації «багато до багатьох»?

Приклад створення діаграми

Нижче наведений фрагмент діаграми концептуальних класів RTS-системи, у які додані атрибути.

Рис. 3.1 Діаграма концептуальних класів з атрибутами

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]