4 - Katedra Informatyki > Home
Transkrypt
4 - Katedra Informatyki > Home
ICK a proces tworzenia oprogramowania Interakcja Człowiek-Komputer Cezary Bolek • Proces projektowania oraz implementacji aplikacji będących częścią systemu interaktywnego • InŜynieria uŜyteczności • Iteracyjne projektowanie i prototypowanie • Projektowanie a racjonalne podstawy Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cykl Ŝycia oprogramowania • InŜynieria oprogramowania jest dyscypliną, której celem jest zrozumienie procesu projektowania oprogramowania oraz zrozumienie cyklu jego Ŝycia • Projektowanie oprogramowania pod kątem uŜyteczności nie jest pojedynczą aktywnością na etapie projektowym, powinno mieć miejsce we wszystkich etapach cyklu Ŝycia oprogramowania. Model kaskadowy cyklu Ŝycia oprogramowania Specyfikacja wymagań Projekt architektury Projekt szczegółowy Kodowanie i test. modułów Integracja i testowanie Działanie i utrzymanie Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 1 Etapy w cyklu Ŝycia oprogramowania Specyfikacja wymagań • Etap w którym projektant i klient starają się zdefiniować co ewentualny system • Próba ma robić. Projekt zdefiniowania Forma wymiany informacji architektury jak system język naturalny, bądź ma działać. sformalizowane Projekt Wysokopoziomowy szczegółowy języki opisu opis funkcjonalności wysokiego poziomu Kodowanie systemu w powiązaniu i test. modułów z kluczowymi komponentami realizującymi dane załoŜenia. Integracja Opis zaleŜności tworzonych między i testowanie poszczególnymi komponentami Działanie realizujących funkcjonalne i niefunkcjonalne i utrzymanie wymagania Etapy w cyklu Ŝycia oprogramowania Specyfikacja wymagań • Uszczegółowienie opisu funkcjonalności Projekt architektury • Implementacja poszczególnych modułów w celu ich implementacji w konkretnym języku programowania. Projekt Wybór metod komunikacji szczegółowy między poszczególnymi modułami modułów w oparciu o stosowaną technologię. KaŜdy z modułów musi zostać przetestowany aby móc przeprowadzić późniejszą integrację i testowanie całego systemu Kodowanie i test. modułów Integracja i testowanie Działanie i utrzymanie wydajność, niezawodność, bezpieczeństwo Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Weryfikacja i walidacja Weryfikacja i walidacja • Weryfikacja – określenie poprawności realizacji na poziomie funkcjonalnym. Ma miejsce najczęściej na poziomie jednego z etapów projektów ewentualnie na ich stykach. Przykład: komponent listy płac w programie ERP. Projektant koncentruje się na algorytmach wyliczających podatek na bazie przychodów. Projekt architektury będzie obejmował dane wejściowe i wyjściowe. Projekt szczegółowy uściśli formę danych i rozbije operacje wysokiego poziomu na szereg operacji niskopoziomowych, które mogą być zaimplementowane. Projektant musi zweryfikować efekty, czy da się zaimplementować projekt w języku programowania (spójność) oraz czy model nie kłóci się z załoŜeniami wysokopoziomowymi (kompletność) • Walidacja projektu – sprawdzenie czy funkcjonalność poszczególnych modułów spełnia oczekiwania klienta. Proces oparty na przesłankach często subiektywnych. RóŜnice w językach opisu oczekiwań i języka opisu projektu. W przypadku systemów interaktywnych często określana mianem ewaluacji i moŜe być wykonana poprzez kontakt z klientem lub bez. Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki • Weryfikacja Dobre projektowanie produktu Wymagania i ograniczenia zewnętrzne (Świat rzeczywisty) Luka formalna • Walidacja Projektowanie dobrego produktu Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 2 Cykl Ŝycia systemu interaktywnego Specyfikacja wymagań Specyfikacja wymagań • Projektowanie ma postać procesu iteracyjnego. Określenie i testowanie funkcjonalności odbywa się przez prototypowanie w połączeniu z iteracyjnym procesem projektowania Projekt architektury Projekt architektury Projekt szczegółowy Projekt szczegółowy • Prototypowanie Kodowanie i test. modułów Kodowanie i test. modułów • Nie moŜna załoŜyć liniowego RóŜne metody prototypowania Działanie i utrzymanie Działanie i utrzymanie przejścia przez poszczególne etapy modelu kaskadowego symulowanie i testowanie cech systemu docelowego Integracja i testowanie Integracja i testowanie • porzuceniowe • przyrostowe • ewolucyjne Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Prototypowanie porzuceniowe Wymagania wstępne Projektowanie iteracyjne i prototypowanie Budowa prototypu Prototypowanie przyrostowe Ewaluacja prototypu Identyfikacja komponentów Wymag. Architekt. Proj. szcz. nie tak wystarczające ? Ostateczne wymagania Prototyp porzucany oprogramowania najczęściej nie słuŜy do oceny projektu, ale pomaga w opracowaniu wymagań systemu. Projekt prototypu jest zwykle całkowicie odmienny od końcowej wersji gotowego systemu. Prototyp jest tworzony i testowany. Wiedza zdobyta na tym etapie jest zostaje wykorzystana do stworzenia finalnego produktu a prototyp zarzucany. Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Projekt końcowy tworzony jest jako oddzielne komponenty. Istnieje jeden projekt systemu, ale podzielony jest na mniejsze, niezaleŜne komponenty Produkt końcowy wydawany jest jako zestaw produktów. Kolejne wydania zawierają dodatkowe komponenty Kod. i test. Integr. nie potrzebne poprawki System kompletny ? tak dostarczenie systemu Działanie i utrzymanie Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 3 Prototypowanie ewolucyjne • Technika obrazkowa Wymag. • Prototyp nie jest Budowa prototypu Architekt. zarzucany lecz stanowi bazę dla następnej iteracji projektowej. Techniki prototypowania Proj. szcz. Ewaluacja prototypu Kod. i test. Integr. • System ewoluuje z bardzo ograniczonej wersji do wersji końcowej. opis graficzny, bez angaŜowania działającego modelu • Symulacje na bazie modeli o ograniczonej Działanie i utrzymanie • Stosowane takŜe na etapie działania i utrzymania w celu wprowadzania modyfikacji i ulepszeń Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki funkcjonalności Popularna technika Czarownik z Oz • Projektant opracowuje i implementuje system o bardzo ograniczonej funkcjonalności by dodawać nowe składniki poprzez interakcje (interwencje) uŜytkownika próbującego korzystać z takiego systemu. UŜytkownik nie musi znać szczegółów systemu, ma natomiast konkretne oczekiwania dotyczące czynności jakie chciałby wykonać. Projektant (czarownik) realizuje je. NaleŜy pamiętać, Ŝe złe załoŜenia początkowe pozostaną w produkcie aŜ do końca Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Korzyści płynące z projektowania kaskadowego i prototypowania • Źródło informacji dlaczego dany system komputerowy jest jaki jest • Korzyści Wymiana informacji pomiędzy poszczególnymi etapami Ŝycia produktu Wykorzystanie wiedzy projektowej przy realizacji innych produktów Poprawa dyscypliny projektu Porządkowanie czasem ogromnej przestrzeni zakresu projektu Pozwala znaleźć uzasadnienie stosowania kompromisów w produkcie końcowym Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Dialog między programem i uŜytkownikiem Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 4 Czym jest dialog ? • Konwersacja między dwoma podmiotami • W odniesieniu do systemów interakcji, dialog – struktura konwersacji między uŜytkownikiem a systemem komputerowym • Poziomy stosowania języków w dialogu Leksykalny – poziom najniŜszy: kształt ikon, naciśnięte klawisze. Ludzie: dźwięki, wymowa słów Syntaktyczny – kolejność i struktura elementów wprowadzania i odbierania danych. Ludzie: gramatyka zdań Semantyczny – wywołana zmiana stanu systemu lub świata zewnętrznego. Zmiana danych struktur danych. Ludzie: znaczenia przypisywane przez poszczególnych uczestników Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Dialog - ludzie • Usługa „MałŜeństwo” Skrypt postępowania dla trzech podmiotów Ściśle określona kolejność Niektóre odpowiedzi sformalizowane i stałe - ”Tak” Inne zmienne – „Czy Ty imię męŜczyzny…” Dialog - ludzie • Dialog człowiek-komputer bardzo formalny • Dialog człowiek-człowiek bywa takŜe formalny… Usługa „MałŜeństwo” Urzędnik: MęŜczyzna: Urzędnik: Kobieta: Urzędnik: Czy ty …. bierzesz tę kobietę… Tak Czy ty …. bierzesz tego męŜczyznę… Tak Ogłaszam was męŜem i Ŝoną Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki … dialog - ludzie • Co w sytuacji gdy kobieta powie „Nie” ? • Rzeczywiste dialogi często oferują rozgałęzienia: Sąd: Czy przyznaje się Pan do zarzuconych czynów ? OskarŜony: Tak lub Nie Dalszy przebieg procesu zaleŜy od odpowiedzi oskarŜonego • Czy wypowiadając te słowa zawieramy związek małŜeński ? Tylko gdy stosowane w odpowiednim miejscu, w odpowiednim środowisku Syntaktyka i semantyka Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki • Tworząc dialog naleŜy go sformalizować, ale przewidzieć wszystkie dopuszczalne ewentualności sędzia nie wypowiada wymyślonych formułek uŜytkownik nie obsługuje komputera stojąc na klawiaturze Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 5 Zapis dialogu na etapie projektowania • Dialog jest częścią programu, naleŜy go zaprojektować jak kaŜdy inny element systemu. Metody opisu dialogu • Stosowanych jest szereg zapisów. Najczęściej graficzne: • Dla duŜych systemów naleŜy: dokonać wnikliwej analizy dialogu jaki uŜytkownik moŜe prowadzić • np. czy uŜytkownik zawsze moŜe zajrzeć do koszyka w sklepie internetowym? Zapewnić moŜliwość migracji między systemami. Stosować notacje zapisu dialogu, co usprawnia: Sieci przejść międzystanowych Sieci Petriego Diagramy stanu Diagramy przepływu Diagramy ESD (Entity Structure Diagrams) • Lub tekstowe • analizę systemu • separację leksykalną i semantyczną Notacja BNF Języki formalne CSP • … a zanim system zostanie zbudowany notacja pozwoli zrozumieć ideę proponowanego projektu Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Sieć przejść międzystanowych • Etykiety gałęzi silnie stłoczone: • Okręgi, węzły – stany • Łuki, gałęzie – czynności i zdarzenia Wybierz ‘Koło’ Start Koło 1 Kliknięcie na środek Koło 2 notacja jest silnie nasycona stanami zdarzenia wymagają szczegółowych informacji Kliknięcie na obwód Koniec Wybierz ‘Koło’ Rysowanie koła Rysowanie obwiedni Menu Start kliknięcie na pierwszy punkt Wybierz ‘Linia’ Sieć przejść międzystanowych - zdarzenia Linia 1 Linia 2 Rysowanie obwiedni Kliknięcie punktu Rysowanie linii Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Podwójne kliknięcie Rysowanie ostatniego odcinka Koło 1 Kliknięcie na środek Koło 2 Kliknięcie na obwód Menu kliknięcie na pierwszy punkt Koniec Koniec Rysowanie koła Rysowanie obwiedni Wybierz ‘Linia’ Linia 1 Linia 2 Rysowanie obwiedni Kliknięcie punktu Podwójne kliknięcie Koniec Rysowanie ostatniego odcinka Rysowanie linii Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 6 Sieć przejść międzystanowych - stany • Etykiety w węzłach mało informacyjne • Zarządzanie złoŜonymi stany są trudne do nazwania ale łatwiejsze do wizualizowania Wybierz ‘Koło’ Start Koło 1 Kliknięcie na środek Koło 2 Hierarchiczne sieci przejść międzystanowych Kliknięcie na obwód dialogami • Nazwane pod-dialogi Podmenu graficzne Wybór ‘grafika’ Koniec Rysowanie koła Rysowanie obwiedni Wybór ‘tekst’ Podmenu tekstowe Główne menu Menu kliknięcie na pierwszy punkt Wybierz ‘Linia’ Linia 1 Linia 2 Rysowanie obwiedni Kliknięcie punktu Podwójne kliknięcie Podmenu rysunk. Koniec Rysowanie ostatniego odcinka Wybór ‘rysowanie’ Rysowanie linii Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Okno dialogowe - przykład Okno dialogowe - przykład • Trzy niezaleŜne przełączniki – indywidualne sieci przejść między stanowych Text Style bold example NO Kliknięcie na ‘bold’ bold bold bold italic italic u’line underline italic underline NO NO u’line Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Kliknięcie na ‘italic’ italic Kliknięcie na ‘underline’ Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 7 Okno dialogowe - przykład Okno dialogowe - przykład • Bold i Italic połączone • Wszystko razem – kombinatoryczna eksplozja Text Style NO kliknięcie ‘bold’ example bold style bold italic underline only NO ‘bold’ only ‘underline’ ‘italic’ ‘italic’ ‘bold’ only klik. ‘italic’ ‘bold’ only ‘italic’ bold italic ‘underline’ ‘underline’ italic kliknięcie ‘bold’ only bold italic italic u’line Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki duŜy bałagan • Poziom hierarchiczny kliknięcie na środek rysowanie obwiedni press HELP button Podsystem HELP bold italic u’line Sieci Petriego • Występuje praktycznie wszędzie • Powrót do samego miejsca w dialogu skąd wywołany • MoŜna uŜyć indywidualnych sieci przejść międzystanowych – Koło 1 ‘bold’ Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Systemy pomocy z menu bold italic underline bold u’line ‘italic’ italic example ‘underline’ u’line klik. ‘italic’ Text Style bold style • Jedna z najstarszych notacji stosowanych w informatyce • Graf przepływu: Koło 2 kliknięcie na obwód rysowanie koła press HELP button Koniec miejsca – podobne do stanów w sieciach przejść międzystanowych tranzycje – jak gałęzie w sieciach przejść międzystanowych Ŝetony – stany systemu Podsystem HELP Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 8 Sieć Petriego - przykład Bold On Diagramy stanu Italic On UŜytkownik naciska ‘Italic’ UŜytkownik naciska ‘Bold’ T1 T2 T4 T3 czynność uŜytkownika reprezentowana jako Ŝeton ON sieci przejść międzystanowych Dźwięk OFF RESET Kanał 1 hierarchia równolegle pod-sieci Italic Off Bold Off Standby • UŜywane w UML • Rozszerzenie idei SEL On MUTE 3 SEL 4 Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki Diagramy przepływu Delete Diagramy ESD (Entity Structure Diagrams) • Dla dialogów o formie D1 drzewiastej Please enter employee no.: ____ procesy/zdarzenia nie stany • Idea bliska • Mniej C1 read record Delete programistom • UŜywane do dialogu (nie wewnętrznego algorytmu) SEL SEL Off tranzycja ‘uruchamiana’ kiedy wszystkie wejścia mają Ŝetony • Pudełka H 2 D2 Delete Name: Alan Dix Dept: Computing delete? (Y/N): _ C2 answer? Y N C3 delete record Finish Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki D3 Name: Alan Dix Dept: Computing delete? (Y/N): _ Please enter Y or N System Rejestracji Personelu ekspresyjna metoda • Bardzo przejrzysta logowanie operacja * wylogowanie other Finish dodaj dane pracownika zmień dane pracownika wyświetl dane pracownika usuń dane pracownika * powtarzanie, O - opcja Cezary Bolek. Katedra Informatyki. Uniwersytet Łódzki 9