Prototypowanie

Z PrePedia
Skocz do: nawigacja, szukaj
Information icon4.svg W Wikipedii odbyła się dyskusja nad usunięciem tego artykułu, zobacz ją.

Prototypowanie (ang. software prototyping) – rozwój oprogramowania poprzez tworzenie kolejnych wersji prototypów oprogramowania przy użyciu narzędzi do prototypowania. Prototypowanie stało się praktyką na tyle powszechną, że uważa się ją obecnie za standard.

Cele prototypowania[edytuj]

Zastosowanie metody prototypowania umożliwia:

  • usprawnienie procesu analizy problemu
  • doprecyzowanie wymagań na podstawie doświadczeń z prototypem
  • wczesne wykrycie nieporozumień na linii wykonawca-zleceniodawca
  • wykrycie brakujących funkcjonalności
  • zdiagnozowanie potencjalnych trudności
  • szkolenie użytkowników w trakcie tworzenia systemu
  • testowanie systemu w trakcie jego rozwoju

Prototypowanie ewolucyjne[edytuj]

Prototypowanie ewolucyjne zaczyna się od zbudowania prostego systemu spełniającego część funkcjonalności. Jest on następnie modyfikowany w miarę poznawania wymagań. Ostatecznie prototyp staje się systemem, którego oczekiwano.

Cele: Celem prototypowania ewolucyjnego jest dostarczenie użytkownikowi działającego systemu.

Zalety[edytuj]

  • Przyśpieszone dostarczenie użytkownikowi początkowej wersji systemu
  • Włączenie użytkownika w budowę systemu

Wady[edytuj]

  • Kłopoty z zarządzaniem – prototypowanie ewolucyjne cechuje się gwałtownym rozwojem, przez co nie nadąża się z tworzeniem dokumentacji;
  • Kłopoty z pielęgnacją – ustawiczne zmiany powodują uszkodzenia struktury prototypowanego systemu;
  • Kłopoty ze stworzeniem umowy – tradycyjny model umowy klienta z wytwórcą oprogramowania oparty jest na specyfikacji systemu uzgodnionej przed rozpoczęciem prac. W przypadku prototypowania ewolucyjnego zakres prac nie jest znany przed ich rozpoczęciem. Powoduje to problemy z ustaleniem wynagrodzenia.

Cechy[edytuj]

  • 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.

Prototypowanie z porzuceniem[edytuj]

Prototypowanie z porzuceniem służy do udoskonalenia i wyjaśnienia specyfikacji. Prototyp jest budowany, oceniany i modyfikowany. Ocena prototypu inspiruje opracowanie szczegółowej specyfikacji systemu, która jest częścią dokumentacji wymagań systemowych. Po ukończeniu tej specyfikacji prototyp nie jest potrzebny i odrzuca się go.

Cele: Celem prototypowania z porzuceniem jest zatwierdzenie i dostarczenie wymagań.

Zalety[edytuj]

  • Ułatwia stworzenie precyzyjnej specyfikacji wymagań
  • Zmniejsza ryzyko przy tworzeniu wymagań

Wady[edytuj]

  • Część pożądanych cech systemu może zostać pominięta poprzez zbytnie zasugerowanie się prototypem
  • System może być trudny w zarządzaniu

Cechy[edytuj]

  • Najczęściej stosowany przy budowie systemów sprzętowych. Posługując się ‘komponentami z półki’ sprawdzamy projekt przed podjęciem decyzji o kosztownych zakupach;
  • Używane do redukowania ryzyka wymagań;
  • Prototyp jest otrzymywany ze wstępnej specyfikacji, dostarczany do eksperymentów i porzucany;
  • Prototyp NIE powinien być traktowany jako końcowy system;
  • Część cech systemu może być pominięta;
  • Nie ma specyfikacji do długookresowej pielęgnacji;
  • System będzie źle strukturalizowany i trudny w zarządzaniu.

Tworzenie przyrostowe[edytuj]

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. Tworzenie przyrostowe jest łatwiejsze w zarządzaniu, ponieważ przestrzega się w nim standardów budowy oprogramowania.

Metody błyskawicznego prototypowania[edytuj]

  • Tworzenie za pomocą dynamicznych języków wysokiego poziomu
  • Języki programowania bazy danych
  • Scalanie komponentów i programów użytkowych

Inne metody budowania prototypu[edytuj]

  • Niepełna realizacja – z reguły tylko część wymagań systemu jest trudna do określenia. W związku z tym proponuje się by w ramach prototypu ująć tylko te funkcje;
  • Szybkie programowanie – prototyp może polegać na realizacji wszystkich funkcjonalności tą samą techniką, która zostanie użyta w ostatecznej wersji, aczkolwiek z zaniechaniem testowania dla przyśpieszenia procesu. W ten sposób prototyp różni się od ostatecznego produktu jedynie niezawodnością;
  • Papier – szybka i stosunkowo lubiana przez klientów technika prototypowania interfejsu użytkownika.

Podsumowanie[edytuj]

  1. Prototyp może zostać użyty do ukazania zleceniodawcy konkretnego produktu który otrzyma, co daje możliwość dopracowania ewentualnych braków lub błędów;
  2. Prototypowanie staje się niezmiernie ważne w projektach gdzie wymagany jest gwałtowny rozwój;
  3. Prototypowanie z porzuceniem używane jest do zapoznania się i dopracowania wymagań systemu;
  4. W podejściu ewolucyjnym prototypowania, rozwijany system ewoluuje od samego początku w kierunku gotowego produktu – finalnej wersji;
  5. Błyskawiczne prototypowanie jest istotne. Może wymagać porzucenia niektórych funkcjonalności lub rozluźnienia ograniczeń niefunkcjonalnych;
  6. Techniki prototypowania polegają również na wykorzystaniu dynamicznych języków wysokiego poziomu, języków programowania baz danych i prototypowania przez scalanie komponentów i programów użytkowych;
  7. Prototypowanie jest istotne dla części systemu takich jak interfejs użytkownika ze względu na trudność z efektywną wstępną specyfikacją. Użytkownik musi brać udział w ewaluacji prototypu.

Bibliografia[edytuj]