Projektowanie oprogramowania systemów

advertisement
Projektowanie
oprogramowania
systemów
METODYKI PROJEKTOWE
Unified Modeling Language

UML jest językiem graficznym umożliwiającym wizualizację planów
oprogramowania w postaci diagramów

Diagramy UML reprezentują dwa widoki na model systemu


Statyczny (strukturalny) widok z obiektami, atrybutami, operacjami i
relacjami

Dynamiczny (behawioralny) widok skupiający się na współpracy
pomiędzy obiektami i zmianach stanu
Diagramy UML to tylko widok (rzut) modelu; Model istnieje również
bez diagramów, ale diagramy pozwalają go zwizualizować
diagram klas UML diagramów UML
diagramy strukturalne

Koncentrują się na rzeczach, które muszą znajdować się w
modelowanym systemie

Wykorzystywane do dokumentowania architektury oprogramowania
systemów

Rodzaje

diagram klas (class)

diagram komponentów (component)

diagram obiektów (object)

composite structure diagram

deployment diagram

package diagram

profile diagram
diagramy behawioralne

Skupiają się na tym, co musi się wydarzyć w modelowanym systemie

Używane do dokumentowania funkcjonalności systemu

Rodzaje

diagram aktywności (activity)

diagramy interakcji (interaction)

diagram maszyny stanów (state machine)

diagram przypadków użycia (use case)
diagramy interakcji

Podzbiór diagramów behawioralnych koncentrujący się na
przepływie kontroli i danych pomiędzy podmiotami modelowanego
systemu

Rodzaje

interaction overview diagram

diagram sekwencji (sequence)

timing diagram

diagram komunikacji (communication)
diagram komponentów

Pokazuje jak komponenty są ze
sobą połączone tworząc większe
komponenty
diagram klas

Opisuje strukturę systemu,
pokazując klasy, ich atrybuty,
operacje i relacje między
podmiotami

„Najpopularniejszy” rodzaj
diagramów UML

Równocześnie, jeden z najbardziej
złożonych
diagram aktywności

Graficzne przedstawienie
przepływu pracy (workflow)
aktywności i akcji, obrazuje ogólny
przepływ kontroli

Podobny do typowych „flow
chartów”/wykresów blokowych
diagram przypadków użycia

Reprezentuje interakcje
użytkownika z systemem
diagram sekwencji

Pokazuje interakcje między
podmiotami uszeregowane w skali
czasu

Związany z realizacją przypadków
użycia
użycie UML

Nie każdy system potrzebuje wszystkich diagramów UML

Większość systemów w istocie potrzebuje tylko kilku

Nie ma potrzeby specyfikowania wszystkich i każdego aspektu systemu; niektóre są
oczywiste i/lub są realizacją znanych „wzorców projektowych” (design patterns); inne
są zbyt niskopoziomowe – „szczegóły implementacyjne”

Użyj diagramu klas dla wyspecyfikowania najważniejszych/kluczowych hierarchii klas

Użyj diagramu sekwencji dla wyspecyfikowania nieoczywistych interakcji (np. projekt
protokołu komunikacyjnego)

Użyj diagramu maszyny stanów do wyspecyfikowania stanów kluczowych obiektów i
podsystemów

Użyj diagramu przypadków użycia do wyspecyfikowania… przypadków użycia

Nade wszystko, używaj mózgu ;> podczas tworzenia diagramów i skoncentruj się na
zagadnieniach ważnych i złożonych; redukuj złożoność zamiast ją generować

UML jest językiem modelowania, nie tłumacz jego konstrukcji z języka angielskiego
narzędzia UML

Poszukaj narzędzi z możliwością generowania kodu wprost z modeli
interfejsu – zaoszczędzisz sporo pracy

JUDE (obecnie astah, free, Java) http://astah.net/download#community

Microsoft Visio – do pobrania z DreamSpark

Eclipse + EMF/GEF/UML2 (free) – www.eclipse.org

NetBeans

Microsoft Visual Studio – DreamSpark

… mnóstwo innych, ale tylko nieliczne darmowe implementują cały
UML (większość – diagramy klas + kilka innych)
plan

Metodyki projektowe

Scrum

Cykl

Zespół

Prowadzenie projektu – events

Artefakty
Projekt - definicja
„Projekt (przedsięwzięcie) to unikatowy zestaw skoordynowanych
działań ograniczony czasem i kosztami, mający na celu uzyskanie
zbioru określonych uprzednio produktów (zakres spełniający cele
projektu), zachowując przy tym normy jakości i wymagania.” IPMA
 „Ograniczony w czasie wysiłek, podjęty w celu wytworzenia
unikatowego produktu, usługi lub rezultatu„ PMI
 „Organizacja powołana na pewien czas w celu wytworzenia –
w przyjętym czasie oraz przy wykorzystaniu uprzednio określonych
zasobów – niepowtarzalnych, a wcześniej określonych wyników czy
rezultatu.„ PRINCE2
 „Jednostkowy proces, składający się ze zbioru skoordynowanych
działań i mający dokładnie określone daty rozpoczęcia
oraz zakończenia; jest to przedsięwzięcie zmierzające do osiągnięcia
założonego celu przy określonych ograniczeniach
czasowych, kosztowych oraz zasobowych„ ISO 10006

Projekt

jest unikalny,

jest ograniczony w czasie,

ma określony koszt i czas trwania,

posiada cel.
S.M.A.R.T.

S – specific, szczegółowy,

M – measurable, mierzalny,

A – achievable, osiągalny,

R – realistic, realistyczny,

T – time bound, określony w czasie
Metodyka projektowa

Ogół zasad w jaki sposób wykonać czynność realizacji projektu, aby
osiągnąć sukces,

Ogół narzędzi jakie powinno się wykorzystać do realizacji określonego
celu projektowego

Z wykorzystaniem metodyk są ustalane:

Fazy projektu

role uczestników projektu

modele tworzone w każdej z faz;

scenariusze postępowania w każdej z faz;

reguły przechodzenia do kolejnej fazy;

notacje, których należy używać;

dokumentację powstającą w każdej z faz.
Podział
RUP (Rational Unified Process)

Proces wytwarzania oprogramowania

Zestaw wskazówek jak prowadzić projekt informatyczny

Metodyka wykorzystuję model przyrostowy tworzenia
oprogramowania

W trakcie trwania projektu odbywa się ciągłe monitorowanie jakości
produktu
https://davenicolette.files.wordpress.com/2012/02/rup.png
Cykl RUP
http://www.psa-software.com/rup.php
PRINCE2 (PRojects IN Controlled
Environments)
PRINCE2

Prince 2 jest oparta na podejściu procesowym, co oznacza, że
określa „co" i „dlaczego",

Planowanie oparte na produktach

Sterowanie zmianami

Przeglądy jakości
PRINCE2 - struktura organizacji
PRINCE2 - podejście procesowe do
zarządzania projektem

Strategiczne zarządzanie projektem (ZS) – Directing a project (DP)

Uruchamianie Projektu/Przygotowanie Założeń Projektu (PP) –
Starting up a project (SU)

Inicjowanie projektu (IP) – Initiating a project (IP)

Sterowanie Etapem (SE) – Controlling a stage (CS)

Zarządzanie Wytwarzaniem Produktów (WP) – Managing product
delivery (MP)

Zarządzanie Zakresem Etapu (ZE) – Managing stage boundaries (SB)

Zamykanie Projektu (ZP) – Closing a project (CP)
PMBoK (Project Management
Body of Knowledge)
PMBoK
PMBoK jest międzynarodowym zbiorem dobrych praktyk w dziedzinie
zarządzania projektami. Standard PMBoK został opracowany przez
zrzeszenie PMI – Project Management Institute, którego członkami są
praktycy z zakresu zarządzania oraz gospodarki i biznesu. PMBoK
składa się z 39 procesów, zgrupowanych w 5 zbiorach procesowych
(PMI, 2013):

grupa procesów rozpoczęcia,

grupa procesów planowania,

grupa procesów realizacji,

grupa procesów monitorowania i kontroli,

grupa procesów zakończenia.
PMBoK
Poszczególne grupy procesów można rozumieć również jako kolejne
etapy, które należy wykonać, aby wytworzyć określony produkt.
Zgodnie z zasadą PMBOK poszczególne etapy posiadają swoje wejście
i wyjście (PMI, 2013). Rezultat który jest produktem jednego procesu
wchodzi na wejście kolejnego. W podobny sposób są wymieniane
informacje pomiędzy kolejnymi grupami procesów. Pięcioetapowe
rozróżnienie opisuję w sposób kompleksowy zwyczajowe podejście do
prowadzenia projektów.
https://www.advisicon.com/wp-content/uploads/PMBOK_5_Process_Group_Map.jpg
SCRUM
Scrum jest metodyką zarządzania i kontroli, która skupia się na
wytwarzaniu oprogramowanie, które spełnia potrzeby klienta. Sam
Scrum posiada proste ramy dla skutecznej pracy zespołowej w
szczególności w przypadku złożonych projektów informatycznych. Ken
Schwaber i Jeff Sutherland opisał wszystkie zasady wytwarzania
projektów w The Scrum Guide.
http://www.scrumguides.org/docs/scrumguide/v1/scrum-guide-us.pdf
Cykl Scrum
Członkowie zespołu

Product owner

Scrum master

Development team
Product owner

Właściciel produktu reprezentuję interesariuszy projektu i jest głosem
klientów w dyskusjach nad wytwarzaniem produktu.

Przedstawia produkt przed interesariuszami

Określa wydania produktu

Organizuje spotkanie rejestr spintu

Uczestniczy w ustalaniu zakresu, kosztorysu, harmonogramu

Pilnuje rejestru produktów
Scrum master

Scrum jest prowadzony przez Scrum Mastera, który pilnuje aby
zespół Scrumowy dostarczał dokładnie taki produkt jakiego
oczekuje klient,

Pilnuje procedur scrumowych

Uczy zespół samoorganizującej pracy

Pomaga zespołowi w rozwiązywaniu problemów realizacyjnych

Organizuje spotkania podsumowujące postępy w pracach
Development team

Development team jest odpowiedzialny za dostarczenie kolejnych
elementów produktu na koniec każdego sprintu,

Zespół jest budowany z osób posiadających różnych umiejętności i
cechy osobowościowe,

Development team jest zespołem samoorganizującym swoje prace.

Zespół składa się z ok 9 osób.
Scrum Events


Sprint
Daily scrum

Sprint planning

Sprint review

Sprint retrospective

Backlog refinement (Backlog grooming)

Impediments Backlog
Sprint

Sprint jest podstawowym zdarzeniem Scrum w którym jest
realizowany projekt,

Długość trwania sprintu waha się od 1-4 tygodni,

Sprint rozpoczyna się od planowania sprintu a kończy się na
podsumowaniu sprintu

W trakcie realizacji sprintu odbywają się spotkania nieformalne Daily
Scrum
Daily Scrum
Spotkania odbywają się w teorii na stojąco i nie powinno trwać dłużej
niż 15 minut,
 Spotkania mają charakter nieformalny ale mają bardzo duże znaczenie
dla organizacji pracy zespołu.
 W trakcie spotkań następuje podsumowanie tego co zostało
wykonane dnia poprzedniego, następuje reakcja na odstępstwa oraz
jest planowana praca na najbliższy dzień.

What did I do yesterday that helped the development team meet the
sprint goal?
What will I do today to help the development team meet the sprint goal?
Do I see any impediment that prevents me or the development team
from meeting the sprint goal?
Sprint planning

Spotkanie mające na celu wybór funkcjonalności jakie będą
rozwijane w kolejnym sprincie,

Spotkanie składa się z dwóch (zazwyczaj 4h) części:

Pierwsza połowa- spotkanie całego Scrum Team na którym jest ustalany
zakres elementów z rejestru produktów jaki wejdzie do realizacji w
najbliższej perspektywie sprintowej

Druga połowa – spotkanie Developer team, który przygotowuje w
oparciu o wybrane do realizowania funkcjonalności listę zadań do
wykonania – sprint backlog
Sprint review

Podsumowanie prac wykonanych w ramach sprintu

Rozliczenie z prac wykonany oraz niewykonanych

Prezentacja produktu opracowanego w ostatnim Sprint
Sprint retorspective

Poprawa sposoby działania dotychczas opracowanego produktu

W jakich aspektach tworzony produkt jest zgodny z oczekiwaniami
m, co nie działa tak jak powinno

Zebranie i przekazanie uwag na spotkaniu planującym Scrum
Backlog Grooming

Proces polegający na uzupełnianiu i poprawianiu rejestru
produktów,

W trakcie Backlog Grooming jest kontrolowana priorytetyzacja
poszczególnych funkcjonalności
Scrum artifacts

Product backlog

Sprint backlog

Product increment
Product backlog

Backlog Produktu to uporządkowana lista wszystkiego, co może być
potrzebne w produkcie oraz jedyne źródło wymaganych zmian,
które mają być w produkcie wprowadzone,

Backlog Produktu nigdy nie jest kompletny.

Elementy Backlogu Produktu posiadają następujące atrybuty: opis,
kolejność, oszacowanie i wartość.
Backlog Sprintu

Zbiór elementów Backlogu Produktu wybranych do Sprintu
rozszerzony o plan dostarczenia Przyrostu produktu i realizacji Celu
Sprintu.

Służy do prognozy, które funkcjonalności znajdą się w kolejnym
przyroście i jaką pracę należy wykonać, aby te funkcjonalności
dostarczyć w postaci „Ukończonego” Przyrostu.

Backlog Sprintu to plan w stosunku do którego jest analizowany
postęp prac na codziennych spotkaniach Scrum –Daily Scrum.
Product increment

Przyrost jest sumą wszystkich elementów Backlogu Produktu
zakończonych podczas Sprintu i wszystkich Sprintów poprzednich,

Na koniec Sprintu nowy Przyrost musi być „Ukończony”, co oznacza,
że musi on być gotowy do użycia i zgodny z Definicją Ukończenia
danego Zespołu Scrumowego

Przyrost musi być gotowy do użycia niezależnie od tego, czy
Właściciel Produktu decyduje się na jego wydanie.
Download