|
|
|
Posudok k prototypu tímu č.11
|
|
Prezentácia
Prezentácie uskutočnenej v decembri roku
1999 sa súčastnili členovia nášho riešiteľského týmu s členmi týmu 11 za
účasti odberateľov. Prezentácia týmu č.11 zahŕňala predvedenie dvoch časti
systému :
-
porovnávanie zdrojových programov
-
časť systému pre testovanie funkčnosti
Porovnávanie zadaní
Konkurenčný tím si za implementačný jazyk
pre časť na porovnávanie podobností zadaní zvolil programovací jazyk PERL.
Bohužiaľ jedinými výhodami tejto voľby sú :
-
portabilita na rôzne hardvérové architektúry a operačné systémy
-
silná podpora práce s reťazcami a regulárnymi výrazmi
Prvá výhoda - teda portabilita na viaceré
systémy je však úplne potlačená návrhom ostatných častí systému, ktoré
sú navrhnuté špeciálne pre operačný systém LINUX a architektúru Intel x86
- tu sa jedná hlavne o systém na kontrolu správnosti zadaní. Toto neberiem
ako výčitku, chcel by som len poukázať na to, že túto výhodu nemá zmysel
brať do úvahy, pretože navrhnúť celý systém nezávisle od architektúry nemá
zmysel a bolo by to veľmi náročné. Napokon jazyk C++ spolu so štandardizovanými
knižnicami je dokonca prenositeľnejší, pretože kompilátor jazyka C++ existuje
prakticky na všetkých platformách.
Keďže aj pre iné programovacie jazyky
(napr. C++) existujú špecializované knižnice na prácu s reťazcami a regulárnymi
výrazmi, druhá výhoda je prevážená nevýhodami programovacieho jazyka PERL.
Nevýhodami sú :
-
ťažšia udržiavateľnosť - táto vyplýva z ťažkej čitaleľnosti programov jazyka
PERL, najmä čo sa týka regulárnych výrazov, vďaka čomu sa tento jazyk nazýva
"write-only", čo znamená že niekedy aj skúsený programátor v tomto jazyku
a v cudzom programe veľmi ťažko pochopí prácu so zložitejšími regulárnymi
výrazmi. K dobrej udržiavateľnosti neprispieva ani fakt, že systém ako
celok je implementovaný v dvoch programovacích jazykoch - C++ a PERL, z
čoho vyplýva nutnosť ovládania oboch jazykov pri údržbe systému.
-
nižší výkon - je dôsledkom povahy programovacieho - či skôr skriptovacieho
jazyka PERL, ktorý je interpretačný. Keďže táto časť systému bude mať pravdepodobne
najväčšie nároky na čas pri porovnávaní veľkého počtu zadaní, ktorý sa
bude každý rok zvyšovať, bolo by vhodnejšie na tento účel zvoliť kompilačný
jazyk z dôvodu vyššej efektivity.
Samotná metóda porovnávania sa nám javí
zaujímavá, a v tomto štádiu vývoja systému prepracovanejšia ako naša, nakoľko
my sme implementovali prototyp na zahodenie. Podľa prezentácie sa metóda
použitá na porovnávanie javí ako vhodná, a je vidieť, že jej návrhu venovali
veľa času.
Testovanie funkčnosti
V rámci podsystému pre testovanie funkčnosti
bol predvedený modul pre simuláciu zadávania vstupov do vykonávateľného
programu. Podľa prezentácie je modul schopný vnútiť aplikácii vstup z
klávesnice pri oboch režimoch čítania znakov, teda aj pri čítaní pomocou
systémových volaní a taktiež pri čítaní cez volania BIOS. Riešenie vstupu
je zrejme korektne vyriešené. Ostatné moduly tohto podsystému neboli v
čase prezentácie dokončené.
|
|