Doxygen. Bogdan Kreczmer. ZPCiR ICT PWr pokój 307 budynek C3.

Podobne dokumenty
Doxygen. Bogdan Kreczmer.

Przykłady oprogramowania wykorzystujacego Qt

Zasady Programowania (Projektowanie) C++ - część 3 1/17 Doxygen - wprowadzenie

Dokumentacja i systemy jako±ci

Pola i metody statyczne

Wartości domyślne, przeciażenia funkcji

Lista dwukierunkowa - przykład implementacji destruktorów

Wprowadzenie do szablonów szablony funkcji

Wartości domyślne, przeciażenia funkcji

Wyliczanie wyrażenia obiekty tymczasowe

Wprowadzenie do szablonów szablony funkcji

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Qt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska

Qt - edycja, obsługa zdarzeń, rozmieszczenie kontrolek

Qt sygnały i designer

Konstruktor kopiujacy

Aplikacja po polsku. Bogdan Kreczmer. ZPCiR ICT PWr pokój 307 budynek C3.

Wprowadzenie do szablonów klas

Operacje wejścia/wyjścia odsłona pierwsza

Qt - podstawowe cechy

Podejście obiektowe - podstawowe pojęcia

Referencje do zmiennych i obiektów

Qt - dialogi. Bogdan Kreczmer. ZPCiR ICT PWR pokój 307 budynek C3

Przesłanianie nazw, przestrzenie nazw

Klasa, metody, rozwijanie w linii

Wybrane narzędzia wspomagające dokumentowanie programu

Klasa, metody, rozwijanie w linii

Praca z aplikacją designer

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Operacje wejścia/wyjścia (odsłona druga) - pliki

Schemat konstrukcja pliku Makefile

Style programowania - krótki przeglad

Szablon klasy std::vector

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Geneza powstania języka C++

Struktury systemów operacyjnych

Wprowadzenie do UML, przykład użycia kolizja

Zasoby, pliki graficzne

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Geneza powstania języka C++

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Szablony funkcji i szablony klas

Podstawy programowania w Qt4

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Sphinx - system dokumentacji dla Pythona

Java jako język programowania

Szablon klasy std::list

Diagramy UML, przykład problemu kolizji

Weryfikatory, zasoby graficzne

Wprowadzenie do kompilatorów

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

The Graphics View Framework. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. he Graphics View Framework - architektura

Zaawansowane programowanie w C++ (PCP)

Programowanie niskopoziomowe

Programowanie obiektowe zastosowanie języka Java SE

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Podstawy programowania. Wprowadzenie

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

#line #endif #ifndef #pragma

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

dlibra 3.0 Marcin Heliński

Przestrzenie nazw. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Tworzenie oprogramowania

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Generator dokumentacji dla kodów źródłowych środowiska Matlab

Materiały do zajęć VII

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

Języki i metody programowania Java. Wykład 2 (część 2)

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

1 Wprowadzenie do J2EE

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

Zaawansowane programowanie w C++

Przypomnienie o klasach i obiektach

Systemy operacyjne. Informatyka Stosowana, I rok. Krzysztof Wilk. Katedra Informatyki Stosowanej i Modelowania

Programowanie współbieżne i rozproszone

Produkcja by CTI. Proces instalacji, ważne informacje oraz konfiguracja

Spis treści. 1 Java T M

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

WPROWADZENIE DO JĘZYKA JAVA

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

16) Wprowadzenie do raportowania Rave

Zad. 5: Układ równań liniowych liczb zespolonych

HermesEX. Dokumentacja serwisowa v

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Podstawy programowania III WYKŁAD 4

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Projektowanie klas c.d. Projektowanie klas przykład

Transkrypt:

Doxygen Bogdan Kreczmer ZPCiR ICT PWr pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2004 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępiony pod warunkiem wykorzystania wyłacznie do własnych prywatnych potrzeb i może on być kopiowany wyłacznie w całości, razem z ninijesza strona tytułowa.

Projekty wykorzystujace doxygen Autor projektu: Dimitri van Heesch Strona projektu: http://www.doxygen.org (http://www.stack.nl/ dimitri/doxygen/) Doxygen jest systemem dokumentowania oprogramowania pisanego w C++, C, Java, Objective-C, IDL, C# oraz D. System ten może generować dokumentację w HTML oraz źródła dla L A T E X a. Dokumentacja może mieć format RTF (MS-Word), PostScript, PDF (z hyper-łacznikami), skompresowanego HTML oraz stron podręcznika w systemie UNIX dla programu man. Dokumentacja może być generowana bezpośrednio ze źródeł jak też plików stowarzyszonych z nimi. Doxygen jest tworzonym dla systemu Linux i Mac OS w oparciu o bibliotekę Qt. Oprogramownie to jest przenośne. Może być uruchomione pod system UNIX i jego klonami. Dostępne jest również w postaci binarnej dla system MS Windows. 1

Projekty wykorzystujace doxygen Bardziej znane i ciekawsze projekty wykorzystujace do tworzenia dokumentacji doxygen: KDE - dokumentacja różnych bibliotek. Samba OSCAR (http://www.oscar-net.org) tworzy ogólna architekturę dla systemów robotycznych z ukierunkowaniem na roboty mobilne. XEngine (http://xengine.sourceforge.net) silnik dla wizualizacji 3D w czasie rzeczywistym, jest on niezależny od platformy i typu API wykorzystywanego renderowania. 2

Inne systemy tworzenia dokumentacji Niekomercyjne: AutoDOC C2HTML HyperSQL RoboDoc Autoduck Doc++ Javadoc ScanDoc Cocoon DocClass KDoc Synopsis CcDoc Epydoc Natural Docs Tydoc CppDoc gtk-doc Perceps VBDOX Cxref HappyDoc phpdocumentor cxxwrap HeaderDoc PHPDoc Cxx2HTML HTMLgen ReThree-C++ Komercyjne: DocBuilder Doc-o-matic Together VBXC DocJet ObjectManual CC-Rider 3

Doxygen - główne kompnenty doxygen - program generujacy dokumentację na podstawie utworzonego wcześniej pliku konfiguracyjnego i przegladanych plików (źródeł programów i nie tylko). doxytag - program pomocniczy pozwalajacy integrować zewnętrzna dokumentację (do której doxygen nie ma bezpośredniego dostępu) z dokumentacja tworzona przez doxygen. doxywizard - graficzna aplikacja ułatwiajaca tworzenie pliku konfiguracyjnego dla dokumentacji danego projektu. Komponenty stowarzyszone: graphviz - oprogramowanie wykorzystywane do towrzenia rysunków grafów. Strona projektu: http://www.research.att.com/sw/tools/graphviz/ 4

Doxygen - generacja dokumentacji Przepływ informacji w Doxygen. 5

Doxywizard - główne okienko Rysunek 1: Okienko główne aplikacji doxywizard. 6

Doxygen - Makefile start_doxy : doxygen bec.doxy 2> make.log less make.log Przekierowania wyjścia standard error pozwala odcedzić komunikaty o błędach od pozostałych kontrolnych komunikatów. Ze względu na bardzo duża ilość przetwarzanych plików liczba pozostałych komunikatów jest bardzo duża. Selekcja ich jest więc bardzo wskazana. 7

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 1) Rysunek 2: Podstawowe opcje. 8

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 2) Rysunek 3: Opcje sposobu tworzenia dokumentacji. 9

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 3) Rysunek 4: Opcje komunikatów. 10

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 4) Rysunek 5: Opcje ścieżek do źródeł, przykładów, obrazków oraz wzorców nazw. 11

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 5) Rysunek 6: Opcje cytowania źródeł. 12

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 6) Rysunek 7: Opcje tworzenia indeksu. 13

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 7) Rysunek 8: Opcje dla dokumentu HTML. 14

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 8) Rysunek 9: Opcje przetwarzania polecen preprocesora. 15

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 9) Rysunek 10: Opcje umożliwiajace generację dosyłaczy do zewnętrznej dokumentacji. 16

Doxywizard - tworzenie pliku konfiguracyjnego (cz. 10) Rysunek 11: Opcje dla generacji grafów. 17

Doxygen - realizacja dokumentacji Rysunek 12: Strona tytułowa zdokumentowanego systemu. 18

Doxygen - realizacja dokumentacji Rysunek 13: Strona dokumentacji plików. 19

Doxygen - dokumentacja pliku (cz. 1) Rysunek 14: Strona dokumentacji pliku. 20

Doxygen - dokumentacja pliku (cz. 2) Rysunek 15: Strona dokumentacji pliku. 21

Doxygen - dokumentacja pliku #ifndef PIEKNYCHCZAROWNIC_HH #define PIEKNYCHCZAROWNIC_HH /*! \file pieknaczarownica.hh * * \brief Zawiera definicję klasy PieknaCzarownica * * Plik zawiera definicję klasy PieknaCzarownica. * Obiekty tej klasy są składnikami listy modelowanej przez * klasę ListaPieknychCzarownic. * * \author Jan Gandalf * \date 2003.12.01 * \version 1.00.00 */... #endif 22

Doxygen - dokumentacja klasy Rysunek 16: Strona dokumentacji klasy. 23

Doxygen - dokumentacja klasy... /*! \class PieknaCzarownica * \brief Modeluje piękną czarownicę * * Klasa modeluje prawdziwą piękną czarownicę. Atrybutami klasy są * dane dotyczące ekwipunku pięknej czarownicy tj. szklana kula, * czarne koty, miotła wyścigowa (patrz opis poszczególnych pól, np. * \link PieknaCzarownica::_IloscCzarnychKotow * _IloscCzarnychKotow\endlink)\n * Kryterium przynależności do klasy jest subiektywne. Ponadto * przyjmuje się, że każda czarodziejka jest z definicji piękną * czarownicą.\n */ class PieknaCzarownica {... };... 24

Doxygen - dokumentacja pól klasy Rysunek 17: Strona dokumentacji pól klasy. 25

... Doxygen - dokumentacja pól class PieknaCzarownica { /*! \brief Ilość czarnych kotów * * Pole zawiera liczbę czarnych kotów jakie posiada piękna czarownica. * Dopuszcza się, że ilość może być równa 0. */ unsigned int IloscCzarnychKotow; /*! \brief Ilość szklanych kul * * Pole zawiera liczbę szklanych kul. Zakłada się, że ilość musi być * zawsze większa od 0. */ unsigned int IloscKul; /*! \brief Marka i oznaczenie miotły wyścigowej. * * Pole zawiera markę i oznaczenie miotły wyścigowej. * Nazwa pusta oznacza brak miotły. */ std::string public:... };... MarkaMiotlyWyscigowej; 26

Doxygen - dokumentacja metod Rysunek 18: Strona dokumentacji metod klasy. 27

... Doxygen - dokumentacja metod class PieknaCzarownica {... public: /*! \brief Udostępnia ilość kul * * Udostępnia ilość kul. Jest ona wartością przechowywaną w * polu \link PieknaCzarownica::_IloscKul _IloscKul\endlink. */ unsigned int WezIloscKul() const ; /*! * \brief Zmienia ilość kul * * Wpisuje nową wartość ilości kul, jaką posiada piękna czarownica. * \param Ilosc - nowa wartość ilości kul. * \pre Wartość parametru \e Ilosc musi być zawsze większa od 0. * \post Wartość parametru \e Ilosc zostaje przypisana polu * \link PieknaCzarownica::_IloscKul _IloscKul\endlink. */ void ZmienIloscKul( unsigned int Ilosc ); };... 28