inf2 w02

background image

Wykład 2

Metody i procesy

rozwoju oprogramowania

background image

itm / MVLab (c) 2007-2008

Metody i postępowanie

background image

itm / MVLab (c) 2007-2008

Metodologia planowania
działań

Postępowanie metodyczne

Postępowanie

Zapis / notacja

Koncepcja

Modele

postępowania

Analiza obiektowa,

Projektowanie

obiektowe

Unified Modeling

Language (UML)

background image

itm / MVLab (c) 2007-2008

Modele postępowania

background image

itm / MVLab (c) 2007-2008

Cele wykładu

zrozumienie jakie aspekty powinien zawierać model
postępowania

umiejętność opisu i porównania przedstawionych dalej
modeli postępowania

umiejętność wyboru właściwego modelu dla konkretnego
zastosowania

background image

itm / MVLab (c) 2007-2008

Motywacja

Podział skomplikowanych projektów na szereg faz o wyraźnie

określonym zakończeniu powoduje wzrost efektywności.

Dlatego zostały opracowane modele postępowania dla

projektów z różnych dziedzin, które w odpowiedni sposób

koordynują przebieg tych faz.

przykładowo: przepis kulinarny, plan budowy, rozwój produktu

Powody stosowania modeli w inżynierii oprogramowania:

złożoność programów (rodzaj zadań, wielkość)

duża skala (ludzie, koszty)

długi czas rozwoju (3,5,10 lat)

Cele stosowania modeli:

obniżenie kosztów

zwiększenie jakości

skrócenie czasu projektowania

background image

itm / MVLab (c) 2007-2008

Zawartość modeli postępowania

kolejność prac, (stopnie, fazy)

działania jakie należy wykonać podczas poszczególnych
faz

określenie produktów składowych i dokumentacji

kryteria zakończenia fazy (kiedy cele zostaną osiągnięte)

wymagane kompetencje osób zaangażowanych

odpowiedzialność i kompetencje

standardy i wytyczne dot. projektu

background image

itm / MVLab (c) 2007-2008

Wybór odpowiedniego modelu

stopień innowacyjności

ro

zle

gło

ść

proj

ekt

u

Code&fix

Model

kaskadowy

V-Model

Prototypowanie

Model

sawtooth

Model

spiralny

Model XP

background image

itm / MVLab (c) 2007-2008

Rozwój modeli postępowania

Code and fix

Kaskadowy

V-Model 97

Prototypowanie

Spiralny

Piłozębny

XP

QC

background image

itm / MVLab (c) 2007-2008

Code and fix

typowy model postępowania w przypadku małych,
jednoosobowych projektów lub zadań treningowych

(poziom podstawowy)

Zalety:

brak pracy organizacyjnej,

metoda prób i błędów

Wady:

wysokie prawdopodobieństwo wystąpienia

błędów; błędy ciężkie do wykrycia,

brak prawidłowej dokumentacji,

nieprzejrzysty kod,

ograniczona pielegnowalność

często wymagania klienta nie są spełnione

Pisanie kodu

Testy

Poprawki

background image

itm / MVLab (c) 2007-2008

Model wodospadowy

wszystkie operacje wykonywane są w ściśle
określonym porządku (sekwencyjnie) i do końca

sąsiednie fazy są spięte pętlą sprzężenia
zwrotnego

każda faza jest dokumentowana – model
zintegrowany dokumentacyjnie

kierunek przejścia: top-down

Studium wykonalności

Analiza

Projektowanie

Implementacja

Testowanie

Instalacja

Utrzymanie

Wynik zakończenia jednej fazy

„wpada” do następnej

background image

itm / MVLab (c) 2007-2008

Fazy modelu wodospadowego

Studium wykonalności: oszacowanie kosztów i możliwości

technicznych (wynik: plan projektu, kalkulacja, specyfikacja

wymagań)

Analiza: określenie zapotrzebowań oraz właściwości systemu

(wynik: specyfikacja zobowiązań)

Projekt: określenie architektury i algorytmów (wynik:

dokumentacja projektowa)

Implementacja: realizacja modelu projektowego (wynik: kod

źródłowy, dokumentacja techniczna)

Testowanie: testy modułów i systemu oraz testowanie przez

użytkownika (wynik: protokoły testów)

Instalacja: wdrożenie aplikacji u klienta

Pielęgnacja: optymalizacja, dopasowywanie, rozszerzenia

background image

itm / MVLab (c) 2007-2008

Zalety i wady modelu
wodospadowego

Zalety:

strukturalna konstrukcja programów

tworzenie dokumentacji równolegle z

pozostałymi pracami

wsparcie na etapie organizacji oraz

kończenia projektu

Wady:

konieczność zamrożenia specyfikacji

niebezpieczeństwo że dokumentacja

stanie się ważniejsza niż właściwy
system

Niewielki udział klienta

background image

itm / MVLab (c) 2007-2008

V-Modell 97

wzorowany na modelu postępowania dla projektów

programistycznych armii niemieckiej (Bundeswehry)

integracja systemów zapewniania jakości, zarządzania
projektem i konfiguracją w modelu wodospadowym

Podstawowymi elementami są czynności i produkty

Konstrukcja

Zapewnienie jakości

Analiza

Projekt systemu

Implementacja

Odbiór techn.

Test integracji

Test modułów

przypadki

testowe

Projekt obiektów

walidacja

weryfikacja

przypadki

testowe

scenariusze

użycia

background image

itm / MVLab (c) 2007-2008

Weryfikacja a Walidacja

W inżynierii oprogramowania:

weryfikacja rozumiana jest jako

porównanie gotowego produktu z jego

specyfikacją

walidacja to określenie wartości

gotowego programu w konkretnym

zastosowaniu, dla którego został on

zaprojektowany

Czy zrobiłem
to dobrze?

Czy zrobiłem
to co potrzeba?

background image

itm / MVLab (c) 2007-2008

Weryfikacja a Walidacja

W inżynierii oprogramowania:

weryfikacja rozumiana jest jako

porównanie gotowego produktu z jego

specyfikacją

walidacja to określenie wartości

gotowego programu w konkretnym

zastosowaniu, dla którego został on

zaprojektowany

Czy ja żem to,

Halinka, tak zrobił

jak oni chcieli?

Czy ja żem,

Halinka, zrobił to
o co mie, kurde,

chodziło?

weryfikacja
wg Kiepskich

walidacja wg Kiepskich

background image

itm / MVLab (c) 2007-2008

V-Modell 97: zalety i wady

Zalety:

zintegrowana koncepcja budowy systemu, zapewnienia

jakości oraz zarządzania projektem i konfiguracją

ogólny model postępowania z określonymi możliwościami

dopasowania

dobrze dostosowany do dużych projektów

podstawa do certyfikacji (ISO 9000)

dobra dokumentacja tworzona podczas całego procesu

Wady:

niebezpieczeństwo niekontrolowanego rozrostu biurokracji

konieczne wymaga wsparcie narzędziowego

czasochłonny

background image

itm / MVLab (c) 2007-2008

V-Model XT: podział

Jakie czynności są konieczne do realizacji projektu?

Jakie produkty muszą być osiągnięte w czasie jego
realizacji?

wybór

Cechy projektu

Idee

(wyobrażenia) o

projekcie

Uzasadnienie

Czynności

i produkty projektu

Cele:

uniknięcie wykonywania niepotrzebnych czynności

uniknięcie bezsensownych dokumentów

pewność opracowania wszystkich koniecznych dokumentów

background image

itm / MVLab (c) 2007-2008

Podejście nakierowane na
produkt (V-Model XT)

Produkt

Grupa produktów

Grupa czynności

Temat

Podczynność

produkcja

odpowiedzialność

Czynność

Rola

Rola

Rola

współpraca

opracowanie

background image

itm / MVLab (c) 2007-2008

Prototypowanie

Problemy typowego modelu etapowego

wymagania są trudne do pełnego wyspecyfikowania i
zauważenia na początku projektu

prezentacja wyników pracy po jej zakończeniu, brak
komunikacji klient - wykonawca

najlepsze rozwiązania znajduje się dzięki eksperymentom

Rozwiązanie: Prototypowanie

Rodzaje prototypów (wg celów)

demonstracyjny -umożliwia komunikację ze zleceniodawcą

w dosłownym rozumieniu -analiza obszarów zastosowań,
prowizorycznie działający program

wzorzec laboratoryjny -rozwiązanie problemów
konstrukcyjnych, analiza architektury i sposobów wdrożenia

system pilotażowy - podstawy dla produktu

background image

itm / MVLab (c) 2007-2008

Rodzaje prototypów

Interfejs użytkownika

Jądro aplikacji

Patformy

(middleware)

Oprogramowanie systemowe

Dane

Prototyp pionowy:
Realizuje wybrane części systemu ze
wszystkich poziomów; Prototyp
funkcjonalny realizujący wycinek
konkretnych możliwości.

Prototyp poziomy:
Realizuje w pełni
funkcje jednego z
poziomów systemu,
np. interfejs
użytkownika.

background image

itm / MVLab (c) 2007-2008

Prototypy - zalety i wady

Zalety:

redukcja ryzyka

integrowalne w tradycyjnych modelach postępowania

wzrost bezpieczeństwa planowania

lepsza współpraca z użytkownikiem docelowym i zamawiającym

Wady:

wyższe nakłady

niebezpieczeństwo: odrzucenie prototypu z uwagi na ograniczenia czasowe,
wiąże się z produktem końcowym

prototypy są często pojmowane jako usprawiedliwienie dla brakującej
dokumentacji

ograniczenia prototypów często nie są reprezentatywne

background image

itm / MVLab (c) 2007-2008

Model sawtooth

rozszerzenie V-Modelu o prototypowanie

Zapotrzebowanie

Prototyp 1

Prototyp 2

Testy-klient

Analiza

Koncepcja

systemu

Koncepcja

obiektu

Implementacja

Testy modułów

Testy integralności

Walidacja

klient

projektant

background image

itm / MVLab (c) 2007-2008

Model sawtooth

zalety i wady

Zalety:

Wysokie zaangażowanie klienta podczas procesu

projektowania

Minimalizacja ryzyka

Wysoka jakość produktu

Wady:

Duże nakłady na tworzenie prototypów

Kiepskie dostosowanie do małych i średnich projektów

background image

itm / MVLab (c) 2007-2008

Model spiralny

Model bazujący na analizie ryzyka

Koncentracja na kluczowych
problemach w fazach
początkowych

Cele każdego z cykli
wyprowadzane są na podstawie
wyników cyklu poprzedzającego

Osobne cykle spiralne mogą być
wykorzystane dla różnych
komponentów oprogramowania

background image

itm / MVLab (c) 2007-2008

Model spiralny

zalety i wady

Zalety:

Elastyczny model minimalizujący ryzyko

Możliwość wczesnej eliminacji błędów lub nienadających
się propozycji alternatywnych

Wsparcie ponownego wykorzystania modułów SW dzięki
rozważaniu propozycji alternatywnych

Wady:

Duża trudność zarządzania projektem. Trudno
określić jakie warunki brać pod uwagę dla specyfiki
projektu.

Nieefektywny dla małych projektów

background image

itm / MVLab (c) 2007-2008

eXtreme Programming

szybki model spiralny

opracowany w roku 1995

przez Kenta Becka, Warda
Cunninghama i Rona

Jeffriesa

model postępowania dla

programowania
obiektowego

zwinny proces rozwoju

aplikacji dla małych
zespołów

praca sterowana testami

1. Określ cel.
2. Wykonaj działanie.
3. Odbierz informację zwrotną.
4. Skoryguj działanie tak,
by kolejny efekt był bliższy sukcesowi.

background image

itm / MVLab (c) 2007-2008

XP -to co najważniejsze

Iteracyjność -program tworzy się w iteracjach (krótkie, przyrostowe kroki

programistyczne); planuje tylko następną iterację. Efektem powinna być wersja
spełniającą założenia danej iteracji. Następnie planuje się co zrobić dalej. -Zasada
Open Source: "release early, release often".

Nie projektować z góry -nie można z góry przewidzieć, jaka architektura będzie
najlepsza dla danego problemu -należy ją tworzyć w miarę rozszerzania programu.

Testy podzespołów -testy podzespołów pisze się zanim w ogóle zacznie się pisać kod
- najlepiej na początku iteracji. Potem pisze się kod, który potrafi je wszystkie przejść.
Rezultat: to, co ważne, zostanie zaprojektowane, na resztę nie będzie tracony czas.

Ciągłe modyfikacje architektury -architektura nie jest niczym stałym; jeśli jej

modyfikacja ułatwi przejście danej iteracji i nie zepsuje wyników testów z poprzednich,
należy ją wykonać. Pod tę zasadę podlega także usuwanie wszystkich znanych błędów
przed rozszerzeniem funkcjonalności.

Programowanie parami -programiści piszą w parach: jeden przy klawiaturze (główny
koder), drugi obserwuje, zgłasza poprawki, zadaje pytania wyjaśniające (szybkie
wyłapanie wielu błędów). Kod, którym zajmuje się tylko jedna osoba, ma tendencje do

stawania się całkowicie niezrozumiałym dla kogokolwiek innego niż autor, a więc
dodatkowy programista zwiększa jakość kodu.

Stały kontakt z klientem -specyfikacje są prawie zawsze wieloznaczne, dziurawe i
sprzeczne ze sobą -należy mieć stały kontakt z tym, dla kogo to oprogramowanie jest
tworzone (klient zamawiający program, czy też użytkownicy końcowi).

background image

itm / MVLab (c) 2007-2008

Praktyki XP

Programowanie w parach
Wspólna odpowiedzialność
Otwarta przestrzeń robocza

Refaktoryzacja

Efektywność

Ciągła integracja
i testowanie

Klient jest częścią zespołu

background image

itm / MVLab (c) 2007-2008

Refaktoryzacja

Refaktoryzacja (czasem też refaktoring, ang. refactoring) to pojęcie
związane z wytwarzaniem systemów informatycznych, w
szczególności z programowaniem. Jest to proces wprowadzania
zmian w strukturze wewnętrznej projekcie/programie, w wyniku
którego zasadniczo nie zmienia się funkcjonalność i interfejs
użytkownika. W ramach refaktoryzacji podejmowane są następujące
działania:

modyfikowanie elementów systemu w celu wpasowania ich w przyjęte
standardy i wzorce

poszukiwanie nowych standardów i wzorców, które pojawiły się w systemie
w trakcie jego rozwoju i ich precyzyjne definiowanie (łącznie z
wpasowywaniem istniejących elementów w te definicje)

background image

itm / MVLab (c) 2007-2008

XP - zalety i wady

brak możliwości stosowania w dużych projektach

brak wyraźnej specyfikacji

brak dokumentacji projektowej

testy są jedyną kontrolą poprawności działania
- brak dodatkowej kontroli jakości

duży wpływ klienta podczas procesu projektowania

wysoka motywacja programistów

wiarygodność terminów

pierwsza działająca wersja oprogramowania powstaje bardzo szybko
(choć w bardzo ograniczonej formie)

wysoka jakość produktu końcowego

background image

itm / MVLab (c) 2007-2008

Wybór odpowiedniego modelu

stopień innowacyjności

ro

zle

gło

ść

proj

ekt

u

Code&fix

Model

kaskadowy

V-Model

Prototypowanie

Model

sawtooth

Model

spiralny

Model XP

background image

itm / MVLab (c) 2007-2008

Cykle życia projektów

Opisywanie i przyporządkowywanie trzech istotnych
faz procesu projektowania oprogramowania

Znajomość i zrozumienie zasadniczych koncepcji
rozwoju oprogramowania

Przegląd obydwu najważniejszych koncepcji procesu
tworzenia oprogramowania

Analiza

Projektowanie

Implementacja

background image

itm / MVLab (c) 2007-2008

Analiza–Projektowanie–
Implementacja

Problem

Wymagania

Rozwiązanie

Model w
dziedzinie
problemu
Model Problemu
(np. w UML)

Model w dziedzinie
rozwiązań:
Model Rozwiązania

Analiza wymagań

Analiza systemu

Projektowanie systemu

Implementacja

Podczas analizy i projektowania tworzone są modele problemów lub
ich rozwiązań → redukcja stopnia trudności

background image

itm / MVLab (c) 2007-2008

Definicje

Analiza wymagań (zapotrzebowań): zapotrzebowania

wyznaczają jakościowe i ilościowe właściwości produktu z

punktu widzenia zleceniodawcy. Wymagania są definiowane

podczas fazy analizy

Analiza systemu: przełożenie wymagań na nowy produkt
programistyczny w postaci modelu problemu.

Projektowanie: rozwijanie takich środków technicznych

(programistyczne), które doprowadzą do rozwiązania problemu;
tworzony jest model produktu w przestrzeni rozwiązań; na

końcu otrzymuje się koncepcję rozwiązania.

Implementacja: budowanie działającego rozwiązania

programistycznego na bazie utworzonych koncepcji.

background image

itm / MVLab (c) 2007-2008

Historia metodyk projektowania

Dżungla metodyk

podejście
proceduralne

podejście
obiektowe

Analiza strukturalna (SA)

Analiza obiektowa (OOA)

Strukturalny design (SD)

Obiektowy design (OOD)

Programowanie obiektowe (OOP)

Programowanie

strukturalne (SP)

background image

itm / MVLab (c) 2007-2008

Podstawowe koncepcje
projektowania aplikacji I

Własności koncepcji podstawowych:

koncepcja atomowa

koncepcyjnie długowieczna

koncepcje wielokrotnego użycia

koncepcje stosowalności w
różnych kontekstach

Modele dają odpowiednie podejście do problemu ew. jego rozwiązania.

background image

itm / MVLab (c) 2007-2008

Podstawowe koncepcje
projektowania aplikacji II

Dla różnych sposobów patrzenie na problem z biegiem czasu powstały

różne sposoby ich opisu:

podejście funkcjonalne: funkcjonalna hierarchia, przepływ
informacji,

podejście orientowane na dane: struktury danych, encje i relacje,

podejście orientowane obiektowo: struktury klasowe,

podejście algorytmiczne: struktury sterujące,

podejście regułowe: struktury jeśli-to,

podejście stanowe: automat skończony, struktury współbieżne

podejście oparte na scenariuszach: schematy interakcji

Modele dają odpowiednie podejście do problemu ew. jego rozwiązania.

background image

itm / MVLab (c) 2007-2008

Zastosowanie koncepcji
bazowych

Podejście proceduralne

Metody:

Analiza strukturalna (SA),

Projektowanie strukturalne (SD),

Stosow. koncepcje bazowe:

podejście funkcjonalne

podejście orientowane na dane,

podejście algorytmiczne

Podejście obiektowe

Metody:

Analiza obiektowa (OOA),

Projektowanie obiektowe
(OOD),

Stosow. koncepcje bazowe:

podejście OO

podejście orientowane na dane,

podejście algorytmiczne,

podejście stanowe,

podejście oparte na
scenariuszach


Document Outline


Wyszukiwarka

Podobne podstrony:
RBD W02
w02
RBD W02
inf2 w06
inf2 w03
c cxx w02
Gazownictwo w02
AISD W02
INF2 2009 Wykl 04 Zaoczne 4na1 Nieznany
2wekten w02
KiDUM p w02 CG
Biochemia - W02 - 09.10.2000, Wykład II
anl1 w02 zima2012 id 65272 Nieznany (2)
inf2, Studia, UTP Ochrona środowiska, I rok, Semestr II, Informatyka
anl1 w02 lato2009 id 65271 Nieznany (2)
INF2 21
KZ BD w02

więcej podobnych podstron