Statyczna analiza kodu źródłowego

Wielkość: px
Rozpocząć pokaz od strony:

Download "Statyczna analiza kodu źródłowego"

Transkrypt

1 Statyczna analiza kodu źródłowego Tomasz Nowak, Zespół Bezpieczeństwa PCSS Poznań, r. Szkolenie Działu Komputerów Dużej Mocy

2

3 Informacje organizacyjne Ankieta krótka anonimowa bardzo pomocna w organizacji przyszłych szkoleń Lista obecności nie jest anonimowa ;-) proszę zaznaczyć, jeśli NIE życzycie sobie Państwo otrzymywania informacji o kolejnych szkoleniach Prezentacja dostępna na stronach WWW: 3

4

5

6 Szkolenia Zespołu Bezpieczeństwa PCSS Szkolenia Działu KDM PCSS (otwarte) Możliwość zgłoszenia tematu Szkolenia projektowe Centrum Innowacji Microsoft (otwarte GN3 bezpieczne programowanie (dla uczestników projektu) Szkolenia dla firm i organizacji (nowość) Wprowadzenie do kwestii bezpieczeństwa IT 6

7 Szkolenie bezpieczne programowanie 2-dniowe szkolenie angielskojęzyczne Wykorzystanie technologii podnoszących bezpieczeństwo usług Przegląd podatności bezpieczeństwa (C/C++, Java, PHP) Statyczna analiza kodu źródłowego Materiały z czerwca 2010: strona ZB PCSS Styczeń 2011: kolejna edycja (prawdopodobnie udostępnione zostaną nagrania wykładów) 7

8 Szkolenie wprowadzenie do bezpieczeństwa IT 2-4 godzinne szkolenie dla wszystkich pracowników korzystających z infrastruktury IT Dlaczego bezpieczeństwo jest ważne? Ochrona mojego komputera Bezpieczne korzystanie z Internetu Tworzenie i wykorzystywanie silnych haseł Gdy celem jest człowiek spam, łańcuszki, socjotechniki Szkolenie w siedzibie PCSS lub organizacji Warunki podlegają indywidualnym negocjacjom Kontakt: gerard.frankowski@man.poznan.pl 8

9 Statyczna analiza kodu źródłowego 9

10 Agenda Problemy z błędami w oprogramowaniu Analizatory w praktyce (wg języków) Automatyzacja narzędzi i rozwiązania Continuous Integration 10

11 Cel: niezawodne oprogramowanie Czasem: błędy nie mają znaczenia Niższe koszty utrzymania Telefony / e od klientów Wykonanie poprawek Wydanie nowych wersji (Płatny support szczególne wymagania) Utrzymanie zadowolenia klienta Klienci z polecenia Zadowolenie zespołu Nowe projekty 11

12 Droga do niezawodnego oprogramowania Dobre praktyki tworzenia kodu Właściwy paradygmat (obiektowo/deklaratywnie...) Zrozumiały kod (identyfikatory, unikanie skrótów, komentarze) Unikanie trudnych w analizie konstrukcji (goto, eval) Współtworzenie programu i dokumentacji Analiza kodu statyczna Testy (wszelkiego rodzaju) dynamiczne Security best practices for administrators, developers and users 12

13 Dwa ważne pytania: Statyczna analiza kodu Automatyczne skanery czy czytanie kodu? Narzędzia dla programisty czy specjalisty do spraw bezpieczeństwa? 13

14 Cechy skanerów kodu źródłowego (1) Zalety Duża szybkość działania Możliwość uruchamiania okresowego w celu wykrycia nowych błędów lub weryfikacji usunięcia poprzednio wykrytych podatności Istnieje szereg narzędzi dostępnych bez opłat, jak również możliwych do samodzielnego rozszerzania (tworzenie reguł, dodatkowych wtyczek np. YASCA) 14

15 Cechy skanerów kodu źródłowego (2) Wady Nie zawsze mamy dostęp do kodu źródłowego Wykrywają jedynie błędy najłatwiejsze do strukturalnego zdefiniowania Bezwzględnie wymagają uzupełnienia przez manualny przegląd kodu Wysokie prawdopodobieństwo wystąpienia false positive Niektóre darmowe narzędzia działają nieoptymalnie, mają skomplikowany interfejs, niekompletną dokumentację, brak wsparcia 15

16 Dla kogo? Automatyczne skanery kodu wykorzystują przede wszystkim programiści Prezentujemy Państwu punkt widzenia eksperta bezpieczeństwa Narzędzia dedykowane do wykrywania błędów bezpieczeństwa to tylko część tego obszaru Takie narzędzia również mogą przydać się programistom (niekoniecznie w pełnym zakresie) Znajomość dobrych praktyk bezpiecznego programowania pomoże programistom w stosowaniu narzędzi i wykryciu false positives 16

17 C/C++ Analizatory w praktyce cppcheck rats (splint potrzebuje wszystkich nagłówków) PHP Java Python Języki webowe 17

18 C, C++: cppcheck Narzędzie do analizy kodu w C i C++ Napisane w C++ Wielowątkowość Dostępne z CLI, GUI i jako biblioteka Raporty w txt, XML, HTML Więcej: 18

19 Błędy w zarządzaniu pamięcią C/C++: wycieki pamięci Wyjście z funkcji pozostawia niezwolnioną pamięć Destruktor nie zwalnia pamięci zaalokowanej w konstruktorze Zwolnienie struktury bez zwalniania pamięci jej pól C/C++: niezgodne metody alokacji/dealokacji malloc() / free() new / delete new [ ] / delete [ ] g_malloc() / g_free() 19

20 Przykład wykrycia błędu w zarządzaniu pamięcią $ apt-get source libcroco3 $ cppcheck -quiet libcroco-0.6.2/src/*.c [cr-sel-eng.c:1381]: (error) Common realloc mistake: "stmts_tab" nulled but not freed upon failure [cr-sel-eng.c:1438]: (error) Common realloc mistake: "stmts_tab" nulled but not freed upon failure stmts_tab = g_try_realloc (stmts_tab, (tab_size + stmts_chunck_size) * sizeof (CRStatement *)); if (!stmts_tab) { cr_utils_trace_info ("Out of memory"); status = CR_ERROR; goto error; } /*... */ error: if (stmts_tab) { g_free (stmts_tab); stmts_tab = NULL; 20

21 Błędy w używaniu wskaźników [cr-statement.c:626]: (error) Possible null pointer dereference: stringue - otherwise it is redundant to check if stringue is null at line g_string_append (stringue, "}"); 626 result = stringue->str; if (stringue) { 629 g_string_free (stringue, FALSE); 630 stringue = NULL; 631 } ==================== $ apt-get source asterisk-espeak && cppcheck asterisk-espeak-*/*.c Checking asterisk-espeak-0.1/app_espeak.c... [asterisk-espeak-0.1/app_espeak.c:258]: (error) Memory leak: handle handle = (void *) malloc(sizeof(void *)); 258 handle = resample_open(1, ratio, ratio); 259 if (!handle) { 260 ast_log(log_error, "espeak: Failed open resampler\n"); 21

22 C++ Standard Template Library poprawność korzystania z API std::vector<int>::iterator iter = ints.begin() + 5; ints.insert(ints.begin(), 1); ++iter; (error) After insert, the iterator 'iter' may be invalid list<int> l1; list<int> l2; for (list<int>::iterator it = l1.begin(); it!= l2.end(); ++it) (error) Same iterator is used with both l1 and l std::vector<int> foo; for (unsigned int ii = 0; ii <= foo.size(); ++ii) { foo[ii] = 0; } (error) When ii==foo.size(), foo[ii] is out of bounds std::list<int> x; if (x.size()!= 0) {} (style) Use x.empty() instead of x.size() to guarantee fast code 22 more test cases: cppcheck/test/teststl.cpp

23 Używanie zasobów [samba/testsuite/nsswitch/getpwent_r.c]: Wrong condition used to check fopen() PATCH: - if ((fptr = fopen(fname, "w")) < 0) { + if ((fptr = fopen(fname, "w")) == NULL) { fprintf(stderr, "ERROR: could not open file %s: %s\n", fname, sys_errlist[errno]); [strongswan-4.4.1/libcharon/plugins/ha/ha_kernel.c:176]: (error) Resource leak: fd int fd; fd = open(file, O_RDONLY); if (fd == -1) { DBG1(DBG_CFG, "opening CLUSTERIP file '%s' failed: %s", file, strerror(errno)); return 0; } /*...*/ return; 23

24 C/C++: RATS Rough Auditing Tool for Security Odnajduje wystąpienia ryzykownych funkcji Obsługa wielu języków: C, C++, Perl PHP Python 24

25 RATS: wyniki print-bgp.c:2132: High: fixed size local buffer addrtoname.c:115: High: gethostbyaddr addrtoname.c:125: High: strcpy print-lldp.c:719: High: printf print-atalk.c:559: High: sscanf tcpdump.c:542: High: vfprintf tcpdump.c:603: High: getopt... 25

26 Kompilator też ostrzega gcc.gnu.org/onlinedocs/gcc/warning- Options.html pedantic ostrzeżenia wg standardów Issue all the warnings demanded by strict ISO C and ISO C++ Wall ostrzeżenia o podejrzanych konstrukcjach, które łatwo wyeliminować (nieużywane zmienne, return w funkcjach void, używanie niezainicjowanych zmiennych) Wextra (dawniej W) ostrzeżenia o trudniejszych problemach (np. wykrycie sprawdzeń wartości zmiennej unsigned < 0) 26

27 C/C++ PHP Pixy RIPS Java Python Języki webowe Analizatory w praktyce 27

28 PHP: Pixy Analizator przepływu danych w plikach PHP4 Szczególnie w poszukiwaniu błędów skutkujących podatnością na: SQL Injection Cross Site Scripting (XSS) Napisany w Javie 28

29

30 Pixy: kod potwierdza użycie zmiennej 210 if($info['userinfo']['name']){ 211 msg('you are currently logged in as '. $_SERVER['REMOTE_USER']. ' ('.$INFO['userinfo']['name'].')',0); 212 msg('you are part of the groups '.join($info['userinfo']['grps'],', '),0); 213 }else{ 214 msg('you are currently not logged in',0); 215 } Funkcja msg nie zakoduje znaków specjalnych HTML do encji (np. < lt;) Oznacza to, że w nazwie użytkownika można przemycić kod Javascript i uruchamiać go z każdym wyświetleniem strony (persistent XSS) 30

31 PHP: RIPS Analizator kodu PHP (napisany w PHP) XSS, SQL injection i inne Wizualizacja zmiennych, powiązanych funkcji, warunków Filtrowanie wyników (verbosity, type) Generator exploitów dla przeglądarki CURL 31

32 32

33 C/C++ PHP Java FindBugs PMD Python Języki webowe Analizatory w praktyce 33

34

35 Usage FindBugs Uruchamianie: pobranie, java -jar ze źródeł (Ant) pluginy do IDE, np. Eclipse, NetBeans zadanie Ant i wtyczka do maven report WebStart findbugs.cs.umd.edu/demo/ Dodatkowe wzorce fb-contrib.sourceforge.net Materiał: bytecode warto jednak podłączyć kod źródłowy i wykorzystywane biblioteki Opisy znalezisk w Google 35

36 FindBugs screenshot 36

37

38

39

40 Java: PMD PMD skaner kodu Java Crossplatform (Java) 40

41 Uruchamianie ręczne: Używanie PMD Z binarnej paczki lub ze źródeł Generowanie raportu w HTML Użycie wtyczki wiele dostępnych: JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, and Emacs Plugins for IDEs, e.g. Eclipse and NetBeans Zadanie Anta, wtyczka do Maven Report 41

42 PMD screenshot (DEMO) 42

43 Otrzymane wyniki Dziesiątki zbiorów reguł pod adresem Większość znalezisk nie jest poważna Eclipse może poprawić wiele ostrzeżeń Clean up Specjalny moduł Copy/Paste Detector Wsparcie dla wielu języków programowania Przykład: 43

44 C/C++ PHP Java Python pylint pychecker pyflakes Języki webowe Analizatory w praktyce 44

45 Python pylint użycie i definicje zmiennych, importy, klasy wiele reguł dotyczących stylu kodowania Na podobnej zasadzie: pychecker, pyflakes Framework Django: django-lint 45

46 Przerwa (a następnie część II) Statyczna analiza kodu źródłowego Poznań, r.

47 Analizatory w praktyce C/C++ PHP Java Python Języki webowe JavaScript XML / HTML CSS Inne 47

48 JavaScript: jslint Głównie styl kodowania Dostępny na kilka sposobów skrypt WSH (Windows) skrypt Rhino ( JavaScript engine in Java ) 48

49 XML / HTML: tidy Validate, correct, and pretty-print HTML files Ciekawe możliwości, np.: HTML XHTML <FONT>, <CENTER>,... CSS Bardzo konfigurowalny moje ulubione parametry dla XML: -indent -xml -utf8 -wrap

50

51 CSS: W3C Validator Usługa Walidacji CSS W3C Spisuje się najlepiej, generuje ładny raport Inne programiki głównie pretty-printing csslint csstidy 51

52 (X)HTML poprawne łącza linklint przykładowa składnia: linklint -error -http -host 52

53 Integracja narzędzi z SVN (1) Cel: z listą wykrytych błędów Użycie punktu zaczepienia po zatwierdzeniu transakcji: repozytorium/hooks/post-commit Kroki svn update uruchomienie narzędzia sprawdzenie liczby błędów i wysłanie a Przykład dla FindBugs: 53

54 Integracja narzędzi z SVN (2) Cel: zablokowanie zatwierdzenia kodu z błędami Użycie punktu zaczepienia przed zatwierdzeniem: repozytorium/hooks/pre-commit Kroki svnlook changed repozytorium (dla każdego pliku) svnlook cat repozytorium plik uruchomienie narzędzia wykrycie błędów, wypisanie ich na stderr i zwrócenie kodu różnego od zera Przykład dla Pythona: 54

55 Continous Integration (3) Ciągła integracja polega na budowaniu przez serwer bieżącej wersji oprogramowania Przeprowadzenie najróżniejszych testów i analiz Serwer CI Hudson (open-source) posiada zestaw wtyczek 55

56 Więcej informacji FindBugs Pixy PMD Python Frama-C analyzer 56

57 PCSS Dane kontaktowe Zespół Bezpieczeństwa PCSS Autor prezentacji 57

58 Pytania, dyskusja 58

59 Dziękuję za uwagę!

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid Tomasz Kuczyński Dział Aplikacji Tomasz Nowak Zespół Bezpieczeństwa Wrocław, 2.12.2010 r. Konferencja i3: internet

Bardziej szczegółowo

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

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

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

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Program szkolenia: Continuous Integration i Git

Program szkolenia: Continuous Integration i Git Program szkolenia: Continuous Integration i Git Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Continuous Integration i Git tools-git-ci Narzędzia developerzy testerzy 2 dni 50%

Bardziej szczegółowo

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework mgr inż. Łukasz Stefanowicz dr inż.

Bardziej szczegółowo

Dokumentacja kompilacji źródeł aplikacji 1.0

Dokumentacja kompilacji źródeł aplikacji 1.0 Projekt dofinansowany ze środków Mechanizmu Finansowego Europejskiego Obszaru Gospodarczego Dokumentacja kompilacji źródeł aplikacji Projekt: Wypracowanie i wdrożenie innowacyjnych metod integracji danych

Bardziej szczegółowo

Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP 19.11.2014. The OWASP Foundation http://www.owasp.org

Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? OWASP 19.11.2014. The OWASP Foundation http://www.owasp.org Jak efektywnie wykrywać podatności bezpieczeństwa w aplikacjach? dr inż. Jakub Botwicz CISSP, ECSA, GWAPT 19.11.2014 jakub.botwicz@gmail.com Copyright The Foundation Permission is granted to copy, distribute

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

Bardziej szczegółowo

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010 Bezpieczeństwo interoperacyjnego hostingu Gerard Frankowski, Zespół Bezpieczeństwa PCSS 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1 Agenda Wprowadzenie Zespół Bezpieczeństwa

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

Dokumentacja techniczna API systemu SimPay.pl

Dokumentacja techniczna API systemu SimPay.pl Wprowadzenie Dokumentacja techniczna API systemu SimPay.pl Wersja 1.0 z dnia 24.03.2015 r. API serwisu SimPay.pl opiera się o danych wysyłanych i zwracanych w formie JSON. W przypadku napotkania jakiegokolwiek

Bardziej szczegółowo

DYNAMICZNE PRZYDZIELANIE PAMIECI

DYNAMICZNE PRZYDZIELANIE PAMIECI DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne

Bardziej szczegółowo

Budowanie interfejsów do baz danych

Budowanie interfejsów do baz danych Budowanie interfejsów do baz danych Wprowadzenie Organizacja zajęć O sobie O Projekcie Termin rozpoczęcia Tematyka (propozycje?) Narzędzia (pendrive lub hosting) 2008 Szczepan Bednarz 2 z 20 Bazy danych

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

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

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku

Bardziej szczegółowo

Biblioteka standardowa - operacje wejścia/wyjścia

Biblioteka standardowa - operacje wejścia/wyjścia Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline

Bardziej szczegółowo

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java

WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH. Mirosław Gołda, Programista Java WYKORZYSTANIE JĘZYKA GROOVY W TESTACH JEDNOSTKOWYCH, INTEGRACYJNYCH I AUTOMATYCZNYCH Mirosław Gołda, Programista Java Agenda Kilka słów o języku Groovy Wpięcie Grooviego w projekt Springowy Testy jednostkowe

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie

Bardziej szczegółowo

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:

Bardziej szczegółowo

Automatyzacja Testowania w WEB 2.0

Automatyzacja Testowania w WEB 2.0 Automatyzacja Testowania w WEB 2.0 Wojciech Pająk, Radosław Smilgin XXIV Jesienne Spotkania PTI Wisła, 20-24 października 2008 Agenda Wprowadzenie do automatyzacji testowania Technologie WEB 2.0 Narzędzia

Bardziej szczegółowo

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Pixy - analiza statyczna skryptów PHP

Pixy - analiza statyczna skryptów PHP - analiza statyczna skryptów PHP MIMUW 4 kwietnia 2012 - analiza statyczna skryptów PHP Co to jest? Analiza statyczna Bezpieczeństwo skryptów PHP Analiza programu bez jego uruchamiania Zazwyczaj pod konkretnym

Bardziej szczegółowo

Zadanie 1. Wykonał: Grzegorz Pol Komputer: 237-16

Zadanie 1. Wykonał: Grzegorz Pol Komputer: 237-16 Ćwiczenie 3. Wykonał: Grzegorz Pol Komputer: 237-16 Zadanie 1 Skanery stanu zabezpieczeń Rys. 1.1 (poniżej) Obraz okna programu Microsoft Baseline Security Analyzer zawierającego nagłówek (strona View

Bardziej szczegółowo

Usługa: Audyt kodu źródłowego

Usługa: Audyt kodu źródłowego Usługa: Audyt kodu źródłowego Audyt kodu źródłowego jest kompleksową usługą, której głównym celem jest weryfikacja jakości analizowanego kodu, jego skalowalności, łatwości utrzymania, poprawności i stabilności

Bardziej szczegółowo

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu

Bardziej szczegółowo

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z

Bardziej szczegółowo

Środowisko NetBeans. Paweł Boguszewski

Środowisko NetBeans. Paweł Boguszewski Środowisko NetBeans Paweł Boguszewski Plan prezentacji Wprowadzenie Historia Funkcjonalność Kierunek Rozwoju Wtyczki Platforma NetBeans Podsumowanie Wprowadzenie NetBeans.org projekt OpenSource zapoczątkowany

Bardziej szczegółowo

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty MeetingHelper Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania Instrukcja obsługi dla programisty W tej części został zawarty opis uruchamiania projektu programistycznego,

Bardziej szczegółowo

Podstawy programowania obiektowego

Podstawy programowania obiektowego Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie

Bardziej szczegółowo

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom). Zarządzanie pamięcią Pamięć: stos i sterta Statyczny i dynamiczny przydział pamięci Funkcje ANSI C do zarządzania pamięcią Przykłady: Dynamiczna tablica jednowymiarowa Dynamiczna tablica dwuwymiarowa 154

Bardziej szczegółowo

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych Katedra Mikroelektroniki i Technik Informatycznych Łódź, 14 października 2005 roku Wstęp DOM Document Object Model zapewnia: Zbiór obiektów reprezentujących dokumenty XML i HTML. Model łączenia obiektów.

Bardziej szczegółowo

Kurs rozszerzony języka Python

Kurs rozszerzony języka Python Środowisko Django, cz. 3 19 stycznia 2018 Plan wykładu 1 2 Konstrukcja formularzy Walidacja i zapis 3 Ograniczenie dostępu 4 Plan wykładu 1 2 Konstrukcja formularzy Walidacja i zapis 3 Ograniczenie dostępu

Bardziej szczegółowo

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz SYLLABUS na rok akademicki 01/013 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr II/4 Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wprowadzenie Podstawy programowania Wprowadzenie Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania znaleźć matematyczne

Bardziej szczegółowo

METODY REPREZENTACJI INFORMACJI

METODY REPREZENTACJI INFORMACJI Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Magisterskie Studia Uzupełniające METODY REPREZENTACJI INFORMACJI Ćwiczenie 1: Budowa i rozbiór gramatyczny dokumentów XML Instrukcja

Bardziej szczegółowo

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r. Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)

Bardziej szczegółowo

PROGRAMOWANIE w C prolog

PROGRAMOWANIE w C prolog PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014

Bardziej szczegółowo

Wskaźniki. Informatyka

Wskaźniki. Informatyka Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą

Bardziej szczegółowo

CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE

CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE CODE::BLOCKS & VALGRIND OPRACOWAŁ MICHAŁ BETHKE O CZYM PREZENTACJA? Code::Blocks Informacje wstępne Skąd ściągnąć? Jak zainstalować? (wersja linuksowa) Rzut okiem na panel główny Tworzenie naszego pierwszego

Bardziej szczegółowo

The current software tools for the JEE platform

The current software tools for the JEE platform Wysłane: 2017-05-29 Przyjęte: 2017-06-06 Aktualne narzędzia wytwarzania oprogramowania na platformie JEE Paweł Ozdoba*, Beata Pańczyk Politechnika Lubelska, Instytut Informatyki, Nadbystrzycka 36B, 20-618

Bardziej szczegółowo

Open Source w służbie developerom

Open Source w służbie developerom 5 grudnia 2011 Wstęp Plan prezentacji Agenda Dyskusja problemu Wstęp Plan prezentacji Agenda Dyskusja problemu Etapy Wstęp Plan prezentacji Agenda Dyskusja problemu Etapy Przykłady Wstęp Plan prezentacji

Bardziej szczegółowo

Projektowani Systemów Inf.

Projektowani Systemów Inf. Projektowani Systemów Inf. Wykład VII Bezpieczeństwo Copyrights by Arkadiusz Rzucidło 1 Bezpieczeństwo Bezpieczeństwo związane z danymi Konstrukcja magazynów danych Mechanizmy zapisu i modyfikacji danych

Bardziej szczegółowo

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan

Bardziej szczegółowo

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 321 Bydgoszcz

Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 321 Bydgoszcz Bazy i Systemy Bankowe Sp. z o.o. ul. Kasprzaka 3, 85 321 Bydgoszcz 1 BSB dziś Jesteśmy producentem i integratorem rozwiązań informatycznych 100% udziałów w kapitale zakładowym posiada Narodowy Bank Polski

Bardziej szczegółowo

Continuous Integration i jakość kodu. Michał Prajs

Continuous Integration i jakość kodu. Michał Prajs Continuous Integration i jakość kodu Michał Prajs Agenda Michał Prajs SMT Software Prowadzący Continuous Integration Jenkins CI Statyczna analiza kodu Checkstyle Pokrycie kodu testami jednostkowymi Cobertura

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

Zaawansowane programowanie w języku C++

Zaawansowane programowanie w języku C++ Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów

Bardziej szczegółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet Zagrożenia związane z udostępnianiem aplikacji w sieci Internet I Ogólnopolska Konferencja Informatyki Śledczej Katowice, 8-9 stycznia 2009 Michał Kurek, Aleksander Ludynia Cel prezentacji Wskazanie skali

Bardziej szczegółowo

Program szkolenia: Jenkins - Continuous Integration

Program szkolenia: Jenkins - Continuous Integration Program szkolenia: Jenkins - Continuous Integration Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Jenkins - Continuous Integration tools-jenkins-ci Narzędzia developerzy DevOps

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

dlibra 3.0 Marcin Heliński

dlibra 3.0 Marcin Heliński dlibra 3.0 Marcin Heliński Plan prezentacji Wstęp Aplikacja Redaktora / Administratora Serwer Aplikacja Czytelnika Aktualizator Udostępnienie API NajwaŜniejsze w nowej wersji Ulepszenie interfejsu uŝytkownika

Bardziej szczegółowo

CI/CD - CO TO? PO CO? JAK?

CI/CD - CO TO? PO CO? JAK? CI/CD - CO TO? PO CO? JAK? JERZY WICKOWSKI PROGRAMUJĘ 10 LAT.NET I INNE CLEAN CODE REFAKTORING DEVOPS CI/CD - CO TO? PO CO? JAK? AGENDA WPROWADZENIE POJĘĆ SPOSOBY KONFIGURACJI CI IMPLEMENTACJA CONTINOUS

Bardziej szczegółowo

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

Programowanie poprzez testy z wykorzystaniem JUnit

Programowanie poprzez testy z wykorzystaniem JUnit Programowanie poprzez testy z wykorzystaniem JUnit Programowanie ekstremalne (XP) XP zaproponowano w 1999 (K. Beck: Extreme Programming Explained ) XP dedykowane jest do projektów: O małym lub średnim

Bardziej szczegółowo

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem

Bardziej szczegółowo

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia

Bardziej szczegółowo

Szkolenie: Podstawy automatyzacji z Selenium IDE

Szkolenie: Podstawy automatyzacji z Selenium IDE Szkolenie: Podstawy automatyzacji z Selenium IDE Selenium IDE to bardzo użyteczne narzędzie do szybkiej i skutecznej automatyzacji testów aplikacji internetowych. Jest ono kompromisem między typową automatyzacją,

Bardziej szczegółowo

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Agenda Dlaczego PhoneGap i co to jest? Możliwości PhoneGap Jak pisać aplikacje z PhoneGap? Konfiguracja i przykład aplikacji

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010

Lock Manager Deadlock Źródła Jak starczy czasu. Dreadlocks. Konrad Błachnio MIMUW 19 maja 2010 Konrad Błachnio K.Blachnio@students.mimuw.edu.pl MIMUW 19 maja 2010 1 Co to jest? API Implementacja 2 ILockManagerWithDetecting s - straszny zamek 3 4 Obecna implementacja Lock vs. Synchronized Hashtable

Bardziej szczegółowo

Przetwarzanie danych w chmurze

Przetwarzanie danych w chmurze Materiały dydaktyczne Katedra Inżynierii Komputerowej Przetwarzanie danych w chmurze Podstawy Google App Engine dr inż. Robert Arsoba Robert.Arsoba@weii.tu.koszalin.pl Koszalin 2017 Wersja 1.0 Podstawy

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej Wybrane działy Informatyki Stosowanej JSP - Java Server Pages dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2019 Aplikacje i skrypty WWW klasyfikacja

Bardziej szczegółowo

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD). Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD). Rapid Application Development RAD Szybkie tworzenie programów użytkowych (Rapid Application Development RAD) jest mającą

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2 Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 1 Wprowadzenie Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 O Sobie Od 2014

Bardziej szczegółowo

MDW. (Moduł Dystrybucji Wysyłek) (Moduł Magento) v Strona 1 z 11

MDW. (Moduł Dystrybucji Wysyłek) (Moduł Magento) v Strona 1 z 11 MDW (Moduł Dystrybucji Wysyłek) (Moduł Magento) v.1.25.0 Strona 1 z 11 Spis treści Zgodny z Magento... 3 Instalacja... 3 Opis... 6 Metody wysyłki... 6 Ręczne mapowanie metod... 7 Użycie tworzenie wysyłek...

Bardziej szczegółowo

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Tester oprogramowania 2014/15 Tematy prac dyplomowych Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven

Bardziej szczegółowo

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli Automatyczne generowanie testów z modeli Numer: 1 (33) Rozkmina: Projektowanie testów na podstawie modeli (potem można je wykonywać ręcznie, lub automatycznie zwykle chce się automatycznie) A ja mówię

Bardziej szczegółowo

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia Kod szkolenia: Tytuł szkolenia: DED/FSJS Full Stack JavaScript z Angular i Nest Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających podstawową wiedzę w zakresie JavaScript,

Bardziej szczegółowo

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010 System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH szkolenie dla webdeveloperów ze znajomością przynajmniej podstaw HTML i JavaScript INFORMACJE PODSTAWOWE AngularJS to framework JavaScript stworzony przez inżynierów

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

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

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Języki i narzędzia programowania III. Łukasz Kamiński Wykład II - 2012-10-08

Języki i narzędzia programowania III. Łukasz Kamiński Wykład II - 2012-10-08 Języki i narzędzia programowania III Łukasz Kamiński Wykład II - 2012-10-08 Wykład II Wprowadzenie kontynuacja Cookie HTML (JS/CSS/Flash/Java) Instalacja Apache, PHP, MySQL Konfiguracja Hosting i domeny

Bardziej szczegółowo

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

zautomatyzować przepływ pracy w branży opakowań

zautomatyzować przepływ pracy w branży opakowań 3 powody, aby zautomatyzować przepływ pracy w branży opakowań 1. Najwyższa jakość każdego zlecenia 2. Wszystkie zadania wymagane do wykonania pracy 3. Połączenie z systemami do administracji zleceniami

Bardziej szczegółowo

Praca w środowisku Visual Studio 2008, Visual C

Praca w środowisku Visual Studio 2008, Visual C Praca w środowisku Visual Studio 2008, Visual C++ 2008 mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Tworzenie aplikacji konsolowych 2 3 Tworzenie nowego projektu aplikacji

Bardziej szczegółowo

Podstawy języka Java. przygotował: pawel@kasprowski.pl

Podstawy języka Java. przygotował: pawel@kasprowski.pl Podstawy języka Java przygotował: pawel@kasprowski.pl Początki: PDA Star7 (*7) PDA do obsługi urządzeń domowych. (1992) (język OAK) Autorzy Javy Green Team Ojciec Javy: James Gosling Poszukiwanie zastosowania

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i

Bardziej szczegółowo