. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Analýza, návrh, testování a debugging v OOP PLIN048 – Základy programování pro humanitní obory Richard Holaj FF MU 25. března 2017 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Co nás dnes čeká? Analýza a návrh Vybrané metody analýzy a návrhu Testování a debugging Testování Debugging Cvičení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Reprezentace stavu pomocí objektů ▶ metody → splývá s rozdělením funkcionality ▶ komplexní motivování ▶ lingvisticky inspirovaná analýza ▶ biologicky inspirovaná analýza ▶ koherence, nezávislost, opakovatelnost ▶ kompoziční, hierarchické a cyklické vztahy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Interakce mezi objekty ▶ předání parametrem x atributem ▶ interakce s atributy x metodami ▶ události → event-driven development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Vybrané metody analýzy a návrhu ▶ totožné jako u funkcí (východisko objekty) ▶ top-down přístup (dekonstrukce) ▶ bottom-up přístup (konstrukce) ▶ dílčí činnosti cykly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Principy ▶ podobně jako u funkcí ▶ jednotlivé třídy ▶ interakce mezi nimi ▶ mockování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Vybrané metody debuggingu ▶ totožné jako u funkcí ▶ toString ▶ kontrolní výpisy ▶ debugger ▶ rubber duck debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Cvičení Napište program, který odpovídá činnostem, které vykonáváte při vaření (zvolte si libovolný recept). Pro implementaci použijte metodu top-down. Otestujte. Implementujte komplexní čísla spolu se základními operacemi. Pro implementaci použijte metodu bottom-upn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení Cvičení Navrhněte postup implementace obecné tahové hry pro dva hráče a hráče s počítačem pomocí metody prototypování. Otestujte. Upravte implementace předchozích příkladů tak, že do nich skryjete chybu/y. Nechte kolegu tyto chyby najít pomocí kontrolních výpisů a rubber duck debuggingu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analýza a návrh Testování a debugging Cvičení K zamyšlení Implementujte pomocí OOP zjednodušené některou ze základních algebraických struktur (tělesa, grupy, grupoidy, okruhy apod.). Otestujte.