Podejście obiektowe
Definiowanie obiektów
Na podstawie ZROZUMIENIA opisu przypadków użycia - ale nie automatycznie
use case zwykle nie odpowiada klasie -często funkcji
Struktura klas nie wynika ze struktury przypadków użycia
Opis struktury klas nie powinien zależeć od języka programowania w którym zostanie zaimplementowany
Użycie abstrakcyjnych zależności i powiązań
Object Modeling Technique
Pojęcie Obiektu
Konglomerat danych i funkcji
Zapobieganie użyciu błędnych struktur danych z funkcjami
Umożliwia “dziedziczenie” kodu
Rozbudowa skomplikowanego kodu bez “zrozumienia”
Ukrycie kodu wraz z możliwością modyfikacji kodu
Interface i Implementacja
Rozdział obiektów na:
Interface
publiczne zmienne
publiczne typy
publiczne metody (tylko nagłówek)
Implementacja
ukryta
kod funkcji publicznych
funkcje prywatne
Analiza a obiekty
Głównie interface
publiczne zmienne (Atrybuty)
publiczne funkcje (Operacje)
Związki miedzy obiektami (Associations)
interface
wpływa na implementację
konieczność nawigacji między klasami
różnice zależne od języka
Elementy diagramu klas
Klasa
Atrybuty (Attributes)
Operacje (Operations)
Dziedziczenie (Generalization)
Związek (Association)
Ilość elementów z dowiązanych
Ilość elementów dowiązywanych
Nawigacja
Przykład Narzędzi
UML Umbrello
Diagramy
Use case
Class
Graficzna reprezentacja
Generowanie kodu
Ograniczenia - brak kodowania związków
Diagram Klas
System zamówień
Wygenerowany kod klasy klient
import Klient;
/**
* Class Klient indywidualny
*
*/
public class Klient indywidualny extends Klient {
// Fields
// Methods
// Constructors
// Accessor Methods
// Operations
}
Klasa Zamówienie
import java.util.*;
/** Class Zamówienie */
public class Zamówienie {
private String data = "today";
private int wartość;
private String getData ( ) { return data; }
/** Set the value of data */ private void setData ( String value ) { data = value }
/** Get the value of wartość @return the value of wartość */
private int getWartość ( ) { return wartość; }
private void setWartość ( int value ) { wartość = value; }
public send ( ) {
}
}