Metodyki programowania. Tomasz Kaszuba 2015 kaszubat@pjwstk.edu.pl



Podobne dokumenty
Zarządzanie projektami. Porównanie podstawowych metodyk

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Wykład 2. MIS n Inżynieria oprogramowania Marzec Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Programowanie zespołowe

1. Planowanie systemu (w tym specyfikacja wymagań) 3. Projekt systemu (model poszczególnych struktur itp.)

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Programowanie Zespołowe

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Zarządzanie projektami. Porównanie podstawowych metodyk

Cykle życia systemu informatycznego

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Opis metodyki i procesu produkcji oprogramowania

Podejście zwinne do zarządzania projektami

Etapy życia oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Lekkie metodyki. tworzenia oprogramowania

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Programowanie Zespołowe

Techniki komputerowe w robotyce

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Opis realizacji dla czterech zespołów (4 przypadki użycia)

Wprowadzenie do metodyki SCRUM. mgr inż. Remigiusz Samborski Instytut Informatyki Politechnika Wrocławska

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

Szybkość w biznesie. Zwinne testowanie oprogramowania (Agile) Mateusz Morawski (mateusz.morawski@hp.com) 14 kwietnia 2015

Projektowanie oprogramowania systemów METODYKI PROJEKTOWE

Agile vs PRINCE /2015 I rok st. magisterskie Informatyka

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

AL 1302 ZARZĄDZANIE PROJEKTAMI W OPARCIU O METODYKĘ PRINCE2

Projektowanie oprogramowania. Termin zajęć: poniedziałek, a podstawie materiału ze strony.

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań

Projektowanie systemów informatycznych. wykład 6

Metodyki zwinne wytwarzania oprogramowania

Feature Driven Development

Zarządzanie projektem

Akademia ADB Wykład I Praca w grupie i jakość kodu

Jak być agile w projekcie utrzymaniowym? JOANNA SIEMIŃSKA

PROJEKTOWANIE ZORIENTOWANE NA UŻYTKOWNIKA W METODYCE SCRUM. Hubert Wawrzyniak Grupa Allegro

Zagadnienia. Inżynieria Oprogramowania

Wytwarzanie oprogramowania

Zasady organizacji projektów informatycznych

Programowanie zwinne

Tworzenie gier na urządzenia mobilne

XPrince dla architektów 1

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

Programowanie zwinne - wprowadzenie. Programowanie ekstremalne. Wstęp Reguły i praktyki SCRUM. Wprowadzenie Role Zdarzenia Artefakty

ZARZĄDZANIE PRZEDSIĘWZIĘCIEM PROGRAMISTYCZNYM. wykład siódmy, ostatni

Wsparcie narzędziowe zarządzania ryzykiem w projektach. Spotkanie 2 Zbigniew Misiak (BOC IT Consulting)

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Planowanie i realizacja zadań w zespole Scrum

Agile Project Management

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

SCRUM. Metodyka prowadzenia projektów. Na podstawie prezentacji B. Kuka i W. Sidora

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

Zagadnienia. Inżynieria Oprogramowania

Elastyczna metodyka SCRUM

szkolenia pod drzewem Wybrane Techniki XP bnd 2008 Tomasz Włodarek. Materiał udostępniany na podstawie licencji Creative Commons (by-nc-nd) 1.00.

Programowanie Zespołowe

Modele cyklu życia oprogramowania

RUP. Rational Unified Process

AGILE SOFTWARE HOUSE SCRUM PRAKTYCZNIE SCRUM BOOK

SCRUM - FRAMEWORK DO ZWINNEGO PROWADZENIA PROJEKTÓW. Ilona Ławniczak-Tomczak

Zwinne wytwarzanie oprogramowania. Ian Sommerville: Software Engineering 9th edition, chapter 3. 1

Elastyczna metodyka SCRUM

Inżynieria oprogramowania (Software Engineering)

INICJATYWA STUDENCKA. Gdańsk,

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Testujemy dedykowanymi zasobami (ang. agile testers)

Wprowadzenie w tematykę zarządzania przedsięwzięciami/projektami. dr inż. Agata Klaus-Rosińska

AN EVOLUTION PROCESS FOR SERVICE- ORIENTED SYSTEMS

Czy Agile wystarczy by być innowacyjnym?

Marcin Kucięba Agile Development

Techniki komputerowe w robotyce

Testowanie oprogramowania

lub na

Scrum. Zwinna metodyka prowadzenia projektów

Maciej Oleksy Zenon Matuszyk

Spis treści. Przedmowa Karolina Zmitrowicz, Adam Roman. Część I. Organizacja i procesy 1

Ogólne określenie wymagań. Ogólny projekt. Budowa systemu. Ocena systemu. Nie. Tak. System poprawny. Wdrożenie. Określenie.

REFERAT PRACY DYPLOMOWEJ

Scrum w praktyce. Michał Piórek

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Temat: Zwinne Zarządzanie Projektami IT (Agile / Scrum) Data: marca 2014 r. (2 dni, czwartek-piątek), godz. 9-16

Magdalena Kieruzel Integracja metodyki PRINCE2 oraz SCRUM przy realizacji informatycznych projektów wytwarzania oprogramowania w e-administracji

Inne spojrzenie na wytwarzanie SI ZWINNE METODOLOGIE.

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Zwinne metodyki tworzenia oprogramowania. Programowanie ekstremalne

Proces wytwarzania oprogramowania

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Zarządzanie projektem wdrożeniowym systemu klasy ERP autorska metodyka

Metodyka dla projektu SYRIUSZ

Wprowadzenie w tematykę zarządzania projektami/przedsięwzięciami

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

Michał Olejnik. 22 grudnia 2009

Rational Unified Process. Dokładny opis metodyki i procesu produkcji oprogramowania

Transkrypt:

Metodyki programowania Tomasz Kaszuba 2015 kaszubat@pjwstk.edu.pl

Wybrane metodyki zwinne TRADYCYJNE: RUP (Rational Unified Process) spiralny, rozbudowany PRINCE2 (Projects In Controlled Environments) kaskadowy, rozbudowany ZWINNE: Scrum XP Xprince (miks XP, PRINCE2 i RUP)

Model kaskadowy 1. Planowanie systemu (w tym specyfikacja wymagań) 2. Analiza systemu (w tym Analiza wymagań i studium wykonalności) 3. Projekt systemu (poszczególnych struktur itp.) 4. Implementacja (wytworzenie kodu) 5. Testowanie (poszczególnych elementów systemu oraz elementów połączonych w całość) 6. Wdrożenie i pielęgnacja powstałego systemu. Nie można przejść do następnej fazy przed zakończeniem poprzedniej Model ten posiada bardzo nieelastyczny podział na kolejne fazy Iteracje są bardzo kosztowne - powtarzamy wiele czynności

PRINCE2 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)

PRINCE2

Model przyrostowy Źródła: http://www.meranetworks.com/sites/default/files/iterativeincrementaldevelopment.png

Model spiralny i przyrostowy Częste kontakty z klientem (w porównaniu do modelu kaskadowego) Faza oceny w każdym cyklu (pozwala uniknąć błędów lub wcześniej je wykryć) Wykorzystanie przez klienta fragmentów systemu (prototypy) Brak konieczności zdefiniowania z góry całości wymagań - cały czas istnieje możliwość rozwijania projektu Częste kontrole jakości w kolejnych cyklach - nastawienie na wykrywanie błędów i działania kontrolne, a nie na zapobieganie Orientacja na zarządzanie, czas i budżet. Trudności z określeniem pozbioru funkcji niezależnych (moduły) Konieczność implementacji szkieletu dodatkowy nakład pracy Wysoki koszt usuwania błędów wykrytych w finalnych etapach projektu

RUP - Lista najczęstszych błędów Zarządzanie wymaganiami ad hoc (najczęściej brak zarządzania nimi) Niejednoznaczna, nieprecyzyjna komunikacja Architektura oprogramowania nieodporna na obciążenia (ang. Brittle architecture) Zbytnia, niepotrzebna złożoność oprogramowania Niewykryte niespójności w wymaganiach, projekcie oraz implementacji Brak lub niewystarczające testowanie Subiektywna ocena postępu projektu Brak zarządzania ryzykiem Brak automatyzacji prowadzenia projektu

Tradycyjne metodyki - wady Długoterminowe planowanie Mała elastyczność Sformalizowany zapis dokumentacji Programiści pełnią rolę drugorzędną Trudne zmiany w systemie Ograniczony kontakt z użytkownikiem / klientem (zebranie wymagań, testy) Brak wykorzystania potencjału programisty Rozsynchronizowanie budżetu, czasu pracy i oczekiwań klienta

Manifest agile Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Źródła: http://agilemanifesto.org/

Tradycyjne i zwinne metodyki cd Skupianie się na funkcjach oprogramowania (mniej dokumentacji) oprogramowanie wytwarzane skokowo (za każdym razem dodawana jest działająca funkcjonalność) Współpraca z klientem okresowe dostarczanie fragmentów oprogramowania (części funkcjonalności). Szybkie reagowanie na zmiany - częste spotkania kontrolne. Brak dokładnej specyfikacji (wiedza o projekcie w zespole) Trudne do przewidzenia koszty wytworzenia programu Klient musi być gotowy na częstą komunikację Potrzeba wysokich kwalifikacji programistów (kreatywność, rozwiązywanie problemów, decyzyjność) Źródła: http://agilemanifesto.org/

XP Extreme programming Iteracyjność (krótkie kroki, bez planowania kolejnych iteracji). Brak ustalonej architektury można zmieniać podczas trwania projektu Testy jednostkowe (podobne do Test Driven Developement) Programowanie parami (koder i obserwator), zmiany co kilkadziesiąt minut ułatwia jasność kodu. Stały kontakt z klientem (czasem zamiast specyfikacji)

Test-Driven Developement Fragment metodyki XP powstaje automatyczny test sprawdzający dodawaną funkcjonalność implementacja funkcjonalności by test się powiódł refaktoryzacja napisanego kodu, żeby spełniał on oczekiwane standardy.

XPrince Źródła: http://www.mif.pg.gda.pl/homepages/sylas/students/sem_podypl/io-w05.pdf, slajd 40

SCRUM Rozwój produktu podzielony na fazy (tzw Sprinty) trwające kilka tygodni Funkcjonalności zbierane od klienta (user stories), segregowane na sprinty (sprint planning). 15-minutowe spotkania każdego dnia (daily scrum) opisujące taski na dany dzień i podsumowujące dzień poprzedni (sprint review) Działająca wersja wytwarzana po każdym sprincie (musi być widoczna zmiana z poprzedniej wersji). Zapis zmian w rejestrze (sprint backlog) Właściciel produktu ustala priorytety, ustala cel pierwszego przebiegu. (na podstawie tego tworzonyc jest backlog) Zespół tworzy produkt. Samodzielnie przypisuje zadania do wykonania Scrum master odpowiada za usuwanie problemów oraz poprawną implementacje procesu.

SCRUM - role

SCRUM

Pytania na ćwiczenia: wybrać metodykę System reputacyjny dla stacji benzynowych Aplikacja mobilna skaner wifi Aplikacja mobilna dla odwiedzających zoo Gra typu angry birds Aplikacja mobilna dla urzędu/rządu Rozbudowa systemu obsługi stanu magazynowego Rozbudowa strony internetowej (serwisu typu ebay) Budowa strony - wizytówki firmowej (landing page produktu) Budowa strony bloga modowego