Lekkie metodyki. tworzenia oprogramowania

Podobne dokumenty
SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Programowanie zespołowe

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

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

Techniki komputerowe w robotyce

Feature Driven Development

Metodyki programowania. Tomasz Kaszuba 2015

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

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

Programowanie Zespołowe

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Programowanie Zespołowe

Zarządzanie projektami w NGO

Metodyki zwinne wytwarzania oprogramowania

Projektowanie systemów informatycznych. wykład 6

Metodyka dla projektu SYRIUSZ

Programowanie zwinne

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

Agile Project Management

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

INŻYNIERIA OPROGRAMOWANIA

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

Etapy życia oprogramowania

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

Agile vs PRINCE /2015 I rok st. magisterskie Informatyka

Scrum i nie tylko : teoria i praktyka w metodach Agile / Krystian Kaczor. Wyd. 2. Warszawa, Spis treści

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

Oferta szkoleń firmy Code Sprinters

Zarządzanie projektami. Porównanie podstawowych metodyk

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

Opis metodyki i procesu produkcji oprogramowania

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

Metody zwinne można stosować głównie dla niezbyt dużych systemów. Metody zwinne to: -Metodyka Crystal (Crystal family)

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

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

Scrum w praktyce. Michał Piórek

Tematy prac magisterskich Rok akademicki 2013/2014

Techniki komputerowe w robotyce

Zagadnienia. Inżynieria Oprogramowania

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

Metodyki zwinne AGILE

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Agile Project Management WHITEPAPER

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

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

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

Leszno Jakie są i będą oczekiwania biznesu wobec IT?

Zarządzanie projektami. Porównanie podstawowych metodyk

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

Projekt Kompetencyjny - założenia

PODYPLOMOWE STUDIA ZARZĄDZANIA PROJEKTAMI KATOWICE

Spis treści. 00 Red. Spis tresci. Wstep..indd :52:08

AGILE PROJECT MANAGEMENT

PODYPLOMOWE STUDIA ZARZĄDZANIA PROJEKTAMI KATOWICE

Nowe modele zakupowe usług IT w obszarze ochrony zdrowia.

Data: marzec 2014 r. (2 dni, czwartek-piątek), godz Miejsce: Eureka Technology Park, Innowatorów 8

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

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

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

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

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

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Przedsięwzięcia Informatyczne w Zarządzaniu

PODYPLOMOWE STUDIA ZARZĄDZANIA PROJEKTAMI WARSZAWA

Programowanie extremalne. Adrian Gadzina

Scrum. Zwinna metodyka prowadzenia projektów

Planowanie i realizacja zadań w zespole Scrum

Cykle życia systemu informatycznego

Filozofia Agile. Michał Leśniak, trener wiodący Agile Project Management. Potwierdzenie znaków handlowych

Przewodnik egzaminacyjny. EXIN Agile Scrum. Wydanie

REFERAT PRACY DYPLOMOWEJ

Tworzenie gier na urządzenia mobilne

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Outsourcing kadry IT. w branżach: finanse, bankowośd i ubezpieczenia

Wytwarzanie oprogramowania

Zagadnienia. Inżynieria Oprogramowania

Testowanie i walidacja oprogramowania

Skuteczne zarządzanie projektami IT w otoczeniu uczelnianym. Piotr Ogonowski

PODYPLOMOWE STUDIA ZARZĄDZANIA PROJEKTAMI GDAŃSK

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

INŻYNIERIA OPROGRAMOWANIA

Wymagania: umiejętność modelowania systemów informatycznych z wykorzystaniem UML. umiejętność definiowania i kreatywnego rozwiązywania problemów

Szkolenie Scrum w projektach IT (Agile)

Testowanie oprogramowania

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Design thinking zaprojektuj, zbuduj i przetestuj swoje pomysły

Wsparcie narzędziowe zarządzania ryzykiem w projektach

Programowanie zespołowe

Wprowadzenie do Behaviordriven

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Część I - Załącznik nr 7 do SIWZ. Warszawa. 2011r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA

Scaling Scrum with SAFe. Małgorzata Czerwińska

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

INŻYNIERIA OPROGRAMOWANIA LAB 1

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

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

Wykład 1 Inżynieria Oprogramowania

Transkrypt:

Lekkie metodyki tworzenia oprogramowania

Programowanie zwinne ( Agile software development) grupa metodyk wytwarzania oprogramowania opartego o programowanie iteracyjne (model przyrostowy). Wymagania oraz rozwiązania ewoluują przy współpracy samozarządzalnych zespołów, których celem jest przeprowadzanie procesów wytwarzania oprogramowania.

Model przyrostowy (incremental development) jedna z technik pisania oprogramowania, stosowana w przypadkach, w których dopuszczalna jest okrojona funkcjonalność systemu. Analiza + implementacja + testowanie = integracja kolejnych funkcjonalnych części systemu

Generalnie metodyka oparta jest o zdyscyplinowane zarządzanie projektem, które zakłada częste inspekcje wymagań i rozwiązań wraz z procesami adaptacji (zarówno specyfikacji jak i oprogramowania). Metodyka ta najczęściej znajduje zastosowanie w małych zespołach programistycznych, w których nie występuje problem komunikacji, przez co nie trzeba tworzyć rozbudowanej dokumentacji kodu. Kolejne etapy wytwarzania oprogramowania zamknięte są w iteracjach, w których za każdym razem przeprowadza się testowanie wytworzonego kodu, zebranie wymagań, planowanie rozwiązań itd. Metoda nastawiona jest na szybkie wytwarzanie oprogramowania wysokiej jakości.

Skład zespołów jest zazwyczaj wielofunkcyjny oraz samozarządzalny, bez zastosowania jakiejkolwiek hierarchii korporacyjnej. Członkowie zespołu biorą odpowiedzialność za zadania postawione w każdej iteracji. Sami decydują jak osiągnąć postawione cele.

Metoda nastawiona jest na bezpośrednią komunikację pomiędzy członkami zespołu, minimalizując potrzebę tworzenia dokumentacji. Jeśli członkowie zespołu są w różnych lokalizacjach, to planuje się codzienne kontakty za pośrednictwem dostępnych kanałów komunikacji (wideokonferencja, e-mail itp.).

Podstawowe zasady Manifest Agile (Agile Manifesto) założenia: ludzie i ich wzajemne oddziaływania - interakcje są ważniejsze niż procedury i narzędzia przedkłada się działające oprogramowanie nad wyczerpującą dokumentację ważniejsza jest współpraca z klientem od negocjacji umów istotniejsze jest reagowanie na zmiany niż ścisłe trzymanie się planu

Większość metodyk zwinnych ma swoje zastosowanie w zarządzaniu projektami IT, które są innowacyjne i bardzo kreatywne. Postępowanie według zasad powyższej deklaracji znacznie przyczyni się do poprawienia efektywności oraz skuteczności działania członków projektu.

Najbardziej znane zwinne metodyki to: Metodyka Scrum Extreme Programming Lean Development Metodyka Crystal Feature Driven Development

Scrum (z ang. młyn w grze rugby) W tej iteracyjnej metodyce rozwój produktu podzielony jest na mniejsze, trwające od jednego do czterech tygodni, fazy zwane sprintami następującymi bezpośrednio po sobie. Po każdym sprincie zespół pracujący nad rozwojem projektu jest w stanie dostarczyć działający prototyp projektu.

Scrum skupia się na: dostarczaniu kolejnych, coraz bardziej dopracowanych wyników projektu, włączaniu się przyszłych użytkowników w proces wytwórczy, samoorganizacji zespołu projektowego.

Programowanie ekstremalne ( extreme Programming, XP) metodyka programowania mające na celu wydajne tworzenie małych i średnich "projektów wysokiego ryzyka", czyli takich, w których nie wiadomo do końca, co się tak naprawdę robi i jak to prawidłowo zrobić. Koncepcja prowadzenia projektu, wywodząca się z obserwacji innych projektów, które odniosły sukces.

Zalecenia w XP Iteracyjność Nie projektować z góry Testy jednostkowe Ciągłe modyfikacje architektury Programowanie parami Stały kontakt z klientem

Lean Software Development "Odchudzone" czy inaczej "wyszczuplone" zarządzanie (lean management). Odchudzone zarządzanie ma swe źródło w koncepcji odchudzonej produkcji (ang. Lean production), która została wymyślona i po raz pierwszy zastosowana w japońskim koncernie samochodowym Toyota, przez szefa produkcji tego koncernu Taiichi Ohno. Ta bardzo popularna koncepcja znalazła swoje zastosowanie także przy produkcji oprogramowania, znana jest pod nazwą Lean Software Development, a została zaadoptowana przez Mary Poppendieck i Toma Poppendiecka. W szczupłym wytwarzaniu oprogramowania wyróżnia się 7 zasad wspomaganych przez 22 narzędzia.

Eliminacja strat (Eliminate Waste) Tworzenie jakości i spójności (Build Quality In) Wzmocnienie pozyskiwania wiedzy (Create Knowledge) Podejmowanie decyzji najpóźniej, jak to możliwe (Defer Commitment) Wdrażanie najwcześniej, jak to możliwe (Deliver Fast) Respektowanie zespołu (Respect People) Spojrzenie na całość (Optimize the Whole)

Crystal Metodyka Cristal ma odmiany w zależności od stopnia krytyczności projektu (kategoryzowanego poprzez litery C, D, E, L objaśnione dalej) i w zależności od jego rozmiaru, mierzonego liczbą projektantów zaangażowanych w tworzenie projektu.

Kategorie krytyczności projektowanego systemu: C - Komfortowe K (Comfort), D - Zarządzające Z Finansami (Discretionary Money), E - Finansowo F istotne (Essential Money) L - Krytyczne K dla Życia (Life Critical)

Na tej podstawie proponowana jest cała rodzina metod typu Krytyczność systemu Cristal. L6 L20 L40 L80 E6 E20 E40 E80 D6 D20 D40 D80 C6 C20 C40 C80 Czysta Żółta Pomarańczowa Czerwona Rozmiar projektu

Feature Driven Development Jej głównymi celami jest umożliwienie wytwarzania użytecznego oprogramowania w powtarzalny i efektywny sposób, zapewniając wiarygodne informacje o stanie projektu informatycznego do wszystkich jego uczestników, z minimalnym narzutem na pracę programistyczną.

Założenia Zapewnia dostateczną strukturę dla prac większych zespołów Nacisk na jakość wytwarzanego oprogramowania Kolejne wersje oprogramowania powstają często i zawierają nowe użyteczne funkcje Zapewnia mechanizmy do wiarygodnego śledzenia postępu prac W FDD są używane testy jednostkowe FDD zakłada przypisanie kodu (klas) do właścicieli (programistów) Podczas implementacji wykonywane są inspekcje kodu

Fazy projektu: Budowa ogólnego modelu, Budowa listy cech, Planowanie według cech, Projekt według cech i Implementacja według cech, dwie ostatnie są powtarzane wielokrotnie podczas projektu.

Inne lekkie metodyki to: Dynamic Systems Development Method, Adaptive Software Development, Pragmatic Programming,

KUNIEC :)