[[
✎ pl:miw:miw08_hqedaudit
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== HQedAudit ====== Łukasz Rachwalski, <LukaszRachwalski@gmail.com> **Audyt kodu**, dokumentacja, uzupełenie komentarzy w kodzie w języku angielskim, testowanie. Wymagana [[pl:miw:miw08_hqedaudit]]. ====== Spotkania ====== ===== 08.02.26 ===== * dostęp do charona i cvs, budowanie hqed * zaznajomienie się z: qt, <del>[[http://www.cvstrac.org|CVStrac]]</del>, doxygen ===== 08.03.04 ===== * zaznajonienie się z [[http://www.mantisbt.org/|manits]] [[http://www.mkgnu.net/?q=scmbug|scmbug]] * viewvc, mantis ===== 08.03.11 ===== * wdrożenie do pracy z narzędziami ===== 08.03.18 ===== * przejrzeć kod [[student:hqed|HQEd]] * wygenerować o siebie lokalnie dokumentacje doxygen * dopisywać brakujące komentarze -> //po ang// * zmiana komentarzy na angielski! * testowanie HQed... -> zgłaszanie bugów (trac) ===== 08.04.01 ===== * uporządkować dokumentację w wiki * zgłaszać uwagi ogólne ===== 08.04.15 ===== * pytania? ===== 08.05.27 ===== * test dostępu do trac * sprawozd: co zostało zrobione, statystyka, ile gdzie komentarzy etc., co nie skoment, wskazówki, uwagi co do koemntowania i doxygen * próba audytu hqed poprzez realizację przykładów z https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_ardcase_cs#control_system_models * w szczeg.: https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_ardcase_cs:bankomat i https://ai.ia.agh.edu.pl/wiki/pl:miw:miw08_ardcase_cs:biletomat * proces - plik .pl dla vardy od p. Kamińskiego - ./varda bankomat-model.pl - gax. - xxg('bankomat.xttml'). - w hqed load w.w - mamy puste tabele - czytamy opis systemu od p. Kamińskiego - tworzymy reguły w tablicach - raportujemy błędy hqed/varda/pKam do cvstrac - spisujemy ew. inne uwagi na str. projektu ===== 08.06.03 ===== * impl przykładów z [[pl:miw:miw08_xtt_serialization]] ====== Projekt ====== ===== Główne cele projektu ==== * Uzupełnić dokumentację w kodzie HQed i w wiki. * Przeprowadzić serię testów aplikacji. ===== Co się udało osiągnąć? ===== * Przeprowadzić testy apliacji na przykładach z [[pl:miw:miw08_xtt_serialization]]. * Skomentować wszystkie moduły XTT. * Skompilować hqed w środowisku na własnym komputerze. * Wstępnie zapoznać się z programem jako aplikacją oraz jego kodem źródłowym. * Wygenerować dokumentację na swoim komputerze. * Pobrać projekt ze zdalnego repozytorium (niestety nie charona) i skomentowanie z wykorzystaniem DoxyGen. * Zaznajomić z biblioteką Qt - kompilacja, budowanie prostych aplikacji z wykorzystaniem QtDesigner oraz opcjonalnie QDeveloper. * Zaznajomić się z CVS - uruchomienie na lokalnym komputerze bazy, dodanie projektu, update, check out, diffing, itp. * Poszerzyć znajomość DoxyGen - używanie wyłącznie konsoli, budowa pliku konfiguracyjnego .cfg, generowanie dokumentacji. * Zapoznanie się z obsługą systemu Mantis Bug Tracker - zalogowanie do projektu DEMO, poznanie podstawowych operacji na projektach, poznanie terminologii systemu i sposobu jego działania. ====== Środowisko pracy ====== * System operacyjny: Linux - Ubuntu ver. 7.10. * Concurrent Versions System (CVS) ver. 1.12.13. * Biblioteka Qt ver. 4 * DoxyGen ver. 1.5.3 * Mantis Bug Tracker ===== Konfiguracja poszczególnych komponentów - Linux ===== ==== Concurrent Versions System 1.12.13 ==== Producent Ubuntu [[http://ubuntu.pl/]] udostępnił wersje programu do pobrania za pośrednictwem Menedżera pakietów Synaptic. ==== Qt 4 ==== W celu zainstalowania poszczególnych komponentów biblioteki należy wpisać następujące komendy: * sudo apt-get install libqt4-core * sudo apt-get install libqt4-debug * sudo apt-get install libqt4-gui * sudo apt-get install libqt4-qt3support * sudo apt-get install libqt4-sql * sudo apt-get install qt4-designer * sudo apt-get install qt4-dev-tools * sudo apt-get install qt4-doc * sudo apt-get install qt4-qtconfig Edytor bądź środowisko programistyczne to już kwestia gustu i wygody programisty. Poniżej umieszczono jednak przykładowe aplikacje. * [[http://www.qdevelop.org]] - QDevelop środowisko które połączone jest z komponentami bilioteki Qt m.in. z QtDesigner. * [[http://www.eclipse.org/]] - Kompletne środowisko programistyczne dedykowane językowi Java. Wymagana jest instalacja środowiska uruchomieniowego Java. Ponadto należy dograć mechanizm obsługi C/C++ - CDT. Można to zrobić w sposów następujący [[http://cs.calvin.edu/curriculum/cs/112/resources/installingEclipse/cdt-3.3/]]. Źródło powyższych informacji to: [[http://www.clivecooper.co.uk/tutorial/index.html]]. ==== DoxyGen 1.5.3 ==== Producent Ubuntu [[http://ubuntu.pl/]] udostępnił wersje programu wraz z dokumentacją oraz nakładką graficzną do pobrania za pośrednictwem Menedżera pakietów Synaptic. ==== Mantis Bug Trucker 1.1.1 ==== Mantis Bug Trucker to darmowy system raportowania błędów powstałych podczas procesu tworzenia oprogramowania. Można go pobrać ze strony producenta [[http://www.mantisbt.org/]]. Został napisany w języku PHP i współpracuje z MySQL. Dzięki temu można go używać na wielu platformach m.in. Linux, Windows, Mac OS, OS/2. ====== Komentowanie źródeł projektu HQEd ====== ==== Struktura katalogowa projektu ==== Hqed |--C |--ARD |--XTT /// katalog wymaga komentowania M |--ARD |--XTT /// katalog wymaga komentowania V |--ARD |--XTT /// katalog wymaga komentowania ==== Założenia dotyczące wstawiania komentarzy ==== * Styl komentowania w [[http://www.stack.nl/~dimitri/doxygen/docblocks.html|DoxyGen]]: JavaDoc. * Komentowane są tylko pliki nagłówkowe. * Język komentarzy to angielski. ==== Skomentowane moduły ==== * [[https://hekate.ia.agh.edu.pl/webdoxy/hqed/doc/|Dokumentacja projektu]] ====== Testowanie ====== Testy przeprowadzono na przykładach zaczerpniętych z [[pl:miw:miw08_xtt_serialization]]. ===== Test 1 wyciąg narciarski ===== - Wygenerowany Xttml - Atrybuty * Dodawanie - OK * Usuwanie - OK * Edycja - OK * Pokazanie nieużywanych atrybutów - OK * Meneger Atrybutów - OK Uwagi: Okna dialogowe nie są ruchome przez co zasłaniają zawartość tabeli. ====== Podsumowujące sprawozdanie z projektu ====== Tematem projektu HQedAudit był audyt kodu aplikacji HQed. Audyt ten polegał na analizie i komentowaniu kodu programu w języku angielskim. Ponadto projekt przewidywał testowanie i zgłaszanie błędów aplikacji w systemie [[https://hekate.ia.agh.edu.pl/webtrac/hades/trac.vc|CVStrack]]. Realizacje projektu rozpoczęto od analizy źródeł HQed. Kod programu napisany został w języku C++. Do stworzenia interfejsu użytkownika (GUI) wykorzystano bibliotekę Qt w wersji 4. Autor HQed wprowadził również katalogowy podział źródeł na XTT oraz ARD. Zgodnie z poleceniem prowadzącego skomentowano tylko pliki znajdujące się w katalogach XTT. Następnie przystąpiono do komentowania źródeł. Proces ten przebiegał w następujący sposób. Na początku dokonano pobieżnej analizy metody w pliku cpp, a następnie na podstawie wyciągniętych wniosków komentowano nagłówek. Na słowa pochwały zasługuje autor aplikacji, który napisał kod bardzo przejrzysty oraz w dużej mierze skomentowany. Bardzo to uprościło pracę nad audytem kodu jednak nie wykluczyło przeprowadzonej analizy źródeł i potwierdzenia zapisanych informacji. W procesie komentowania przyjęto następujące założenia: * Komentowano tylko pliki nagłówkowe. * Jako generatora dokumentacji użyto DoxyGen. * Wykorzystano JavaDoc jako styl komentowania. Wszystkie komentarze plików nagłówkowych zostały zapisane w języku angielskim. Po skomentowaniu dowolnego modułu dokonywano kompilacji całej aplikacji oraz próby jej uruchomienia. Dokonywano bowiem zmian zarówno w pliku *.cpp jak i *.h. Pracując na źródłach pobranych z repozytorium za pośrednictwem [[http://furryland.org/~mikec/cvs.html|CVS]] wprowadzano wiele zmian. Starano się również aby kod który wysyłano z powrotem do repozytorium nie zawierał błędów. Proces komentowania kodu przebiegał w sposób systematyczny. Na cotygodniowych konsultacjach raportowane były postępy w pracach. Ponadto uzgadniano szczegóły co do planowanych zmian. Podczas realizacji projektu skomentowano 43 pliki nagłówkowe redagując 43 pliki cpp. Czas komentowania jednego pliku wahał się od ok. 1 godziny do 5-6 godzin. Po skomentowaniu wszystkich modułów dokonano ponownego przeglądu źródeł i niewielkich poprawek. Program został skompilowany oraz uruchomiony na Ubuntu wersji 7.10. Dzięki uprzejmości Marcina Kmińskiego <makamin@student.agh.edu.pl> do testu finalnego wykorzystano [[https://ai.ia.agh.edu.pl/wiki/_media/pl:miw:miw08_ardcase_cs:cashpoint-xttml_v3.xttml?id=pl%3Amiw%3Amiw08_ardcase_cs%3Abankomat&cache=cache|bankomat_xttml]]. Wszelkie potencjalne błędy, sugestie zgłaszano autorowi poprzez system raportowania błędów [[https://hekate.ia.agh.edu.pl/webtrac/hades/trac.vc|CVStrack]]. ====== Materiały pomocnicze ====== **1. CVS** * [[http://www-mrsrl.stanford.edu/~brian/cvstutorial/]] - całkiem nieźle napisany tutorial dla początkujących, zawiera liczne przykłady użycia podstawowych funkcji CVS. * [[http://cvsbook.red-bean.com/cvsbook.html#A%20Day%20With%20CVS]] - książka "Open Source Development with CVS, 3rd Edition" autorstwa Karl Fogel i Moshe Bar, obszernie opisująca CVS. * [[http://www.nongnu.org/cvs/]] - stąd można pobrać program oraz znaleźć liczne odwołania do literatury. **2. Qt** * [[http://trolltech.com/products/qt]] - wszystkie potrzebne informacje z zakresu biblioteki Qt. **3. DoxyGen** * [[http://www.stack.nl/~dimitri/doxygen/]] - manual, FAQ's oraz inne informacje dotyczące DoxyGen. **4. Mantis Bug Trucker** * [[http://www.mantisbt.org/]] - darmowe wersje release systemu Mantis, manual oraz wiele użytecznych materiałów.
pl/miw/miw08_hqedaudit.1211912925.txt.gz
· ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry