Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Laboratorium 10 Testy jednostkowe z użyciem narzędzia JUnit
|
|
- Dominika Wierzbicka
- 5 lat temu
- Przeglądów:
Transkrypt
1 Laboratorium 10 Testy jednostkowe z użyciem narzędzia JUnit 1
2 Cel laboratorium: Nabycie umiejętności tworzenia testów jednostkowych za pomocą narzędzia JUnit. 1. Należy wykonać test jednostkowy metod klasy, która stanowi klasę końcową w łańcuchu powiązań na diagramie klas lub/i może być powiązana w relacji 1 do 0..1 z inną klasą podobnie jak klasa typu Factory lub klasy Book, Client. Należy zastosować w metodach testowych metody klasy Assert z pakietu org.junit biblioteki JUnit 4.12 oraz adnotacje: Test, Parameter, Parameters, RunWith(Parameterized.class), Rule. Dane wzorcowe, wykorzystywane do weryfikacji wyników testowanych metod za pomocą metod klasy Assert należy umieścić w dodatkowej klasie, podobnie jak klasa Data z p.2.0 Dodatku 1. Przykłady testów podano w Dodatku 1. W tabelce poniżej podano informację dotyczącą wyboru metod do testowania oraz przykładów rozwiązań. Przykłady testowanych klas Factory Client Book Reservation 2. Należy wykonać test jednostkowy metod klasy, która stanowi klasę w łańcuchu powiązań na diagramie klas lub/i może być powiązana w relacji 1 do 1 lub 1 do 1..* z inną/innymi klasami podobnie jak klasy typu TiTleBook, TitleBookRead, Facade. Należy zastosować w metodach testowych metody klasy Assert z biblioteki JUnit 4.12 oraz adnotacje: Test, Parameter, Parameters, RunWith(Parameterized.class), FixMethodOrder(MethodSorters.NAME_ASCENDING), Rule. Przykłady testów podano w Dodatku 1. Dane wzorcowe wykorzystywane do weryfikacji wyników testowanych metod za pomocą metod klasy Assert, należy umieścić w dodatkowej klasie (zdefiniowanej w p. 2), podobnie jak klasa Data z p.2.1 Dodatku 1. Kryterium wyboru metod powinno uwzględniać fakt, że metody wybrane w p.1 są wywoływane w metodach klas wybranych w p.2. Poniżej, w tabelce poniżej podano informację dotyczącą wyboru metod do testowania oraz przykładów rozwiązań. Przykłady testowanych klas Facade TitleBook TitleBookRead 3. Należy wykonać zestawy testów, podobnie jak pokazano w p.2.7 Dodatku 1 stosując adnotację Category w klasach z metodami testującymi, wykonanych w p. 1, @Categories.IncludeCategory, Categories.ExcludeCategory. 2
3 Dodatek 1 Testy jednostkowe oprogramowania "Wypożyczalnia książek - dodatek 1 zawiera ważne informacje wspomagające tworzenie testów. 1. Dodanie generowania wyjątku w przypadku niepoprawnej wartości pierwszego elementu tablicy data jako parametru metody createtitlebook klasy Factory. Pełna walidacja poprawności danych wejściowych powinna być realizowana przez warstwę klienta aplikacji! package subbusinesstier; import java.time.localdate; import java.util.illegalformatcodepointexception; import subbusinesstier.entities.book; import subbusinesstier.entities.client; import subbusinesstier.entities.reservation; import subbusinesstier.entities.titlebook; import subbusinesstier.entities.titlebookread; public class Factory { public TitleBook createtitlebook(string data[]) { TitleBook titlebook = null; switch (Integer.parseInt(data[0])) //what_title_book_type { case 0: titlebook = new TitleBook(); //TTitle_book object for searching titlebook.setisbn(data[1]); break; case 1: titlebook = new TitleBook(); //TTitle_book object for persisting titlebook.setauthor(data[1]); titlebook.settitle(data[2]); titlebook.setisbn(data[3]); titlebook.setpublisher(data[4]); break; case 2: TitleBookRead title_book1 = new TitleBookRead();//TTitle_book_on_tape object for searching title_book1.setisbn(data[1]); title_book1.setactor(data[2]); titlebook = title_book1; break; case 3: TitleBookRead title_book2 = new TitleBookRead();//TTitle_book_on_tape object for persisting title_book2.setauthor(data[1]); title_book2.settitle(data[2]); title_book2.setisbn(data[3]); title_book2.setpublisher(data[4]); title_book2.setactor(data[5]); titlebook = title_book2; break; default: throw new IllegalFormatCodePointException(0); //generowanie wyjątku z powodu niepoprawnej //wartości elementu tablicy dane o indeksie 0. return titlebook; 3
4 public Book createbook(string data[]) { Book book = null; switch (Integer.parseInt(data[0])) //what_book_type { case 0: book = new Book();//TBook object for persisting book.setnumber(integer.parseint(data[1])); break; return book; public Client createclient(string data[]) { Client client = null; switch (Integer.parseInt(data[0])) //what_book_type { case 0: client = new Client(); client.setnumbercard(integer.parseint(data[1])); break; case 1: client = new Client(); client.setname(data[1]); client.setnumbercard(integer.parseint(data[2])); break; return client; public Reservation createreservation(int number, LocalDate date) { Reservation reservation = new Reservation(); reservation.setnumber(number); reservation.setdate(date); return reservation; 2. Dodanie konstruktorów z parametrami do testowanych klas: public Book(int number) { reservations = new ArrayList(); this.number = number; public Client(int numbercard, String name) { this.numbercard = numbercard; this.name = name; reservations=new ArrayList(); public Reservation(int number, LocalDate date) { this.number = number; this.date = date; public TitleBook(String publisher, String ISBN, String title, String author) { books = new ArrayList(); this.publisher = publisher; this.isbn = ISBN; this.title = title; this.author = author; public TitleBookRead(String actor, String publisher, String ISBN, String title, String author) { super(publisher, ISBN, title, author); this.actor = actor; 4
5 2. Testy jednostkowe z wykorzystaniem narzędzia JUnit Definicja danych wzorcowych - package testdata; import java.time.localdate; import java.time.month; import java.util.arrays; import java.util.list; import subbusinesstier.entities.book; import subbusinesstier.entities.client; import subbusinesstier.entities.reservation; import subbusinesstier.entities.titlebook; import subbusinesstier.entities.titlebookread; public class Data { public String titledata[][] = { {"1", "Author1", "Title1", "ISBN1", "Publisher1", {"1", "Author2", "Title2", "ISBN2", "Publisher2", {"1", "Author3", "Title3", "ISBN3", "Publisher3", {"3", "Author1", "Title1", "ISBN1", "Publisher1", "Actor1", {"3", "Author2", "Title2", "ISBN2", "Publisher2", "Actor2", {"3", "Author4", "Title4", "ISBN4", "Publisher4", "Actor4", {"0", "ISBN1", {"0", "ISBN2", {"0", "ISBN3", {"2", "ISBN1", "Actor1",{"2", "ISBN2", "Actor2",{"2", "ISBN4", "Actor4", {"4", "Author4", "Title4", "ISBN4", "Publisher4", "Actor4" ; public TitleBook titles[] = { new TitleBook("Publisher1", "ISBN1", "Title1", "Author1"), new TitleBook("Publisher2", "ISBN2", "Title2", "Author2"), new TitleBook("Publisher3", "ISBN3", "Title3", "Author3"), new TitleBookRead("Actor1", "Publisher1", "ISBN1", "Title1", "Author1"), new TitleBookRead("Actor2", "Publisher2", "ISBN2", "Title2", "Author2"), new TitleBookRead("Actor4", "Publisher4", "ISBN4", "Title4", "Author4"); public String bookdata[][] = {{"0", "1", {"0", "2"; public Book books[] = {new Book(1), new Book(2); public String[][] clientdata = {{"1", "Klient1", "1", {"1", "Klient2", "2", {"0", "1", {"0", "2", {"0", "3"; public Client[] clients = {new Client(1, "KLient1"), new Client(2, "Klient2"), new Client(1, "KLient1"), new Client(2, "KLient2"), new Client(3, "KLient3"),; public static int number = 0; public LocalDate[] dates = {LocalDate.of(2018, Month.JANUARY, 20), LocalDate.of(2018, Month.MARCH, 20), LocalDate.of(2018, Month.MAY, 20); public Reservation reservations[] = {new Reservation(0, dates[0]), new Reservation(1, dates[0]), new Reservation(2, dates[0]), new Reservation(3, dates[1]); public List<Reservation> reservationlist = Arrays.asList(reservations); 5
6 public String databooks1[]={"\ntitle: Title1 Author: Author1 ISBN: ISBN1 Publisher: Publisher1 Number: 1", "\ntitle: Title1 Author: Author1 ISBN: ISBN1 Publisher: Publisher1 Number: 2"; public String databooks2[]={"\ntitle: Title4 Author: Author4 ISBN: ISBN4 Publisher: Publisher4 Actor: Actor4 Number: 1", "\ntitle: Title4 Author: Author4 ISBN: ISBN4 Publisher: Publisher4 Actor: Actor4 Number: 2"; public String databooks3[]={"\ntitle: Title1 Author: Author1 ISBN: ISBN2 Publisher: Publisher1 Number: 1", //ISBN2 "\ntitle: Title1 Author: Author1 ISBN: ISBN1 Publisher: Publisher1 Number: 2"; 6
7 2.1. Test jednostkowy klasy Factory (wynik działania: p.2.7.1, 2.7.3, 2.7.4) przykłady prostych testów tworzenia obiektów typu: TitleBook, TitleBookRead, Book, Client, Reservation). Należy wykonać interfejs pusty o nazwie Test_Control w celu zastosowania Jest wstęp do utworzenia zestawu testów. @Rule Zastosowanie metod static public void assertequals(object expected, Object actual) //k1.1 ExpectedException //k1.2 package subbusinesstier; import categories.test_control; import java.util.illegalformatcodepointexception; import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.*; import org.junit.rule; import org.junit.experimental.categories.category; import org.junit.rules.expectedexception; import subbusinesstier.entities.book; import subbusinesstier.entities.client; import subbusinesstier.entities.reservation; import subbusinesstier.entities.titlebook; import public class FactoryTest { static Data public ExpectedException exception = ExpectedException.none(); //definicja obiektu odpowiedzialnego //za zachowanie metody testującej podczas generowania wyjątku przez testowaną public static void setupclass() { data=new Data(); public void testcreatetitlebook() { System.out.println("createTitleBook"); Factory instance = new Factory(); for (int i = 0; i < 6; i++) { TitleBook result = instance.createtitlebook(data.titledata[i]); assertequals(data.titles[i], result); //k1.1 test poprawności tworzonych tytulów exception.expect(illegalformatcodepointexception.class); //k1.2 definicja zachowania metody exception.expectmessage("code point = 0x0"); //testowej podczas testowania generowania instance.createtitlebook(data.titledata[12]); // wyjątku IllegalFormatCodePointException // przez metodę createtitlebook 7
8 public void testcreatebook() { System.out.println("createBook"); Factory instance = new Factory(); for (int i = 0; i < 2; i++) { Book result = instance.createbook(data.bookdata[i]); assertequals(data.books[i], result); //k1.1 test poprawności tworzonych ksiazek public void testcreateclient() { System.out.println("createClient"); Factory instance = new Factory(); for (int i = 0; i < 5; i++) { Client result = instance.createclient(data.clientdata[i]); assertequals(data.clients[i], result); //k1.1 test poprawności tworzonych klientów public void testcreatereservation() { System.out.println("createReservation"); Factory instance = new Factory(); for (int i = 0; i < 3; i++) { Reservation result = instance.createreservation(data.number++,data.dates[i]); assertequals(data.reservations[i], result); //k1.1 test poprawności tworzonych rezerwacji 8
9 2.2. Test jednostkowy klasy Reservation (wynik działania: p.2.7.2, 2.7.4, 2.7.5) zastosowanie dla atrybutu number1 i wykonanie metody data() z powoduje wywołanie 4 razy metody testowej testequals z wartościami atrybutu number1 jako indeksu tablicy danych wzorcowych reservations. Wartość indeksu number1 jest wyznaczana z kolejno podstawianych elementów jednowymiarowych tablic zwracanych przez metodę data(). Za pomocą wykonano w metodzie SetUp jednorazowo (przed wykonaniem wszystkich dwóch testów) obiekt typu Data z danymi wzorcowymi. Należy wykonać interfejs pusty o nazwie Test_Entity w celu zastosowania Jest wstęp do utworzenia zestawu testów. package subbusinesstier.entities; import categories.test_entity; import java.util.arrays; import java.util.collection; import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.*; import org.junit.experimental.categories.category; import org.junit.runner.runwith; import org.junit.runners.parameterized; public class ReservationTest { static Data data; public static void setupclass() { data=new public int number1; Zastosowanie metod static public void asserttrue(boolean condition), //k1.1 static public void assertfalse(boolean condition), public static Collection<Object[]> data() { Object[][] data1 = new Object[][]{{0, {1, {2, {3; return Arrays.asList(data1); public void testequals() { System.out.println(""); int j=0; for (Reservation res:data.reservations) { if (number1==j) { asserttrue(res.(data.reservations[number1])); //k1.1 test porównania else // równych rezerwacji assertfalse(res.(data.reservations[number1])); //k1.2 test porównania j++; //roznych rezerwacji 9
10 2.3. Testy jednostkowe klasy Book (wynik działania: p.2.7.2, 2.7.4, 2.7.5) zastosowanie dla atrybutu number1 i wykonanie metody data() z powoduje wywołanie 2 razy wszystkich metod testowych z wartościami atrybutu number1 kolejno podstawianych z elementów jednowymiarowych tablic zwracanych przez metodę data(). Za pomocą wykonano w metodzie SetUp jednorazowo (przed wykonaniem wszystkich dwóch testów) obiekt typu Data z danymi wzorcowymi. W metodzie z dla kolejnej z 2 grup metod testowych ustawia się wartość obiektu statycznego book za pomocą elementów tablicy books obiektów wzorcowych typu Book - wyznaczaną za pomocą atrybutu number1, pełniącego rolę indeksu tablicy. @FixMethodOrder(MethodSorters.NAME_ASCENDING) Zastosowanie metod static public void asserttrue(boolean condition) // k1.1 static public void assertfalse(boolean condition) // k1.2 static public void assertsame(object expected, Object actual) //k1.3 package subbusinesstier.entities; import categories.test_entity; import java.util.arrays; import java.util.collection; import org.junit.before; import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.*; import org.junit.fixmethodorder; import org.junit.experimental.categories.category; import org.junit.runner.runwith; import org.junit.runners.methodsorters; import org.junit.runners.parameterized; @RunWith(Parameterized.class) public class BookTest { static Data data; static Book public static void setupclass() { data = new public void setup() { book = data.books[number1]; 10
11 @Parameterized.Parameter public int public static Collection<Object[]> data() { Object[][] data1 = new Object[][]{{0, {1; return Arrays.asList(data1); public void testequals() { System.out.println(""); for (int j = number1; j < 2; j++) { if (number1 == j) { asserttrue(data.books[number1].(data.books[j])); //k1.1 test porównania else // równych produktów { assertfalse(data.books[number1].(data.books[j])); //k1.2 test porównania public void testaddreservation() { System.out.println("addReservation"); int i = 0; for (Reservation res : data.reservations) { book.addreservation(res); assertsame(res, book.getreservations().get(i)); //k.1.3 i++; assertsame(res.getbook(), book); //k.1.3 public void testisfree() { System.out.println("isFree"); boolean result = true; result = book.isfree(data.dates[number1]); assertfalse(result); //k1.1 result = book.isfree(data.dates[2]); asserttrue(result); //k1.2 11
12 2.4. Testy jednostkowe klasy Client (wynik działania: p.2.7.2, 2.7.4, 2.7.5) package subbusinesstier.entities; import categories.test_entity; import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.*; import org.junit.experimental.categories.category; import public class ClientTest { static Data public static void setupclass() { data = new Data(); public void testaddreservation() { System.out.println("addReservation"); Client client=data.clients[0]; Book book=data.books[0]; for (int j=0;j<data.dates.length-1;j++) { client.addreservation(book, data.dates[j]); assertsame(client.getreservations().get(j), book.getreservations().get(j)); //k1.3 assertsame(client.getreservations().get(j).getclient(), client); //k1.3 client.setnumber(0); //przywrócenie początkowej wartosci atrybutu number, odpowiedzialnego za numer rezerwacji public void testequals() { System.out.println(""); for (int j = 0; j < 2; j++) { for (int i = j; i < 2; i++) { if (i == j) { Zastosowanie Zastosowanie metod static public void asserttrue(boolean condition), //k1.1 static public void assertfalse(boolean condition), //k1.2 static public void assertsame(object expected, Object actual) //k1.3 asserttrue(data.clients[i].(data.clients[j])); else // równych produktów assertfalse(data.clients[i].(data.clients[j])); //k1.1 test porównania //k1.2 test porównania 12
13 Lab_INP002017_ Testy jednostkowe klas TitleBook i TitleBookRead (wynik działania: p.2.7.2, 2.7.4, 2.7.5) - zastosowanie dla atrybutu number1 i wykonanie metody data() z powoduje wywołanie 6 razy wszystkich metod testowych z wartościami atrybutu number1 kolejno podstawianych z elementów jednowymiarowych tablic zwracanych przez metodę data(). Za pomocą wykonano w metodzie SetUp jednorazowo (przed wykonaniem wszystkich dwóch testów) obiekt typu Data z danymi wzorcowymi. W metodzie z dla kolejnej z 6 grup metod testowych ustawia się wartość obiektu statycznego title za pomocą elementów tablicy titles obiektów wzorcowych typu TitleBook, wyznaczanych za pomocą indeksu number1. Dzięki narzuceniu kolejności wykonania metod testowych za pomocą ustalono alfabetyczną kolejność wykonania metod testowych: testaddbook, testequals, testgetbooksmodel, testsearchbook, testsearchfreebook. Kolejna metoda testowa korzysta z danych utworzonych w poprzedniej metodzie testowej. @RunWith Zastosowanie metod static public void assertequals(long expected, long actual) //k1.5 static public void asserttrue(boolean condition) // k1.1 static public void assertfalse(boolean condition) // k1.2 static public void assertequals(object expected, Object actual)//k1.3 static public void assertnotequals(object expected, Object actual)//k1.4 package subbusinesstier.entities; import categories.test_entity; import java.util.arrays; import java.util.collection; import org.junit.before; import org.junit.test; import static org.junit.assert.*; import org.junit.beforeclass; import org.junit.fixmethodorder; import org.junit.experimental.categories.category; import org.junit.runner.runwith; import org.junit.runners.methodsorters; import org.junit.runners.parameterized; @RunWith(Parameterized.class) public class TitleBookTest { static Data data; static TitleBook public int public static Collection<Object[]> data() { Object[][] data1 = new Object[][]{{0, {1, {2, {3, {4, {5; return Arrays.asList(data1); 13
14 Lab_INP002017_10 public static void setupclass() { data = new public void setup() { title = data.titles[number1]; public void testgetbooksmodel() { System.out.println(""); if (number1 == 0) { assertequals(title.(), Arrays.asList(data.databooks1)); assertnotequals(title.(), Arrays.asList(data.databooks3)); else if (number1 == 5) { assertequals(title.(), Arrays.asList(data.databooks2)); //k1.3 //k1.3 //k1.4 public void testequals() { System.out.println(""); for (int j = number1; j < 6; j++) { if (number1 == j) { asserttrue(data.titles[number1].(data.titles[j])); //k1.1 test porównania else // równych tytulow assertfalse(data.titles[number1].(data.titles[j])); //k1.2 test porównania //różnych tytulow public void testaddbook() { System.out.println(""); for (int i = 0; i < data.bookdata.length; i++) { title.(data.bookdata[i]); assertequals(data.books[i], title.getbooks().get(i)); //k1.3 for (int i = 0; i < data.bookdata.length; i++) { data.titles[0].(data.bookdata[i]); assertequals(title.getbooks().size(), data.bookdata.length); // k1.5- badanie spójnosci danych public void testsearchbook() { System.out.println(""); for (int i = 0; i < data.books.length; i++) { Book book = title.(data.books[i]); assertequals(book, data.books[i]); //k1.3 public void testsearchfreebook() { System.out.println(""); for (int i = 0; i < data.bookdata.length; i++) title.getbooks().get(i).setreservations(data.reservationlist); boolean result = title.(data.dates[2]); asserttrue(result); result = title.(data.dates[1]); assertfalse(result); 14
15 Lab_INP002017_ Testy jednostkowe klasy Facade (wynik działania: p.2.7.1, 2.7.4) opierają się na wywołaniu trzech metod testowych, działających w kolejności alfabetycznej dzięki zastosowaniu test1addtitlebook, test2addbook, testaddclient, testaddreservation. Przed wywołaniem metod testowych wywołana jest metoda SetUp dzięki zastosowaniu metoda ta tworzy obiekt typu Facade oraz Data z danymi wzorcowymi. Metody działające w podanym porządku umożliwiają po dodaniu tytułów książek w metodzie test1addtitlebook wykonać testy: dodawania książek w metodzie test2addbook, dodawanie klientów w metodzie testowej testaddclient oraz dodawanie rezerwacji w metodzie testowej testaddreservation. Metoda testowa test1addtitlebook testuje również przypadek podania niepoprawnej wartości w danych wejściowych, które powodują generowanie wyjątku przez metodę createtitlebook klasy Factory wyjątek ten jest obsługiwany w metodzie testowej za pomocą Za pomocą dokonano różnych klasyfikacji wszystkich metod testowych i wybranej metody testaddreservation. Należy wykonać interfejs pusty o nazwie Test_Reservation w celu zastosowania Jest wstęp do utworzenia zestawu testów. Zastosowanie metod static public void assertequals(object expected, Object actual)// k1.1 static public void assertequals(long expected, long actual) //k1.2 package subbusinesstier; import categories.test_control; import categories.test_reservation; import java.util.illegalformatcodepointexception; import org.junit.beforeclass; import org.junit.test; import static org.junit.assert.*; import org.junit.fixmethodorder; import org.junit.rule; import org.junit.experimental.categories.category; import org.junit.rules.expectedexception; import org.junit.runners.methodsorters; import static subbusinesstier.facadetest.instance; import subbusinesstier.entities.book; import subbusinesstier.entities.client; import subbusinesstier.entities.reservation; import subbusinesstier.entities.titlebook; import //określenie kategorii testu, zastosowanie - p.2.7.1, public class FacadeTest { static Data data; static Facade instance; 15
16 Lab_INP002017_10 public ExpectedException exception = public static void setupclass() { instance = new Facade(); data = new Data(); public void test1addtitlebook() { System.out.println("addTitleBook"); for (int i = 0; i < 6; i++) { instance.addtitlebook(data.titledata[i]); int number1 = instance.gettitlebooks().size(); instance.addtitlebook(data.titledata[i]); //powtórzenia wartości elementów int number2 = instance.gettitlebooks().size(); TitleBook result = instance.gettitlebooks().get(number2-1); assertequals(data.titles[number2-1], result); //k1.1 test dodawania tytulów assertequals(number1, number2); //k1.2 test spójności danych podczas dodawanie tytulów exception.expect(illegalformatcodepointexception.class); //obsługa wyjątku w testowanej metodzie exception.expectmessage("code point = 0x0"); instance.addtitlebook(data.titledata[12]); public void test2addbook() { System.out.println(""); for (int i = 6; i < 12; i++) { for (int j = 0; j < 2; j++) { instance.(data.titledata[i], data.bookdata[j]); int number1 = instance.gettitlebooks().get(i - 6).getBooks().size(); instance.(data.titledata[i], data.bookdata[j]); //powtórzenia wartości elementów int number2 = instance.gettitlebooks().get(i - 6).getBooks().size(); Book result = instance.gettitlebooks().get(i - 6).getBooks().get(number2-1); assertequals(data.books[number2-1], result); //k1.1 test dodawania ksiazek assertequals(number1, number2); //k1.2 test spójności danych podczas dodawanie ksiazek public void testaddclient() { System.out.println("addClient"); for (int i = 0; i < 2; i++) { instance.addclient(data.clientdata[i]); int number1 = instance.getclients().size(); instance.addclient(data.clientdata[i]); //powtórzenia wartości elementów int number2 = instance.getclients().size(); Client result = instance.getclients().get(number2-1); assertequals(data.clients[number2-1], result); //k1.1 test dodawania klientów assertequals(number1, number2); //k1.2 test spójności danych podczas dodawanie klientów 16
17 Lab_INP002017_10 //określenie kategorii testu przykład zastosowania w p public void testaddreservation() { System.out.println("addReservation"); int k = 1, i = 6, j = 2; instance.addreservation(data.titledata[i], data.clientdata[j], data.dates[0]); instance.addreservation(data.titledata[i], data.clientdata[j], data.dates[0]); int number2 = instance.getclients().get(j - 2).getReservations().size(); instance.addreservation(data.titledata[i], data.clientdata[j], data.dates[0]); //powtórzenia wartości elementów int number3 = instance.getclients().get(j - 2).getReservations().size(); Reservation result = instance.getclients().get(j - 2).getReservations().get(number3-1); assertequals(data.reservations[k], result); //k1.1 test dodawania rezerwacji assertequals(number3, number2); //k1.2 test spójności danych podczas dodawania rezerwacji 17
18 Lab_INP002017_ Tworzenie zestawów testów Wyniki testów wykonanych przez klasy należące również do FactoryTest, FacadeTest package testsuite; import categories.test_control; import org.junit.experimental.categories.categories; import org.junit.runner.runwith; import subbusinesstier.facadetest; import subbusinesstier.factorytest; import subbusinesstier.entities.booktest; import subbusinesstier.entities.clienttest; import subbusinesstier.entities.reservationtest; import ReservationTest.class, BookTest.class, ClientTest.class, public class Suite11 { createtitlebook createbook createreservation createclient addtitlebook addclient addreservation Wynik testu: FactoryTest, FacadeTest 18
19 Lab_INP002017_ Wyniki testów wykonanych przez klasy należące tylko do TitleBookTest.class, BookTest.class, ClientTest.class, ReservationTest.class wariant 1 package testsuite; import categories.test_control; import org.junit.experimental.categories.categories; import org.junit.runner.runwith; import subbusinesstier.facadetest; import subbusinesstier.factorytest; import subbusinesstier.entities.booktest; import subbusinesstier.entities.clienttest; import subbusinesstier.entities.reservationtest; import ReservationTest.class, BookTest.class, ClientTest.class, public class Suite12 { addreservation isfree addreservation isfree addreservation Wyniki testu Wyniki testu Wyniki testu Wyniki testu Reservation Book Client TitleBook 19
20 Lab_INP002017_ Wyniki testów wykonanych przez klasy należące do z wyłączeniem metody testaddreservation klasy FacadeTest zaliczonej do : FactoryTest, FacadeTest package testsuite; import categories.test_control; import categories.test_reservation; import org.junit.experimental.categories.categories; import org.junit.runner.runwith; import subbusinesstier.facadetest; import subbusinesstier.factorytest; import subbusinesstier.entities.booktest; import subbusinesstier.entities.clienttest; import subbusinesstier.entities.reservationtest; import ReservationTest.class, BookTest.class, ClientTest.class, @Categories.ExcludeCategory(Test_Reservation.class) public class Suite13 { createtitlebook createbook createreservation createclient addtitlebook addclient Wynik testu: FactoryTest, FacadeTest z wyłączeniem metody testowej testaddreservation 20
21 Lab_INP002017_ Wyniki testów wykonanych przez wszystkie klasy testujące niezależnie od przypisanych kategorii package testsuite; import org.junit.experimental.categories.categories; import org.junit.runner.runwith; import subbusinesstier.facadetest; import subbusinesstier.factorytest; import subbusinesstier.entities.booktest; import subbusinesstier.entities.clienttest; import subbusinesstier.entities.reservationtest; import ReservationTest.class, BookTest.class, ClientTest.class, TitleBookTest.class, public class Suite14 { createtitlebook createbook createreservation createclient addreservation isfree addreservation isfree addreservation Wyniki testu Wyniki testu Wyniki testu Wyniki testu Wyniki testu Factory Reservation Book Client TitleBook addtitlebook addclient addreservation Wyniki testu Facade 21
22 Lab_INP002017_ Wyniki testów wykonanych przez klasy należące tylko do TitleBookTest.class, BookTest.class, ClientTest.class, ReservationTest.class wariant 2 package testsuite; import categories.test_entity; import org.junit.experimental.categories.categories; import org.junit.runner.runwith; import subbusinesstier.facadetest; import subbusinesstier.factorytest; import subbusinesstier.entities.booktest; import subbusinesstier.entities.clienttest; import subbusinesstier.entities.reservationtest; import ReservationTest.class, BookTest.class, ClientTest.class, public class Suite15 { addreservation isfree addreservation isfree addreservation Wyniki testu Wyniki testu Wyniki testu Wyniki testu Reservation Book Client TitleBook 22
Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse
Laboratorium 11 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 podanych
Laboratorium 8 Diagramy aktywności
Laboratorium 8 Diagramy aktywności Zofia Kruczkiewicz Zofia Kruczkiewicz Lab_INP002017_8 1 Modelowanie zachowania obiektów za pomocą diagramów aktywności. Modelowanie zachowania obiektów za pomocą diagramów
Diagram stanów Laboratorium 9
Diagram stanów Laboratorium 9 Zofia Kruczkiewicz Zofia Kruczkiewicz lab_inp002017_9 1 Modelowanie zachowania obiektu za pomocą diagramu stanów. Opracowanie diagramu stanów dla obiektu wybranej klasy, reprezentującego
Przykład 1 Iteracja 1 tworzenia oprogramowania
Przykład 1 Iteracja 1 tworzenia oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji: Relacja 1 do 0..*
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
Przykład 1 Iteracja 2 tworzenia oprogramowania Diagramy klas i sekwencji:
Przykład 1 Iteracja 2 tworzenia oprogramowania Diagramy klas i sekwencji: Relacja 1 do 0..* między klasami modelu obiektowego Cele drugiej iteracji 2-i etap projektu. Instrukcja zawiera przykłady powiązań
Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML
Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML 1 Cel laboratorium: Wprowadzenie do UML wykonanie prostego projektu programu za pomocą wybranych diagramów UML i
Instrukcja 9 Laboratorium 12 Testy jednostkowe z użyciem narzędzi JUnit oraz JMockit
Instrukcja 9 Laboratorium 12 Testy jednostkowe z użyciem narzędzi JUnit oraz JMockit 1 Cel laboratorium: Nabycie umiejętności tworzenia testów jednostkowych za pomocą narzędzia JUnit oraz JMockit. 1. Wg
Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML
Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML 1 Cel laboratorium: Wprowadzenie do UML wykonanie prostego projektu programu za pomocą wybranych diagramów UML i
Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML
Instrukcja 1 Laboratorium 1 Zapoznanie się z wybranym narzędziem UML wprowadzenie do UML 1 Cel laboratorium: Wprowadzenie do UML wykonanie prostego projektu programu za pomocą wybranych diagramów UML i
Diagramy klas i sekwencji Wykład5
Diagramy klas i sekwencji Wykład5 Zofia Kruczkiewicz Zofia Kruczkiewicz Wyklad_INP002017_5 1 Diagramy klas, diagramy sekwencji 1. Wprowadzenie 2. Syntaktyka diagramów klas https://sparxsystems.com/resources/tutorials/uml2/class-diagram.html
JUNIT. Terminologia. Organizacja testów
JUNIT Terminologia Test coverage zarkes badań testowany kawałek kodu Test lokalny local test badanie pojedynczej klasy itp. Text fixture armatura pomiarowa (wat?) punkt odniesienia do testów Integration
Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz
Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 http://www.junit.org/ Zofia Kruczkiewicz 1. Aby utworzyć test dla jednej klasy, należy kliknąć prawym przyciskiem myszy w oknie Projects na wybraną
Testowanie II. Cel zajęć. Pokrycie kodu
Cel zajęć Celem zajęć jest zapoznanie studentów z uzupełniającymi zagadnieniami dotyczącymi testowania wytwarzanego oprogramowania. W pierwszej części zajęć przedstawiona zostanie metoda oceny kompletności
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6
Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]
1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie
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
Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton
Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7
Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
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
LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8
Inżynieria Oprogramowania 2013/14 LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8 Hierarchia klas: TestCase klasa testująca, będąca klasą bazową dla wszystkich przypadków testowych. Zawiera przypadki testowe
Testy automatyczne. Korzystające z junit
Testy automatyczne Korzystające z junit Cytaty Kiedy zawiesza się program konkurencji, to jest awaria. Kiedy zawiesza się własny program, to jest drobiazg. Często po awarii pojawia się komunikat typu ID
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?
1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)? public static void test1() { Object[] o = new Object[] { "1", "2", "3" ; List l = new ArrayList(Arrays.asList(o));
KLASY, INTERFEJSY, ITP
KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Testowanie jednostkowe. Jacek Starzyński, ZETiIS PW
Testowanie jednostkowe Jacek Starzyński, ZETiIS PW Testowanie Po co testować? Co testować? Kiedy testować? Jak testować? Narzędzia Po co testować? Testy nie udowadniają poprawności......ale pozwalają wykryć
Programowanie obiektowe
Programowanie obiektowe III. Refleksja Małgorzata Prolejko OBI JA16Z03 Plan Klasa Class. Analiza funkcjonalności klasy. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Wywoływanie
TESTOWANIE OPROGRAMOWANIA
TESTOWANIE OPROGRAMOWANIA Uważaj na ten program ja tylko udowodniłem jego poprawność, nie testowałem go Donald Knuth Plan prezentacji 1. Testowanie wstęp 2. Refaktoryzacja 3. Pojęcia związane z testowaniem
Platformy Technologiczne
i Platformy Technologiczne Laboratorium nr 5 Java: testy jednostkowe z biblioteką JUnit Projekt opracowany w ramach laboratorium nr 5 będzie wykorzystywany w czasie laboratorium nr 6 należy zachować przygotowaną
JAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
METODY PROGRAMOWANIA
METODY PROGRAMOWANIA Testy jednostkowe 8 grudnia 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl PO CO NAM TESTY? weryfikacja poprawności sprawdzanie regresji specyfikacja dokumentacja wymuszanie dobrego
Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania
Instrukcja 3 Laboratorium z Podstaw Inżynierii Oprogramowania Diagramy klas i sekwencji: Relacja 1 do 0..* między klasami modelu obiektowego Cele laboratorium 3 Dokończyć 1-y etap z lab2. 2-i etap projektu.
Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz
Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz Zadanie 1. Wykonanie projektu Java SE w środowisku Netbeans- File/New Project W formularzu New Project
BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska
BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
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
Klasy i obiekty cz II
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy
Stanowe komponenty sesyjne
Stanowe komponenty sesyjne 1. Porównanie komponentów stanowych i bezstanowych. 2. Cykl życia stanowego komponentu sesyjnego, 3. Komponenty sesyjne a kontekst utrwalania, 4. Zagnieżdżanie komponentów sesyjnych,
Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne
Podejście obiektowe. Tablice obiektów Przykład 1 metody i atrybuty statyczne oraz niestatyczne import javax.swing.*; import java.util.*; public class Napis4 { String wynik = ""; static int ile_obiektow
Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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
Podejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm
1. Po uruchomieniu przeglądarki Mozilla FireFox, należy uruchomić stronę
1. Po uruchomieniu przeglądarki Mozilla FireFox, należy uruchomić stronę http://docs.seleniumhq.org 2. Po wybraniu zakładki Download w celu zainstalowania oprogramowania Selenium IDE należy kliknąć na
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Programowanie Obiektowe Ćwiczenie 4
Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)
Platformy Programistyczne Podstawy języka Java
Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo
Wzorce logiki dziedziny
Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),
/** Program demonstrujący działanie klasy GregorianCalendar import java.util.*; public class TestKalendarza // zbuduj d i zainicjalizuj z aktualną datą GregorianCalendar d = new GregorianCalendar(); int
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List.
Budowa aplikacji wielowarstwowych. Obsługa zdarzeń, zastosowanie walidatorów, wykonanie listy typu Drop Down List. Laboratorium 5 Technologie internetowe Zofia Kruczkiewicz TINT_Lab_5, Zofia Kruczkiewicz
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Wykorzystywanie parsera DOM w programach Java i PL/SQL
Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser
Java: interfejsy i klasy wewnętrzne
Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania
Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1
Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,
Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia
Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia 1 Cel laboratoriów: Specyfikacja wymagań, zdefiniowanych w ramach laboratorium 2 (wg instrukcji 2),
Tworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 2 Java Collections Framework Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku
Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,
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
Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia
Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia 1 Cel laboratoriów: Specyfikacja wymagań, zdefiniowanych w ramach laboratorium 2 (wg instrukcji 2),
Testowanie i logowanie. 1. Testowanie aplikacji JUnit. 2. Tworzenie logów: pakiet java.util.logging.
1 Testowanie i logowanie 1. Testowanie aplikacji JUnit. 2. Tworzenie logów: pakiet java.util.logging. 2 JUnit JUnit jest platformą umożliwiającą tworzenie testów i testowanie programów napisanych w Javie.
Algorytmy z powrotami. Algorytm minimax
Algorytmy z powrotami. Algorytm minimax Algorytmy i struktury danych. Wykład 7. Rok akademicki: 2010/2011 Algorytm z powrotami rozwiązanie problemu budowane jest w kolejnych krokach, po stwierdzeniu (w
Programowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Remote Method Invocation 17 listopada 2010
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)
MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System
Aplikacje RMI Lab4
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych
Współbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Polimorfizm, metody wirtualne i klasy abstrakcyjne
Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,
Systemy Rozproszone - Ćwiczenie 6
Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().
Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Języki i metody programowania Java Lab2 podejście obiektowe
Języki i metody programowania Java Lab2 podejście obiektowe https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf Zofia Kruczkiewicz 1 Zadanie
Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia
Instrukcja 3 Laboratoria 3, 4 Specyfikacja wymagań funkcjonalnych za pomocą diagramu przypadków użycia 1 Cel laboratoriów: Specyfikacja wymagań, zdefiniowanych w ramach laboratorium 2 (wg instrukcji 2),
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
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,
Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki
Systemy Rozproszone Temat projektu: Regułowy system analizujacy logi Spis treści autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki Cel Projektu...2 Dane aplikacji...2 Technologia...2 Zarządzanie
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia
Abstract Factory (fabryka abstrakcyjna)
1/9 Abstract Factory (fabryka abstrakcyjna) Cel: Zapewnienie interfejsu do tworzenia rodzin powiązanych obiektów bez specyfikacji konkretnej klasy. Przykład: Aplikacja do ustawiania mebli: osobne rodziny
Wykład 5: Więcej o Klasach i Metodach
Wykład 5: Więcej o Klasach i Metodach Przeciążanie Metod Klasa posiada dwie lub więcej metod o tej samej nazwie ale różnych deklaracjach parametrów. Java używa liczby i typów argumentów by ustalić którą
Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1
P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw
Programowanie obiektowe
Programowanie obiektowe Wykład 3: Tworzenie i usuwanie obiektów 3/10/2013 S.Deniziak: Programowanie obiektowe - Java 1 Deklaracje pól klasy class Klasa1 { int i; Klasa2 k = new Klasa2(); char c= x ; byte
Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz
Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres
Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial
Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz Zofia Kruczkiewicz Projektowanie oprogramowania
Języki i metody programowania Java INF302W Wykład 3 (część 1)
Języki i metody programowania Java INF302W Wykład 3 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 3, część 1 1 STRUKTURA WYKŁADU 1. Wyjątki,
Weryfikacja i walidacja. Metody testowania systemów informatycznych
Weryfikacja i walidacja Metody testowania systemów informatycznych Zagadnienia Weryfikacja a walidacja Etapy procesu testowania Rola planowania w procesie testowania systemów Przegląd różnych strategii
Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1
PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,
Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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
Java EE produkcja oprogramowania
Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 4 Warszawa, 2016Z 2 Pętle, typ tablicowy, usługi czasu i kalendarza 3 Pętla while 1/3 Instrukcja pętli umożliwia
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Modelowanie obiektowe
Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle
Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ
Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu
Podejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia
Laboratorium z przedmiotu: Inżynieria Oprogramowania INP
Laboratoria 5-7- część 1 Identyfikacja klas reprezentujących logikę biznesową projektowanego oprogramowania, definicja atrybutów i operacji klas oraz związków między klasami - na podstawie analizy scenariuszy
Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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
JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak
JAVA Wstęp do programowania w języku obiektowym Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Platforma JSE: Opracował: Andrzej Nowak JSE (Java Standard