Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 1 Prototypowanie oprogramowania l Służy do szybkiego rozwoju oprogramowania zgodnie z.

Podobne prezentacje


Prezentacja na temat: "©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 1 Prototypowanie oprogramowania l Służy do szybkiego rozwoju oprogramowania zgodnie z."— Zapis prezentacji:

1 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 1 Prototypowanie oprogramowania l Służy do szybkiego rozwoju oprogramowania zgodnie z założonymi specyfikacjami

2 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 2 Cele l Znać rolę prototypowania w różnych rodzajach przedsięwzięć. l Rozumieć różnicę między prototypowaniem ewolucyjnym i prototypowaniem z porzuceniem. l Rozpoznawać trzy różne metody budowy prototypów. l Wiedzieć, dlaczego prototypowanie jest jedyną sensowną metodą projektowania i tworzenia interfejsu użytkownika.

3 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 3 Zawartość l Prototypowanie w procesie tworzenia oprogramowania l Metody błyskawicznego prototypowania l Prototypowanie interfejsu użytkownika

4 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 4 Budowa prototypów l Prototyp jest początkowa wersją systemu oprogramowania, która służy do prezentacji założeń, do wypróbowania wariantów projektu, a bardziej ogólnie do coraz lepszego poznawania problemu i jego możliwych rozwiązań. l Bardzo ważne jest szybkie tworzenie prototypu, ponieważ umożliwia panowanie nad kosztami i umożliwia eksperymentowanie użytkownikom we wczesnej fazie procesu tworzenia oprogramowania.

5 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 5 Użycie prototypów oprogramowania l Określanie wymagań. Prototypy systemu umożliwiają użytkownikom eksperymentowanie w celu sprawdzenia, czy system pomaga im w pracy. l Zatwierdzanie wymagań. Prototyp może ujawnić błędy i pominięcia w zaproponowanych wymaganiach.

6 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 6 Stosowanie prototypu systemu Stosowanie prototypu systemu daje następujące korzyści: l nieporozumienia między wytwórcami systemu a użytkownikami mogą być rozpoznane już w chwili prezentacji usług systemu, l w trakcie budowy prototypu personel tworzący oprogramowanie może znaleźć sprzeczne lub niekompletne wymagania, l działający, choć niepełny, system jest szybko dostępny i można go wykorzystać do wykazania kierownictwu, że ten program użytkowy jest wykonalny i przydatny, l prototyp może być podstawą specyfikacji systemu o jakości przemysłowej.

7 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 7 Proces budowy prototypu Ogólna definicja Określ cele prototypu Zdefiniuj funkcjonalność prototypu Zbuduj prototyp Oceń prototyp Plan prototypowania Wykonywalny prototyp Raport o ocenie prototypu

8 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 8 Korzyści Badając 39 różnych przedsięwzięć z prototypami, Gordon i Bieman (1995) stwierdzili, że zastosowanie Prototypu dało następujące korzyści: l Zwiększona użyteczność systemu. l Lepsze dopasowanie systemu do potrzeb użytkowników. l Zwiększona jakość projektu. l Większą zdatność do pielęgnacji. l Zmniejszony wysiłek twórczy.

9 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 9 Prototypowanie w procesie tworzenia oprogramowania l Prototypowanie ewolucyjne zaczyna się od zbudowania dość prostego systemu, który spełnia najważniejsze wymagania użytkownika. Jest on następnie zmieniany i uzupełniany w miarę odkrywania nowych wymagań. Ostatecznie staje się systemem, którego oczekiwano. l Prototypowanie z porzuceniem służy natomiast do udoskonalenia i wyjaśnienia specyfikacji systemu. Prototyp jest budowany, oceniany i modyfikowany. Ocena prototypu inspiruje opracowywanie szczegółowej specyfikacji systemu, która jest częścią dokumentacji wymagań systemowych. Po napisaniu tej specyfikacji prototyp nie jest potrzebny i odrzuca się go.

10 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 10 Cele prototypowania l Celem prototypowania ewolucyjnego jest dostarczenie użytkownikom działającego systemu. Oznacza to, że powinno się rozpocząć od tych wymagań użytkownika, które są najlepiej rozpoznane i mają najwyższy priorytet. Wymagania mniej jasne lub o mniejszym priorytecie są implementowane jedynie wówczas, gdy (i pod warunkiem, że) zażądają tego użytkownicy. l Celem prototypowania z porzuceniem jest zatwierdzenie lub dostarczenie wymagań systemowych. Powinieneś zacząć od tych wymagań, które nie są dobrze rozpoznane, ponieważ potrzebujesz dowiedzieć się o nich więcej. Wymagania, które są oczywiste, nie muszą podlegać prototypowaniu.

11 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 11 Prototypowanie ewolucyjne i z porzuceniem Ogólne wymagania Dostarczony system Prototypowanie z porzuceniem Prototypowanie ewolucyjne Wykonywalny prototyp + specyfikacja systemu

12 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 12 Prototypowanie ewolucyjne l Idea prototypowania ewolucyjnego polega na opracowywaniu wstępnej implementacji, wystawianiu jej na krytykę użytkowników i udoskonalaniu jej w wielu krokach aż do chwili zbudowania odpowiedniego systemu. l Prototypowanie ewolucyjne ma wiele wspólnego z metodami błyskawicznego tworzenia programów użytkowych.

13 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 13 Prototypowanie ewolucyjne Opracuj abstrakcyjną specyfikację Zbuduj prototyp systemu Użytkuj prototyp systemu Dostarcz system System jest odpowiedni? TAK NIE

14 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 14 Zalety stosowania prototypowania ewolucyjnego l Przyspieszone dostarczanie systemu. W niektórych wypadkach błyskawiczne dostarczanie i użyteczność są znacznie ważniejsze niż funkcjonalność lub zdatność do pielęgnacji w długim okresie. l Włączenie użytkownika w budowę systemu. Udział użytkowników w procesie budowania powoduje nie tylko to, że system ma więcej szans spełnienia ich wymagań. Oznacza także akceptację systemu przez użytkowników, którzy będą chcieli, żeby dobrze działał.

15 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 15 Metody prototypowania ewolucyjnego l Procesy specyfikowania, projektowania i implementowania przeplatają się. l System jest budowany w postaci ciągu przyrostów. Użytkownicy i inni udziałowcy systemu są włączeni w projektowanie i ocenę każdego przyrostu. l Stosuje się metody błyskawicznego tworzenia systemów. Mogą to być narzędzia CASE i języki czwartej generacji. l Systemowe interfejsy użytkownika są zwykle budowane za pomocą interakcyjnego systemu wytwórczego, który umożliwia szybkie tworzenie projektu interfejsu przez rysowanie i rozmieszczanie ikon.

16 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 16 Główne problemy z prototypowaniem ewolucyjnym l Kłopoty z zarządzaniem Prototypy ewoluują tak szybko, że opracowywanie dużej ilości dokumentacji jest zbyt kosztowne. Menedżerowie mogą mieć trudności z wykorzystaniem dostępnego personelu z powodu braku odpowiednich umiejętności. l Kłopoty z pielęgnacją Ustawiczne zmiany powodują uszkodzenia struktury prototypowego systemu. l Kłopoty z umową

17 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 17 Weryfikacja i zatwierdzanie systemu zbudowanego z zastosowaniem prototypownia ewolucyjnego l Może polegać jedynie na stwierdzeniu, że program jest odpowiedni, tzn. wystarczająco dobry do zaplanowanego celu. l Ta odpowiedniość nie jest oczywiście czytelnie mierzalna; można jedynie przeprowadzić jej subiektywną ocenę.

18 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 18 Tworzenie przyrostowe l Umożliwia uniknięcie niektórych trudności związanych z ustawicznymi zmianami charakterystycznymi dla prototypowania ewolucyjnego. l We wczesnej fazie przedsięwzięcia powstaje ogólna architektura systemu, która potem służy za zrąb. l W ramach tego zrębu przyrostowo tworzy się i dostarcza komponenty systemu. l Po ich zatwierdzeniu i dostarczeniu nie zmienia się zrębu ani komponentów, chyba że zostaną wykryte błędy.

19 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 19 Przyrostowy proces tworzenia Zaprojektuj archi- tekturę systemu Dostarcz gotowy system Wyspecyfikuj przyrost systemu Oceń system Zbuduj przyrost systemu Zintegruj przyrost Oceń przyrost System jest gotowy? Określ końcowe produkty TAK NIE

20 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 20 Prototypowanie z porzuceniem l To podejście umożliwia uniknięcie niektórych trudności związanych z ustawicznymi zmianami charakterystycznymi dla prototypowania ewolucyjnego. l Prototyp porzucany oprogramowania najczęściej nie służy jednak do oceny projektu, ale pomaga w opracowaniu wymagań systemu. Projekt prototypu jest zwykle całkowicie odmienny od końcowej wersji gotowego systemu. l W prototypie porzucanym można pominąć dobrze rozpoznaną funkcjonalność, rozluźnić standardy jakościowe i pominąć kryteria efektywnościowe. l Język oprogramowania użyty do budowy takiego prototypu jest zwykle inny niż język implementacji gotowego systemu.

21 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 21 Proces wytwarzania oprogramowania z prototypowaniem z porzuceniem Oceń system Zbuduj oprogramowanie Wyspecyfikuj system Oceń prototyp Zbuduj prototyp Ogólne wymagania Dostarczony system oprogramowania Komponenty użycia wielokrotnego

22 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 22 Wady prototypowania z porzuceniem l Dostrojenie prototypu tak, aby spełniał wymagania niefunkcjonalne dotyczące efektywności, zabezpieczenia, solidności i niezawodności, może być niemożliwe. l Gwałtowne zmiany zachodzące w czasie budowania nieuchronnie powodują, że prototyp nie jest udokumentowany. l Firmowe standardy jakości zwykle nie są rygorystycznie przestrzegane w czasie budowania prototypu.

23 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 23 Metody błyskawicznego prototypowania l Istnieją trzy metody błyskawicznego tworzenia: o tworzenie za pomocą dynamicznych języków wysokiego poziomu, o programowanie bazy danych, o scalanie komponentów i programów użytkowych l W praktyce przy budowaniu prototypu systemu wszystkie te metody są często stosowane łącznie. l Tworzenie prototypu jest obecnie wspomagane przez zestaw narzędzi np. system Smalltalk VisualWork i Lotus Notes.

24 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 24 Tworzenie za pomocą dynamicznych języków wysokiego poziomu l Dynamiczne języki wysokiego poziomu to języki programowania, które obejmują mocne udogodnienia do zarządzania danymi w czasie wykonania. l Upraszczają budowanie programu, ponieważ zmniejszają wiele kłopotów z przydziałem i zarządzaniem pamięcią. l System takiego języka zawiera udogodnienia, które zwykle napisać samemu, korzystając z prostszych konstrukcji językowych, np. w Adzie lub C. Przykładami języków bardzo wysokiego poziomu są Lisp (oparty na strukturach listowych), Prolog (oparty na logice) i Smalltalk (oparty na obiektach).

25 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 25 Języki wysokiego poziomu do prototypowania Język RodzajDziedzina zastosowania SmalltalkObiektowySystemy interakcyjne JavaObiektowySystemy interakcyjne PrologLogikaPrzetwarzanie symboliczne LispOparty na listachPrzetwarzanie symboliczne

26 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 26 Wybór języka do prototypowania l Jaka jest dziedzina zastosowania związana z rozwiązywanym problemem? Jaki jest spodziewany rodzaj interakcji z użytkownikiem? Różne języki mają rozmaite poziomy wspomagania kontaktu z użytkownikiem. l Jakie środowisko wspomagające jest dostarczane razem z językiem? Dobrze opracowane środowisko programistyczne z wieloma narzędziami i łatwym dostępem do komponentów użycia wielokrotnego upraszcza proces tworzenia prototypu.

27 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 27 Programowanie baz danych l Większość gospodarczych programów użytkowych obejmuje przetwarzanie danych z bazy danych i generowanie wyników, które polega na organizowaniu i formatowaniu danych. l Programowanie bazy danych jest wykonywane w specjalizowanym języku, który ma wbudowana wiedzę o bazie danych i zawiera operacje służące do pracy z bazą danych. l Pojęcie język czwartej generacji (4GL) obejmuje zarówno język programowania bazy danych, jak i wspomagające go środowisko. l Interfejs użytkownika składa się zwykle ze zbioru standardowych formularzy i arkuszy kalkulacyjnych.

28 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 28 Komponenty języków czwartej generacji Generator raportów Arkusz kalkulacyjny Generator interfejsów Język programowania BD System zarządzania bazą danych Język czwartej generacji

29 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 29 Scalanie komponentów i programów użytkowych l Czas konieczny do zbudowania systemu może być krótszy, jeśli wiele jego części będzie ponownie wykorzystanych, a nie zaprojektowanych i zaimplementowanych od nowa. l Prototypy mogą powstawać bardzo szybko, jeśli jest do dyspozycji zbiór komponentów użycia wielokrotnego i jakiś mechanizm scalania komponentów w system. l Ten mechanizm musi obejmować sterowanie i komunikację komponentów.

30 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 30 Wspomaganie prototypowania z komponentami użycia wielokrotnego l Na poziomie programu użytkowego, na którym całe systemy programów użytkowych mogą być zintegrowane z prototypem w celu współdzielenia ich funkcjonalności. Jeśli prototyp wymaga na przykład udogodnień do przetwarzania tekstów, to można je zapewnić przez integrację ze standardowym systemem przetwarzania tekstów. Programy takie jak Microsoft Office wspomagają łączenie programów użytkowych. l Na poziomie komponentów, na którym poszczególne komponenty są integrowane w ramach standardowego zrębu i z nich jest implementowany system.

31 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 31 Scalanie komponentów użycia wielokrotnego Kod sterujący i integrujący Oprogramowane komponenty użycia wielokrotnego Zrąb scalania komponentów Wykonywalny prototyp

32 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 32 Dokument złożony l Zawiera elementy tekstowe, elementy arkusza i pliki z nagraniami. l Gdy użytkownik systemu otwiera obiekt określonego typu, powiązany z nim program użytkowy zaczyna pracę, żeby udostępnić odpowiednia funkcjonalność. l Gdy otwierany jest na przykład obiekt dźwiękowy, uruchamia się odtwarzacz nagrań, który obsłuży ten plik.

33 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 33 Przypisanie programów użytkowych Dokument złożony Tekst 5Nagranie 2Tekst 4Tabela 2 Tekst 1Tabela 1Tekst 2Tekst 3 Procesor tekstówArkusz kalkulacyjny Odtwarzacz dźwięków Nagranie 1

34 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 34 Wspomaganie procesu scalania komponentów za pomocą systemów tworzenia graficznego l Systemy tworzenia graficznego, takie jak Visual Basic, wspomagają takie podejście do budowania programów użytkowych opartych na użyciu wielokrotnym. l Programiści użytkowi budują system interakcyjnie, definiując interfejs w kategoriach ekranów, pól, przycisków i menu. Te elementy maja nazwy i przypisane do nich skrypty przetwarzające (np. przycisk „Symuluj”. W tych skryptach można wywoływać komponenty ponownego użycia, specjalnie napisany kod oraz mieszać jedno i drugie.

35 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 35 Programowanie graficzne z użyciem wielokrotnym Komponent daty Skrypt sprawdzający zakres Komponent rysujący płótna Plik Edycja Widoki Układ Opcje Pomoc Skorowidz ogólny 20 lutego 2000 Komponent wy- świetlający tekst znakowany Komponent znaku zachęty + skrypt Komponent wy- świetlający drzewo

36 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 36 Problemy z użyciem systemów programowania graficznego l W zasadzie wspomaga tworzenie małych i prostych programów użytkowych. W wypadku większych systemów, które muszą być tworzone przez większe zespoły, jest to znacznie trudniej zorganizować. l Nie ma jawnej architektury systemu, a często występują złożone zależności między różnymi częściami systemu. Sprawia to kłopoty, gdy pojawiają się żądania zmian.

37 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 37 Prototypowanie interfejsu użytkownika l Graficzne interfejsy użytkownika są obecnie normą w wypadku systemów interakcyjnych. l Wysiłek włożony w wyspecjalizowanie, zaprojektowanie i zaimplementowanie interfejsu użytkownika jest istotną częścią kosztu zbudowania programu użytkowego. l Projektanci nie powinni nakłaniać użytkowników do swojej wizji akceptowalnego interfejsu. Użytkownik musi brać udział w procesie projektowania interfejsu. l Projektowanie koncentrujące się na użytkowniku polega na prototypowaniu interfejsu i udziale użytkownika przez cały proces projektowania interfejsu.

38 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 38 Główne tezy l Aby przedstawić użytkownikom wizję udogodnień systemu, można zbudować jego prototyp. Prototyp może zatem pomóc w określeniu i zatwierdzeniu wymagań systemu. l W miarę wzrostu dążenia do szybkiego dostarczania oprogramowania, prototypowanie jest coraz częściej używane jako standardowa metoda tworzenia małych i średnich systemów w zastosowaniach gospodarczych. l Prototypowanie „z porzuceniem” polega na budowie prototypu, który pomoże w zrozumieniu wymagań systemowych. W wypadku prototypowania ewolucyjnego prototyp ewoluuje przez kilka wersji do ostatecznego systemu. l Implementując prototyp porzucany, najpierw buduje się te części systemu, które rozumie się najsłabiej. Przy prototypowaniu ewolucyjnym najpierw buduje się te części systemu, które rozumie się najlepiej.

39 ©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 39 Główne tezy l Tworzenie błyskawiczne jest bardzo ważne w wypadku prototypowych systemów. Aby szybko dostarczyć prototyp, trzeba pominąć pewną część funkcjonalności systemu lub rozluźnić więzy niefunkcjonalne, takie jak czas reakcji i niezawodność. l Metody prototypowania obejmują użycie języków bardzo wysokiego poziomu, programowanie bazy danych i konstrukcję prototypu z komponentów użycia wielokrotnego. Wiele środowisk prototypowania wspomaga twórcze podejście oparte na programowaniu graficznym. l Interfejs użytkownika zawsze należy tworzyć przez prototypowanie, ponieważ ich wyspecyfikowanie w postaci modelu statycznego jest praktycznie niemożliwe. Użytkownicy powinni brać udział w ocenie i ewolucji prototypu.


Pobierz ppt "©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 8 Slide 1 Prototypowanie oprogramowania l Służy do szybkiego rozwoju oprogramowania zgodnie z."

Podobne prezentacje


Reklamy Google