SlideShare a Scribd company logo
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 1 / 40
Programowanie Komponentowe 
Wykład #1: Wprowadzenie 
Mikołaj Olszewski 
Wydział Zastosowan Informatyki i Matematyki 
Szkoły Głównej Gospodarstwa Wiejskiego 
7.10.2014 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 2 / 40
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 3 / 40
Wstep 
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 4 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Korzysci 
programowanie z satysfakcja 
zrozumienie obiektowosci 
poznanie biezacych trendów w programowaniu 
poznanie topowych bibliotek i frameworków 
poznanie standardowego warsztatu programisty 
szybsze tworzenie programów 
lepsza praca i . . . płaca 
Ale. . . 
. . . nie dla wszystkich 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
Wstep 
Załozenia 
Znajomosc 
UML 
wzorców projektowych 
C# 
Javy 
Umiejetnosc 
projektowania i programowania obiektowego 
tworzenia GUI 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 6 / 40
Wstep 
Zakres tematyczny 
1 Wprowadzenie 
2 Teoria i inzynieria programowania komponentowego 
3 Komponenty w srodowisku .NET 
4 Komponenty na platformie Java 
5 Model OSGi 
6 Usługi sieciowe 
Materiały i aktualnosci 
https://canvas.instructure.com/courses/889506 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 7 / 40
Wstep 
Laboratoria 
Konieczne zaliczenie (> 50%) wejsciówki 
Samodzielnosc i oryginalnosc rozwiazan 
Kod w repozytorium na bitbuckecie 
Prezentacja postepu projektu 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 8 / 40
Wstep 
Projekt 
Zespoły: 3 po 3 
Wybór tematu — 19 X 
Przydział technologii — 28 X 
Dokumentacja wstepna — 18 XI 
specyfikacja interfejsów 
diagram UML 
wybór technik 
harmonogram i podział prac 
Wersja instalacyjna i dokumentacja koncowa — 13 I 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 9 / 40
Wstep 
Zasady zaliczania 
1 Wykład 
wejsciówka: ocena 0–1 (waga 15%) 
aktywnosc (zajecia/forum/prezentacja): ocena 1 (max 20, waga 15%) 
2 Laboratoria: ocena 0–3 (waga 40%) 
wykazanie znajomosci zagadnienia 
wejsciówka dopuszcza do zadania 
maksymalnie 3 niezaliczone zadania 
3 Projekt: ocena 0–40 (waga 40%) — ocenianie kolektywne 
4 Wymagane powyzej 50% w kazdej z kategorii: wejsciówki, laboratoria, 
projekt 
5 Ocena koncowa: 
(90, 100] – 5 
(80, 90] – 4.5 
(70, 80] – 4 
(60, 70] – 3.5 
(50, 60] – 3 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 10 / 40
Wstep 
Literatura 
Szyperski Clemens, Oprogramowanie komponentowe. Obiekty to za 
mało, WNT 2001 
Andy Ju An Wang, Kai Qian, Component-Oriented Programming, 
John Wiley & Sons 2005 
Juval Lowy, Programming .NET Components, O’Reilly 2005 
Ian Sommerville, Inzynieria oprogramowania, WNT 2003 
John Cheesman, John Daniels, Komponenty w UML, WNT 2004 
Craig Walls, Spring in Action, 3ed., Manning 2012 
Richard S. Hall, Karl Pauls, Stuart McCulloch, David Savage, OSGi in 
Action, Manning 2011. 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 11 / 40
W strone programowania komponentowego 
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 12 / 40
W strone programowania komponentowego 
Czym jest programowanie? 
Program — sekwencja instrukcji 
wykonujacych pewne zadanie 
Klasyfikacja ze wzgledu na techniki, 
koncepcje lub uzyte srodki 
maszyna Pascala (1642) — 
przekładnie i korby 
technika X — programownie X-owe 
(X-oriented programming) 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
W strone programowania komponentowego 
Czym jest programowanie? 
Program — sekwencja instrukcji 
wykonujacych pewne zadanie 
Klasyfikacja ze wzgledu na techniki, 
koncepcje lub uzyte srodki 
maszyna Pascala (1642) — 
przekładnie i korby 
technika X — programownie X-owe 
(X-oriented programming) 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
W strone programowania komponentowego 
Czym jest programowanie? 
Program — sekwencja instrukcji 
wykonujacych pewne zadanie 
Klasyfikacja ze wzgledu na techniki, 
koncepcje lub uzyte srodki 
maszyna Pascala (1642) — 
przekładnie i korby 
technika X — programownie X-owe 
(X-oriented programming) 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
W strone programowania komponentowego 
Czym jest programowanie? 
Program — sekwencja instrukcji 
wykonujacych pewne zadanie 
Klasyfikacja ze wzgledu na techniki, 
koncepcje lub uzyte srodki 
maszyna Pascala (1642) — 
przekładnie i korby 
technika X — programownie X-owe 
(X-oriented programming) 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
W strone programowania komponentowego 
X-oriented programming I 
Programowanie przekładniowe 
maszyna róznicowa Charlesa 
Babbage’a (1822) 
zmiana przekładni, zebów i kół 
XIX-wieczny komputer parowy 
(kompletny w sensie Turinga!) 
Programowanie przełacznikowe 
ENIAC (1942) 
zmiana przełaczników (6000!) 
Programowanie proceduralne 
programy „wysokiego” poziomu 
(Fortran, Pascal, C) 
brak programujacych elementów 
mechanicznych 
ustrukturyzowany program 
funkcjonalnosc zamknieta w zbiorze 
procedur i funkcji 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 40
W strone programowania komponentowego 
X-oriented programming I 
Programowanie przekładniowe 
maszyna róznicowa Charlesa 
Babbage’a (1822) 
zmiana przekładni, zebów i kół 
XIX-wieczny komputer parowy 
(kompletny w sensie Turinga!) 
Programowanie przełacznikowe 
ENIAC (1942) 
zmiana przełaczników (6000!) 
Programowanie proceduralne 
programy „wysokiego” poziomu 
(Fortran, Pascal, C) 
brak programujacych elementów 
mechanicznych 
ustrukturyzowany program 
funkcjonalnosc zamknieta w zbiorze 
procedur i funkcji 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 40
W strone programowania komponentowego 
X-oriented programming I 
Programowanie przekładniowe 
maszyna róznicowa Charlesa 
Babbage’a (1822) 
zmiana przekładni, zebów i kół 
XIX-wieczny komputer parowy 
(kompletny w sensie Turinga!) 
Programowanie przełacznikowe 
ENIAC (1942) 
zmiana przełaczników (6000!) 
Programowanie proceduralne 
programy „wysokiego” poziomu 
(Fortran, Pascal, C) 
brak programujacych elementów 
mechanicznych 
ustrukturyzowany program 
funkcjonalnosc zamknieta w zbiorze 
procedur i funkcji 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 40
W strone programowania komponentowego 
X-oriented programming II 
Programowanie obiektowe 
myslenie w kategorii typów danych (wbudowanych lub własnych) 
podstawowe bloki 
obiekty (zbiór danych w pamieci) 
klasy (typ — co mozna) /nie zawsze wymagane/ 
Programowanie aspektowe 
rozdzielenie odpowiedzialnosci — modularyzacja przekrojowych 
funkcjonalnosci 
wsparcie dla róznych rodzajów modularnosci 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 15 / 40
W strone programowania komponentowego 
X-oriented programming II 
Programowanie obiektowe 
myslenie w kategorii typów danych (wbudowanych lub własnych) 
podstawowe bloki 
obiekty (zbiór danych w pamieci) 
klasy (typ — co mozna) /nie zawsze wymagane/ 
Programowanie aspektowe 
rozdzielenie odpowiedzialnosci — modularyzacja przekrojowych 
funkcjonalnosci 
wsparcie dla róznych rodzajów modularnosci 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 15 / 40
W strone programowania komponentowego 
Programowanie komponentowe 
budowa programu z gotowych, 
reuzywalnych i 
samowystarczalnych 
komponentów (klocków) 
wymagania: interfejs, 
połaczenia, wersjonowanie, 
wdrazanie 
rozmaite rozmiary i „kształty” 
programowanie interfejsowe, 
implementacja nieistotna 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 16 / 40
Dlaczego programowanie komponentowe? 
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 17 / 40
Dlaczego programowanie komponentowe? 
Rozwój systemów 
Budowa z komponentów / integracja systemów 
Naturalny element procesu inzynieryjnego 
Przykłady: budynki, samochody, komputery 
Zysk? 
„software crisis” 
Jak efektywnie tworzyc oprogramowanie? 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 18 / 40
Dlaczego programowanie komponentowe? 
Cele programowania komponentowego I 
1 Pokonywanie złozonosci 
ogrom informacji (2000: 2 × 1018B, 2012: 2, 7 × 1021B) 
rozmiar oprogramowania 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 19 / 40
Dlaczego programowanie komponentowe? 
Cele programowania komponentowego I 
1 Pokonywanie złozonosci 
ogrom informacji (2000: 2 × 1018B, 2012: 2, 7 × 1021B) 
rozmiar oprogramowania 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 19 / 40
Dlaczego programowanie komponentowe? 
Cele programowania komponentowego II 
2 Zarzadzanie zmiana 
zmiana jest nieodzownym elementem wytwarzania programowania 
(wymagania, specyfikacja, personel, budzet, technologia, itd.) 
połozenie szczególnego nacisku na zaleznosci i zarzadzanie ich zmiana 
komponenty sa łatwo adaptowalne do zmieniajacego sie srodowiska 
3 Wielokrotne uzycie 
zwiekszenie produktywnosci 
poziomy: kopiowanie kodu, biblioteki procedur, biblioteki klas 
programowanie komponentowe: white-box (OOP), gray-box, black-box 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 20 / 40
Dlaczego programowanie komponentowe? 
Wykorzystanie programowania komponentowego 
Rozproszone aplikacje klasy enterprise 
Aplikacje N-warstwowe (N-tier) 
Usługi sieciowe (web services) 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 21 / 40
Komponenty 
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 22 / 40
Komponenty Formalizmy 
Definicja I 
Komponent 
jest podstawowa jednostka oprogramowania 
z deklaratywnie opisanymi interfejsami 
i podanymi wprost zaleznosciami 
Moze byc skonfigurowany i wdrozony niezaleznie od programisty, który go 
stworzył. 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 23 / 40
Komponenty Formalizmy 
Definicja II 
Komponent 
jest kawałkiem samowystarczalnego 
i samowdrazajacego sie kodu komputerowego 
z dobrze zdefiniowana funkcjonalnoscia 
i moze byc połaczony z innymi komponentami poprzez interfejs 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 24 / 40
Komponenty Formalizmy 
Wymagania 
(re)uzywalnosc 
bezobsługowosc 
pełna specyfikacja zaleznosci 
wyspecyfikowana funkcjonalnosc 
uzycie wyłacznie na podstawie w/w specyfikacji 
kompatybilnosc z innymi komponentami 
łatwa integracja z systemem 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 25 / 40
Komponenty Formalizmy 
Klocki 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 26 / 40
Komponenty Formalizmy 
Technologie 
VisualBasic i VBX 
COM/DCOM/COM+, ActiveX 
CORBA 
JavaBeans, EJB/Spring 
.NET 
OSGi 
SOAP, UDDI 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 27 / 40
Komponenty Wady i Zalety 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 28 / 40
Komponenty Wady i Zalety 
Zalety 
zwiekszona niezawodnosc 
zmniejszone zagrozenie procesu 
efektywne wykorzystanie specjalistów 
zgodnosc ze standardami 
przyspieszone tworzenie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 29 / 40
Komponenty Wady i Zalety 
Wady 
zwiekszone koszty pielegnacji (brak zródeł) 
brak lub słabe wspomaganie narzedziowe 
przepisywanie (syndrom: „nie wymyslono tutaj”) 
prowadzenie biblioteki komponentów 
znajdowanie i adaptowanie komponentów 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 30 / 40
Od programowania obiektowego do komponentowego 
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 31 / 40
Od programowania obiektowego do komponentowego 
Podstawy OOP 
Paradygmaty OOP 
Abstrakcja 
Enkapsulacja (Hermetyzacja) 
Polimorfizm 
Dziedziczenie 
Dziedziczenie łamie zasade hermatyzacji 
Obiekty i klasy nie sa samowdrozeniowe 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 40
Od programowania obiektowego do komponentowego 
Podstawy OOP 
Paradygmaty OOP 
Abstrakcja 
Enkapsulacja (Hermetyzacja) 
Polimorfizm 
Dziedziczenie 
Dziedziczenie łamie zasade hermatyzacji 
Obiekty i klasy nie sa samowdrozeniowe 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 40
Od programowania obiektowego do komponentowego 
Podstawy OOP 
Paradygmaty OOP 
Abstrakcja 
Enkapsulacja (Hermetyzacja) 
Polimorfizm 
Dziedziczenie 
Dziedziczenie łamie zasade hermatyzacji 
Obiekty i klasy nie sa samowdrozeniowe 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 40
Od programowania obiektowego do komponentowego 
Róznice miedzy komponentami a obiektami 
Obiekty Komponenty 
 oparte na obiektach  oparte na interfejsach 
 dziedziczenie klas  dziedziczenie interfejsów 
 czesciowa hermetyzacja  pełna hermetyzacja 
 scisłe powiazania  luzne powiazania 
 reuzywalnosc niskopoziomowa  reuzywalnosc wysokopoziomowa 
 implementacja  paczkowanie i rozprowadzanie 
 polimorfizm  konfiguracja wdrozenia 
 pózne wiazanie wywołan  pózne wiazanie i ładowanie kodu 
 zalezne od jezyka  powtórne uzycie binariów 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 33 / 40
Od programowania obiektowego do komponentowego 
Mozliwosci stylów programowania 
Mozliwosci SP OOP COP 
Dziel i zwyciezaj X X X 
Unifikacja danych i operacji X X 
Hermetyzacja X X 
Tozsamosc X X 
Interfejs X 
Wdrozenie X 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 34 / 40
Inzynieria komponentowa 
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 35 / 40
Inzynieria komponentowa 
Inzynieria komponentowa 
1 Specyfikacja 
opis zachowania zbioru obiektów komponentowych w postaci zbioru 
interfejsów 
realizacja poprzez implementacje 
2 Interfejs 
definicja zbioru zachowan oferowanych przez komponent 
3 Implementacja 
realizacja specyfikacji 
niezaleznosc wdrozeniowa (instalacja i wymiana) 
moze zalezec od innych komponentów 
4 Instalacja 
instalacja/wdrozenie kopi implementacji komponentu 
rejestracja w srodowisku uruchomieniowym 
identyfikacja komponentu przez system w celu pózniejszego uzycia 
5 Obiekt komponentu 
istancja zainstalowanego komponentu 
posiada własne dane i unikalna tozsamosc 
zainstalowany komponent moze miec kilka obiektów 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
Inzynieria komponentowa 
Inzynieria komponentowa 
1 Specyfikacja 
opis zachowania zbioru obiektów komponentowych w postaci zbioru 
interfejsów 
realizacja poprzez implementacje 
2 Interfejs 
definicja zbioru zachowan oferowanych przez komponent 
3 Implementacja 
realizacja specyfikacji 
niezaleznosc wdrozeniowa (instalacja i wymiana) 
moze zalezec od innych komponentów 
4 Instalacja 
instalacja/wdrozenie kopi implementacji komponentu 
rejestracja w srodowisku uruchomieniowym 
identyfikacja komponentu przez system w celu pózniejszego uzycia 
5 Obiekt komponentu 
istancja zainstalowanego komponentu 
posiada własne dane i unikalna tozsamosc 
zainstalowany komponent moze miec kilka obiektów 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
Inzynieria komponentowa 
Inzynieria komponentowa 
1 Specyfikacja 
opis zachowania zbioru obiektów komponentowych w postaci zbioru 
interfejsów 
realizacja poprzez implementacje 
2 Interfejs 
definicja zbioru zachowan oferowanych przez komponent 
3 Implementacja 
realizacja specyfikacji 
niezaleznosc wdrozeniowa (instalacja i wymiana) 
moze zalezec od innych komponentów 
4 Instalacja 
instalacja/wdrozenie kopi implementacji komponentu 
rejestracja w srodowisku uruchomieniowym 
identyfikacja komponentu przez system w celu pózniejszego uzycia 
5 Obiekt komponentu 
istancja zainstalowanego komponentu 
posiada własne dane i unikalna tozsamosc 
zainstalowany komponent moze miec kilka obiektów 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
Inzynieria komponentowa 
Inzynieria komponentowa 
1 Specyfikacja 
opis zachowania zbioru obiektów komponentowych w postaci zbioru 
interfejsów 
realizacja poprzez implementacje 
2 Interfejs 
definicja zbioru zachowan oferowanych przez komponent 
3 Implementacja 
realizacja specyfikacji 
niezaleznosc wdrozeniowa (instalacja i wymiana) 
moze zalezec od innych komponentów 
4 Instalacja 
instalacja/wdrozenie kopi implementacji komponentu 
rejestracja w srodowisku uruchomieniowym 
identyfikacja komponentu przez system w celu pózniejszego uzycia 
5 Obiekt komponentu 
istancja zainstalowanego komponentu 
posiada własne dane i unikalna tozsamosc 
zainstalowany komponent moze miec kilka obiektów 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
Inzynieria komponentowa 
Inzynieria komponentowa 
1 Specyfikacja 
opis zachowania zbioru obiektów komponentowych w postaci zbioru 
interfejsów 
realizacja poprzez implementacje 
2 Interfejs 
definicja zbioru zachowan oferowanych przez komponent 
3 Implementacja 
realizacja specyfikacji 
niezaleznosc wdrozeniowa (instalacja i wymiana) 
moze zalezec od innych komponentów 
4 Instalacja 
instalacja/wdrozenie kopi implementacji komponentu 
rejestracja w srodowisku uruchomieniowym 
identyfikacja komponentu przez system w celu pózniejszego uzycia 
5 Obiekt komponentu 
istancja zainstalowanego komponentu 
posiada własne dane i unikalna tozsamosc 
zainstalowany komponent moze miec kilka obiektów 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
Podsumowanie 
Plan wykładu 
1 Wstep 
2 W strone programowania komponentowego 
3 Dlaczego programowanie komponentowe? 
4 Komponenty 
Formalizmy 
Wady i Zalety 
5 Od programowania obiektowego do komponentowego 
6 Inzynieria komponentowa 
7 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 37 / 40
Podsumowanie 
Podsumowanie 
Rozwój programowania (od maszynowego do komponentowego) wraz 
z rozwojem technologii 
Komponent — gotowy i tani w uzyciu prefabrykat 
czarna skrzynka 
funkcjonalnosc poprzez dobrze zdefiniowane interfejsy 
Przewaga programowania kompoentowego nad innymi stylami 
Rózne formy komponentu: od specyfikacji po uruchomiony obiekt 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 38 / 40
Podsumowanie 
Do domu 
Przypomniec sobie programowanie interfejsów w C# 
Zapoznac sie z róznicami miedzy interfejsami a klasami 
abstrakcyjnymi 
Dowiedziec sie dlaczego nalezy uzywac interfejsów 
Przeczytac rozdział 1. „Programming .NET Components” 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 39 / 40
Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 40 / 40

More Related Content

What's hot

Z5.03
Z5.03Z5.03
Z2.02
Z2.02Z2.02
Dietetyk 321[11] z2.09_u
Dietetyk 321[11] z2.09_uDietetyk 321[11] z2.09_u
Dietetyk 321[11] z2.09_u
gemix gemix
 
Program nauczania dla zawodu opiekunka dziecięca
Program nauczania dla zawodu opiekunka dziecięcaProgram nauczania dla zawodu opiekunka dziecięca
Program nauczania dla zawodu opiekunka dziecięca
Szymon Konkol - Publikacje Cyfrowe
 
юрисдикція, підсудність
юрисдикція, підсудністьюрисдикція, підсудність
юрисдикція, підсудністьMykhailov777
 
Np 112 2004 Cod de proiectare fundatii 2005
Np 112   2004 Cod de proiectare fundatii 2005Np 112   2004 Cod de proiectare fundatii 2005
Np 112 2004 Cod de proiectare fundatii 2005
EURO QUALITY TEST SRL Bucuresti
 
Z4.02
Z4.02Z4.02
1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...
1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...
1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...
Patryk Patryk
 
Z4.01
Z4.01Z4.01
13
1313
Z2.01
Z2.01Z2.01
공간정보 관점에서 바라본 디지털트윈과 메타버스
공간정보 관점에서 바라본 디지털트윈과 메타버스공간정보 관점에서 바라본 디지털트윈과 메타버스
공간정보 관점에서 바라본 디지털트윈과 메타버스
SANGHEE SHIN
 
Конституційно-правовий статус президента України
Конституційно-правовий статус президента УкраїниКонституційно-правовий статус президента України
Конституційно-правовий статус президента України
Kyiv National Economic University
 
Prezentacja
PrezentacjaPrezentacja
Prezentacjaniedbala
 
10.przekladnia pasowa
10.przekladnia pasowa10.przekladnia pasowa
10.przekladnia pasowa
Edukacja online
 
Scalone dokumenty (3)
Scalone dokumenty (3)Scalone dokumenty (3)
Scalone dokumenty (3)
Darek Simka
 
PCM KONTRAK GEDUNG
PCM KONTRAK GEDUNGPCM KONTRAK GEDUNG
PCM KONTRAK GEDUNG
RIONOASNAN3
 
Z1.03
Z1.03Z1.03
Formy zatrudnienia_RJW.pptx
Formy zatrudnienia_RJW.pptxFormy zatrudnienia_RJW.pptx
Formy zatrudnienia_RJW.pptx
ukaszBracha
 

What's hot (20)

Z5.03
Z5.03Z5.03
Z5.03
 
Z2.02
Z2.02Z2.02
Z2.02
 
Dietetyk 321[11] z2.09_u
Dietetyk 321[11] z2.09_uDietetyk 321[11] z2.09_u
Dietetyk 321[11] z2.09_u
 
Program nauczania dla zawodu opiekunka dziecięca
Program nauczania dla zawodu opiekunka dziecięcaProgram nauczania dla zawodu opiekunka dziecięca
Program nauczania dla zawodu opiekunka dziecięca
 
юрисдикція, підсудність
юрисдикція, підсудністьюрисдикція, підсудність
юрисдикція, підсудність
 
Elastyczne formy zatrudnienia – skutki społeczne i ekonomiczne
Elastyczne formy zatrudnienia – skutki społeczne i ekonomiczneElastyczne formy zatrudnienia – skutki społeczne i ekonomiczne
Elastyczne formy zatrudnienia – skutki społeczne i ekonomiczne
 
Np 112 2004 Cod de proiectare fundatii 2005
Np 112   2004 Cod de proiectare fundatii 2005Np 112   2004 Cod de proiectare fundatii 2005
Np 112 2004 Cod de proiectare fundatii 2005
 
Z4.02
Z4.02Z4.02
Z4.02
 
1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...
1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...
1. Przestrzeganie przepisów BHP, ochrony przeciwpożarowej oraz ochrony środow...
 
Z4.01
Z4.01Z4.01
Z4.01
 
13
1313
13
 
Z2.01
Z2.01Z2.01
Z2.01
 
공간정보 관점에서 바라본 디지털트윈과 메타버스
공간정보 관점에서 바라본 디지털트윈과 메타버스공간정보 관점에서 바라본 디지털트윈과 메타버스
공간정보 관점에서 바라본 디지털트윈과 메타버스
 
Конституційно-правовий статус президента України
Конституційно-правовий статус президента УкраїниКонституційно-правовий статус президента України
Конституційно-правовий статус президента України
 
Prezentacja
PrezentacjaPrezentacja
Prezentacja
 
10.przekladnia pasowa
10.przekladnia pasowa10.przekladnia pasowa
10.przekladnia pasowa
 
Scalone dokumenty (3)
Scalone dokumenty (3)Scalone dokumenty (3)
Scalone dokumenty (3)
 
PCM KONTRAK GEDUNG
PCM KONTRAK GEDUNGPCM KONTRAK GEDUNG
PCM KONTRAK GEDUNG
 
Z1.03
Z1.03Z1.03
Z1.03
 
Formy zatrudnienia_RJW.pptx
Formy zatrudnienia_RJW.pptxFormy zatrudnienia_RJW.pptx
Formy zatrudnienia_RJW.pptx
 

Viewers also liked

Architektura heksagonalna
Architektura heksagonalnaArchitektura heksagonalna
Architektura heksagonalna
Mikołaj Olszewski
 
Programowanie Komponentowe: #2 Metody opisu komponentów
Programowanie Komponentowe: #2 Metody opisu komponentówProgramowanie Komponentowe: #2 Metody opisu komponentów
Programowanie Komponentowe: #2 Metody opisu komponentówMikołaj Olszewski
 
The metadata driven e-laboratory web client
The metadata driven e-laboratory web clientThe metadata driven e-laboratory web client
The metadata driven e-laboratory web client
Mikołaj Olszewski
 
Optoelektroniczne modelowanie sieci neuronowej cz. 1
Optoelektroniczne modelowanie sieci neuronowej cz. 1Optoelektroniczne modelowanie sieci neuronowej cz. 1
Optoelektroniczne modelowanie sieci neuronowej cz. 1Mikołaj Olszewski
 
Programowanie Komponentowe: #D Model komponentowy OSGi
Programowanie Komponentowe: #D Model komponentowy OSGiProgramowanie Komponentowe: #D Model komponentowy OSGi
Programowanie Komponentowe: #D Model komponentowy OSGiMikołaj Olszewski
 
Programowanie Komponentowe: #E Podsumowanie
Programowanie Komponentowe: #E PodsumowanieProgramowanie Komponentowe: #E Podsumowanie
Programowanie Komponentowe: #E PodsumowanieMikołaj Olszewski
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiMikołaj Olszewski
 
Programowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springaProgramowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springaMikołaj Olszewski
 
Programowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do SpringaProgramowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do SpringaMikołaj Olszewski
 
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...Mikołaj Olszewski
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieMikołaj Olszewski
 
Programowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java BeansProgramowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java BeansMikołaj Olszewski
 
Kwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikoweKwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikoweMikołaj Olszewski
 
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GOG.com dev team
 
Optyczne solitony przestrzenne
Optyczne solitony przestrzenneOptyczne solitony przestrzenne
Optyczne solitony przestrzenneMikołaj Olszewski
 
Hexagonal architecture in PHP
Hexagonal architecture in PHPHexagonal architecture in PHP
Hexagonal architecture in PHP
Paulo Victor Gomes
 

Viewers also liked (20)

Architektura heksagonalna
Architektura heksagonalnaArchitektura heksagonalna
Architektura heksagonalna
 
Programowanie Komponentowe: #2 Metody opisu komponentów
Programowanie Komponentowe: #2 Metody opisu komponentówProgramowanie Komponentowe: #2 Metody opisu komponentów
Programowanie Komponentowe: #2 Metody opisu komponentów
 
The metadata driven e-laboratory web client
The metadata driven e-laboratory web clientThe metadata driven e-laboratory web client
The metadata driven e-laboratory web client
 
Parallel quicksort cz. 2
Parallel quicksort cz. 2Parallel quicksort cz. 2
Parallel quicksort cz. 2
 
Optoelektroniczne modelowanie sieci neuronowej cz. 1
Optoelektroniczne modelowanie sieci neuronowej cz. 1Optoelektroniczne modelowanie sieci neuronowej cz. 1
Optoelektroniczne modelowanie sieci neuronowej cz. 1
 
Programowanie Komponentowe: #D Model komponentowy OSGi
Programowanie Komponentowe: #D Model komponentowy OSGiProgramowanie Komponentowe: #D Model komponentowy OSGi
Programowanie Komponentowe: #D Model komponentowy OSGi
 
Programowanie Komponentowe: #E Podsumowanie
Programowanie Komponentowe: #E PodsumowanieProgramowanie Komponentowe: #E Podsumowanie
Programowanie Komponentowe: #E Podsumowanie
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGi
 
Programowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springaProgramowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springa
 
Programowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do SpringaProgramowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do Springa
 
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 Wersjonowanie
 
Materiały fotorefrakcyjne
Materiały fotorefrakcyjneMateriały fotorefrakcyjne
Materiały fotorefrakcyjne
 
Programowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java BeansProgramowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java Beans
 
Kwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikoweKwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikowe
 
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
 
Optyczne solitony przestrzenne
Optyczne solitony przestrzenneOptyczne solitony przestrzenne
Optyczne solitony przestrzenne
 
Lokalne sieci światłowodowe
Lokalne sieci światłowodoweLokalne sieci światłowodowe
Lokalne sieci światłowodowe
 
Optyka ciekłych kryształów
Optyka ciekłych kryształówOptyka ciekłych kryształów
Optyka ciekłych kryształów
 
Hexagonal architecture in PHP
Hexagonal architecture in PHPHexagonal architecture in PHP
Hexagonal architecture in PHP
 

Similar to Programowanie Komponentowe: #1 Wprowadzenie

Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NETProgramowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NETMikołaj Olszewski
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
Tomasz Borowski
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
Grzegorz Godlewski
 
PHP meetup#4 Godek
PHP meetup#4 GodekPHP meetup#4 Godek
PHP meetup#4 Godek
Maciek Godek
 
ABC Delphi 2006
ABC Delphi 2006ABC Delphi 2006
ABC Delphi 2006
Wydawnictwo Helion
 
Programowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentówProgramowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentówMikołaj Olszewski
 
Nowości w Javie 8 okiem programisty
Nowości w Javie 8 okiem programistyNowości w Javie 8 okiem programisty
Nowości w Javie 8 okiem programisty
MarcinStachniuk
 
Modelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i SimulinkModelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i Simulink
Jadwiga Horoszkiewicz
 
Wstęp do programowania w języku C#
Wstęp do programowania w języku C#Wstęp do programowania w języku C#
Wstęp do programowania w języku C#
Wydawnictwo Helion
 
RxJS okiem doświadczonego inżyniera - Angular Warsaw #13
RxJS okiem doświadczonego inżyniera - Angular Warsaw #13RxJS okiem doświadczonego inżyniera - Angular Warsaw #13
RxJS okiem doświadczonego inżyniera - Angular Warsaw #13
Piotr Kowalski
 
Testowanie. Wprowadzenie do testowania oprogramowania.
Testowanie. Wprowadzenie do testowania oprogramowania. Testowanie. Wprowadzenie do testowania oprogramowania.
Testowanie. Wprowadzenie do testowania oprogramowania.
Radoslaw Smilgin
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Wydawnictwo Helion
 
C++. Inżynieria programowania
C++. Inżynieria programowaniaC++. Inżynieria programowania
C++. Inżynieria programowania
Wydawnictwo Helion
 
university day 1
university day 1university day 1
university day 1
Sławomir Borowiec
 
Turbo Pascal. Ćwiczenia praktyczne. Wydanie II
Turbo Pascal. Ćwiczenia praktyczne. Wydanie IITurbo Pascal. Ćwiczenia praktyczne. Wydanie II
Turbo Pascal. Ćwiczenia praktyczne. Wydanie II
Wydawnictwo Helion
 
Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]
Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]
Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]
Tomasz Utkowski
 
4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...
4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...
4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...
PROIDEA
 
Technologie przetwarzania danych by ZAiIO
Technologie przetwarzania danych by ZAiIOTechnologie przetwarzania danych by ZAiIO
Technologie przetwarzania danych by ZAiIO
Arkadiusz Nowakowski
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanie
Wydawnictwo Helion
 

Similar to Programowanie Komponentowe: #1 Wprowadzenie (20)

Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NETProgramowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
 
PHP meetup#4 Godek
PHP meetup#4 GodekPHP meetup#4 Godek
PHP meetup#4 Godek
 
ABC Delphi 2006
ABC Delphi 2006ABC Delphi 2006
ABC Delphi 2006
 
Programowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentówProgramowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentów
 
Nowości w Javie 8 okiem programisty
Nowości w Javie 8 okiem programistyNowości w Javie 8 okiem programisty
Nowości w Javie 8 okiem programisty
 
Modelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i SimulinkModelowanie i weryfikacja w programie MATLAB i Simulink
Modelowanie i weryfikacja w programie MATLAB i Simulink
 
Wstęp do programowania w języku C#
Wstęp do programowania w języku C#Wstęp do programowania w języku C#
Wstęp do programowania w języku C#
 
RxJS okiem doświadczonego inżyniera - Angular Warsaw #13
RxJS okiem doświadczonego inżyniera - Angular Warsaw #13RxJS okiem doświadczonego inżyniera - Angular Warsaw #13
RxJS okiem doświadczonego inżyniera - Angular Warsaw #13
 
Testowanie. Wprowadzenie do testowania oprogramowania.
Testowanie. Wprowadzenie do testowania oprogramowania. Testowanie. Wprowadzenie do testowania oprogramowania.
Testowanie. Wprowadzenie do testowania oprogramowania.
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
 
C++. Inżynieria programowania
C++. Inżynieria programowaniaC++. Inżynieria programowania
C++. Inżynieria programowania
 
university day 1
university day 1university day 1
university day 1
 
Turbo Pascal. Ćwiczenia praktyczne. Wydanie II
Turbo Pascal. Ćwiczenia praktyczne. Wydanie IITurbo Pascal. Ćwiczenia praktyczne. Wydanie II
Turbo Pascal. Ćwiczenia praktyczne. Wydanie II
 
Technik.elektryk 311[08] z4.04_u
Technik.elektryk 311[08] z4.04_uTechnik.elektryk 311[08] z4.04_u
Technik.elektryk 311[08] z4.04_u
 
Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]
Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]
Czym jest emc? I jak wpływa na biznes [Akademia EMC - Tomasz Utkowski]
 
4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...
4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...
4Developers 2015: Couple of words about testing in Java, Spock and BDD - Piot...
 
Technologie przetwarzania danych by ZAiIO
Technologie przetwarzania danych by ZAiIOTechnologie przetwarzania danych by ZAiIO
Technologie przetwarzania danych by ZAiIO
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanie
 

More from Mikołaj Olszewski

Optoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronoweOptoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronoweMikołaj Olszewski
 
Metody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowychMetody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowychMikołaj Olszewski
 
Parallel quicksort cz. 1
Parallel quicksort cz. 1Parallel quicksort cz. 1
Parallel quicksort cz. 1
Mikołaj Olszewski
 
Test wyszukiwarek internetowych
Test wyszukiwarek internetowychTest wyszukiwarek internetowych
Test wyszukiwarek internetowychMikołaj Olszewski
 
Programowanie komponentowe: #4 Podstawy połączeń komponentów
Programowanie komponentowe: #4 Podstawy połączeń komponentówProgramowanie komponentowe: #4 Podstawy połączeń komponentów
Programowanie komponentowe: #4 Podstawy połączeń komponentówMikołaj Olszewski
 

More from Mikołaj Olszewski (11)

Optoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronoweOptoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronowe
 
Swiatłowodowy czujnik prądu
Swiatłowodowy czujnik prąduSwiatłowodowy czujnik prądu
Swiatłowodowy czujnik prądu
 
Metody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowychMetody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowych
 
Parallel quicksort cz. 1
Parallel quicksort cz. 1Parallel quicksort cz. 1
Parallel quicksort cz. 1
 
Maszyna Turinga
Maszyna TuringaMaszyna Turinga
Maszyna Turinga
 
Planowanie działań cz. 2
Planowanie działań cz. 2Planowanie działań cz. 2
Planowanie działań cz. 2
 
Planowanie działań cz. 1
Planowanie działań cz. 1Planowanie działań cz. 1
Planowanie działań cz. 1
 
Model hierarchiczny
Model hierarchicznyModel hierarchiczny
Model hierarchiczny
 
Komputer genetyczny
Komputer genetycznyKomputer genetyczny
Komputer genetyczny
 
Test wyszukiwarek internetowych
Test wyszukiwarek internetowychTest wyszukiwarek internetowych
Test wyszukiwarek internetowych
 
Programowanie komponentowe: #4 Podstawy połączeń komponentów
Programowanie komponentowe: #4 Podstawy połączeń komponentówProgramowanie komponentowe: #4 Podstawy połączeń komponentów
Programowanie komponentowe: #4 Podstawy połączeń komponentów
 

Programowanie Komponentowe: #1 Wprowadzenie

  • 1. Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 1 / 40
  • 2. Programowanie Komponentowe Wykład #1: Wprowadzenie Mikołaj Olszewski Wydział Zastosowan Informatyki i Matematyki Szkoły Głównej Gospodarstwa Wiejskiego 7.10.2014 Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 2 / 40
  • 3. Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 3 / 40
  • 4. Wstep Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 4 / 40
  • 5. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 6. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 7. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 8. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 9. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 10. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 11. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 12. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 13. Wstep Korzysci programowanie z satysfakcja zrozumienie obiektowosci poznanie biezacych trendów w programowaniu poznanie topowych bibliotek i frameworków poznanie standardowego warsztatu programisty szybsze tworzenie programów lepsza praca i . . . płaca Ale. . . . . . nie dla wszystkich Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 40
  • 14. Wstep Załozenia Znajomosc UML wzorców projektowych C# Javy Umiejetnosc projektowania i programowania obiektowego tworzenia GUI Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 6 / 40
  • 15. Wstep Zakres tematyczny 1 Wprowadzenie 2 Teoria i inzynieria programowania komponentowego 3 Komponenty w srodowisku .NET 4 Komponenty na platformie Java 5 Model OSGi 6 Usługi sieciowe Materiały i aktualnosci https://canvas.instructure.com/courses/889506 Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 7 / 40
  • 16. Wstep Laboratoria Konieczne zaliczenie (> 50%) wejsciówki Samodzielnosc i oryginalnosc rozwiazan Kod w repozytorium na bitbuckecie Prezentacja postepu projektu Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 8 / 40
  • 17. Wstep Projekt Zespoły: 3 po 3 Wybór tematu — 19 X Przydział technologii — 28 X Dokumentacja wstepna — 18 XI specyfikacja interfejsów diagram UML wybór technik harmonogram i podział prac Wersja instalacyjna i dokumentacja koncowa — 13 I Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 9 / 40
  • 18. Wstep Zasady zaliczania 1 Wykład wejsciówka: ocena 0–1 (waga 15%) aktywnosc (zajecia/forum/prezentacja): ocena 1 (max 20, waga 15%) 2 Laboratoria: ocena 0–3 (waga 40%) wykazanie znajomosci zagadnienia wejsciówka dopuszcza do zadania maksymalnie 3 niezaliczone zadania 3 Projekt: ocena 0–40 (waga 40%) — ocenianie kolektywne 4 Wymagane powyzej 50% w kazdej z kategorii: wejsciówki, laboratoria, projekt 5 Ocena koncowa: (90, 100] – 5 (80, 90] – 4.5 (70, 80] – 4 (60, 70] – 3.5 (50, 60] – 3 Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 10 / 40
  • 19. Wstep Literatura Szyperski Clemens, Oprogramowanie komponentowe. Obiekty to za mało, WNT 2001 Andy Ju An Wang, Kai Qian, Component-Oriented Programming, John Wiley & Sons 2005 Juval Lowy, Programming .NET Components, O’Reilly 2005 Ian Sommerville, Inzynieria oprogramowania, WNT 2003 John Cheesman, John Daniels, Komponenty w UML, WNT 2004 Craig Walls, Spring in Action, 3ed., Manning 2012 Richard S. Hall, Karl Pauls, Stuart McCulloch, David Savage, OSGi in Action, Manning 2011. Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 11 / 40
  • 20. W strone programowania komponentowego Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 12 / 40
  • 21. W strone programowania komponentowego Czym jest programowanie? Program — sekwencja instrukcji wykonujacych pewne zadanie Klasyfikacja ze wzgledu na techniki, koncepcje lub uzyte srodki maszyna Pascala (1642) — przekładnie i korby technika X — programownie X-owe (X-oriented programming) Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
  • 22. W strone programowania komponentowego Czym jest programowanie? Program — sekwencja instrukcji wykonujacych pewne zadanie Klasyfikacja ze wzgledu na techniki, koncepcje lub uzyte srodki maszyna Pascala (1642) — przekładnie i korby technika X — programownie X-owe (X-oriented programming) Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
  • 23. W strone programowania komponentowego Czym jest programowanie? Program — sekwencja instrukcji wykonujacych pewne zadanie Klasyfikacja ze wzgledu na techniki, koncepcje lub uzyte srodki maszyna Pascala (1642) — przekładnie i korby technika X — programownie X-owe (X-oriented programming) Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
  • 24. W strone programowania komponentowego Czym jest programowanie? Program — sekwencja instrukcji wykonujacych pewne zadanie Klasyfikacja ze wzgledu na techniki, koncepcje lub uzyte srodki maszyna Pascala (1642) — przekładnie i korby technika X — programownie X-owe (X-oriented programming) Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 40
  • 25. W strone programowania komponentowego X-oriented programming I Programowanie przekładniowe maszyna róznicowa Charlesa Babbage’a (1822) zmiana przekładni, zebów i kół XIX-wieczny komputer parowy (kompletny w sensie Turinga!) Programowanie przełacznikowe ENIAC (1942) zmiana przełaczników (6000!) Programowanie proceduralne programy „wysokiego” poziomu (Fortran, Pascal, C) brak programujacych elementów mechanicznych ustrukturyzowany program funkcjonalnosc zamknieta w zbiorze procedur i funkcji Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 40
  • 26. W strone programowania komponentowego X-oriented programming I Programowanie przekładniowe maszyna róznicowa Charlesa Babbage’a (1822) zmiana przekładni, zebów i kół XIX-wieczny komputer parowy (kompletny w sensie Turinga!) Programowanie przełacznikowe ENIAC (1942) zmiana przełaczników (6000!) Programowanie proceduralne programy „wysokiego” poziomu (Fortran, Pascal, C) brak programujacych elementów mechanicznych ustrukturyzowany program funkcjonalnosc zamknieta w zbiorze procedur i funkcji Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 40
  • 27. W strone programowania komponentowego X-oriented programming I Programowanie przekładniowe maszyna róznicowa Charlesa Babbage’a (1822) zmiana przekładni, zebów i kół XIX-wieczny komputer parowy (kompletny w sensie Turinga!) Programowanie przełacznikowe ENIAC (1942) zmiana przełaczników (6000!) Programowanie proceduralne programy „wysokiego” poziomu (Fortran, Pascal, C) brak programujacych elementów mechanicznych ustrukturyzowany program funkcjonalnosc zamknieta w zbiorze procedur i funkcji Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 40
  • 28. W strone programowania komponentowego X-oriented programming II Programowanie obiektowe myslenie w kategorii typów danych (wbudowanych lub własnych) podstawowe bloki obiekty (zbiór danych w pamieci) klasy (typ — co mozna) /nie zawsze wymagane/ Programowanie aspektowe rozdzielenie odpowiedzialnosci — modularyzacja przekrojowych funkcjonalnosci wsparcie dla róznych rodzajów modularnosci Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 15 / 40
  • 29. W strone programowania komponentowego X-oriented programming II Programowanie obiektowe myslenie w kategorii typów danych (wbudowanych lub własnych) podstawowe bloki obiekty (zbiór danych w pamieci) klasy (typ — co mozna) /nie zawsze wymagane/ Programowanie aspektowe rozdzielenie odpowiedzialnosci — modularyzacja przekrojowych funkcjonalnosci wsparcie dla róznych rodzajów modularnosci Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 15 / 40
  • 30. W strone programowania komponentowego Programowanie komponentowe budowa programu z gotowych, reuzywalnych i samowystarczalnych komponentów (klocków) wymagania: interfejs, połaczenia, wersjonowanie, wdrazanie rozmaite rozmiary i „kształty” programowanie interfejsowe, implementacja nieistotna Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 16 / 40
  • 31. Dlaczego programowanie komponentowe? Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 17 / 40
  • 32. Dlaczego programowanie komponentowe? Rozwój systemów Budowa z komponentów / integracja systemów Naturalny element procesu inzynieryjnego Przykłady: budynki, samochody, komputery Zysk? „software crisis” Jak efektywnie tworzyc oprogramowanie? Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 18 / 40
  • 33. Dlaczego programowanie komponentowe? Cele programowania komponentowego I 1 Pokonywanie złozonosci ogrom informacji (2000: 2 × 1018B, 2012: 2, 7 × 1021B) rozmiar oprogramowania Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 19 / 40
  • 34. Dlaczego programowanie komponentowe? Cele programowania komponentowego I 1 Pokonywanie złozonosci ogrom informacji (2000: 2 × 1018B, 2012: 2, 7 × 1021B) rozmiar oprogramowania Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 19 / 40
  • 35. Dlaczego programowanie komponentowe? Cele programowania komponentowego II 2 Zarzadzanie zmiana zmiana jest nieodzownym elementem wytwarzania programowania (wymagania, specyfikacja, personel, budzet, technologia, itd.) połozenie szczególnego nacisku na zaleznosci i zarzadzanie ich zmiana komponenty sa łatwo adaptowalne do zmieniajacego sie srodowiska 3 Wielokrotne uzycie zwiekszenie produktywnosci poziomy: kopiowanie kodu, biblioteki procedur, biblioteki klas programowanie komponentowe: white-box (OOP), gray-box, black-box Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 20 / 40
  • 36. Dlaczego programowanie komponentowe? Wykorzystanie programowania komponentowego Rozproszone aplikacje klasy enterprise Aplikacje N-warstwowe (N-tier) Usługi sieciowe (web services) Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 21 / 40
  • 37. Komponenty Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 22 / 40
  • 38. Komponenty Formalizmy Definicja I Komponent jest podstawowa jednostka oprogramowania z deklaratywnie opisanymi interfejsami i podanymi wprost zaleznosciami Moze byc skonfigurowany i wdrozony niezaleznie od programisty, który go stworzył. Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 23 / 40
  • 39. Komponenty Formalizmy Definicja II Komponent jest kawałkiem samowystarczalnego i samowdrazajacego sie kodu komputerowego z dobrze zdefiniowana funkcjonalnoscia i moze byc połaczony z innymi komponentami poprzez interfejs Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 24 / 40
  • 40. Komponenty Formalizmy Wymagania (re)uzywalnosc bezobsługowosc pełna specyfikacja zaleznosci wyspecyfikowana funkcjonalnosc uzycie wyłacznie na podstawie w/w specyfikacji kompatybilnosc z innymi komponentami łatwa integracja z systemem Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 25 / 40
  • 41. Komponenty Formalizmy Klocki Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 26 / 40
  • 42. Komponenty Formalizmy Technologie VisualBasic i VBX COM/DCOM/COM+, ActiveX CORBA JavaBeans, EJB/Spring .NET OSGi SOAP, UDDI Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 27 / 40
  • 43. Komponenty Wady i Zalety Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 28 / 40
  • 44. Komponenty Wady i Zalety Zalety zwiekszona niezawodnosc zmniejszone zagrozenie procesu efektywne wykorzystanie specjalistów zgodnosc ze standardami przyspieszone tworzenie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 29 / 40
  • 45. Komponenty Wady i Zalety Wady zwiekszone koszty pielegnacji (brak zródeł) brak lub słabe wspomaganie narzedziowe przepisywanie (syndrom: „nie wymyslono tutaj”) prowadzenie biblioteki komponentów znajdowanie i adaptowanie komponentów Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 30 / 40
  • 46. Od programowania obiektowego do komponentowego Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 31 / 40
  • 47. Od programowania obiektowego do komponentowego Podstawy OOP Paradygmaty OOP Abstrakcja Enkapsulacja (Hermetyzacja) Polimorfizm Dziedziczenie Dziedziczenie łamie zasade hermatyzacji Obiekty i klasy nie sa samowdrozeniowe Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 40
  • 48. Od programowania obiektowego do komponentowego Podstawy OOP Paradygmaty OOP Abstrakcja Enkapsulacja (Hermetyzacja) Polimorfizm Dziedziczenie Dziedziczenie łamie zasade hermatyzacji Obiekty i klasy nie sa samowdrozeniowe Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 40
  • 49. Od programowania obiektowego do komponentowego Podstawy OOP Paradygmaty OOP Abstrakcja Enkapsulacja (Hermetyzacja) Polimorfizm Dziedziczenie Dziedziczenie łamie zasade hermatyzacji Obiekty i klasy nie sa samowdrozeniowe Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 40
  • 50. Od programowania obiektowego do komponentowego Róznice miedzy komponentami a obiektami Obiekty Komponenty oparte na obiektach oparte na interfejsach dziedziczenie klas dziedziczenie interfejsów czesciowa hermetyzacja pełna hermetyzacja scisłe powiazania luzne powiazania reuzywalnosc niskopoziomowa reuzywalnosc wysokopoziomowa implementacja paczkowanie i rozprowadzanie polimorfizm konfiguracja wdrozenia pózne wiazanie wywołan pózne wiazanie i ładowanie kodu zalezne od jezyka powtórne uzycie binariów Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 33 / 40
  • 51. Od programowania obiektowego do komponentowego Mozliwosci stylów programowania Mozliwosci SP OOP COP Dziel i zwyciezaj X X X Unifikacja danych i operacji X X Hermetyzacja X X Tozsamosc X X Interfejs X Wdrozenie X Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 34 / 40
  • 52. Inzynieria komponentowa Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 35 / 40
  • 53. Inzynieria komponentowa Inzynieria komponentowa 1 Specyfikacja opis zachowania zbioru obiektów komponentowych w postaci zbioru interfejsów realizacja poprzez implementacje 2 Interfejs definicja zbioru zachowan oferowanych przez komponent 3 Implementacja realizacja specyfikacji niezaleznosc wdrozeniowa (instalacja i wymiana) moze zalezec od innych komponentów 4 Instalacja instalacja/wdrozenie kopi implementacji komponentu rejestracja w srodowisku uruchomieniowym identyfikacja komponentu przez system w celu pózniejszego uzycia 5 Obiekt komponentu istancja zainstalowanego komponentu posiada własne dane i unikalna tozsamosc zainstalowany komponent moze miec kilka obiektów Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
  • 54. Inzynieria komponentowa Inzynieria komponentowa 1 Specyfikacja opis zachowania zbioru obiektów komponentowych w postaci zbioru interfejsów realizacja poprzez implementacje 2 Interfejs definicja zbioru zachowan oferowanych przez komponent 3 Implementacja realizacja specyfikacji niezaleznosc wdrozeniowa (instalacja i wymiana) moze zalezec od innych komponentów 4 Instalacja instalacja/wdrozenie kopi implementacji komponentu rejestracja w srodowisku uruchomieniowym identyfikacja komponentu przez system w celu pózniejszego uzycia 5 Obiekt komponentu istancja zainstalowanego komponentu posiada własne dane i unikalna tozsamosc zainstalowany komponent moze miec kilka obiektów Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
  • 55. Inzynieria komponentowa Inzynieria komponentowa 1 Specyfikacja opis zachowania zbioru obiektów komponentowych w postaci zbioru interfejsów realizacja poprzez implementacje 2 Interfejs definicja zbioru zachowan oferowanych przez komponent 3 Implementacja realizacja specyfikacji niezaleznosc wdrozeniowa (instalacja i wymiana) moze zalezec od innych komponentów 4 Instalacja instalacja/wdrozenie kopi implementacji komponentu rejestracja w srodowisku uruchomieniowym identyfikacja komponentu przez system w celu pózniejszego uzycia 5 Obiekt komponentu istancja zainstalowanego komponentu posiada własne dane i unikalna tozsamosc zainstalowany komponent moze miec kilka obiektów Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
  • 56. Inzynieria komponentowa Inzynieria komponentowa 1 Specyfikacja opis zachowania zbioru obiektów komponentowych w postaci zbioru interfejsów realizacja poprzez implementacje 2 Interfejs definicja zbioru zachowan oferowanych przez komponent 3 Implementacja realizacja specyfikacji niezaleznosc wdrozeniowa (instalacja i wymiana) moze zalezec od innych komponentów 4 Instalacja instalacja/wdrozenie kopi implementacji komponentu rejestracja w srodowisku uruchomieniowym identyfikacja komponentu przez system w celu pózniejszego uzycia 5 Obiekt komponentu istancja zainstalowanego komponentu posiada własne dane i unikalna tozsamosc zainstalowany komponent moze miec kilka obiektów Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
  • 57. Inzynieria komponentowa Inzynieria komponentowa 1 Specyfikacja opis zachowania zbioru obiektów komponentowych w postaci zbioru interfejsów realizacja poprzez implementacje 2 Interfejs definicja zbioru zachowan oferowanych przez komponent 3 Implementacja realizacja specyfikacji niezaleznosc wdrozeniowa (instalacja i wymiana) moze zalezec od innych komponentów 4 Instalacja instalacja/wdrozenie kopi implementacji komponentu rejestracja w srodowisku uruchomieniowym identyfikacja komponentu przez system w celu pózniejszego uzycia 5 Obiekt komponentu istancja zainstalowanego komponentu posiada własne dane i unikalna tozsamosc zainstalowany komponent moze miec kilka obiektów Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 36 / 40
  • 58. Podsumowanie Plan wykładu 1 Wstep 2 W strone programowania komponentowego 3 Dlaczego programowanie komponentowe? 4 Komponenty Formalizmy Wady i Zalety 5 Od programowania obiektowego do komponentowego 6 Inzynieria komponentowa 7 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 37 / 40
  • 59. Podsumowanie Podsumowanie Rozwój programowania (od maszynowego do komponentowego) wraz z rozwojem technologii Komponent — gotowy i tani w uzyciu prefabrykat czarna skrzynka funkcjonalnosc poprzez dobrze zdefiniowane interfejsy Przewaga programowania kompoentowego nad innymi stylami Rózne formy komponentu: od specyfikacji po uruchomiony obiekt Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 38 / 40
  • 60. Podsumowanie Do domu Przypomniec sobie programowanie interfejsów w C# Zapoznac sie z róznicami miedzy interfejsami a klasami abstrakcyjnymi Dowiedziec sie dlaczego nalezy uzywac interfejsów Przeczytac rozdział 1. „Programming .NET Components” Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 39 / 40
  • 61. Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 40 / 40