diagramy sekwencji i kolaboracji

Transkrypt

diagramy sekwencji i kolaboracji
DIAGRAMY SEKWENCJI I KOLABORACJI
Maciej Patan
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Modelowanie behawioralne
Model behawioralny: Opis systemu koncentrujący się na dynamicznym zachowaniu
składników systemu, włączając w to wzajemne interakcje i współpracę pomiędzy
nimi.
Motywacje
⊲ projektowanie oprogramowania dotyczy zachowania jego składników;
projektowanie obiektowo zorientowane jest techniką używaną do rozdzielenia i
enkapsulacji zachowań,
⊲ model statyczny nie może być dowiedziony jako dokładny bez analizy
związanych z nim procesów dynamicznych,
⊲ modele dynamiczne, niezbyt precyzyjnie reprezentują strukturę systemu oraz
zachodzące zależności,
⊲ ukazanie kompletnego współdziałania elementów w zakresie relacji
statycznych oraz dynamicznych,
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
1
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Podstawowe pojęcia(1)
Instancja – (obiektu, struktury danych, komponentu, itp.) Wielkość z unikatową
tożsamością do której można zastosować określony zbiór operacji lub wysłać
zestaw sygnałów i która posiada stan odzwierciedlający efekty działania tych
operacji lub sygnałów.
Powiązanie – Połączenie pomiędzy instancjami, będące realizacją asocjacji między
klasami. Powiązanie atrybutu jest to nazwana pozycja tekstowa wewnątrz
instancji przechowująca wartość atrybutu.
Operacja – Deklaracja usługi, która może być wymagana od instancji celem
wpłynięcia na zachowanie się elementów systemu. Metoda jest ciałem operacji.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
2
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Odcinek:Wielok¹t
Powi¹zanie
atrybutu
Œrodek : Punkt = (0.5,0.5)
Wierzcho³ki : Punkt[2] = ((0,0),(1,1))
B:Punkt
Powi¹zanie
x : Integer = 1
y : Integer = 1
Wielok¹t
Œrodek : Punkt
Wierzcho³ki : Punkt[1..*]
przesuñ(in d : Point)
skaluj(in k : Real)
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
koniec
A:Punkt
pocz¹tek x : Integer = 0
y : Integer = 0
for any v in Wierzcho³ki do
v.x:=v.x+d.x;
v.y:=v.y+d.y;
for any v in Wierzcho³ki do
v.x:=k*v.x;
v.y:=k*v.y;
3
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Podstawowe pojęcia(2)
Bodziec – Proces komunikacji pomiędzy instancjami nadającą i odbierającą.
Komunikat jest analogicznym procesem komunikacji pomiędzy klasami (tzn.
Bodziec jest instancją Komunikatu).
Sygnał – Specyfikacja asynchronicznego bodźca przekazywanego pomiędzy
instancjami.
Interakcja – zbiór procesów komunikacji pomiędzy instancjami, włączając w to
wszystkie sposoby oddziaływania, (np. operacje wywołania, tworzenia i niszczenia
instancji),
Uwaga: Procesy komunikowania się są chronologicznie częściowo uporządkowane.
Modelowanie interakcyjne – wyspecjalizowany typ modelowania behawioralnego,
przeznaczony do analizy interakcji pomiędzy elementami wraz z upływem czasu.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Techniki modelowania programowania
4
Diagramy sekwencji i kolaboracji
Diagramy interakcyjne
⊲ Pokazują interakcje pomiędzy instancjami występującymi w modelu.
◮ istniejące instancje wraz z możliwymi powiązaniami,
◮ komunikaty i bodźce,
◮ tworzenie i niszczenie instancji.
⊲ Typy:
◮ diagramy sekwencji (podejście temporalne),
◮ diagramy kolaboracji (podejście strukturalne).
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
5
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Diagramy sekwencji - podstawowe elementy
oœ kategorii instancji
O1: Klasa1
O2:Klasa2
O3:Klasa3
etykieta bodŸca
oœ czasu
nazwa1(...)
aktywacja
nazwa2(...)
bodziec
linia ¿ycia
Linia życia reprezentuje istnienie elementu w czasie.
Aktywacja reprezentuje okres wykonywania operacji.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
6
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Typy komunikatów i bodźców
Składnia
Typ
Opis
komunikat prosty
Bezpośredni przepływ sterowania z
instancji do instancji
Wstrzymanie operacji do czasu
uzyskania odpowiedzi
Kontunuowanie operacji bez czekania na odpowiedź
Powrót z wywołania podprogramu
komunikat synchroniczny
komunikat asynchroniczny
powrót
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
7
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Różne typy komunikacji
Przepływ prosty
nadajnik
centrala
Przepływ zagnieżdzony
odbiornik
sprzedawca
:Zamówienie
:Artyku³
w³¹cz nadajnik()
sygna³ wybierania()
pobierzWartoϾ()
wybierz numer()
cena()
sygna³ oczekiwania()
dzwonek()
po³aczenie odebrane()
pobierzAdres()
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Techniki modelowania programowania
8
Diagramy sekwencji i kolaboracji
Etykiety komunikatów i bodźców
pop / [warunek] *[iter] nr sekw : wynik := operacja(lista)
⊲ pop – lista poprzedników (tzn. komunikatów poprzedzających),
⊲ [warunek] – warunek dozoru, który musi zostać spełniony żeby komunikacja
nastąpiła,
⊲ *[iter] – liczba iteracji oznaczająca, ile razy komunikacja zostaje
powtórzona,
⊲ nr sekw – etykieta określająca kolejność komunikacji,
⊲ wynik – nazwa zmiennej zwracanej przez operację,
⊲ operacja(lista) – nazwa wywoływanej operacji oraz jej lista argumentów.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
9
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Przykłady:
⊲ przesuń(1,2) – wywołanie proste,
⊲ wyn1:=przesuń(5,5) – zwrócenie parametru wyjściowego,
⊲ *[1..5]: wyn1 := przesuń(5,7) – iteracja,
⊲ [z>0]: wyn1 := przesuń(5,7) – warunek,
⊲ A3,B4 / [x<0] *[1..4] C3.1: wyn2 := pobierzLokację(wyn1)
⊲ [Baza jest aktywna] *[Dla każdego rekordu] 6:
DaneWyj:=Formatuj(DaneWej,Sterowanie,3)
Uwaga: UML pozwala przedstawiać komunikację za pomocą pseudokodu lub
innego języka programowania. Komunikację można też opisać na lewym
marginesie diagramu sekwencji.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
10
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Diagramy sekwencji - konstrukty
calculator
value
filter
[x>=0] getValue()
tworzenie
elementu
warunek
new()
[x<0] transform()
buffer
getValue()
delete()
iterate()
rekurencja
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
11
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Diagramy sekwencji - pętle
:DataBase
:Report
:Table
*[For each record]
warunek pêtli (opcja 1)
res1:= getRecord()
res2:=getIndex()
outData:=FormatData(res1,res2)
komunikacja zwrotna
[No more record to process]
warunek pêtli (opcja 2)
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Techniki modelowania programowania
12
Diagramy sekwencji i kolaboracji
Zalety i wady
✔ niezwykle wyraźnie pokazują chronologię ciągów zdarzeń,
✔ bardzo dobrze opisują przetwarzanie równoległe,
✔ znakomite do wykrywania przypadków „wyścigu zdarzeń”,
✘ zajmują dużo miejsca,
✘ słabo przedstawiają wzajemne relacje pomiędzy instancjami.
Kiedy modelować interakcje
⊲ Do ustalenia w jaki sposób instancje oddziałują na siebie.
⊲ Do zidentyfikowania interfejsów klasyfikatorów.
⊲ Do rozłożenia i separacji wymagań.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
13
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Wskazówki do modelowania interakcyjnego
◮ Ustalić pełny kontekst rozważanej interakcji.
◮ Dołączać tylko te własności instancji, które są niezbędne i znaczące.
◮ Ustalać przepływ w kierunku z lewej do prawej i z góry na dół,
• umieszczać aktywne instancje z lewej strony (u góry), a pasywne z prawej
(u dołu),
◮ Używać diagramów sekwencji:
• do pokazania bezpośredniego uporządkowania komunikatów i bodźców,
• do modelowania w czasie rzeczywistym.
◮ Używać diagramów kolaboracji:
• kiedy struktura jest bardzo istotna,
• do skoncentrowania się na efektach wywieranych na instancje.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Techniki modelowania programowania
14
Diagramy sekwencji i kolaboracji
Podstawowe pojęcia(3)
Kolaboracja – opisuje jak operacja lub klasyfikator (np. przypadek użycia) są
realizowane przez zbiór klas i asocjacji użytych w pewien określony sposób.
Definiuje zbiór ról, odgrywanych przez instancje i powiązania oraz zbiór interakcji
określających komunikację pomiędzy instancjami, kiedy odgrywają swoje role.
Rola klasyfikatora – jest specyficzną rolą odgrywaną przez współuczestnika w
kolaboracji. Określa ograniczony widok na klasyfikator, zdefiniowany przez to co
jest wymagane w kolaboracji.
Rola asocjacji – jest specyficznym użyciem asocjacji potrzebnej w kolaboracji.
Modelowanie kolaboracyjne – wyspecjalizowany typ modelowania behawioralnego,
przeznaczony do modelowanie relacji pomiędzy elementami, pomiędzy którymi zachodzą interakcje w czasie.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
15
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Diagramy kolaboracji
⊲ pokazują role klasyfikatorów i asocjacji (najlepiej razem) uzupełnione
dodatkowymi elementami ograniczającymi,
⊲ Typy:
◮ diagramy na poziomie specyfikacji (role klas, role asocjacji i ich
komunikaty),
◮ diagramy na poziomie instancji (konkretne obiekty, powiązania i bodźce),
⊲ dodatkowe diagramy statyczne są używane do bezpośredniego pokazania
kolaboracji.
Uwaga: Diagramy kolaboracji i sekwencji opisują te same informacje i mogą być
przekształcane miedzy sobą. Wybór diagramu zależy od aspektu, który chce
zilustrować projektant.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
16
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Relacje klasa-instancja-rola
Klasyfikator
Atrybut_1
Atrybut_2
Atrybut_3
<<jest widokiem>>
RolaKlasyfikatora
Atrybut_1
Atrybut_2
Operacja_1()
Operacja_3()
Operacja_1()
Operacja_2()
Operacja_3()
<<wywodzi siê z>>
<<odnosi siê do>>
Instancja
Klasyfikator jest
opisem instancji
Atrybut_1
Atrybut_2
Atrybut_3
Rola klasyfikatora
definuje u¿ycie
instancji
Instancja jest wielkoœci¹
z unikatow¹ to¿samoœci¹
opisan¹ zachowaniem i stanem
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
17
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Różne sposoby nazywania roli
/ NazwaRoliKlasyfikatora : NazwaKlasyfikatora
/Rodzic:Osoba
/Rodzic
:Osoba
NazwaInstancji / NazwaRoliKlasyfikatora : NazwaKlasyfikatora
:Osoba
Andrzej:Osoba
Andrzej/Rodzic
Andrzej
Andrzej/Rodzic:Osoba
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
18
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Asocjacje i role asocjacji
klasa
klasa
Klasa_1
asocjacja
{zmienna}
<<jest widokiem>>
<<jest widokiem>>
/Rola_1
0..5
rola klasy
<<jest widokiem>>
3..4
{ustalona}
rola asocjacji
Klasa_2
/Rola_2
rola klasy
⊲ Rola asocjacji precyzuje pożądane własności powiązania użytego w
kolaboracji.
⊲ Własności zakończeń asocjacji mogą zostać ograniczone poprzez zakończenia
ról asocjacji.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
19
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Przykład 1. Prosta struktura uniwersytetu.
Model ról
/Nauczyciel:Osoba
/Student:Osoba
*
Program:Text
promotor uczeñ
1
Pozycja:Text
pracownik *
* uczestnik
1
wyk³adowca
1
−→
kompletny opis
struktury
kurs wyk³adany
* kurs pobierany
*
:Kurs
:Wydzia³
Model klas
promotor
Osoba
0..1
uczeñ
Nazwa:Text
pracownik Pozycja:Text
*
* Program:Text
* uczestnik
wyk³adowca 1
0..1
kurs wyk³adany
−→
opis pojedynczego
użycia
* kurs pobierany
*
Kurs
Wydzia³
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
20
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Model ról na poziomie instancji
promotor
cz³onek
Andrze/Nauczyciel
wydzia³u
uczeñ
promotor
Alicja/Student
uczestnik
uczeñ
wydzia³
Robert/Student
:Wydzia³
uczestnik
wydzia³
kurs
kurs pobierany pobierany
cz³onek
Krzysztof/Nauczyciel
wydzia³u
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
kurs
wyk³adowca wyk³adany
UML :Kurs
21
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Diagram kolaboracji z interakcjami
Przykład 2. Załóżmy, że użytkownik pracując w edytorze tekstowym naciska znak
na klawiaturze, który pojawia się na ekranie. Pokazać interakcje tego prostego
procesu zachodzące między klawiaturą, interfejsem graficznym edytora, systemem
operacyjnym, procesorem, kartą graficzną i monitorem.
Najpierw tworzymy scenariusz przypadku użycia „Naciśnij klawisz”:
1. naciśnięcie klawisza jest wykrywane przez interfejs graficzny (GUI),
2. GUI informuje system operacyjny (SYS) o naciśnięciu klawisza,
3. SYS informuje o tym procesor (CPU),
4. SYS uaktualnia GUI,
5. CPU zawiadamia kartę graficzną (GRAPH),
6. GRAPH wysyła komunikat do monitora,
7. monitor wyświetla znak alfanumeryczny.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
22
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Diagram sekwencji
Diagram kolaboracji
1:
: Klawiatura
: GUI
: SYS
: CPU
: GRAPH
: Monitor
: Klawiatura
2:
: SYS
: GUI
3:
1:
2:
3:
4:
4:
5:
5:
6:
: CPU
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
6:
: GRAPH
: Monitor
23
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Kiedy modelować kolaboracje
⊲ Używać jako narzędzia do określenia Klasyfikatorów.
⊲ Do przetworzenia przypadków użycia/operacji na Klasyfikatory.
⊲ Do przekształcenia specyfikacji podsystemu na jego realizację.
Wskazówki do modelowania kolaboracyjnego
◮ Kolaboracja powinna zawierać zarówno strukturę jak zachowanie odpowiednie
dla rozważanego zadania.
◮ Rola jest pewną abstrakcją instancji, lecz nie stanowi klasy!
◮ Należy poszukiwać:
• elementów inicjujących (zewnętrznych),
• elementów obsługujących (ang. handler – elementy aktywne),
• elementów obsługiwanych (elementy pasywne)
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
24
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Uzupełnianie się modeli statycznych i dynamicznych
Przykład 3. Telefon komórkowy. Rozważmy oprogramowanie sterujące bardzo
prostym telefonem komórkowym. Telefon taki posiada przyciski do wybierania
numeru, posiada specjalny przycisk „Wyślij” do inicjowania połączenia. Posiada
także, połączeniowy hardware i software, który zbiera cyfry składające się na
numer i emituje odpowiednie tony wybierania. Ponadto, musi zawierać radio
komórkowe, które ustala połączenie z siecią komórkową. Dodatkowe składowe
modelu to mikrofon, głośnik oraz wyświetlacz.
Telefon
Modu³Po³¹czeniowy
RadioKomórkowe
*
Przycisk
Wyœwietlacz
G³oœnik
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Mikrofon
25
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
✔ pierwsza wersja bardzo dobrze odpowiada specyfikacji,
✔ relacje kompozycji ściśle odpowiadają obiektowi rzeczywistemu,
Pytania:
✘ Czy na pewno model statyczny jest prawidłowy?
✘ Jak się o tym przekonać?
✘ Jakie kryteria oceny wybrać?
⊲ Kryterium pierwsze: Zgodność modelu z obiektem rzeczywistym.
⊲ Kryterium drugie: Zgodność zachowania się modelu z obiektem rzeczywistym.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Techniki modelowania programowania
26
Diagramy sekwencji i kolaboracji
Specyfikacja dynamiki modelu
Przypadek użycia: Ustal połączenie.
1. Użytkownik wprowadza numer telefonu naciskając przyciski cyfr.
2. Dla każdej cyfry, wyświetlacz jest odświeżany.
3. Dla każdej cyfry, moduł połączeniowy generuje odpowiedni ton i emituje go
przez głośnik.
4. Użytkownik naciska przycisk „Wyślij”.
5. Radio komórkowe realizuje połączenie z siecią.
6. Na wyświetlaczu pokazuje się ikona „Zajęty”.
7. Zgromadzone cyfry numeru są wysyłane do sieci.
8. Ustalane jest połączenie z odbiorcą.
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
27
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
W jaki sposób obiekty modelu statycznego współpracują ze sobą?
:G³oœnik
3:EmitujTon(kod)
*1:Naciœnij(kod)
:Przycisk
5:Po³¹cz(nr_tel)
:Modu³Po³¹czeniowy
:RadioKomórkowe
2:WyœwietlCyfrê(kod)
6:Zajêty()
4:Wyœlij()
:Wyœwietlacz
Wyœlij:Przycisk
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
28
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Zrekonfigurowany model statyczny
G³oœnik
+EmitujTon(kod:int)
Przycisk
Modu³Po³¹czeniowy
+Naciœnij(kod:int)
+Wyœlij()
RadioKomórkowe
+Po³¹cz(nr_tel:String)
Wyœwietlacz
+WyœwietlCyfrê(kod:int)
+Zajêty()
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
29
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Problemy dodatkowe:
1. Dlaczego klasa Przycisk miałaby posiadać pełną wiedzę o klasie
ModułPołączeniowy? Powinna być to klasa, którą można by użyć w
programach, które nie używają obiektów typu ModułPołączeniowy.
<<nterface>>
Przycisk
Przycisk
+PrzyciskNaciœniêty()
AdapterPrzyciskuWyœlij
AdapterPrzyciskuCyfry
Modu³Po³¹czeniowy
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
30
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
2. Klasa Wyświetlacz jest celem asocjacji od dwóch różnych klientów (tzn.
ModułuPołączeniowego i RadiaKomórkowego). Oznacza to istnienie
nieoczekiwanej ukrytej zależności pomiędzy tymi klientami.
Modu³Po³¹czeniowy
RadioKomórkowe
WyswietlaczMP
WyœwietlaczRK
+WyœwietlCyfrê(kod:int)
+Zajêty()
Wyœwietlacz
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
31
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Zrekonfigurowany model kolaboracji
:AdapterPrzyciskuC
*1: kod:=Przycisk
Naciœniêty()
1.1:Naciœnij(kod)
Cyfra:Przycisk
:G³oœnik
3:EmitujTon(kod)
5:Po³¹cz(nr_tel)
:Modu³Po³¹czeniowy
:RadioKomórkowe
4.1:Wyœlij()
Wyœlij:Przycisk
2:WyœwietlCyfrê(kod)
4:Przycisk
Naciœniêty()
ekran:WyœwietlaczMP
6:Zajêty()
ekran:WyœwietlaczRK
:AdapterPrzyciskuW
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
Techniki modelowania programowania
32
Diagramy sekwencji i kolaboracji
Podsumowanie
⊲ W pierwszej iteracji:
◮ utworzone modele są tylko domysłem,
◮ model statyczny jest bardzo słabym przybliżeniem systemu,
◮ widoczna dysharmonia pomiędzy modelem statycznym i dynamicznym.
⊲ W drugiej iteracji:
◮ rozdźwięk pomiędzy modelami został częściowo usunięty,
◮ nastąpiła eksploracja interesujących szczegółów projektu.
⊲ Proces iteracyjny powinien trwać, aż projektant zsynchronizuje oba modele.
⊲ Modele statyczne są niezbędne, ale powinny zostać wzmocnione analizą
dynamiki systemu.
◮ statyczne relacje są bezpośrednim wynikiem dynamicznych potrzeb
aplikacji,
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
33
Techniki modelowania programowania
Diagramy sekwencji i kolaboracji
Wykrywanie „wyścigu zdarzeń”
:AdapterPrzycisku
Wyœlij
:Modu³Po³¹czeniowy
:RadioKomórkowe
Po³_przychodz¹ce()
:G³oœnik
Dzwonek()
Wyœlij()
OdpowiedŸ()
:AdapterPrzycisku
Wyœlij
:Modu³Po³¹czeniowy
Wyœlij()
:RadioKomórkowe
:G³oœnik
Dzwonek()
Po³_przychodz¹ce()
Po³¹cz(nr_tel)
Instytut Sterowania i Systemów Informatycznych
Uniwersytet Zielonogórski
34