metodyki projektowe

Post on 11-Jan-2017

230 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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.

top related