====== Środowiska wytwarzania oprogramownia ====== ===== 0. Przed rozpoczęciem zajęć... ===== * Przed rozpoczęciem zajęć: [[swo:instalacja_eclipse_cdt|Instalacja Eclipse i CDT (Windows)]] ===== 1. Program w C++ w środowisku Eclipse i CDT ===== * [[swo:lab_1_eclipse_i_cdt|Program w języku C++ w środowisku Eclipse i CDT]] ===== 2. Program w języku Java w środowisku Eclipse ===== * [[swo:lab_2_eclipse_i_java|Program w języku Java w środowisku Eclipse]] ===== 3. Profilowanie kodu ===== * [[http://home.agh.edu.pl/~ptm/didactic:sinwo:profiling|Profilowanie kodu]] ***Ćwiczenia 3 Profilowanie - uzupełnienie*** Napisz program który umieszcza dane i odczytuje w standardowych kontenerach STL #define ELEMENTS 100000 *Użyj list i dodaj ELEMENTS losowo wyranych liczb int oraz odczytaj ELEMENTS x losowo wybrane elementy *Użyj vector i zrób ten sam eksperyment *użyj map. Pierwszy element to indeks drugi to wartość. Dodaj elementy i sprawdź czas dostępu Dla Java *użyj List l = new ArrayList() i przeprowadź ten sam eksperyment *użyj Map map = new HashMap() i porównaj z map Oczekuje się, że dodawanie dla Java będzie wolne, bo każdy element w kontenerze jest referencją do obiektu, dla którego przydzielana jest pamięć na stercie, natomiast czas dostępu może być porównywalny z C++. **Generator liczb pseudolosowych** Random generator = new Random(System.currentTimeMillis()); l.get(generator.nextInt(ELEMENTS)); Ponieważ w JProfiler //nagrywamy// przebieg, konieczne jest zatrzymanie programu przed rzopoczęciem zbierania informacji. void main(String[]args) { System.in.read(); // program czeka na ENTER // Tu test Thread.sleep(60*1000); // program czeka 60 sekund } ===== 4. Narzędzia make/ant ===== {{:swo:make-krotki-opis.pdf|Krótki opis programu make}} Pisząc //makefile// eksperymentujemy na {{:swo:example-cpp.zip|tym zestawie plików}} [[http://home.agh.edu.pl/~ptm/didactic:sinwo:maketools|Narzędzia make/ant]] **Uwagi do Zadanie - etap 3** *Przykłady, jak automatycznnie okreslić listę plików: [[http://stackoverflow.com/questions/170467/makefiles-compile-all-c-files-at-once]] **Uwagi do Zadanie - etap 5** [[http://stackoverflow.com/questions/1814270/gcc-g-option-to-place-all-object-files-into-separate-directory]] ===== 5. maven i git===== *Część pierwsza: * Przeczytaj [[http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html|Maven in 5 minutes]] i zrealizuj podane tam instrukcje *[[http://home.agh.edu.pl/~ptm/didactic:sinwo:maketools#maven|Maven]] *Część druga: [[http://home.agh.edu.pl/~mrowka/dokuwiki/doku.php?id=git|git]] ==== git ==== 1. Utwórz lokalne repozytorium ''repo1'' i dodaj tam plik ''test.txt'' zawierający litery, wykonaj ''git add...'' i ''git commit...'' 2. Utwórz lokalne repozytorium ''repo2'' i pobierz tam przez ''pull'' pliki: ''git pull ../repo1'' 3. Zmodyfikuj plik w ''repo2'' -- zamien litery na cyfry, wykonaj ''git add...'' i ''git commit...'' 4. Zmodyfikuj plik w ''repo1'' -- dodaj kolejne litery , wykonaj ''git add...'' i ''git commit...'' 5. Pobierz pliki z ''repo2'': ''git pull ../repo2'' 6. Rozwiąż konflikt! git mergetool {{:po:imiona-2000-2016.csv}} {{:po:info_pracownicy.csv}} {{:po:ibuk_wykaz_pozycji.csv}} {{:po:pracownicy-geo-agh.csv}} [[:po:kolokwium_grupa_1|diagram czynności]] [[:po:kolokwium_grupa_2|diagram obiektów]] [[:po:kolokwium_grupa_3|DFD]]