Apache ANT. Narzędzie do automatyzacji zadań projektowych. Spis treści. Dawid Weiss Id: ant-zajecia.tex :37:20Z dweiss

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

Download "Apache ANT. Narzędzie do automatyzacji zadań projektowych. Spis treści. Dawid Weiss Id: ant-zajecia.tex :37:20Z dweiss"

Transkrypt

1 1 Apache ANT Narzędzie do automatyzacji zadań projektowych Dawid Weiss Spis treści

2 1 Wprowadzenie ANT jest odpowiednikiem programu MAKE, znanego użytkownikom systemów Unix, i służy do automatyzacji wykonywania serii poleceń zmierzających do wykonania pewnego określonego celu. Celem tym, w przypadku zadań programistycznych, może być kompilacja plików źródłowych, usunięcie plików tymczasowych ale i również zupełnie inne zadania: opublikowanie dokumentacji na stronę WWW, wykonanie testów jednostkowych i generacja raportu w formie HTML, czy też wysłanie protokołem FTP plików na serwer dystrybucyjny. O sile narzędzia świadczy wachlarz możliwości jego użycia. Popularność ANTa jest wynikiem paru czynników: przenośność ANT jest napisany w Javie i używa języka XML do opisu skryptów automatyzacji. Poprawnie napisany skrypt będzie zatem działał identycznie zarówno w środowisku Windows, jak i innych (Linux czy MacOS). dużo gotowych zadań Biblioteka ANTa zawiera wiele gotowych zadań takich, jak kompilator Java, kompresja ZIP, czy też wszechstronne zadania do obsługi plików. integracja ANT jest łatwo integrowalny z innymi środowiskami programistycznymi. I tak Eclipse i wszystkie inne środowiska programisty umożliwiają uruchamianie skryptów bezpośrednio ze środowiska wizualnego. automatyzacja ANT powstał z myślą o automatyzacji zadań i daje się łatwo uruchamiać w sposób automatyczny (na przykład co pewien czas). Można ten fakt wykorzystać aby sprawdzać integralność projektu za pomocą testów regresji (określaną też czasem terminem continuous integration). rozszerzalność Czegokolwiek nie ma jeszcze w programie ANT, daje się łatwo zaprogramować jako własne zadania (w języku Java oczywiście). automatyzacja zadań Bez owijania w bawełnę: ANT jest używany zwykle do automatyzacji zadań programistycznych przez osoby związane z programowaniem w języku Java. Jednak nic nie stoi na przeszkodzie aby użyć go do każdego innego języka lub też zadania wymagającego powtarzalnych, identycznych kroków wykonania. Koncepcje podstawowe.1 Terminologia i jej znaczenie Przed przystąpieniem do programowania skryptów w programie ANT, warto przyswoić sobie terminologię towarzyszącą temu produktowi. Każdy skrypt ANTa to plik zapisany w języku XML (domyślnie ANT poszukuje pliku o nazwie build.xml, choć nie trzeba się do tej konwencji stosować). Ilustracja?? prezentuje główne bloki, z których składa się każdy skrypt: cele, zadania i powiązania. Ich krótkie omówienie znajduje się poniżej. cele Każdy skrypt składa się z zestawu nazwanych celów (ang. target). Każdy cel powiniem posiadać unikalną nazwę, która jednocześnie definiuje jego przeznaczenie. I tak typowymi celami będą: skrypty ANTa cele clean cel czyszczący projekt z plików tymczasowych, compile cel kompilujący pliki źródłowe, test cel uruchamiający testy jednostkowe, build cel kompilujący pliki źródłowe i wszelką inna dokumentację (przygotowanie wersji dystrybucyjnej). Cele są dokładniej omówione w rozdziale?? na stronie??. zadania Na każdy cel składają się liniowo wykonywane zadania (ang. task). Zadania owe są w większości predefiniowane i opisane w dokumentacji do ANTa. Ich stopień złożoności jest różny: od prostego kopiowania pliku (zadanie copy), do złożenia pełnej aplikacji internetowej (zadanie war). Przykłady dostępnych zadań poznamy w rozdziale?? na stronie??. zadania

3 RYSUNEK 1: Wizualizacja struktury skryptu ANTa. Plik skryptu, nazwany tutaj build.xml, zawiera nazwane cele (target), które z kolei zawierają podzadania (task). Cele są powiązane między sobą zależnościami (ang. dependency). powiązania Jeśli wykonanie jednego celu zależy od pomyślnego wykonania innego, to można zdefiniować powiązanie lub zależność (ang. dependency) między celami. Przykładowo, zadanie uruchamiające testy jednostkowe zależy od tego, czy udało się pomyślnie przeprowadzić proces kompilacji. Zadanie kompresji finalnego pliku ZIP z projektem może zależeć zarówno od poprawnej kompilacji, jak i (co wystarczy) od poprawnego wykonania testów. zależności Klarowne deklaracje zależności między celami są głównym atutem ANTa. Poprawnie zaprojektowany plik automatyzacji zawiera autonomiczne, drobne cele, które są powiązane ze sobą w większą całość właśnie przy pomocy powiązań. Wielokrotnie zdarza się, że niektóre cele nie posiadają wcale zadań, a jedynie sieć zależności łączącą inne cele w jeden bardziej skomplikowany. Programista ANTa nie musi przejmować się poprawną kolejnością wykonania celów zadanie sortowania ich w odpowiedniej kolejności (sortowanie topologiczne) przejmuje na siebie ANT.. Plik skryptu i uruchamianie programu ANT Plik projektu to plik zapisany w języku XML, który zawiera w sobie definicję dostępnych w projekcie celów. Zwykle dla każdego projektu mamy jeden plik automatyzujący zadania z nim związane. Oczywiście w razie konieczności plików takowych można mieć więcej niż jeden (co komplikuje jednak nieco wywołanie programu ant, bowiem należy wtedy wskazać, który plik ma być analizowany). Każdy plik projektu musi obowiązkowo zawierać cel domyślny (wywoływany, gdy nie poda się żadnego argumentu do polecenia ant. Trywialnym skryptem może więc być znakomity przykład hello world : 1 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <project name="my project" default="hello"> 4 <target name="hello" description="says hello"> 5 <echo>hello world.</echo> 6 </target> 7 </project>

4 4 Należy zwrócić uwagę na atrybut default, który wskazuje domyślny cel. Uruchomienie tego skryptu 1 daje następujący wynik: 1 g:\projects>ant -f empty.xml Buildfile: empty.xml 4 hello: 5 [echo] Hello world. 6 7 BUILD SUCCESSFUL 8 Total time: 1 second Opcja -f służy do wskazania pliku skryptu o nazwie innej niż build.xml (w przypadku której może zostać pominięta). Jak widać z powyższego listingu, wynikiem działania programu jest informacja o celach i zadaniach, które zostały wykonane. Argumentami programu ANT są cele, które należy wykonać. Równie dobrze możemy więc wpisać: Uruchamianie specyficznych celów 1 g:\projects>ant -q -f empty.xml hello [echo] Hello world. 4 BUILD SUCCESSFUL 5 Total time: 0 seconds Tym razem program ANT uruchomiono z opcją -q, która powoduje mniejszą liczbę wypisywanych komunikatów (ang. quiet) oraz ze specyficznym celem hello (w naszym przypadku identycznym z domyślnym). Aby dowiedzieć się, jakie cele zawiera plik ANTa, można przekazać do programu opcję -p: 1 g:\projects>ant -f empty.xml -p Buildfile: empty.xml Informacja o dostępnych celach 4 Main targets: 5 6 hello Says hello 7 Default target: hello Jak widać, jedyny cel (domyślny) tego pliku to hello.. Cele Jak już wspomnieliśmy, cele to główne bloki budujące plik skryptu ANTa. Każdy cel zawiera atrybut name, który jest jednoznacznym identyfikatorem tego celu. Dodatkowo można w definicji celu umieścić atrybut description, który pojawi się jako opis tego celu w momencie wywołania ANTa z opcją -p. Konwencja nazw celów jest oczywiście jedynie umową. Dla projektu łatwo jest wypisać wszystkie zdefiniowane w nim cele (wraz z dokumentacją), więc nawet zarzucenie tej konwencji nie czyni dużej szkody. Doświadczony programista będzie jednak oczekiwał celów o określonych nazwach (takich jak clean czy build). Plik ANTa definiujący dwa cele: hello i world może wyglądać następująco: 1 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <project name="hello-1" default="hello"> 4 <target name="hello" description="says hello"> 5 <echo>hello</echo> 6 </target> 7 8 <target name="world" description="says world"> 9 <echo>world.</echo> 10 </target> 11 </project> 1 Instalacja programu ANT jest omówiona w punkcie?? na stronie??

5 5 Przykładowe zaś wykonanie powyższego skryptu wygląda następująco (proszę zwrócić uwagę na podane jawnie oba cele w argumentach do programu): 1 g:\projects>ant -f hello-1.xml world hello Buildfile: hello-1.xml 4 world: 5 [echo] World. 6 7 hello: 8 [echo] Hello 9 10 BUILD SUCCESSFUL 11 Total time: 0 seconds.4 Powiązania Zależność jednego celu od drugiego definiujemy przy pomocy atrybutu depends w elemencie target. Wartością atrybutu są, oddzielone przecinkami, nazwy celów, które mają się wykonać przed zadanym. Przykładowo, nasz poprzedni skrypt definiujący cele hello i world może wyglądać następująco: 1 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <project name="hello-" default="hello"> 4 <target name="hello" description="says hello"> 5 <echo>hello</echo> 6 </target> 7 8 <target name="world" description="says world" depends="hello"> 9 <echo>world.</echo> 10 </target> 11 </project> Wówczas wywołanie celu world będzie zawsze poprzedzone wykonaniem celu hello: 1 g:\projects>ant -f hello-.xml world Buildfile: hello-.xml 4 hello: 5 [echo] Hello 6 7 world: 8 [echo] World BUILD SUCCESSFUL 11 Total time: 0 seconds.5 Zadania Zadania w skrypcie ANTa są deklarowane jako elementy języka XML wewnątrz celu. Zadania mniej skomplikowane są zwykle deklarowane jako elementy puste (jedynie z atrybutami), lub zawierające pewne instrukcje wewnątrz deklaracji. Przykładowo, w poniższym celu tworzony jest katalog i wyświetlana jest informacja dla użytkownika: 1 <target name="create.tmp"> <mkdir dir="tmp" /> <echo>folder "tmp" created.</echo> 4 </target> Nietrudno jest zgadnąć, że ANT wykonuje zadania w kolejności ich deklaracji w skrypcie. Ten i inne ważne elementy sposobu wykonania przez ANT skryptu automatyzacji podsumowano w punktach poniżej: Sposób wykonania skryptu

6 6 1. Zadania są wykonywane sekwencyjnie: w kolejności zależności między celami, a następnie w obrębie jednego celu.. W ogólnym przypadku cały skrypt będzie wykonywany dokładnie przez jeden wątek. Zrównoleglenie zadań jest możliwe przy pomocy zadania o nazwie parallel, jednak w tym tekście nie będziemy poszerzali tego zagadnienia.. Wykonanie skryptu jest przerywane i kończy się błędem w momencie, gdy którekolwiek zadanie zakończy się błędem (pozostałe zadania nie są wykonywane). W przypadku niektórych zadań można w sposób jawny żądać ignorowania błędów wykonania. Powyższe zasady ilustruje następujący przykład: 1 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <project name="failure" default="build"> 4 <target name="build"> 5 <copy file="from.txt" tofile="to.txt" /> 6 <echo>file copied.</echo> 7 </target> 8 </project> Wykonanie tego skryptu (kopiowanie pliku, który nie istnieje) kończy się błędem. Proszę zwrócić uwagę na to, że zadanie echo nie wykonało się: 1 >ant -f failure.xml Buildfile: failure.xml 4 build: 5 6 BUILD FAILED 7 D:\failure.xml:5: Warning: Could not find file D:\from.txt to copy. 8 9 Total time: 1 second Można jednak polecić zadaniu copy ignorowanie błędów: 1 <?xml version="1.0" encoding="utf-8" standalone="yes"?> <project name="failure" default="build"> 4 <target name="build"> 5 <copy file="from.txt" tofile="to.txt" failonerror="false" /> 6 <echo>file copied.</echo> 7 </target> 8 </project> wtedy cały skrypt kończy się sukcesem: 1 >ant -f failure-.xml Buildfile: failure-.xml 4 build: 5 [copy] Warning: Could not find file D:\from.txt to copy. 6 [echo] File copied. 7 8 BUILD SUCCESSFUL 9 Total time: 0 seconds Zadania o większym stopniu skomplikowania mogą składać się z paru zagnieżdżonych instrukcji języka XML (w tym również deklaracji zbiorów plików, omówionych w rozdziale??). Przykład takiego bardziej skomplikowanego zadania (detale tutaj pomijamy) znajduje się poniżej: 1 <junit dir="${build.dir}/jni-testdir" fork="true" haltonerror="true" haltonfailure="true" printsummary="false">

7 7 <env key="ld_library_path" file="${build.dir}/jni-testdir" /> 4 5 <classpath> 6 <pathelement path="${build.dir}/classes" /> 7 <pathelement path="${build.dir}/test" /> 8 <path refid="libs" /> 9 </classpath> <formatter type="plain" usefile="false" /> 1 1 <sysproperty key="java.library.path" path="${build.dir}/jni-testdir" /> <batchtest> 16 <fileset dir="${build.dir}/test"> 17 <include name="**/*test.class" /> 18 </fileset> 19 </batchtest> 0 </junit> Powstaje oczywiście pytanie skąd czerpać wiedzę na temat dostepnych zadań? W większości zastosowań w zupełności wystarczał będzie zestaw podstawowych zadań dostarczany z ANTem (tak zwanych core tasks). Ich świetny opis i zestawienie oferuje dokumentacja ANTa, dostępna na stronie (należy wybrać z menu opcję Ant Tasks a następnie Core Tasks). Inna użyteczna biblioteka zadań to ANT-CONTRIB, dostępna pod adresem: http: //ant-contrib.sourceforge.net/. Tam, gdzie zadania podstawowe lub ich kompozycja nie wystarcza, można zawsze pokusić się o napisanie własnego zadania w języku Java lub w formie skryptu. Tematykę tę porusza rozdział??..6 Deklarowanie zbiorów plików i katalogów Automatyzacja budowy projektu to zwykle manipulacje pewnymi zbiorami plików. Wiele zadań (przykładowo copy, delete lub javac) umożliwia deklarowanie zbiorów plików w postaci elementu fileset. Pojedynczy element fileset zawsze wskazuje na jakiś katalog w systemie plików. Domyślnie jego wartością są wszystkie pliki i katalogi zawarte we wskazanym katalogu. Zbiór ten może być zawężony poprzez użycie klauzul włączenia (include) lub wyłączenia (exclude) ścieżek plików pasujących do pewnych wzorców. Przykładowo, wszystkie pliki z rozszerzeniem java w katalogu src można skopiować używając następującej deklaracji: 1 <copy todir="src-copy"> <fileset dir="src"> <include name="**/*.java" /> 4 </fileset> 5 </copy> Jak widać wzorce w elementach include i exclude są specyficzne dla ANTa (nie są to wyrażenia regularne). Symbole specjalne, które mogą pojawić się we wzorcu to: SYMBOL OPIS * Symbol zastępujący dowolny ciąg znaków w nazwie pliku lub katalogu. ** Symbol oznaczający dowolny ciąg podkatalogów.? Symbol zastępujący dowolną literę w nazwie pliku lub katalogu. Sprawne posługiwanie się wzorcami wymaga pewnej praktyki. Należy poświęcić jej choć trochę czasu. Jakie pliki wyznacza ten fileset? 1 <fileset dir="."> <include name="**/local/**/*test.java" /> <exclude name="**/controller*.java" /> 4 </fileset>

8 8.7 Deklarowanie i użycie ścieżek Ten rozdział wymaga jeszcze ukończenia. Proszę słuchać na zajęciach! Więcej informacji znajduje się również pod adresem: html#path..8 Deklarowanie i użycie stałych w projekcie Ten rozdział wymaga jeszcze ukończenia. Proszę słuchać na zajęciach! Więcej informacji znajduje się również pod adresem: html#properties Programowanie własnych zadań Programowanie własnych zadań w programie ANT jest bardzo, bardzo łatwe i daje wiele satysfakcji (i możliwości, oczywiście). Zaprogramowanie nowego zadania sprowadza się do napisania klasy, która deklaruje metodę o sygnaturze public void execute(). Ten rozdział wymaga jeszcze ukończenia. Proszę słuchać na zajęciach! Więcej informacji znajduje się również w rozdziale Developing with Ant w dokumentacji ANTa pod adresem: Poprawne zadania powinny dziedziczyć z klasy org.apache.tools.ant.task, jednak nie jest to wymagane.

9 9 4 Ćwiczenia praktyczne 4.1 Podstawy Skrypt tworzący katalogi tymczasowe i kasujący je. 1 <project name="cw1" basedir="." default="init"> <target name="init"> 4 <mkdir dir="tmp" /> 5 <mkdir dir="tmp/build" /> 6 </target> 7 8 <target name="clean"> 9 <delete dir="tmp" failonerror="true" 10 includeemptydirs="true" quiet="true" /> 11 </target> 1 1 </project> 4.1. Skrypt kompilujący źródła, wprowadzenie stałych 1 <project name="cw" basedir="." default="compile"> <property name="build.dir" location="tmp/build" /> 4 5 <target name="init"> 6 <mkdir dir="${build.dir}" /> 7 </target> 8 9 <target name="clean" description="clean up temporary files"> 10 <delete dir="${build.dir}" failonerror="true" 11 includeemptydirs="true" quiet="true" /> 1 </target> 1 14 <target name="compile" depends="init" description="compiles sources"> 15 <javac destdir="${build.dir}" 16 optimize="false" debug="true" deprecation="true" 17 failonerror="true" 18 includeantruntime="false" includejavaruntime="false"> 19 <src location="src" /> 0 </javac> 1 </target> </project> 4.1. Skrypt kompilujący źródła, z ustawieniem specyficznej ścieżki klas (CLASSPATH) 1 <project name="cw" basedir="." default="compile"> <property name="build.dir" location="tmp/build" /> 4 5 <target name="init"> 6 <mkdir dir="${build.dir}" /> 7 </target> 8 9 <target name="clean" description="clean up temporary files"> 10 <delete dir="${build.dir}" failonerror="true" 11 includeemptydirs="true" quiet="true" /> 1 </target> 1 14 <target name="compile" depends="init" description="compiles sources"> 15 <javac destdir="${build.dir}" 16 optimize="false" debug="true" deprecation="true" 17 failonerror="true" 18 includeantruntime="false" includejavaruntime="false"> 19 <src location="src-cw" /> 0 <classpath>

10 10 1 <fileset dir="lib" includes="**/*.jar" /> </classpath> </javac> 4 </target> 5 6 </project> Skrypt tworzący plik JAR 1 <project name="cw4" basedir="." default="jar"> <property name="build.dir" location="tmp/build" /> 4 <property name="dist.dir" location="tmp/dist" /> 5 6 <target name="init"> 7 <mkdir dir="${build.dir}" /> 8 <mkdir dir="${dist.dir}" /> 9 </target> <target name="clean" description="clean up temporary files"> 1 <delete dir="${build.dir}" failonerror="true" 1 includeemptydirs="true" quiet="true" /> 14 </target> <target name="compile" depends="init" description="compiles sources"> 17 <javac destdir="${build.dir}" 18 optimize="false" debug="true" deprecation="true" 19 failonerror="true" 0 includeantruntime="false" includejavaruntime="false"> 1 <src location="src-cw" /> <classpath> <fileset dir="lib" includes="**/*.jar" /> 4 </classpath> 5 </javac> 6 </target> 7 8 <target name="jar" depends="compile"> 9 <jar compress="true" jarfile="${dist.dir}/test.jar" update="false"> 0 <fileset dir="${build.dir}" /> 1 </jar> </target> 4 </project> 4. Skrypty bardziej zaawansowane 4..1 Testowanie kodu z ANTa przy pomocy JUnita 1 <project name="cw5" basedir="." default="test"> <property name="build.dir" location="tmp/build" /> 4 5 <target name="init"> 6 <mkdir dir="${build.dir}" /> 7 </target> 8 9 <target name="clean" description="clean up temporary files"> 10 <delete dir="${build.dir}" failonerror="true" 11 includeemptydirs="true" quiet="true" /> 1 </target> 1 14 <target name="compile" depends="init" description="compiles sources"> 15 <javac destdir="${build.dir}" 16 optimize="false" debug="true" deprecation="true" 17 failonerror="true" 18 includeantruntime="false" includejavaruntime="false"> 19 <src location="src-cw" /> 0 <classpath> 1 <fileset dir="lib" includes="**/*.jar" />

11 11 </classpath> </javac> 4 </target> 5 6 <target name="test" depends="compile" description="runs test cases"> 7 <junit dir="${build.dir}" fork="true" 8 errorproperty="junit.error" failureproperty="junit.failure" 9 haltonerror="true" haltonfailure="true" 0 printsummary="true"> 1 <classpath> <pathelement location="${build.dir}" /> 4 </classpath> 5 6 <batchtest> 7 <fileset dir="${build.dir}"> 8 <include name="**/*test.class" /> 9 </fileset> 40 </batchtest> 41 </junit> 4 </target> 4 </project> 4. Programowanie własnych zadań 4..1 Skrypt z własnym zadaniem: dodaj Skrypt ANTa, który najpierw kompiluje kod zadania, a następnie je wywołuje: 1 <project name="cw8" basedir="." default="dodaj"> <property name="build.dir" location="tmp/build" /> 4 <target name="compile"> 5 <mkdir dir="${build.dir}" /> 6 <javac destdir="${build.dir}" 7 optimize="false" debug="true" deprecation="true" 8 failonerror="true" 9 includeantruntime="true"> 10 <src location="src-cw8" /> 11 <classpath> 1 <fileset dir="lib" includes="**/*.jar" /> 1 </classpath> 14 </javac> 15 </target> <target name="dodaj" depends="compile"> 18 <taskdef name="dodaj" classname="pakiet.dodaj"> 19 <classpath location="${build.dir}" /> 0 </taskdef> 1 <dodaj a="5" b="6" wynik="stala.wynik" /> <echo message="wynik: ${stala.wynik}" /> </target> 4 </project> Sam kod zadania Dodaj w Javie: 1 package pakiet; import org.apache.tools.ant.*; 4 5 public class Dodaj { 6 private int a; 7 private int b; 8 private String name; 9 private Project project; public void seta(int a) { 1 this.a = a; 1 } 14

12 1 15 public void setb(int b) { 16 this.b = b; 17 } public void setwynik(string name) { 0 this.name = name; 1 } public void setproject(project project) 4 { 5 this.project = project; 6 } 7 8 public void execute() { 9 project.setproperty(name, Integer.toString(a + b)); 0 } 1 }

13 1 A Instalacja ANTa Instalacja programu ANT polega na wykonaniu następujących czynności: 1. Pobraniu pliku ZIP z programem ze strony Odkompresowaniu pliku ZIP do katalogu lokalnego. Proszę zwrócić uwagę by w ścieżce prowadzącej do instalacji nie było znaków spacji ani innych specjalnych. Dobrym kandydatem jest, na przykład, c:\java\ant.. Ustawieniu zmiennej systemowej ANT_HOME tak, aby wskazywała na katalog instalacyjny. 4. Dodaniu katalogu ANT_HOME/bin do ścieżki domyślnej (zmiennej środowiskowej PATH). Program ANT jest gotowy do pracy gdy wywołanie ant powoduje wypisanie komunikatu o braku pliku build.xml. Niektóre zadania A N Ta wymagają specyficznych kroków instalacji. Przykładowo, zadanie kompilacji plików Java (javac) wymaga zdefiniowania zmiennej środowiskowej JAVA_HOME, wskazującej na katalog instalacyjny JDK (Java Development Kit). B Inne materiały Program ANT posiada bardzo dobrą dokumentację użytkownika (niestety jedynie w języku angielskim), która dołączana jest do programu (katalog docs) oraz jest dostępna on-line pod adresem:

Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz

Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz Metryki Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania autor: Zofia Kruczkiewicz 1 Zastosowanie narzędzi ant i ckjm do pomiaru złożoności oprogramowania 2 1. Wskazanie ścieżki

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

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

Instalacja. Zwykle należy też zwiększyć pamięć dla konsoli poleceniem: set ANT_HOME=c:\ant set JAVA_HOME=c:\jdk1.2.2 set PATH=%PATH%;%ANT_HOME%\bin

Instalacja. Zwykle należy też zwiększyć pamięć dla konsoli poleceniem: set ANT_HOME=c:\ant set JAVA_HOME=c:\jdk1.2.2 set PATH=%PATH%;%ANT_HOME%\bin 1 Apache Ant Ant jest narzędziem umożliwiającym automatyzację procesów związanych z budowaniem programów. Jego podstawowe cechy to: konfiguracja zadań zapisana w formacie XML, wieloplatformowość m. in.

Bardziej szczegółowo

1. Metryki złożoności modułowej i międzymodułowej Chidamber & Kemerer (CK)

1. Metryki złożoności modułowej i międzymodułowej Chidamber & Kemerer (CK) 1. Metryki złożoności modułowej i międzymodułowej Chidamber & Kemerer (CK) 1.1. Podstawowe metryki CK: międzymodułowe CBO, RFC modułowe WMC, DIT, NOC, LCOM1. 1.2. Uzupełniony zbiór metryk przez innych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

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

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Ćwiczenie 1. Przygotowanie środowiska JAVA

Ćwiczenie 1. Przygotowanie środowiska JAVA Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.

Bardziej szczegółowo

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl

Java Podstawy. Michał Bereta www.michalbereta.pl mbereta@pk.edu.pl Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Continuous Integration z ClickOnce

Continuous Integration z ClickOnce Continuous Integration z ClickOnce To, że Continuous Integration (z ang. ciągła integracja) to proces polegający na stałym, możliwie częstym konsolidowaniu (kompilacji, testowaniu, publikacji) wyników

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

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

XML i nowoczesne technologie zarządzania treścią 2007/08

XML i nowoczesne technologie zarządzania treścią 2007/08 Zadanie 3 Poprawkowe XML i nowoczesne technologie zarządzania treścią 2007/08 Wprowadzenie Należy napisać program w Javie, który czytając w trybie SAX plik z listą operacji, wykonuje zadane operacje na

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

Ant - prezentacja narzędzia

Ant - prezentacja narzędzia Dawid Dorosz Michał Ostrowiecki Andrzej Perużyński Technologie Biznesu Elektronicznego 21 marca 2006 Plan prezentacji 1 Wprowadzenie Wprowadzenie do Ant Ant vs Make Budowa pliku build.xml 2 Instalacja

Bardziej szczegółowo

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie I Cel zajęć Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego. Testowanie oprogramowania Testowanie to proces słyżący do oceny

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

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

Trochę o plikach wsadowych (Windows)

Trochę o plikach wsadowych (Windows) Trochę o plikach wsadowych (Windows) Zmienne środowiskowe Zmienną środowiskową można ustawić na stałe w systemie (Panel sterowania->system- >Zaawansowane ustawienia systemu->zmienne środowiskowe) lub też

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 niskopoziomowe

Programowanie niskopoziomowe W. Complak, J.Kniat, M. Antczak, K. Kwarciak, G. Palik, A. Rybarczyk, Ł. Wielebski Materiały Programowanie niskopoziomowe http://www.cs.put.poznan.pl/arybarczyk/c_w_0.pdf Spis treści 1. Instalacja środowiska

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

1. Wprowadzenie. 2. Instalacja i uruchomienie. 3. Projekt i POM

1. Wprowadzenie. 2. Instalacja i uruchomienie. 3. Projekt i POM 1. Wprowadzenie Apache Maven jest kolejnym narzędziem do wykonywania buildów aplikacji platformy Java. Projekt jest znacznie młodszy niż Apache Ant (Ant 1.1 jako samodzielny projekt od roku 2000, Maven

Bardziej szczegółowo

Utworzenie pliku. Dowiesz się:

Utworzenie pliku. Dowiesz się: Dowiesz się: 1. Jak rozpocząć pisanie programu 2. Jak wygląda szkielet programu, co to są biblioteki i funkcja main() 3. Jak wyświetlić ciąg znaków w programie 4. Jak uruchamiać (kompilować) napisany program

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

Bardziej szczegółowo

JDK można pobrać ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html

JDK można pobrać ze strony http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html Program napisany w języku Java, w wyniku kompilacji da kod bajtowy, plik z rozszerzeniem.class. Nie jest to plik wykonywalny samodzielnie w systemie operacyjnym tak jak pliki.exe. Uruchomienie gotowego

Bardziej szczegółowo

Metryki. Przykłady pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz

Metryki. Przykłady pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz Metryki Przykłady pomiaru złożoności modułowej i międzymodułowej oprogramowania autor: Zofia Kruczkiewicz 1 Dodatek Powtórka z metryk ilustrowana wynikami pomiaru realizowanymi przez narzędzia ckjm 1.8,

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

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

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

Języki i metody programowania Java. Wykład 2 (część 2) Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego

Bardziej szczegółowo

1 Atrybuty i metody klasowe

1 Atrybuty i metody klasowe 1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich

Bardziej szczegółowo

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt 1. Wprowadzenie Wymagania wstępne: wykonanie ćwiczeń Adresacja IP oraz Implementacja aplikacji sieciowych z wykorzystaniem interfejsu gniazd

Bardziej szczegółowo

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p. Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html

Bardziej szczegółowo

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania

Bardziej szczegółowo

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

Załącznik 1 instrukcje instalacji Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych

Bardziej szczegółowo

Instrukcja instalacji

Instrukcja instalacji Instrukcja instalacji Niniejsza instrukcja obejmuje instalację krok po kroku narzędzi potrzebnych do uruchomienia aplikacji ERS pod systemem Windows. Ze względu na uniwersalność użytych rozwiązań możliwe

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Podstawy, środowisko JDK, kompilacja programów z linii poleceń

Podstawy, środowisko JDK, kompilacja programów z linii poleceń Komunikacja Człowiek-Komputer ZADANIE 1 Niniejsza instrukcja podzielona jest na dwie części. W pierwszej części zostały przedstawione dwiczenia wstępne o charakterze dydaktycznym do samodzielnego wykonania

Bardziej szczegółowo

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer Maven 2 podstawowe informacje Apache Maven jest narzędziem automatyzującym budowę oprogramowania

Bardziej szczegółowo

Wprowadzenie do biblioteki klas C++

Wprowadzenie do biblioteki klas C++ Instrukcja laboratoryjna nr 7 Programowanie w języku C 2 (C++ poziom zaawansowany) Wprowadzenie do biblioteki klas C++ WxWidgets mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz dr inż. Wilk-Jakubowski

Bardziej szczegółowo

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

JAVA?? to proste!! Autor: wojtekb111111

JAVA?? to proste!! Autor: wojtekb111111 1 JAVA?? to proste!! 2 Niniejszy tutorial przedstawia krótkie wprowadzenie do programowania w języku JAVA. Jakie narzędzia na początku potrzebujemy do rozpoczęcia programowania w tym języku? JDK (java

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

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń: W pierwszym kroku nauczymy się uruchamiać w Pythonie tradycyjny* program ". Dzięki temu nauczysz się pisać w języku Python, a także zapisywać i uruchamiać swoje pythonowe programy. *Jest taka tradycja,

Bardziej szczegółowo

BUDOWANIE APLIKACJI. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

BUDOWANIE APLIKACJI. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska BUDOWANIE APLIKACJI Waldemar Korłub Platformy Technologiczne KASK ETI Politechnika Gdańska Budowanie aplikacji 2 *.java resources punkt wejścia javac *.class *.properties *.css *.fxml *.png MANIFEST.MF

Bardziej szczegółowo

BACKUP BAZ DANYCH FIREBIRD

BACKUP BAZ DANYCH FIREBIRD BACKUP BAZ DANYCH FIREBIRD SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje podstawowe... 2 Krok 2: Dane... 3 Backup bazy umieszczonej na serwerze... 3 Bezpośredni backup pliku

Bardziej szczegółowo

MentorGraphics ModelSim

MentorGraphics ModelSim MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu

Bardziej szczegółowo

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD.

Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD. LAB. 2 Projekt procesora NIOSII w strukturze programowalnego układu logicznego CYCLONEII EP2C35F672C6 podłączenie i obsługa wyświetlacza LCD. Laboratorium Mikroprocesorowych Układów Sterowania instrukcja

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;

Bardziej szczegółowo

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja

Bardziej szczegółowo

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa

Narzędzie pomocnicze do przedmiotu Podstawy Informatyki - złożoność obliczeniowa Narzędzie pomocnicze przedmiotu Podstawy Informatyki - złożoność obliczeniowa Piotr Jeruszka 1 25 listopada 2013 1 Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska pjeruszka@icis.pcz.pl

Bardziej szczegółowo

WPROWADZENIE DO INFORMATYKI

WPROWADZENIE DO INFORMATYKI J.NAWROCKI, M. ANTCZAK, H. ĆWIEK, W. FROHMBERG, A. HOFFA, M. KIERZYNKA, S. WĄSIK WPROWADZENIE DO INFORMATYKI PROGRAMOWANIE IMPERATYWNE ŚRODOWISKO URUCHOMIENIOWE I. INSTALACJA I KONFIGURACJA ECLIPSE CDT

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

Załącznik 1 instrukcje instalacji Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych

Bardziej szczegółowo

Wykład 6. Charakterystyki zewnętrzne a wewnętrzne oprogramowania (2) Narzędzia do pomiaru programowania. autor: Zofia Kruczkiewicz

Wykład 6. Charakterystyki zewnętrzne a wewnętrzne oprogramowania (2) Narzędzia do pomiaru programowania. autor: Zofia Kruczkiewicz Wykład 6 Charakterystyki zewnętrzne a wewnętrzne oprogramowania (2) Narzędzia do pomiaru programowania autor: Zofia Kruczkiewicz 1 Zagadnienia 1. Metryki złożoności modułowej i międzymodułowej Chidamber

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Być może jesteś doświadczonym programistą, biegle programujesz w Javie, Kompendium PHP 01 Być może jesteś doświadczonym programistą, biegle programujesz w Javie, C++, Pythonie lub jakimś innym języku programowania, których jak myślę, powstało już tyle, że chyba nie ma osoby,

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

Bardziej szczegółowo

Instalacja sieciowa Autodesk AutoCAD oraz wertykali

Instalacja sieciowa Autodesk AutoCAD oraz wertykali Instalacja sieciowa Autodesk AutoCAD oraz wertykali Łukasz Kuras Licencja sieciowa w przypadku produktów Autodesk rozdzielana jest za pomocą odpowiedniego oprogramowania zwanego Menedżerem licencji sieciowej.

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Git, Bitbucket, IntelliJ IDEA

Git, Bitbucket, IntelliJ IDEA Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 3 Git, Bitbucket, IntelliJ IDEA Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy

Bardziej szczegółowo

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium. Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium. Prowadzący Dr inż. Zofia 1 La1 La2 Forma zajęć - laboratorium Wprowadzenie

Bardziej szczegółowo

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek

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

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

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

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

4. Funkcje. Przykłady

4. Funkcje. Przykłady 4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni

Bardziej szczegółowo

Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz 1

Metryki. Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania. autor: Zofia Kruczkiewicz 1 Metryki Narzędzia do pomiaru złożoności modułowej i międzymodułowej oprogramowania autor: Zofia Kruczkiewicz 1 Zagadnienia 1. Metryki złożoności modułowej i międzymodułowej Chidamber & Kemerer (CK) 2.

Bardziej szczegółowo

Wykład 1: Wprowadzenie do technologii Java

Wykład 1: Wprowadzenie do technologii Java Programowanie komputerów Wykład 1: Wprowadzenie do technologii Java dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl Czym jest Java? Obiektowy język programowania ogólnego przeznaczenia Opracowany

Bardziej szczegółowo

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux Kontakt: e-mail: kontakt@mforex.pl infolinia: 22 697 4774 www.mforex.pl 1 1 O platformie Platforma mforex Trader to część systemu

Bardziej szczegółowo

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

Zmienne i stałe w PHP

Zmienne i stałe w PHP Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

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

Testowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage).

Testowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage). Testowanie II Cel zajęć Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage). Pokrycie kodu testami Jak już była mowa na poprzednich

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

Facelets ViewHandler

Facelets ViewHandler JSF i Facelets Wprowadzenie JSP (JavaServer Pages) są natywną i najczęściej używaną technologią do tworzenia warstwy prezentacyjnej dla JSF (JavaServer Faces) Istnieją alternatywne technologie opisu wyglądu

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo