Podstawy testowania oprogramowania obiektowego 1)
|
|
- Tomasz Mikołajczyk
- 7 lat temu
- Przeglądów:
Transkrypt
1 Podstawy testowania oprogramowania obiektowego 1) Ilona Bluemke Instytut Informatyki Politechniki Warszawskiej ul. Nowowiejska 15/ Warszawa ibl@ii.pw.edu.pl Streszczenie. W pracy przedstawiono podstawy testowania oprogramowania napisanego w językach obiektowych. Zwrócono uwagę na fakt, że testowanie programów obiektowych wymaga nie mniejszego wysiłku, niż testowanie programów napisanych w językach strukturalnych. Wzrost złożoności testowania wynika z podstawowych cech języków obiektowych takich jak hermetyzacja, dziedziczenie, polimorfizm czy dynamiczne wiązanie. Podano także pewne wskazówki praktyczne dotyczące testowania klas. Słowa kluczowe: inżynieria oprogramowania, programowanie obiektowe, jakość oprogramowania, testowanie obiektowe, aksjomaty testowania 1. Wprowadzenie Testowanie oprogramowania jest jednym ze środków pozwalających zapewnić wysoką jakość oprogramowania. Celem testowania jest wykrycie jak największej liczby błędów wykonania programu przy minimalnym koszcie. Właściwy test powinien wykrywać błędne zachowanie programu niepoprawne wyniki, czy zachowanie niezgodnie z oczekiwaniami użytkownika. Koszty testowania to 40% do 80 % kosztów produkcji oprogramowania stąd redukcja tych kosztów i poprawa jakości testowania są ważnym problemem od lat przyciągającym uwagę informatyków. W ostatnim trzydziestoleciu lat zaproponowano wiele strategii testowania i metod zwiększania niezawodności oprogramowania np. przeglądy kodu, testowanie ścieżek, testowanie struktur sterujących, analiza wartości brzegowych czy symboliczne wykonywanie. Metody te zostały zaproponowane dla oprogramowania strukturalnego i większość z nich nie nadaje się zbyt dobrze do testowania oprogramowania obiektowego. Od końca lat osiemdziesiątych prowadzone są prace nad metodami testowania dostosowanymi do testowania programów pisanych w językach obiektowych. Poniżej przedstawiono podstawy testowania oprogramowania obiektowego. W celu osiągnięcia akceptowalnego poziomu niezawodności konieczne jest testowanie ukierunkowane na wyszukiwanie defektów ( defect testing ) w programie [9]. Zaproponowano następujące podejścia do testowania : 1) Praca została wykonana w ramach grantu JM Rektora PW nr 503/G/1032/1570/200.
2 1. Funkcjonalne (black box) testy są wyprowadzane ze specyfikacji oprogramowania. Program jest traktowany jako czarna skrzynka, której zachowanie może być określone na podstawie wejść i odpowiadających im wyjść. Celem testowania jest określenie, czy program spełnia funkcjonalne i niefunkcjonalne (np. wydajnościowe) wymagania. 2. Strukturalne (white box) testy są wyprowadzane na podstawie znajomości struktury programu. Cechą charakterystyczną tego podejścia jest sprawdzanie pokrycia programu np. sprawdzenie, czy wykonano wszystkie instrukcje, skoki, ścieżki przepływu danych. W praktyce stosuje się łącznie oba podejścia. Testowanie funkcjonalne określa na ile program spełnia specyfikację wykonuje funkcje oczekiwane od niego, ale nie określa, które jego części są wykonywane by wypełnić poszczególne wymagania w specyfikacji. Testowanie strukturalne może więc być jego uzupełnieniem. Zazwyczaj testowanie strukturalne stosuje się do niewielkich fragmentów oprogramowania np. do testowania jednostek. Testowanie funkcjonalne także może być użyte do testowania jednostek, jednak stosuje się je także do testowania większych fragmentów podsystemów, systemów. 2. Aksjomaty testowania obiektowego Aksjomaty testowania dla programów napisanych w językach strukturalnych zostały podane przez Weyuker w 1986 [10]. Było to osiem aksjomatów równoważności testów i danych testowych. W 1988 roku zostały dodane przez Weyuker [11] jeszcze trzy aksjomaty. Aksjomaty testowania oprogramowania strukturalnego Weyuker zostały przejrzane przez Perry ego i Kaisera pod kątem ich przydatności dla oprogramowania napisanego w językach obiektowych. W pracy [7] omówiono aksjomaty mające zastosowanie przy testowaniu oprogramowania obiektowego. Pewne z aksjomatów podanych przez Weyuker są intuicyjnie oczywiste dla programów obiektowych. Są to: Stosowalność (applicability) Dla każdego programu istnieje właściwy zbiór testów tzn. testów spełniających wymagane kryterium testowania. Nie wyczerpująca stosowalność (non-exhaustive applicability) Program P ma właściwy zbiór testów T, zbiór T nie jest wyczerpującym zbiorem testów (wszystkich możliwych). Monotoniczność (monotonicity) Jeżeli zbór testów T jest właściwy dla programu P i T jest podzbiorem zbioru T, to T jest także właściwy dla programu P. Niewłaściwość zbioru pustego (inadequate empty set) Nie ma programu dla którego pusty zbiór testów jest właściwy. Aksjomaty te stosują się do wszystkich programów niezależnie od języka programowania, w którym zostały napisane i nadają się zarówno do testowania strukturalnego jak i funkcjonalnego. Trzy inne aksjomaty Weyuker są także intuicyjnie oczywiste dla programów obiektowych, są to: Przemianowanie (renaming) Niech program P będzie przemianowaniem Q. Test T jest właściwy dla P tylko wtedy, gdy jest on właściwy dla Q. Program P jest przemianowaniem Q jeśli jest identyczny z Q z dokładnością do instancji
3 (np. zmiennej) o nazwie x z programu Q, która została nazwana y w P i identyfikator y nie występuje w Q. Jest to także prawdziwe dla zbioru przemianowań. Złożoność (complexity) Dla każdego n istnieje program P taki, że P jest właściwie testowany (testami spełniającymi wymagane kryterium testowania) przez zbiór testów o wielkości n, ale nie przez zbiór o wielkości n-1. Pokrycie instrukcji (statement coverage) Jeśli zbiór testów T jest właściwy dla P, przy kryterium testowania, którym jest pokrycie instrukcji, to T powoduje wykonanie każdej wykonywalnej instrukcji z P. Aksjomat pokrycia instrukcji jest przykładem aksjomatu stosowalności. Aksjomaty złożoności i przemianowania są stosowane do testowania strukturalnego jak i funkcjonalnego. Aksjomat pokrycia instrukcji stosuje się do testowania strukturalnego. Poniżej przedstawiono pozostałe cztery aksjomaty dotyczące testowania części programu i ich relacji z całym programem. Wskazują one na nieadekwatność pewnych testów dla programów obiektowych. Anty rozszerzalość (antiextensionality) Jeżeli dwa programy obliczają tę samą funkcję (są bliskie semantycznie) to właściwy dla jednego z nich test strukturalny niekoniecznie jest właściwy dla drugiego. Programy te mogą mieć inną implementację i test pokrywający np. wszystkie ścieżki grafu przepływu sterowania jednego z nich, nie będzie pokrywał drugiego programu (napisanego wg zupełnie innego algorytmu i mającego inny graf przepływu sterowania). Testy bazujące na specyfikacji (funkcjonalne) mogą być właściwe, gdyż oba programy obliczają tę samą funkcję. Zmiana semantyczna (general multiple change) Jeśli dwa programy są syntaktycznie podobne mają podobną budowę (jeden można otrzymać z drugiego poprzez zmianę stałych i/lub operatorów) to wymagają one różnych zbiorów testów. Jeśli test strukturalny jest właściwy dla jednego programu np. wymusza wykonanie obu gałęzi każdej instrukcji warunkowej, to nowy operator relacyjny i/lub stała w predykacie może wymusić inny test pokrywający gałęzie instrukcji warunkowej. Anty dekompozycja (antidecomposition) Testowanie podprogramu w kontekście otaczającego go programu może być właściwe, jednak po zmianie tego kontekstu (otoczenia podprogramu) może nie być wystarczające, czyli nie będzie wystarczające dla innych użyć komponentu. Aksjomat ten dotyczy testowania funkcjonalnego i strukturalnego. Test funkcjonalny może być adekwatny dla pewnego otoczenia A, które nie zawiera jakiejś funkcjonalności występującej w specyfikacji innego otoczenia B. Nie będzie ten test właściwy dla specyfikacji B. Program może być właściwie przetestowany strukturalnie nawet jeśli zawiera kod nieosiągalny i kod ten nie został przetestowany w otoczeniu A. Jednak w innym otoczeniu kod ten może być osiągalny i test nie będzie go pokrywał. Anty kompozycja (anticomposition) Właściwe testowanie komponentów programu w izolacji może nie być wystarczające do przetestowania całego programu. Kompozycja dwóch komponentów programu powoduje powstawanie interakcji, które nie mają miejsca w izolacji. Np. komponent A wywołuje kilka razy komponent B lub są one wzajemnie rekursywne. W obu przypadkach programy mogą modyfikować kontekst widziany przez drugi
4 komponent w sposób bardziej złożony niż przy indywidualnym testowaniu komponentów. Aksjomat ten dotyczy testowania strukturalnego i funkcjonalnego. 3. Wpływ cech języków obiektowych na testowanie Testowanie oprogramowania obiektowego [3] musi być dostosowane do cech języków obiektowych. Cechy oprogramowania obiektowego takie jak np. hermetyzacja, dziedziczenie, polimorfizm, dynamiczne wiązanie są bardzo wygodne i korzystne przy projektowaniu i programowaniu ale stwarzają pewne problemy podczas testowania. Hermetyzacja oznacza zamknięcie w obiekcie atrybutów i operacji które obiekt może wykonywać ( lub które można wykonywać na obiekcie). Operacje są udostępnione poprzez interfejs a szczegóły implementacyjne są ukryte wewnątrz. Interakcje pomiędzy obiektami są niełatwe do zrozumienia, wyobrażenia sobie, toteż przygotowanie testów interakcji obiektów jest sprawą trudną [4]. Dziedziczenie oznacza, że własności zdefiniowane dla klasy są dostępne (zostały odziedziczone) przez jej podklasy (o ile nie zostały w nich inaczej zdefiniowane). Metoda, która została przetestowana i jest poprawna w klasie bazowej może nie być poprawna w kontekście podklasy [7]. Polimorfizm oznacza, że atrybut może być różnych typów, metoda może mieć różne implementacje. Dynamiczne wiązanie kodu oznacza, że operacja nie jest znana do czasu wykonania. Cechy te czynią testowanie bardzo trudnym, gdyż dokładnego typu atrybutu czy implementacji operacji nie da się określić statycznie. Poniżej opisano wpływ hermetyzacji, dziedziczenia, polimorfizmu i dynamicznego wiązania na testowanie programów obiektowych opracowany na podstawie prac [7] i [8]. Hermetyzacja Hermetyzacja w językach obiektowych powoduje, że zmiana w implementacji przy zachowanym interfejsie zewnętrznym nie powinna wpływać na inne obiekty. Intuicja oparta na testowaniu funkcjonalnym podpowiada nam, że w takim przypadku wystarczy ograniczyć testowanie do obiektu zmodyfikowanego. Aksjomat anty kompozycji powiada, że należy także ponownie przetestować wszystkie obiekty zależne od modyfikowanego. Pokazana na rys. 1 klasa A zawiera metodę M, która została właściwie przetestowana w kontekście klasy A. Klasa B jest podklasą klasy A. Klasa B dziedziczy metodę M, nie zastępuje jej własną realizacją. Zgodnie z aksjomatem anty kompozycji należy przetestować metodę M w kontekście klasy B, mogą pojawić się bowiem nowe błędy wynikające z rozszerzonego kontekstu np. na rys. 1 pokazano konflikt zmiennej x (ustawianej przez metodę M klasy A i metodę L klasy B). Powyższy przykład pokazuje, że testowanie integracyjne jest zawsze konieczne jako uzupełnienie testowania jednostek, niezależnie od stosowanego języka programowania.
5 Klasa A Zmienne : x,... Metody: M,... M ustawia x na 1 nadklasa Klasa B Zmienne :... Metody: L,... L ustawia x na 0 podklasa Rys. 1 Konflikt zmiennej x Dziedziczenie W językach programowania obiektowych jeżeli jest modyfikowana klasa to konieczne i wystarczające będzie przetestowanie tej klasy i wszystkich klas od niej jawnie zależnych. Jeżeli modyfikowana jest nadklasa to należy przetestować wszystkie jej podklasy, gdyż są one zależne dziedzicząc jej metody. Aksjomat anty kompozycji mówi, że jeśli dodajemy nową podklasę (lub modyfikujemy istniejącą podklasę) to musimy przetestować metody odziedziczone z każdej klasy będącej jej przodkiem (nadklasą). Jest pewien przypadek w którym ponowne testowanie metod odziedziczonych z nadklasy nie jest konieczne. Chodzi o sytuację, w której podklasa jest czystym rozszerzeniem klasy będącej jej przodkiem tzn. dodaje nowe metody lub zmienne, ale nie ma żadnych zależności pomiędzy zmiennymi i metodami nowymi i odziedziczonymi. Polimorfizm W językach obiektowych podklasa może zastąpić metodę odziedziczoną poprzez lokalną definicję metody o tej samej nazwie. Jest oczywiste, że podklasa przykrywająca metodę powinna być przetestowana, jednak nie tak oczywistym jest to, że często konieczne są inne zbiory testów fakt ten podkreśla aksjomat anty rozszerzalności. Rozważmy sytuację pokazaną na rys. 2, w której klasa A zawierająca metodę M ma podklasę B. Klasa B nie ma lokalnej definicji metody M. Niech obiekt O będący instancją klasy B otrzyma komunikat powodujący wykonanie metody M. Metoda M w zastosowaniu do obiektu O była właściwie przetestowana. Jeżeli klasa B doda własną definicję metody M, która ma taki interfejs jak metoda M z klasy A A.M, to oczywista jest konieczność ponownego przetestowania klasy B. Aksjomat anty rozszerzalności przypomina, że należy opracować nowe przypadki testowe z dwóch powodów: 1. Jest wysoce prawdopodobne, że nowa definicja metody wpływa nie tylko na wewnętrzną strukturę klasy ale także zmienia jej specyfikację funkcjonalną
6 inne jest zewnętrzne zachowanie tej klasy. W takim przypadku konieczne są także inne testy funkcjonalne. Klasa A Metody: M, N... nadklasa Klasa A Metody: M,... Klasa B Metody:... podklasa Klasa B Metody: M... Metoda B.M nie wymaga testowania Rys. 2 Metoda B.M wymaga testowania 2. W testowaniu strukturalnym dąży się do pokrycia gałęzi lub instrukcji programu. Jeżeli instrukcje lub gałęzie są różne (a taki jest zazwyczaj cel nowej definicji np. inny algorytm) w obu realizacjach, to test pokrywający A.M może nie pokryć B.M. Dziedziczenie wielopoziomowe i wielobazowe Powyżej przedstawiono dwustronną zależność pomiędzy klasą i nadklasą powodującą konieczność testowania odziedziczonych metod w kontekście definiującym i każdym kontekście odziedziczonym. Nie uwzględniono wpływu aksjomatu anty rozszerzalności na to dodatkowe testowanie. Różne zbiory testów mogą być potrzebne w każdym punkcie łańcucha dziedziczenia, pomiędzy klasą przodkiem definiującą zastępowaną metodę i klasą potomkiem definiującą metodę zastępującą. Klasa A Metody: M, N... (M korzysta z N) Klasa B Metody: M,... (M używa N z A) Klasa C Metody: N... (M z B używa N z C) Rys.3 Łańcuch dziedziczenia
7 Na przykład pokazana na rys. 3 klasa A ma metody M i N, metoda M używa metody N. Klasa B jest podklasą klasy A i ma własną metodę M, która korzysta z metody N z klasy A. Klasa C jest potomkiem klasy B, definiuje własną metodę N, przykrywającą metodę N odziedziczoną z A i nie ma własnej definicji metody M. Aksjomat anty rozszerzalności mówi o różnych dla klas A, B, C danych testowych dla metody M. Jest to oczywiste dla A i B gdyż korzystają one z różnych metod M, nawet jeśli metody te są bliskie semantycznie to dane właściwe dla jednej klasy mogą nie być właściwe dla drugiej. Dla klas B i C jest to mniej oczywiste, gdyż używają one tej samej metody M. Jednak w klasie B metoda M wywołuje metodę A.N a w klasie C metodę B.N. Konieczne są różne zbiory testów, gdyż wysoce prawdopodobne jest że A.N i B.N mają inną funkcjonalność i/lub strukturę. Pewne języki obiektowe pozwalają na dziedziczenie wielobazowe. Niech klasa C dziedziczy po klasach A i B. Obie klasy A i B zawierają definicję metody M, a klasa C nie redefiniuje tej metody. Jeżeli kolejność dziedziczenia ustalono na najpierw A potem B to klasa C będzie używać metody A.M. Po zmianie kolejności nadklas na B potem A, klasa C odziedziczy metodę B.M zamiast jak poprzednio A.M. Klasa C musi być wówczas ponownie przetestowana. Nie ma powodu zakładać by A.M i B.M były semantycznie lub składniowo podobne a nawet jeśli są, to aksjomaty anty rozszerzalności i zmiany semantycznej przypominają o konieczności przygotowania innych zbiorów testów. Przepływ sterowania Innym problemem jest przepływ sterowania w programach obiektowych inny niż w konwencjonalnych. Podczas wykonywania programu obiektowego obiekty są tworzone, wykonują swoje metody, zmienia się ich stan, w końcu są niszczone. Przepływ sterowania w takich programach można widzieć jako przekazywanie komunikatów z jednego obiektu do drugiego powodujący wykonanie przez obiekt odbierający pewnej operacji, której rezultatem może być np. badanie lub zmiana stanu obiektu. W testowaniu takich programów bardziej właściwe niż określanie wejścia/wyjścia jest określanie zmian stanów obiektu pod pewnymi warunkami. W niektórych językach obiektowych obiekty mogą być niezależnymi współbieżnymi jednostkami. Wysłanie dwóch komunikatów z jednego obiektu do dwóch innych może powodować ich równoległe działanie. Ze względu na różnorodne zależności czasowe i wiele sytuacji, które należy rozważyć i sprawdzić, testowanie takich systemów jest bardzo skomplikowane. Dynamiczne wiązanie Pewne języki obiektowe np. Smalltalk, C++ pozwalają na dynamiczne wiązanie komunikatu z metodą. W języku C++ wskazanie na obiekt, referencja do obiektu może dotyczyć nie tylko obiektów zadeklarowanej klasy ale i jej potomków. Kiedy wykonywana jest operacja na obiekcie, funkcja zadeklarowana jako wirtualna, dynamicznie wiąże implementację tej funkcji z właściwą funkcją dla wykonywanego typu obiektu. Różne implementacje funkcji ustalą różne relacje w programie a analiza statyczna nie zawsze jest w stanie precyzyjnie określić wszystkie możliwe zależności. W praktyce stosowane są następujące rozwiązania [12]: Analiza najgorszego przypadku - brane są pod uwagę wszystkie możliwe implementacje funkcji i rozważa się zależności jakie one wprowadzają. Analiza dynamiczna program jest wykonywany dla różnych przypadków testowych, bada się rzeczywistą klasę, faktycznie wykonywaną funkcję.
8 Przypadki testowe mogą nie wykryć wszystkich możliwych zachowań programu i mogą być wyciągnięte nieprawidłowe wnioski. Interwencja użytkownika - człowiek wymusza powstanie obiektu określonej klasy. Analiza systemu też może być nieprawidłowa człowiek może wyciągnąć błędne wnioski. 4. Uwagi końcowe W pracy przedstawiono podstawowe problemy związane z testowaniem oprogramowania obiektowego. Uwzględniono takie cechy języków obiektowych jak hermetyzacja, dziedziczenie, polimorfizm, czy dynamiczne wiązanie. Podano także pewne wskazówki praktyczne np.: 1. Jeżeli dodajemy podklasę to odziedziczone metody powinny być przetestowane w nowo utworzonym kontekście. 2. Jeżeli kolejność specyfikacji podklas została zmieniona to podklasy powinny być ponownie testowane. 3. Nawet jeśli zastępowane metody są podobne semantycznie, to klasa powinna być testowana w kontekście metod zastępujących. Nie poruszono wielu innych problemów testowania oprogramowania obiektowego np. testowania ścieżek komunikatów [2, 5], czy zmian stanów obiektów i tematyki automatycznej generacji testów [1, 6]. Literatura [1] Binder R. (editor), Object-Oriented Software Testing, CACM, 9 (1994), [2] Jorgensen P. C. Ericson C., Object Oriented Integration Testing, CACM, 9 (1994) [3] Kung D.C., Hsia P., Gao J., (editors), Testing Object-Oriented Software, IEEE Computer Society, (1998) [4] Letovski S., Soloway E., Delocalized Plans and Program Comprehension, IEEE Trans. Software, 3 (1986), [5] Murphy G.C. et al. Experiences with Cluster and Class Testing, CACM, 9(1994) [6] Poston R.M., Automated Testing from Object Models, CACM, 9 (1994) [7] Perry D.E., Kaiser G.E., Adequate Testing and Object-Oriented Programming, J. Object-Oriented Programming, Jan.-Feb 1990, [8] Smith M.D., Robson D.J., Object-Oriented Programming the Problems of Validation, Proc. IEEE Conf. Software Maintenance, IEEE Society Press, Los Alamitos 1990, [9] Sommerville I., Software Engineering,fifth edition, Addison Wesley 1996 [10] Weyuker E.J., Axiomating Software Test Data Adequacy, IEEE Trans. Software, 12 (1986), [11] Weyuker E.J., The Evaluation of Program-Based Software Test Data Adequacy Criteria, CACM, 6 (1988), [12] Wilde N., Huit R., Maintenance Support for Object-Oriented Programs, IEEE Trans. Software, 12 (1992)
9 dane o autorze: dr inż. Ilona Bluemke jest pracownikiem Instytutu Informatyki Politechniki Warszawskiej Abstract In this paper main problems of testing object programs are presented. Weyuker axioms for adequacy of test and test data (applicability, non-exaustive applicability, monotonicity, complexity, inadequate empty set, anticomposition, antidecomposition, statement coverage, renaming, antiextensionality, general multiple change) are discussed in the context of object programs. The role of object properties (encapsulation, inheritance, polymorphism, dynamic bindings) in the testing process is pointed out. Some practical hints to object testing are also given. Keywords: software engineering, object oriented testing, axioms of testing, properties of object programs
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
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
Środowisko wspomagające testowanie oprogramowania obiektowego
Środowisko wspomagające testowanie oprogramowania obiektowego Sebastian Nowak e-mail: snowak1@ii.pw.edu.pl Ilona Bluemke e-mail: I.Bluemke@ii.pw.edu.pl Instytut Informatyki, Politechnika Warszawska Nowowiejska
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017
Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Testowanie oprogramowania. Testowanie oprogramowania 1/34
Testowanie oprogramowania Testowanie oprogramowania 1/34 Testowanie oprogramowania 2/34 Cele testowania testowanie polega na uruchamianiu oprogramowania w celu wykrycia błędów, dobry test to taki, który
Modelowanie i Programowanie Obiektowe
Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do
Programowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke 2.10.2006 Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Programowanie Obiektowe i C++ Marcin Benke
Programowanie Obiektowe i C++ Marcin Benke Dzisiaj Co umiemy Paradygmaty programowania Co będzie na wykładach Zasady zaliczania Programowanie obiektowe Co umiemy Programowałem w C++ Programowałem w języku
Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz
Wykład 8 Testowanie w JEE 5.0 (1) Autor: 1. Rola testowania w tworzeniu oprogramowania Kluczową rolę w powstawaniu oprogramowania stanowi proces usuwania błędów w kolejnych fazach rozwoju oprogramowania
Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.
Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?
Problemy projektowania obiektowego Czy podobne problemy można rozwiązywac w podobny sposób? Czy te problemy można przedstawić w abstrakcyjny sposób, tak aby były pomocne w tworzeniu rozwiązań w różnych
Porównanie metod i technik testowania oprogramowania. Damian Ryś Maja Wojnarowska
Porównanie metod i technik testowania oprogramowania Damian Ryś Maja Wojnarowska Testy oprogramowania Testowanie oprogramowania jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów
Testowanie oprogramowania. Piotr Ciskowski
Testowanie oprogramowania Piotr Ciskowski TESTOWANIE testowanie o proces eksperymentalnego badania programu lub jego komponentu o próbne wykonanie w znanych warunkach o rejestrowanie wyników o ocena właściwości
Rysunek 1: Przykłady graficznej prezentacji klas.
4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez
Technologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.
Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,
Wykład 7. Projektowanie kodu oprogramowania
Wykład 7 Projektowanie kodu oprogramowania Treść wykładu cykl życiowy oprogramowania zagadnienia inżynierii oprogramowania tworzenie oprogramowania z gotowych elementów tworzenie niezawodnego oprogramowania
Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl
Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Jakość w procesie wytwarzania oprogramowania
Jarosław Kuchta Jakość Oprogramowania http://www.eti.pg.gda.pl/katedry/kask/pracownicy/jaroslaw.kuchta/jakosc/ J.Kuchta@eti.pg.gda.pl Względny koszt wprowadzania zmian w zależności od fazy realizacji projektu
Programowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie
Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy
Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy Marek Żukowicz 14 marca 2018 Streszczenie Celem napisania artykułu jest próba podania konstruktywnego dowodu, który wyjaśnia, że niewielka
Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas
Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy
Programowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Paweł Kurzawa, Delfina Kongo
Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management
Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści
Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy
ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski
INFORMATYKA W ZARZĄDZANIU Wykład VI dr Jan Kazimirski jankazim@mac.edu.pl http://www.mac.edu.pl/jankazim MODELOWANIE SYSTEMÓW UML Literatura Joseph Schmuller UML dla każdego, Helion 2001 Perdita Stevens
Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/
Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.
Wprowadzenie do programowanie obiektowego w języku C++
Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
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
SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD
Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Mgr inż. Witold BUŻANTOWICZ Wojskowa Akademia Techniczna SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD Streszczenie: W referacie przedstawiono możliwości
Klasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
UPEDU: Implementacja (ang. Implementation discipline)
Wydział Informatyki PB Wprowadzenie Inżynieria oprogramowania II Marek Krętowski e-mail: mkret@wi.pb.edu.pl http://aragorn.pb.bialystok.pl/~mkret Wykład 8: UPEDU: Implementacja (ang. Implementation discipline)
> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki
> C++ dziedziczenie Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1432108800 > Dziedziczenie Dziedziczenie C++ dziedziczenie 2 / 13 > Dziedziczenie Dziedziczenie * to
Wprowadzenie do systemów informacyjnych
Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.
Tworzenie przypadków testowych
Tworzenie przypadków testowych Prowadząca: Katarzyna Pietrzyk Agenda 1. Wprowadzenie 2. Wymagania 3. Przypadek testowy Definicja Schemat Cechy dobrego przypadku testowego 4. Techniki projektowania Czarnej
PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem
PROJEKTOWANIE określenie wymagań specyfikowanie projektowanie kodowanie implementacja testowanie produkt konserwacja Faza strategiczna Analiza Dokumentacja Instalacja PROJEKT most pomiędzy specyfikowaniem
TECHNOLOGIE OBIEKTOWE. Wykład 3
TECHNOLOGIE OBIEKTOWE Wykład 3 2 Diagramy stanów 3 Diagram stanu opisuje zmiany stanu obiektu, podsystemu lub systemu pod wpływem działania operacji. Jest on szczególnie przydatny, gdy zachowanie obiektu
Klasy abstrakcyjne i interfejsy
Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie
Dziedziczenie. Tomasz Borzyszkowski
Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.
Testowanie oprogramowania
Testowanie oprogramowania 1/17 Testowanie oprogramowania Wykład 01 dr inż. Grzegorz Michalski 13 października 2015 Testowanie oprogramowania 2/17 Dane kontaktowe: Kontakt dr inż. Grzegorz Michalski pokój
Dziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Programowanie obiektowe
Wykład 12 Marcin Młotkowski 16 maja 2018 Plan wykładu 1 Analiza obiektowa Dziedziczenie Dziedziczenie a składanie 2 Marcin Młotkowski 482 / 537 Dziedziczenie Dziedziczenie a składanie Plan wykładu 1 Analiza
Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski
Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół
12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:
Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 1) Oprogramowanie to: 2) Produkty oprogramowania w inżynierii oprogramowania można podzielić na: 3) W procesie wytwarzania oprogramowania
Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:
Typy klasowe (klasy) 1. Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która definiuje programy za pomocą obiektów
Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014
Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80
Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np
Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami
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,
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1
Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa
INŻYNIERIA OROGRAMOWANIA TESTOWANIE JEDNOSTKOWE 2015/2016
INŻYNIERIA OROGRAMOWANIA TESTOWANIE JEDNOSTKOWE 2015/2016 Czemu testowanie jest ważne? 1994 gra Król Lew Błąd Excela 2007 (ile to jest 850*77,1?) 1987 Therac-25 (race condition, dokumentacja) i Cobalt60
Dziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Programowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Podstawy Programowania Programowanie Obiektowe
Podstawy Programowania Programowanie Obiektowe Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania powtarzające x &
C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.
C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,
Programowanie obiektowe
Laboratorium z przedmiotu - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie teoretyczne. Rozważana
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
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Wzorce projektowe i refaktoryzacja
Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne
Programowanie obiektowe. Wprowadzenie
1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
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
Podstawy modelowania programów Kod przedmiotu
Podstawy modelowania programów - opis przedmiotu Informacje ogólne Nazwa przedmiotu Podstawy modelowania programów Kod przedmiotu 11.3-WI-INFP-PMP Wydział Kierunek Wydział Informatyki, Elektrotechniki
UML w Visual Studio. Michał Ciećwierz
UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować
Możliwe strategie tworzenia niezawodnego oprogramowania:
ZWIĘKSZANIE POPRAWNOŚCI OPROGRAMOWANIA Plan prezentacji: Poprawność oprogramowania Poprawność oprogramowania Weryfikacja i testowanie. Rodzaje testów. Testowania względem specyfikacji Testowanie względem
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.
Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to
Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE
INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE Ważne pojęcia (I) Warunek testowy (test condition) to element lub zdarzenie modułu lub systemu, który może być zweryfikowany przez jeden lub więcej przypadków
Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Technologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Historia modeli programowania
Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu
Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania
Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania Pomiary w inżynierii oprogramowania Cel pomiarów ocena jakości produktu ocena procesów (produktywności ludzi) stworzenie podstawy dla
KARTA KURSU. Programowanie obiektowe
KARTA KURSU Nazwa Nazwa w j. ang. Programowanie obiektowe Object oriented programming Kod Punktacja ECTS* Stacjonarne 6 Niestacjonarne 4 Koordynator dr Dariusz Pałka Zespół dydaktyczny: dr Dariusz Pałka
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
.NET Klasy, obiekty. ciąg dalszy
.NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,
Wzorce projektowe. dr inż. Marcin Pietroo
Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs
Programowanie obiektowe 2 - opis przedmiotu
Programowanie obiektowe 2 - opis przedmiotu Informacje ogólne Nazwa przedmiotu Programowanie obiektowe 2 Kod przedmiotu 11.3-WK-MATP-PO2-L-S14_pNadGenDGV9E Wydział Kierunek Wydział Matematyki, Informatyki
WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++
Jednostka prowadząca: Wydział Techniczny Kierunek studiów: Elektronika i telekomunikacja Nazwa przedmiotu: Język programowania C++ Charakter przedmiotu: podstawowy, obowiązkowy Typ studiów: inŝynierskie
Paradygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
problem w określonym kontekście siły istotę jego rozwiązania
Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego
Testy poziom po poziomie
poziom po poziomie Prowadzący: Tomasz Mielnik Eliza Słonińska Agenda 1. Modele prowadzenia projektów 2. V-Model 3. Poziomy testów 4. Typy testów 5. Zadanie 1 Modele prowadzenia projektów Wodospadowy (ang.
Zawód tester, czyli na czym polega testowanie. Katarzyna Łabinska Justyna Sacha - Gawlik
Zawód tester, czyli na czym polega testowanie Katarzyna Łabinska Justyna Sacha - Gawlik Agenda: 1. Poznajmy się 2. Tester - kto to jest? 3. Podstawy testowania 4. Testowanie manualne a automatyczne 5.
INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE
INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE Definicja ITQB Testowanie integracyjne (integration testing) wykonywane w celu wykrycia defektów w interfejsach i interakcjach pomiędzy modułami lub systemami
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Programowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
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
Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne
Architektury i technologie integracji danych Systemy Mediacyjne Multi-wyszukiwarki Wprowadzenie do Mediacyjnych Systemów Zapytań (MQS) Architektura MQS Cechy funkcjonalne MQS Cechy implementacyjne MQS
Programowanie obiektowe
Programowanie obiektowe Metody statyczne i klasowe Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. VI Jesień 2013 1 / 23 W poprzednich odcinkach... Klasy kategorie obiektów Przynależność
Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl
Testowanie według modelu (MBT) Bogdan Bereza, Victo MBT testowanie z modelu wersja 2.1 A 1 (48) Pozdrawiam Best regards Med vänliga hälsningar Bogdan Bereza bogdan.bereza@victo.eu +48 519 152 106 Skype:
Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.
Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów. Paweł Świątek Agenda 1. Sprawy organizacyjne 2. Zasady zaliczenia 3. Cele kursu 4.
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.