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