Literatura Marek Kisiel-Dorohinicki doroh@agh.edu.pl Brett D. McLaughlin, Gary Pollice, David West Head First Object-Oriented Analysis and Design Martin Fowler UML Distilled ( UML w kropelce ) Grady Booch, James Rumbaugh, Ivar Jacobson UML przewodnik użytkownika James Martin, James J. Odell Podstawy metod obiektowych (c) 1997 2010 AGH Plan Ewolucja technik wytwarzania oprogramowania reprezentacja programów komputerowych przerzucenie ciężaru tłumaczenia opisu problemu i jego rozwiazania na system komputerowy zwiększa efektywność programowania planowanie procesu i produktu przyjęcie określonej metodyki ułatwia opanowanie złożoności tworzonego systemu
Modelowanie model = uproszczona reprezentacja czegoś odzwierciedla zdolność do abstrakcji (pomijania nieistotnych szczegółow) pomaga lepiej zrozumieć złożoność problemu lub jego rozwiazania (systemu) ułatwia prezentację, dokumentację i specyfikację Zasady modelowania 1. wybór modelu ma decydujace znaczenie na sposób podejścia do problemu i jego rozwiazania 2. każdy model może być wyrażony na różnych poziomach szczegółowości 3. pojedynczy model rzadko kiedy jest wystarczajacy najlepsze zrozumienie daje możliwie niewiele możliwie niezależnych modeli 4. najlepsze modele to te, które dobrze odzwierciedlaja rzeczywistość opanowywanie złożoności problemu opiera się na powszechnie (choć nie zawsze świadomie) stosowanych zasadach: rozróżnianie i opisywanie poszczególnych obiektów ich cech i możliwości wykorzystania klasyfikowanie obiektów i definiowanie pojęć określanie relacji między obiektami (powiazania) znajdowanie zależności między pojęciami (skojarzenie) i wyprowadzanie nowych (generalizacja) Istota modelowania obiektowego hermetyzacja stanu i zachowań jednostek które ze soba współpracuja poprzez wykorzystanie udostępnianych usług w realizacji określonych scenariuszy działania Dwie warstwy modelowania: 1. obiekty i relacje między nimi (model wybranej sytuacji migawka z życia systemu) 2. pojęcia i relacje między nimi (model dziedziny ogólna struktura systemu)
Karty CRC Poszerzona karta CRC Class name Some responsibility Some collaborator modelowanie kart CRC to prosta technika analizy obiektowej zorientowane na pracę zespołowa oddaja charakter współpracy klas/obiektów w realizacji wymaganych scenariuszy działania Class name Super Classes: Super class name Description: some class description Attributes: Description Some attribute Some attribute description Some responsibility Some collaborator Sesja modelowania kart CRC 1. Wybór scenariusza (typowy przebieg przypadku użycia) 2. Wybór wyjściowego zestawu klas (np. na podstawie obiektów scenariusza) 3. Analiza scenariusza i poszukiwanie, klas które moga dostarczyć wymaganych zobowiazań 4. Poszukiwanie współpracowników dla klas, które nie moga w pełni zrealizować wymaganych zobowiazań 5. Współpracujace klasy układamy blisko siebie, często używane na środku Przykładowy scenariusz Wystaw fakture 1. wyszukuje klienta, na ktorego ma byc wystawiona faktura wg ustalonych kryteriow 2. tworzy fakture dla danego klienta 3.Na stworzonej fakturze sprzedawca odnotowuje zakupione produkty 4. wylicza ewentualny rabat, ktory zalezy od obrotow danego klienta (czyli wartosc poprzednich faktur)
Modelowanie CRC krok #1 Modelowanie CRC krok #2 Tworzy nowa fakture dla danego klienta Dodaje nowy produkt do faktury Sprawdza czy klient spelnia okreslone kryteria Rabat Rabat Modelowanie CRC krok #3 Modelowanie CRC krok #4 Tworzy nowa fakture dla danego klienta Dodaje nowa pozycje Sprawdza czy klient spelnia okreslone kryteria dane o kliencie (np., NIP) Przechowuje informacje o ilosci danego produktu dane o produkcie (, cena) Rabat Tworzy nowa fakture dla danego klienta Dodaje nowa pozycje Oblicza rabat Oblicza wartosc dane o kliencie (np., NIP) Oblicza obroty Dodanie faktury do historii Przechowuje informacje o ilosci danego produktu Oblicza wartosc dane o produkcie (, cena)
modelowanie wymagań diagramy przypadków użycia modelowanie struktury diagramy klas modelowanie zachowań (obiektów) diagramy interakcji (sekwencji, komunikacji) Modelowanie wymagań przypadki użycia Uzytkownik system aukcyjny Licytuj <<Extend>> Wyszukaj przedmiot Sprzedajacy Wystaw komentarz Wystaw przedmiot Modelowanie struktury diagram klas Modelowanie zachowań diagram sekwencji Komentarz czy_pozytywny opis Kategoria opis Sprzedajacy punkty * Przedmiot opis liczba_sztuk 1 wystawia wystawiony na 1 Uzytkownik dane_osobowe data_rejestracji 0..1 Aukcja data_rozpoczecia czas_trwania cena_wywolawcza cena_minimalna {ordered} 1 licytuje * Oferta kwota liczba_sztuk 1: wystawkomentarz : Aukcja : Przedmiot : Sprzedajacy <<create>> 2: new : Komentarz 3: ktowystawil 4: dodajkomentarz 5: zaktualizujpunkty
Modelowanie zachowań diagram komunikacji : Przedmiot 5: zaktualizujpunkty dziedzina: działalność firmy handlowej (sklepu) przypadek użycia: wystawienie dokumentu sprzedaży (faktury) 3: ktowystawil 1: wystawkomentarz 4: dodajkomentarz : Aukcja : Sprzedajacy <<create>> 2: new : Komentarz Przypadek użycia Współdziałanie obiektów w realizacji przypadku użycia : : wybrany : : : Wystaw fakture 1: szukaj() 2: new(klient) nowa : Klasy loop 3: szukaj() 4: new(produkt,faktura) nowa : adres NIP obliczobroty() numer data_sprzedazy forma_platnosci rabat obliczwartosc() obliczpodatek() obliczrabat() ilosc obliczwartosc() obliczpodatek() dotyczy cena stawka_podatku opt 6: obliczrabat 5: dodaj 7: obliczobroty() loop loop 8: obliczwartosc() 9: obliczwartosc()