Calorie calculation software system
This article describes the concept and essence of healthy nutrition, approaches to data analysis and reporting of food intake taking into account personal data, the role and features of creating software systems for calculating calories using various architectural solutions. As a result of the compa...
Gespeichert in:
| Datum: | 2024 |
|---|---|
| Hauptverfasser: | , , |
| Format: | Artikel |
| Sprache: | Ukrainian |
| Veröffentlicht: |
PROBLEMS IN PROGRAMMING
2024
|
| Schlagworte: | |
| Online Zugang: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/637 |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Назва журналу: | Problems in programming |
| Завантажити файл: | |
Institution
Problems in programming| id |
pp_isofts_kiev_ua-article-637 |
|---|---|
| record_format |
ojs |
| resource_txt_mv |
ppisoftskievua/7f/8e6f8245eb200f28e41bde4fb6f5457f.pdf |
| spelling |
pp_isofts_kiev_ua-article-6372025-02-15T12:22:00Z Calorie calculation software system Програмна система розрахунку калорій Pleskach, V.L. Vakulenko, E.O. Serdiuk, A.A. nutrition plan; food calories; diet; monolithic architecture; calorie counting UDC 613.2 план харчування; калорійність їжі; дієта; монолітна архітектура; підрахунок калорій УДК 613.2 This article describes the concept and essence of healthy nutrition, approaches to data analysis and reporting of food intake taking into account personal data, the role and features of creating software systems for calculating calories using various architectural solutions. As a result of the comparative analysis of the specified systems, a monolithic architecture was chosen, on the basis of which a software system for counting calories was designed, implemented, and tested using the Microsoft Visual Studio 2022 development environment; .Net Framework version 7.0.0; ADO.NET technologies; Windows Presentation Foundation (WPF); C# programming language; XAML markup languages; Microsoft SQL Server 2019 database in order to improve the quality of user experience.Prombles in programming 2024; 2-3: 199-206 У роботі описано поняття і суть здорового харчування, підходи щодо аналізу даних і звітності харчового раціону з урахуванням персональних даних, роль та особливості створення програмних систем розрахунку калорій із використанням різних архітектурних рішень. У результаті порівняльного аналізу вказаних систем було обрано монолітну архітектуру, на базі якої було спроєктовано, реалізовано, протестовано програмну систему підрахунку калорій із використанням середовища розроблення Microsoft Visual Studio 2022; .Net Framework версії 7.0.0; технології ADO.NET; Windows Presentation Foundation (WPF); мови програмування C#; мови розмітки XAML; бази даних Microsoft SQL Server 2019 з метою покращення якості харчування користувачів.Prombles in programming 2024; 2-3: 199-206 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2024-12-17 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/637 10.15407/pp2024.02-03.199 PROBLEMS IN PROGRAMMING; No 2-3 (2024); 199-206 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2-3 (2024); 199-206 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2-3 (2024); 199-206 1727-4907 10.15407/pp2024.02-03 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/637/689 Copyright (c) 2024 PROBLEMS IN PROGRAMMING |
| institution |
Problems in programming |
| baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
| datestamp_date |
2025-02-15T12:22:00Z |
| collection |
OJS |
| language |
Ukrainian |
| topic |
nutrition plan food calories diet monolithic architecture calorie counting UDC 613.2 |
| spellingShingle |
nutrition plan food calories diet monolithic architecture calorie counting UDC 613.2 Pleskach, V.L. Vakulenko, E.O. Serdiuk, A.A. Calorie calculation software system |
| topic_facet |
nutrition plan food calories diet monolithic architecture calorie counting UDC 613.2 план харчування калорійність їжі дієта монолітна архітектура підрахунок калорій УДК 613.2 |
| format |
Article |
| author |
Pleskach, V.L. Vakulenko, E.O. Serdiuk, A.A. |
| author_facet |
Pleskach, V.L. Vakulenko, E.O. Serdiuk, A.A. |
| author_sort |
Pleskach, V.L. |
| title |
Calorie calculation software system |
| title_short |
Calorie calculation software system |
| title_full |
Calorie calculation software system |
| title_fullStr |
Calorie calculation software system |
| title_full_unstemmed |
Calorie calculation software system |
| title_sort |
calorie calculation software system |
| title_alt |
Програмна система розрахунку калорій |
| description |
This article describes the concept and essence of healthy nutrition, approaches to data analysis and reporting of food intake taking into account personal data, the role and features of creating software systems for calculating calories using various architectural solutions. As a result of the comparative analysis of the specified systems, a monolithic architecture was chosen, on the basis of which a software system for counting calories was designed, implemented, and tested using the Microsoft Visual Studio 2022 development environment; .Net Framework version 7.0.0; ADO.NET technologies; Windows Presentation Foundation (WPF); C# programming language; XAML markup languages; Microsoft SQL Server 2019 database in order to improve the quality of user experience.Prombles in programming 2024; 2-3: 199-206 |
| publisher |
PROBLEMS IN PROGRAMMING |
| publishDate |
2024 |
| url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/637 |
| work_keys_str_mv |
AT pleskachvl caloriecalculationsoftwaresystem AT vakulenkoeo caloriecalculationsoftwaresystem AT serdiukaa caloriecalculationsoftwaresystem AT pleskachvl programnasistemarozrahunkukaloríj AT vakulenkoeo programnasistemarozrahunkukaloríj AT serdiukaa programnasistemarozrahunkukaloríj |
| first_indexed |
2025-12-02T15:44:54Z |
| last_indexed |
2025-12-02T15:44:54Z |
| _version_ |
1850411890089394176 |
| fulltext |
199
Інформаційні системи
УДК 613.2 http://doi.org/10.15407/pp2024.02-03.199
В.Л. Плескач, Є.О. Вакуленко , А.А. Сердюк
ПРОГРАМНА СИСТЕМА РОЗРАХУНКУ КАЛОРІЙ
У роботі описано поняття і суть здорового харчування, підходи щодо аналізу даних і звітності харчо-
вого раціону з урахуванням персональних даних, роль та особливості створення програмних систем
розрахунку калорій із використанням різних архітектурних рішень. У результаті порівняльного аналізу
вказаних систем було обрано монолітну архітектуру, на базі якої було спроєктовано, реалізовано, про-
тестовано програмну систему підрахунку калорій із використанням середовища розроблення Microsoft
Visual Studio 2022; .Net Framework версії 7.0.0; технології ADO.NET; Windows Presentation Foundation
(WPF); мови програмування C#; мови розмітки XAML; бази даних Microsoft SQL Server 2019 з метою
покращення якості харчування користувачів.
Ключові слова: план харчування, калорійність їжі, дієта, монолітна архітектура, підрахунок калорій.
V. Pleskach, E. Vakulenko, A. Serdiuk
CALORIE CALCULATION SOFTWARE SYSTEM
This article describes the concept and essence of healthy nutrition, approaches to data analysis and reporting
of food intake taking into account personal data, the role and features of creating software systems for calcu-
lating calories using various architectural solutions. As a result of the comparative analysis of the specified
systems, a monolithic architecture was chosen, on the basis of which a software system for counting calories
was designed, implemented, and tested using the Microsoft Visual Studio 2022 development environment;
.Net Framework version 7.0.0; ADO.NET technologies; Windows Presentation Foundation (WPF); C# pro-
gramming language; XAML markup languages; Microsoft SQL Server 2019 database in order to improve the
quality of user experience.
Key words: nutrition plan, food calories, diet, monolithic architecture, calorie counting.
Вступ
За останні пів століття ожиріння стало
серйозною проблемою охорони здоров'я.
Відповідно до оцінок експертів Всесвітньої
організації охорони здоров'я (ВООЗ) здо-
ров’я громадян на 8-12% залежить від сис-
теми охорони здоров’я в країні, на 18-20%
від генетичної схильності людини, на 68-
74% – від способу життя, однією з найваж-
ливіших складових якого є харчування [1].
Відповідно до класифікації ВООЗ людину
вважають такою, що страждає від ожи-
ріння, якщо її індекс маси тіла (ІМТ) стано-
вить більше 30 кг/м2. Тому підрахунок ка-
лорій людини є ключовим елементом в ре-
алізації здорового харчування і способу
життя. Нині немає універсальної медичної
інформаційної технології, яка в режимі ре-
ального часу обчислює кількість калорій
будь-якої їжі клієнта. Найбільш прагматич-
ним рішенням цієї проблеми є проєкту-
вання, розроблення та тестування такої
програмної системи підрахунку калорійно-
сті продуктів харчування з використанням
новітніх технологій, щоб вона мала друж-
ній інтерфейс, і клієнт сам міг коригувати
по собі дані, створювати власне меню на
день, тиждень, і спостерігати зміну своїх
показників у бік покращення здоров’я.
Відомо багато досліджень, які
пов’язані з розпізнаванням і ідентифіка-
цією зображень їжі з використанням, на-
приклад, нейромереж, комп’ютерного зору.
Зокрема, це метод, базований на оптимізо-
ваних за параметрами нейронних мереж
згортки (CNN) для виявлення зображень
традиційних страв за допомогою портатив-
ної камери [2]. Ці підходи, як правило,
пов’язані з глибоким навчанням – напри-
клад, система DEEPFIC, що використовує
глибоке навчання для класифікації харчо-
вих продуктів і оцінки їх калорійності за зо-
браженнями, що передбачає попереднє об-
© В.Л. Плескач, Є.О. Вакуленко , А.А. Сердюк , 2024
ISSN 1727-4907. Проблеми програмування. 2024. №2-3
200
Інформаційні системи
роблення зображень і застосування нейрон-
них мереж CNN для точного розпізнавання
їжі та оцінки калорій; мобільні застосунки
та веб-системи, що вивчають створення лі-
чильників калорій на мобільних платфор-
мах, таких як Android, щоб допомогти ко-
ристувачам ефективно відстежувати що-
денне споживання калорій. Ці системи ча-
сто об’єднують бази даних продуктів хар-
чування та інформацію про їхню харчову
цінність, що дозволяє користувачам вво-
дити свої страви та отримувати розрахунки
спожитих калорій, і алгоритми, такі як
YOLOv5 використовують для розпізна-
вання їжі та оцінки калорій. Метод сегмен-
тації та оброблення зображень для розпі-
знавання частин їжі застосовують у дослі-
дженні [3].
Метою цього дослідження є підви-
щення ефективності та зручності надання
послуг у сфері харчування та здоров’я на
основі розробленої програмної системи ро-
зрахунку калорійності. Зокрема, було дос-
ліджено теоретичні основи побудови про-
грамних систем для розрахунку калорій,
здійснено аналіз рішень щодо створення
програмних систем розрахунку калорій і
поставлено завдання спроєктувати, реалізу-
вати та протестувати програмну систему
для розрахунку калорій із кращими харак-
теристиками. Об’єктом дослідження є про-
цеси розрахунку калорійності, предметом
дослідження –засоби побудови програмної
системи розрахунку калорійності. Методи
дослідження охоплюють системний аналіз і си-
нтез, узагальнення тощо.
1. Матеріали та методи
Розроблення програмних систем пі-
драхунку калорій зазвичай передбачає ви-
користання алгоритмів для оцінки енерге-
тичного вмісту харчових продуктів. Алго-
ритмізація підрахунку калорій у програм-
них системах харчування базована на кіль-
кох етапах. Спочатку користувач вводить
інформацію про спожиті продукти або ви-
бирає їх з бази даних. Система використо-
вує дані про вміст поживних речовин у цих
продуктах такі, як білки, вуглеводи, жири,
а також енергетичний вміст.
На другому етапі враховують кіль-
кість і обсяг порцій, які користувач спожи-
ває, що може охоплювати вимірювання
ваги, об'єму, вибір стандартних розмірів
порцій. Після введення всіх показників си-
стема обчислює загальну кількість калорій
для прийому їжі.
Програмне забезпечення для розра-
хунку калорій може бути реалізовано на рі-
зних платформах, мовах програмування та
бібліотеках. Розрахунок кількості калорій у
харчових продуктах може ґрунтуватися на
різних формулах, проте основна ідея поля-
гає у визначенні енергетичного вмісту про-
дукту на основі його хімічного складу.
Двома найпопулярнішими формулами є
формула Харріса – Бенедикта та Маффліна
– Сан Жеора [4].
Хоча обидві формули використову-
ють для розрахунку кількості калорій, їх ви-
різняють підходи щодо визначення енерге-
тичних потреб організму. Формула Харріса
– Бенедикта враховує стать, вік, зріст і
вагу: жінки: BMR = 655 + (9,6 * вага в кг) +
(1,8 * зріст у см) – (4,7 * вік у роках); чоло-
віки: BMR = 66 + (13,7 * вага в кг) + (5 *
зріст у см) – (6,8 * вік у роках).
Щоб дізнатися свій активний рівень
метаболізму, потрібно додатково помно-
жити цю кількість калорій на коефіцієнт,
який залежить від рівня активності: 1,2 –
малорухливий спосіб життя; 1,375 – легкі
фізичні вправи один – три дні на тиждень;
1,55 – помірні фізичні вправи шість – сім
днів на тиждень; 1,75 – тяжкі фізичні
вправи щодня; 1,9 – важкі фізичні вправи
два чи більше разів на день.
Переваги полягають у тому, що фор-
мулу легко обчислити та зрозуміти, це по-
яснює її широке застосування. Серед недо-
ліків можна виділити те, що не враховано
персональних показників клієнта та відсу-
тня інформація про рівень активності, що
може призвести до неточних результатів.
Формула Маффліна – Сан Жеора та-
кож враховує стать, вік, зріст і вагу, та від-
разу використовує показник активності:
для жінок: (10 * вага (кг) + 6,25 * зріст (см)
– 5 * вік (г) – 161) * А; для чоловіків: (10 *
вага (кг) + 6,25 * зріст (см) – 5 * вік (г) + 5)
* A; де А – це рівень активності людини,
який зазвичай розрізняють за п’ятьма рів-
нями фізичних навантажень на добу: міні-
мальна активність: A = 1,2; слабка актив-
201
Інформаційні системи
ність: A = 1,375; середня активність: A =
1,55; висока активність: A = 1,725; екстра –
активність: A = 1,9. Труднощі розрахунку
та потреба точнішої інформації – її головні
недоліки.
У той час як формула Харріса-Бене-
дикта зазвичай використовується для зага-
льної оцінки, формула Маффліна – Сан Же-
ора може надати більш персоніфіковані ре-
зультати, особливо у визначенні кількості
калорій, потрібних для досягнення конкре-
тної ваги.
За думкою Х. Мітчелл нутрієнти їжі
можна розрахувати за допомогою системи
Атуотера, основаної на таких формулах: бі-
лки: 30% калорійності раціону; жири: 30%
калорійності раціону; вуглеводи: 40% кало-
рійності раціону [5].
Систему Атуотера застосовують у
харчовій промисловості для визначення за-
гальної калорійності їжі за методом 4 – 9 –
4. Ця система використовує коефіцієнти пе-
ретворення енергії на макроелементи вуг-
леводів, жирів, білків і клітковини. Середні
значення енергії подають як кількість кало-
рій на 1 грам макроелемента: 1 грам білків
= 4 ккал; 1 грам жирів = 9 ккал; 1 грам вуг-
леводів = 4 ккал. Ці значення базуються на
середньому виході енергії цих поживних
речовин під час травлення та метаболізму.
Найпоширеніші нині архітектури
програмних систем: клієнт – сервер, моно-
літна, сервіс-орієнтована, мікросервісна ар-
хітектура тощо.
Прикладом застосунку для підраху-
нку калорій, що послуговується клієнт –
серверною архітектурою може бути MyFit-
nessPal. Адже його клієнтська частина взає-
модіє з сервером, де знаходиться база даних
харчових продуктів та алгоритми підраху-
нку калорій [6]. Однак навіть такий поши-
рений програмний продукт мав проблеми із
безпекою. Близько 150 млн користувачів
MyFitnessPal від Under Armour стали жерт-
вою витоку даних в лютому 2018 р., під час
якого хакери отримали доступ до імен ко-
ристувачів, паролів і адрес електронної по-
шти.
Багатокомпонентна архітектура – це
ще один підхід до розроблення програмних
систем, базованих на розподілі функціо-
нала на невеликі автономні компоненти.
Кожен компонент може виконувати свою
конкретну функцію та взаємодіяти з ін-
шими компонентами для досягнення зага-
льної мети системи. Головними характери-
стиками багатокомпонентної архітектури є
модульність, що полегшує роботу над окре-
мими компонентами, повторне викорис-
тання коду, а це сприяє ефективному вико-
ристанню ресурсів і спрощує розроблення
системи завдяки незалежності роботи над
компонентами. З іншого боку, управління
великою кількістю компонентів може стати
викликом, особливо в складних системах.
Забезпечення взаємодії між компонентами
та розв’язання питань сумісності може ви-
магати додаткових зусиль і ресурсів. Зраз-
ком практичного застосунку багатокомпо-
нентної архітектури є система Fitbit, де тре-
кер активності, мобільний застосунок і веб
– сайт виконують різні функції, а їхні взає-
модії утворюють інтегровану інформаційну
систему для відстеження здоров'я та фізич-
ної активності. 2019 року Fitbit була п'ятою
найбільшою компанією з виробництва тех-
нологій для носіння приладів (бездротових
пристроїв, моніторів фізичної підготовки та
трекерів активності, таких як розумні го-
динники, крокоміри та монітори пульсу і
якості сну) за обсягом постачання. У 2020
року продано понад 120 млн пристроїв Fit-
bit для 30 млн користувачів зі 100 країн.
Розподілені системи використовують
компоненти, що функціонують в інфокому-
нікаційних мережах і характеризуються де-
централізацією, розподіленими взаємодіями
між обчислювальними вузлами. Комунікації
між обчислювальними вузлами можуть
стати джерелом затримок і витрат, а вирі-
шення проблем консистентності стає склад-
нішим завданням. Крім того, забезпечення
безпеки в розподілених системах є важли-
вою задачею через велику кількість обчис-
лювальних вузлів і точок доступу. Прикла-
дом є Nutrino – веб-платформа, що викорис-
товує розподілені системи для збору та об-
роблення даних про харчування та надає пе-
рсоналізовані рекомендації. Мікросервісна
архітектура – це новітній підхід до розроб-
лення програмного забезпечення, за якого
застосунок розподілено на невеликі автоно-
мні сервіси, кожен з яких виконує обмежену
кількість функцій. Усі складові системи вза-
202
Інформаційні системи
ємодіють між собою через API, що дає їм
змогу функціонувати незалежно один від
одного. Основною ідеєю є розподіл функцій
на окремі компоненти, які можна розвивати,
масштабувати та випускати окремо. Серед
недоліків такої архітектури передусім виді-
ляють децентралізовану структуру, яка
може спричиняти труднощі в управлінні ко-
мунікаціями та мережею, версіями та онов-
леннями. Також у разі вибору «мікросерві-
сів» необхідні складніші засоби монітори-
нгу для відстеження стану та продуктивно-
сті, якщо порівнювати з монолітною архіте-
ктурою. Наприклад, HealthyTrack – це мобі-
льний застосунок для ведення здорового
способу життя, який використовує мікро-
сервісну архітектуру для оптимізації різних
аспектів підрахунку калорій і здорового ха-
рчування.
Монолітна архітектура – традиційний
підхід до побудови програмних систем, за
якого весь функціонал зосереджено у кодовій
базі та виконується в єдиному процесі [7].
Запуск і оновлення системи в моно-
літній архітектурі вимагає мінімальних зу-
силь, оскільки всі компоненти знаходяться
разом, що робить процес розгортання від-
носно простим і зрозумілим для розробни-
ків. Завдяки централізованій структурі про-
цеси моніторингу та налагодження також
стають простішими. Проте з розвитком
програмної системи виникають проблеми
гнучкості, масштабованості, налагодження.
Приміром, система Cronometer – приклад-
ний застосунок для ведення щоденного жу-
рналу харчування, де весь функціонал (вве-
дення даних, аналіз, статистика) вбудовано
в єдиний монолітний застосунок. Цей при-
кладний застосунок для відстежування ма-
кронутрієнтів створено 2005 року директо-
ром А. Девідсоном.
На додаток до відстеження їжі, про-
грама уможливлює контроль фізичних
вправ, що є частиною функціонала безкош-
товної версії. Якщо перейти до платної вер-
сії Cronometer Gold, з’явиться можливість
відстежувати біометричні дані або різні ви-
мірювання тіла та кардіо, а також резуль-
тати лабораторних досліджень.
У табл.1 наведено порівняльну хара-
ктеристику монолітної та мікросервісної
архітектур.
Таблиця 1
Порівняльна характеристика монолітної та
мікросервісної архітектур
Параметр Монолітна
архітектура
Мікросер-
вісна архі-
тектура
Гнучкість Низька Висока
Масштабова-
ність
Обмежена Висока
Керування
залежностями
Просте Складне
Ізоляція та
оновлення
Складне Просте
Джерело : власна розробка
У таблиці 2 наведено порівняльну
характеристику вище наведених програм-
них систем.
Таблиця 2
Порівняльний аналіз систем підрахунку
калорій
Функціонал Crono
meter
MyFitness
Pal Fitbit
Підрахунок
калорій Так Так Так
Ведення
журналу
харчування Так Так Так
Створення
персоналізован
ого меню Ні Ні Ні
Персоналізован
і рекомендації
щодо
харчування Так Ні Так
Відстеження
фізіологічних
показників Ні Так Так
Інтеграція з
іншими
пристроями Так Так Так
Відстеження
настрою Ні Ні Так
Наявність
статистики у
вигляді
графіків Ні Так Так
Джерело : власна розробка
У результаті порівняльного аналізу
було досліджено основний функціонал для
програмних систем підрахунку калорій і
203
Інформаційні системи
виявлено, що, хоча усі програмні системи
надають багато функцій, їм бракує зрозумі-
лого та зручного дружнього інтерфейсу і
таких функцій, як створення тижневого
меню, складання списку продуктів з підіб-
раного плану харчування та можливостей в
режимі реального часу здійснювати зміни
клієнтом до прикладного застосунку.
Зважаючи на вище вказані переваги
та недоліки програмних систем із різними
архітектурними рішеннями було обрано
монолітну архітектуру як задовільний ви-
бір для успішної реалізації програмної сис-
теми підрахунку калорій і проведення екс-
периментальної апробації та статистичного
аналізу показників клієнтів щодо змен-
шення ваги.
Програмна система підрахунку кало-
рій має забезпечувати користувачам зруч-
ний і ефективний інструмент для контролю
раціону та підтримки здорового способу
життя. Вона дозволяє реєструватися з вве-
денням персональних даних, визначає но-
рми калорій і допомагає в плануванні харчу-
вання. Система також дає можливість слід-
кувати за харчовими звичками та фізичною
активністю, сприяючи досягненню конкрет-
них цілей щодо фізичної форми та здоров'я.
2. Результати
Програмна система з монолітної ар-
хітектурою є корисною для тих користува-
чів, у яких є медична потреба в щоденному
відстеженні прийому їжі з урахуванням кі-
лькості калорій і макронутрієнтів або ба-
жання дізнатися більше про страви, які
вони вживають щодня. Для зручного вико-
ристання програми розроблено простий,
зрозумілий, дружній інтерфейс, що дає мо-
жливість користувачу швидко отримати
всю необхідну інформацію. Розроблена ін-
формаційна система забезпечує такі мож-
ливості: реєстрацію з внесенням таких пер-
сональних даних, які допоможуть у скла-
данні унікального меню. Зокрема, це пока-
зники росту, ваги, віку, схильності до алер-
гії тощо; забезпечення безпеки збережених
даних користувача; вхід до інформаційної
системи за допомогою імені користувача та
паролю; зміна персональних даних; автома-
тичне визначення норм КБЖВ користувача;
пошук і додавання страв; формування спи-
ску улюблених або рекомендованих страв;
відслідковування харчових звичок і фізич-
ної активності за допомогою журналу;
отримання таблиці з меню; збереження
меню у форматі html, pdf; отримання спи-
ску продуктів тощо.
Програмна система має такі функції
як-от: реєстрації; авторизації; зміну налаш-
тувань; збереження даних; виведення даних
у вигляді діаграм; пошуку та додавання/ви-
далення інформації; автоматичної генерації
таблиці на основі фізіологічних показників
людини; збереження таблиці та списку; ро-
зрахунок кілокалорій, які потрібно спожи-
вати людині; автоматичної генерації та ви-
ведення списку продуктів, виходячи з їжі,
сформованої у попередньо складеному
плані харчування. Вимоги до безпеки про-
грамної системи є такі: паролі користувачів
мають бути шифрованими за допомогою
алгоритму pwdencrypt перед збереженням у
базі даних, щоб запобігти можливості неса-
нкціонованого доступу до персональних
даних; використання stored procedures для
виконання операцій з даними для обме-
ження прямого доступу до таблиць і забез-
печення доступу для контрою і монітори-
нгу лише через визначені процедури. Ви-
моги до продуктивності програмної сис-
теми підрахунку калорій є такі: забезпе-
чення ефективного використання ресурсів
для швидкого обчислення калорій та інших
даних, що дозволить користувачам швидко
отримувати результати без зайвої затри-
мки; використання запитів до бази даних і
кешування результатів для зменшення на-
вантаження на сервер і прискорення роботи
програми. Вимоги до зручності програмної
системи підрахунку калорій є наступними:
забезпечення інтуїтивно зрозумілого та
дружнього користувацького інтерфейсу,
який сприяє зручності взаємодії з програ-
мою; розроблення інтерфейсу з урахуван-
ням принципів дизайну, таких як простота,
послідовність і доступність для забезпе-
чення набутого досвіду користувачів; чіт-
кий розподіл логіки бізнес – процесів, по-
дання та керування даними, щоб забезпе-
чити простоту розроблення та забезпечення
функціонування прикладної інформаційної
системи.
204
Інформаційні системи
Було змодельовано та спроєктовано
функціональні елементи програмної сис-
теми підрахунку калорій на основі відпові-
дних UML діаграм. Для моделювання фун-
кціональності програмної системи з пог-
ляду її взаємодії з користувачем було роз-
роблено діаграму варіантів використання.
Діаграма використання цього прикладного
застосунку складається з одного актора –
користувача та восьми головних прецеден-
тів, що містять залучені прецеденти зв’яз-
ком «include» (рис.1).
Рис. 1. Діаграма варіантів використання
відповідно до функціональних вимог про-
грамної системи підрахунку калорій
Як зазнечено вище, монолітна архі-
тектура програмної системи – це тради-
ційна модель розроблення програмного за-
безпечення, де все програмне забезпечення
розробляється як єдиний фрагмент коду.
Всі компоненти архітектури взаємозалежні
та взаємопов'язані, і кожен компонент не-
обхідний для запуску програми. Перева-
гами цього підходу є простота розроблення
та впровадження, легка масштабованість на
початкових етапах, а недоліками – труд-
нощі масштабування, якщо програмна сис-
тема стає великою, вищі ризики, пов’язані з
підтримкою та модифікацією. Насамкінець,
це може призвести до збільшення часу роз-
гортання, труднощів у впровадженні нових
функцій та ускладнення тестування через
велику взаємозалежність компонентів.
На рис.2 зображено архітектуру про-
грамної системи підрахунку калорій.
Рис. 2. Архітектура програмної сис-
теми підрахунку калорій
Для зменшення складності програм-
ного коду використовувався архітектурний
шаблон MVVM (Model – View – View-
Model). У процесі створення програмної си-
стеми підрахунку калорій було застосо-
вано: середовище розроблення Microsoft
Visual Studio 2022; фреймворк .Net
Framework версії 7.0.0; методику
ADO.NET; технологію Windows
Presentation Foundation (WPF); мову програ-
мування C#; мову розмітки XAML; базу да-
них Microsoft SQL Server 2019, Microsoft
SQL Server Management Studio 19.
Для реалізації інформаційної сис-
теми підрахунку калорій було створено
прикладний застосунок для ОС Windows.
Організацію архітектури системи показано
на рис. 3.
Рис. 3. Організація архітектури системи
Через те, що шаблон MVVM перед-
бачає структуру View – ViewModel – Model,
програмну систему було розподілено на від-
повідні категорії, що можна предсавити у
вигляді каталогів проєкту. Всі сторінки та
вікна мають xaml – файли у теці Views, а
класи, що відповідають за логіку у теці
ViewModels. Для представлення об’єктів да-
них є моделі користувача та страви у ката-
лозі Models, а також інтерфейси для роботи
205
Інформаційні системи
з базою даних у теці Repositories. Стилі візу-
альних елементів програми, такі як кольори
та розмір, знаходяться у теці Styles. Прикла-
дний застосунок містить два вікна – автори-
зації, де необхідно ввійти до інформаційної
системи чи зареєструватись, і головне вікно,
де відображають статистику, страви та на-
лаштування профілю клієнта. За переми-
кання сторінок головного вікна відповідає
модель подання, а за відображення – вид –
обгортка. Застосунок складається з таких
елементів, як вікно авторизації: вхід; реєст-
рація; головне вікно: сторінка статистики,
сторінка пошуку страв, сторінка дода-
вання/видалення страв, сторінка улюблених
(рекомендованих) страв, сторінка меню,
сторінка налаштувань. Сторінка статистики
є обгорткою для дочірніх елементів, що роз-
міщуються у теці Dashboard Components.
База даних системи містить трина-
дцять таблиць, кожна з яких має первинний
ключ. Таблиці поділяють на дві основні
групи: ті, що належать до даних користувача,
та ті, що зберігають інформацію про страви.
До групи користувачів відносять три таблиці:
«Users», «Activity», «UserAllergy». Таблиця
«UserAllergy» містить два зовнішніх ключа
та поєднує користувача з алергеном з таблиці
«Allergens», що у свою чергу пов’язана з таб-
лицею «ProductAllergens», яка містить інфор-
мацію про алергенні продукти. Відношення
«UserAllergy» встановлює відповідність між
ім’ям користувача та типом алергії, а
«ProductAllergens» між назвою продукту зі
списку продуктів і назвою складових їжі. Та-
ким чином пов’язується інформація щодо
алергії з метою для подальшого складання
плану харчування на основі збережених да-
них. Група стосовно страв нараховує п’ять
таблиць, а саме: «Products», «Meals»,
«MealNutrition», «MealProducts», «Product
Allergens», зв’язаних між собою ID страви.
Структуру бази даних представлено на рис. 4.
Рис. 4. Схема бази даних програмної
системи підрахунку калорій
Для того, щоб працювати з програм-
ною системою, користувачу треба увійти до
неї, тому при завантаженні викликається ві-
кно аутентифікації, що отримує значення
логіну і пароля та передає їх до моделі по-
дання, яка в свою чергу застосовує репози-
торій користувачів, який підключено до
бази даних, для перевірки існування корис-
тувача із заданими показниками. Якщо та-
кого клієнта немає, то з'являється відпо-
відне повідомлення, після чого можна по-
вторити спробу входу. Якщо ж користувач
з вказаними логіном і паролем існує, зале-
жно від введених параметрів викликається
інтерфейс, реалізований у головному вікні
програми, і закривається форма аутентифі-
кації. Сторінка з назвою «Registration» від-
кривається у вікні «Login». Сторінка реєст-
рації користувача містить 10 полів для за-
повнення даних користувача, кнопку підт-
вердження реєстрації та посилання на сто-
рінку авторизації. Поля передбачають вве-
дення такої інформації: ім’я користувача;
пароль; вік; зріст; вага; стать; алергія (інші
захворювання); вегетаріанство; активність;
ціль. Усі поля, окрім «вегетаріанства», є
обов’язковими для заповнення.
Сторінка статистики – одна з основ-
них, бо відображає кілька різних статисти-
чних елементів для полегшення розуміння
споживання калорій користувачем. Діаг-
рама відображає відсоткове співвідно-
шення спожитих калорій до денної норми.
Інформація праворуч від діаграми вказує на
спожиті білки, жири та вуглеводи , а також
їх норму. Дані посередині сторінки показу-
ють кількість спожитих і спалених кілока-
лорій. А нижня стовпчикова діаграма дає
зрозуміти тенденцію споживання калорій
за останні 7 записів. Уся інформація онов-
люється автоматично після відповідних
внесених змін до бази даних. У програмі пе-
редбачено можливість користувачу зро-
бити свій внесок у розширення бази даних
страв. Для цього на відповідній сторінці
«Contribute» є форма для додавання страви,
що містить поле назви, спадаючий список
типу страви, прапорець для визначення, чи
є ця страва вегетаріанською, «контейнер»
для додавання продуктів. У програмній си-
стемі також є можливість зберігати страви
до списку улюблених. На сторінці налашту-
206
Інформаційні системи
вань користувач має змогу змінити окремо
такі показники, як вік, зріст, вага, ціль, рі-
вень активності, а також видалити свій ака-
унт. У разі видалення, усі пов’язані із кори-
стувачем записи зникнуть з бази даних. Для
перевірки працездатності програмної сис-
теми було обрано два методи: автоматизо-
ване модульне тестування та ручне тесту-
вання різноманітних сценаріїв за методом
«чорної скриньки». Особливу увагу приді-
лено тестуванню поведінки ViewModels,
які відповідають за логіку застосунка і зв'я-
зують користувацький інтерфейс з даними.
Це тестування проводилось за допомогою
NUnit Test та ReSharper. Науковий резуль-
татом дослідження є також оптимізація ді-
єти, передусім розроблення алгоритму для
покращення дієти на основі потреб у кало-
ріях і властивостей харчування для забезпе-
чення здорового способу життя. Подальші
наукові розвідки цього дослідження спря-
мовані на підтримку мовних і географічних
відмінностей із можливістю адаптації про-
грамної системи до різних мов і кулінарних
традицій різних регіонів світу.
Список літератури
1. Принципи раціонального здорового
харчування. Accessed: 10.04.2024.
http://surl.li/smryp.
2. R. Haque, R. Hhan, N. A.Shihavuddin,
M. Mahbubul Syeed, M. Faisal Uddin,
Lighweight and Parameter-Optimized
Real-Time Food Calorie Estimation
from Images Using CNN-Based
Approach, in: Appl. Sci. 2022, 12,
9733. https://doi.org/
10.3390/app12199733 (дата звер-
нення 08.04.2024).
3. R. Jayasingh .J., B. Nagajayanthi, M.
Neebha, M. Sagayam, A.A. Elngar,
New calculation of calorie content and
determining nutritional level from day-
to-day intake of food using Image Pro-
cessing, in: Research Square. 2022.
DOI: https://doi.org/10.21203/rs.3.rs-
1766525/v1
4. Як розрахувати свій базовий мета-
болізм: формула Харріса – Бене-
дикта. Apollo Online. URL:
https://apollo.online/blog – post/yak –
rozrahuvaty – svij – bazovyj – metabo-
lizm – formula – harrisa – benedykta/
(дата звернення: 23.01.2024).
5. H. Mitchell, Food Analysis, Springer
Science & Business Media, 2012. 500
p.
6. The Best Fitness Trackers and Watches
for Everyone. Accessed: 18.01.2024.
https://www.wired.com/gallery/best-
fitness-tracker/
7. QALight. Монолітна архітектура ПЗ.
Accessed: 18.01.2024.
https://qalight.ua/baza – znaniy/shho –
take – monolitna – arhitektura/
Одержано: 11.04.2024
Внутрішня рецензія отримана: 20.04.2024
Зовнішня рецензія отримана: 22.04.2024
Про авторів :
1Плескач Валентина ,
Доктор економічних наук,
кандидат технічних наук,
професор
https://orcid.org/0000-0003-0552-
0972.
1Вакуленко Євгенія
Студентка
https://orcid.org/0009-0002-4256-
4464
2Сердюк Анатолій ,
Кандидат технічних наук,
доцент
https://orcid.org/0000-0002-0787-
3889.
Місце роботи авторів:
1ФІТ КНУ імені Т.Шевченка
2Faculty of Power and
Aeronautical Engineering,
University of Technology,
00-665 Warsaw, Nowowiejska 24,
Poland
Anatolii.Serdiuk@pw.edu.pl
|