Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński



Podobne dokumenty
Programowanie Zespołowe

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

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

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

Programowanie Zespołowe

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

Metodyki programowania. Tomasz Kaszuba 2015

Planowanie i realizacja zadań w zespole Scrum

Programowanie obiektowe

DLACZEGO TO DZIAŁA? 21. marca 2012r.

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

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

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

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

AGILE SOFTWARE HOUSE SCRUM PRAKTYCZNIE SCRUM BOOK

Programowanie zorientowane obiektowo. Mateusz Kołecki

Adaptywny kod : zwinne programowanie, wzorce projektowe i SOLID-ne zasady / Gary McLean Hall. Gliwice, cop Spis treści

Program szkolenia: Zaawansowane programowanie w C++

Metodyki zwinne wytwarzania oprogramowania

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

Wprowadzenie do programowania aplikacji mobilnych

Lekkie metodyki. tworzenia oprogramowania

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

Programowanie zespołowe

Programowanie zwinne

Programowanie obiektowe

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

Programowanie obiektowe

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

Scrum. Zwinna metodyka prowadzenia projektów

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Wzorce architektoniczne

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

Projektowanie obiektowe oprogramowania Wykład 4 - SOLID GRASP Wiktor Zychla 2012

NAJLEPSZE STRATEGIE SKUTECZNYCH PROGRAMISTÓW. TECHNIKI PRACY Z KODEM KOD: NSKOD

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

JUnit TESTY JEDNOSTKOWE. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

Program szkolenia: Wzorce projektowe w C++

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Scrum w praktyce. Michał Piórek

Programowanie zespołowe

Zarządzanie projektami IT metodyką SCRUM. Cezary Kamiński

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Wprowadzenie do Behaviordriven

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

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

Michał Olejnik. 22 grudnia 2009

Agile vs PRINCE /2015 I rok st. magisterskie Informatyka

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

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

Jak uchronić architekturę i wymagania przed chaosem? Warszawa, 27 stycznia 2016 roku

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

INŻYNIERIA OPROGRAMOWANIA

Techniki komputerowe w robotyce

Podstawy modelowania programów Kod przedmiotu

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Dobry start do profesjonalnego programowania w C++ dla. początkujących programistów

Zarządzanie projektami. Porównanie podstawowych metodyk

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Wzorce projektowe. dr inż. Marcin Pietroo

Szkolenie wycofane z oferty

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Oferta usług coachingowych firmy Code Sprinters

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

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

Modele cyklu życia systemu cd Zasady programowania zwinnego Wykład 3

Podstawy programowania III WYKŁAD 4

Metodyki zwinne wytwarzania oprogramowania

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

Agile Project Management

Paweł Rajba

Testowanie w procesie Scrum

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

Testujemy dedykowanymi zasobami (ang. agile testers)

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

PRZEWODNIK PO PRZEDMIOCIE

Zasady projektowania obiektowego

RAPORT KOŃCOWY PROJEKTU

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

Scaling Scrum with SAFe. Małgorzata Czerwińska

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

Metodyki zwinne wytwarzania oprogramowania

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

EMPIRYZMSCRUM DOŚWIADCZENIE + PODEJMOWANIE DECYZJI = WIEDZA

Programowanie zespołowe

Omówienie założeń procesu Design Thinking i przeprowadzenie wstępnego warsztatu. Mariusz Muraszko i Mateusz Ojdowski Logisfera Nova

Zasady organizacji projektów informatycznych

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

INŻYNIERIA OPROGRAMOWANIA

I N S T Y T U T I N F O R M A T Y K I S T O S O W A N E J 2016

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

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

Transkrypt:

Wskazówki projektowe Programowanie Obiektowe Mateusz Cicheński

Przydatne zasady SOLID Wzorce struktury aplikacji MVC MVP MVVM Metody wytwarzania oprogramowania Manifest Zwinnego Wytwarzania Oprogramowania Scrum TDD Przydatne odnośniki Plan zajęć

S O L I D RP CP SP SP IP Przydatne zasady

S O L I D RP CP SP SP IP Każda klasa jest odpowiedzialna za jedną rzecz. vs Single responsibility principle

S O L I D RP CP SP SP IP Klasa jest otwarta na rozszerzenia, ale zamknięta na modyfikacje. Open/closed principle

S O L I D RP CP SP SP IP Jeśli klasa S jest podklasą T, to obiekty klasy T mogą być podmienione przez obiekty klasy S bez wpływu na działanie aplikacji. vs Liskov substitution principle

S O L I D RP CP SP SP IP Interfejsy powinny definiować minimalny zbiór metod zapewniających spójną funkcjonalność. vs Interface segregation principle

S O L I D RP CP SP SP IP 1. Moduły wysoko-poziomowe nie powinny zależeć od modułów niskopoziomowych. Jedne i drugie powinny bazować na abstrakcji. 2. Abstrakcje nie powinny zależeć od szczegółowych rozwiązań. Szczegółowe rozwiązania powinny zależeć od abstrakcji. Dependency inversion principle

Jeśli w jednym pokoju spotka się 10 architektów aplikacji i każesz im omówić 1 wybrany wzorzec struktury aplikacji, to choćbyś nie wiem jak się starał uzyskasz 12 różnych definicji 10 x 1 = 12 matematyka architektów aplikacji Wzorce struktury aplikacji

APLIKACJA jest widoczne dla używa Użytkownik Najprościej i bez pomysłu

MODEL WIDOK zarządza KONTROLER Użytkownik Model View Controller

Użytkownik jest widoczne dla wchodzi w interakcje WIDOK przekazuje interakcje aktualizuje PREZENTER MODEL używa Model View Presenter

MODEL WIDOKU WIDOK MODEL Użytkownik Model View ViewModel

Ułatwiają pracę w zespole Umożliwiają kontrolę postępów pracy Organizują pracę zespołu Realizują wszystkie etapy związane z wytwarzaniem aplikacji, tj.: Zebranie wymagań Projekt aplikacji Implementacja Testowanie Wytworzenie produktu finalnego Metody wytwarzania oprogramowania

Ludzie i ich wzajemne interakcje (współdziałanie) ponad procedury i narzędzia. Działające oprogramowanie nad wyczerpującą dokumentację. Współpraca z klientem nad negocjację umów. Reagowanie na zmiany ponad realizowanie planu. Manifest Agile

Role: zespół, klient, scrum master Product Backlog = spis wymagań w postaci historyjek (INVEST independent, negotiable, valuable, estimable, small and testable) Sprint Backlog = lista wymagań uwzględnionych w danym przyroście (sprincie) Sprint = przedział czasowy, w ramach którego powinien powstać nowy produkt realizujący wybrane funkcjonalności (zazwyczaj to 2 do 4 tygodni) Scrum

Spotkanie dzienne Ograniczone czasowo (max 15 minut) Obecność całego zespołu Co zostało zrobione wczoraj, co zostanie zrobione dzisiaj, czy wystąpiły jakieś problemy? Przygotowanie Backlogu Ograniczone czasowo (max 1 godzina) Służy analizie historii i ich ewentualnemu podziałowi na mniejsze historie Planowanie sprintu Ograniczone czasowo (max 8 godzin) Wybranie historii z Backlogu = utworzenie Sprint Backlogu z uwzględnieniem czasu wykonania zadań Scrum c.d.

Podsumowanie sprintu Określenie co zostało zrobione, a co nie Przedstawienie nowej wersji oprogramowania klientowi Spotkanie retrospektywne Co poszło dobrze/sprawnie w poprzednim sprincie? Co może zostać poprawione przy realizacji kolejnego sprintu? Scrum c.d.

Etap 1: sformułowanie funkcjonalności w postaci testu jednostkowego Etap 2: upewnienie się, że test zakończy się niepowodzeniem Etap 3: implementacja nowej funkcjonalności Etap 4: upewnienie się, że test zakończy się powodzeniem Etap 5: refaktoryzacja kodu Etap 6: wróć do Etapu 1 Test Driven Development

Struktura dobrego testu: 1. przygotowanie systemu 2. uruchomienie testu 3. walidacja rezultatów 4. posprzątanie po sobie Testy powinny być niezależne od siebie! Testy powinny być powtarzalne! Nie oczekuj dokładnych wyników dla testów wydajności lub czasu wykonania Testując wartości zależne od zewnętrznych czynników uwzględnij pewien margines błędu (np. przy pomiarze czasu) Porównuj tylko wartości istotne dla danego testu TDD dobre praktyki

TDD http://www.junit.org/ SVN http://subversion.apache.org/ http://tortoisesvn.tigris.org/ Bug tracker http://trac.edgewall.org/ http://www.mantisbt.org/ Projektowanie obiektowe http://wazniak.mimuw.edu.pl/index.php?title=zaaw ansowane_projektowanie_obiektowe Przydatne odnośniki