WYKŁAD IX (25 kwietnia)
Klasa - zbiór obiektów o takiej samej strukturze i takich samych zachowaniach.
Klasa - abstrakcja, czyli uogólnienie, które reprezentuje cechy obiektów, gdzie przez cechy rozumiemy strukturę i cechy. Przy czym istnieje ona niezależnie od obiektu.
Każda klasa dzieli się na dwie warstwy:
- warstwę zewnętrzną
- warstwę wewnętrzną
Zewnętrzna:
- interfejs, definiuje wzorce zachowanie się klasy w stosunku do innych klas, głównie przez zadeklarowanie zbioru operacji, dotyczących obiektu tej klasy
- określa sposób zachowania obiektów przynależnych do danej klasy
Wszystkie obiekty danej klasy mają dostęp do wszystkich operacji (usług tej klasy)
Pełne prawa dostępu do wszystkich operacji warstw zewn. Danej klasy, mają tylko obiekty tej klasy.
Wewnętrzna:
- zawiera opis w formie algorytmicznej sposoby realizacji operacji które są wywoływane w warstwie zewn.
- zdefiniowane struktury klas
4 WARUNKI KONIECZNE OBIEKTOWOŚCI
1. Abstrakcja
2. Modularność
3. Hierarchizacja
4. Enkapsulacja (hermetyzacja)
1. Abstrakcja jako uogólniania, pojęcie definiowane zgodnie z zasadą poziomów Dikstry.
Polega na podziale systemu na poziomy tworzące pewne hierarchie. Każdy utworzony poziom stanowi uogólniony model systemu w postaci powiązanych ze sobą elementów składowych opisujących jedynie istotne (ważne) dla tego poziomu aspekty systemu,
a pomijający wszystkie nieważne aspekty.
W metodach obiektowych abstrakcje zdefiniujemy jako uogólniony model obiektu bądź klasy opisujący istotne z pewnego punktu widzenia cechy tego obiektu, natomiast pomijamy cechy nieistotne.
2 rodzaje abstrakcji
- kompozycyjna
- uogólniona
Kompozycyjna - zbiór pewnych obiektów , który tworzy nową jakość
Związek kompozycji bądź agregacji
Związek całość - część
Uogólniająca - polega na utworzeniu nowej jakości na podstawie cech obiektu należących do pewnego zbioru charakteryzującej się na cechami wspólnymi dla tych obiektów.
Przez związek uogólnienia będzie reprezentowany związek generalizacji i specjalizacji.
2. Modularność - zasady modularności były różnie(?) respektowane w modelu strukturalnym.
Moduły muszą być bardzo silnie spójne, natomiast powinny być bardzo luźno i słabo powiązane ze sobą.
Modularność w modelu strukturalnym doprowadziła drogą dekompozycji proces do poziomu funkcji elementarnych.
????
3. Hierarchizacja
Wywodzi się od poziomu abstrakcji Dijkstry.
W modułach obiektowych system można rozdzielić na prawie dowolne struktury zbudowane ze składników reprezentujących obiekty i klasy.
Wyróżniamy hierarchie kompozycyjną i uogólniającą.
4. Enkapsulacja
Staramy się schować, ukryć w module zarówno struktury danych, jak i sposób realizacji funkcji.
Enkapsulacja umożliwia przede wszystkim praktyczne zrealizowanie koncepcji abstrakcji, gdyż inne moduły widzą jedynie to co jest dla nich ważne i potrzebne we wzajemnej współpracy.
Aby sfinalizować prawa dostępu do warstwy zewnętrznej do zbioru ??? danej, to klasy może być dzielony na 3 obszary:
- obszar publiczny (fragment warstwy wewn. jest dostępny dla wszystkich innych klas.
- obszar chroniony (fragment interfejsu danej klasy nie jest widoczny przez inny klasy z wyjątkiem ich
-
UML
Model pojęciowy UML
Składa się z bloków konstrukcyjnych.
BLOKI KONSTRUKCYJNE
ELEMNTY DIAGRAMY
podstawowe składniki każdego schematy grupujące istotne elementy
systemu ZWIĄZKI
(połączenia pomiędzy elementami)
RODZAJE ELEMENTÓW
-strukturalne
- czynnościowe
- grupujące
- komentujące
RODZAJE ZWIĄZKÓW
-zależność
- powiązanie
- uogólnienie
- realizacja
DIAGRAMY - grafy w których wierzchołkami są elementy, natomiast krawędzie to związki.
Elementy strukturalne
- klasa
- interfejs
- kooperacja
- przypadek użycia - ciąg akcji wykonywanych przez system, ciąg instrukcji między systemem a aktorem, wykonywanych w celu dostarczenia aktorowi bądź aktorom pewnego godnego uwagi wyniku, zastępuje pojecie funkcji w projektowaniu strukturalnym
- klasa aktywna
- komponent - programy, dokumenty, pliki, biblioteki, funkcje, klasy, witryny, tabele, wymienne części systemu, wymienne części oprogramowania
- węzeł - struktury sprzętowe zaprojektowanego systemu
Elementy czynnościowe
- instrukcje - współdziałanie, zachowane polegające na wymianie komunikatów między obiektami, klasami, odbywa się w pewnym otoczeniu, w ściśle określonym celu
nazwa komunikatu
- maszyny stanowe - diagram przejść stanów, ciąg możliwych stanów w jakie może przejść obiekt w zależności od zdarzeń
Związki
- zależności - związek znaczeniowy pomiędzy elementami takimi , że zmiany wykonane w elemencie niezależnym mogą mieć wpływ na znaczenie elementu zależnego.
Do powiązań należy również agregacja i kompozycja.
- uogólnienie
Diagramy będące w standardzie UMLa:
Diagram modelowania wymagań użytkownika
- diagram przypadków użycia (USE CASE)
Diagramy opisujące statyczne struktury danych
- diagram klas
- diagram obiektów, diagram pakietu
Diagramy dynamiczne
- diagram stanów
- diagram aktywności
- diagram sekwencji
- diagram współpracy
Diagramy fizyczne
- diagramy komponentów
- diagramy struktury sprzętowej