Inżynieria Oprogramowania WSZiBSemestr IV
Cele oraz techniki tworzenia prototypów systemów infromatycznych
Inżynieria Oprogramowania WSZiBSemestr IV
Zagadnienia Rola oraz umiejscowienie prototypowania w
procesie tworzenia oprogramowania Rola prototypu w procesie walidacji wymagań
systemowych Przegląd technik prototypowania
Prototypowanie ewolucyjne oraz metoda odrzucania prototypów
Prototypowanie interfejsu użytkownika (GUI)
Inżynieria Oprogramowania WSZiBSemestr IV
Zastosowanie prototypów Prototyp systemu umożliwia użytkownikom
zrozumienie wymagań stawianych systemowi Wpływ systemu na tryb pracy, wpółpraca z innymi
systemami 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) Ułatwia wykrywanie błędów wprowadzonych do
systemu w trakcie jego tworzenia
Inżynieria Oprogramowania WSZiBSemestr IV
Testowanie wsteczne (1/2) Wykorzystywane w sytuacji gdy mamy dostępną
więcej niż 1 wersję systemu Np. prototyp oraz sam system
Na wszystkich wersjach wykonuje się te same testy 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 WSZiBSemestr IV
Testowanie wsteczne (2/2) Kolejne kroki w procesie testowania
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 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ą ... Zwykle sygnalizuje to jakąś nieprawidłowość która powinna
być przeanalizowana
Inżynieria Oprogramowania WSZiBSemestr IV
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
Np. obsługa sytuacji wyjątkowych Lokalizacja niejasnych funkcjonalności
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 WSZiBSemestr IV
Przebieg procesu prototypowania
Us talenie c elóws tworz eniaprototy pu
Oc enaprototy pu
Utworz enieprototy pu
Definic jaz ak res u
funk c jonalnoś c iprototy pu
Plans tworz eniaprototy pu
Ogólnadefinic ja
funk c jonal-noś c i
Dz iałając yprototy p
Rapor t zewaluac ji
Inżynieria Oprogramowania WSZiBSemestr IV
Model spiralny Boehma a prototypowanie
REVIEW
Określenie celów,alternatyw, ograniczeń Analiza alternatyw. rozw.,
identyfikacja i ograniczenieryzyka
Planowanie kolejnej fazy Implementacja rozwiązania
Analizaryzyka
Analizaryzyka
Analizaryzyka
Analizaryzyka
Prototyp 4
Prototyp 3
Prototyp 2Prototyp1
Symulacje, benchmarkiPlan cyklu życia
Plan implementacji
Integracja i plan testów
Projektowanie
Walidacjawymagań
Analizawymagań Szczegółowy
projektKodowanie
Testy modułów
Testy integracyjne
Testy akceptacyjneUtrzymanie
Inżynieria Oprogramowania WSZiBSemestr IV
Cele w zależności od podejścia 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 WSZiBSemestr IV
Dwa podejścia do prototypowania
Ogólnewymagania
Prototypowanieewolucyjne
Meotodaodrzucaniaprototypów
Specyfikacjawymagań
systemowych
Utworzony iwdrożony system
Inżynieria Oprogramowania WSZiBSemestr IV
Cechy prototypowania ewolucyjnego Wykorzystywane w przypadku systemów gdzie
stworzenie specyfikacji z góry jest niemożliwe Systemy sztucznej inteligencji Graficzny interfejs użytkownika
Prowadzone z zastosowaniem technik umożliwiająych szybkie tworzenie kolejnych iteracji (wersji) systemu
Nie ma możliwości walidacji systemu Nie ma specyfikacji!
Walidacja oznacza w tym przypadku zademonstrowanie „odpowiedniości systemu”
Inżynieria Oprogramowania WSZiBSemestr IV
Prototypowanie ewolucyjne - etapy
Utworzenieogólnej
specyfikacji
Start
Utworzenieprototypu
Ewaluacjaprototypu
Systempoprawny?
Wdrożeniesystemu
N
T
Inżynieria Oprogramowania WSZiBSemestr IV
Prototypowanie ewolucyjne - problemy Większość istniejących technik zarządzania zakłada
istnienie oddzielnych faz w procesie tworzenia oprogramowania Model kaskadowy
Ciągłe, praktycznie niekontrolowane zmiany systemu Naruszenie (jednolitej) struktury Problemy z pielęgnacją
Czas życia takiego projektu jest stosunkowo krótki Struktura systemu staje się nieprzejrzysta – trzeba go
napisać od nowa
Inżynieria Oprogramowania WSZiBSemestr IV
Throw-away prototyping Metoda minimalizacji ryzyka Początkowa specyfikacja prototyp
Prototyp udostępnia się do testów/eksperymentów a następnie odrzuca
Takiego prototypu nie powinno się wykorzystywać jako podstawy końcowego systemu 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 WSZiBSemestr IV
Throw-away prototyping - etapy
Ogólna specyfikacjasystemu Utworzenie prototypu Ewaluacja prototypu Specyfikacja systemu
Utworzenie systemu Walidacja systemu Wdrożony systemkomponenty
Na podst. Ian Somerville, 1995
Inżynieria Oprogramowania WSZiBSemestr IV
Prototyp jako specyfikacja - problemy Jak określić zakres pracy?
Utworzyć system taki jak załączony Niektóre funkcje systemu mogą okazać się trudne do
zawarcia w prototypie 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 WSZiBSemestr IV
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 Połączenie zalet prototypowania z zapewnieniem
strukturalnego cyklu życia projektu oraz przejrzystej struktury samego systemu
Inżynieria Oprogramowania WSZiBSemestr IV
Proces inkrementalnego tworzenia systemu
Określenie zakresu ipostaci systemu
Definicjaarchitektury
Specyfikacjazakresu danego
inkrementu
Tworzenie danegoinkrementu
Walidacjainkrementu (wg
specyfikacji)
Integracjainkrementu z
dotychczasowymsystemem
Walidacja systemuWdrożenie finalnejpostaci systemu
System jestkompletny?
Na podst. Ian Somerville, 1995
Inżynieria Oprogramowania WSZiBSemestr IV
Techniki tworzenia prototypów
Generatory aplikacji oraz języki czwartej generacji (4GLs)
Wykorzystanie gotowych komponentów
Inżynieria Oprogramowania WSZiBSemestr IV
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ść
Zapytania i aktualizacja bazy danych Generowanie raportów Standardowe formatki
W typowej postaci w skład wchodzi 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 WSZiBSemestr IV
Prototypowanie z wykorzystaniem gotowych komponentów Prototyp powstaje poprzez połączenie gotowych
fragmentów Coraz bardziej popularny w miarę upowszechniania
się bibliotek komponentów Microsoft ActiveX Sun Java Beans
Potrzebny jest również mechanizm umożliwiający łączenie gotowych elementów 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 WSZiBSemestr IV
Wykorzystanie gotowych elementów
Bibliotekakomponentów
Systemutworzony jako
połączeniekomponentów
Prototyp
Katalog dostępnych
komponentów
Specyfikacjasystemu
Inżynieria Oprogramowania WSZiBSemestr IV
Prototypowanie interfejsu użytkownika Specyfikacja wyglądu i zachowania UI z góry
Praktycznie niemożliwa Potrzeba stworzenia prototypu
Tworzenie UI stanowi coraz większą część całościowych kosztów tworzenia systemów Por. typowy system bazodanowy
Czego używać? 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 WSZiBSemestr IV
Prototyp UI – przykład (1/2)
• Por. opis zasad tworzenia GUI – Eric J Braude „Software Engineering. An Object-Oriented Approach”
Inżynieria Oprogramowania WSZiBSemestr IV
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)
Inżynieria Oprogramowania WSZiBSemestr IV
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 Prototypowanie ewolucyjne Metoda odrzucania prototypu
Przy tworzeniu prototypu systemu musimy mieć do dyspozycji techniki szybkiego generowania kodu
Struktura prototypu ulega naruszeniu Na skutek ciągłych zmian/modyfikacji Zatsosowanie długiego cyklu życia projektu staje się
problematyczne
Inżynieria Oprogramowania WSZiBSemestr IV
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ć Interfejs użytkownika