Programowanie komponentowe.pdf

(236 KB) Pobierz
Programowanie komponentowe
06-03-2010
Wstęp
Programowanie komponentowe
Programowanie komponentowe ( PK) jest procesem
tworzenie aplikacji (systemu informatycznego) poprzez
„sklejanie” jej z gotowych, odpowiednio przygotowanych,
wymiennych komponentów programowych.
Budowanie aplikacji z komponentów jest często
porównywane do budowania (żargonowo klejenia) układu
(urządzenia) elektronicznego z gotowych, seryjnych
komponentów elektronicznych (scalaków, tranzystorów,
przełączników).
Zarówno w jednym jak i w drugim przypadku, komponenty
muszą być przystosowane do tego „klejenia” (wykonane
według określonych standardów).
Wykład 1
Komponent - przykład
Inny przykład - budowa komputera
Sprawny samochód zawiera silnik
1
277346335.004.png 277346335.005.png 277346335.006.png
06-03-2010
Komponent
Komponent
Komponent jest
• podstawową jednostką oprogramowania
• z kontraktowo (deklaratywnie) opisanymi interfejsami, i
• podanymi wprost zależnościami.
Komponenty nie istnieją w odosobnieniu –
aby wykonywać swoje funkcje, muszą ze sobą
współpracować.
Komponent jest podstawowym elementem, z którego
budowane jest oprogramowanie, posiada opisane
deklaratywnie interfejsy, a wszystkie wymagane przez
niego zależności są podane wprost. Dzięki temu możliwe
jest przekazanie go do wdrożenia osobie, która nie jest
jego twórcą.
Często
do
opisu
komponentów
wykorzystywany jest język XML
PK odwołuje się do …
Programowanie komponentowe
wykorzystuje
Hermetyzacja
Abstrakcja
Powtórne użycie kodu
Programowanie komponentowe nie posiada
zupełnie nowych atrybutów w stosunku do
programowania obiektowego, a jedynie
konsekwentnie i w pełni wykorzystuje cechy
obiektowości.
2
277346335.007.png
06-03-2010
Komponenty i obiekty
Komponenty i obiekty
Komponent musi odpowiadać specyfikacjom
określonym dla danej technologii. Sposób
implementacji komponentu nie jest narzucany.
Ponieważ idee programowania komponentowego
i programowania obiektowego w dużym stopniu
pokrywają się, komponenty są zwykle
definiowane poprzez klasy.
Klasy definiujące komponenty muszą spełniać
wymagania określone w specyfikacji, np.
zapewnić serializację, mechanizmy łączenia i
komunikacji, samoinstalację itp.
W programowaniu obiektowym można
zamaskować błędy popełnione na etapie
projektowania obiektów, np. obniżając ich
spójność
Komponent wykorzystuje w pełni i
konsekwentnie cechy obiektowości
Dobrze zaprojektowany obiekt może być
komponentem
Komponent i obiekty
Który obiekt może być komponentem
deklaracja oferowanych interfejsów i żądanych
zależności
Podstawowym warunkiem jest możliwość użycia go przez inne
elementy programu (przede wszystkim inne komponenty),
przy czym wykorzystanie komponentu nie wymaga
modyfikacji jego kodu źródłowego . Aby możliwe było
przekazanie mu z zewnątrz wymaganych zależności, muszą
one być podane w pełni i jawnie.
Dzięki nim komponent może być traktowany jako
zamknięta całość, która oferuje usługi i żąda ich od
zewnętrznych komponentów, jednocześnie
ukrywając swoją strukturę wewnętrzną i nie
wnikając w budowę innych. To czyni z komponentu
jednostkę bardziej abstrakcyjną niż obiekt.
Z drugiej strony komponent podobnie specyfikuje funkcje
oferowane przez siebie, a specyfikacja ta jest wystarczającą
podstawą do jego wykorzystania. Integracja komponentu z
systemem powinna przebiegać bez nadmiernego nakładu
pracy, np. wyłącznie poprzez jego konfigurację .
3
277346335.001.png
06-03-2010
Własności komponentu
Zastępowalność
Komponent nie sprawuje kontroli nad sobą
Rola kontenera – obiekt zarządzający
komponentami – steruje ich cyklem życia,
zależnościami i procesem tworzenia
Podstawowym celem praktycznym PK, jest
stworzenie warunków do łatwej zastępowalności
komponentów.
Systemy informatyczne podlegają ciągłym
zmianom. Jest to proces kosztowny i często
naruszający niezawodność oprogramowania.
Możliwość zastąpienia komponentu przez jego
nową wersję lub zupełnie inną implementację,
bez potrzeby rozmontowywania całego systemu,
jest niezwykle atrakcyjna z praktycznego punktu
widzenia.
Komponent - składowe
Cechy komponentu
Metody, właściwości, zdarzenia, …
Dziedziczenie, polimorfizm, …
Środowisko (platformy) pod który jest
dedykowany
Obsługa błędów standardowych i
niestandardowych, try-catch
Dokumentacja – sposób użycia, nazewnictwo
zmiennych, funkcji
Instalacja
Kod otwarty, zamknięty, licencja, cena
Komponent jest wyizolowaną (autonomiczną)
jednostką programową, która zgodnie z
przyjętymi standardami:
zawiera dane i metody realizujące operacje na
tych danych –niezależnie od otoczenia
(hermetyzacja)
udostępnia zestaw oferowanych usług poprzez
interfejs programowy.
zapewnia komunikację z innymi komponentami.
zapewnia „utrwalanie” i odtwarzanie stanu
wewnętrznego.
4
277346335.002.png
06-03-2010
Kryteria spełniane przez komponent:
Programowanie komponentowe
Może być użyty przez inne elementy programu
Jego użycie nie wymaga interwencji programisty
Posiada pełną specyfikację zależności
Specyfikuje oferowaną przez siebie
funkcjonalność
Może być użyty wyłącznie na podstawie tej
specyfikacji
Można go złożyć z innymi komponentami
Integruje się z systemem w sposób szybki i
bezproblemowy
Coraz większe znaczenie w zakresie budowania
nowoczesnego oprogramowania
Strukturalizacja procesów budowy
oprogramowania
Redukcja kosztów, skrócenie czasu wytwarzania
Wynikiem ewolucji podejścia obiektowego do
projektowania i implementacji aplikacji w
wyposażeniu obiektów zapewniające
predefiniowane usługi
Jakie to usługi?
Zaleta komponentów
Zdalna komunikacja, Internet, FTP, Mail,
WWW, Sockety
Transakcyjność, bezpieczeństwo, trwałość
danych, szyfrowanie, IO
Obsługa baz danych
Interfejs użytkownika
Prezentacja danych, raporty, wykresy
REDUKCJA ZŁOŻONOŚCI BUDOWANEGO
OPROGRAMOWANIA
Potrzebne: INTERFEJSY
ELEMINACJA BŁĘDÓW, KORZYSTANIE Z
PRZETESTOWANEGO I SPRAWDZONEGO
ROZWIĄZANIA
5
277346335.003.png
Zgłoś jeśli naruszono regulamin