SlideShare a Scribd company logo
1 of 38
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 1 / 35
Programowanie Komponentowe 
Wykład #2: Metody opisu komponentów 
Mikołaj Olszewski 
Wydział Zastosowan Informatyki i Matematyki 
Szkoły Głównej Gospodarstwa Wiejskiego 
14.10.2014 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 2 / 35
Plan wykładu 
1 UML 
2 IDL 
Typy danych 
Moduły 
Interfejsy 
3 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 3 / 35
UML 
Plan wykładu 
1 UML 
2 IDL 
Typy danych 
Moduły 
Interfejsy 
3 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 4 / 35
UML 
UML 
A co to za zwierze? 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 35
UML 
Po co nam UML? 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 6 / 35
UML 
UML 1.x 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 7 / 35
UML 
UML 2 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 8 / 35
UML 
Podstawy 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 9 / 35
UML 
Podstawy 
Stereotypy komponentów 
<< specification >> 
<< realization >> 
<< implementation >> 
<< entity >> 
<< process >> 
<< service >> 
<< subsystem >> 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 9 / 35
UML 
Zaleznosci 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 10 / 35
UML 
Interfejsy 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 11 / 35
UML 
Interfejsy 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 11 / 35
UML 
Zaleznosci 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 12 / 35
UML 
Widoki 
czarna skrzynka 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 35
UML 
Widoki 
czarna skrzynka 
biała skrzynka 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 35
UML 
Porty 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 35
UML 
Porty 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 15 / 35
UML 
Złozona struktura 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 16 / 35
IDL 
Plan wykładu 
1 UML 
2 IDL 
Typy danych 
Moduły 
Interfejsy 
3 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 17 / 35
IDL 
Skad pomysł? 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 18 / 35
IDL 
Interface Definition Language 
Object Management Group 
współpraca komponentów 
niezaleznosc od konkretnego jezyka 
opis deklaratywny 
gramatyka podobna do C++ 
DOM W3C 
OMG vs. Microsoft 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 19 / 35
IDL 
Składnia 
module <i d e n t y f i k a t o r> 
f 
<d e k l a r a c j e typow>; 
<d e k l a r a c j e s t a l y c h >; 
<d e k l a r a c j e wyjatkow>; 
i n t e r f a c e <i d e n t y f i k a t o r> [:< d z i e d z i c z e n i e >] / d e f i n i c j a i n t e r f e j s u / 
f 
d e k l a r a c j e typow; 
d e k l a r a c j e s t a l y c h ; 
d e k l a r a c j e atrybutow; 
d e k l a r a c j e wyjatkow; 
/ d e f i n i c j a metody/ 
[ oneway ] t yp zwr . war. i d e n t y f i k a t o r (parametry) 
[ r a i s e s ] ( wy j a t k i ) 
[ c o n t e x t ] ( wa r t o s c i ) ; 
../ 
 d e f i n i c j a metody/ 
[ oneway ] t yp zwr . war. i d e n t y f i k a t o r (parametry) 
[ r a i s e s ] ( wy j a t k i ) 
[ c o n t e x t ] ( wa r t o s c i ) ; 
.. 
g; 
i n t e r f a c e i d e n t y f i k a t o r [: d z i e d z i c z e n i e ] / d e f i n i c j a i n t e r f e j s u / 
.. 
g; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 20 / 35
IDL Typy danych 
Typy podstawowe 
(unsigned) short 
(unsigned) long 
(unsigned) long long 
float 
double 
long double 
fixed 
char 
wchar 
boolean 
octet 
any 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 21 / 35
IDL Typy danych 
Typy c.d. 
definiowane 
typedef long ID ; 
tablice 
typedef long Array [ 1 0 ] [ 2 0 ] ; 
sekwencje 
typedef sequence o c t e t s1 ; 
typedef sequence o c t e t ,10 s2 ; 
łancuchy znaków 
typedef s t r i n g n1 ; 
typedef s t r i n g 10 n2 ; 
typy wyliczeniowe 
enum Pet f cat , dog , f i s h , b i r d , r a t , h o r s e g ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 22 / 35
IDL Typy danych 
Struktury 
s t ruc t Osoba 
f 
s t r i n g 10 imi e ; 
s t r i n g 10 nazwisko ; 
long r o k u r o d z e n i a ; 
g ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 23 / 35
IDL Typy danych 
Unie 
union Re f e r e n c e switch ( short ) 
f 
case 1 : f s t r i n g T i t l e ; s t r i n g Author ; g 
case 2 : s t r i n g URL ; 
de faul t : long TopicID ; 
g ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 24 / 35
IDL Moduły 
Moduły 
rola porzadkowa 
przestrzen nazw 
module BazaDanych 
f 
... 
g 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 25 / 35
IDL Interfejsy 
Interfejsy 
opis dostarczanych usług 
publiczne składowe 
i n t e r f a c e Example1 
f 
r e a d o n l y a t t r i b u t e s t r i n g Name ; 
a t t r i b u t e long Value ; 
long AddToValue ( i n long Summand , out long Re s u l t ) ; 
g ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 26 / 35
IDL Interfejsy 
Atrybuty 
a t t r i b u t e f l o a t l i c z b a ; 
r e a d o n l y a t t r i b u t e double suma ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 27 / 35
IDL Interfejsy 
Wyjatki 
i n t e r f a c e Konto 
f 
e x c e p t i o n BrakSrodkow f g ; 
. . . 
g ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 28 / 35
IDL Interfejsy 
Metody 
i n t e r f a c e Calka 
f 
double Suma( i n o u t double a , i n double b ) ; 
double I l o c z y n ( i n o u t double a , i n double b ) ; 
g ; 
i n t e r f a c e Drzewo 
f 
e x c e p t i o n Ob i e k t I s t n i e j e f g ; 
void NowyElement ( i n double a ) r a i s e s ( Ob i e k t I s t n i e j e ) ; 
oneway void Re o r g a n i z a c j a ( ) ; 
g ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 29 / 35
IDL Interfejsy 
Dziedziczenie 
i n t e r f a c e Baza 
f 
. . . 
g ; 
i n t e r f a c e I n t e r f e j sPo c h o d n y : Baza 
f 
. . . 
g ; 
Mozliwe dziedziczenie wielokrotne bez wspólnego przodka 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 30 / 35
IDL Interfejsy 
Przykład 
typedef sequencedouble TTab ; 
i n t e r f a c e Calc 
f 
double Sum( i n double a , i n double b ) ; 
double Di f f ( i n double a , i n double b ) ; 
double Mul ( i n double a , i n double b ) ; 
double Div ( i n double a , i n double b ) ; 
double Min ( i n TTab a ) ; 
double Max( i n TTab b ) ; 
double SumTab( i n TTab a ) ; 
double MulTab ( i n TTab a ) ; 
oneway void Cl e a r ( ) ; 
g ; 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 31 / 35
Podsumowanie 
Plan wykładu 
1 UML 
2 IDL 
Typy danych 
Moduły 
Interfejsy 
3 Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 35
Podsumowanie 
Podsumowanie 
Rózne metody opisu komponentów 
Róznice w standardach 
Główny nacisk na wyspecyfikowanie interfejsu 
ogół - UML, szczegół - IDL 
Jednoznaczne nazwy 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 33 / 35
Podsumowanie 
Do domu 
Przypomniec sobie diagramy UML, w szczególnosci komponentów i 
klas. 
Zapoznac sie z IDL-em. 
Usprawnic obsługe git-a i bitbucket-a! 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 34 / 35
Podsumowanie 
Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 35 / 35

More Related Content

Similar to Programowanie Komponentowe: #2 Metody opisu komponentów

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: #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: #9 Java Beans
Programowanie Komponentowe: #9 Java BeansProgramowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java BeansMikoł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
 

Similar to Programowanie Komponentowe: #2 Metody opisu komponentów (7)

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: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do SpringaProgramowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do Springa
 
Programowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java BeansProgramowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java Beans
 
Programowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springaProgramowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springa
 
Wprowadzenie do J2ME
Wprowadzenie do J2MEWprowadzenie do J2ME
Wprowadzenie do J2ME
 
DSL - DYI
DSL - DYIDSL - DYI
DSL - DYI
 
Isyp07
Isyp07Isyp07
Isyp07
 

More from Mikoł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 clientMikoł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
 
Optoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronoweOptoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronoweMikołaj Olszewski
 
Optyczne solitony przestrzenne
Optyczne solitony przestrzenneOptyczne solitony przestrzenne
Optyczne solitony przestrzenneMikołaj Olszewski
 
Kwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikoweKwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikoweMikołaj Olszewski
 
Metody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowychMetody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowychMikołaj Olszewski
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieMikołaj Olszewski
 
Test wyszukiwarek internetowych
Test wyszukiwarek internetowychTest wyszukiwarek internetowych
Test wyszukiwarek internetowychMikołaj Olszewski
 

More from Mikołaj Olszewski (20)

Architektura heksagonalna
Architektura heksagonalnaArchitektura heksagonalna
Architektura heksagonalna
 
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
 
Optoelektroniczne modelowanie sieci neuronowej cz. 1
Optoelektroniczne modelowanie sieci neuronowej cz. 1Optoelektroniczne modelowanie sieci neuronowej cz. 1
Optoelektroniczne modelowanie sieci neuronowej cz. 1
 
Optoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronoweOptoelektroniczne sieci neuronowe
Optoelektroniczne sieci neuronowe
 
Materiały fotorefrakcyjne
Materiały fotorefrakcyjneMateriały fotorefrakcyjne
Materiały fotorefrakcyjne
 
Lokalne sieci światłowodowe
Lokalne sieci światłowodoweLokalne sieci światłowodowe
Lokalne sieci światłowodowe
 
Optyczne solitony przestrzenne
Optyczne solitony przestrzenneOptyczne solitony przestrzenne
Optyczne solitony przestrzenne
 
Swiatłowodowy czujnik prądu
Swiatłowodowy czujnik prąduSwiatłowodowy czujnik prądu
Swiatłowodowy czujnik prądu
 
Optyka ciekłych kryształów
Optyka ciekłych kryształówOptyka ciekłych kryształów
Optyka ciekłych kryształów
 
Kwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikoweKwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikowe
 
Metody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowychMetody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowych
 
Parallel quicksort cz. 2
Parallel quicksort cz. 2Parallel quicksort cz. 2
Parallel quicksort cz. 2
 
Parallel quicksort cz. 1
Parallel quicksort cz. 1Parallel quicksort cz. 1
Parallel quicksort cz. 1
 
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 WersjonowanieProgramowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 Wersjonowanie
 
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: #2 Metody opisu komponentów

  • 1. Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 1 / 35
  • 2. Programowanie Komponentowe Wykład #2: Metody opisu komponentów Mikołaj Olszewski Wydział Zastosowan Informatyki i Matematyki Szkoły Głównej Gospodarstwa Wiejskiego 14.10.2014 Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 2 / 35
  • 3. Plan wykładu 1 UML 2 IDL Typy danych Moduły Interfejsy 3 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 3 / 35
  • 4. UML Plan wykładu 1 UML 2 IDL Typy danych Moduły Interfejsy 3 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 4 / 35
  • 5. UML UML A co to za zwierze? Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 5 / 35
  • 6. UML Po co nam UML? Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 6 / 35
  • 7. UML UML 1.x Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 7 / 35
  • 8. UML UML 2 Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 8 / 35
  • 9. UML Podstawy Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 9 / 35
  • 10. UML Podstawy Stereotypy komponentów << specification >> << realization >> << implementation >> << entity >> << process >> << service >> << subsystem >> Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 9 / 35
  • 11. UML Zaleznosci Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 10 / 35
  • 12. UML Interfejsy Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 11 / 35
  • 13. UML Interfejsy Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 11 / 35
  • 14. UML Zaleznosci Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 12 / 35
  • 15. UML Widoki czarna skrzynka Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 35
  • 16. UML Widoki czarna skrzynka biała skrzynka Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 13 / 35
  • 17. UML Porty Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 14 / 35
  • 18. UML Porty Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 15 / 35
  • 19. UML Złozona struktura Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 16 / 35
  • 20. IDL Plan wykładu 1 UML 2 IDL Typy danych Moduły Interfejsy 3 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 17 / 35
  • 21. IDL Skad pomysł? Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 18 / 35
  • 22. IDL Interface Definition Language Object Management Group współpraca komponentów niezaleznosc od konkretnego jezyka opis deklaratywny gramatyka podobna do C++ DOM W3C OMG vs. Microsoft Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 19 / 35
  • 23. IDL Składnia module <i d e n t y f i k a t o r> f <d e k l a r a c j e typow>; <d e k l a r a c j e s t a l y c h >; <d e k l a r a c j e wyjatkow>; i n t e r f a c e <i d e n t y f i k a t o r> [:< d z i e d z i c z e n i e >] / d e f i n i c j a i n t e r f e j s u / f d e k l a r a c j e typow; d e k l a r a c j e s t a l y c h ; d e k l a r a c j e atrybutow; d e k l a r a c j e wyjatkow; / d e f i n i c j a metody/ [ oneway ] t yp zwr . war. i d e n t y f i k a t o r (parametry) [ r a i s e s ] ( wy j a t k i ) [ c o n t e x t ] ( wa r t o s c i ) ; ../ d e f i n i c j a metody/ [ oneway ] t yp zwr . war. i d e n t y f i k a t o r (parametry) [ r a i s e s ] ( wy j a t k i ) [ c o n t e x t ] ( wa r t o s c i ) ; .. g; i n t e r f a c e i d e n t y f i k a t o r [: d z i e d z i c z e n i e ] / d e f i n i c j a i n t e r f e j s u / .. g; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 20 / 35
  • 24. IDL Typy danych Typy podstawowe (unsigned) short (unsigned) long (unsigned) long long float double long double fixed char wchar boolean octet any Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 21 / 35
  • 25. IDL Typy danych Typy c.d. definiowane typedef long ID ; tablice typedef long Array [ 1 0 ] [ 2 0 ] ; sekwencje typedef sequence o c t e t s1 ; typedef sequence o c t e t ,10 s2 ; łancuchy znaków typedef s t r i n g n1 ; typedef s t r i n g 10 n2 ; typy wyliczeniowe enum Pet f cat , dog , f i s h , b i r d , r a t , h o r s e g ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 22 / 35
  • 26. IDL Typy danych Struktury s t ruc t Osoba f s t r i n g 10 imi e ; s t r i n g 10 nazwisko ; long r o k u r o d z e n i a ; g ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 23 / 35
  • 27. IDL Typy danych Unie union Re f e r e n c e switch ( short ) f case 1 : f s t r i n g T i t l e ; s t r i n g Author ; g case 2 : s t r i n g URL ; de faul t : long TopicID ; g ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 24 / 35
  • 28. IDL Moduły Moduły rola porzadkowa przestrzen nazw module BazaDanych f ... g Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 25 / 35
  • 29. IDL Interfejsy Interfejsy opis dostarczanych usług publiczne składowe i n t e r f a c e Example1 f r e a d o n l y a t t r i b u t e s t r i n g Name ; a t t r i b u t e long Value ; long AddToValue ( i n long Summand , out long Re s u l t ) ; g ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 26 / 35
  • 30. IDL Interfejsy Atrybuty a t t r i b u t e f l o a t l i c z b a ; r e a d o n l y a t t r i b u t e double suma ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 27 / 35
  • 31. IDL Interfejsy Wyjatki i n t e r f a c e Konto f e x c e p t i o n BrakSrodkow f g ; . . . g ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 28 / 35
  • 32. IDL Interfejsy Metody i n t e r f a c e Calka f double Suma( i n o u t double a , i n double b ) ; double I l o c z y n ( i n o u t double a , i n double b ) ; g ; i n t e r f a c e Drzewo f e x c e p t i o n Ob i e k t I s t n i e j e f g ; void NowyElement ( i n double a ) r a i s e s ( Ob i e k t I s t n i e j e ) ; oneway void Re o r g a n i z a c j a ( ) ; g ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 29 / 35
  • 33. IDL Interfejsy Dziedziczenie i n t e r f a c e Baza f . . . g ; i n t e r f a c e I n t e r f e j sPo c h o d n y : Baza f . . . g ; Mozliwe dziedziczenie wielokrotne bez wspólnego przodka Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 30 / 35
  • 34. IDL Interfejsy Przykład typedef sequencedouble TTab ; i n t e r f a c e Calc f double Sum( i n double a , i n double b ) ; double Di f f ( i n double a , i n double b ) ; double Mul ( i n double a , i n double b ) ; double Div ( i n double a , i n double b ) ; double Min ( i n TTab a ) ; double Max( i n TTab b ) ; double SumTab( i n TTab a ) ; double MulTab ( i n TTab a ) ; oneway void Cl e a r ( ) ; g ; Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 31 / 35
  • 35. Podsumowanie Plan wykładu 1 UML 2 IDL Typy danych Moduły Interfejsy 3 Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 32 / 35
  • 36. Podsumowanie Podsumowanie Rózne metody opisu komponentów Róznice w standardach Główny nacisk na wyspecyfikowanie interfejsu ogół - UML, szczegół - IDL Jednoznaczne nazwy Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 33 / 35
  • 37. Podsumowanie Do domu Przypomniec sobie diagramy UML, w szczególnosci komponentów i klas. Zapoznac sie z IDL-em. Usprawnic obsługe git-a i bitbucket-a! Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 34 / 35
  • 38. Podsumowanie Mikołaj Olszewski (WZIM SGGW) Programowanie Komponentowe Wykład #1 35 / 35