Techniki wytwarzania oprogramowania

RSS

Cel przedmiotu

Celem kształcenia jest zapoznanie studentów z lekkimi (ang. agile) metodologiami tworzenia oprogramowania. W szczególności, przedmiotem zainteresowania są wybrane praktyki programowania (m.in. Test-Driven Development) oraz planowania projektu informatycznego, jak również użyteczne biblioteki i narzędzia wspierające pracę zespołów wykorzystujących metodologie lekkie.

Program wykładu

Przyczyny powstania metodologii lekkich. Syndrom LOOP. Koszty zmian i ryzyko w projekcie informatycznym. Iteracyjny model procesu wytwarzania oprogramowania Manifest metodologii lekkich. Praktyki Programowania Ekstremalnego. Analiza funkcjonalna. Gra w karty CRC. Programowanie w parach. Zasada pisania testów przed kodem. Testowanie jednostkowe i integracyjne. Przypadki trudnotestowalne. Generowanie pokrycia testów. Typy pokrycia. Problematyka testów GUI. Ogólne zasady refaktoryzacji. Wykrywanie brudnego kodu. Zaawansowane techniki refaktoryzacji. Planowanie w Programowaniu Ekstremalnym. Przebieg i role w grze planistycznej. Pojęcie Historii Użytkownika. Pozyskiwanie historii i estymacja czasu pracy. Pojęcie retrospekcji i stosowane techniki. Ciągła integracja. Współwłasność kodu. Scrum, skalowanie Scrum. Rodzina metodyk Crystal. Inne metodyki: Feature Driven Development, Lean Software Development.

Charakterystyka pozostałych zajęć

W ramach przedmiotu prowadzone są zajęcia laboratoryjne, których celem jest symulacja pracy w rzeczywistym projekcie. Zajęcia rozpoczynają się więc od przeprowadzenia Gry Planistycznej czyli etapu analizy wymagań funkcjonalnych projektu w postaci tzw. User Stories, oraz fazy planowania poszczególnych iteracji projektu. Naste˛pnie studenci zapoznają się z praktycznymi aspektami tak powszechnych obecnie praktyk jak Test-Driven Development, Refaktoryzacja czy Retrospekcja. W oparciu o powstające artefakty własnej pracy, studenci poznają również różne miary stosowane w pracy zespołów lekkich. Są to m.in. graf spalania, team velocity oraz stopień pokrycia kodu przez testy.

Bibliografia

1. Beck K..: eXtreme Programming eXplained. Embrace Change . Addison-Wesley Professional, Warszawa 1999
2. Martin R.: Agile Software Development, Principles, Patterns and Practices. Prentice Hall, 2006
3. Schwaber K.: Agile Projekt Management with Scrum. Microsoft Press 2004
4. Fowler M. i współaut.: Refactoring: Improving the Design of Existing Code, Addison Wesley Professional 1999
5. McConnell S. Rapid Development. Microsoft Press 1996

Wszelkie prawa zastrzeżone © 2010 Katedra Informatyki   |   Akademia Górniczno-Hutnicza   |   Realizacja Creative Bastards