Techniki i narzędzia modelowania systemów (notacje graficzne)
Transkrypt
Techniki i narzędzia modelowania systemów (notacje graficzne)
InŜynieria Oprogramowania Wykład : Techniki i narzędzia modelowania systemów (notacje graficzne) mgr inŜ. Jacek Kołodziej, mgr inŜ. Grzegorz Młynarczyk Opracowano na podstawie: InŜynieria oprogramowania – wykład : mgr inŜ. Grzegorz Młynarczyk, WSZIB, Kraków InŜynieria oprogramowania – wykład : dr hab. inŜ. Kazimierz Subieta, PJWSTK , Warszawa InŜynieria oprogramowania: Andrzej Jaszkiewicz, Wyd.Helion 1997 Projektowanie systemów informacyjnych – wykład: Ewa Stemposz, Kazimierz Subieta Instytut Podstaw Informatyki PAN, Warszawa Software Engineering, 7th edition, Ian Sommerville 2004 Semestr IV, slajd 1 InŜynieria Oprogramowania WSZiB Techniki i narzędzia modelowania systemów (notacje graficzne) Zagadnienia Projektowanie systemów Narzędzia CASE z edytorami graficznymi Typy Czy warto ? Typowe funkcje Repozytorium Problemy Przykłady narzędzi Notacje graficzne w fazie specyfikacji i analizy wymagań Wsparcie dla metod obiektowych i strukturalnych Semestr IV, slajd 2 InŜynieria Oprogramowania WSZiB Techniki i narzędzia modelowania systemów (notacje graficzne) Przykłady zastosowań notacji graficznych na róŜnych etapach realizacji projektu Model cyklu Ŝycia projektów Faza specyfikacji wymagań Faza analizy Faza projektowania Semestr IV, slajd 3 Techniki obiektowe Techniki strukturalne Aplikacje WWW Podsumowane InŜynieria Oprogramowania WSZiB Projekty Uproszczony model projektu – procesy Klient Opis problemu Specyfikuj problem Produkt Specyfikacja problemu Zident. rozwiąz. Specyfikacja rozwiązania Zrealizuj rozwiąz. Semestr IV, slajd 4 InŜynieria InŜynieriaOprogramowania Oprogramowania WSZiB Projekty Modele procesu budowy oprogramowania (cyklu Ŝycia projektu) Kaskadowy (ang. waterfall) Model V Ewolucyjny (ang. evolutionary) Spiralny Bohema (ang. Bohem’s spiral model) RUP eXtreme Programming Semestr IV, slajd 5 InŜynieria InŜynieriaOprogramowania Oprogramowania WSZiB Projekty Modele procesu budowy oprogramowania (cyklu Ŝycia projektu) Specyfikacja i analiza wymagań Projektowanie Implementacja, Testowanie modułów Integracja Walidacja WdroŜenie, Utrzymanie Specyfikacja i analiza wymagań Faza strategiczna Projektowanie Implementacja Analiza Testowanie WdroŜenie Utrzymanie Instalacja Dokumentacja Semestr IV, slajd 6 InŜynieria Oprogramowania WSZiB Faza analizy wymagań Specyfikacja i analiza wymagań Faza strategiczna Projektowanie Implementacja Analiza Testowanie WdroŜenie Utrzymanie Instalacja Dokumentacja Specyfikacja i analiza wymagań ( inŜynieria wymagań ) to faza projektowa której celem jest precyzyjne określenie wymagań klienta wobec projektowanego systemu. Polega na interpretacji intencji klienta i określeniu wymagań prowadzących do ich osiągnięcia. Ta faza nie jest więc prostym zbieraniem wymagań, lecz procesem, w którym klient wspólnie z przedstawicielem producenta konstruuje zbiór wymagań zgodnie z postawionymi celami. Semestr IV, slajd 7 InŜynieria Oprogramowania WSZiB Faza analizy wymagań Specyfikacja i analiza wymagań Cele klienta osiągnąć FazamoŜna strategiczna Analiza na wiele sposobów Projektowanie Implementacja Testowanie WdroŜenie Utrzymanie Klient rzadko wie, Instalacja Dokumentacja jakie wymagania zapewnią Specyfikacja i analiza wymagań ( inŜynieria wymagań ) to faza osiągniecie jego projektowa której celem jest precyzyjne określenie wymagań celów. klienta wobec projektowanego systemu. Polega na interpretacji intencji klienta i określeniu wymagań prowadzących do ich osiągnięcia. Ta faza nie jest więc prostym zbieraniem wymagań, lecz procesem, w którym klient wspólnie z przedstawicielem producenta konstruuje zbiór wymagań zgodnie z postawionymi celami. Semestr IV, slajd 8 InŜynieria Oprogramowania WSZiB Projekty Metody rozpoznawania wymagań Wywiady i przeglądy przygotowane w postaci listy pytań podzielone na odrębne zagadnienia, pokrywające całość zagadnień dotyczących projektu przeprowadzone na reprezentatywnej grupie uŜytkowników Pozytywny Wywiady = Kompromis i Akceptacja projektu. Semestr IV, slajd 9 InŜynieria Oprogramowania WSZiB Projekty Metody rozpoznawania wymagań Studia wymagań systemowych. Studia osiągalności. Wyznaczenie realistycznych wymagań systemu oraz wskazanie metod ich osiągnięcia. Studia na istniejącym oprogramowaniem. Analiza integracji projektowanego systemu z nadrzędnym, którego jest elementem. nowe oprogramowanie zastępuje stare Ustalenie wad i zalet starego oprogramowania. Prototypowanie. budowana prototypu systemu działającego w zmniejszonej skali, z uproszczonymi interfejsami oszacowanie przydatności modelu, sprecyzowanie wymagań. Semestr IV, slajd 10 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Wymagania funkcjonalne Specyfikują funkcje (czynności, operacje) realizowane przez system (lub przy uŜyciu systemów zewnętrznych). Specyfikacja wymagań : Jednoznaczne wskazanie wszystkich uŜytkowników korzystających z systemu, Jednoznaczne wskazanie wszystkich uŜytkowników, niezbędnych do działania systemu (obsługa, wprowadzanie danych, administracja). Określenie funkcji systemu udostępnianych uŜytkownikowi oraz sposobów korzystania z planowanego systemu. Określenie systemów zewnętrznych (obcych baz danych, sieci, Internetu), wykorzystywanych w czasie pracy systemu. Ustalenie struktur organizacyjnych, przepisów prawnych, statutów, zarządzeń, instrukcji, itd., które pośrednio lub bezpośrednio określają funkcje wykonywane przez planowany system. Semestr IV, slajd 11 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Wymagania funkcjonalne - metody Język naturalny - najczęściej stosowany. Wady: - niejednoznaczność powodująca róŜne rozumienie tego samego tekstu; - elastyczność, powodująca wyrazić te same treści na wiele sposobów. Konsekwencje : - trudne wykrycie powiązanych wymagań i sprzeczności. Formalizm matematyczny. Stosuje się rzadko (dla specyficznych celów) np.: język Z Język naturalny strukturalny. Język naturalny z ograniczonym słownictwem i składnią. Tematy i zagadnienia wyspecyfikowane w punktach i podpunktach. Tablice, formularze. Wyspecyfikowanie wymagań w postaci (zwykle dwuwymiarowych) tablic, kojarzących róŜne aspekty (np. tablica ustalająca zaleŜność pomiędzy typem uŜytkownika i rodzajem usługi). Diagramy blokowe: forma graficzna pokazująca cykl przetwarzania. Diagramy kontekstowe: ukazują system w postaci jednego bloku oraz jego powiązania z otoczeniem, wejściem i wyjściem. Diagramy przypadków uŜycia: poglądowy sposób przedstawienia aktorów i funkcji systemu. Semestr IV, slajd 12 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Wymagania funkcjonalne - formularz Nazwa funkcji Edycja dochodów pracownika Opis Funkcja pozwala edytować łączne dochody podatnika uzyskane w danym roku. Informacje o dochodach pracowników uzyskane uzyskanych z róŜnych źródeł: kwoty przychodów, koszty uzyskania przychodów oraz zapłaconych zaliczek na poczet podatku dochodowego. Informacje o dokumentach opisujących dochody z poszczególnych źródeł. Dane wejściowe Źródło danych wejściowych Wynik Warunek wstępny Warunek końcowy Efekty uboczne Powód Dokumenty oraz informacje dostarczone przez podatnika. Dane wpisywane przez pracownika firmy podatkowej. Kwota dochodu = kwota przychodu - kwota kosztów (zarówno dla konkretnych dochodów, jak i dla łącznych dochodów podatnika). Łączne kwoty przychodów, kosztów uzyskania dochodów oraz zapłaconych zaliczek są sumami tych kwot dla dochodów z poszczególnych źródeł. Jak wyŜej. Uaktualnienie podstawy opodatkowania. Funkcja pomaga przyśpieszyć obsługę klientów oraz zmniejszyć ryzyko popełnienia błędów. Semestr IV, slajd 13 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Porządkowanie zadań Format tekstowy: funkcja f1 funkcja f1.1 Funkcja nadrzędna f1 funkcja f1.1 funkcja f1.2 funkcja f1.3 funkcja f1.3.1 funkcja f1.3.2 funkcja f1.3.3 funkcja f1.4 funkcja f1.4.1 funkcja f1.4.2 funkcja f1.4.3 funkcja f1.2 funkcja f1.3 Z reguły funkcje moŜna rozbić na podfunkcje – hierarchia Na kaŜdym poziomie ten sam poziom szczegółowości. Kolejność funkcji nie ma znaczenia. Niektóre funkcje mogą być wykonywane wielokrotnie. Specyfikujemy tylko funkcje widoczne dla uŜytkowników. funkcja f1.3.1 funkcja f1 funkcja f1.3.2 funkcja f1.3.3 funkcja f1.1 funkcja f1.3 funkcja f1.4 funkcja f1.3.1 funkcja f1.4.1 funkcja f1.4.2 Notacje graficzne: funkcja f1.4.3 Semestr IV, slajd 14 funkcja f1.2 InŜynieria Oprogramowania funkcja f1.3.2 funkcja f1.3.3 WSZiB Faza specyfikacji wymagań Zstępujące konstruowanie hierarchii funkcji W ten sposób moŜna dekomponować funkcje do dowolnego poziomu (podejście top-down). funkcja f1 funkcja f1.1 funkcja f1.2 funkcja f1 funkcja f1 funkcja f1.1 funkcja f1.3.1 funkcja f1.2 funkcja f1.3.2 funkcja f1.3 funkcja f1.3.3 funkcja f1.4 MoŜliwe jest równieŜ podejście odwrotne (bottom-up), kiedy składamy kilka funkcji bardziej elementarnych w jedną funkcje bardziej ogólną. MoŜliwa jest równieŜ technika mieszana. Semestr IV, slajd 15 funkcja f1.3 InŜynieria Oprogramowania funkcja f1.4 funkcja f1.4.1 funkcja f1.4.2 funkcja f1.4.3 WSZiB Faza specyfikacji wymagań - wymagania funkcjonalne Przykład: program podatkowy. Wynik wywiadu z klientem Program ułatwia przygotowanie formularzy zeznań podatkowych (PIT-ów) oraz przechowanie informacji o źródłach przychodów i ulg. Zeznanie moŜe być tworzone przez pojedynczego podatnika lub małŜeństwa. Zeznania mogą obejmować informacje o rocznych przychodach (w przypadku małŜeństwa z podziałem na przychody męŜa i Ŝony) oraz o ulgach podatkowych. Przychody podzielone są na klasy ze względu na źródło uzyskania, np. poza-rolnicza działalność gospodarcza, wolny zawód,... W ramach danej klasy przychodów podatnik mógł osiągnąć szereg przychodów z róŜnych źródeł. Wszystkie przychody opisane są przez kwotę przychodu, kwotę kosztów, kwotę zapłaconych zaliczek oraz kwotę dochodu. PowyŜsze informacje pozwalają obliczyć naleŜny podatek oraz kwotę do zapłaty lub zwrotu. Zeznanie zawiera takŜe informację o podatniku oraz adres Urzędu Skarbowego. System pozwala wydrukować wzorzec zeznania zawierający wszystkie informacje, jakie podatnik musi umieścić w formularzu. Zeznanie moŜna zabezpieczyć przed dalszymi zmianami (po złoŜeniu w Urzędzie Skarbowym). System pozwala na tworzenie listy podatników oraz urzędów skarbowych, które mogą być pomocne przy tworzeniu nowego zeznania. Przechowuje takŜe informację o wszystkich złoŜonych zeznaniach. Semestr IV, slajd 16 InŜynieria Oprogramowania WSZiB Ewidencja podatników Ewidencja Urzędów Skarbowych Program podatkowy: hierarchia funkcji Ewidencja zeznań podatkowych Dodawanie zeznania Usuwanie zeznania Zabezpieczanie zeznania Edycja zeznania Edycja informacji o przychodach Edycja informacji o ulgach Wyświetlanie rozliczenia Wydruk zeznania Wyświetlenie rozliczenia (kopia) Wydruk zeznania (kopia) Przeglądanie zeznania (bez moŜliwości zmiany dla zeznań zabezpieczonych) Semestr IV, slajd 17 InŜynieria Oprogramowania WSZiB Przykład: system harmonogramowania zleceń Wynik wywiadu z klientem Zlecenia dla wydziału przygotowywane są przez dział marketingu. Zlecenie oznacza konieczność wyprodukowania konkretnej ilości pewnego wyrobu przed upływem konkretnego terminu. Czasami moŜe być określony najwcześniejszy poŜądany termin realizacji. Dział marketingu wykorzystuje własny system informatyczny, w którym między innymi umieszczane są informacje o zleceniach, poŜądane jest więc, aby system harmonogramowania zleceń automatycznie odczytywał te informacje. Wyprodukowanie danego wyrobu (realizacja zlecenia) wymaga wykonania ciągu operacji. Pewne operacje mogą być wykonywane tylko na jednym urządzeniu; w innych przypadkach moŜliwe jest wykorzystanie kilku maszyn, które mogą róŜnić się efektywnością pracy. Po wykonaniu pewnych operacji moŜe być konieczna przerwa, zanim rozpocznie się realizacja następnych; z drugiej strony taka przerwa moŜe trwać przez ograniczony czas. Przestawienie maszyn na inne operacje moŜe wymagać czasu. Co pewien czas (np. raz na miesiąc) ustalany jest harmonogram niezrealizowanych zleceń. System powinien opracować harmonogramy w formie łatwej do wykorzystania przez kadrę kierowniczą wydziału oraz przygotowywać zamówienia do magazynu na półprodukty. Zlecenia wykonane są usuwane ze zbioru niezrealizowanych zleceń. Semestr IV, slajd 18 InŜynieria Oprogramowania WSZiB Zarządzanie zleceniami (ogólna funkcja systemu) Przygotowanie zamówień na półprodukty Ewidencja zleceń Przygotowanie kart zadań Edycja technologicznego opisu wydziału Harmonogramowanie zleceń Edycja opisu maszyn Ustalanie harmonogramu Wczytywanie informacji o zleceniach Edycja opisu operacji Edycja harmonogramu Wyświetlanie informacji o zleceniach Edycja opisu wyrobów Graficzna prezentacja harmonogramu Wydruk informacji o zleceniach Sprawdzanie kompletności opisu Wydruk harmonogramu Wydruk informacji technologicznych Semestr IV, slajd 19 System harmonogramowania zleceń: hierarchia funkcji InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Wymagania niefunkcjonalne Opisują ograniczenia, przy których system ma realizować swoje funkcje : Wymagania dotyczące produktu. Np. musi istnieć moŜliwość operowania z systemem wyłącznie za pomocą klawiatury. Wymagania dotyczące procesu. Np. proces realizacji harmonogramowania zleceń musi być zgodny ze standardem opisanym w dokumencie XXXA/96. Wymagania zewnętrzne. Np. system harmonogramowania musi współpracować z bazą danych systemu komputerowego działu marketingu opisaną w dokumencie YYYB/95. Niedopuszczalne są jakiekolwiek zmiany w strukturze tej bazy Semestr IV, slajd 20 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Formularz zapisu wymagań Nr Data wprow. Rozmówca Wymaganie Motywacja Uwagi MoŜe być niestabilne 1 99/04/14 A.Nowak J.Pietrzak System powinien zwracać wynik zapytania po max 5-ciu sekundach przy 100 uŜytkownikach pracujących jednocześnie. Inaczej system nie będzie konkurencyjny na rynku 2 00/02/05 K.Lubicz KaŜdy klient powinien mieć przypisany krótki numer identyfikacyjny Inne identyfikatory (nazwisko, PESEL, numer telefonu) są niestabilne, nie unikalne, lub za długie 3 ..... ..... .... Semestr IV, slajd 21 ..... InŜynieria Oprogramowania ..... WSZiB Faza specyfikacji wymagań Weryfikowalność wymagań niefunkcjonalnych Wymagania niefunkcjonalne powinny być weryfikowalne - czyli powinna istnieć moŜliwość sprawdzenia lub zmierzenia czy system je rzeczywiście spełnia. Np. : wymagania “system ma być łatwy w obsłudze”, „system ma być niezawodny”, „system ma być dostatecznie szybki”, itd. nie są weryfikowalne. Ekologiczny??? Semestr IV, slajd 22 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Weryfikowalność wymagań niefunkcjonalnych Cecha Wydajność Rozmiar Łatwość uŜytkowania Niezawodność Przenaszalność Semestr IV, slajd 23 Weryfikowalne miary Liczba transakcji obsłuŜonych w ciągu sekundy Czas odpowiedzi Liczba rekordów w bazie danych Wymagana pamięć dyskowa Czas niezbędny dla przeszkolenia uŜytkowników Rozmiar dokumentacji Prawdopodobieństwo błędu podczas realizacji transakcji Średni czas pomiędzy błędnymi wykonaniami Dostępność (procent czasu w którym system jest dostępny) Czas restartu po awarii systemu Prawdopodobieństwo zniszczenia danych w przypadku awarii Procent kodu zaleŜnego od platformy docelowej Liczba platform docelowych Koszt przeniesienia na nową platformę InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań niefunkcjonalnych Czynniki uwzględniane przy konstruowaniu wymagań MoŜliwości systemu: Zestaw funkcji, które ma wykonywać system, uporządkowany hierarchicznie. Objętość: Ilu uŜytkowników będzie pracować jednocześnie? Ile terminali ma być podłączone do systemu? Ile czujników będzie kontrolowanych jednocześnie? Ile danych będzie przechowywane? Szybkość: Jak długo moŜe trwać operacja lub sekwencja operacji? Liczba operacji na jednostkę czasu. Średni czas niezbędny dla jednej operacji. Dokładność: Określenie stopnia precyzji pomiarów lub przetwarzania. Określenie wymaganej dokładności wyników. Zastąpienie wyników ilościowych jakościowymi lub odwrotnie. Ograniczenia: ograniczenia na interfejsy, jakość, skalę czasową, sprzęt, oprogramowanie, skalowalność, itd. Semestr IV, slajd 24 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań niefunkcjonalnych Czynniki uwzględniane przy konstruowaniu wymagań Interfejsy komunikacyjne: sieć, protokoły, wydajność sieci, poziom abstrakcji protokołów komunikacyjnych, itd. Interfejsy sprzętowe: specyfikacja wszystkich elementów sprzętowych, które będą składały się na system, fizyczne ograniczenia (rozmiar, waga), wydajność (szybkość, RAM, dysk, inne pamięci), wymagania co do powierzchni lokalowych, wilgotności, temperatury i ciśnienia, itd. Interfejsy oprogramowania: Określenie zgodności z innym oprogramowaniem, określenie systemów operacyjnych, języków programowania, kompilatorów, edytorów, systemów zarządzania bazą danych, itd. Interakcja człowiek-maszyna: Wszystkie aspekty interfejsu uŜytkownika, rodzaj języka interakcji, rodzaj sprzętu (monitor, mysz, klawiatura), określenie formatów (układu raportów i ich zawartości), określenie komunikatów dla uŜytkowników (język, forma), pomocy, komunikatów o błędach, itd. Semestr IV, slajd 25 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań niefunkcjonalnych Czynniki uwzględniane przy konstruowaniu wymagań Adaptowalność: Określenie w jaki sposób będzie organizowana reakcja na zmiany wymagań: dodanie nowej komendy, dodanie nowego okna interakcji, itd. Bezpieczeństwo: załoŜenia co do poufności, prywatności, integralności, odporności na hakerów, wirusy, wandalizm, sabotaŜ, itd. Odporność na awarie: konsekwencje błędów w oprogramowaniu, przerwy w zasilaniu, kopie zabezpieczające, częstotliwości składowania, dziennika zmian, itd. Standardy: Określenie dokumentów standardyzacyjnych, które mają zastosowanie do systemu: formaty plików, normy czcionek, polonizacja, standardy procesów i produktów, itd. Zasoby: Określenie ograniczeń finansowych, ludzkich i materiałowych. Skala czasowa: ograniczenia na czas wykonania systemu, czas szkolenia, wdraŜania, itd. Semestr IV, slajd 26 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań niefunkcjonalnych Dokument wymagań Wymagania powinny być zebrane w dokumencie - opisie wymagań. Dokument ten powinien być podstawą szczegółowego kontraktu między klientem a producentem oprogramowania. Powinien pozwalać na weryfikację stwierdzającą, czy wykonany system rzeczywiście spełnia postawione wymagania. Powinien to być dokument zrozumiały dla obydwu stron. Często producenci nie są zainteresowaniu w precyzyjnym formułowaniu wymagań, które pozwoliłoby na rzeczywistą weryfikację powstałego systemu. Tego rodzaju polityka lub niedbałość prowadzi do konfliktów. Semestr IV, slajd 27 InŜynieria Oprogramowania WSZiB Informacje organizacyjne Zawartość dokumentu specyfikacji wymagań (1) Zasadnicza zawartość dokumentu Norma ANSI/IEEE Std 830-1993 „Recommended Practice for Software Requirements Specifications” Semestr IV, slajd 28 Streszczenie (maksymalnie 200 słów) Spis treści Status dokumentu (autorzy, firmy, daty, podpisy, itd.) Zmiany w stosunku do wersji poprzedniej 1. Wstęp 1.1. Cel 1.2. Zakres 1.3. Definicje, akronimy i skróty 1.4. Referencje, odsyłacze do innych dokumentów 1.5. Krótki przegląd 2. Ogólny opis 2.1. Walory uŜytkowe i przydatność projektowanego systemu 2.2. Ogólne moŜliwości projektowanego systemu 2.3. Ogólne ograniczenia 2.4. Charakterystyka uŜytkowników 2.5. Środowisko operacyjne 2.6. ZałoŜenia i zaleŜności 3. Specyficzne wymagania 3.1. Wymagania funkcjonalne (funkcje systemu) 3.2. Wymagania niefunkcjonalne (ograniczenia). Dodatki InŜynieria Oprogramowania WSZiB ..... (poprzedni slajd) Zawartość dokumentu specyfikacji wymagań (2) Semestr IV, slajd 29 3. Specyficzne wymagania (ten rozdział moŜe być podzielony na wiele rozdziałów zgodnie z podziałem funkcji) 3.1. Wymagania dotyczące funkcji systemu 3.2. Wymagania dotyczące wydajności systemu 3.3. Wymagania dotyczące zewnętrznych interfejsów 3.4. Wymagania dotyczące wykonywanych operacji 3.5. Wymagania dotyczące wymaganych zasobów 3.6. Wymagania dotyczące sposobów weryfikacji 3.7. Wymagania dotyczące sposobów testowania 3.8. Wymagania dotyczące dokumentacji 3.9. Wymagania dotyczące ochrony 3.10. Wymagania dotyczące przenośności 3.11. Wymagania dotyczące jakości 3.12. Wymagania dotyczące niezawodności 3.13. Wymagania dotyczące pielęgnacyjności 3.14. Wymagania dotyczące bezpieczeństwa Dodatki (to, co nie zmieściło się w powyŜszych punktach) InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Zawartość dokumentu specyfikacji wymagań(2) Kolejność i numeracja punktów w przedstawionym spisie treści powinna być zachowana. W przypadku gdy pewien punkt nie zawiera Ŝadnej informacji naleŜy wyraźnie to zasygnalizować przez umieszczenie napisu „Nie dotyczy”. Dla kaŜdego wymagania powinien być podany powód jego wprowadzenia: cele przedsięwzięcia, których osiągnięcie jest uwarunkowane danym wymaganiem. Wszelki materiał nie mieszczący się w podanych punktach naleŜy umieszczać w dodatkach: Wymagania sprzętowe. Wymagania dotyczące bazy danych. Model (architektura) systemu. Słownik terminów (uŜyte terminy, akronimy i skróty z wyjaśnieniem) Indeks pomocny w wyszukiwaniu w dokumencie konkretnych informacji (dla dokumentów dłuŜszych niŜ 80 stron) Semestr IV, slajd 30 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Jakość dokumentu wymagań Styl: Ewolucja: MoŜliwość dodawania nowych wymagań, moŜliwość ich modyfikacji Odpowiedzialność: Jasność: jednoznaczne sformułowania, zrozumiały dla uŜytkowników i projektantów. Strukturalna organizacja dokumentu. Spójność: brak konfliktów w wymaganiach. Modyfikowalność: wszystkie wymagania są sformułowane w jasnych punktach, które mogą być wyizolowane z kontekstu i zastąpione przez inne. Określenie kto jest odpowiedzialny za całość dokumentu wymagań. Określenie kto lub co jest przyczyną sformułowania danego wymagania, istotne w przypadku modyfikacji, np.: zmiany zakresu lub kontekstu systemu Medium: Dokument papierowy lub elektroniczny. Staranne kontrolowanie wersji dokumentu. Semestr IV, slajd 31 InŜynieria Oprogramowania WSZiB Faza specyfikacji wymagań Słownik Zawiera terminy niezrozumiałe dla jednej ze stron ( terminy informatyczne - niezrozumiałe dla klienta lub terminy dotyczące dziedziny zastosowań -niezrozumiałe dla przedstawicieli producenta). Słownik powinien precyzować terminy niejednoznaczne i określać ich znaczenie w kontekście tego dokument (być moŜe nieco węŜsze). Termin Objaśnienie konto Nazwana ograniczona przestrzeń dyskowa, gdzie uŜytkownik moŜe przechowywać swoje dane. Konta są powiązane z określonymi usługami, np. pocztą komputerową oraz z prawami dostępu. Sekwencja cyfr oddzielona myślnikami, identyfikująca stan zasobów finansowych oraz operacji dla pojedynczego klienta banku. Jednostka sprzętowa instalowana w biurach urzędu, poprzez którą następuje interakcja uŜytkownika końcowego z systemem. Osoba uŜywająca systemu dla własnych celów biznesowych nie związanych z obsługą lub administracją systemu. konto bankowe klient uŜytkownik Semestr IV, slajd 32 InŜynieria Oprogramowania Synonimy (nie zalecane) katalog uŜytkownika konto stacja robocza klient WSZiB Projekty Modele procesu budowy oprogramowania (cyklu Ŝycia projektu) Specyfikacja i analiza wymagań Projektowanie Implementacja, Testowanie modułów Integracja Walidacja WdroŜenie, Utrzymanie Specyfikacja i analiza wymagań Faza strategiczna Projektowanie Implementacja Analiza Testowanie WdroŜenie Utrzymanie Instalacja Dokumentacja Semestr IV, slajd 33 InŜynieria Oprogramowania WSZiB Perspektywy analizy projektu – róŜne notacje Analiza zachowanie systemu z punktu widzenia uŜytkowników i analityków: State Diagram Semestr IV, slajd 34 Component Diagram USE CASE Aspekty statyczne wyraŜa się za pomocą diagramów przypadku uŜycia i diagramów klas Aspekty dynamiczne wyraŜa się za pomocą diagramów interakcji, diagramów stanów i diagramów aktywności. Relacje między elementami baz danych wyraŜa się za pomocą diagramów ERD Procesy przetwarzania danych wyraŜa się za pomocą diagramów stanów. Modelowanie procesu przetwarzania wyraŜa się za pomocą diagramów DFD InŜynieria Oprogramowania Colaboratoin Diagram ERD DFD Activity Diagram WSZiB Diagramy przypadków uŜycia - USE CASE Opis funkcji systemu z punktu widzenia jego uŜytkowników. Metoda modeluje aktorów, a nie konkretne osoby. Jedna osoba moŜe pełnić rolę wielu aktorów; np.: jednocześnie komponować i odtwarzać nagrania; Jeden aktor moŜe odpowiadać wielu osobom, np.: sekretarka. Identyfikacja funkcji dla poszczególnych uŜytkowników. Opis wymagań poszczególnych uŜytkowników jest prostszy niŜ opis wszystkich wymagań wobec systemu. Przeprowadzając wywiad z konkretna osobą naleŜy koncentrować się na funkcjach istotnych z punktu widzenia roli (ról) odgrywanych przez tę osobę. Metoda przypadków uŜycia nie jest sprzeczna z hierarchiczną dekompozycją funkcji. Semestr IV, slajd 35 InŜynieria Oprogramowania WSZiB Zarządzanie SIG (ogólna funkcja systemu) Przykład: system informacji geograficznej - SIG SIG jest rodzajem mapy komputerowej, składającej się z tła (np. mapy fizycznej) oraz szeregu obiektów graficznych umieszczonych na tym tle. Przeglądanie SIG Wyświetlanie mapy (róŜnych obszarów w róŜnym powiększeniu) Wybór/pomijanie słów kluczowych Wyświetlenie opisu obiektu graficznego Projektowanie SIG Obiekt moŜe być punktem (budynek, firma), linią (rzeka, kolej) lub obszarem (park, osiedle). Edycja tła Edycja obiektów graficznych Dodawanie obiektu KaŜdy obiekt ma swoją nazwę i ewentualny opis, który moŜe być wyświetlony na Ŝądanie uŜytkownika. Obiekt moŜna opisać szeregiem słów kluczowych. Edycja obiektu Usuwanie obiektu Edycja słów kluczowych) Dodawanie słowa kluczowego UŜytkownik ma moŜliwość wyświetlenia tylko tych obiektów, które opisano słowami kluczowymi. Edycja słowa kluczowego Usuwanie słowa kluczowego Przeglądanie SIG (kopia) Semestr IV, slajd 36 InŜynieria Oprogramowania WSZiB Diagram przypadków uŜycia dla SIG Wybór/pomijanie słów kluczowych Wyświetlenie mapy Wyświetlenie opisu obiektu graficznego Dodawanie obiektu uŜytkownik uses Edycja obiektów graficznych Edycja tła projektant uses Usuwanie obiektu uses uses Edycja słowa kluczowego Semestr IV, slajd 37 InŜynieria Oprogramowania Edycja obiektu uses Dodawanie słowa kluczowego Edycja słów kluczowych uses Usuwanie słowa kluczowego WSZiB Diagramy przypadków uŜycia Elementy modelowania AKTOR (actor) Reprezentuje rolę, którą moŜe grać w sytemie jakiś jego uŜytkownik (np.: kasjer, dyrektor, sprzedawca) PPRZYPADEK UśYCIA (use case) Reprezentuje sekwencję operacji, niezbędnych do wykonania zadania zleconego przez aktora, np. potwierdzenie pisma, złoŜenie zamówienia, itp. Aktorem jest dowolny byt zewnętrzny, który uczestniczy w interakcji z systemem. KaŜdy potencjalny aktor moŜe wchodzić w interakcję z systemem w sobie określony sposób. KaŜdy z tych nich nosi nazwę przypadku uŜycia i reprezentuje przepływ operacji w systemie związany z obsługą zadania zleconego przez aktora w procesie interakcji. Semestr IV, slajd 38 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Notacja Aktor: Powinien mieć unikalną nazwę. Interakcja: Pokazuje interakcję pomiędzy przypadkiem uŜycia a aktorem. Przypadek uŜycia: Wybierz Przedmiot Semestr IV, slajd 39 Powinien mieć unikalną nazwę, opisującą przypadek uŜycia z punktu widzenia jego zasadniczych celów. Czy lepiej jest stosować nazwę opisującą czynność (“Wybór przedmiotu”, „wypłata pieniędzy”) czy polecenie (“wybierz przedmiot”, „wypłać pieniądze”) - zdania są podzielone. InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Notacja Weryfikacja Studenta «include» Blok ponownego uŜycia: Pokazuje fragment systemu, który jest uŜywany przez kilka przypadków uŜycia; moŜe być oznaczony jako samodzielny przypadek uŜycia. «extend» Relacja typu «include» lub «extend»: Pokazuje związek zachodzący między dwoma przypadkami uŜycia lub przypadkiem uŜycia a blokiem ponownego uŜycia. Wyodrębniony Podsystem - pokazuje granicę pomiędzy systemem a jego otoczeniem. - grupuje Use Case Semestr IV, slajd 40 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Aktor - konkretny byt czy rola? Metoda przypadków uŜycia wymaga od analityka określenia wszystkich aktorów związanych z wykorzystywaniem projektowanego systemu, czyli określenia “przyszłych uŜytkowników systemu”. Zazwyczaj: aktorem jest osoba, moŜe nim być takŜe pewna organizacja (np. biuro prawne) lub inny system komputerowy. Aktor modeluje grupę osób pełniących pewną rolę, a nie konkretną osobę. Jedna osoba moŜe wchodzić w interakcję z systemem z pozycji wielu aktorów; np. być zarówno sprzedawcą, jak i klientem. I odwrotnie, jeden aktor moŜe odpowiadać wielu konkretnym osobom, np. aktor “straŜnik budynku”. Semestr IV, slajd 41 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Aktor - konkretny byt czy rola? Czy system moŜe być aktorem sam dla siebie ? Aktor jest: Aktor to przecieŜ, zgodnie z definicją, byt z otoczenia systemu. pierwotną przyczyną napędzającą przypadki uŜycia. sprawcą zdarzeń powodujących uruchomienie przypadku uŜycia, odbiorcą danych wyprodukowanych przez przypadki uŜycia. Sprawca zdarzeń? Czy np. klient, nie posiadający bezpośredniego dostępu do funkcji systemu jest tu aktorem? Semestr IV, slajd 42 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Analiza aktorów - róŜnice Przypadek uŜycia UŜytkownik Aktor Jan Kowalski Administrator systemu Przeładowanie systemu Adam Malina Pracownik Wejście z kartą i kodem Gość Osoba informowana Uzyskanie informacji ogólnych Konkretny klient Klient Wypłata z konta Pełniona Funkcja (gra) Semestr IV, slajd 43 Interakcja z systemem ( zleca ) InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Przykład diagramu przypadków uŜycia (1) Czy klient jest aktorem dla przypadku uŜycia: wpłata pieniędzy - zdania są podzielone. W operacjach wpłaty i wypłaty pieniędzy mogą uczestniczyć takŜe inni aktorzy, np. kasjer. MoŜemy go dołączyć jako kolejny element rozbudowujący nasz model. WpłataPieniędzy Klient Semestr IV, slajd 44 WypłataPieniędzy InŜynieria Oprogramowania Kasjer WSZiB Diagramy przypadków uŜycia Przykład diagramu przypadków uŜycia (2) Uzupełnienie towaru Zakup paczki papierosów Operacja pienięŜna Klient Wnętrze systemu Otoczenie systemu Sporządzenie raportu Granica systemu Automat do sprzedaŜy papierosów Semestr IV, slajd 45 Operator InŜynieria Oprogramowania Kontroler WSZiB Diagramy przypadków uŜycia ZaleŜności między przypadkami uŜycia Przypadki uŜycia mogą być konstruowane w dowolnej kolejności, chyba Ŝe występują między nimi relacje typu «include» czy «extend». P1 jest tu przypadkiem w kolejności działania. bazowym «include» P1 P1 Semestr IV, slajd 46 P2 «extend» P2 i zawsze występuje jako pierwsze Przebieg podstawowy (sekwencyjny): P1 zawsze włącza (uŜywa) P2. Przebieg opcjonalny (alternatywny): P1 jest czasami rozszerzane o P2 (inaczej: P2 czasami rozszerza P1). InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Przykład: Relacja <<include>> Podsystem zarządzania bazą danych banku Prowadzenie konta klienta «include» Informowanie o stanie konta klienta «include» Weryfikacja karty i kodu klienta Klient Inicjalizacja karty klienta Administrator Semestr IV, slajd 47 «include» Bankomat InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Przykład: Relacja <<include>> i <<extend>> Rejestracja klienta «include» «include» Przegląd samochodu Umycie samochodu Semestr IV, slajd 48 «include» «extend» «extend» SprzedaŜ samochodu Naprawa samochodu «extend» Przyholowanie samochodu «include»: wskazuje na wspólny fragment wielu przypadków uŜycia (wyłączony “przed nawias”); wykorzystywany w przebiegach podstawowych (operacje zawsze wykonywane) «extend»: strzałka prowadzi od przypadku uŜycia, który czasami rozszerza inny przypadek uŜycia - wykorzystywane w przebiegach opcjonalnych (operacje nie zawsze ykonywane) InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Rozbudowa modelu wpłata pieniędzy Kasjer «include» klient banku sprawdź stan konta weź poŜyczkę kasjer wypłata pieniędzy wypłata pieniędzy Klient banku wpłata pieniędzy Zarząd banku sprawdź stan konta weź poŜyczkę «include» «extend» uaktualnianie stanu konta Zarząd banku Model przypadków uŜycia moŜna rozbudowywać poprzez dodawanie nowych aktorów, nowych przypadków uŜycia czy teŜ nowych relacji pomiędzy nimi. Semestr IV, slajd 49 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Diagram interakcji dla przypadku uŜycia Aktor Blok 1 Blok 2 Blok 3 Blok 4 Przesyłanie komunikatów pomiędzy blokami: k1 k2 k3 czas k4 k5 Bloki - obiekt ki - komunikat, czyli polecenie wykonania operacji; komunikat nosi nazwę tej operacji Semestr IV, slajd 50 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Diagram interakcji dla przypadku uŜycia Wpłata pieniędzy Scenariusz (specyfikcja działania) Semestr IV, slajd 51 Wypełnij formularz wpłaty Podaj formularz i gotówkę do kasy Zwiększ konto klienta Zwiększ bilans kasy Zwiększ bilans banku Wydaj pokwitowanie dla klienta InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Diagram interakcji dla przypadku uŜycia Wypełnij formularz wpłaty Podaj formularz i gotówkę do kasy Zwiększ konto klienta Zwiększ bilans kasy Zwiększ bilans banku Wydaj pokwitowanie dla klienta Wpłata pieniędzy :Formularz :Klient :Kasa :Konto :Bank wypełnij podaj formularz zwiększ zwiększ bilans zwiększ bilans wydaj pokwitowanie Semestr IV, slajd 52 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Stopień szczegółowości diagramów Model przypadków uŜycia dostarcza bardzo abstrakcyjnego spojrzenia na system z pozycji aktorów, którzy go uŜywają. Nie włącza zbyt wielu szczegółów, co pozwala wnioskować o fukcjonalności systemu na odpowiednio wysokim poziomie. Podstawowym (choć nie jedynym) zastosowaniem jest tu dialog z przyszłymi uŜytkownikami zmierzający do sformułowania poprawnych wymagań na system. Model zbyt szczegółowy - utrudnia analizę, zbyt ogólny - nie pozwala na wykrycie bloków ponownego uŜycia. „Nie opisuj przypadków uŜycia w sposób, który nie jest łatwo zrozumiały dla uŜytkownika”. Jednocześnie buduj model obiektowy. Semestr IV, slajd 53 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Stopień szczegółowości diagramów Tworzenie przypadków uŜycia jest niezdeterminowane i subiektywne. Na ogół, róŜni analitycy tworzą róŜne modele. edycja programu «include» kompilacja programu «include» wykonanie programu programista Semestr IV, slajd 54 drukowanie pliku InŜynieria Oprogramowania uŜytkownik WSZiB Diagramy przypadków uŜycia Etapy konstrukcji modelu Dokumenty: Etap: 1 Sporządzenie słownika pojęć Słownik pojęć 2 Określenie aktorów 3 Określenie przypadków uŜycia 4 Tworzenie opisu kaŜdego przypadku uŜycia plus: podział na nazwane części znalezienie wspólnych części w róŜnych przypadkach uŜycia Semestr IV, slajd 55 InŜynieria Oprogramowania Dokument opisu aktorów Diagram przypadków uŜycia + dokument opisu przypadków uŜycia WSZiB Diagramy przypadków uŜycia Słownik pojęć WaŜnym jest, by juŜ na tym etapie rozpocząć organizowanie słownika pojęć. Słownik dotyczy dziedziny problemowej. Tworzenie go polega na wyłowieniu wszystkich terminów z wymagań uŜytkownika. Terminy mogą odnosić się do aktorów, przypadków uŜycia, obiektów, operacji, zdarzeń, itp. Terminy w słowniku powinny być zdefiniowane w sposób precyzyjny i jednoznaczny. Posługiwanie się terminami ze słownika powinny być regułą przy opisie kaŜdego kolejnego problemu, sytuacji czy modelu. Na co naleŜy zwrócić uwagę przy kwalifikowaniu terminów do słownika: na rzeczowniki - mogą one oznaczać aktorów lub byty z dziedziny problemowej na frazy opisujące funkcje, akcje, zachowanie się - mogą one być podstawą wyróŜnienia przypadków uŜycia. Semestr IV, slajd 56 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Słownik pojęć – przykład Przykład: Konto - pojedyncze konto w banku, w stosunku do którego wykonywane są bieŜące transakcje. Konta mogą być róŜnych typów, a w szczególności: konta indywidualne, małŜeńskie, firmowe ( i inne??? ) KaŜdy klient moŜe posiadać więcej niŜ jedno konto. Semestr IV, slajd 57 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Określenie aktorów Szukamy aktorów: Jaka grupa uŜytkowników potrzebuje wspomagania ze strony systemu (np.: osoba wysyłająca korespondencję)? Jacy uŜytkownicy są konieczni do tego, aby system działał i wykonywał swoje funkcje (np.: administrator systemu)? Z jakich elementów zewnętrznych (innych systemów, komputerów, czujników, sieci, itp.) musi korzystać system, aby realizować swoje funkcje Ustalanie potencjalnych aktorów musi być powiązane z ustalaniem granic systemu, tj. odrzucaniem obszarów dziedziny problemowej, którymi system nie będzie się zajmować (zakres odpowiedzialności systemu). Mamy aktrów: nazwę dla kaŜdego aktora/roli, zakresy znaczeniowe dla poszczególnych nazw aktorów oraz relacje pomiędzy zakresami (np. sekretarka, pracownik administracji ustalamy hierarchię dziedziczenia dostępu do funkcji systemu dla aktorów. Semestr IV, slajd 58 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Dziedziczenie Osoba Pracownik Gość Księgowa Semestr IV, slajd 59 Pracownik administracji Pracownik administracji dziedziczy dostęp do przypadków uŜycia wyspecyfikowanych dla kaŜdego pracownika, oraz ma dostęp do przypadków związanych z jego własnym, specyficznym sposobem wykorzystywania systemu. InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Dziedziczenie - przykład Dziedziczy przypadki uŜycia Klienta Semestr IV, slajd 60 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Określenie przypadków uŜycia (1) Dla kaŜdego aktora, znajdź funkcje (zadania), które powinien wykonywać w związku z jego działalnością w zakresie zarówno dziedziny przedmiotowej, jak i wspomagania działalności systemu informacyjnego. Staraj się powiązać w jeden przypadek uŜycia zespół funkcji realizujących podobne cele. Unikaj rozbicia jednego przypadku uŜycia na zbyt wiele podprzypadków Nazwy dla przypadków uŜycia: powinny być krótkie, ale jednoznacznie określające charakter zadania lub funkcji. Nazwy powinny odzwierciedlać czynności z punktu widzenia aktorów, a nie systemu, np. “wpłacanie pieniędzy”, a nie “przyjęcie pieniędzy od klienta”. Opisz przypadki uŜycia przy pomocy zdań w języku naturalnym, uŜywając terminów ze słownika. Uporządkuj aktorów i przypadki uŜycia w postaci diagramu. Przeanalizuj powiązania aktorów z przypadkami uŜycia i ustal, które z nich są zbędne lub mogą być uogólnione Semestr IV, slajd 61 InŜynieria Oprogramowania WSZiB Określanie przypadków uŜycia (2) Wyodrębnij “przypadki bazowe”, czyli te, które stanowią istotę zadań, są normalnym, standardowym uŜyciem. Pomiń czynności skrajne, wyjątkowe, uzupełniające lub opcjonalne. Nazwij “przypadki bazowe”. Ustal powiązania “przypadków bazowych” z innymi przypadkami, poprzez ustalenie ich wzajemnej zaleŜności: sekwencji czy alternatywy. Dodaj zachowania skrajne, wyjątkowe, uzupełniające lub opcjonalne. Ustal powiązanie “przypadków bazowych” z tego rodzaju zachowaniem. Staraj się, aby bloki specyfikowane wewnątrz kaŜdego przypadku uŜycia nie były zbyt ogólne lub zbyt szczegółowe. Zbyt szczegółowe bloki utrudniają analizę. Zbyt ogólne bloki zmniejszają moŜliwość wykrycia bloków ponownego uŜycia. Struktura nie moŜe być zbyt duŜa i złoŜona. Wyizoluj bloki ponownego uŜycia. Przeanalizuj podobieństwo nazw przypadków uŜycia, podobieństwo nazw i zachowania bloków ponownego uŜycia występujących w ich specyfikacji. Wydzielenie bloku ponownego uŜycia moŜe być powiązane z określeniem bardziej ogólnej funkcji lub dodaniu nowej specjalizacji do istniejącej funkcji. Semestr IV, slajd 62 InŜynieria Oprogramowania WSZiB Diagramy przypadków uŜycia Dokumentowanie przypadków uŜycia 1. Diagramy przypadków uŜycia: aktorzy, przypadki uŜycia i relacje zachodzące między przypadkami. 2. Krótki, ogólny opis kaŜdego przypadku uŜycia: a) jak i kiedy przypadek uŜycia zaczyna się i kończy, b) opis interakcji przypadku uŜycia z aktorami, włączając w to kiedy interakcja ma miejsce i co jest przesyłane, c) kiedy i do czego przypadek uŜycia potrzebuje danych zapamiętanych w systemie, d) jak i kiedy zapamiętuje dane w systemie, e) wyjątki występujące przy obsłudze przypadku, f) specjalne wymagania, np. czas odpowiedzi, wydajność, g) jak i kiedy uŜywane są pojęcia dziedziny problemowej. 3. Opis szczegółowy kaŜdego przypadku uŜycia: a) scenariusz(e) b) specyfikację uczestniczących obiektów, c) diagram(y) interakcji. Semestr IV, slajd 63 InŜynieria Oprogramowania WSZiB Podsumowanie Narzędzia CASE Czy warto ? Typowe funkcje Notacje graficzne w fazie specyfikacji: Diagramy + USE CASE Co dalej ??? Notacje graficzne w fazie analizy i projektowania Semestr IV, slajd 64 InŜynieria Oprogramowania WSZiB