IO modele id 219744 Nieznany

background image

1

Inżynieria Oprogramowania
modele procesu produkcji

Dr inż. Ilona Bluemke

Plan wykładu

z

Model wodospadowy

z

Model ewolucyjny

z

Prototypowanie

z

Formalne transformacje

z

Metoda iteracyjna

z

Metoda reuse

z

Model spiralny

z

Czynniki nie-techniczne w inżynierii

oprogramowania

Model wodospadowy (waterfall)
(Royce 1970)

Inaczej kaskadowy, liniowy
Analogia do prowadzenia prac inżynieryjnych.

Wprowadzono fazy:

z

specyfikacji wymagań

z

projektowania oprogramowania (design)

z

implementacji (implementation, coding)

z

testowania

z

użytkowania i pielęgnowania

Nakładanie się faz

Okreslanie
wymagań

P

rojekto

wanie

Implemen
tacja

Testowanie Praca

Pielęgnowanie

Faza
strategiczna Analiza

Instalacja

Dokumentacja

Estymacja kosztów

28

28

44

s. biznes.

30

26

44

s. nauk.

50

17

33

s. operac.

34

20

46

s. sterow.

testy

Implement.

Wymagania/
projekt

Zalety i wady modelu
wodospadowego

Zalety:

z

łatwość zarządzania przedsięwzięciem

(planowanie, harmonogramowanie,

monitorowanie)

z

narzucenie kolejności wykonywania prac

Wady modelu:

z

narzucenie kolejności wykonywania prac

z

wysoki koszt błędów popełnionych we

wczesnych fazach

z

długa przerwa w kontaktach z klientem

background image

2

Rezultaty faz modelu
wodospadowego - 1

z

Analiza wymagań - studium wykonalności,

„zgrubne” wymagania

z

Definicja wymagań - dokument opisujący

wymagania

z

Specyfikacja systemu - funkcjonalna

specyfikacja systemu, plan testów

akceptacyjnych, szkic podręcznika

użytkownika

z

Projektowanie architektury - specyfikacja

architektury, testy systemowe

z

Projektowanie interfejsów - specyfikacja

interfejsów, testy integracyjne

Rezultaty faz modelu
wodospadowego - 2

z

Projektowanie jednostek - projekt

szczegółowy, testy jednostkowe

z

Kodowanie - kod programu

z

Testowanie jednostek - raport testowania

z

Testowanie modułów - raport testowania

z

Testowanie integracyjne - raport testowania

integracyjnego, podręcznik użytkownika

z

Testowanie systemowe - raport testowania

z

Testowanie akceptacyjne - system i

dokumentacja

W & W

Weryfikacja

z

Czy właściwie budujemy produkt ?

z

Czy spełnia wymagania ?

Walidacja

z

Czy budujemy właściwy produkt ?

z

Czy funkcje produktu są takie jak

klient naprawdę oczekiwał ?

Model ewolucyjny

(exploratory programming), odkrywczy

Stosowany w przypadkach, gdy określenie

dokładnych wymagań klienta nie jest
możliwe (np. systemy sztucznej
inteligencji).

Model ewolucyjny - 2

O p raco w an ie
sp ecyfik acji

B u d o w a
system u

U żytk o w an ie
system u

S ystem
w łaściw y

T ak

N ie

Zalety i wady m. ewolucyjnego

Zalety:

z

możliwość stosowania nawet w przypadkach

kłopotów z określeniem wymagań klienta.

Wady:

z

struktura systemu b. zagmatwana

z

konieczność bardzo szybkiej produkcji stąd użycie

języków takich jak Lisp, Prolog, środowisk

produkcji

z

nie ma weryfikacji (sprawdzenia czy spełnia

wymogi)

z

nie gwarantuje możliwości pielęgnowania systemu

background image

3

Prototypowanie

Fazy:

z

ogólne określenie wymagań

z

opracowanie szybko działającego
prototypu

z

walidacja prototypu przez klienta

z

określenie szczegółowych wymagań

z

opracowanie pełnego systemu

Prototyp – cele, możliwości

Celem prototypu jest wykrycie:

z

trudnych usług

z

braków w specyfikacji

z

nieporozumień między klientem a

projektantami

Prototyp pozwala na:

z

demonstrację pracującego systemu

z

daje możliwości szkolenia zanim zostanie

zbudowany pełen system

Budowa prototypu

z

programowanie ewolucyjne

z

wykorzystanie gotowych komponentów

z

niepełna realizacja

z

języki wysokiego poziomu

z

generatory np. interfejsów użytkownika

Formalne transformacje

Wymagania wobec systemu są zapisywane w

języku formalnym. Podlegają one

automatycznym przekształceniom do

programu.

Zaleta:

z

wysoka niezawodność (brak błędów przy

transformacjach)

Wady:

z

trudności formalnego specyfikowania

z

mała efektywność kodu

Formalne specyfikacje

z

Stosuje się ją do produkcji systemów

wymagających dużej niezawodności,

bezpieczeństwa.

z

Formalne specyfikacje wymagają dużych

umiejętności zespołu.

z

Nie wszystkie wymagania można

formalnie wyspecyfikować np. nie można

formalnie wyspecyfikować interfejsu

użytkownika.

Realizacja przyrostowa
(incremental development)

O k re śla n ie
w ym a g a ń

P ro je k t
o g ó ln y

W yb ó r
fu n k c ji

P ro je k t
o g ó ln y

W yb ó r
fu n k c ji

P ro je k t
Im p le m e n ta c ja
T e sty

D o sta rc z e n ie
c z ę śc i syst.

ite ra c je

background image

4

Kryteria wyboru funkcji do realizacji

z

Priorytet dla klienta

z

Łatwość realizacji

z

Przydatność dla dalszych iteracji

Wady i zalety metody iteracyjnej

Zalety:

z

częsty kontakt z klientem

z

możliwość wczesnego wykorzystywania
części systemu

Wady:

z

- dodatkowy koszt związany z realizacją
fragmentów systemu (pisanie szkieletów
modułów)

Montaż z gotowych elementów

(off-shell programming, reuse )

W montażu z gotowych elementów (ang. reuse,

off-shell programming) korzysta się z
gotowych, dostępnych komponentów i tworzy
się kod integrujący je.

COTS ang. Commercial Off The Shelf
Stosowanie :

z

bibliotek

z

języków czwartej generacji

z

pełnych aplikacji

Reuse - Proces produkcji - 1

z

Specyfikacja wymagań.

z

Analiza komponentów - poszukiwanie

komponentów spełniających funkcje systemu,

zwykle komponenty spełniają tylko część

wymagań.

z

Modyfikacja wymagań – dostosowanie

wymagań do znalezionych komponentów, w

przypadku wymagań bardzo istotnych dla

systemu, dla których nie znaleziono

komponentów, poszukiwanie rozwiązań

alternatywnych.

Reuse – proces produkcji - 2

z

Projektowanie systemu z komponentami –
zaprojektowanie „połączeń” między
komponentami, ewentualne zaprojektowanie
kodu realizującego wymagania, dla których
komponenty nie były dostępne.

z

Realizacja systemu i integracja –
implementacja i testowanie zaprojektowanego
kodu i integracja komponentów.

Wady i zalety metody reuse

Zalety:

z

wysoka niezawodność

z

narzucenie standardów

z

małe koszty, szybko

Wady:

z

dodatkowy koszt przygotowania elementów do

ponownego użycia

z

ryzyko uzależnienia od dostawcy komponentu

z

wysokie koszty pielęgnowania

z

nie w pełni realizowane wymagania klienta.

background image

5

Model spiralny (Boehm)

Atestowanie

Planowanie

Konstrukcja

Analiza
ryzyka

Sektory spirali

Każda spirala składa się z czterech sektorów:

1.

Określenia celów, identyfikacja ograniczeń,

poszukiwanie alternatywnych rozwiązań.

2.

Analiza ryzyka związanego z

proponowanymi rozwiązaniami, redukcja

ryzyka np. w przypadku ryzyka związanego z

wymaganiami budowa prototypu.

3.

Po określeniu ryzyka wybiera się najlepsze

rozwiązanie (o najmniejszym ryzyku).

4.

Planowanie następnej spirali, podjęcie

decyzji dotyczącej kontynuacji.

Model spiralny

W modelu spiralnym można włączać inne

modele. Np. prototypowanie można

zastosować do wykrycia braków w

wymaganiach, formalne specyfikacje do

budowy fragmentów systemu, dla

których są wymagane bardzo wysokie

parametry niezawodnościowe, a model

wodospadowy dla podsystemów o

dobrze określonych wymaganiach.

Możliwość obserwowania
postępu wykonywanych prac

Modele o

dobrej obserwowalności

:

z

wodospadowy ,

z

formalnych transformacji (każda transformacja kończy

się dokumentem, raportem),

z

spiralny (w każdym segmencie spirali powstaje

dokument).

Modele o

słabej obserwowalności

z

Montaż z gotowych komponentów

z

Najmniejsza możliwość obserwowania procesu

produkcji jest w modelu ewolucyjnym

Przykładowe pytania

z

Wady i zalety modelu wodospadowego.

z

Jakie są „deliverable” w modelu wodospadowym ?

z

Kiedy można stosować model wodospadowy ?

z

Kiedy stosuje się prototypowanie ?

z

Dla jakiego typu oprogramowania stosuje się

formalne specyfikacje ?

z

W jakich modelach procesu produkcji

oprogramowania zajmujemy się analizą ryzyka ?

z

Na czym polega walidacja ? Na czym polega

weryfikacja ?

z

Jakie kryteria wyboru funkcji do realizacji możemy

stosować w modelu iteracyjnym ?

Czynniki nie-techniczne w
inżynierii oprogramowania

z

Zarządzający projektem powinien rozumieć
zespół projektowy, osoby indywidualne, ich
interakcje, lepsze zrozumienie pozwala na
stawianie realnych celów

z

Systemy są użytkowane przez ludzi i ich
możliwości i ograniczenia powinny być brane
pod uwagę podczas projektowania systemu.

z

Znajomość czynników społecznych pozwala
zwiększyć produktywność pracowników

background image

6

Proporcje czasu

z

praca własna

z

czynności nieprodukcyjne

z

interakcje

( 30% , 20% , 50%)

Zespoły których członkowie znają się (wady,

zalety) mają większą wydajność niż takie, w
których członkowie mają niewielki kontakt ze
sobą.

Osobowości w grupie

zorientowany na:

z

na zadania - motywacją jest sama praca

z

na siebie - motywacją jest dążenie do
sukcesu, praca jest środkiem

z

na interakcje - motywacją jest obecność w
grupie

Najlepsze efekty - zespoły zróżnicowane,

przywódcą osoba zorientowana na pracę.

ego -less programming

z

Program uważany jako "własny", trudno
przyjmowana krytyka, traktowany jako
bezbłędny

z

Błędy - normalne, muszą wystąpić

z

Program traktowany jako "wspólny" -
ego -less, przyjmowana krytyka

Przywódca grup

z

wyznaczony może pełnić funkcje
administracyjne

z

wyłaniany mający największy wpływ na
zespół, osobowość dominująca, często
na każdym etapie inny

Integracja zespołu

Lojalność w grupie, integracja

z

+ współpraca, pomoc

z

- utrata krytycyzmu

Interakcje w grupie

Czynniki wpływające na efektywność interakcji:

z

wielkość grupy

z

struktura

z

status i osobowość członków

z

środowisko pracy

n (n -1)

liczba potencjalnych dróg

komunikacyjnych

n

członków grupy


Wyszukiwarka

Podobne podstrony:
IO lab 2 id 219711 Nieznany
Modele 2 id 305026 Nieznany
io wyklad id 219734 Nieznany
modele id 305023 Nieznany
modele id 305044 Nieznany
IO lab 1 id 219710 Nieznany
Modele dynamiczne id 305054 Nieznany
modele rynkowe1 id 305129 Nieznany
IO wyk2 procesIO v1 id 556045 Nieznany
IO wyk Petri id 554305 Nieznany
IO wyk1 wprowadzenie id 555840 Nieznany
Modele konspektow lekcji id 305 Nieznany
IO id 219730 Nieznany
modele autoregresyjne id 73554 Nieznany
io lepsze odpowiedzi(1) id 2197 Nieznany
IO id 219697 Nieznany
modele rynkowe2 id 305130 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)

więcej podobnych podstron