You are on page 1of 19

Міністерство освіти і науки України

Тернопільський національний технічний університет імені Івана Пулюя


Факультет комп’ютерно-інформаційних систем і програмної інженерії

Кафедра програмної інженерії

ЗВІТ
до лабораторної роботи № 1
з навчальної дисципліни «Архітектура та проектування програмного
забезпечення»

Тема: Дослідження архітектурних моделей та методологій розробки ПЗ


для обраної предметної області. Ознайомлення з базовими елементами
проектування та реалізації програмних систем в середовищі проектування RSA
IBM

Підготував:
студент групи СП-31
Гавриленко Артем Володимирович
Тернопіль 2023
Мета:
- дослідити базові моделі архітектур програмного забезпечення;
- дослідити методології та підходи до розробки ПЗ;
- ознайомитися з принципом ООП - SOLID;
- обрати базову для реалізації архітектуру обраної предметної області.
Описати підхід (з точки методології розробки ПЗ) до розробки
програмного продукту згідно обраної предметної області. Визначити
переваги та недоліки застосування моделі архітектури;
- ознайомитися з середовищем проектування IBM Rational Software
Architect.
- проаналізувати обрану предметну область. Визначити вимоги, акторів
та базові прецеденти програмного продукту. Побудувати діаграму ВВ
(прецедентів) та діаграму Класів, використовуючи можливості
середовища проектування IBM RSA.
Завдання:
- Опрацюйте теоретичний матеріал. Ознайомтесь з основними
архітектурами реалізації ПЗ. Ознайомтесь з методологіями розробки
ПЗ. Розгляньте теоретичний матеріал щодо принципів побудови
Хорошої архітектури SOLID.
- Оберіть тематику власної розробки. Основні принципи моделі
архітектури. Виділіть основні функції проектованої інформаційної
системи та зовнішні сутності, з якими система взаємодіє.
- Ознайомтесь з середовищем проектування IBM Rational Software
Architect. Побудуйте в даному середовищі проектування діаграми
прецедентів (ВВ), класів обраної Вами предметної області.
- За результатами виконаної роботи сформулюйте висновки, в яких
зазначте узагальнені рекомендації щодо області застосування заданої у
варіанті завдання моделі архітектури.
Вибрана предметна область
«MarketPlace24» належить до предметної області електронної комерції,
тобто сфери здійснення торгівлі товарами та послугами через Інтернет. Таким
чином ця онлайн-платформа сприятиме ефективній взаємодії між покупцями та
продавцями, допомагаючи найти необхідний товар, здійснити покупку та
оформити доставку.

Опис системи:
a) Кожен підприємець стикається з тим, що йому необхідно
постійно демонструвати свою продукцію на майданчиках,
щодня взаємодіяти з клієнтами, отримувати оплату,
відвантажувати товари та керувати фінансовими операціями.
Деякі компанії використовують різні інструменти для
управління кожним з цих видів діяльності окремо, внаслідок
чого витрачають багато часу та грошей на збір даних та
об'єднання всього в одну систему.
b) Основні можливості:
 Створення та налаштування інтернет-магазину;
 Простий інтерфейс;
 Широкий вибір платіжних систем;
 Багатий вибір шаблонів для оформлення магазину;
 Можливість налаштування інтегрованої реклами;
 Обробка замовлень та оплат;
 Можливість підключення сторонніх месенджерів для
комфортного спілкування між користувачами;
 Управління каталогом товарів;
 Надійність транзакцій;
 Фільтрація оголошень за різними параметрами;
 Комунікація клієнта та продавця через внутрішній чат;
 Конфіденційність особистої інформації користувача;
 Відгуки користувачів про товар та магазин;
 Можливість купівлі доменного імені за
конкурентоспроможними цінами;
 Передбачена система покарань за недотримання правил
нашого додатку;

c) Сценарії роботи:
 Користувач хоче придбати товар на нашому сервісі. Для
цього йому потрібно пройти реєстрацію (ввести особисті
дані: Ім’я, Прізвище, Номер телефону та Електронну
пошту). Дальше користувач вводить в графу «Пошук» назву
товару, який його цікавить. Якщо товар йому сподобався,
йому прийдеться натиснути на кнопку «Придбати товар»,
ввести потрібні дані, та оплатити товар.
 Користувач не може розібратися з інтерфейсом даного
сервісу. Для цього передбачений інтегрований помічник,
який доступно все пояснить.
 Користувач хоче створити свій власний магазин. Для
цього йому прийдеться пройти реєстрацію та верифікацію
свого облікового запису (Завантажити на сервіс свій
паспорт, фото лиця та фото користувача з паспортом, тощо).
Дальше буде передбачена можливість купівлі стартового
пакету або безкоштовний доступ можливостей сервісу на
днів. А далі користувач повинен внести в систему наявний
товар. Магазин готовий.
d) Опис структури:
e) Засоби програмної та апаратної реалізації:
Платформа: mobile / desktop client with web server and data base
OC: IOS, Android, Windows.
Мови програмування: HTML, CSS, JS, Ruby, SQL.
f) Вихідні дані: готовий онлайн-магазин, можливість придбання
товару.

Методологія розробки програмного забезпечення


Scrum методологія ґрунтується на понятті спринту (sprint), протягом
якого виконується робота над продуктом. Перед початком кожного спринту
проводиться планування (Sprint Planning), на якому проводиться оцінка вмісту
списку завдань із розвитку продукту (Product Backlog) і формування беклога на
спринт (Sprint Backlog), у рамках яких і діє команда. Для спринту завжди
існують обмеження по часу, зазвичай від тижня до місяця. Життя продукту
таким чином розбита на рівні по тривалості спринти.

Переваги методу: прозорість обміну інформацією в команді,


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

Опис актантів та варіантів використання: У системі електронної комерції


«MarketPlace24» виділяються кілька актантів та варіантів використання. Один з
основних акторів - Клієнт, який використовує платформу для здійснення
покупок та взаємодії з різними інтернет-магазинами. Він може шукати товари,
додавати їх до кошика, оформляти замовлення та здійснювати оплату.

Крім того, в системі MarketPlace24» присутні інші актори, такі як


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

Рис. 1 – Діаграма варіантів використання


Рис. 2 – Діаграма класів

Рис. 7.2 – Клас Information

Призначення:
Клас призначений для пошуку необхідної інформації.
Атрибути:
request – атрибут класу для вводу запиту;
list_article – список знайдених статей.
Методи:
check_request() – перевірка введеного запиту;
show_article() – демонстрація статті.

Рис. 7.3 - клас User

Призначення:
Цей клас представляє користувача.
Атрибути:
userID – ідентифікатор користувача;
username – ім’я користувача;
email – електронна пошта користувача.
Методи:
getUserID() – повертає ідентифікатор користувача;
getUserName() – повертає ім’я користувача;
getEmail() – повертає електронну пошту користувача;
createAd() – створює оголошення;
sendMassage() – надсилає повідомлення користувачу.
Рис. 7.4 – клас Menu
Призначення:
Цей клас використовується для відображення та управління меню
платформи.
Атрибути:
menuItems– список пунктів меню.
Методи:
displayMenu(menuItems) – виводить меню на екран;
selectMenuItem(option) – обробляє вибраний пункт меню;
run() – запускає головний цикл меню.

Рис. 7.5 – клас CreateStore


Призначення:
Цей клас використовується для створення нового магазину.
Атрибути:
storeName – назва нового магазину;
storeType – тип магазину;
storeTheme – тема магазину;
storeOwner – власник магизину.
Методи:
getStoreName() – повертає назву магазину;
setStoreName(storeName) – встановлює назву магазину;
getStoreType() – повертає тип магазину;
setStoreType(storeType) – встановлює тип магазину;
getStoreTheme() – повертає тему магазину;
setStoreTheme(storeTheme) – встановлює тему магазину;
getStoreOwner() – повертає власника магазину;
setStoreOwner(storeOwner) – встановлює власника магазину;
createNewStore() – створює новий магазин.

Рис. 7.6 – клас AddProduct


Призначення:
Цей клас використовується для додавання нового продукту до магазину.
Атрибути:
productName – назва продукту;
productPrice – ціна продукту;
productDescription – опис продукту;
productCategory – категорія продукту.
Методи:
getProductName() – повертає назву продукту;
setProductName(productName) – встановлює назву продукту;
getProductPrice() – повертає ціну продукту;
setProductPrice(productPrice) – встановлює ціну продукту;
getProductDescription() – повертає опис продукту;
setProductDescription(productDescription) – встановлює опис продукту;
getProductCategory() – встановлює категорію продукту;
setProductCategory(productCategory) – повертає категорію продукту;
addNewProduct() – додає новий продукт до магазину.

Рис. 7.7 – клас Settings


Призначення:
Цей клас використовується для налаштування та редагування магазину.
Атрибути:
shopName – назва магазину;
currency – валюта магазину;
taxRate – податкова ставка;
address – адреса магазину;
contactInfo – контактна інформація магазину;
logo – логотип магазину.
Методи:
getShopName() – повертає назву магазину;
setShopName(shopName) – встановлює назву магазину;
getCurrency() – повертає валюту магазину;
setCurrency(currency) – встановлює валюту магазину;
getTaxRate() – повертає податкову ставку;
setTaxRate(taxRate) – встановлює податкову ставку;
getAddress() – повертає адресу магазину;
setAddress(address) – встановлює адресу магазину;
getContactInfo() – повертає контакту інформацію магазину;
setContactInfo(contactInfo) – встановлює контакту інформацію магазину;
getLogo() – повертає логотипу магазину;
setLogo(logo) – встановлює логотип магазину.
Рис. 7.8 – клас Product

Призначення:
Цей клас представляє товар.
Атрибути:
productI – ідентифікатор товару;
name – назва товару;
price – ціна товару.
Методи:
getName() – повертає назву товару;
getPrice() – повертає ціну товару;
setName() – встановлює назву товару;
setPrice() – встановлює ціну товару;
setDescription() – встановлює опис товару;
setQuantity() – встановлює кількість одиниць товару.
Рис. 7.9 – клас ShoppingCart

Призначення:
Цей клас представляє кошик покупця.
Атрибути:
items – список товарів у кошику;
totalPrice – загальна вартість товарів у кошику.
Методи:
addItem() – додає товар у кошик;
removeItem() – видаляє товару із кошика;
getTotalPrice() – повертає загальну вартість товарів у кошику;
clearCart() – очищує кошик;
applyDiscount – застосування знижку;
getItemsCount() – повертає кількість товарів у кошику.
Рис. 7.10 – клас Order

Призначення:
Цей клас представляє замовлення.
Атрибути:
orderID – ідентифікатор замовлення;
customer – представляє користувача.
Методи:
calculateTotal() – розраховує загальну вартість замовлення;
placeOrder() – оформлення замовлення;
cancelOrder() – скасування замовлення;
getOrderID() – повернення ідентифікатора замовлення;
setOrderID() – встановлення ідентифікатора замовлення;
getStatus() – повернення статусу замовлення;
setStatus() – встановлення статусу замовлення;
getCustomer() – повернення користувача;
setCustomer() – встановлення користувача.
Рис. 7.11 – клас ShippingInfo
Призначення:
Цей клас представляє інформацію про доставку.
Атрибути:
address – адреса доставки;
city – місто доставки;
pastalCode – поштовий індекс доставки.
Методи:
getAddress() – повертає адресу доставки;
setAddress() – встановлює адресу доставки;
getCity() – повертає місто доставки;
setCity() – встановлює місто доставки;
getPostalCode() – повертає поштовий індекс доставки;
setPostalCode() – встановлює поштовий індекс доставки.

Рис. 7.12 – клас DiscountCode


Призначення:
Цей клас представляє знижковий код.
Атрибути:
code – знижковий код.
Методи:
getCode() – повертає знижковий код;
setCode() – встановлює знижковий код.

Рис. 7.13 – клас Payment

Призначення:
Цей клас представляє інформацію про оплату.
Атрибути:
amaunt – сума оплати;
paymentStatus – статус оплати.
Методи:
getAmaunt() – повертає суму оплати;
getPaymentStatus() – встановлює суму оплати.
Висновок: При виконанні лабораторної роботи було досліджено базові
моделі архітектур програмного забезпечення, методології та підходи до
розробки ПЗ. Також я ознайомився з принципом ООП – SOLID, обрав базову
для реалізації архітектуру обраної предметної області. Описав підхід (з точки
методології розробки ПЗ) до розробки програмного продукту згідно обраної
предметної області. Визначив переваги та недоліки застосування моделі
архітектури, ознайомився з середовищем проектування IBM Rational Software
Architect. Крім того проаналізував обрану предметну область. Визначив вимоги,
акторів та базові прецеденти програмного продукту. Побудував діаграму ВВ
(прецедентів) та діаграму Класів, використовуючи можливості середовища
проектування IBM RSA.

You might also like