Anna Kulig
Modele cyklu życia oprogramowania Programowanie zwinne Przyczyny powstania Wprowadzenie Programowanie ekstremalne Wstęp Reguły i praktyki AUP krótki opis metodologii
Model cyklu życia systemu informatycznego ma na celu przedstawienie procesu wytwarzania programowania, który prowadzi do stworzenia działającego systemu spełniającego oczekiwania klienta. Podstawowe modele to Model kaskadowy Model iteracyjny Prototypowanie
Model kaskadowy (waterfall)
Cechy (wady?) modelu kaskadowego uzyskanie produktu zgodnego z wymaganiami klienta silnie zależy od ich stabilności; próba adaptacji do zmieniających sie wymagań jest b. kosztowna; kolejność wykonywania prac musi być ściśle przestrzegana; bardzo wysoki koszt błędów popełnionych we wstępnych etapach; marginalizacja roli klienta w procesie wytwarzania oprogramowania.
PROTOTYPOWANIE Wymagań polega na budowaniu kolejnych przybliżeń systemu; budowa szybkiego projektu bez dbałości o jego jakość i dostosowanie do środowiska docelowego; Wytworcze obejmuje również etap projektowania w celu weryfikacji efektywności przyjętych rozwiązań;
Modele cyklu życia oprogramowania Programowanie zwinne Przyczyny powstania Wprowadzenie Programowanie ekstremalne Wstęp Reguły i praktyki AUP krótki opis metodologii
Syndrom LOOP Late, Over budget Overtime Poor quality Rozwiazanie (?) problemu standardy i wymagania dotyczace procesów wytwarzania oprogramowania.
Standardy dotyczące jakości ISO 9000 CMM
Poziomy CMM
Minusy takiego podejścia Ważniejszy proces niż samo oprogramowanie Tworzenie ton dokumentacji Spora cześć procesu jest fikcyjna Dyscyplina zabija inicjatywę!
Modele cyklu życia oprogramowania Programowanie zwinne Przyczyny powstania Wprowadzenie Programowanie ekstremalne Wstęp Reguły i praktyki AUP krótki opis metodologii
Agile Manifesto 2001 rok, Snowbird w stanie Utah w USA Najważniejsi twórcy Kent Beck Alistair Cockburn Martin Fowler Jim Highsmith
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Do najważniejszych metodyk zwinnych należą m.in. Programowanie ekstremalne (ang. extreme Programing, w skrócie XP ), SCRUM, FDD (ang. Future-Driven Development), Crystal Clear, AUP (ang. Agile Unified Process).
Modele cyklu życia oprogramowania Programowanie zwinne Przyczyny powstania Wprowadzenie Programowanie ekstremalne Wstęp Reguły i praktyki AUP krótki opis metodologii
Extreme Programming (XP): lekka metodyka rozwoju oprogramowania Kent Beck uważany za tworce (1999).
WARTOŚCI Komunikacja Prostota Sprzężenie zwrotne Odwaga Szacunek
Komunikacja przede wszystkim werbalna. Prostota rozpoczynamy od najprostszego rozwiązania, spełniającego wymagania; refaktoryzacja pozwala na adaptacje oprogramowania do zmian.
Sprzężenie zwrotne Obejmuje klika aspektów (system, klient, zespól). Odwaga potrzebna, by od razu produkować kod; potrzebna, by refaktoryzować; potrzebna, by wyrzucić zbędny kod. Szacunek do pracy i czasu innych; miedzy członkami zespołu.
Modele cyklu życia oprogramowania Programowanie zwinne Przyczyny powstania Wprowadzenie Programowanie ekstremalne Wstęp Reguły i praktyki AUP krótki opis metodologii
Struktura zespołu Role podstawowe : programiści, klient Role pomocnicze: tester, coach, tracker Stawia na współpracę zespołu z klientem
User stories opisują funkcje systemu z punktu widzenia użytkownika ważne by miały wartość dla klienta, powinny być testowane
Projekt informatyczny jest szczelnym systemem 4 zmiennych: daty dostarczenia, kosztu, liczby defektów oraz niekompletności funkcji.
Model kaskadowy Model XP
Gra planistyczna: pisanie user story (klient); oszacowanie user story (informatycy); dzielenie user soty/ wybór zakresu iteracji (klient).
Zarządzanie zmianą: XP zakłada, że klient w dowolnym momencie może zmienić zdanie i zaproponować zmianę wymagań.
Testy akceptacyjne pochodzą od klienta (w ten sposób dokładnie określa zachowanie systemu); najlepiej gdy mogą być wykonywane automatycznie (tester);
Zapewnianie jakości prostota; unikanie optymalizacji; TDD (Test Driven Development); automatyczne testowanie; refaktoryzacja;.
PROGRAMOWANIE PARAMI zaleca się, by całość kodu pisana była w parach; częste zmiany w parach; wspólny standard kodowania; kod jest własnością całego zespołu; niezbędny system kontroli wersji.
Wady XP brak fazy projektowania i dokumentacji; krótka perspektywa planowania; silne zalożenie, ze klient pracuje cały czas z zespołem;
Modele cyklu życia oprogramowania Programowanie zwinne Przyczyny powstania Wprowadzenie Programowanie ekstremalne Wstęp Reguły i praktyki AUP krótki opis metodologii
AUP uproszczona wersja Rational Unified Process; stosuje zwinne techniki takie jak TDD, refactoring; twórcą jest Scott Ambler (2002r.). SERYJNY w DUŻEJ SKALI ITERACYJNY w MAŁEJ SKALI
Zasady AUP twój zespół wie, co robi; prostota; zwinność; skupienie się na istotnych aktywnościach; niezależność od narzędzi; możliwość adaptacji.
Część materiałów zaczerpnięta z http://wazniak.mimuw.edu.pl/, http://www.flickr.com/photos/hoalit/355398491/, http://www.ambysoft.com/unifiedprocess/agileup.html