Projektowanie oprogramowania. Termin zajęć: poniedziałek, 18.00-19.45. a podstawie materiału ze strony. http://gromit.iiar.pwr.wroc.



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

Projektowanie oprogramowania

Projektowanie oprogramowania

Programowanie Zespołowe

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

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

Projektowanie oprogramowania

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

Scrum. Zwinna metodyka prowadzenia projektów

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

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

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

Metodyki programowania. Tomasz Kaszuba 2015

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

forma cząstkowy grupy Dane Dane grupy Dane grupy

Egzamin / zaliczenie na ocenę*

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Podstawy programowania III WYKŁAD 4

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Usługa: Testowanie wydajności oprogramowania

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

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

PRZEWODNIK PO PRZEDMIOCIE

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Wykład 1 Inżynieria Oprogramowania

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

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

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Feature Driven Development

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria oprogramowania - opis przedmiotu

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Scrum w praktyce. Michał Piórek

Zarządzanie projektami. Porównanie podstawowych metodyk

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

I. Raport wykonywalności projektu

Zasady organizacji projektów informatycznych

Szkolenie wycofane z oferty

REFERAT PRACY DYPLOMOWEJ

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Testujemy dedykowanymi zasobami (ang. agile testers)

KARTA MODUŁU KSZTAŁCENIA

Etapy życia oprogramowania

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

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne.

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

Zapytanie ofertowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Maciej Oleksy Zenon Matuszyk

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

Specyfikowanie wymagań przypadki użycia

Testowanie w procesie Scrum

PRZEWODNIK PO PRZEDMIOCIE

Testowanie oprogramowania

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

PRZEWODNIK PO PRZEDMIOCIE

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

KARTA PRZEDMIOTU. Projekt zespołowy D1_10

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Modelowanie i analiza systemów informatycznych

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

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

Web frameworks do budowy aplikacji zgodnych z J2EE

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Projekt zespołowy D1_10

Grupa treści kształcenia, w ramach której przedmiot jest realizowany Przedmiot kierunkowy

Strategia testów mająca doprowadzić do osiągnięcia pożądanych celów

Inżynieria oprogramowania II

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

ECDL ZARZĄDZANIE PROJEKTAMI

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

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

Zarządzaj projektami efektywnie i na wysokim poziomie. Enovatio Projects SYSTEM ZARZĄDZANIA PROJEKTAMI

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

PRZEWODNIK PO PRZEDMIOCIE

Narzędzia CASE dla.net. Łukasz Popiel

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

PROCEDURA UTRZYMANIA I ROZWOJU KWESTIONARIUSZA ZAINTERESOWAŃ ZAWODOWYCH

Testowanie oprogramowania. Piotr Ciskowski

Planowanie i realizacja zadań w zespole Scrum

CASE STUDIES TEST FACTORY

Programowanie zespołowe

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Programowanie MorphX Ax

APLIKACJE KLIENT-SERWER Client-Server Applications Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

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

Projekt systemu informatycznego

PRZEWODNIK PO PRZEDMIOCIE

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

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

AIDoc. System wspomagania zarządzaniem wizytami medycznymi oraz przechowywaniem rodzinnej dokumentacji medycznej.

I. Opis przedmiotu zamówienia

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

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Podstawy modelowania programów Kod przedmiotu

Transkrypt:

Projektowanie oprogramowania Termin zajęć: poniedziałek, 18.00-19.45 a podstawie materiału ze strony http://gromit.iiar.pwr.wroc.pl/p_inf/ Przebieg realizacji projektu (tabela 1) Nr tygo dnia Spotkanie Uwagi dotyczące realizacji Zespóły składające się z trzech studentów- przystapienie do kolejnego Daily Scrum po zaliczeniu poprzedzajacego 1 1 2 Daily Scrum 3 Daily Scrum 4 Daily Scrum 1. Zajęcia organizacyjne ( podział na grupy, przydzielenie ról projektowych, uzyskanie dostępu do wymaganych narzędzi) 2. Backlog - Opracowanie modelu biznesowego systemu zapisów studentów na zajęcia w oparciu o znane algorytmy wpierające proces wyboru najlepszego rozwiązania udział wszystkich grup projektowych 3. Backlog - zdefiniowanie wymagań funkcjonalnych i niefunkcjonalnych udział wszystkich grup projektowych Definicja PU (przypadku użycia): opis słowny wg standardowego formularza scenariusz można wykonać za pomocą diagramu aktywności Projekt PU: diagram klas, diagram sekwencji, diagramy stanów raport wygenerowanie dokumentacji, zawierającej wymienione wyżej elemetny identyfikowane na podstawie PU, wykorzystanie wzorców projektowych (zalecane) Implementacja1 PU (warstwa biznesowa): kod warstwy biznesowej, koncepcja i kod testów jednostkowych i integracyjnych wykonanych za pomocą JUnit usuwanie błędów pomiar metryk oprogramowania za pomocą narzędzia CKJM ewentualna refaktoryzacja kodu w celu poprawy nieprawidłowych wartości metryk (w szczególności RFC, LCOM3) powtórzenie testów jednostkowych w przypadku refakatoryzacji kodu Liczba punktów (do oceny) Zadania kierownika zespołów (Scrum Master) Sporządzenie dokumentacji p.2 i 3 (edytor tekstu itp) 3-5 Integrowanie PU opracowanych przez prupy projektowe w postaci diagramu PU 4-10 Integrowanie projektów PU opracowanych przez prupy projektowe w postaci jednego diagramu klas, eliminacja redundancji w projekcie, Analiza raportów inspektorów, ocena wpływu zidnetyfikowanych problemów na przebieg projektu 3-5 Integrowanie kodu źródłowego: tworzenie wieloużywalnych pakietów (bibliotek)

5 Daily Scrum Implementacja2 PU (warstwa prezentacji i klienta): opracowanie wspólnego szablonu tworzonych formularzy, ujednolicenie funkcjonalności formularzy w zakresie ich obsługi i walidacji danych kod warstwy prezentacji i klienta (technologia JSF), koncepcja i kod testów akceptacyjnych (Selenium lub recznych), 4-10 Kontrola przyjętego standardu formularzy, 6 2 7 Daily Scrum Wszystkie grupy Rozbudowa diagramu PU ( Backlog): planowanie nowych PU, uwzględnienie wniosków z raportów opracowanych przez Scrum Master z wykonanych PU Definicja PU (przypadku użycia): opis słowny wg standardowego formularza scenariusz można wykonać za pomocą diagramu aktywności 3-5 Podobnie jak w sprincie 1 8 Daily Scrum 9 Daily Scrum 10 3 Projekt PU: diagram klas, diagram sekwencji, diagramy stanów raport wygenerowanie dokumentacji, zawierającej wymienione wyżej elemetny identyfikowane na podstawie PU, wykorzystanie wzorców projektowych (zalecane) Implementacja1 PU (warstwa biznesowa): kod warstwy biznesowej, koncepcja i kod testów jednostkowych i integracyjnych wykonanych za pomocą JUnit usuwanie błędów pomiar metryk oprogramowania za pomocą narzędzia CKJM ewentualna refaktoryzacja kodu w celu poprawy nieprawidłowych wartości metryk (w szczególności RFC, LCOM3) powtórzenie testów jednostkowych w przypadku refakatoryzacji Implementacja2 PU (warstwa prezentacji i klienta): opracowanie wspólnego szablonu tworzonych formularzy, ujednolicenie funkcjonalności formularzy w zakresie ich obsługi i walidacji danych kod warstwy prezentacji i klienta (technologia JSF), koncepcja i kod testów akceptacyjnych (Selenium lub ręczne), Podobnie jak w sprincie 2 4-10 3-5 4-10 Podobnie jak w sprincie1

11 Daily Scrum 12 Daily Scrum 13 Daily Scrum 14 retrospective meeting (1.5h) Podsumowanie Stosowany proces wytwarzania oprogramowania - Scrum Stosowany będzie proces wytwarzania oprogramowania wzorowany na metodyce Scrum. Z metodyki tej zaczerpnięte zostały następujące elementy: Daily Scrum - krótkie spotkanie dotyczące aktualnego statusu projektu, w trakcie którego następuje synchornizacja prac wykonywanych przez poszczególne zespoły. W spotkaniu bierze udział prowadzący, Scrum Master i dokładnie jeden przedstawiciel każdej grupy projektowej, pozostali członkowie grup projektowych mogą brać udział w spotkaniu tylko jako obserwatorzy. W trakcie spotkania przedstawiciel zespołu powinien udzielić odpowiedzi na następujące trzy pytania: o Co zespół zrobił od poprzedniego Daily Scrum? o Co zespół planuje zrobić do następnego Daily Scrum? o Co przeszkadza zespołowi w realizowaniu zaplanowanych zadań? Product Owner - rola pełniona przez prowadzącego. Product Owner decyduje o priorytetach poszczególnych zadań, tym samym do niego należy rozstrzygający głos odnośnie zestawu zagadnień wybieranych do Backlog w trakcie meeting. Product Owner decyduje również o tym, czy dane zagadnienie zostało zrealizowane w wystarczającym stopniu i z wystarczającą jakości, aby mogło zostać uznane za zaliczone. Scrum Master - rola pełniona przez 3 studentów każdy przez okres jednego sprintu. Powinni oni w miarę możliwości rozwiązywać problemy zagrażające sukcesowi sprintu. Administrują systemem Redmine. Pewne zdadania zostały wyspecyfikowane w tabeli 1. - ograniczona czasowo do 4 tygodni iteracja (patrz Tab. Przebieg realizacji projektu) w trakcie której zespóły pracują nad przekształceniem przydzielonych przypadków użycia w nadającą się do przekazania klientowi funkcjonalność. Backlog - lista błędów, zadań i przypadków użycia z przypisanymi punktami odzwierciedlającymi ich trudność, które mają zostać zrealizowane w trakcie sprintu. Powstaje w systemie Redmine w trakcie meeting. meeting - 70 minutowe spotkanie rozpoczynające każdy sprint. W trakcie spotkania definiuje się Backlog. W spotkaniu biorą udział Product Owner, Scrum Master, administrator i przynajmniej jeden przedstawiciel każdej grupy projektowej. retrospective meeting - spotkanie podsumowujące projekt. W trakcie spotkania powinna odbyć się dyskusja dotycząca możliwości usprawnienia stosowanego procesu wytwarzania oprogramowania. meeting - 20 minutowe spotkanie podsumowujące sprint. W trakcie spotkania prezentowane oraz omawiane są funkcjonalności zrealizowane w trakcie kończącego się sprintu. Przepływ pracy Przepływ pracy w projekcie wynika bezpośrednio z przedstawionego harmonogramu w tabeli 1: Przebieg realizacji projektu. Cały projekt jest podzielony na 3 sprinty. Każdy sprint składa się z takich samych elementów. Zaczyna się spotkaniem meeting, w trakcie którego wybierana są zagadnienia do zrealizowania w

trakcie sprintu, a kończy się spotkaniem meeting, w trakcie którego prezentowane są uzyskane wyniki. W trakcie sprintu, raz w tygodniu odbywają się spotkania Daily Scrum, na których raportowany jest aktualny status. Najważniejszym zadaniem w trakcie sprintu jest rozwiązywanie zaplanowanych na sprint zagadnień, czyli błędów, zadań i przypadków użycia. Każdy wynik prezentowany podczas Daily Scrum jest oceniane za pomocą przydzielanych punktów, podanych w tabeli 1, zarówno zespołowi, jak i kierownikowi (Scrum Master) Realizacja przypadku użycia może być stosunkowo zawiła i obejmuje zazwyczaj wiele różnych aktywności. W związku z tym zaleca się aby kierownik zespołu wprowadził w systemie Redmine zadania składające się na realizację danego przypadkiem użycia i poprzydzielał je członkom zespołu. Role projektowe Jeden projekt będzie realizowany przez wszystkich studentów zapisanych na dany termin, czyli zespół projektowy będzie się składał z około 16 osób. Podział na 3-osobowe podgrupy o Programista / modelarz 2-3 osoby w podgrupie, odpowiedzialne za specyfikowanie wymagań, projektowanie aplikacji, programowanie i testowanie na poziomie testów jednostkowych o Kierownik - 1 osoba w podgrupie, odpowiedzialna za koordynowanie prac wewnątrz podgrupy (np. definiowanie niepunktowanych podzadadań w Redmine), osoba kontaktowa w komunikacji między podgrupami, równocześnie pełni rolę programisty / modelarza o Inspektor / tester 1-2 osoby w podgrupie, odpowiedzialne za przeglądanie i weryfikowanie wymagań oraz modelu (przygotowują raport inspektora) oraz za testy akceptacyjne. Listy kontrolne dla inspektora: Lista kontrolna diagramów hierarchii okien http://gromit.iiar.pwr.wroc.pl/p_inf/lista_kontrolna_diagramu_hierarchii_okien.htm Lista kontrolna opisów PU http://gromit.iiar.pwr.wroc.pl/p_inf/pliki/lista_kontrolna_opis_pu.pdf Lista kontrolna diagramów klas http://gromit.iiar.pwr.wroc.pl/p_inf/pliki/lista_kontrolna_diagram_klas.pdf Lista kontrolna diagramów sekwencji http://gromit.iiar.pwr.wroc.pl/p_inf/pliki/lista_kontrolna_diagram_sekwencji.pdf Lista kontrolna diagramów stanów http://gromit.iiar.pwr.wroc.pl/p_inf/pliki/lista_kontrolna_stany.pdf Szablon raportu inspektora http://gromit.iiar.pwr.wroc.pl/p_inf/raportinspektora.html Administrator 1 osoba w całym projekcie, odpowiedzialne za przygotowywanie i konserwowanie środowiska programistycznego ze szczególnym uwzględnieniem systemu ciągłej integracji oraz za raportowanie i przypisywanie błędów znalezionych przy pomocy systemu ciągłej integracji. Funkcja cykliczna, kadencja trwa 1 sprint, każdy kolejny administrator powinien pochodzić z innej 3- osobowej podgrupy. Scrum Master. Funkcja cykliczna, kadencja trwa 4 tygodnie, jedna osoba w projekcie. Każdy kolejny Scrum Master powinien pochodzić z innej 3-osobowej podgrupy. Scrum Master oprócz swojej funkcji powinien wykonywać zadania związane z implementacją realizowanego przez jego grupę przypadku użycia. Administruje systemem Redmine, w szczegolnosci ma uprawnienia do zmieniania osoby przypisanej do błędu. Jak wybrać kierownika oraz inspektora http://gromit.iiar.pwr.wroc.pl/p_inf/pliki/kierowanie.pdf Przygotowywane artefakty Faza modelowania o scenariusz PU, najlepiej w postaci diagramu aktywności, czas życia dokumentu - czas trwania całego projekt o specyfikacja testów akceptacyjne do PU, czas życia dokumentu - czas trwania całego projekt albo do momentu zautomatyzowania w postaci wykonywalnej w systemie ciągłej integracji o diagram sekwencji do PU o diagram klas do PU o diagram stanów (jeżeli jest potrzebny) do PU

o raport inspektora (można generowac z Redmine albo przygotowywać ręcznie na podstawie wspomnianego powyżej szablonu) Faza implementacji o kod (działająca aplikacja) obowiązkowa separacja kodu warstwy biznesowej od warstwy prezentacji o zautomatyzowane testy jednostkowe (JUnit) o uruchomione manualnie lub zautomatyzowane w wybranym narzędziu testy akceptacyjne Dokumenty wytwarzane poza fazami, czas życia dokumentu - czas trwania całego projekt o diagram PU o diagramy ilustrujące architekturę całego systemu, np.: diagram klas domenowych, diagram ilustrujący podział systemu na komponenty Czas życia dokumentu wynosi 1 sprint (kodu i zautomatyzowanych testów nie zaliczamy do dokumentów), chyba że napisano w opisie dokumentu inaczej. Dokumenty o czasie życia wynoszącym 1 sprint nie muszą być aktualizowane po zakończeniu sprintu, w którym żyły. Pozostałe dokumenty muszą być aktualizowane aż do końca projektu. Odpowiedzialna za aktualizację dokumentu jest grupa, która wprowadziła zmianę w efekcie której, dokument musi zostać zaktualizowany. Zalecane narzędzia UML 2.1 - Visual Paradigm 8.1 Community Edition (każdy diagram powinien powstawać w osobnym pliku) Netbeans 7.0 Maven 2.2.1 Hudson o Na potrzeby systemu ciaglej integracji został udostepniony serwer: snow.iiar.pwr.wroc.pl:8080/hudson (156.17.40.149) Java 1.6, JSF, Java EE 6.0 SVN :http://gromit.iiar.pwr.wroc.pl/p_inf/svn.html Redmine (http://snow.iiar.pwr.wroc.pl:4000): http://gromit.iiar.pwr.wroc.pl/p_inf/redmine.html JUnit 4: http://gromit.iiar.pwr.wroc.pl/p_inf/junit.html FitNesse, Selenium lub inne narzędzie do testów funkcjonalnych: http://gromit.iiar.pwr.wroc.pl/p_inf/fitnesse.html Warunki zaliczania i metoda oceniania Ocena końcowa będzie zależeć od liczby zrealizowanych i zaliczonych zagadnień (zagadnienie może być przypadkiem użycia, zadaniem albo błędem), które wcześniej zostały zgłoszone w Redmine. Liczba punktów zależy głównie od liczby wykonanych zagadnień i ich znaczenia w projekcie. Waga wykonanych zgadanień będzie omawiana podczas poszczególnych spotkań w ramach każdego sprintu. Warunkiem uzyskania danej oceny jest zdobycie odpowiedniej liczby punktów, wg tabeli 2: Tabela 2 Ocena Punkty 3,0 42-49 3,5 50-59 4,0 60-69 4,5 70-79 5,0 80-90 Temat projektu Registration for classes at the university - Wykonanie systemu zapisów studentów na zajęcia w oparciu o znane algorytmy wpierające proces wyboru najlepszego rozwiązania wykonanie warstwy integracji z bazą danych jest opcjonalne. Literatura: http://gromit.iiar.pwr.wroc.pl/p_inf/literatura.html