Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Поняття класу

Читайте также:
  1. I. Визначення поняття орнамент.
  2. Автономія: поняття та види. Автономія в Україні.
  3. Буття і існування. Поняття реальність
  4. В. Поняття герменевтичного досвіду як горизонту розуміння
  5. Визначення поняття «організаційно-правова форма господарювання» та коротка характеристика основних груп підприємств виділених за критерієм організаційно-правової форми власності.
  6. Визначте поняття
  7. Виробничий процес: поняття, структурні складові та класифікаційні ознаки
  8. Вихідні поняття
  9. Віддзеркалення поняття “саморегуляція соціального процесу” в теоретичній спадщині
  10. Відтворення обстановки та обставин місця події. Поняття даної слідчої дії та її загальна характеристика.

Клас (class) – це опис групи об’єктів з спільними властивостями (атрибутами), поведінкою (операціями), відношеннями з іншими об’єктами і семантикою. Таким чином, клас представляє собою шаблон для створення об’єкту. Кожний об’єкт є екземпляром конкретного класу і не може бути екземпляром декількох класів. Наприклад, клас навчальний курс (CourseOffering) може визначатися наступними характеристиками:

o Атрибути – місце занять, час занять;

o Операції – отримати місце занять, отримати час занять, додати студента на курс.

Алгебра 101, секція 1 і Алгебра 101, секція 2 – це об’єкти, які належать до класу навчальний курс. Кожний об’єкт має значення атрибутів і доступ до операцій, які визначені класом навчальний курс.

«Хороший» клас являє собою одну і тільки одну абстракцію, тобто повинен відображати одну основну сутність. Наприклад, клас, що зберігає інформацію про студентів і дані про курси, які студент відвідує протягом декількох років, не є «хорошим» класом тому, що не представляє тільки одну сутність. Такий клас треба розділити на два пов’язаних класи: студент і історія студента.

Назви класів обираються у відповідності до понять предметної області. Ім’я повинно бути іменником в однині, який найбільш точно характеризує предмет.

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

 
 

 


Рис.2. Нотація мови UML для класу

Порядок створення класів в програмі Rational Rose:

1. Клікніть правою кнопкою миші по розділі Logical View (Логічне представлення) у вікні оглядача.

2. В контекстно-залежному меню, що з’явилося, оберіть команду New→Class (Створити→Клас). У список оглядача буде добавлено новий клас з ім’ям New Class.

3. Введіть потрібне ім’я класу.

Рис.3. Вікно оглядача після створення класу

 

Стереотипи і класи

Про стереотипи вже згадувалось при розгляді діаграми випадків використання. Класи теж можуть мати стереотипи. Як і раніше, стереотип використовується для створення нового типу елементу моделювання, в даному випадку для створення нових типів класів. Деякі основні стереотипи класу – сутність, граничний елемент, елемент управління, сервісний елемент і виключення.

Стереотип класу вказується під його ім’ям і береться в подвійні лапки. В програмі Rational Rose є зображення для стереотипів Rational Unified Process – управляючого елементу, сутності і граничного елементу. Ці стереотипи, а також приклад класу із стереотипом виключення показані на рис.4.

Рис.4. Класи із стереотипами

 

Виявлення класів

Рецептів для знаходження класів не існує. Насправді це дійсно важко. З причини того, що процес аналізу і проектування ітеративний, то список класів з часом змінюється. Початковий набір класів скоріш за все буде відрізнятися від кінцевого. Тому для опису початкового набору класів, виявлених в системі, часто використовують термін «клас-кандидат».

Класи-сутності

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

Перший крок – вивчити обов’язки, які описані в потоці подій для виявлення випадків використання. Класи-сутності – це зазвичай ті класи, які необхідні системі для виконання відповідних обов’язків. Використання іменників для опису обов’язків може стати хорошим початком. Початковий список потрібно профільтрувати, так як він буде містити слова, які не відносяться до предметної області, мовні вирази, надлишкові слова і іменники, що описують структуру класу.

Класи-сутності зазвичай визначають на стадії проробки. Їх часто називають класами предметної області, тому що вони являються абстракціями предметів реального світу.

Граничні класи

Граничні класи (boundary class) забезпечують взаємодію між оточуючим середовищем і внутрішніми елементами системи. Такі класи забезпечують інтерфейс для користувача або іншої системи (тобто для актора). Вони складають зовнішньо залежну частину системи і використовуються для моделювання інтерфейсів системи.

Для виявлення граничних класів вивчають пари актор/сценарій. Такі класи, які визначаються на етапі проробки, зазвичай, є класами верхнього рівня. Наприклад, ви можете змоделювати вікно, але не моделювати його діалогові елементи і кнопки. В такому випадку ви опишите вимоги користувацького інтерфейсу, але не реалізуєте його.

Граничні класи теж використовуються для забезпечення зв’язку з іншими системами. На етапі проектування ці класи вдосконалюються і виносяться на обговорення питань реалізації протоколів взаємодії.

 

Керуючі класи

Керуючі класи (control class) дозволяють моделювати послідовну поведінку одного або декількох випадків використання і координувати події, що реалізують закладену в них поведінку. Керуючі класи можна представити як класи, що «виконують» випадок використання і визначають його динаміку. Вони в більшості випадків залежать від програми.

На ранній стадії проробки керуючі класи добавляються для кожної пари актор/випадок використання. Такі класи визначають потік подій в випадках використання.

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

Хто повинен знати, як прикріпити студента, – керуючий клас чи клас, що представляє курс занять? Правильна відповідь – клас, який представляє курс занять. Керуючий клас знає лише коли студент повинен бути прикріплений. «Поганий» керуючий клас знає не тільки те, коли, але й як прикріпити студента.

Керуючий клас для кожної пари актор/випадок використання створюється на початковому етапі. При подальшому аналізі і проектуванні керуючі класи можуть виключатися, розділюватися і об’єднуватися.

Етапи створення стереотипів для класів в програмі Rational Rose:

1. Клікніть правою кнопкою миші по імені класу в списку оглядача.

2. В контекстно-залежному меню, що появилося, виберіть команду Open Specification (відкрити параметри).

3. Клікніть по закладці General (загальні).

4. В випадному списку Stereotype (стереотип) виберіть потрібний стереотип. Щоб створити новий стереотип, введіть його ім’я в полі випадаючого списку Stereotype.

5. Клікніть по кнопці OK, щоб закрити діалогове вікно налаштування параметрів класу.

Рис.5. Встановлення стереотипу класу.

Документування класів

Після того, як клас створений, інформацію про нього потрібно відобразити в документації. Документація призначена для опису призначення класу, а не його структури. Наприклад, клас студент може бути описаний наступним чином:

Інформація необхідна для реєстрації студента і оплати навчання. Студент – людина, яка навчається в університеті.

А ось приклад неправильного опису:

Ім’я, адреса і телефон студента.

Останній опис розкриває лише структуру класу, яку можна побачити, подивившись на список атрибутів, і не пояснює, для чого потрібний даний клас.

Труднощі при виборі імені і опису класу можуть свідчити про те, що це не достатньо добра абстракція. В списку нижче перераховані можливі варіанти:

o Можна визначити ім’я і дати короткий, чіткий опис – хороший клас-кандидат;

o Можна визначити ім’я і вибрати опис, схожий на опис іншого класу – об’єднати класи;

o Можна визначити ім’я, але ціла книга буде потрібна для опису призначення класу – розділити клас;

o Неможливо визначити ім’я і дати опис – потрібно додатковий аналіз для виділення правильних абстракцій.

Щоб описати класи в програмі Rational Rose:

1. Виберіть клас в списку оглядача (браузера).

2. Встановіть курсор у вікні опису і введіть опис класу.

 

Пакети

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

Пакет (package) в логічному представленні моделі – набір класів і інших зв’язаних пакетів. Шляхом об’єднання класів в пакети ми можемо отримати представлення моделі на більш високому рівні. Вивчаючи вміст пакету, ми, навпаки, отримуємо більш детальне представлення.

Кожний пакет містить інтерфейс, що реалізовується набором його загальнодоступних класів (public classes), тобто тих, до яких можуть звертатись класи з інших пакетів. Інші класи пакету – це класи реалізації (implementation classes), які не взаємодіють з класами з інших пакетів.

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

В мові UML пакети зображуються у вигляді папок. Щоб створити пакети в Rational Rose:

1. Клікніть правою кнопкою миші по розділі Logical View (Логічне представлення) у вікні оглядача.

2. В контекстно-залежному меню, що з’явилося, виберіть команду New→Package (Створити → Пакет).

3. Введіть потрібне ім’я.

Після створення пакету в нього можна помістити потрібні класи.

Послідовність переміщення класів в пакет в програмі Rational Rose:

1. В списку оглядача виділіть потрібний клас, клікнувши по ньому мишею.

2. Втримуючи кнопку натиснутою, перетягніть клас в пакет.

3. Повторіть ті ж дії для інших класів, які ви хочете перемістити.

Рис.6. Вигляд Логічного Представлення до і після переміщення класу в пакет

 

Об’єкти і класи в системі реєстрації курсів

Розглянемо сценарій додавання навчального курсу (Add a Course Offering to Teach),який являється внутрішнім потоком для випадку використання вибір курсів для викладання (Select Courses to Teach). Цей сценарій дозволяє викладачу вибратинавчальни курс для конкретного семестру.

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

Вибір граничних класів

Випадок використання, який розглядається, взаємодіє тльки з актором викладач. Дія, яку виконує даний сценарій – це тільки одна з можливостей, яка забезпечується випадком використання (він також визначає, що викладач може змінювати, видаляти, переглядати і друкувати курси). Це означає, що в системі повинен бути механізм, який дозволяє користувачу вибирати дію, яку він бажає здійснити. Для забезпечення потреб викладачів створюється спеціальний клас – параметри курсу викладача (ProfessorCourseOption). Додатково ми можемо вказати клас, який слугує для додавання нових курсів, доступних викладачеві – додавання навчального курсу (AddCourseOffering).

Вибір класів-сутностей

Даний сценарій складається з предметів, навчальних курсів і призначення викладачів. Ми можемо виділити три класи-сутності: предмет (Course), навчальний курс (CourseOffering) і викладач (Professor).

Вибір керуючих класів

Додамо один керуючий клас з ціллю обробки потоку подій для випадку використання – менеджер курсів викладача (ProfeddorCourseManager).

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

Рис.7. Класи з відповідними стереотипами

 

Створення пакетів

Наступний крок – об’єднати класи в пакети. На даному етапі виділимо шість класів: предмет, навчальний курс, викладач, параметри курсу викладача, додавання навчального курсу і менеджер курсів викладача. Їх можна розділити на три логічні групи: об’єкти, специфічні для університету; об’єкти, що містять інформацію про людей; інтерфейси для акторів. Таким чином, ми можемо створити наступні пакети: інтерфейси (Interfaces), об’єкти університету (UniversityArtifacts) і дані про людей (PeopleInfo). Після цього класи поміщаються у відповідні пакети.

Рис.8. Пакети

 

Діаграми класів

По мірі того, як нові класи додаються в систему, їх текстове представлення стає незручним. Діаграма класів (class diagrams) допомагають графічно представити деякі або всі класи моделі.

Головна діаграма класів в логічному представленні моделі зазвичай відображає пакети системи. Кожний пакет в свою чергу також має свою головну діаграму класів, яка зазвичай містить загальнодоступні класи пакету. Інші діаграми створюються при необхідності. Приведем типові приклади використання діаграм класів:

o Перегляд всіх класів реалізації в пакеті;

o Перегляд структури і поведінки одного або декількох класів;

o Перегляд ієрархії наслідування класів.

Програма Rational Rose автоматично створює головну діаграму класів в логічному представленні моделі.

Щоб додати пакети до головної діаграми класів, зробіть наступне:

1. Двічі клікніть по пункту списку Main diagram (Головна діаграма) у переглядачі, щоб відкрити діаграму.

2. Оберіть потрібний пакет в списку, клікнувши по ньому мишею.

3. Перетягніть пакет на діаграму.

4. Аналогічним чином перетягніть на діаграму інші пакети.

Головна діаграма класів для системи реєстрації показана на рис. 9.

Рис.9. Головна діаграма класів для системи реєстрації

Етапи створення головної діаграми класів пакету в програмі Rational Rose:

1. Двічі клікніть по зображенню пакету на діаграмі класів.

2. Пакет відкриється і появиться головна діаграма класів.

3. Виберіть потрібний клас в списку переглядача і перетягніть його на діаграму за допомогою миші. Для відображення стереотипу класу на діаграмі можна скористатися командою меню Format→Stereotype display (Формат → Показати стереотип).

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

Головна діаграма класів для пакету Об’єкти університету зображена нижче. Зауважте, що клас навчальний курс на ній відсутній. Це клас реалізації в пакеті, тому ми вирішили не показувати його на головній діаграмі. По мірі додавання пакетів і класів можуть бути створені додаткові діаграми.

Рис.10. Діаграма класів для пакету Об’єкти університету

 

Налаштування видимості класів за замовчуванням:

1. Виберіть команду меню Tools→Options (Сервіс → Параметри).

2. Клікніть по вкладці Diagram (Діаграма).

3. Встановіть прапорець Show Visibility (Показати видимість) для відображення по замовчуванню всіх класів.

Установка видимості для вибраного класу:

1. Клікніть правою кнопкою миші по одному із класів на діаграмі.

2. В контекстно-залежному меню, що появилося, виберіть команду Option → Show Visibility (Параметри → Показати видимість).

Рис.11. Діаграма класів, яка відображає видимість пакетів

 


3.КОНТРОЛЬНІ ЗАПИТАННЯ

1. Які особливості поняття «об’єкт»?

2. Що являє собою поняття «клас»?

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

4. Для чого використовуються діаграми класів?

5. Як перейти до діаграми класів?

6. Для чого використовується поняття пакету?




Дата добавления: 2015-09-11; просмотров: 73 | Поможем написать вашу работу | Нарушение авторских прав

СДЖ арналған тапсырмалар | СДЖ арналған тапсырмалар | Талқылайтын сұрақтары | Талқылайтын сұрақтар | Талқылайтын сұрақтар | СДЖ арналған тапсырмалар | СДЖ арналған тапсырмалар | СДЖ арналған есептер | СДЖ арналған тапсырмалар | Есепті шығарыңыздар. |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.016 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав