Моделювання програмного забезпечення засобами UML

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

Авторами мови є Грейді Буч (Grady Booch), Джеймс Рамбо (James Rumbaugh) і Айвар Якобсон (Ivar Jacobson).

Діаграма UML - це графічне зображення елементів системи у формі зв'язаного графа з вершинами (сутностями) і ребрами (від­ношеннями). Діаграми можуть містити будь-яку комбінацію сутностей, однак у практиці моделювання застосовують порівняно невелику кількість типових комбінацій, а саме:

- Діаграми класів (class dіagram) - зображають класи, інтерфейси, об'єкти і кооперації, а також відношення між ними. Ці діаграми відображають статичні аспекти системи.

- Діаграми об'єктів (object dіagram) - зображають об'єкти і від­ношення між ними. Це статичні знімки екземплярів сутностей, зображених на діаграмах класів.

- Діаграми прецедентів (use case dіagram) - зображають преце­денти й акторів, а також відношення між ними. Ці діаграми відображають статичні аспекти системи.

- Діаграми взаємодії - зображають об'єкти та повідомлення, яки­ми об'єкти можуть обмінюватися. Зазвичай, розглядають два часткові випадки таких діаграм: діаграми послідовностей (sequence dіagram), що відображають часову упорядкованість пові­домлень, і діаграми кооперації (collaboration dіagram), на яких зображають структурну організацію об'єктів, що обмінюються повідомленнями. Ці типи діаграм є ізоморфними. Діаграми взаємодії відображають динамічні аспекти системи.

- Діаграми станів (statechart dіagram) - зображають автомат, що налічує стани, переходи, події і види дій. Ці діаграми відображають динамічні аспекти системи.

- Діаграми діяльностей (actіvіty dіagram) - це окремий випадок діаграми станів (на діаграмі зображають переходи потоку керу­вання від одного виду діяльності до іншого усередині системи).

- Діаграми компонентів (component dіagram) - зображають су­купність компонентів та існуючі між ними залежності. Ці діа­грами відображають статичні аспекти системи.

- Діаграми розміщення (deployment dіagram) - зображають кон­фігурацію вузлів системи і розміщених у них компонентів. Ці діаграми відображають статичні аспекти системи. Вони зв'я­зані з діаграмами компонентів, оскільки у вузлі розміщують один чи декілька компонентів.

Опис моделі "сутність-зв'язок"

Модель "Сутність-зв'язок" (Entity-Relationship, або ER-модель) являє собою концептуальну модель даних. Модель даних являє собою набір концепцій, які описують структуру бази даних і пов'язані з нею трансакції модифікації та отриман­ня даних. Основна мета розробки моделі полягає в створенні моделі користувацького сприйняття даних й узгодження великої кількості технічних аспектів пов'яза­них із проектуванням бази даних.

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

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

Конструкторська частина

Аналіз та виділення об’єктів предметної області

Проаналізувавши поставлене завдання я виділив три основні об’єкти предметної області:

- Студентські групи,

- Викладачі,

- Студенти.

Об’єкти типу Студентські групи зберігаються у таблиці StudentGroup. Таблиця StudentGroup містить 6 полів, кожен з яких містить певну інформацію про навчальну групу:

- StudentGroupId – ключове поле таблиці,

- GroupName – поле, яке містить інформацію про абревіатури навчальних груп,

- Faculty – поле, яке відображає факультет до якого належить група,

- GroupType – поле, що містить інформацію про форму навчання студентів групи,

- Course – поле, яке відображає інформацію про курс на якому навчаються студенти навчальної групи,

- CountStyd – поле, яке відображає наповнюваність студентами групу.

...

Побудова ER-діаграми бази даних

ER-модель – це одна з найбільш простих візуальних моделей. Вона дозволяє осягнути структуру об'єкта в загальних рисах. Такий загальний опис структури називається ER-діаграмою або онтологією вибраної предметної області.

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

На рисунку 7.1 представлено ER-діаграму для об’єктів заданої предметної області, а також відображені відповідні зв’язки.

Моделювання програмного забезпечення засобами UML - student2.ru

Рисунок 7.1 – ER-діаграма предметної області "Студентський відділ кадрів"

Побудова діаграми прецедентів та діаграм класів

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

На сьогодні для UML-моделювання існує широкий вибір програмних засобів. Найбільше розповсюдженими пакетами програм є Rational Rose, Visual UML, BPwin, Silverrun, Process Analyst, Together, System Architect, Objecteering та інші. Для побудови UML-діаграм для мого курсового завдання було використано пакет програм System Architect.

Для розробки мого програмного забезпечення достатньо використати UML діаграми прецедентів та класів.

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

- Користувач – Користувач програми. Виконує всі можливі операції в програмі.

- Додати нову навчальну групу – Операція добавлення інформації про нову начальну групу:

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

2. Програма показує діалогове вікно, в якому необхідно заповнити поля з відповідною інформацією про навчальну групу.

3. Користувач натискає кнопку Зберегти.

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

5. В списку груп відображається щойно добавлена.

Моделювання програмного забезпечення засобами UML - student2.ru

Рисунок 7.2 – Діаграма прецедентів

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

В програмі виділено 3 основних типи класів, взаємодія між якими дозволяє сформувати основний вигляд та функціональність програми:

Класи представлення об’єктів предметної області. До таких класів відносяться Group, Teacher та Student. Вони містять поля, що описують вказаний об’єкт відповідно вимог до програми. Діаграма класів об’єктів предметної області представлена на рисунку 7.3.

Класи доступу до даних реалізує шаблон проектування DAO (Data Access Object – об’єкт доступу до даних). Ці класи призначені для взаємодії із вибраною базою даних для зчитування та запису даних. Кожен такий клас реалізує наступний набір методів:

- insertGroup, insertStudent, insertTeacher – добавити новий об’єкт в базу даних.

- updateGroup, updateStudent, updateTeacher – редагувати існуючий об’єкт в базі даних.

- deleteGroup, deleteStudent, deleteTeacher – видалити існуючий об’єкт із бази даних.

- findById – повернути об’єкт із бази даних за вказаним значенням ключового поля.

- findAll– знайти та повернути всі об’єкти із бази даних.

Діаграма класів доступу до даних представлена на рисунку 7.4.

Для забезпечення графічного інтерфейсу та взаємодії із користувачем, використовується набір класів представлених на рисунку 7.5.

Моделювання програмного забезпечення засобами UML - student2.ru

Рисунок 7.3 – UML- діаграма класів об’єктів предметної області

Моделювання програмного забезпечення засобами UML - student2.ru

Рисунок 7.4 – UML-діаграма класів доступу до даних

Моделювання програмного забезпечення засобами UML - student2.ru

Рисунок 7.5 – UML- діаграма класів GUI

Програмна частина

Створення бази даних

SQL (Structured query language – мова структурованих запитів) – декларативна мова програмування для взаємодії користувача з базами даних, що застосовується для формування запитів, оновлення і керування реляційними БД, створення схеми бази даних і її модифікація, система контролю за доступом до бази даних. Сам по собі SQL не є ні системою керування базами даних, ні окремим програмним продуктом. Не будучи мовою програмування в тому розумінні, як C++, Java або Pascal, SQL може формувати інтерактивні запити або, будучи вбудованою в прикладні програми, виступати в якості інструкцій для керування даними. Стандарт SQL, крім того, вміщує функції для визначення зміни, перевірки і захисту даних.

Для створення моєї бази даних я використав СКБД MySQL. Нижче наведений SQL-код створення бази даних:

DROP DATABASE IF EXISTS students;

CREATE DATABASE students DEFAULT CHARACTER SET 'utf8'; //створення бази даних

USE students; //вибір активної бази даних

create table StudentGroup //створення таблиці

(

StudentGroupId integer AUTO_INCREMENT not null,

GroupName nvarchar(50) not null,

Faculty nvarchar(50) not null, //опис полів таблиці

GroupType integer not null,

Course integer not null,

CountStyd integer not null,

primary key (StudentGroupId)

);

alter table Teacher

add constraint FK_TEACHER_GROUP

foreign key (TeacherGroupId)

references StudentGroup(StudentGroupId);

Створення об’єктів предметної області

Об’єкт предметної області Студентські групи представлений за допомогою класу Group.java, який зберігається в пакеті CourseProject\src\net\ukr \ifkep\course_project\domain\. Програмний Java-код даного класу наведений у додатку.

Встановлення взаємодії програми та бази даних

Збереження всіх даних відбувається в реляційній базі даних. Для доступу до даних використовується мова запитів SQL. В програмі використовується набір запитів для вставки, обновлення та пошук даних. Для доступу до бази даних створені спеціальні DAO класи – класи доступу до даних.

Відповідно до побудованої діаграми класів створюю наступні класи доступу до даних:

1. net.ukr.ifkep.course_project.dao.GroupDao – для роботи із даними в таблиці StudentGroup.

Для роботи із даними в таблиці StudentGroup даний клас використовує SQL запити, які наведені в таблиці 7.1.

Таблиця 7.1 – SQL запити для роботи із даними в таблиці StudentGroup
Опис Шаблон SQL запиту
Добавлення нової групи insert into StudentGroup(GroupName, Faculty, GroupType, Course, CountStyd) values (?, ?, ?, ?, ?);
Редагування інформації про групу update StudentGroup set GroupName = ?, Faculty = ?, GroupType = ?, Course = ?, CountStyd = ? where StudentGroupId = ?;
Видалення запису про навчальну групу delete from StudentGroup where StudentGroupId = ?;
Запит для отримання вказаної групи по значенню первинного ключа select StudentGroupId, GroupName, Faculty, GroupType, Course, CountStyd from StudentGroup where StudentGroupId = ?;
Запит для отримання списку всіх навчальних груп select StudentGroupId, GroupName, Faculty, GroupType, Course, CountStyd from StudentGroup;

Даний клас містить набір методів, що використовують вказані шаблони SQL запитів. Програмний код класу наведено в додатку.

Для організації доступу до бази даних також створюю допоміжний клас DataAccessUtil. Цей клас містить такі поля та методи:

- метод createConnection() – отримати підключення до бази даних.

- DRIVER_CLASS – клас драйвера для підключення до бази даних.

- CONNECTION_URL – шлях до бази даних.

- CONNECTION_USERNAME – ім’я користувача для підключення до бази даних.

- CONNECTION_PASSWOORD – пароль користувача для підключення до бази даних.

Створення графічного інтерфейсу для програми

Наступним етапом мого курсового проекту є представлення мого завдання у зручному для перегляду користувачами вигляді, а саме створення графічного інтерфейсу взаємодії програми з користувачами.

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

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

1. Основна форма, що відображає список навчальних груп – форма, яка відкривається при запуску програми. Вона містить інформацію про навчальні групи та пропонує вибір таблиць з інформацією про викладачів групи та її студентів. В даній формі реалізовано головне меню(об’єкт класу JMenuBar), панель інструментів, кнопки запуску додатків та переходів(об’єкти класу Button) та таблиці для відображення даних(об’єкти класу JTable, TableModel).

Ця форма створена у класі MainForm.java пакету CourseProject\src\net\ukr\ifkep\course_project\gui\. Програмний код цього класу наведений у додатку.

Наши рекомендации