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é.