IO 02 2014 2015

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.1

Wykład 2

Modele cyklu ˙zycia oprogramowania

MIS-1-505-n In˙zynieria oprogramowania
Marzec 2014

Kazimierz Michalik

Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.2

Agenda

1

Przypomnienie: proces produkcji; czynno ´sci a modele

2

Podział metodologii tworzenia oprogramowania

3

Proces ujednolicony (Unified Process)

4

Metody zwinne (Agile)

5

Inne metodologie

6

Podsumowanie

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.3

Czynno ´sci w czasie produkcji oprogramowania.

In˙zynieria oprogramowania stara si ˛e zidentyfikowa´c i opisa´c
podstawowe fazy tworzenia i funkcjonowania oprogramowania,
a tak˙ze wskaza´c model optymalnego przebiegu tych faz.

Co mo˙zna robi ´c w czasie tworzenia oprogramowania?

Planowanie.

Implementacja.

Testowanie.

Dokumentowanie.

Wdro˙zenie.

Utrzymanie (konserwacja).

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.4

Edward V. Berard

”Walking on water and developing software from a specification
are easy if both are frozen. ”

(1993) Essays on object-oriented software engineering. Volume 1. Englewood Cliffs, N.J. : Prentice Hall

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.5

Ogólny schemat.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.6

Dwa główne nurty.

Istnieje wiele cało´sciowych metodologii tworzenia
oprogramowania, z których dwie obecnie najwa˙zniejsze (i
istniej ˛

ace w wielu odmianach) to:

Proces ujednolicony - Unified Process

RUP

Metody zwinne - agile methods

Extream programming (XP)

Obydwie grupy metodologii zakładaj ˛

a iteracyjne tworzenie

oprogramowania, ró˙zni ˛

ac si ˛e głównie stosunkiem do

modelowania i planowania w trakcie procesu tworzenia
oprogramowania

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.7

Model iteracyjny

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.7

Model iteracyjny

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.7

Model iteracyjny

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.7

Model iteracyjny

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.7

Model iteracyjny

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.7

Model iteracyjny

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.8

Model przyrostowy

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.8

Model przyrostowy

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.8

Model przyrostowy

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.8

Model przyrostowy

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.8

Model przyrostowy

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.8

Model przyrostowy

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.9

Zasady RUP.

1

iteracyjne i przyrostowe tworzenie oprogramowania;
sterowane ryzykiem i priorytetami, ułatwiaj ˛

ace integracj ˛e

cało´sci kodu i dostosowanie do zmieniaj ˛

acych si ˛e

wymaga ´n

2

zarz ˛

adzanie wymaganiami; we współpracy z klientem i w

oparciu o przypadki u˙zycia

3

stosowanie architektury opartej na komponentach

4

graficzne modelowanie oprogramowania; ró˙zne
perspektywy spojrzenia na system, u˙zycie UML

5

kontrola i weryfikacja jako´sci oprogramowania przez cały
czas procesu wytwarzania

6

zarz ˛

adzanie zmianami w oprogramowaniu

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.10

Fazy projektu RUP.

1

faza pocz ˛

atkowa (inception) – wst ˛epne okre´slenie

wymaga ´n, ryzyka, kosztu, harmonogramu, a tak˙ze
architektury systemu

2

faza opracowania (elaboration) – ustalenie wymaga ´n
(wi ˛ekszo´sci przypadków u˙zycia), architektury systemu
oraz planu całego procesu wytwarzania systemu

3

faza konstrukcji (construction) – tworzenie systemu
(kolejnych komponentów), w trakcie nastepuje oddanie
pierwszej (i by´c mo˙ze dalszych) wersji u˙zytkownikowi

4

faza przekazania (transition) – system jest przekazywany
u˙zytkownikowi, wdra˙zany, szkoleni s ˛

a pracownicy obsługi

systemu, nastepuje walidacja i ko ´ncowe sprawdzenie
jako´sci

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.11

Dyscypliny - rodzaje wykonywanych zada ´

n

modelowanie biznesowe

wymagania

analiza i projektowanie

implementacja

testowanie

wdro˙zenie

zarz ˛

adzanie konfiguracj ˛

a i zmianami

zarz ˛

adzanie projektem (zarz ˛

adzanie ryzykiem, planowanie

iteracji, monitorowanie post ˛epów)

organizacja ´srodowiska (m.in. narz ˛edzi)

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.12

Schemat RUP.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.13

Agile programming

Metody te maj ˛

a pewne cechy wspólne, które wynikaj ˛

a z

przyj ˛etej ideologii tworzenia oprogramowania zapisanej w
manife´scie metod zwinnych (agile manifesto)

Agile manifesto

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Jednostki i interakcje ponad procesy i narz ˛edzia

Działaj ˛

ace oprogramowanie ponad wyczerpuj ˛

ac ˛

a

dokumentacj ˛e

Współpraca z klientem ponad negocjacje kontraktu

Reagowanie na zmiany ponad realizowanie planu

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.14

Agile programming

Co jest charakterystyczne?

Metody zwinne nadaj ˛

a si ˛e dla małych zespołów tworz ˛

acych

małe i ´sredniej wielko´sci oprogramowanie, najcz ˛e´sciej dla
biznesu (wa˙zna szybko´s´c dostarczania i dostosowanie do
cz ˛estych zmian).

Extreme Programming (XP) nale˙zy do grupy metodologii
wytwarzania oprogramowania nazywanych metodami
zwinnymi (agile methods)

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.15

Programowanie ekstremalne - XP

Motywacja:

klasyczne metodologie wytwarzania oprogramowania zbyt
wolno reaguj ˛

a na zmiany rynku i wymaga ´n klientów

zbyt du˙zo planowania, analizy i tworzenia modeli oraz
dokumentacji opó´znia wytworzenie i dostarczenie tego co
naprawd ˛e si ˛e liczy – kodu

klasyczne podej´scia powoduj ˛

a, ˙ze zmiany (spowodowane

np. wykryciem bł ˛edu) w pó´znych fazach tworzenia kodu s ˛

a

bardzo kosztowne

w procesach opartych na drobiazgowej analizie i
planowaniu zbyt mało ufa si ˛e i daje swobody, tym którzy
tak naprawd ˛e tworz ˛

a kod – programistom

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.16

Programowanie ekstremalne - XP

Podstawowe zasady:

oprogramowanie jest rozwijane w krótkich cyklach i w
ci ˛

agłej interakcji z klientem, po ka˙zdym cyklu mo˙ze

nast ˛

api´c zmiana zało˙ze ´n co do dalszej pracy, co wi ˛ecej

mo˙ze nast ˛

api´c rewizja ju˙z napisanego kodu (refactoring)

ka˙zdy przyrost dostarcza konkretn ˛

a funkcjonalno´s´c

okre´slan ˛

a na podstawie scenariuszy (opowie´sci

u˙zytkownika , user stories)

ju˙z pierwsze wydanie zawiera system o pewnej
cało´sciowej strukturze realizuj ˛

acy istotne dla klienta

funkcje

kolejne wydania (releases) kodu nast ˛epuj ˛

a co kilka

miesi ˛ecy (maximum), iteracje maj ˛

a po kilka tygodni,

obowi ˛

azuje planowanie zada ´n kilka dni do przodu, przy

zało˙zeniu, ˙ze kolejno´s´c działa ´n jest okre´slana przez
priorytety wa˙zno´sci

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.17

Programowanie ekstremalne - XP

Podstawowe zasady:

przed przyst ˛

apieniem do kodowania opracowywane s ˛

a

szczegółowe testy maj ˛

ace za zadanie sprawdzenie

wszelkich aspektów poprawno´sci wprowadzanych zmian

ka˙zda zmiana jest od razu integrowana z cało´sci ˛

a kodu

oraz testowana – nowe oraz opracowane wcze´sniej testy
(zautomatyzowane) s ˛

a powtarzane codziennie (lub nawet

kilka razy dziennie), ˙zeby sprawdzi´c czy nie zostały
wprowadzone bł ˛edy

w ci ˛

agu całego procesu gromadzona jest informacja

zwrotna słu˙z ˛

aca usprawnieniu procesu i ostatecznego

kodu

wa˙zna jest specyficzna organizacja miejsca pracy

kodowanie realizowane jest zgodnie z przyj ˛etymi przez
cały zespół regułami (coding standards)

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.18

Programowanie ekstremalne - XP

Podstawowe zasady:

programowanie odbywa si ˛e parami (zgodnie ze
szczegółowo ustalonymi zasadami), cz ˛este s ˛

a tak˙ze

dyskusje pomi ˛edzy członkami całego zespołu tworz ˛

acego

kod

dokumentacja oprogramowania składa si ˛e z komentarzy w
kodzie, opisu testów i niewiele wi ˛ecej

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.19

Programowanie ekstremalne - XP

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.20

Programowanie ekstremalne - XP

Troska o programistów:

40sto godzinny tydzie ´n pracy - mamy za du˙zo pracy
zamiast mamy za mało czasu

odpowiednie ´srodowisko pracy - otwarta przestrze ´n z
małymi prywatnymi pomieszczeniami na obrze˙zach i
stanowiskami w ´srodku dla programowania parami

wspólne posiadanie kodu

nacisk na nieustann ˛

a komunikacj ˛e (zwi ˛

azane m.in. z

programowaniem parami)

stworzenie ideologii zespołu walcz ˛

acego o zwyci ˛estwo (i

nagradzaj ˛

acego si ˛e za wszystkie osi ˛

agni ˛ecia)

du˙zo jedzenia i picia w zasi ˛egu r ˛eki

zasada work with human nature, not against it

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.21

Scrum.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.22

Model spiralny - zarz ˛

adzanie ryzykiem.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.23

V(ee)-model.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.24

Dual V(ee)-model.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.25

Cleanroom model.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.26

Rapid Application Development.

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.27

Continuous Integration (Continuous Delivery)

background image

Modele cyklu ˙zycia

oprogramowania

Przypomnienie: proces
produkcji; czynno´sci a
modele

Podział metodologii
tworzenia
oprogramowania

Proces ujednolicony
(Unified Process)

Metody zwinne (Agile)

Inne metodologie

Podsumowanie

2.28

Istotne czynniki podczas wyboru modelu tworzenia
oprogramowania

Tematyka

Wielko´s´c (obszerno´s´c)

Czas trwania

Zło˙zono´s´c

Ryzyko (poziom i rodzaj)

Zrozumienie wymaga ´n u˙zytkownika

Zrozumienie obszaru zastosowa ´n

Zaanga˙zowanie klienta

Do´swiadczenie zespołu

Wielko´s´c zespołu

Interakcje człowiek-komputer

Dost ˛epno´s´c narz ˛edzi i technologii

Wymagany poziom niezawodno´sci


Document Outline


Wyszukiwarka

Podobne podstrony:
IO 01 2014 2015
Wyklad 02 2014 2015
IO 01 2014 2015
Dane do projektu hali s5 IPB 2014 2015 (02) (1)
Wyklad 04 2014 2015
21 02 2014 Wykład 1 Sala
Ekonomia ćwiczenia program PS1 2014 2015 (1)
Prawo cywilne 22 02 2014
Prawo wyznaniowe test 02 2014
(f) sprawozdanie do cw 3 (2014 2015) aa
Hm 2014 2015 INŻ KB VII Sprężone
O Czym Lekarze Ci Nie Powiedzą 01 02 2014
Pr. KSPS BZ 2014-2015 (1), bezpieczeństwo wewnętrzne materiały, Program KSPS i materia+éy do zaj¦Ö¦ç
Podział na grupy konsultacyjne IPB 2014 2015 końcowy
grupa 2 (22 02 2014)
Rzeczy których nie ma u piegusa wykład chemia( 02 2014
Program projektu zintegrowanego s5 IPB BKiI 2014 2015
A-03 Komparator, Elektrotechnika AGH, Semestr V zimowy 2014-2015 - MODUŁ C, semestr V (moduł C), Pod

więcej podobnych podstron