Analýza využití návrhových vzorů a principů v aplikaci Home Assistant pomocí metod reverzního inženýrství / Design Patterns and Principles Analysis for Home Assistant Application using Reverse Engineering Methods
- Authors
- Publication Date
- Aug 27, 2021
- Source
- Digital Library of the Czech Technical University in Prague
- Keywords
- License
- Unknown
Abstract
Práce se zaměřuje na analýzu návrhu open-source aplikace Home Assistant. Home Assistant je systém pro správu chytrých domácnosti. Propojuje jednotlivé prvky chytré domácnosti a umožňuje jejich konfiguraci a správu. Aplikace je svým rozsahem netriviálni a je stále aktivně vyvijena. Mezi jeji hlavni výhody se řadi důraz na bezpečnost a soukromi. Systém řizeni chytré domácnosti musi být stabilni a spolehlivý, na což má vhodný návrh přimý dopad. Návrhové vzory a principy jsou šablonami kvalitniho návrhu, ověřené časem. Analýzou jejich využiti v aplikaci, lze tedy ziskat představu o kvalitě jejiho návrhu a určit, kde by návrh systému šel vylepšit. K analýze jsou využity vybrané metody reverzniho inženýrstvi. Reverzni inženýrstvi se zabývá rekonstrukci nedostupných, neexistujicich, nebo neúplných informaci, z informaci dostupných. Metody byly vybrány s ohledem na doménu Home Assistant a na skutečnost, že se jedná o open-source aplikaci. Analýza odhalila, že při návrhu aplikace byly návrhové vzory a principy brány ve velké miře v potaz. Jeji návrh lze tedy označit jako kvalitni. Existuji však i mista, terá principy porušuji, nebo která by byla vhodná k dalšimu využiti návrhových vzorů. / This thesis aims to analyze the design of the open-source application Home Assistant. Home Assistant is a system for smart home control. It connects elements of the smart home and allows their configuration and administration. Application has a non trivial scope and it is still being actively developed. Among its biggest advantages is focus on security and privacy. System which manages a smart home must be stable and reliable, which is directly impacted by proper design. Design principles and patterns are templates of good quality design proven by time. By analysing their use in an application, it is possible to get an idea about the quality of its design and to determine, where it would be possible to make improvements. Reverse engineering methods are used for this analysis. Reverse engineering focuses on reconstructing unavailable, non existing, or incomplete information, from the information that is available. Used methods were chosen with regards to the domain of Home Assistant Assistant and the fact that it is an open-source project. Analysis has detected that design patterns and principles were considered during the design of Home Assistant. Therefore, it is possible to consider the design of this application to be of good quality. Regardless, there are sections of the application that break the principles and also sections that would benefit from further use of desing patterns.