Analiza i projektowanie aplikacji 3 •4.Modelowanie struktury
Transkrypt
Analiza i projektowanie aplikacji 3 •4.Modelowanie struktury
Analiza i projektowanie aplikacji 3 • 4.Modelowanie struktury. Diagram klas. • • 5.Strukturalizowanie modelu PU. Model systemowych PU. • • 6.Metodyka ZP/RUP o modelowaniu biznesowym i wymaganiach do SI. • 1 Obiekty i klasy Obiekt: byt o dobrze określonych granicach, który ma tożsamość, cechy statyczne (wartości atrybutów i związki z innymi obiektami), które określają jego stan oraz cechy dynamiczne, które określają jego zachowanie. Obiekt łączy w sobie dane i funkcje. rekućKonto:Konto numer:231 właściciel:”Ludmiła Rekuć” saldo: 300.00 :Student indeks:122231 nazwisko: Kowalski imie: Jan księgowość 2 Obiekty i klasy Klasa: reprezentacja wspólnych cech grupy obiektów, które mają takie same właściwości, stany, zachowanie, związki i znaczenie. Obiekt jest egzemplarzem (instancją, wystąpieniem, urzeczywistnieniem) klasy. Konto numer:int właściciel:string saldo: double depozyt() wypłata() Nazwa klasy jest obowiązkowa Sekcja atrybutów (opcjonalna). Atrybut: nazwana właściwość związana z dziedziną wartości. Uwaga! Wartość atrybutu może byc typu prostego, być obiektem innej lub tej samej klasy, być zbiorem obiektów. Sekcja operacji (opcjonalna). Operacja: nazwana usługa realizowana przez obiekt. 3 Identyfikacja klas Nazw a atrybut1 atrybut2 atrybut3 oper1() oper2() Dziedzina wiedzy rzeczowniki rzeczowniki - dopełniacze. czasowniki. 4 Związki klas - powiązanie Powiązanie(asocjacja) Zespół 0..1 członek 2..* Osoba Powiązanie klas wskazuje na związek między ich obiektami • oznaczane jest linią ciągłą; • może mieć nazwę z ewentualnie dodanym kierunkiem odczytu; • ma końce (dwa lub więcej) wskazujące na klasy; • końce mogą być oznaczone nazwami ról, w których występują w związku obiekty danych klas; • na końcu związku może być pokazana liczebność (krotność), która wskazuje, ile obiektów danej klasy może być związana z jednym obiektem po drugiej stronie powiązania (tylko w związkach binarnych, wiążących dwie klasy). 5 Powiązanie Oznaczenie liczebności: ”...z jednym obiektem danej klasy może być związany:.” 0..1 jeden lub żaden, opcjonalne powiązanie; 0..* jeden, wiele lub żaden, * wiele lub żaden, wskazuje na niedokładność zbadania; 1..* jeden lub wiele; 1 tylko jeden; Brak wiele lub żaden, wskazuje na niedokładność zbadania;(w UML1.5 - tylko jeden). 1 „od” * 1 „do” * Miasto Trasa 6 Klasa powiązania Firma * 1..* pracodawca Osoba pracownik Zatrudnienie wynagrodzenie zawrzyjUmowę Powiązanie, które ma własne atrybuty i/lub operacje może być modelowane jako klasa. 7 Klasa powiązania Klasa powiązania Student zalicza * * Kurs 1 klasa powiązania Zaliczenie ocena * 1 Indeks 1 8 Klasa zwykła zamiast klasy powiązania: /pracuje dla Firma Pracodawca 1 Osoba Pracownik 1 * * Stanowisko 1.. * Podwładny 0..1 Kierownik powiązanie zwrotne Kieruje 9 Agregacja: związek ” „całość składa się z części lub “właściciel i jego własność” Zdjęcie * * Osoba 1 * DowódTożsamości Agregacja słaba (współdzielona) - pewien obiekt może należeć do wielu innych, jest częścią wielu, oznacza się niewypełnionym rombem po stronie "całości”. Agregacja całkowita - kompozycja - wyłączna własność całości nad częścią; czas życia "części" nie może być dłuższy niż czas życia "całości", oznacza się wypełnionym czarnym rombem po stronie "całości"; 10 Agregacja, przykłady * Trasa {ordered} 1 Faktura 2..* 1..* Przystanek PozycjaFaktury 11 Uogólnienie (generalizacja/specjalizacja) Osoba * ◄uczy * Student Wykładowca Uogólnienie: związek między klasą bardziej ogólną (nadklasą) a bardziej specyficzną (podklasą). Podklasa dziedziczy cechy nadklasy: atrybuty operacje związki ograniczenia Podklasy mogą: - dodać nowe cechy do odziedziczonych; - zmienić odziedziczone operacje zapewniając inną „treść” operacji przy zachowaniu tego samego nagłówka. 12 Uogólnienie przykład Zawodnik nazwisko waga wysokość podajPiłkę() strzelKosza() Obrońca róbPrzechwyt( ) róbAsystę() Środkowy Skrzydłowy zróbWsad() Źródło: J.Schmuller „UML dla każdego”, HELION, 2003, str. 63. 13 Ograniczenia (w nawiasach klamrowych) dodatkowe wymagania, które nie udaje się wyrazić za pomocą standardowych konstrukcji diagramu. Mogą one dotyczyć operacji, związku miedzy atrybutami, wartości atrybutów, powiązań i tp. Konto * 1 Osoba * członek Zespół {XOR} {podzbiór} * 1 Osoba 1 szef Firma szef jest jednym z członków zespołu Konto jest związane z osobą lub z firmą {XOR} oznacza, że wystąpienia Faktura nr data 1..* PozycjaFaktury {ordered} lp podstawa symbol ilość 1 związków są alternatywne. {Ordered} - na końcu powiązania oznacza, że jeden obiekt danej klasy może być związany z kilkoma obiektami klasy docelowej i obiekty te są uporządkowane. 14 Przykład diagramu klas Egzemplarz * Umiejscowienie 1 nr 1..* Temat nazwa opis TypDokumentu * 1 * 0..1 poprzednik Dokument tytuł autor dataWydania zawartość * jest wersją nazwa * * zawier a * 15 Diagram obiektów Na diagramie klas – klasy i ich związki. Na diagramie obiektów – instancje klas i ich związek w pewnej chwili czasowej. Osoba Rekuć:Osoba © Dr inż. Ludmiła Rekuć 1..* pracownik 0..* pracodawca Firma PWr:Firma 1616 Diagram klas - przykład Przedsiębiorstwo 1..* 0..1 Dział kierownik Osoba 0..1 0..* jest nadrzędnym dla► © Dr inż. Ludmiła Rekuć 1..* AdresKontaktowy 1717 Diagram obiektów PPP SA:Przedsiębiorstwo SPK:Dział PPK:Dział nazwa = "Sprzedaż" nazwa = "Produkcja" SP1:Dział nazwa = "Sprzedaż internetowa" :Osoba kierownik nazwisko = "Kowal" ID = 4389 stanowisko = "Kierownik sprzedaży" :AdresyKontaktowe adres = "Kluczowa 10" Diagram przedstawia obiekty i ich wiązania w konkretnej chwili. © Dr inż. Ludmiła Rekuć 18 18 Strukturalizacja modelu PU Uogólnienie (generalizacja) między aktorami - związek między aktorem bardziej ogólnym (rodzicem) a aktorem bardziej wyspecjalizowanym (dzieckiem). Dziecko dziedziczy role ( a więc i powiązania z PU) rodzica. Dr inż. Ludmiła Rekuć 19 19 Za twi e rd ze n i e o ce n ko ń co wych « e xte n d » Pracow nik dydaktyczny « e xte n d » P rze j rze n i e p l a n u za j ę ć z za rza d za n i e m o ce n a m i Wp ro wa d ze n i e kryte ri u w o b l i cza n i a o ce n y ko ń co we j M o d yfi ka cj a sp ra wd zi a n u Upraw niony pracow nik dydaktyczny Wp ro wa d ze n i e o ce n czą stko wych Do d a n i e sp ra wd zi a n u P rze j rze n i e p l a n u za j ę ć S p ra wd ze n i e o ce n z za j ę ć Student Dr inż. Ludmiła Rekuć Wykorzystane źródło: Śmiałek M. Zrozumieć UML2.0 Metody modelowania obiektowego HELION, 2005. 20 20 Strukturalizacja Przypadków Użycia (poszukiwanie i wydzielenie pewnych struktur – fragmentów PU) Są trzy główne powody strukturalizacji PU: ułatwienie zrozumienia; ułatwienie wielokrotnego użycia specyfikacji PU; ułatwienie utrzymania modelu. Kiedy należy zająć się strukturalizacją PU? Najlepiej zrobić to po szczegółowym opisaniu możliwych przebiegów PU i ich zrozumieniu. W strukturalizacji wykorzystuje się następujące rodzaje związków PU: zależności: zawierania rozszerzenia uogólnienia (generalizacji/specjalizacji). Dr inż. Ludmiła Rekuć 21 21 Uogólnienie (generalizacja) między PU: dwa lub więcej PU są specjalizacjami abstrakcyjnego, ogólnego PU. Należy skorzystać z uogólnienia, jeśli prowadzi to do uproszczenia modelu, a nie do jego skomplikowania! PU-dziecko: dziedziczy wszystkie cechy rodzica (związki, warunki wstępne i końcowe, kroki podstawowego i alternatywnego przebiegu); może mieć dodane inne związki, warunki wstępne i końcowe, kroki podstawowego i alternatywnego przebiegu zdarzeń; może zamienić cechy odziedziczone własnymi specyficznymi (za wyjątkiem związków). Dr inż. Ludmiła Rekuć 22 22 Jak opisywać na diagramie uogólnione PU? UML tego nie określa. Znajdź Produkt Znajdź Książkę Znajdź CD Styl opisu może być określony wewnętrznym standardem firmy lub zespołu twórców systemu. W przykładzie zastosowano zasadę: jeśli krok zmieniono - został on wyróźniony poprzez napisanie kursywą; jeśli krok dodano: został on wyróźniony poprzez wytłuszczenie. Dr inż. Ludmiła Rekuć 23 23 Przypadek użycia: ZnajdźProdukt Przypadek użycia : ZnajdźKsiążkę ID: PU11 ID: PU67 ISA PU11 Aktorzy: Klient Aktorzy: Klient Warunek wstępny: Przebieg zdarzeń: 1. Klient wybiera "Znajdź produkt" 2. System pyta o kryteria wyszukiwania. 3. Klient wprowadza kryteria. 4. System wyszukuje produkty. 5. Jeśli system znajduje, to 5.1 System wyświetla listę produktów 6. W przeciwnym przypadku 6.1 System komunikuje, że nie znaleziono. Warunki końcowe: Warunek wstępny: Przebieg zdarzeń: 1.Klient wybiera "Znajdź książkę" 2.System pyta o kryteria wyszukiwania książki: autora, tytul, ISBN lub temat. 3. Klient wprowadza kryteria. 4. System wyszukuje książki. 5. Jeśli system znajduje, to 5.1 System wyświetla listę produktów 6. W przeciwnym przypadku 6.1 System kom unikuje, że nie znaleziono. Warunki końcowe: Alternatywne przebiegi: Dr inż. Ludmiła Rekuć 24 24 Zależność <<zawiera>> ( ang. <<include>>) między PU Jeśli w PU jest taki fragment przebiegu, że: do zrozumienia PU nie są istotne szczegóły przebiegu tego fragmentu, ważny jest jego wynik, nie sposób realizacji, lub jeśli stanowi on wspólny fragment wielu przypadków użycia, można ten fragment wyodrębnić w osobny podprzypadek użycia. Wyodrębniona część jawnie jest częścią PU, zawiera się w nim. Używamy w tym przypadku związku zależności <<include>>. Zależność <<include>> oznacza, że operacje "zawieranego" podprzypadku użycia (strzałka na niego wskazuje) są realizowane zawsze w przypadku zawierającym. Notacja: przerywana linia ze strzałką i tekstem <<include>> (lub spolszczonym <<zawiera>>). Dr inż. Ludmiła Rekuć 25 25 Zależność zawierania się między PU na diagramie i w opisach: Zamów Produkt <<include>> Przypadek użycia: ZamówProdukt Znajdź Produkt Przypadek użycia: ZnadźProdukt ID: oznaczeniePU11 ID: oznaczeniePU16 Aktorzy: Branżysta Aktorzy: Branżysta Warunek wstępny: zalogowany w systemie Warunek wstępny: Przebieg zdarzeń: 1.... 2.include (ZnajdźProdukt) 3 Przebieg zdarzeń: 1.... Dr inż. Ludmiła Rekuć ... 26 26 Związek zależności <<rozszerza>> ( ang. <<extend>>) między PU Jeśli fragment PU jest opcjonalny i nie jest konieczny do zrozumienia głównego celu PU, można ten fragment wydzielić w osobny podPU i uprościć tym samym strukturę podstawowego. W tym przypadku używamy związku <<extend>>. Podstawowy PU "nic nie wie" o możliwym jego rozszerzeniu. Rozszerzający podPU musi się "powołać" na miejsce w podstawowym PU na tzw. punkt rozszerzenia. Miejsce to jest oznaczone, ale nie ponumerowane, jest między ponumierowanymi krokami! Dr inż. Ludmiła Rekuć 27 27 Zależność rozszerzania między PU na diagramie i w opisach: Zwrot Ksiązki punkt rozszerzenia przeterminowany <<extend>> Ukaranie grzywną (przeterminowany) Przypadek użycia : ZwrotKsiążki ID: PU11 Rozszerzający PU: UkaranieGrzywną Aktorzy: Bibliotekarz ID: PU16 Warunek wstępny: Dołączany segment 1: Jeżeli książka przeterminowana: 1. Bibliotekarz wybiera rejestracje zapłaty grzywny. 2. System wyświetla formularz. 3. Bibliotekarz rejestruje opłatę grzywny. ... Przebieg zdarzeń: 1. Bibliotekarz wprowadza ID Czytelnika. 2. System wyświetla listę wypożyczonych książek. 3. Bibliotekarz wskazuje książkę zwracaną. <ukaranie grzywną> 4. Bibliotekarz rejestruje zwrot. ... Dr inż. Ludmiła Rekuć 28 28 Strukturalizacja PU PU-1 Przyjmij zamówienie Aktorzy Sprzedawca Warunek wstępny: Podstawowy przebieg zdarzeń: 1. PU rozpoczyna Sprzedawca wybierając odpowiednią opcję. 2. System prezentuje formularz zamówienia. 3. Sprzedawca podaje dane pozwalające zidentyfikować klienta (PESEL lub Nazwisko/Nazwę firmy). 4. System wypełnia formularz zamówienia danymi klienta. 5. Sprzedawca wprowadza pozycje zamówienia. W tym celu dla każdej zamawianej pozycji: 5.1 podaje symbol (z indeksu) lub nazwę produktu. 5.2 system wyszukuje produkt i podaje jego stan; 5.3 sprzedawca potwierdza wybór i podaje ilość; 5.4 system prezentuje wypełnioną pozycję i umożliwia przejście do następnej lub zakończenie. 6. Sprzedawca potwierdza zamówienie. 7. System zapamiętuje zamówienie, rezerwuje zamówione produkty i wraca do poprzedniej opcji. Warunek końcowy: Zamówienie zarejestrowano, produkty zarezerwowano. Alternatywne przebiegi. A1. Nowy klient:ma miejsce po kroku 3, kiedy klient jest obsługiwany po raz pierwszy. Dr1.inż. Ludmiła Rekuć Sprzedawca wywołuje opcje”Nowy klient”. ... <<zawiera się>> /<<include>> PU-2 Wyszukaj produkt Aktorzy Warunek wstępny: Przebieg zdarzeń: Po wybraniu odpowiedniej opcji system umożliwia podanie nazwy i/lub indeksu produktu, następnie sprawdza stan magazynu i prezentuje wynik. <<rozszerza>> /<<extend>> PU-3 Zarejestruj klienta rozszerzający PU-1 w pkt.”Nowy klient” Aktorzy Warunek wstępny: Podstawowy przebieg zdarzeń: 1. PU rozpoczyna się wybraniem odpowiedniej opcji po kroku 3 PU-1, jeśli klient po raz pierwszy składa zamówienie. 2. System prezentuje formularz klienta. 3. Aktor podaje nazwisko klienta, PESEL, adres dostarczania zamówionych produktów,... ... 29 29 ud Gospodarow nie nieruchomościami Dokonaj zakupu mieszkania komunalnego « e xte n d » Dokonaj zakupu gruntu Przeprow adź sesj ę rady gminy komunlanego Dokonaj wydzierżawienia Petent nieruchomosci Rada gminy Zmień zasady w ydzierżaw ienia nieruchomości Uzyskaj dodatek mieszkaniow y Ustal granice podziału dla nieruchomości 30 Metodyka RUP(ZP) o modelowaniu biznesowym i wymaganiach • Analiza środowiska • Wymagania Cel: zrozumienie organizacji i wyrażenie w modelach. Produkty: model środowiska ( architektura, procesy, słownik). Wizja SI.... Cel: pozyskanie wymagań i wyrażenie w modelu. Produkty: model PU, dodatkowa specyfikacja, rozbudowany słownik. Analiza Projektowanie 31 Metodyka RUP(ZP) o modelowaniu biznesowym i wymaganiach Zbuduj model biznesowych PU Znajdź aktorów SI Znajdź PU SI Nadaj priorytety PU Opisz wstępnie (zrozum) PU Ustrukturalizuj i udokumentuj model PU SI Zbuduj diagram klas dziedziny problemu (kluczowe abstrakcje) Zaktualizuj Wizję i słownik 32 Metodyka RUP(ZP) o modelowaniu biznesowym i wymaganiach Uwaga! Dwa modele PU w procesie wytwarzania SI! Model biznesowych PU buduje się, jeśli procesy organizacji są mało znane, trzeba je zrozumieć, żeby trafniej określić wymagania do systemu informatycznego. Byt typu „pracownik” modelu biznesowych PU często staje się aktorem w modelu systemowych PU. Nadanie priorytetu systemowym PU Kluczowym, wejściowym artefaktem w ustaleniu priorytetu PU jest Wizja, w której określa się, na czym najbardziej zależy zainteresowanym stronom i wymienia zagrożenia. Możliwe kryteria ustalenia priorytetu PU to: - korzyści uzyskiwane przez zainteresowane strony , - wpływ PU na architekturę, - stopień zagrożenia jaki jest związany z PU. 33 Pytania kontrolne 1. Czy każda klasa może mieć obiekty? 2. Czy każda sekcja definicji klasy jest obowiązkowa? 3. Czy prawdziwe jest twierdzenie:”należy pokazać wszystkie atrybuty klasy lub nie pokazywać je wcale”? 4. Czy klasa powiązania może mieć związki z innymi “zwykłymi” klasami? 5. Co dziedziczy podklasa po nadklasie? 6. Czy mogą wystąpić dwa obiekty klasy z takimi samymi wartościami atrybutów? 7. Jakie związki mogą wystąpić między PU? 8. Czy związek uogólnienia może wystąpić między aktorem a PU? 9. Co to jest “punkt rozszerzenia”? 10.Jaka jest różnica między zwiazkami „include” I „extend”? 34