Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania Autor: Łukasz Olek.

Podobne prezentacje


Prezentacja na temat: "Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania Autor: Łukasz Olek."— Zapis prezentacji:

1 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania Autor: Łukasz Olek

2 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (2) Plan wykładów Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML, cz. I Język UML, cz. II Metody formalne Wzorce projektowe Zarządzanie konfiguracją Wprowadzenie do testowania Automatyzacja wykonywania testów Programowanie Ekstremalne Ewolucja oprogramowania i refaktoryzacja

3 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (3) Wprowadzenie - problemy Różnorodność artefaktów –specyfikacja wymagań –kod źródłowy –testy jednostkowe –prototyp –projekt –…

4 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (4) Wprowadzenie - problemy Równoległa, wspólna praca nad fragmentami kodu

5 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (5) Wprowadzenie - problemy Wiele wersji artefaktów: –identyfikacja, przechowywanie

6 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (6) Wprowadzenie - problemy Wersje artefaktów, a wersje produktu

7 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (7) Wprowadzenie - problemy Analizowanie historii: –Kto? Kiedy? Jaka zmiana?

8 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (8) Wprowadzenie - problemy Praca nad nową wersją systemu i poprawianie błędów w starej

9 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (9) Wprowadzenie Narzędzia wspomagające zarządzanie konfiguracją oprogramowania: –CVS, Subversion, SourceSafe Procedury: –kodowania –wydawania nowej wersji –poprawiania defektów –łączenia różnych zmian

10 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (10) Plan wykładu Wprowadzenie Operacje systemu CVS: –pobieranie artefaktów –wysyłanie zmian –aktualizacja –nadawanie etykiet –rozgałęzianie/łączenie gałęzi Struktura plików projektu Wzorce zarządzania konfiguracją

11 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (11) System CVS Centralny serwer Pracownicy komunikują się za jego pośrednictwem

12 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (12) Lokalna przestrzeń robocza Lokalna (prywatna) kopia wybranych elementów repozytorium Zmiany wprowadzane lokalnie - synchronizowane na żądanie

13 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (13) Plan wykładu Wprowadzenie Operacje systemu CVS: –pobieranie artefaktów –wysyłanie zmian –aktualizacja –nadawanie etykiet –rozgałęzianie/łączenie gałęzi Struktura plików projektu Wzorce zarządzania konfiguracją

14 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (14) Początkowe pobieranie artefaktów pobieranie artefaktów (ang. checkout)

15 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (15) Plan wykładu Wprowadzenie Operacje systemu CVS: –pobieranie artefaktów –wysyłanie zmian –aktualizacja –nadawanie etykiet –rozgałęzianie/łączenie gałęzi Struktura plików projektu Wzorce zarządzania konfiguracją

16 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (16) Cykl aktualizacji/wysyłanie zmian aktualizacja/wysyłanie zmian (ang. update/commit)

17 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (17) Linia rozwoju artefaktu

18 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (18) Równoległe uaktualnianie artefaktów ? ?

19 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (19) Równoległe uaktualnianie artefaktów

20 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (20) Równoległe uaktualnianie arteraktów

21 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (21) Równoległe uaktualnianie artefaktów

22 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (22) Równoległe uaktualnianie artefaktów up-to-date check failed!

23 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (23) Równoległe uaktualnianie artefaktów

24 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (24) Równoległe uaktualnianie artefaktów

25 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (25) Równoległe uaktualnianie artefaktów Jak CVS wykonuje komendę update? –zmiany po stronie lokalnej przestrzeni roboczej –zmiany w repozytorium * ? ?

26 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (26) Zmiany lokalne Zmiany z repozytorium Równoległe wprowadzanie zmian Zmiany lokalne i z repozytorium nie nakładają się: Zmiany są łączone

27 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (27) Zmiany lokalne Zmiany z repozytorium Równoległe wprowadzanie zmian Zmiany lokalne i z repozytorium nakładają się: Konflikt! Użytkownik sam wybiera właściwą wersję

28 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (28) Rozwiązywanie konfliktu int main(int argc, char **argv) { if (nerr == 0) gencode(); else fprintf(stderr, "No code generated.\n"); <<<<<<< driver.c exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE); ======= exit(!!nerr); >>>>>>> 1.6 } Twoja wersja Wersja z repozytorium

29 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (29) Narzędzia pomagające rozwiązywać konflikty

30 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (30) Plan wykładu Wprowadzenie Operacje systemu CVS: –pobieranie artefaktów –wysyłanie zmian –aktualizacja –nadawanie etykiet –rozgałęzianie/łączenie gałęzi Struktura plików projektu Wzorce zarządzania konfiguracją

31 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (31) Nadawanie etykiet Pozwala posługiwać się nazwami, zamiast numerami wersji: –oznaczanie wydań (np.: R_1.0, R_2.0) –oznaczanie kodu w przypadku większych zmian

32 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (32) Plan wykładu Wprowadzenie Operacje systemu CVS: –pobieranie artefaktów –wysyłanie zmian –aktualizacja –nadawanie etykiet –rozgałęzianie/łączenie gałęzi Struktura plików projektu Wzorce zarządzania konfiguracją

33 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (33) Rozgałęzianie/łączenie gałęzi Rozdzielenie pracy nad pewną częścią kodu: –rozwój nowych funkcji/poprawki do starej wersji –dłuższe eksperymenty na kodzie

34

35 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (35) Plan wykładu Wprowadzenie Operacje systemu CVS: –pobieranie artefaktów –wysyłanie zmian –aktualizacja –nadawanie etykiet –rozgałęzianie/łączenie gałęzi Struktura plików projektu Wzorce zarządzania konfiguracją

36 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (36) Struktura plików projektu Różnorodność artefaktów: –kod źródłowy –skompilowany kod –testy jednostkowe –dokumenty –projekt UML –dodatkowe biblioteki –grafika Jak to ogarnąć?

37 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (37) Struktura plików projektu - Java bin doc –design images lib src –org.blabla.* tests skompilowany kod - tylko lokalnie! dokumentacja UML pliki graficzne wykorzystywane w kodzie dodatkowe biblioteki: *.jar kod źródłowy aplikacji, podział na pakiety kod źródłowy testów jednostkowych

38 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (38) Plan wykładu Wprowadzenie Operacje systemu CVS: –pobieranie artefaktów –wysyłanie zmian –aktualizacja –nadawanie etykiet –rozgałęzianie/łączenie gałęzi Struktura plików projektu Wybrane wzorce zarządzania konfiguracją

39 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (39) Wybrane wzorce zarządzania konfiguracją Główna linia Mainline Linia wydania Release Line –Gałąź przed wydaniem Release-Prep Codeline Gałęzie dla zadań Branch per Task

40 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (40) Główna linia (ang. Mainline) Wiele gałęzi - drzewo może się rozrastać w nieskończoność

41 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (41) Główna linia (ang. Mainline) Zamiast tego: utrzymuj gałąź bazową

42 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (42) Linia wydania (ang. Release Line) Linia reprezentująca logiczne grupowanie dostarczonej funkcjonalności Wybrana funkcjonalność Nowa funkcjonalność - niestabilna Poprawki dla klienta wersji 1.0

43 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (43) Gałąź przed wydaniem (ang. Release-Prep Codeline) Część osób wcześniej skończy pracę nad wersją Aby ich nie blokować do czasu wydania, stwórz gałąź przed wydaniem

44 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (44) Gałęzie dla zadań (ang. Branch per Task) Wiele zmian wprowadzanych w ramach dłuższego zadania może tymczasowo naruszyć spójność kodu Dla większych zadań twórz osobne gałęzie

45 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (45) Podsumowanie Odpowiednie zarządzanie konfiguracją jest niezbędne do efektywnej pracy zespołowej Komendy systemu CVS (checkout, update, commit) –rozwiązywanie konfliktów Wybrane wzorce zarządzania konfiguracją

46 Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania (46) Literatura Steve Berczuk, Brad Appleton: Software Configuration Management Patterns


Pobierz ppt "Inżynieria oprogramowania Zarządzanie konfiguracją oprogramowania Autor: Łukasz Olek."

Podobne prezentacje


Reklamy Google