Prvý návrh architektúry je dostupný na stránke projektu. Súčasná verzia ho jemne modifikuje.
- dátová štruktúra, slúžiaca na ukladanie budíkov je halda a nie spájaný zoznam. Pre zmenu som sa rozhodol po dlhšej úvahe, kedže halda má vhodnejšie časovo-priestorové parametre ako spájaný zoznam, hlavne pri pridávaní nových budíkov, kedže netreba hladať vhodné miesto pre každý budík, čím sa vyhneme implementácií v štýle insert sortu a zlepšíme časovú zločitosť z kvadratickej. Taktiež ušetríme pamäť, kedže nemusíme držať miesto pre smerníky na prvky, kedže halda sa dá implementovať do jednoduchého poľa premenlivej dĺžky.
- program je kompilovatelný a nepadá na žiadnom vstupe.
- dátová štruktúra (halda) má obslužné funkcie pre pridanie a odobranie prvku, ktoré ju uvedú z konzistentného stavu do konzistentného stavu.
- program vie súbežne čítať vstupy z konzoly, ukladať ich do haldy aj vypisovať na výstup informácie o programovom čase (Interval je jednoducho nastaviteľný v programe ako konštanta) a zvonení jednotlivých budíkov aj s informáciou o danom budíku [ID budika, plánovaný čas zvonenia, časová odchylka]
- program z doposial nezistených príčin vypisuje budíky v nesprávnom čase a to najbližšom nasledujúcom odbití programových hodín.
- dátová štruktúra - halda potrebuje dynamické pole, aby vedela obsahnuť ľubovoľné konečné množstvo budíkov. Momentálne je toto pole statické s počiatočnou veľkosťou 256, čo pri praktických testovaniach stačí, ale nieje správne. Je potrebné preto pridať funkciu, ktorá zabezpečí vektorizáciu daného poľa
- niesom ešte rozhodnutý, ako bude program končiť a z tohto dôvodu sa na konci nevypisuje súhrnná informácia o počte a presnosti obslúžených budíkov.