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