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