Programowanie zespołowe

Podobne dokumenty
Cykle życia systemu informatycznego

Etapy życia oprogramowania

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

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

Programowanie Zespołowe

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

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

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

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

Metodyki programowania. Tomasz Kaszuba 2015

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

Planowanie i realizacja zadań w zespole Scrum

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

Lekkie metodyki. tworzenia oprogramowania

Programowanie zespołowe

Feature Driven Development

Projektowanie systemów informatycznych. wykład 6

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

Tworzenie gier na urządzenia mobilne

Wstęp do zarządzania projektami

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

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

INŻYNIERIA OPROGRAMOWANIA LAB 1

Metodyki zwinne wytwarzania oprogramowania

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

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

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

Programowanie zwinne

Przedsięwzięcia Informatyczne w Zarządzaniu

Programowanie Zespołowe

MODELE CYKLU śycia OPROGRAMOWANIA

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

Testowanie oprogramowania

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

Agile Project Management

RUP. Rational Unified Process

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

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Inżynieria oprogramowania (Software Engineering)

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Wstęp do zarządzania projektami

4. Wprowadzanie Scruma w ImmobilienScout Opis sytuacji

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

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

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

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

Proces tworzenia oprogramowania

Wstęp do zarządzania projektami

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

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

Zarządzanie projektami. Porównanie podstawowych metodyk

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

Testujemy dedykowanymi zasobami (ang. agile testers)

Programowanie obiektowe

REFERAT PRACY DYPLOMOWEJ

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

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

Wykład 1 Inżynieria Oprogramowania

ZASADY TWORZENIA OPROGRAMOWANIA

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

Opis metodyki i procesu produkcji oprogramowania

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

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

Techniki komputerowe w robotyce

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

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

WPROWADZENIE DO UML-a

Budowa systemu wspomagającego podejmowanie decyzji. Metodyka projektowo wdrożeniowa

Cele oraz techniki tworzenia prototypów systemów infromatycznych. Inżynieria Oprogramowania

Zasady organizacji projektów informatycznych

Idealna strona internetowa dla Twojej firmy

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

Klasyczna organizacja też może być zwinna! Zarządzaj zwinnie projektami!

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

Dobry Product Backlog Oferta szkolenia dla Product Ownerów

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

MSF. Microsoft Solution Framework

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Analiza biznesowa a metody agile owe

Design thinking zaprojektuj, zbuduj i przetestuj swoje pomysły

Dokument Detaliczny Projektu

KANBAN SCRUM-BAN. Agile PM Zarys AUP

Testowanie i walidacja oprogramowania

Zasadnicze czynności w zarządzaniu projektem, fazy cyklu życia systemu informatycznego. Modele cyklu życia - część 1

USPRAWNIANIE, DORADZTWO, KONSULTING

Wprowadzenie do Behaviordriven

Usługa: Testowanie wydajności oprogramowania

Scala Business Solutions Polska Sp. z o.o. Signature metodologia wdrażania Scali. Czego użytkownik potrzebuje najbardziej?

Zarządzanie projektami w NGO

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

Usługa: Audyt kodu źródłowego

Podstawy programowania III WYKŁAD 4

Wytwórstwo oprogramowania. michał możdżonek

Procesowa specyfikacja systemów IT

Plan Testów Systemu SOS

Zagadnienia. Inżynieria Oprogramowania

Transkrypt:

Programowanie zespołowe Laboratorium 4 - modele tworzenia oprogramowania, manifest Agile i wstęp do Scruma mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 14 marca 2017 1 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Fazy procesu produkcji oprogramowania 1 Specyfikacja wymagań (określenie i ustalenie wymagań, które musi spełniać oprogramowanie). 2 Projektowanie (ustalenie architektury systemu i wymagań dla jego poszczególnych części). 3 Implementacja. 4 Integracja (połączenie składowych elementów w jeden system i jego testowanie). 5 Ewolucja (uruchomienie systemu, usuwanie znalezionych podczas użytkowania błędów i rozszerzanie systemu). 2 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Model kaskadowy (waterfall) http://zasoby.open.agh.edu.pl/ 10sdczerner/page/model kaskadowy.html 3 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Cechy modelu kaskadowego Każda następna faza rozpoczyna się dopiero po zakończeniu fazy poprzedzającej. Jeśli faza zwróci niesatysfakcjonujący produkt cofamy się wykonując kolejne iteracje do czasu otrzymania satysfakcjonującego produktu. Łatwe planowanie i zarządzanie wykonaniem (poprzez identyfikację i uporzadkowanie procesu tworzenia oprogramowania). Wysoki koszt iteracji spowodowany powtarzaniem wielu czynności. Stosowany, gdy wymagania są zrozumiałe i przejrzyste. 4 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Model prototypowy Fazy Tworzenie podczas projektowania prototypu. Po jego akceptacji przechodzi się do kolejnych etapów. http://istqbexamcertification.com/what-isprototype-model-advantages-disadvantagesand-when-to-use-it/ 5 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Cechy modelu prototypowego Prototypowanie zapobiega błędnemu zrozumieniu wymagań. Prototyp jest łatwy do zmiany. Umożliwia rozpoczęcie szkolenie obsługi oprogramowania po stronie klienta. Klient uznaje, że aplikacja jest prawie gotowa, a w rzeczywistości jest ona dopiero w początkowej fazie rozwoju. 6 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Popularne rodzaje prototypów Rozpisanie lub narysowanie GUI na kartce papieru. Implementacja części modułów. Użycie narzędzi typu RAD (Rapid application development). Implementacja metod działających tylko dla części przypadków. 7 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadanie 1 Korzystając z dowolnego narzędzia RADowego przygotuj panel logowania dla użytkownika. 8 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Model przyrostowy Fazy Określenie wymagań. Wybór podzbioru funkcji systemu. Projekt i realizacja podzbioru. Testowanie fragmentu i dostarczenie go. Powtórzenie kroków do zakończenia prac nad systemem. http://lucasinformatyka.wdfiles.com/local files/psiegzamin/rys7.gif/ 9 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Cechy modelu przyrostowego Częste kontakty z klientem. Brak konieczności zdefiniowania wszystkich wymagań od razu. Umożliwia rozpoczęcie szkolenie obsługi oprogramowania po stronie klienta. Elastyczne reagowanie na opóźnienia (przyspieszenie prac nad innym fragmentem). Dodatkowe koszty. Trudności z wydzieleniem podzbioru niezależnych funkcji. 10 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Model spiralny Spirala Każda pętla reprezentuje jedną fazę procesu. Najbardziej wewnętrzna pętla przedstawia początkowe etapy projektowania. Wyróżnia się cztery etapy, przez które przechodzą poszczególne fazy (planowanie, analiza ryzyka, realizacja i zatwierdzenie oraz ocena). https://pl.wikipedia.org/wiki/ 11 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Cechy modelu spiralnego Elastyczny (jeden cykl spirali może przebiegać w oparciu o model kaskadowy, a drugi skorzystać z prototypowania). Faza oceny pozwala uniknąć błędów oraz wykryć je we wczesnym etapie. Istnieje możliwość rozwijania projektu. Wymaga doświadczenia i wiedzy. Wysoki koszt usuwania błędów wykrytych w końcowych etapach projektu. 12 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Programowanie zwinne (agile programming) http://pro-tekconsulting.com http://varunm.com 13 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Cechy programowania zwinnego Szybka reakcja na zmiany. Ciągły kontakt z klientem. Wartościowy produkt po każdym cyklu. Testy wykonywane na bieżąco. Stworzony produkt końcowy może różnić się od początkowych założeń. Wymagany dobry zespół. 14 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Agile Agile Manifest Agile jest deklaracją wspólnych zasad dla zwinnych metodyk tworzenia oprogramowania (m.in. scrum, programowanie ekstremalne i Feature Driven Development). https://svsg.co/ 15 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Założenia manifestu 16 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zasady uzupełniające 1 Najważniejsze jest zadowolenie klienta osiągane dzięki wczesnemu i ciągłemu wdrażaniu wartościowego oprogramowania. 2 Trzeba być elastycznym na zmiany wymagań nawet na późnym etapie jego rozwoju. Procesy zwinne wykorzystują zmiany dla zapewnienia klientowi konkurencyjności. 3 Należy dostarczać funkcjonujące oprogramowanie często (w kilkutygodniowych lub kilkumiesięcznych odstępach). 4 Zespoły biznesowe i deweloperskie muszą ściśle ze sobą współpracować (przez cały czas trwania projektu). 5 Należy motywować ludzi - zapewnić im potrzebne środowisko, wsparcie i zaufanie. 6 Najefektywniejsza jest rozmowa twarzą w twarz (przepływ informacji). 17 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zasady uzupełniające cz. 2 7 Działające oprogramowanie jest podstawową miarą postępu. 8 Procesy zwinne umożliwiają zrównoważony rozwój (sponsorzy, deweloperzy i użytkownicy utrzmują równe tempo pracy). 9 Skupienie na technicznej doskonałości i dobrym projektowaniu zwiększa zwinność. 10 Prostota jest najważniejsza. 11 Ważna jest samoorganizacja zespołów (samodzielnie podejmowanie decyzji, zarządzanie i organizowanie pracy). 12 Ciągła poprawa (w regularnych odstępach następuje analiza wydajności i podejmowanie działań ją zwiększających). 18 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Scrum Scrum Scrum jest jedną z metodyk zwinnych zgodnych z manifestem Agile. Zakłada on pracę zespołu przez określony okres czasu (sprint), której efektem ma być dostarczenie kolejnej działającej wersji produktu. http://www.marcinmuras.com/ 19 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Zadanie 1 Załóż konto na https://play.planningpoker.com 20 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe

Dziękuję za uwagę 21 / 21 mgr inż. Krzysztof Szwarc Programowanie zespołowe