inżynieria oprogramowani7 R2GEKXV5F3KCLE7Y25OYUML2R2BMSYEI7Y3XZ7A


Inżynieria oprogramowania - 8 Slide 1

Prototypowanie oprogramowania

. Szybka budowa

oprogramowania w celu

określenia i zatwierdzenia

wymagań

Inżynieria oprogramowania - 8 Slide 2

Cele

. Określić rolę prototypowania w różnych

projektach budowy oprogramowania

. Omówić prototypownie ewolucyjne i

prototypowanie z porzuceniem

. Omówić wybrane techniki szybkiego

prototypowania

. Wyjaśnić potrzebę prototypowania interfejsu

użytkownika

Inżynieria oprogramowania - 8 Slide 3

Zawartość

. Prototypowanie w procesie tworzenia

oprogramowania

. Techniki prototypowania

. Prototypowanie interfejsu użytkownika

Inżynieria oprogramowania - 8 Slide 4

Prototypowanie systemu

. Prototypowanie polega na szybkiej budowie

początkowej wersji systemu

. Granice pomiędzy prototypem a budowanym

systemem zacierają się coraz bardziej gdyż wiele

systemów budowanych jest przy użyciu podejścia

ewolucyjnego

Inżynieria oprogramowania - 8 Slide 5

Istota stosowania prototypów

. Prototypy mają pomóc klientowi i dostawcy

zrozumieć wymagania systemu

. Określenie wymagań. Użytkownik może eksperymentować z

prototypem aby sprawdzić w jakim stopniu budowany system

pomoże mu w pracy

. Zatwierdzenie wymagań. Prototyp może pomóc w ujawnieniu

błędów i pominięć w specyfikacji wymagań

. Prototypowanie można uważać jako działanie

zmierzające do redukcji ryzyka związanego z

budową oprogramowania

Inżynieria oprogramowania - 8 Slide 6

Korzyści prototypowania

. Ujawnienie rozbieżności w rozumieniu systemu pomiędzy

użytkownikami i twórcami oprogramowania

. Wykrywanie brakujących usług i identyfikowanie

sprzecznych lub niekompletnych wymagań

. Udostępnienie systemu o ograniczonych

funkcjonalnościach już w początkowym stadium budowy

. Prototyp może stanowić podstawę do lepszego

definiowania specyfikacji systemu

. Prototypowy system może być użyty w celach

szkoleniowych i testowych

Inżynieria oprogramowania - 8 Slide 7

Proces budowy prototypu

Plan

prototypowania

Określ cele

prototypu

Zdefiniuj

funkcjonalność

prototypu

Zbuduj

prototyp

Oceń

prototyp

Ogólna

definicja

Wykonywalny

prototyp

Raport o ocenie

prototypu

Inżynieria oprogramowania - 8 Slide 8

Prototypowanie w procesie

budowy oprogramowania

. Prototypowanie ewolucyjne

. Podejście do budowy systemu polegające na stworzeniu

prototypu i jego ciągłe udoskonalanie aż do uzyskania finalnego

produktu

. Prototypowanie z porzuceniem

. Prototyp będący zazwyczaj praktyczną implementacją systemu

(często ograniczoną) ułatwia definiowanie i zatwierdzanie

wymagań systemowych. Po zbudowaniu specyfikacji wymagań

system budowany jest od początku przy użyciu innych metod

procesu tworzenie oprogramowania

Inżynieria oprogramowania - 8 Slide 9

Cele prototypowania

. Celem prototypowania ewolucyjnego jest

dostarczenie użytkownikowi działającego

systemu. Budowa systemu rozpoczyna się od

implementacji tych wymagań, które są najlepiej

rozumiane.

. Celem prototypowania z porzuceniem jest

zatwierdzenie lub zdefiniowanie wymagań

systemowych. Proces prototypowania rozpoczyna

się od implementacji tych wymagań, które są

najsłabiej rozumiane.

Inżynieria oprogramowania - 8 Slide 10

Podejścia do prototypowania

Prototypowanie

ewolucyjne

Dostarczony

system

Ogólne

wymagania

Prototypowanie

z porzuceniem

Wykonywalny prototyp +

specyfikacja systemu

Inżynieria oprogramowania - 8 Slide 11

Prototypowanie ewolucyjne

. Dla systemów, których nie da się lub trudno jest

wyspecyfikować (systemy AI, systemy interfejsu

użytkownika)

. Opiera się na technikach umożliwiających

szybkie iteracje systemu

. Weryfikacja nie jest możliwa z uwagi na brak

kompletnej specyfikacji. Zatwierdzenie polega na

zademonstrowaniu właściwego działania

systemu.

Inżynieria oprogramowania - 8 Slide 12

Prototypowanie ewolucyjne

Opracuj

abstrakcyjną

specyfikację

Zbuduj

prototyp

systemu

Użytkuj

prototyp

systemu

Dostarcz

system

System jest

odpowiedni?

NIE

TAK

Inżynieria oprogramowania - 8 Slide 13

Zalety prototypowania ewolucyjnego

. Przyspieszenie dostarczenia systemu (roboczej

wersji)

. Szybka dostawa i wdrożenie są czasem ważniejsze niż

funkcjonalności czy łatwość pielęgnacji systemu

. Zaangażowanie użytkownika w budowę systemu

. System prawdopodobnie lepiej wypełni wymagania

użytkownika i bardziej prawdopodobnie że nie zostanie

odrzucony

Inżynieria oprogramowania - 8 Slide 14

Prototypowanie ewolucyjne

. Specyfikowanie, projektowanie i

implementowanie przeplatają się wzajemnie

. System jest budowany w postaci przyrostów

dostarczanych kolejno klientowi

. Wykorzystuje się techniki szybkiego tworzenia

oprogramowania takie jak narzędzia CASE czy

języki czwartej generacji 4GL

. Interfejs użytkownika zazwyczaj tworzy się przy

pomocy narzędzi graficznych

Inżynieria oprogramowania - 8 Slide 15

Problemy prototypowania ewolucyjnego

. Problemy zarządzania

. Istniejące procesy zarządzania zakładają stosowanie modelu

kaskadowego do budowy oprogramowania

. Od członków zespołu tworzącego oprogramowanie wymagane

są specjalistyczne umiejętności

. Problemy z pielęgnacją

. Ciągłe zmiany powodują uszkodzenie struktury tworzonego

systemu co w dłuższym okresie powiększa koszty pielęgnacji

. Problemy z umową

Inżynieria oprogramowania - 8 Slide 16

Prototyp jako specyfikacja

. Niektóre elementy wymagań (np. funkcje

krytyczne z uwagi na bezpieczeństwo) mogą nie

poddawać się prototypowaniu i w związku z tym

nie pojawią się w specyfikacji

. Prototyp (implementacja) nie stanowi prawnej

podstawy kontraktu

. Wymagania niefunkcjonalne nie mogą być

odpowiednio przetestowane w systemie

prototypowym

Inżynieria oprogramowania - 8 Slide 17

Tworzenie przyrostowe

. System budowany jest i dostarczany w postaci przyrostów

po określeniu ogólnej architektury

. Dla każdego przyrostu można opracowywać wymagania i

ich specyfikację

. Użytkownicy mogą eksperymentować z dostarczonymi

przyrostami podczas gdy dalsze fragmenty są w trakcie

budowania (forma prototypu systemu)

. Łączy w sobie pewne zalety prototypowania przy

zachowaniu lepszej struktury oprogramowania, ułatwiając

proces zarządzania

Inżynieria oprogramowania - 8 Slide 18

Przyrostowy proces tworzenia

Zaprojektuj

architekturę

systemu

System jest

gotowy?

NIE

TAK

Wyspecyfikuj

przyrost

systemu

Zbuduj

przyrost

systemu

Oceń

przyrost

Określ

końcowe

produkty

Dostarcz

gotowy

system

Oceń

system

Zintegruj

przyrost

Inżynieria oprogramowania - 8 Slide 19

Prototypowanie z porzuceniem

. Stosowane w celu ograniczenia ryzyka

związanego ze specyfikacją wymagań

. Prototyp budowany jest na podstawie wstępnej

specyfikacji, dostarczany do sprawdzenia

klientowi a następnie porzucany

. Prototyp nie powinien być uważany jako finalny

produkt

. Pewne cechy systemy mogą być pominięte

. Nie jest przeznaczony do dłuższego użytku

. System ma nieodpowiednią strukturę i jest trudny w utrzymaniu

Inżynieria oprogramowania - 8 Slide 20

Prototypowanie z porzuceniem

Wyspecyfikuj

system

Oceń

prototyp

Zbuduj

prototyp

Ogólne

wymagania

Oceń

system

Zbuduj

oprogramowanie

Dostarczony

system

oprogramowania

Komponenty użycia

wielokrotnego

Inżynieria oprogramowania - 8 Slide 21

Dostarczanie prototypu

. Dostawca może być zmuszany do dostarczenia

prototypu jako finalnego systemu

. Nie jest to właściwe z uwagi na:

. Trudność z dostosowaniem prototypu do wymogów

niefunkcjonalnych

. Brak dokumentacji systemu

. Degradację struktury systemu w wyniku szeregu zmian w

trakcie tworzenia prototypu

. Niemożność stosowania standardów jakości w trakcie procesu

tworzenia prototypu

Inżynieria oprogramowania - 8 Slide 22

Metody szybkiego prototypowania

. żnorodne techniki mogą być wykorzystywane

do szybkiego prototypowania

. Tworzenie za pomocą dynamicznych języków wysokiego

poziomu

. Programowanie bazy danych

. Scalanie komponentów i aplikacji

. Techniki te często stosowane są łącznie

. Programowanie graficzne jest nieodłączną częścią

większości systemów do budowy prototypów

Inżynieria oprogramowania - 8 Slide 23

Języki prototypowania

Smalltalk Zorientowany obiektowo Systemy interaktywne

Java Zorientowany obiektowo Systemy interaktywne

Prolog Programowanie w logice Przetwarzanie symboliczne

Lisp Oparty na listach Przetwarzanie symboliczne

Inżynieria oprogramowania - 8 Slide 24

Wybór języka prototypowania

. Jaka jest dziedzina problemu aplikacji?

. Jaka jest wymagana interakcja z użytkownikiem?

. Jakie środowisko wspierające dostarczane jest

wraz z danym językiem?

. żne części systemu mogą być programowane

w różnych językach. Jednakże mogą pojawić się

problemy z wzajemną komunikacją pomiędzy

elementami napisanymi w różnych językach

Inżynieria oprogramowania - 8 Slide 25

Języki programowania bazy danych

. Języki specyficzne dziedzinowo dla aplikacji

biznesowych opartych na systemie zarządzania bazą

danych

. Zazwyczaj zawierają język zapytań bazy danych, edytor

ekranów, generator raportów i arkusz kalkulacyjny

. Mogą być zintegrowane z narzędziami CASE

. Język + środowisko są czasami określane mianem języka

czwartej generacji (4GL)

. Efektywne kosztowo w przypadku systemów

biznesowych małej i średniej wielkości

Inżynieria oprogramowania - 8 Slide 26

Programowanie baz danych

Generator

raportów

Arkusz

kalkulacyjny

Generator

interfejsów

Język

programowania

BD

System zarządzania bazą danych

Język czwartej generacji

Inżynieria oprogramowania - 8 Slide 27

Programowanie graficzne

. Języki skryptowe takie jak Visual Basic ułatwiają

programowanie graficzne gdzie w fazie budowy

prototypu tworzy się interfejs użytkownika za

pomocą standardowych elementów i

powiązanych z nimi komponentów

. Istnieje obszerna biblioteka komponentów

ułatwiających tego typu projektowanie

. Komponenty te można dołączać do aplikacji w

celu realizacji specyficznych wymagań

użytkownika

Inżynieria oprogramowania - 8 Slide 28

Programowania graficzne z

użyciem wielokrotnym

20 lutego 2000

3.876

Plik Edycja Widoki Układ Opcje Pomoc

Skorowidz

ogólny

Komponent

daty

Skrypt

sprawdzający

zakres

Komponent

rysujący

płótna

Komponent

wyświetlający

drzewo

Komponent

znaku zachęty

+ skrypt

Komponent

wyświetlający

tekst znakowy

Inżynieria oprogramowania - 8 Slide 29

Problemy z projektowaniem

graficznym

. Trudno skoordynować projektowanie zespołowe

. Niezbyt przejrzysta architektura systemu

. Złożone zależności pomiędzy częściami

programu mogą powodować problemy z dalszą

jego pielęgnacją

Inżynieria oprogramowania - 8 Slide 30

Prototypowanie interfejsu użytkownika

. Niemożliwym jest wcześniejsze wyspecyfikowanie

spodziewanego przez klienta wyglądu interfejsu

użytkownika w sposób efektywny (prototypowanie)

. Tworzenie UI obejmuje ciągle rosnącą część kosztów

ogólnych budowy systemu

. Generatory interfejsu użytkownika mogą być użyte do

naszkicowania interfejsu i symulowania jego

funkcjonalności za pomocą komponentów powiązanych z

określonymi elementami interfejsu

. Interfejsy aplikacji webowych można prototypować przy

użyciu edytorów stron

Inżynieria oprogramowania - 8 Slide 31

Główne tezy

. Prototyp można wykorzystać w celu pokazania

użytkownikowi końcowemu funkcjonalności systemu

. Prototypowanie jest szczególnie wykorzystywane tam

gdzie wymagane jest szybkie tworzenie systemu

. Prototypowanie z odrzuceniem jest stosowane w celu

lepszego zrozumienia wymagań systemowych

. W trakcie procesu prototypowania ewolucyjnego system

budowany jest w drodze ewolucji od postaci początkowej

do końcowej

Inżynieria oprogramowania - 8 Slide 32

Główne tezy

. Istotne jest szybkie tworzenie prototypów. Takie

podejście może prowadzić do odrzucania wybranych

funkcjonalności lub łagodzenia ograniczeń

niefunkcjonalnych.

. Techniki prototypowania opierają się na językach bardzo

wysokiego poziomu, programowaniu baz danych i

konstruowaniu prototypu z komponentów wielokrotnego

użytku.

. Prototypowanie jest zasadniczą metodą tworzenia

niektórych elementów systemu jak np. interfejsu

użytkownika, który nie może być efektywnie

wyspecyfikowany na etapie początkowym. Użytkownik

musi uczestniczyć w procesie prototypowania



Wyszukiwarka

Podobne podstrony:
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
zagadnienia egzaminacyjne z przedmiotu inżynieria oprogramowania zIO
Inżynieria oprogramowania Diagramy ERD
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Inżynieria oprogramowania, Studia, Informatyka, Informatyka, Informatyka

więcej podobnych podstron