Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Prototypowanie oprogramowania
Służy do szybkiego rozwoju oprogramowania zgodnie z założonymi specyfikacjami
2
Cele Znać rolę prototypowania w różnych rodzajach przedsięwzięć.
Rozumieć różnicę między prototypowaniem ewolucyjnym i prototypowaniem z porzuceniem. Rozpoznawać trzy różne metody budowy prototypów. Wiedzieć, dlaczego prototypowanie jest jedyną sensowną metodą projektowania i tworzenia interfejsu użytkownika.
3
Zawartość Prototypowanie w procesie tworzenia oprogramowania
Metody błyskawicznego prototypowania Prototypowanie interfejsu użytkownika
4
Budowa prototypów 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ń. 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
Użycie prototypów oprogramowania
Określanie wymagań. Prototypy systemu umożliwiają użytkownikom eksperymentowanie w celu sprawdzenia, czy system pomaga im w pracy. Zatwierdzanie wymagań. Prototyp może ujawnić błędy i pominięcia w zaproponowanych wymaganiach.
6
Stosowanie prototypu systemu
Stosowanie prototypu systemu daje następujące korzyści: nieporozumienia między wytwórcami systemu a użytkownikami mogą być rozpoznane już w chwili prezentacji usług systemu, w trakcie budowy prototypu personel tworzący oprogramowanie może znaleźć sprzeczne lub niekompletne wymagania, 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, prototyp może być podstawą specyfikacji systemu o jakości przemysłowej.
7
Proces budowy prototypu
Zdefiniuj funkcjonalność prototypu Określ cele prototypu Oceń prototyp Zbuduj prototyp Plan prototypowania Ogólna definicja Wykonywalny prototyp Raport o ocenie prototypu
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: Zwiększona użyteczność systemu. Lepsze dopasowanie systemu do potrzeb użytkowników. Zwiększona jakość projektu. Większą zdatność do pielęgnacji. Zmniejszony wysiłek twórczy.
9
Prototypowanie w procesie tworzenia oprogramowania
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. 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
Cele prototypowania 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. 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
Prototypowanie ewolucyjne i z porzuceniem
Dostarczony system Prototypowanie ewolucyjne Ogólne wymagania Prototypowanie z porzuceniem Wykonywalny prototyp + specyfikacja systemu
12
Prototypowanie ewolucyjne
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. Prototypowanie ewolucyjne ma wiele wspólnego z metodami błyskawicznego tworzenia programów użytkowych.
13
Prototypowanie ewolucyjne
Opracuj abstrakcyjną specyfikację Zbuduj prototyp systemu Użytkuj prototyp systemu NIE TAK System jest odpowiedni? Dostarcz system
14
Zalety stosowania prototypowania ewolucyjnego
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. 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
Metody prototypowania ewolucyjnego
Procesy specyfikowania, projektowania i implementowania przeplatają się. 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. Stosuje się metody błyskawicznego tworzenia systemów. Mogą to być narzędzia CASE i języki czwartej generacji. 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
Główne problemy z prototypowaniem ewolucyjnym
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. Kłopoty z pielęgnacją Ustawiczne zmiany powodują uszkodzenia struktury prototypowego systemu. Kłopoty z umową
17
Weryfikacja i zatwierdzanie systemu zbudowanego z zastosowaniem prototypownia ewolucyjnego
Może polegać jedynie na stwierdzeniu, że program jest odpowiedni, tzn. wystarczająco dobry do zaplanowanego celu. Ta odpowiedniość nie jest oczywiście czytelnie mierzalna; można jedynie przeprowadzić jej subiektywną ocenę.
18
Tworzenie przyrostowe
Umożliwia uniknięcie niektórych trudności związanych z ustawicznymi zmianami charakterystycznymi dla prototypowania ewolucyjnego. We wczesnej fazie przedsięwzięcia powstaje ogólna architektura systemu, która potem służy za zrąb. W ramach tego zrębu przyrostowo tworzy się i dostarcza komponenty systemu. Po ich zatwierdzeniu i dostarczeniu nie zmienia się zrębu ani komponentów, chyba że zostaną wykryte błędy.
19
Przyrostowy proces tworzenia
Określ końcowe produkty Zaprojektuj archi- tekturę systemu Wyspecyfikuj przyrost systemu Zbuduj przyrost systemu Oceń przyrost NIE System jest gotowy? Dostarcz gotowy system Oceń system Zintegruj przyrost TAK
20
Prototypowanie z porzuceniem
To podejście umożliwia uniknięcie niektórych trudności związanych z ustawicznymi zmianami charakterystycznymi dla prototypowania ewolucyjnego. 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. W prototypie porzucanym można pominąć dobrze rozpoznaną funkcjonalność, rozluźnić standardy jakościowe i pominąć kryteria efektywnościowe. Język oprogramowania użyty do budowy takiego prototypu jest zwykle inny niż język implementacji gotowego systemu.
21
Proces wytwarzania oprogramowania z prototypowaniem z porzuceniem
Ogólne wymagania Zbuduj prototyp Oceń prototyp Wyspecyfikuj system Komponenty użycia wielokrotnego Dostarczony system oprogramowania Oceń system Zbuduj oprogramowanie
22
Wady prototypowania z porzuceniem
Dostrojenie prototypu tak, aby spełniał wymagania niefunkcjonalne dotyczące efektywności, zabezpieczenia, solidności i niezawodności, może być niemożliwe. Gwałtowne zmiany zachodzące w czasie budowania nieuchronnie powodują, że prototyp nie jest udokumentowany. Firmowe standardy jakości zwykle nie są rygorystycznie przestrzegane w czasie budowania prototypu.
23
Metody błyskawicznego prototypowania
Istnieją trzy metody błyskawicznego tworzenia: tworzenie za pomocą dynamicznych języków wysokiego poziomu, programowanie bazy danych, scalanie komponentów i programów użytkowych W praktyce przy budowaniu prototypu systemu wszystkie te metody są często stosowane łącznie. Tworzenie prototypu jest obecnie wspomagane przez zestaw narzędzi np. system Smalltalk VisualWork i Lotus Notes.
24
Tworzenie za pomocą dynamicznych języków wysokiego poziomu
Dynamiczne języki wysokiego poziomu to języki programowania, które obejmują mocne udogodnienia do zarządzania danymi w czasie wykonania. Upraszczają budowanie programu, ponieważ zmniejszają wiele kłopotów z przydziałem i zarządzaniem pamięcią. 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
Języki wysokiego poziomu do prototypowania
Język Rodzaj Dziedzina zastosowania Smalltalk Obiektowy Systemy interakcyjne Java Obiektowy Systemy interakcyjne Prolog Logika Przetwarzanie symboliczne Lisp Oparty na listach Przetwarzanie symboliczne
26
Wybór języka do prototypowania
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. 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
Programowanie baz danych
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. 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. Pojęcie język czwartej generacji (4GL) obejmuje zarówno język programowania bazy danych, jak i wspomagające go środowisko. Interfejs użytkownika składa się zwykle ze zbioru standardowych formularzy i arkuszy kalkulacyjnych.
28
Komponenty języków czwartej generacji
Generator interfejsów Arkusz kalkulacyjny Język programowania BD Generator raportów System zarządzania bazą danych Język czwartej generacji
29
Scalanie komponentów i programów użytkowych
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. 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. Ten mechanizm musi obejmować sterowanie i komunikację komponentów.
30
Wspomaganie prototypowania z komponentami użycia wielokrotnego
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. Na poziomie komponentów, na którym poszczególne komponenty są integrowane w ramach standardowego zrębu i z nich jest implementowany system.
31
Scalanie komponentów użycia wielokrotnego
Oprogramowane komponenty użycia wielokrotnego Zrąb scalania komponentów Wykonywalny prototyp Kod sterujący i integrujący
32
Dokument złożony Zawiera elementy tekstowe, elementy arkusza i pliki z nagraniami. Gdy użytkownik systemu otwiera obiekt określonego typu, powiązany z nim program użytkowy zaczyna pracę, żeby udostępnić odpowiednia funkcjonalność. Gdy otwierany jest na przykład obiekt dźwiękowy, uruchamia się odtwarzacz nagrań, który obsłuży ten plik.
33
Przypisanie programów użytkowych
Dokument złożony Tekst 1 Tabela 1 Tekst 2 Tekst 3 Nagranie 1 Tabela 2 Tekst 4 Nagranie 2 Tekst 5 Procesor tekstów Arkusz kalkulacyjny Odtwarzacz dźwięków
34
Wspomaganie procesu scalania komponentów za pomocą systemów tworzenia graficznego
Systemy tworzenia graficznego, takie jak Visual Basic, wspomagają takie podejście do budowania programów użytkowych opartych na użyciu wielokrotnym. 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
Programowanie graficzne z użyciem wielokrotnym
Komponent wy- świetlający tekst znakowany 3 . 8 7 6 Komponent daty Plik Edycja Widoki Układ Opcje Pomoc Skorowidz ogólny 20 lutego 2000 Skrypt sprawdzający zakres Komponent znaku zachęty + skrypt Komponent rysujący płótna Komponent wy- świetlający drzewo
36
Problemy z użyciem systemów programowania graficznego
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ć. 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
Prototypowanie interfejsu użytkownika
Graficzne interfejsy użytkownika są obecnie normą w wypadku systemów interakcyjnych. Wysiłek włożony w wyspecjalizowanie, zaprojektowanie i zaimplementowanie interfejsu użytkownika jest istotną częścią kosztu zbudowania programu użytkowego. Projektanci nie powinni nakłaniać użytkowników do swojej wizji akceptowalnego interfejsu. Użytkownik musi brać udział w procesie projektowania interfejsu. Projektowanie koncentrujące się na użytkowniku polega na prototypowaniu interfejsu i udziale użytkownika przez cały proces projektowania interfejsu.
38
Główne tezy 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. 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. 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. 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
Główne tezy 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ść. 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. 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.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.