- •Міністерство освіти і науки, молоді та спорту україни тернопільський національний економічний університет факультет комп’ютерних інформаційних технологій
- •Визначення вимог
- •2. Алгоритм розв’язку задачі
- •Об’єктно – орієнтований аналіз
- •Об’єктно-орієнтоване проектування
- •Об’єктно-орієнтоване програмування
- •Тестування
Об’єктно – орієнтований аналіз
Транспортна система - транспортна інфраструктура, транспортні підприємства, транспортні засоби та управління у сукупності. Єдина транспортна система забезпечує узгоджене розвиток і функціонування всіх видів транспорту з метою максимального задоволення транспортних потреб при мінімальних витратах.
В наш час велика чистина населення користується транспортними засобами. Щоб змоделювати транспортну систему міста була створена дана програма .
Згідно з технологією об’єктно-орієнтованого аналізу необхідно побудувати об’єктну модель, що подає статичні, структурні аспекти системи, в основному пов’язані з даними.
Для побудови об’єктної моделі проводимо аналіз постановки задачі і виділяємо можливі класи відповідно іменникам, згаданим у її формулюванні.
Утворюємо такий список можливих імен класів: транспортна система, маршрут, маршрутка, пасажир, аварійна ситуація, транспорт, критерій стану якості доріг, критерій поломки. Досліджуючи імена класів, робимо висновок про наявність зайвих імен (маршрутка), нечітко визначених назв (аварійна ситуація, критерій стану якості доріг, критерій поломки), які треба вилучити з переліку класів. Провівши об’єктно-орієнований аналіз, виявлено, що потрібно додати такі атрибути до класів: до класу Транспотрний засіб (ідентифікатор (номер) транспортного засобу, час початку роботи та час кінця роботи), Маршрут (назви вулиць, по яких пролягає маршрут, маршрутки, які рухаються на даному маршруті).
Таким чином, отримуємо перелік класів: транспортний засіб, маршрут, пасажир.
Відповідно до умови задачі використовуємо абстрактний клас для утворення ієрархії класів.
Програма повинна автоматично генерувати різні нештатні ситуації. А саме: поломка транспорту, дорожньо-транспортна подія, пікові навантаження у ранкові та вечірні години. Всі ці дії здійснюються випадковим чином, що забезпечує перегляд різних ситуацій, а також має можливість реагувати на відповідну нештатну ситуацію.
З урахуванням базового абстрактного класу, який використовується для побудови спадковості класів, отримаємо таку об’єктну модель (рис. 3.1).
Для опису змін, що відбуваються з об’єктами і їх зв’язками під час роботи системи, необхідно мати її динамічну модель. Вона складається з діаграм станів об’єктів системи і підсистем. Під час аналізу динаміки роботи системи необхідно скласти декілька сценаріїв, що відображають типові варіанти її роботи. Один з варіантів сценарію роботи системи подано нижче.
Користувач починає імітацію роботи транспортного засобу.
Користувач вибирає маршрут.
Користувач вибирає транспортний засіб на відповідному маршруті.
Транспортний засіб рухається по заданому маршруті.
Затори на дорогах. Виникла нештатна ситуація: час руху від однієї вулиці до іншої збільшити. Продовжувати рух.
Транспортний засіб зламався. Виникла нештатна ситуація: поломка транспортного засобу. Вибрати дію для продовження (замінити даний транспортний засіб на новий, добавити транспортний засіб у список «Зламані маршрутки», і виключити з даного маршруту).
Пасажир покидає даний транспортний засіб.
Транспортний засіб потрапив у ДТП. Виникла нештатна ситуація: поломка транспортного засобу. Вибрати дію для продовження (замінити даний транспортний засіб на новий, добавити транспортний засіб у список «Зламані маршрутки», і виключити з даного маршруту).
Пасажир покидає даний транспортний засіб.
Якщо робота стабільна і ціле коло транспортний засіб проїхав без поломки і без потрапляння у ДТП, збільшити лічильник проїжджених повних кіл, зменшити розмір палива, яке залишилось у баку.
Послідовность подій із прив’язкою до об’єктів проектованої системи подана на рис 3.2.
При виконанні програми, реакція об’єкта на подію включає в себе дію, яка переводить об’єкт у новий стан. Зв’язок подій і станів зображений на рис.3.3, який представлений у вигляді графа, вузли якого – це стани, а спрямовані – переходи.
