Więcej

Transkrypt

Więcej

Semestr IV
Cele oraz techniki tworzenia
prototypów systemów
infromatycznych
Inżynieria Oprogramowania
WSZiB
Zagadnienia

Rola oraz umiejscowienie prototypowania w
procesie tworzenia oprogramowania


Przegląd technik prototypowania


Semestr IV
Rola prototypu w procesie walidacji wymagań
systemowych
Prototypowanie ewolucyjne oraz metoda
odrzucania prototypów
Prototypowanie interfejsu użytkownika (GUI)
Inżynieria Oprogramowania
WSZiB
Zastosowanie prototypów

Prototyp systemu umożliwia użytkownikom
zrozumienie wymagań stawianych systemowi



Wykorzystanie do szkoleń użytkowników
systemu jeszcze przed jego wdrożeniem
Prototyp systemu wraz z jego wersją
produkcyjną mogą zostać wykorzystane w
procesie tzw. testowania wstecznego (ang.
back-to-back testing)

Semestr IV
Wpływ systemu na tryb pracy, wpółpraca z innymi
systemami
Ułatwia wykrywanie błędów wprowadzonych do
systemu w trakcie jego tworzenia
Inżynieria Oprogramowania
WSZiB
Testowanie wsteczne (1/2)

Wykorzystywane w sytuacji gdy mamy dostępną
więcej niż 1 wersję systemu


Na wszystkich wersjach wykonuje się te same testy


Semestr IV
Np. prototyp oraz sam system
Pojawienie się różnicy w wynikach testów sygnalizuje
potencjalne problemy
W przypadku testowania kolejnych iteracji systemu
testowana jest jedynie wspólna funkcjonalność obu
wersji
Inżynieria Oprogramowania
WSZiB
Testowanie wsteczne (2/2)

Kolejne kroki w procesie testowania




Jeśli wyniki są identyczne ...


Nie jest to jeszcze gwarancją, że obie wersje działają
poprawnie (mogą zawierać ten sam błąd)
Jeśli się różnią ...

Semestr IV
Stworzenie ogólnego zestawu testów
(Automatyczne) wykonanie przygotowanego zestawu
testów na obu wersjach systemu wraz z każdorazowym
zapisaniem uzyskanych wyników testów
(Automatyczne) porównanie uzyskanych wyników testów
Zwykle sygnalizuje to jakąś nieprawidłowość która powinna
być przeanalizowana
Inżynieria Oprogramowania
WSZiB
Korzyści z zastosowania prototypów



Ujawnienie różnic w rozumieniu planowanej
funkcjonalności systemu przez przyszłych
użytkowników oraz twórców
Metoda minimalizacji ryzyka
Identyfikacja pominiętych funkcjonalności


Lokalizacja niejasnych funkcjonalności



Semestr IV
Np. obsługa sytuacji wyjątkowych
Np. „System ma umożliwić zmianę treści pozycji rachunku
przez operatora”
„Działający system” dostępny dla użytkowników we
wczesnej fazie projektu
Prototyp może posłużyć jako podstawa specyfikacji
systemu
Inżynieria Oprogramowania
WSZiB
Przebieg procesu prototypowania
U s talenie c elów
s tw or z enia
pr ototy pu
D efinic ja
z ak r es u
funk c jonalnoś c i
pr ototy pu
U tw or z enie
pr ototy pu
O c ena
pr ototy pu
Plan
s tw or z enia
pr ototy pu
Semestr IV
O gólna
definic ja
funk c jonalnoś c i
D z iałając y
pr ototy p
Inżynieria Oprogramowania
R apor t z
ew aluac ji
WSZiB
Model spiralny Boehma a
prototypowanie
Analiza
ryzyka
Określenie celów,
alternatyw, ograniczeń
Analiza
ryzyka
Analiza alternatyw. rozw.,
identyfikacja i ograniczenie
ryzyka
Analiza
ryzyka
REVIEW
Prototyp 4
Prototyp 3
Prototyp 2
Analiza
Prototyp
ryzyka
1
Symulacje, benchmarki
Plan cyklu życia
Analiza
wymagań
Plan implementacji
Projektowanie
Walidacja
wymagań
Szczegółowy
projekt
Kodowanie
Testy modułów
Planowanie kolejnej fazy
Semestr IV
Integracja i plan testów
Testy integracyjne
Testy akceptacyjne
Utrzymanie
Inżynieria Oprogramowania
Implementacja rozwiązania
WSZiB
Cele w zależności od podejścia


Semestr IV
Celem prototypowania ewolucyjnego (ang.
evolutionary prototyping) jest dostarczenie
użytkownikom gotowego systemu. Punktem
wyjściowym dla tworzenia systemu są wymagania
najlepiej w danej chwili zrozumiałe
Celem prototypowania z wykorzystaniem metody
odrzucania prototypów (ang. throw-away
prototyping) jest walidacja niejasnych wymagań.
Punktem wyjściowym dla procesu tworzenia
prototypu są wymagania które są w danym etapie
niejasne/niezrozumiałe
Inżynieria Oprogramowania
WSZiB
Dwa podejścia do prototypowania
Ogólne
wymagania
Semestr IV
Prototypowanie
ewolucyjne
Meotoda
odrzucania
prototypów
Utworzony i
wdrożony system
Specyfikacja
wymagań
systemowych
Inżynieria Oprogramowania
WSZiB
Cechy prototypowania ewolucyjnego

Wykorzystywane w przypadku systemów gdzie
stworzenie specyfikacji z góry jest niemożliwe




Prowadzone z zastosowaniem technik
umożliwiająych szybkie tworzenie kolejnych iteracji
(wersji) systemu
Nie ma możliwości walidacji systemu


Semestr IV
Systemy sztucznej inteligencji
Graficzny interfejs użytkownika
Nie ma specyfikacji!
Walidacja oznacza w tym przypadku
zademonstrowanie „odpowiedniości systemu”
Inżynieria Oprogramowania
WSZiB
Prototypowanie ewolucyjne - etapy
Start
Utworzenie
ogólnej
specyfikacji
Utworzenie
prototypu
N
Ewaluacja
prototypu
System
poprawny?
Semestr IV
T
Inżynieria Oprogramowania
Wdrożenie
systemu
WSZiB
Prototypowanie ewolucyjne - problemy

Większość istniejących technik zarządzania zakłada
istnienie oddzielnych faz w procesie tworzenia
oprogramowania


Ciągłe, praktycznie niekontrolowane zmiany systemu



Naruszenie (jednolitej) struktury
Problemy z pielęgnacją
Czas życia takiego projektu jest stosunkowo krótki

Semestr IV
Model kaskadowy
Struktura systemu staje się nieprzejrzysta – trzeba go
napisać od nowa
Inżynieria Oprogramowania
WSZiB
Throw-away prototyping


Metoda minimalizacji ryzyka
Początkowa specyfikacja  prototyp


Takiego prototypu nie powinno się wykorzystywać
jako podstawy końcowego systemu



Semestr IV
Prototyp udostępnia się do testów/eksperymentów a
następnie odrzuca
Część aspektów systemu może być całkiem pominiętych
Pielęgnacja (nie brana w ogóle pod uwagę)
Na ogół brak struktury i rozwiązania ad hoc  kłopoty z
rozwijaniem
Inżynieria Oprogramowania
WSZiB
Throw-away prototyping - etapy
Ogólna specyfikacja
systemu
Utworzenie prototypu
Ewaluacja prototypu
Specyfikacja systemu
Walidacja systemu
Wdrożony system
komponenty
Utworzenie systemu
Na podst. Ian Somerville, 1995
Semestr IV
Inżynieria Oprogramowania
WSZiB
Prototyp jako specyfikacja - problemy

Jak określić zakres pracy?


Niektóre funkcje systemu mogą okazać się trudne do
zawarcia w prototypie



Semestr IV
Utworzyć system taki jak załączony
Np. dotyczące kryteriów bezpieczeństwa
Więc nie pojawią się w specyfikacji
Wymagania niefunkcjonalne są na ogół częściowo
bądź wcale nie przetestowane w prototypie
Inżynieria Oprogramowania
WSZiB
Inkrementalny cykl życia projektu



Po zdefiniowaniu ogólnej architektury system
jest tworzony i wdrażany w postaci kolejnych
inkrementów
Użytkownicy mają możliwość pracy z danym
inkrementem  służy on jako prototyp
Podejście to ma na celu

Semestr IV
Połączenie zalet prototypowania z zapewnieniem
strukturalnego cyklu życia projektu oraz
przejrzystej struktury samego systemu
Inżynieria Oprogramowania
WSZiB
Proces inkrementalnego tworzenia
systemu
Określenie zakresu i
postaci systemu
Definicja
architektury
Specyfikacja
zakresu danego
inkrementu
Wdrożenie finalnej
postaci systemu
System jest
kompletny?
Tworzenie danego
inkrementu
Walidacja
inkrementu (wg
specyfikacji)
Walidacja systemu
Integracja
inkrementu z
dotychczasowym
systemem
Na podst. Ian Somerville, 1995
Semestr IV
Inżynieria Oprogramowania
WSZiB
Techniki tworzenia prototypów


Semestr IV
Generatory aplikacji oraz języki
czwartej generacji (4GLs)
Wykorzystanie gotowych komponentów
Inżynieria Oprogramowania
WSZiB
Języki 4tej generacji (4GL)

Specyficzne dla danej dziedziny zastosowań języki do
zastosowań biznesowych


Oparte o systemy zarządzające bazami danych
Typowa funkcjonalność




W typowej postaci w skład wchodzi





Semestr IV
Zapytania i aktualizacja bazy danych
Generowanie raportów
Standardowe formatki
Język zapytań do bazy danych (najczęściej SQL)
Generator formatek
Generator raportów
Często dostarczane jako część zestawu narzędzi CASE
Efektywne kosztowo w przypadku małych i średnich systemów
Inżynieria Oprogramowania
WSZiB
Prototypowanie z wykorzystaniem
gotowych komponentów


Prototyp powstaje poprzez połączenie gotowych
fragmentów
Coraz bardziej popularny w miarę upowszechniania
się bibliotek komponentów



Potrzebny jest również mechanizm umożliwiający
łączenie gotowych elementów


Semestr IV
Microsoft ActiveX
Sun Java Beans
Np. system UNIX – interpretery poleceń (Bourne shell, C
shell) oraz komponenty (narzędzia do ogólnych zastosowań
– sed, awk, grep)
Przykład języka opartego na takim podejściu: MS
Visual Basic
Inżynieria Oprogramowania
WSZiB
Wykorzystanie gotowych elementów
Semestr IV
Biblioteka
komponentów
System
utworzony jako
połączenie
komponentów
Katalog dostę
pnych
komponentów
Specyfikacja
systemu
Inżynieria Oprogramowania
Prototyp
WSZiB
Prototypowanie interfejsu
użytkownika

Specyfikacja wyglądu i zachowania UI z góry



Tworzenie UI stanowi coraz większą część
całościowych kosztów tworzenia systemów


Por. typowy system bazodanowy
Czego używać?


Semestr IV
Praktycznie niemożliwa
Potrzeba stworzenia prototypu
Coraz większa liczba dostępnych narzędzi
umożliwiających składanie UI z pojedynczych
komponentów
Microsoft Visual Studio, Inprise Builder
Inżynieria Oprogramowania
WSZiB
Prototyp UI – przykład (1/2)
• Por. opis zasad tworzenia GUI – Eric J Braude „Software
Engineering. An Object-Oriented Approach”
Semestr IV
Inżynieria Oprogramowania
WSZiB
Prototyp UI – przykład (2/2)
Pokrewne dane
zgrupowane razem
Dla każdej grupy
danych określone
nazwa; obramowanie
grupy
Rząd przycisków wycentrowany i zgrupowany
(nie rozrzucony na długości dialogu)
Semestr IV
Inżynieria Oprogramowania
WSZiB
Podsumowanie (1/2)


Prototyp systemu wykorzystuje się w celu
zademonstrowania końcowym użytkownikom
konkretnego wyobrażenia na temat przyszłego
wyglądu oraz funkcjonalności systemu
Wyróżniamy dwa rodzaje prototypowania




Przy tworzeniu prototypu systemu musimy mieć do
dyspozycji techniki szybkiego generowania kodu
Struktura prototypu ulega naruszeniu


Semestr IV
Prototypowanie ewolucyjne
Metoda odrzucania prototypu
Na skutek ciągłych zmian/modyfikacji
Zatsosowanie długiego cyklu życia projektu staje się
problematyczne
Inżynieria Oprogramowania
WSZiB
Podsumowanie (2/2)


Punktem wyjściowym metody odrzucania prototypu
są wymagania najmniej zrozumiałe; w
prototypowaniu ewolucyjnym zaczynamy od części
najlepiej zrozumiałych
Prototypowanie jest szczególnie ważne przy
tworzeniu części systemu które z natury nie dają się
efektywnie specyfikować

Semestr IV
Interfejs użytkownika
Inżynieria Oprogramowania
WSZiB

Podobne dokumenty