ݺߣ

ݺߣShare a Scribd company logo
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
Ad

Recommended

Programowanie Komponentowe: #1 Wprowadzenie
Programowanie Komponentowe: #1 Wprowadzenie
Mikołaj Olszewski
Programowanie Komponentowe: #E Podsumowanie
Programowanie Komponentowe: #E Podsumowanie
Mikołaj Olszewski
Programowanie Komponentowe: #3 Podstawy programowania komponentów
Programowanie Komponentowe: #3 Podstawy programowania komponentów
Mikołaj Olszewski
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Programowanie Komponentowe: #5 Wprowadzenie do środowiska .NET
Mikołaj Olszewski
Nowości w Javie 8 okiem programisty
Nowości w Javie 8 okiem programisty
MarcinStachniuk
Programowanie komponentowe: #4 Podstawy połączeń komponentów
Programowanie komponentowe: #4 Podstawy połączeń komponentów
Mikołaj Olszewski
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Mikołaj Olszewski
Programowanie Komponentowe: #D Model komponentowy OSGi
Programowanie Komponentowe: #D Model komponentowy OSGi
Mikołaj Olszewski
Programowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java Beans
Mikołaj Olszewski
9. Programowanie w środowisku języka obiektowego
9. Programowanie w środowisku języka obiektowego
kalaxq
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Mikołaj Olszewski
Programowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do Springa
Mikołaj Olszewski
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na dane
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na dane
Adam Sawicki
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Wydawnictwo Helion
C++. Algorytmy i struktury danych
C++. Algorytmy i struktury danych
Wydawnictwo Helion
Delphi. Szybki start
Delphi. Szybki start
Wydawnictwo Helion
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 Wersjonowanie
Mikołaj Olszewski
Architektura heksagonalna
Architektura heksagonalna
Mikołaj Olszewski
The 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. 1
Mikołaj Olszewski
Programowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springa
Mikołaj Olszewski
Kwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikowe
Mikołaj Olszewski
Metody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowych
Mikołaj Olszewski

More Related Content

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

Programowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java Beans
Mikołaj Olszewski
9. Programowanie w środowisku języka obiektowego
9. Programowanie w środowisku języka obiektowego
kalaxq
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Mikołaj Olszewski
Programowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do Springa
Mikołaj Olszewski
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na dane
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na dane
Adam Sawicki
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Wydawnictwo Helion
C++. Algorytmy i struktury danych
C++. Algorytmy i struktury danych
Wydawnictwo Helion
Delphi. Szybki start
Delphi. Szybki start
Wydawnictwo Helion
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 Wersjonowanie
Mikołaj Olszewski
Programowanie Komponentowe: #9 Java Beans
Programowanie Komponentowe: #9 Java Beans
Mikołaj Olszewski
9. Programowanie w środowisku języka obiektowego
9. Programowanie w środowisku języka obiektowego
kalaxq
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Programowanie Komponentowe: #7 Programowanie asynchroniczne i sterowane zdarz...
Mikołaj Olszewski
Programowanie Komponentowe: #A Wprowadzenie do Springa
Programowanie Komponentowe: #A Wprowadzenie do Springa
Mikołaj Olszewski
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na dane
Tworzenie wydajnego kodu c++ w podejściu zorientowanym na dane
Adam Sawicki
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Wydawnictwo Helion
Programowanie Komponentowe: #6 Wersjonowanie
Programowanie Komponentowe: #6 Wersjonowanie
Mikołaj Olszewski

More from Mikołaj Olszewski (20)

Architektura heksagonalna
Architektura heksagonalna
Mikołaj Olszewski
The 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. 1
Mikołaj Olszewski
Programowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springa
Mikołaj Olszewski
Kwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikowe
Mikołaj Olszewski
Metody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowych
Mikołaj Olszewski
Parallel quicksort cz. 1
Parallel quicksort cz. 1
Mikołaj Olszewski
The 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. 1
Mikołaj Olszewski
Programowanie Komponentowe: #B Komponentowe aspekty springa
Programowanie Komponentowe: #B Komponentowe aspekty springa
Mikołaj Olszewski
Kwantowe struktury półprzewodnikowe
Kwantowe struktury półprzewodnikowe
Mikołaj Olszewski
Metody efektywnego łączenia sieci neuronowych
Metody efektywnego łączenia sieci neuronowych
Mikołaj Olszewski
Ad

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