wykład 4 - Jan Kazimirski
Transkrypt
wykład 4 - Jan Kazimirski
Podstawy programowania III Jan Kazimirski Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy programowania III Jan Kazimirski Podstawy UML-a 2 Podstawy programowania III Jan Kazimirski UML ● UML – Unified Modeling Language – formalny język modelowania systemu informatycznego. ● Aktualna wersja 2.3 ● Stosuje paradygmat obiektowy. ● Graficzna reprezentacja systemu – diagramy. ● Różne diagramy koncentrują się na różnych aspektach modelowanego systemu. 3 Podstawy programowania III Jan Kazimirski Wybrane diagramy UML ● ● Diagramy struktury – Diagramy klas, obiektów, pakietów – Diagramy komponentów i rozlokowania Diagramy dynamiki (zachowań) – Diagram przypadków użycia – Diagram czynności – Diagram maszyny stanowej – Diagram sekwencji 4 Podstawy programowania III Jan Kazimirski Diagram przypadków użycia ● ● Określa jakie usługi system udostępnia swoim użytkownikom. Podstawowe pojęcia: – Aktor – Kto korzysta z systemu – Przypadek użycia – Co system może zrobić – Związki – powiązania między elementami modelu. 5 Podstawy programowania III Jan Kazimirski Diagram przypadków użycia c.d. Wyświetl listę towarów Kup towar Klient 6 Podstawy programowania III Jan Kazimirski Scenariusze ● ● ● Diagram przypadków użycia są bardzo ogólne Dokładniejszą dokumentację przypadku użycia stanowią „scenariusze” Scenariusz: – szczegółowy przebieg zdarzeń związanych z realizacją danego przypadku użycia, – warunki wstępne i końcowe – inne informacje związane z danym przypadkiem użycia 7 Podstawy programowania III Jan Kazimirski Diagram klas ● ● ● Statyczny obraz struktury systemu – klasy i powiązania między klasami Jeden z najczęściej stosowanych diagramów Podobnym diagramem, ale reprezentującym strukturę systemu w określonej chwili jest diagram obiektów 8 Podstawy programowania III Jan Kazimirski Klasa Nazwa klasy Student Atrybuty imie nazwisko nr_indeksu ... Metody student() generujIndeks() weryfikuj() 9 Podstawy programowania III Jan Kazimirski Notacja atrybutów i metod ● ● ● ● Widoczność: prywatne (-), publiczne (+), chronione (#) Statyczne – podkreślone Atrybuty – wyszczególnienie typu, wartości początkowe Metody – wyszczególnienie parametrów i ich typów, wartości domyślnych parametrów 10 Podstawy programowania III Jan Kazimirski Notacja atrybutów i metod c.d. Student - imie : String - nazwisko : String - nr_indeksu : Integer - grupa : Integer = 0 + student() + generujIndeks() : Integer # weryfikuj(nr_ind : Integer) : Boolean 11 Podstawy programowania III Jan Kazimirski Związki między klasami Klasa1 Klasa1 Klasa1 Klasa1 Klasa2 Klasa2 Klasa2 Klasa2 Asocjacja Dodatkowe symbole mogą dokładniej specyfikować rodzaj Agregacja Kompozycja (Agregacja zupełna) Uogólnienie 12 Podstawy programowania III Jan Kazimirski Diagram czynności ● ● ● Diagram opisujący dynamikę systemu Przedstawia przepływy sterowania oraz danych pomiędzy uporządkowanymi ciągami czynności Zastosowania: – modelowanie procesów biznesowych – przedstawianie scenariuszy przypadków użycia – przedstawianie algorytmów i sekwencji operacji 13 Podstawy programowania III Jan Kazimirski Diagram czynności c.d. Początek Czynność lub akcja Wprowadź login Przepływ sterowania Wprowadź hasło Koniec 14 Podstawy programowania III Jan Kazimirski Diagram maszyny stanowej ● ● Ilustruje dopuszczalne stany i przejścia między stanami określonego obiektu. Model maszyny stanowej – modelowany układ znajduje się w jednym z dopuszczalnych stanów – pomiędzy stanami dopuszczalne są określone przejścia (zmiany stanów) 15 Podstawy programowania III Jan Kazimirski Diagram maszyny stanowej c.d. Pseudo-stan początkowy Stan Użytkownik wylogowany Przejście Użytkownik zalogowany Pseudo-stan końcowy 16 Podstawy programowania III Jan Kazimirski Diagram sekwencji ● ● Przedstawia interakcje między elementami systemu Zgodnie z modelem obiektowym system reprezentowany jest przez zbiór obiektów i wymienianych między nimi komunikatów 17 Podstawy programowania III Jan Kazimirski Diagram sekwencji c.d. Obiekt1 Obiekt2 Obiekt Obiekt3 Linia życia obiektu X Komunikat 18 Podstawy programowania III Jan Kazimirski Autoryzacja – przypadki użycia 19 Podstawy programowania III Jan Kazimirski Scenariusz - Zaloguj ● Przypadek użycia: Zaloguj ● Aktorzy: User, Admin ● Warunki wstępne: użytkownik niezalogowany ● Warunki końcowe: użytkownik zalogowany ● ● Główny przepływ zdarzeń: 1. System wyświetla formularz logowania 2. Użytkownik wpisuje login i hasło 3. Użytkownik zatwierdza dane 4. System wyświetla informację o zalogowanym użytkowniku Alternatywny przebieg zdarzeń: 4a. W przypadku niepoprawnych danych system ponownie wyświetla formularz logowania 20 Podstawy programowania III Jan Kazimirski Scenariusz - Wyloguj ● Przypadek użycia: Wyloguj ● Aktorzy: User, Admin ● Warunki wstępne: użytkownik zalogowany ● Warunki końcowe: użytkownik niezalogowany ● ● Główny przepływ zdarzeń: 1. Użytkownik wybiera z panelu operację wylogowania 2. System wyświetla formularz logowania Alternatywny przebieg zdarzeń: --- 21 Podstawy programowania III Jan Kazimirski Diagram czynności - Zaloguj 22 Podstawy programowania III Jan Kazimirski Diagram czynności - Wyloguj 23 Podstawy programowania III Jan Kazimirski Diagram klas 24 Podstawy programowania III Jan Kazimirski Diagram sekwencji - Zaloguj 25 Podstawy programowania III Jan Kazimirski Diagram sekwencji - Wyloguj 26 Podstawy programowania III Jan Kazimirski Projektowanie aplikacji ● ● Analiza wymagań – identyfikacja aktorów i przypadków użycia Tworzenie opisów (scenariuszy) przypadków użycia. ● Identyfikowanie klas, atrybutów i operacji ● Identyfikowanie zależności między klasami ● Analiza dynamiki systemu – diagramy czynności, sekwencji, stanów 27 Podstawy programowania III Jan Kazimirski Scenariusze ● ● ● Tworzone na bazie „opowieści użytkownika” - tzn. opisów oczekiwanego zachowania systemu. System „punktowy” - 1 punkt to np. ~0.5 dnia kodowania. Koszt scenariuszy: - 1,2 lub 3 punkty. Scenariusze łatwiejsze powinny być scalane, trudniejsze – podzielone na mniejsze. 28 Podstawy programowania III Jan Kazimirski Identyfikowanie klas ● ● Metoda rzeczowników i czasowników: – Przeglądamy opisy użytkownika i scenariusze – Rzeczowniki mogą być dobrymi kandydatami na klasy lub atrybuty (formularz, student, grupa) – Czasowniki i opisy czynności – kandydaci na metody (ustaw, pobierz, zmień, uruchom) Klasy zbyt małe łączymy, zbyt złożone – dzielimy na mniejsze. 29 Podstawy programowania III Jan Kazimirski Modele tworzenia oprogramowania ● Model kaskadowy. – ● Poszczególne etapy wykonywane kolejno: planowanie, projektowanie, implementacja, testowanie, wdrożenie Model iteracyjny (przyrostowy). – Ogólny projekt systemu – Wybór części systemu i jego realizacja – Wybór kolejnej części systemu ... 30 Podstawy programowania III Jan Kazimirski Model iteracyjny ● ● ● Określenie zbioru scenariuszy realizowanego w ramach iteracji. Koszt zbioru scenariuszy (punkty). Weryfikacja oszacowań kosztu scenariuszy po każdej iteracji. ● Weryfikacja wymagań klienta po każdej iteracji ● Krótkie iteracje – np. 2 tygodnie 31 Podstawy programowania III Jan Kazimirski Implementacja ● Wytwarzanie sterowane testami (TDD) ● Refaktoryzacja ● Stosowanie wzorców projektowych ● ● Automatyzacja procesu budowania i testowania systemu Kontrola wersji 32 Podstawy programowania III Jan Kazimirski Modelowanie UML - Umbrello ● WWW: http://uml.sourceforge.net/ ● Program do tworzenia diagramów UML ● Dostępny jako oprogramowanie Open Source ● Wersje dla Windows i Linux-a ● Możliwość eksportowania i importowania (C++) kodu. 33 Podstawy programowania III Jan Kazimirski Umbrello c.d. 34 Podstawy programowania III Jan Kazimirski Umbrello c.d. 35 Podstawy programowania III Jan Kazimirski Umbrello c.d. 36 Podstawy programowania III Jan Kazimirski Umbrello c.d. 37 Podstawy programowania III Jan Kazimirski Podsumowanie ● Podstawowe diagramy UML-a ● Przykład wykorzystania diagramów UML-a ● Elementy inżynierii oprogramowania ● Umbrello – UML Modeller 38