Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра АСУ
Звіт
до лабораторної роботи №5
з дисципліни
«Основи автоматизованого проектування
складних об’єктів та систем»
Львів-2013
Тема роботи: Моделювання послідовностей.
Мета роботи: Освоїти моделювання послідовностей в UML- діаграмах та їх побудову у конкретному середовищі.
Завдання:
Оволодіти навичками моделювання послідовностей для UML-діаграм.
Розробити діаграми послідовностей для індивідуального завдання.
Теоретичні відомості
Діаграма послідовності — в UML, діаграма послідовності відображає взаємодії об'єктів впорядкованих за часом. Зокрема, такі діаграми відображають задіяні об'єкти та послідовність відправлених повідомлень
На діаграмі послідовності зображуються виключно ті об'єкти, які безпосередньо беруть участь у взаємодії і не показуються можливі статичні асоціації з іншими об'єктами. Для діаграми послідовності ключовим моментом є саме динаміка взаємодії об'єктів в часі. При цьому діаграма послідовності має як би два вимірювання. Одне — зліва направо у вигляді вертикальних ліній, кожна з яких зображає лінію життя окремого об'єкту, що бере участь у взаємодії. Графічно кожен об'єкт зображується прямокутником і розташовується у верхній частині своєї лінії життя. Усередині прямокутника записуються ім'я об'єкту і ім'я класу, розділені двокрапкою. При цьому весь запис підкреслюється, що є ознакою об'єкту, який, як відомо, є екземпляр класу.
Друге вимірювання діаграми послідовності — вертикальна тимчасова вісь, направлена зверху вниз. Початковому моменту часу відповідає сама верхня частина діаграми. При цьому взаємодії об'єктів реалізуються за допомогою повідомлень, які посилаються одними об'єктами іншим. Повідомлення зображуються у вигляді горизонтальних стрілок з ім'ям повідомлення і також утворюють порядок за часом свого виникнення.
Анатомія діаграм послідовності:
Об'єкти зображуються у вигляді прямокутників і розміщуються над лініями життя.
Лінії життя зображуються вертикальними лініями.
Напрям часу – згори вниз.
Повідомлення – це горизонтальні стрілки з назвою повідомлення.
За напрямом стрілки визначають відправника та отримувача.
Активізація об'єктів (focus of control).
В процесі функціонування об'єктно-орієнтованих систем одні об'єкти можуть знаходитися в активному стані, безпосередньо виконуючи певні дії або в стані пасивного очікування повідомлень від інших об'єктів. Щоб явно виділити подібну активність об'єктів, в мові UML застосовується спеціальне поняття, що отримало назву фокусу управління (focus of control). Фокус управління зображується у формі витягнутого вузького прямокутника (див. об'єкт 1), верхня сторона якого позначає початок отримання фокусу управління об'єкту (початок активності), а її нижня сторона — закінчення фокусу управління (закінчення активності). Цей прямокутник розташовується нижче за позначення відповідного об'єкту і може замінювати його лінію життя (об'єкт 4), якщо на всьому її протязі він є активним.
Як було відмічено вищим, мета взаємодії в контексті мови UML полягає в тому, щоб специфікувати комунікацію безліччю взаємодіючих об'єктів. Кожна взаємодія описується сукупністю повідомлень, якими об'єкти, що беруть участь в нім, обмінюються між собою. У цьому сенсі повідомленням (message) є закінчений фрагмент інформації, який відправляється одним об'єктом іншому. При цьому прийом повідомлення ініціює виконання певних дій, направлених на рішення окремої задачі тим об'єктом, якому це повідомлення відправлене.
Діаграма послідовності, яка ілюструє реєстрацію клієнта:
Якщо клієнт не зареєстрований в системі – він має обмежені права доступу до системи турагенції. Для того, щоб зареєструватися в системі користувачу достатньо ввести у поля для реєстрації логін(login), пароль(pass) та електронну пошту(e-mail). Дані відправляються на сервер за допомогою методу CreateUserAccount(login, pass, e-mail). Перш за все, система перевіряє чи існує ідентичний вже зареєстрований користувач(метод IsAccountExist(login)). Якщо такий користувач вже зареєстрований в системі, то користувачу надсилається відповідне повідомлення(метод SendMessage(AccountExist)). Якщо ж такого зареєстрованого користувача не знайдено, то система реєструє нового(метод CreateUserAccount(login, pass, e-mail)). Після цього користувачу відправляється повідомлення з інформацію про створений профіль(метод SendMessage(AccountDetails)).
Діаграма послідовності, яка ілюструє завантаження фото даних у систему:
Для того, щоб завантажити фотографію клієнту достатньо вибрати потрібну йому фотографію та відправити її на сервер(метод AddNewPhoto(photo)). Далі система розміщує фотографії у потрібному каталозі та оновляє базу даних(метод UpdateBase()). Користувач буде проінформований про те, що фотографія успішно завантажена та збережена на сервері.
Діаграма послідовності, яка ілюструє авторизацію клієнта:
Користувач вводить логін і пароль, після чого метод Authorize(login, pass) передає дані на сервер. Перевірку правильності введення даних виконує метод ValidatePassword(login, pass). При неправильному введенні даних користувач буде проінформований(метод SendMessage(WrongLoginOrPass()). В інакшому випадку користувач буде авторизований(метод AdmitUser(login)) та проінформований про це(метод SendMessage(LoginResult)).
Діаграма послідовності, яка ілюструє бронювання квитка:
Клієнт вводить логін, дані квитка(ticket) та дані закордонного паспорта(passport). Дані обробляє метод OrderTicket(self, ticket, passport). Далі квиток, який замовив клієнт бронюється і повертається повідомлення клієнту про квиток(метод SendMessage(TicketDeatail)).
Діаграма послідовності, яка ілюструє скасування замовлення квитка:
В системі передбачена можливість скасування замовленого квитка. Клієнт вводить логін, дані квитка(ticket) та дані закордонного паспорта(passport). Дані обробляє метод CancelOrderTicket(self, ticket, passport). Далі квиток скасовується і повертається повідомлення клієнту про деталі скасування(метод SendMessage(CancelDeatail)).
Діаграма послідовності, яка ілюструє поповнення рахунку клієнта:
Для поповнення рахунку клієнт повинен ввести суму поповнення(money) та номер рахунку(bill). Якщо з невідомих причин до адміністратора не дійшла сума вказаних коштів або користувач не заповнив відповідне поле – буде надіслане повідомлення з проханням повторити введення(метод SendMessage(ForgotMoney)). Якщо дані введені правильно(метод IsMoneyExist(money, bill)), то адміністратор поповняє рахунок клієнта і надсилає повідомлення з деталями поповнення.
Діаграма послідовності, яка ілюструє пошук:
Після того як клієнт обере «Пошук», система відображає на екрані сторінку з формою пошуку і просить ввести необхідні дані(param) для пошуку. За ці дії відповідає метод InputData(param). Далі система безпосередньо проводить пошук по базі даних(метод Search(param)) та виводить результат пошуку(метод SendMessage(result)).
Діаграма послідовності, яка ілюструє оновлення БД:
Формується запит до бази даних(метод RequestToBase()). Якщо не вдалося встановити зв'язок, то відсилається інформаційне повідомлення(метод SenMessage(ErrorRequest)). Якщо під’єднання до БД відбулося, то база оновлюється(методUpdateBase()) та інформує про це користувача(метод SendMessage(result)).
Висновок: Діаграма послідовності — в UML, діаграма послідовності відображає взаємодії об'єктів впорядкованих за часом. Зокрема, такі діаграми відображають задіяні об'єкти та послідовність відправлених повідомлень.
На діаграмі послідовностей показано у вигляді вертикальних ліній різні процеси або об'єкти, що існують водночас. Надіслані повідомлення зображуються у вигляді горизонтальних ліній, в порядку відправлення.
Визначені стандартом UML 2.0 діаграми послідовностей мають ті ж можливості що і визначені стандартом UML 1.x, та пітримують додаткові можливості зміни стандартного порядку повідомлень.