Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc ›...

27
Inżynieria Oprogramowania WSZiB Semestr IV Cele oraz techniki tworzenia prototypów systemów infromatycznych

Transcript of Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc ›...

Page 1: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

Inżynieria Oprogramowania WSZiBSemestr IV

Cele oraz techniki tworzenia prototypów systemów infromatycznych

Page 2: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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)

Page 3: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 4: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 5: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 6: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 7: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 8: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 9: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 10: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

Inżynieria Oprogramowania WSZiBSemestr IV

Dwa podejścia do prototypowania

Ogólnewymagania

Prototypowanieewolucyjne

Meotodaodrzucaniaprototypów

Specyfikacjawymagań

systemowych

Utworzony iwdrożony system

Page 11: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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”

Page 12: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

Inżynieria Oprogramowania WSZiBSemestr IV

Prototypowanie ewolucyjne - etapy

Utworzenieogólnej

specyfikacji

Start

Utworzenieprototypu

Ewaluacjaprototypu

Systempoprawny?

Wdrożeniesystemu

N

T

Page 13: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 14: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 15: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 16: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 17: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 18: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 19: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

Inżynieria Oprogramowania WSZiBSemestr IV

Techniki tworzenia prototypów

Generatory aplikacji oraz języki czwartej generacji (4GLs)

Wykorzystanie gotowych komponentów

Page 20: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 21: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 22: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

Inżynieria Oprogramowania WSZiBSemestr IV

Wykorzystanie gotowych elementów

Bibliotekakomponentów

Systemutworzony jako

połączeniekomponentów

Prototyp

Katalog dostępnych

komponentów

Specyfikacjasystemu

Page 23: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 24: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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”

Page 25: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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)

Page 26: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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

Page 27: Cele oraz techniki tworzenia prototypów systemów ...artemis.wszib.edu.pl › ~jackolo › doc › wyklad › ...Korzyści z zastosowania prototypów ... Microsoft Visual Studio,

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