Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów
|
|
- Kacper Kaczmarczyk
- 7 lat temu
- Przeglądów:
Transkrypt
1 Zarządzanie konfiguracją oprogramowania Autor: Łukasz Olek Witam Państwa serdecznie na wykładzie poświęconym zarządzaniu konfiguracją oprogramowania. 1
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 Zarządzanie konfiguracją oprogramowania (2) Jest to ósmy wykład z cyklu. Dowiedzieliśmy się już o takich zagadnieniach jak przygotowywanie specyfikacji wymagań, projektowaniu w języku UML, poznaliśmy wzorce projektowe Obecny wykład pomoże zrozumieć metody zapanowania nad tymi wszystkimi artefaktami i ich zmianami, jakie mają miejsce w projektach informatycznych. Zarządzanie konfiguracją oprogramowania to zestaw czynności pozwalających kontrolować zmiany. Robione to jest poprzez identyfikację elementów, które mogą się zmieniać, ustalenie relacji pomiędzy nimi, określenie mechanizmów zarządzania wersjami. Dla osób, które do tej pory pracowały jedynie w pojedynkę, takie rzeczy mogą się wydawać abstrakcyjne. Dlatego aby wytłumaczyć ideę zarządzania konfiguracją oraz pokazać szereg problemów, jakie pojawiają się w przypadku pracy wielu osób, nad wieloma programami, dla wielu klientów 2
3 Wprowadzenie - problemy Różnorodność artefaktów specyfikacja wymagań kod źródłowy testy jednostkowe prototyp projekt Zarządzanie konfiguracją oprogramowania (3) Pierwszy problem to różnorodność artefaktów, nad którymi trzeba zapanować podczas trwania projektów informatycznych. Są to różnego rodzaju dokumenty, specyfikacja wymagań, prototyp, pomiary, projekt architektury (np. UML), a wreszcie kod i przypadki testowe. Każdy z tych artefaktów jest innego typu: np. kod i skrypty testowe są zapisane w plikach tekstowych, dokumenty będą pamiętane jako pliki binarne. Prototyp może być zrobiony w formie prezentacji PowerPointa, itp. 3
4 Wprowadzenie - problemy Równoległa, wspólna praca nad fragmentami kodu Zarządzanie konfiguracją oprogramowania (4) Załóżmy, że nad pewnymi artefaktami (np. moduł kodu) pracuje wiele osób jednocześnie. Na diagramie mamy przykład, w którym nad programem (pakiet OpenOffice) pracują 3 osoby. Każda z nich rozwija samodzielnie swój moduł, lecz pewne elementy są wspólne (moduł ten został nazwany OpenOffice Core). Podczas pracy nad poszczególnymi modułami często zachodzi potrzeba zmiany modułu Core. Wtedy dochodzi do jednoczesnej pracy kilku osób nad tym samym artefaktem. Tak więc drugim problemem jest równoległa praca wielu osób - system zarządzania konfiguracją musi wiedzieć, w jaki sposób pobrać zmiany od poszczególnych programistów, następnie je scalić w jedno, a spójną wersję rozpropagować dalej do pozostałych osób. 4
5 Wprowadzenie - problemy Wiele wersji artefaktów: identyfikacja, przechowywanie Zarządzanie konfiguracją oprogramowania (5) Każdy artefakt może ulegać ewolucji. Np. specyfikacja wymagań, lub projekt architektury zmienia się w zależności od aktualnej wiedzy analityka lub architekta. Aby komunikacja w zespole i pomiędzy zespołem a klientem przebiegała bezproblemowo, musimy mieć możliwość: -identyfikacji wersji artefaktów - musimy wiedzieć, że konkretnego dnia klient dostał specyfikację wymagań w określonej wersji. Jeżeli w przyszłości pojawią się jakieś pytania/wątpliwości będzie możliwość sprawdzenia, jak wyglądała tamta wersja -pokazywania zmian pomiędzy wersjami artefaktów - przykładowo jeżeli po przeglądzie specyfikacji wymagań w wersji 1.0 poprawimy wszystkie zauważone błędy i damy klientowi wersję 2.0 do przeglądu, to chcemy zaoszczędzić klientowi czasu i zaznaczyć tylko te fragmenty, które się zmieniły. Warto zauważyć, że zmiany wersji poszczególnych artefaktów nie są synchroniczne, czyli np. specyfikacja wymagań może powstać w wersji 2.0 pewnego dnia, natomiast projekt architektury w wersji 2.0 powstanie dopiero tydzień później. 5
6 Wprowadzenie - problemy Wersje artefaktów, a wersje produktu Zarządzanie konfiguracją oprogramowania (6) Podobnie zmieniają się wersje różnych modułów oprogramowania (czy też plików źródłowych). Firma programistyczna musi wiedzieć, co znajduje się w określonej wersji produktu. Jest to konieczne w momencie kiedy zadzwoni do nas klient z problemem. W tej sytuacji musimy potrafić jednoznacznie powiedzieć, które wersje plików źródłowych wchodzą w skład jego produktu. Jeżeli tego nie wiemy, to w jakiej wersji kodu zaczniemy szukać błędu zgłoszonego przez niego? Czyli wymagamy od systemu zarządzania konfiguracją, aby zapamiętał, że przykładowo OpenOffice w wersji 1.0 składał się z modułów: Spell Checker 1.1, Printing 1.2 oraz Document Layout
7 Wprowadzenie - problemy Analizowanie historii: Kto? Kiedy? Jaka zmiana? Zarządzanie konfiguracją oprogramowania (7) Aby zapanować nad dużym zespołem programistycznym, musimy mieć możliwość śledzenia wszystkich zmian w artefaktach projektu, czyli musimy posiadać informację kto, kiedy i jaką zmianę wprowadził. Jest to potrzebne w wielu sytuacjach: -ukarania pracownika lub testera za jego błędy -sprawdzenia - która osoba odpowiada za dany fragment kodu - aby zgłosić się do niego z uwagami lub pytaniami -analizowania produktywności w oparciu o liczbę linii kodu napisanych przez konkretnego programistę (nie jest to najlepsza miara produktywności) 7
8 Wprowadzenie - problemy Praca nad nową wersją systemu i poprawianie błędów w starej Zarządzanie konfiguracją oprogramowania (8) Problem pojawia się również w momencie kiedy jedną wersję systemu (np. OpenOffice 1.0) udostępnimy użytkownikom i zaczniemy pracować nad nową wersją (czyli zaczniemy dodawać nową funkcjonalność, która na początku nie będzie jeszcze stabilna). Co w momencie kiedy użytkownicy zauważą błędy? Powinniśmy je jak najszybciej poprawić i udostępnić nowe wydanie wersji OpenOffice 1.0 (może ona być oznaczona np ), lecz nie chcemy włączać tam nowych funkcji, które są przeznaczane dla wersji 2.0 i nie są jeszcze stabilne. Czyli system zarządzania konfiguracją musi dawać możliwość równoległej pracy nad różnymi wersjami produktu - chcemy mieć możliwość pracy nad nową wersją, ale również możliwość poprawienia drobnego błędu w starej wersji. 8
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 Zarządzanie konfiguracją oprogramowania (9) Jest wiele narzędzi, które wspomagają zarządzanie konfiguracją oprogramowania, darmowe np. CVS, Subversion, czy komercyjne np. Microsoft SourceSafe. Każde z tych narzędzi działa na podobnej zasadzie - za pomocą odpowiednich komend umożliwiają wprowadzanie zmian do centralnego repozytorium, pamiętają zmiany artefaktów, umożliwiają synchronizowanie wersji różnych osób, oraz tworzenie rozgałęzień i łączenie gałęzi. Samo narzędzie jednak nie wystarcza. W każdej firmie potrzebny jest zestaw procedur, które instruują w jaki sposób korzystać z tego narzędzia, czyli w jaki sposób należy wprowadzać zmiany w kodzie, wydawać nową wersję, poprawiać defekty w udostępnionych wersjach, czy też łączyć zmiany z różnych wersji. 9
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ą Zarządzanie konfiguracją oprogramowania (10) Po tym krótkim wprowadzeniu zostanie przedstawiony najpopularniejszy system zarządzania konfiguracją oprogramowania: CVS. Po kolei zostaną omówione podstawowe operacje na repozytorium. Następnie zostanie przedstawiona przykładowa struktura plików projektu, pozwalająca uniknąć bałaganu (przydatne zwłaszcza początkującym osobom przystępującym do pracy grupowej). Samo przedstawienie operacji to jeszcze za mało - użytkownik musi wiedzieć, w jaki sposób wykorzystać te operacje do osiągnięcia zamierzonych celów. Dlatego na końcu zostaną przedstawione wybrane wzorce zarządzania konfiguracją. 10
11 System CVS Centralny serwer Pracownicy komunikują się za jego pośrednictwem Zarządzanie konfiguracją oprogramowania (11) CVS działa w architekturze klient-serwer. Centralne repozytorium projektu znajduje się na serwerze, a wszyscy członkowie zespołu rozprowadzają swoje zmiany jedynie poprzez repozytorium. Nie ma zatem potrzeby przenoszenia artefaktów pomiędzy osobami w postaci dyskietek, płyt, i, itp. 11
12 Lokalna przestrzeń robocza Lokalna (prywatna) kopia wybranych elementów repozytorium Zmiany wprowadzane lokalnie - synchronizowane na żądanie Zarządzanie konfiguracją oprogramowania (12) Każdy użytkownik repozytorium posiada na swoim komputerze prywatną kopię elementów z repozytorium, na których pracuje. Kopia taka nazywana jest lokalną przestrzenią roboczą i stanowi zbiór plików i folderów pobranych z repozytorium. Wszelkie prace odbywają się najpierw lokalnie i są wysyłane na żądanie do repozytorium. Dopiero w momencie, kiedy zmiany się tam znajdą są one widoczne dla pozostałych osób. 12
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ą Zarządzanie konfiguracją oprogramowania (13) Zacznijmy od poznania sposobu pracy z repozytorium CVS, czyli poszczególnych komend, jakie możemy wykonać. Pierwsza czynność programisty, to pobieranie artefaktów. 13
14 Początkowe pobieranie artefaktów pobieranie artefaktów (ang. checkout) Zarządzanie konfiguracją oprogramowania (14) Zanim programista ma możliwość współpracy z repozytorium musi utworzyć na swoim komputerze przestrzeń roboczą i pobrać do niej wybrane artefakty z repozytorium. Czyni to raz, np. na początku prac implementacyjnych. Wcześniej ktoś musi umieścić tam pewien szkielet plików i folderów, ale o tym później. Do pobierania artefaktów służy komenda checkout. Jako parametr tej komendy podajemy nazwę modułu, który chcemy pobrać, czyli nazwę jednego z katalogów przechowywanych w repozytorium (w szczególności może to być zawartość całego repozytorium oznaczana przez. ) 14
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ą Zarządzanie konfiguracją oprogramowania (15) Codzienna praca nad artefaktami sprowadza się do wprowadzania zmian w lokalnej wersji roboczej oraz synchronizowania ich z repozytorium (wysyłanie zmian lokalnych na serwer i pobieranie zmian z serwera poprzez aktualizację) 15
16 Cykl aktualizacji/wysyłanie zmian aktualizacja/wysyłanie zmian (ang. update/commit) Zarządzanie konfiguracją oprogramowania (16) Cykl synchronizacji z repozytorium najlepiej przedstawić na diagramie. Pobieranie zmian z serwera i wprowadzanie do lokalnej przestrzeni roboczej robione jest przez polecenie update. Natomiast w drugą stronę - wysłanie lokalnych zmian do repozytorium wykonuje się dzięki poleceniu commit. Ze zmianami wysyłanymi do repozytorium (polecenie commit ) można skojarzyć komentarz. Nadawanie komentarzy jest dobrą praktyką, gdyż ułatwia innym osobom z zespołu szybkie zorientowanie się w dużej liczbie zmian. Komendy update i commit można wykonać na określonych fragmentach projektu: na wybranym pliku, całym katalogu, lub całym projekcie - w zależności od potrzeby. Zaleca się, aby taki cykl synchronizacji powtarzany był jak najczęściej - co najmniej raz dziennie. Po przyjściu do pracy programista powinien wykonać komendę update, aby ściągnąć bieżące zmiany, a następnie przed wyjściem z pracy wykonać commit. 16
17 Linia rozwoju artefaktu Zarządzanie konfiguracją oprogramowania (17) Serwer pamięta historię wszystkich zmian wszystkich artefaktów. Powiedzmy, że przechowujemy plik Program.java. Repozytorium będzie pamiętać każdą wersję tego pliku (a dokładniej - różnice pomiędzy tymi wersjami), jak również datę każdej operacji i osobę, która dokonała zmiany. Każda wersja jest oznaczona numerem. W CVSie są to numery 1.1, 1.2, 1.3, itd. Numeracja jest inna jeżeli nie pracujemy na głównej gałęzi, ale więcej informacji o tym będzie za chwilę. 17
18 Równoległe uaktualnianie artefaktów? Zarządzanie konfiguracją oprogramowania (18) Do tej pory wszystko wydaje się proste. Pobieramy pliki, pracujemy na nich, a następnie wysyłamy i pobieramy zmiany. Zadanie repozytorium CVS wydaje się dużo trudniejsze, jeżeli dopuścimy możliwość równoległej pracy wielu osób. Każda z tych osób może pracować jednocześnie na tym samym pliku, nawet zmieniać te same fragmenty pliku. Spróbujmy przyjrzeć się jak działają operacje update/commit, aby zrozumieć, jak CVS zachowa się w takich sytuacjach. 18
19 Równoległe uaktualnianie artefaktów Zarządzanie konfiguracją oprogramowania (19) Najlepiej prześledzić to na przykładzie. Na slajdzie widać 4 główne części: -po prawej stronie mamy repozytorium CVS, z zaznaczonym plikiem klasy Program.java, oraz numerem jego najnowszej wersji -po lewej stronie widzimy przestrzenie robocze 2 programistów: Adama i Kazia. Na początku przestrzenie te są puste, gdyż nie zaczęli oni pracy z repozytorium -na dole slajdu znajduje się oś czasu, na której zaznaczone są poszczególne wersje pliku Program.java - zgodnie z tym co jest przechowywane w repozytorium. Oboje zaczynając pracę nad plikiem Program.java, muszą stworzyć sobie jego kopię lokalną (polecenie checkout ). Równie dobrze mogliby wykonać to polecenie na całym katalogu, lub projekcie, ale dla prostoty tego przykładu ograniczymy się jedynie do jednego pliku. 19
20 Równoległe uaktualnianie artefaktów Zarządzanie konfiguracją oprogramowania (20) W rezultacie każdy z nich otrzymuje plik Program.java w najnowszej wersji (1.1). Jest to zaznaczone w ich lokalnych przestrzeniach roboczych - tam też widać wersję pliku lokalnego. Następnie zarówno Adam jak i Kaziu wprowadzają swoje zmiany do pliku Program.java. Na diagramie oznaczyłem zmienione pliki symbolem gwiazdki przy ich nazwie. 20
21 Równoległe uaktualnianie artefaktów Zarządzanie konfiguracją oprogramowania (21) Adam próbuje wykonać polecenie commit - udaje się to bez problemu. Serwer przechowuje jego zmiany, jednocześnie nadając nową wersję plikowi Program.java (1.2) - widać to na dolnej osi. Równocześnie CVS zaznacza, że w przestrzeni roboczej również mamy już wersję 1.2. Znika również gwiazdka przy nazwie pliku, co oznacza, że nie mamy już żadnych zmian lokalnych, które by nie były na serwerze. Przychodzi kolej na Kazia. On również chce zapisać swoje zmiany w repozytorium i próbuje wykonać operację commit. 21
22 Równoległe uaktualnianie artefaktów up-to-date check failed! Zarządzanie konfiguracją oprogramowania (22) Niestety, serwer CVS wykrywa, że Kaziu pracował na starszej wersji pliku. Miał on w swojej przestrzeni roboczej wersję 1.1, podczas gdy na serwerze była już wersja 1.2. CVS protestuje komunikatem up-to-date check failed, co oznacza w wolnym tłumaczeniu: masz nieaktualną przestrzeń roboczą 22
23 Równoległe uaktualnianie artefaktów Zarządzanie konfiguracją oprogramowania (23) W takich sytuacjach należy najpierw pobrać najnowsze zmiany z CVSa i uaktualnić lokalny plik do nowej wersji komendą update. Update pobiera z CVSa zmiany pomiędzy wersją 1.1, a 1.2 i wprowadza je do lokalnej przestrzeni roboczej Kazia, lecz nadal zachowuje jego własne zmiany - co jest zaznaczona gwiazdką. 23
24 Równoległe uaktualnianie artefaktów Zarządzanie konfiguracją oprogramowania (24) Dopiero teraz Kaziu może wykonać komendę commit, która tym razem się powiedzie. Skutkuje to zapamiętaniem zmian Kazia przez repozytorium i nadanie nowej wersji (1.3). 24
25 Równoległe uaktualnianie artefaktów Jak CVS wykonuje komendę update? zmiany po stronie lokalnej przestrzeni roboczej zmiany w repozytorium *? Zarządzanie konfiguracją oprogramowania (25) Powstaje pytanie - jak CVS radzi sobie z wykonaniem komendy update w momencie kiedy występują zmiany zarówno po stronie serwera, jak i lokalnie? Musi on w jakiś sprytny sposób połączyć 2 różne pliki w jedno. Sposób jest dosyć prosty - CVS próbuje scalić zmiany. 25
26 Równoległe wprowadzanie zmian Zmiany lokalne i z repozytorium nie nakładają się: Zmiany są łączone Zmiany Zmiany z lokalne repozytorium Zarządzanie konfiguracją oprogramowania (26) Każdy plik tekstowy jest postrzegany przez CVS jako zbiór linii. Jeżeli linie zmienione lokalnie oraz w repozytorium stanowią rozłączne obszary, wtedy nic nie stoi na przeszkodzie, aby CVS automatycznie scaliło zmiany. W wyniku powstaje plik, który zawiera zarówno zmiany lokalne, jak i globalne. 26
27 Równoległe wprowadzanie zmian Zmiany lokalne i z repozytorium nakładają się: Konflikt! Zmiany Zmiany z lokalne repozytorium Użytkownik sam wybiera właściwą wersję Zarządzanie konfiguracją oprogramowania (27) Sytuacja się komplikuje, jeżeli zmienione linie lokalne i zdalne nakładają się. Wtedy CVS nie jest w stanie ich automatycznie połączyć - prosi o pomoc użytkownika. Wtedy w pliku wynikowym przechowywane są obie wersje i są one oznaczane jako tzw. konflikt. W takiej sytuacji użytkownik musi samodzielnie wybrać właściwą wersję. 27
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 } Wersja z repozytorium Twoja wersja Zarządzanie konfiguracją oprogramowania (28) CVS oznacza konflikt w następujący sposób. Po wykonaniu komendy update prowadzącej do konfliktu w pliku wynikowym mamy dwa bloki tekstu: -jeden zaczyna się znakami <<<<<<< nazwa_pliku, a kończy ======= - to jest wersja zmian z lokalnej przestrzeni roboczej -drugi zaczyna się ========, a kończy >>>>>>> numer_wersji - taki blok oznacza zmiany z repozytorium (podany numer wersji oznacza wersję pliku, z której zmiana pochodzi) Zadaniem użytkownika w tej sytuacji jest wybór odpowiedniej wersji (czasem to będzie jakieś połączenie obu wersji), oraz usunięcie wszelkich znaków specjalnych oznaczających konflikt, a zostawienie jedynie poprawnej części pliku. 28
29 Narzędzia pomagające rozwiązywać konflikty Zarządzanie konfiguracją oprogramowania (29) Współczesne narzędzia wspomagające rozwój oprogramowania (np. IBM Eclipse) często ukrywają przed użytkownikiem symbole oznaczające konflikt, prezentując konflikty w formie graficznej. Dzięki temu można w prosty sposób porównać dwie wersje i stworzyć jedną wersję spójną. 29
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ą Zarządzanie konfiguracją oprogramowania (30) Kolejna operacja, to nadawanie etykiet wersjom plików będących w repozytorium CVS. 30
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 Zarządzanie konfiguracją oprogramowania (31) Posługiwanie się numerami wersji plików w wielu sytuacjach byłoby kłopotliwe, tym bardziej jeżeli musielibyśmy zapamiętać różne wersje wielu plików. Jest to ważne np. do oznaczania zestawów plików, które wchodzą w skład pewnego wydania oprogramowania. Również w przypadku wprowadzania większych zmian do wielu plików na raz - dobrze jest pamiętać wersje tych plików, aby w razie czego mieć możliwość cofnięcia zmian. Z tego powodu systemy do zarządzania konfiguracją oprogramowania (również CVS) pozwalają posługiwać się etykietami, zamiast numerami. Etykiety są przydzielane świadomie przez programistę, wtedy kiedy uważa on to za stosowne (np. w sytuacjach wspomnianych wcześniej). Są one pamiętane przez repozytorium i za ich pomocą można pobrać określoną wersję plików, które nas interesują. 31
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ą Zarządzanie konfiguracją oprogramowania (32) Ostatnie 2, ale jedne z najważniejszych operacji w przypadku dużego zespołu pracującego nad produktem regularnie wydawanym do klientów, to możliwość rozgałęziania i łączenia gałęzi. 32
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 Zarządzanie konfiguracją oprogramowania (33) CVS umożliwia tworzenie rozgałęzień poprzez komendę branch i łączenia poprzez merge. Daje to możliwość wyłączenia fragmentu kodu z głównej linii rozwoju, osobnego operowania na tej wydzielonej gałęzi, a następnie scalenia zmian z główną gałęzią. Dobrze przedstawia to diagram ze slajdu. W CVS-ie każda gałąź ma swoją nazwę (np. V_1_0), oraz numer złożony z numeru pliku podstawowego (np. 1.2), oraz numeru parzystego oznaczającego numer gałęzi (2, 4, 6, ). W rezultacie otrzymujemy jako numer gałęzi z przykładowego diagramu. Kolejne numery wersji plików z gałęzi, mają na początku numer, oraz kolejno 1,2,3, na końcu. Po wykonaniu niezbędnych zmian na gałęzi i przetestowaniu ich mamy możliwość scalenia tych zmian z bazowym kodem poprzez wykonanie komendy merge. 33
34 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ą Zarządzanie konfiguracją oprogramowania (34) 34
35 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ąć? Zarządzanie konfiguracją oprogramowania (35) Jak było wspomniane na początku - w każdym projekcie mamy wielką różnorodność artefaktów, które przechowujemy w repozytorium. Początkowi programiści mają problem z odpowiednim rozmieszczeniem tych artefaktów. Jeżeli zastanawiasz się nad tym, w jaki sposób to zrobić, najlepiej przejrzeć struktury plików kilku przykładowych projektów Open-Source. 35
36 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 Zarządzanie konfiguracją oprogramowania (36) Dla języka Java, najczęstsza struktura plików projektu wygląda następująco: -katalog bin zawiera skompilowany kod - ten katalog przechowywany jest tylko lokalnie - nie powinniśmy go dodawać do CVS a, gdyż z łatwością można te pliki uzyskać na podstawie plików źródłowych, a umieszczenie ich w repozytorium skutkowałoby dużą ilością konfliktów -katalog doc - zawiera dokumenty projektu, lub dokumentację użytkownika -w katalogu lib umieszcza się biblioteki zewnętrzne, z których projekt korzysta (pliki *.jar) -w src znajdują się pliki źródłowe, uporządkowane w pakietach -katalog tests natomiast zawiera pliki źródłowe testów jednostkowych napisanych za pomocą JUnita - takie rozdzielenie jest o tyle korzystne, że w momencie budowania wersji dla klienta nie musimy zamieszczać tych plików w wydaniu. 36
37 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ą Zarządzanie konfiguracją oprogramowania (37) Znajomość samych operacji nie wystarcza jednak do rozwiązania wszystkich problemów, o których była mowa na początku wykładu. Jest z tym podobnie jak z językami programowania - znajomość konstrukcji języka nie jest wystarczająca do budowania dużych systemów informatycznych. Literatura udostępnia wiele dobrych praktyk i rad dotyczących posługiwaniem się repozytorium kodu. Część z nich wyodrębniono jako wzorce zarządzania konfiguracją. Wybrane wzorce zostaną przedstawione w dalszej części wykładu. 37
38 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 Zarządzanie konfiguracją oprogramowania (38) Cztery najważniejsze wzorce, to: -główna linia -linia wydania -gałąź przed wydaniem -gałęzie dla zadań Nazwy te w tej chwili mogą być dla Państwa niezrozumiałe, lecz za moment powinno być wszystko jasne. 38
39 Główna linia (ang. Mainline) Wiele gałęzi - drzewo może się rozrastać w nieskończoność Zarządzanie konfiguracją oprogramowania (39) Pierwszy wzorzec został nazwany główną linią. Repozytoria umożliwiają dzielenie artefaktów na wiele gałęzi. Jednak duża liczba tych gałęzi utrudnia panowanie nad repozytorium. Przy takiej strukturze repozytorium, jak na diagramie, programiści mieliby problemy z odnalezieniem właściwej gałęzi do pracy. Dodatkowo, po wydaniu nowej wersji produktu, musieliby pamiętać, aby przełączyć się do gałęzi z nową wersją. Dlatego nie jest pożądane, aby drzewo rozrastało się w głąb. 39
40 Główna linia (ang. Mainline) Zamiast tego: utrzymuj gałąź bazową Zarządzanie konfiguracją oprogramowania (40) Dużo lepszą praktyką jest utrzymywanie gałęzi bazowej, tzw. głównej linii. Główne prace implementacyjne powinny odbywać się właśnie tam. Jeżeli potrzebne jest rozgałęzienie i prowadzenie równoległych prac nad kawałkiem kodu (np. w momencie wydania nowej wersji), to wszystkie zmiany powinny docelowo być scalone z główną linią. Takie podejście pozwala zapanować nad rozrastaniem się drzewa gałęzi i odciąża wszystkich programistów od potrzeby pamiętania, w którym miejscu drzewa obecnie się znajdujemy. 40
41 Linia wydania (ang. Release Line) Linia reprezentująca logiczne grupowanie dostarczonej funkcjonalności Wybrana funkcjonalność Poprawki dla klienta wersji 1.0 Nowa funkcjonalność - niestabilna Zarządzanie konfiguracją oprogramowania (41) Kolejny wzorzec to linia wydania. Każdemu wydaniu systemu (np. nowa wersja oprogramowania) powinno towarzyszyć rozgałęzienie. Dzięki temu część funkcjonalności, która była zawarta w tym wydaniu jest oddzielona i można na niej prowadzić równolegle pracę. Jest to niezbędne jeżeli chcemy pozwolić na tworzenie nowej funkcjonalności (na początku niestabilnej) w głównej gałęzi, a jednocześnie poprawiać błędy w wydanej wersji systemu. Wtedy wszystkie błędy poprawiane są w gałęzi. W razie potrzeby można tą strukturę bardziej zagnieżdżać - czyli zrobić gałąź dla gałęzi - gdy przykładowo chcemy wydać wersję 1.1 oprogramowania, co jest pokazane na diagramie. 41
42 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 Zarządzanie konfiguracją oprogramowania (42) Następny wzorzec to gałąź przed wydaniem. Problem powstaje, kiedy większy zespół pracuje nad wydaniem. Jeżeli część z tych osób skończy pracę kilka dni wcześniej niż inni - wtedy chcieliby zapewne zacząć już pracę nad nowymi funkcjami, lecz nie mogą tego robić w głównej gałęzi - zakłóciliby pracę osób, które pracują nad wydaniem. W takiej sytuacji zalecane jest stworzenie dodatkowej gałęzi. Na tej gałęzi pracują osoby przygotowujące wydanie, natomiast pozostałe osoby mogą swobodnie pracować w głównej gałęzi. 42
43 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 Zarządzanie konfiguracją oprogramowania (43) Ostatni wzorzec to: gałęzie dla zadań. Problem, z jakim można się często spotkać w praktyce to praca nad dłuższymi zadaniami, która mocno zaburza pozostały kod. Wykonywanie tych zadań na głównej gałęzi byłoby uciążliwe, gdyż w międzyczasie, przed ukończeniem tego zadania zdarza się, że jakiś fragment się nie kompiluje, lub nie działa tak jak powinien. W celu umożliwienia pracy nad takimi zadaniami należy dla każdego stworzyć osobną gałąź. Po skończeniu zadania i upewnieniu się, iż zmiany nie zaburzają istniejącego kodu można scalić je do głównej gałęzi. 43
44 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ą Zarządzanie konfiguracją oprogramowania (44) Podsumowując: -podczas rozproszonej pracy wielu osób nad projektem informatycznym pojawia się wiele problemów związanych z zarządzaniem konfiguracją: problemy z rozprowadzeniem zmian, ze scaleniem zmian z różnych miejsc w jedno, z jednoczesną pracą wielu osób nad jednym plikiem. -można je rozwiązać stosując odpowiednie narzędzia zarządzania konfiguracją oprogramowania (np. repozytoria CVS) -użytkownik narzędzia musi znać podstawowe komendy systemu, umożliwiające współpracę z repozytorium (checkout, update, commit, branch, merge), oraz pewne procedury pozwalające na zapanowanie nad dużą liczbą zmian/wersji w projektach informatycznych. Są to wzorce zarządzania konfiguracją, z których część została przedstawiona w trakcie tego wykładu 44
45 Literatura Steve Berczuk, Brad Appleton: Software Configuration Management Patterns Zarządzanie konfiguracją oprogramowania (45) Osoby bardziej zainteresowane tą tematyką odsyłam do literatury. Na temat obsługi narzędzi do zarządzania konfiguracją (np. CVS) można poczytać w wielu miejscach w Internecie. Na slajdzie jest pokazany przykładowy adres. Bardzo dobrą pozycją opisującą różne niuanse zarządzania konfiguracją oraz szereg wzorców jest książka Software Configuration Management Patterns. 45
Ćwiczenia 9: Zarządzanie konfiguracją Zadania:
Ćwiczenia 9: Zarządzanie konfiguracją Zadania: Konfiguracja repozytorium CVS: 1. Ściągnij i zainstaluj serwer CVS: CVSNT (www.cvsnt.org). 2. W konfiguracji repozytoriów (Panel Sterowania -> CVSNT) wybierz
Bardziej szczegółowoŚrodowisko programisty. Środowisko programisty 1/35
Środowisko programisty Środowisko programisty 1/35 Środowisko programisty 2/35 Literatura 1. Butcher P., Debugowanie. Jak wyszukiwać i naprawiać błędy w kodzie oraz im zapobiegać, Helion, Gliwice 2010
Bardziej szczegółowoGit rozproszony system kontroli wersji
Git rozproszony system kontroli wersji Piotr Macuk Wstęp System kontroli wersji (ang. version control system, VCS) służy do śledzenia zmian projektu w czasie. Umożliwia współpracę wielu osób oraz ułatwia
Bardziej szczegółowo1. System kontroli wersji. 1.1. Instalacja programu kontroli wersji CVS
1 1. System kontroli wersji Już przy tak małym projekcie niezbędnym okazało się wdrożenie systemu kontroli wersji, co umożliwiło grupową pracę uczestników projektu. CVS jest narzędziem pomagającym w organizacji
Bardziej szczegółowoCVS system kontroli wersji
CVS system kontroli wersji Agenda Podstawowe pojęcia Podstawowe polecenia Metody dostępu do repozytorium Konfiguracja i używanie aplikacji klienckich Konflikty i ich rozwiązywanie Dodatkowe możliwości
Bardziej szczegółowoProjekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie
Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie
Bardziej szczegółowoProgramowanie I
Programowanie I 29.05.2017 Co zostanie wypisane na ekranie? (1) class A { public: void wypisz(int n) { cout
Bardziej szczegółowoCo zostanie wypisane na ekranie? (1)
Wykład 11.05.2016 Co zostanie wypisane na ekranie? (1) class A { public: void wypisz(int n) { cout
Bardziej szczegółowoSystemy zarządzania wersjami
24 października 2007 Po co? Dla kogo? Dlaczego? aby ułatwić kontrolę nad projektem aby panować nad wersjami aby móc śledzić zmiany dla każdego projektu, przy którym pracuje więcej niż jedna osoba dla ludzi
Bardziej szczegółowoGIT. System Kontroli wersji GIT. Rafał Kalinowski
GIT System Kontroli wersji GIT Rafał Kalinowski Agenda Czym jest GIT? Modele pracy Możliwości GIT a Kilka słów o terminologii Obiekty w GIT ie? Struktura zmian Operacje zdalne i lokalne Podstawowe operacje
Bardziej szczegółowoSystem kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010
System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy
Bardziej szczegółowoSystem kontroli wersji git
System kontroli wersji git Adam Prochownik 13 października 2016 Adam git 13 października 2016 1 / 26 Plan prezentacji 1 Wstęp Materiały Po co kontrola wersji? Dlaczego git? 2 Podstawowe operacje Konfiguracja
Bardziej szczegółowoProgramowanie zespołowe
Programowanie zespołowe Laboratorium 8 - wprowadzenie do systemów kontroli wersji i GitHuba mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 11 kwietnia 2017 1 / 25 mgr inż. Krzysztof Szwarc
Bardziej szczegółowoOpen Source w służbie developerom
5 grudnia 2011 Wstęp Plan prezentacji Agenda Dyskusja problemu Wstęp Plan prezentacji Agenda Dyskusja problemu Etapy Wstęp Plan prezentacji Agenda Dyskusja problemu Etapy Przykłady Wstęp Plan prezentacji
Bardziej szczegółowoSystemy Kontroli Wersji
Systemy Kontroli Wersji zarzadzanie źródłami Marcin Gryszkalis dagoon@math.uni.lodz.pl Wydział Matematyki Uniwersytetu Łódzkiego Łódź 2003 Systemy Kontroli Wersji p.1/39 VCS a SCM Systemy Kontroli Wersji
Bardziej szczegółowoProgramowanie zespołowe
Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 6 Programowanie zespołowe Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Programowanie zespołowe Wymagania wstępne
Bardziej szczegółowoAssembla.com zajęcia 1
Assembla.com zajęcia 1 Autor: Marcin Gadamer System kontroli wersji System kontroli wersji (ang. version/revision control system) - oprogramowanie służące do śledzenia zmian głównie w kodzie źródłowym
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoWszystkie problemy leżą w testach. ForProgress spółka z ograniczoną odpowiedzialnością sp.k.
Wszystkie problemy leżą w testach O czym będziemy rozmawiać Coś nie wyszło Jak wygląda proces wytwórczy Każdy widzi to inaczej Jakie wnioski wyciągamy z testów Analiza problemów Możliwe rozwiązania O czym
Bardziej szczegółowoProgram szkolenia: Continuous Integration i Git
Program szkolenia: Continuous Integration i Git Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Continuous Integration i Git tools-git-ci Narzędzia developerzy testerzy 2 dni 50%
Bardziej szczegółowoSystem kontroli wersji, system zarządzania kodem źródłowym
System kontroli wersji, system zarządzania kodem źródłowym (ang. version/revision control system) VCS albo RCS Source control or (source) code management (SCM) Teoria Co to jest? Po co nam taki system
Bardziej szczegółowoKurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017
Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy
Bardziej szczegółowoZARZĄDZANIE DOKUMENTACJĄ. Tomasz Jarmuszczak PCC Polska
ZARZĄDZANIE DOKUMENTACJĄ Tomasz Jarmuszczak PCC Polska Problemy z zarządzaniem dokumentacją Jak znaleźć potrzebny dokument? Gdzie znaleźć wcześniejszą wersję? Która wersja jest właściwa? Czy projekt został
Bardziej szczegółowoJava pierwszy program w Eclipse «Grzegorz Góralski strona własna
Strona 1 z 9 «Przykładowe zadania do cz. III ćwiczeń z genetyki Java pierwsze kroki w programowaniu (01)» Kategoria: java, Tagi: eclipse - java - programowanie. Autor: Grzegorz, napisał dnia: February
Bardziej szczegółowoPartnerzy: Laboratorium 15
Laboratorium 15 System kontroli wersji. Mercurial wraz z Subversion, CVS czy też programem Git należy do grupy aplikacji określanych mianem systemów kontroli wersji. Umożliwiają one sprawną prace wielu
Bardziej szczegółowoSystem kontroli wersji Git
System kontroli wersji Git dr inż. Sebastian Ernst Katedra Informatyki Stosowanej W prezentacji wykorzystano ilustracje z: Scott Chancon, Pro Git, http://git-scm.com/book Systemy kontroli wersji Rejestracja
Bardziej szczegółowoAdam Wójs <adam[shift+2]wojs.pl> git --wprowadzenie
Adam Wójs git --wprowadzenie Życie programisty A) Rozwój projektu B) Naprawianie błędów C) Refaktoryzacja kodu Ekstremalny przykład Wersja jądra Lb-a programistów Lb-a linii kodu
Bardziej szczegółowoDrupal i GIT. Schemat pracy.
Drupal i GIT. Schemat pracy. Bartek Filipiuk. Crople.pl Wymagania: podstawowa wiedza z Linuxa posiadanie lokalnego środowiska do tworzenia stron w Drupalu podstawowa wiedza z Drupala Czego dowiesz się
Bardziej szczegółowoBudowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer
Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer Maven 2 podstawowe informacje Apache Maven jest narzędziem automatyzującym budowę oprogramowania
Bardziej szczegółowoTECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek
TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4
Bardziej szczegółowoInżynieria oprogramowania II
Wymagania funkcjonalne, przypadki użycia Inżynieria oprogramowania II Problem i cel Tworzenie projektów bez konkretnego celu nie jest dobre Praktycznie każdy projekt informatyczny powstaje z uwagi na jakiś
Bardziej szczegółowoKOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL
KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL Katedra Informatyki, Uniwersytet Rzeszowski 2009 Agenda System kontroli wersji CVS SVN Praca z SVN i Visual
Bardziej szczegółowoPracownia internetowa w każdej szkole (edycja Jesień 2007)
Instrukcja numer D1/04_01/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie kopii zapasowej ustawień systemowych serwera - Zadania do wykonania
Bardziej szczegółowoAnaliza i projektowanie aplikacji Java
Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie
Bardziej szczegółowoponad 90 000 pracowników ponad 60 000 pracowników ponad 30 000 pracowników ponad 3 000 pracowników
ponad 90 000 pracowników ponad 60 000 pracowników ponad 30 000 pracowników ponad 3 000 pracowników finanse firmy Ventures Capital, a potem reklamy kwestie socjalne darmowe jedzenie, transport do pracy,
Bardziej szczegółowoProjektowanie oprogramowania
Wrocław, 27.09.2010 1. Warunki wstępne Projektowanie oprogramowania Warunkiem uczestnictwa w zajęciach jest zaliczenie przedmiotu: Podstawy inżynierii oprogramowania (ćwiczenia) Zajęcia składają się z
Bardziej szczegółowogit krótki przewodnik
git krótki przewodnik Spis treści Podstawy pracy z systemem git (pojęcia)... 2 Instalacja klienta git Atlassian SourceTree... 2 Konfiguracja Atlassian SourceTree do współpracy z bitbucket.org... 3 Tworzenie
Bardziej szczegółowoZacznijmy więc pracę z repozytorium. Pierwsza konieczna rzecz do rozpoczęcia pracy z repozytorium, to zalogowanie się w serwisie:
Repozytorium służy do przechowywania plików powstających przy pracy nad projektami we w miarę usystematyzowany sposób. Sam mechanizm repozytorium jest zbliżony do działania systemu plików, czyli składa
Bardziej szczegółowoBaza danych sql. 1. Wprowadzenie
Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowoWskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
Bardziej szczegółowoFirma Informatyczna ASDER. Prezentacja. Serwer danych lokalnych. Przemysław Kroczak ASDER 2012-08-06
2012 Firma Informatyczna ASDER Prezentacja Serwer danych lokalnych Przemysław Kroczak ASDER 2012-08-06 Szanowni Państwo, W dzisiejszej coraz częściej trzeba współdzielić pliki między pracownikami/działami
Bardziej szczegółowoDokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV
Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium
Bardziej szczegółowoProjektowanie oprogramowania
Wrocław, 26.09.2012 1. Warunki wstępne Projektowanie oprogramowania Warunkiem uczestnictwa w zajęciach jest zaliczenie przedmiotu: Podstawy inżynierii oprogramowania (ćwiczenia). Zajęcia składają się z
Bardziej szczegółowoCel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)
W odcinku III tworzyliśmy paski narzędzi. Umieszczaliśmy na panelach ikony, reprezentujące czynności (charakterystyczne dla edytorów tekstu). Musimy teraz przypisać każdemu przyciskowi jego czynność (wycinanie,
Bardziej szczegółowoSynchronizator plików (SSC) - dokumentacja
SZARP http://www.szarp.org Synchronizator plików (SSC) - dokumentacja Wersja pliku: $Id: ssc.sgml 4420 2007-09-18 11:19:02Z schylek$ > 1. Witamy w programie SSC Synchronizator plików (SZARP Sync Client,
Bardziej szczegółowoGIT. Rozproszony system kontroli wersji
GIT Rozproszony system kontroli wersji Co to jest system kontroli wersji? System kontroli wersji śledzi wszystkie zmiany dokonywane na pliku (lub plikach) i umożliwia przywołanie dowolnej wcześniejszej
Bardziej szczegółowoTemat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Bardziej szczegółowoBezpieczeństwo systemów komputerowych
Bezpieczeństwo systemów komputerowych Jak pisać poprawne programy? Aleksy Schubert (Marcin Peczarski) Instytut Informatyki Uniwersytetu Warszawskiego 6 listopada 2018 Na podstawie: David A. Wheeler Secure
Bardziej szczegółowoNarzędzia CASE dla.net. Łukasz Popiel
Narzędzia CASE dla.net Autor: Łukasz Popiel 2 Czym jest CASE? - definicja CASE (ang. Computer-Aided Software/Systems Engineering) g) oprogramowanie używane do komputerowego wspomagania projektowania oprogramowania
Bardziej szczegółowoNazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.
Nazwa implementacji: Nauka języka Python wyrażenia warunkowe Autor: Piotr Fiorek Opis implementacji: Poznanie wyrażeń warunkowych if elif - else. Nasz kalkulator umie już liczyć, ale potrafi przeprowadzać
Bardziej szczegółowoWykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych
Wykład 2: Budowanie sieci lokalnych 1 Budowanie sieci lokalnych Technologie istotne z punktu widzenia konfiguracji i testowania poprawnego działania sieci lokalnej: Protokół ICMP i narzędzia go wykorzystujące
Bardziej szczegółowoJęzyk UML w modelowaniu systemów informatycznych
Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 10 Diagramy wdrożenia I Diagramy wdrożenia - stosowane do modelowania
Bardziej szczegółowoSerwer druku w Windows Server
Serwer druku w Windows Server Ostatnimi czasy coraz większą popularnością cieszą się drukarki sieciowe. Często w domach użytkownicy posiadają więcej niż jedno urządzenie podłączone do sieci, z którego
Bardziej szczegółowoGit, Bitbucket. Narzędzia i środowiska programistyczne. Laboratorium 2. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2
Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 2 Git, Bitbucket Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Technologie Technologie będące przedmiotem laboratorium:
Bardziej szczegółowoAKADEMIA GÓRNICZO-HUTNICZA. Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI. SyncFile
AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki KATEDRA INFORMATYKI Document wizyjny dla projektu Wersja 0.1-5 z dnia 2006-11-14 Kierunek, rok studiów: Informatyka,
Bardziej szczegółowoPrzygotowanie platformy projektowo-programowej
Przygotowanie platformy projektowo-programowej Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej dr inż. Łukasz Szustak Agenda System Kontroli Wersji (SVN) Zintegrowane
Bardziej szczegółowoWidoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?
Część XVIII C++ Funkcje Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach? Umiemy już podzielić nasz
Bardziej szczegółowo1 Zrób to inaczej. 1.1 Przechowywanie plików Zapisanie i otwieranie pliku do OneDrive w aplikacji Office
1 Zrób to inaczej Zestaw scenariuszy dla wszystkich uczestników pilota, koncentrujących się na pracy indywidualnej i współpracy ad-hoc. Scenariusze mogą być używane indywidualnie przez każdego użytkownika
Bardziej szczegółowoSVN sojusz, partnerstwo, współpraca
SVN sojusz, partnerstwo, współpraca Bogusz Kowalski Wrocław, 16.03.2010 http://www.linuxacademy.pl 1 Coś o historii Zaczęło się od RCS w 1985... 1990 nadeszła era CVS... 2000 SVN 2 Po co system kontroli
Bardziej szczegółowoFeature Driven Development
Feature Driven Development lekka metodyka tworzenia oprogramowania Kasprzyk Andrzej IS II Wstęp Feature Driven Development (FDD) to metodyka tworzenia oprogramowania, która wspomaga zarządzanie fazami
Bardziej szczegółowoInstalacja SQL Server Express. Logowanie na stronie Microsoftu
Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy
Bardziej szczegółowoWzorce projektowe i refaktoryzacja
Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:
Bardziej szczegółowooprogramowania F-Secure
1 Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure Wznowienie oprogramowania F-Secure zaczyna działać automatycznie. Firma F-Secure nie udostępnia paczki instalacyjnej EXE lub MSI do
Bardziej szczegółowoEgzamin / zaliczenie na ocenę*
WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW33/01 KARTA PRZEDMIOTU Nazwa w języku polskim : INŻYNIERIA OPROGRAMOWANIA Nazwa w języku angielskim: SOFTWARE ENGINEERING Kierunek studiów (jeśli
Bardziej szczegółowoWyrażenie wewnątrz nawiasów jest atomem (rozpatrujemy je jako całość).
Wyrażenia regularne pełnią istotną rolę w PHP. Umożliwiają one opisywanie i przetwarzanie długich ciągów znaków. Dzieje się to na zasadzie porównania danego ciągu znaków z określonym wzorem, ułożonym przez
Bardziej szczegółowoREFERAT PRACY DYPLOMOWEJ
REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany
Bardziej szczegółowoDokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor
Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.
Bardziej szczegółowoGenerated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów
System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza
Bardziej szczegółowoSkrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości
Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości Wstęp Platforma Zdalnej Edukacji Gliwickiej Wyższej Szkoły Przedsiębiorczości (dalej nazywana
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoContinuous Integration z ClickOnce
Continuous Integration z ClickOnce To, że Continuous Integration (z ang. ciągła integracja) to proces polegający na stałym, możliwie częstym konsolidowaniu (kompilacji, testowaniu, publikacji) wyników
Bardziej szczegółowoProjektowanie oprogramowania
Wrocław, 24.09.2018 1. Warunki wstępne Projektowanie oprogramowania Warunkiem uczestnictwa w zajęciach jest zaliczenie przedmiotu: Podstawy inżynierii oprogramowania (ćwiczenia) Zajęcia składają się z
Bardziej szczegółowoPoradnik korzystania z usługi FTP
Poradnik korzystania z usługi FTP 1. Wstęp FTP (ang. File Transfer Protocol) to usługa pozwalająca na wymianę plików poprzez Internet w układzie klient-serwer. Po podłączeniu się do serwera za pomocą loginu
Bardziej szczegółowoGit - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014
Git - podstawy Błażej Kowalczyk Koło Naukowe Robotyków KoNaR 7 listopada 2014 łażej Kowalczyk (Koło Naukowe Robotyków KoNaR) Git - podstawy 7 listopada 2014 1 / 18 Wstęp Kontrola wersji Po co nam kontrola
Bardziej szczegółowoEwolucyjna architektura
Ewolucyjna architektura www.sxc.hu/photo/850368 Na początek Michał Bartyzel konsultant, trener BNS IT procesy zwinne i nie tylko architektura czysty kod software crafstmanship strategie skutecznych programistów
Bardziej szczegółowo5.4. Efekty specjalne
5.4. Efekty specjalne Przedstawiliśmy już sobie sporo kwestii związanych z dodawaniem, edytowaniem czy usuwaniem elementów, które możemy zamieścić w prezentacji. Ale pomyłką było by stwierdzenie, że więcej
Bardziej szczegółowoAnaliza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Bardziej szczegółowoTworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Bardziej szczegółowoDzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton
Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu
Bardziej szczegółowoSzczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.
Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania. Założenia projektowe systemu NETDOC. część 1: założenia ogólne i funkcjonalność rdzenia systemu Założenia ogólne Celem projektu jest
Bardziej szczegółowoPrzejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.
Darmowe oprogramowanie narzędziowe sterowników PLC FATEK. Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK. WinProllader jest prostym interfejsem użytkownika służącym do programowania
Bardziej szczegółowoLaboratorium Informatyka (I) AiR Ćwiczenia z debugowania
Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania Krzysztof Kluza, Janusz Miller 1 Debugowanie Debugowanie, czy też po polsku odpluskiwanie, to proces polegający na kontrolowanym wykonaniu programu
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Bardziej szczegółowoDiagramy czynności. Widok logiczny. Widok fizyczny
Diagramy czynności System widoków 4+1 Kruchtena Widok logiczny Widok fizyczny Widok procesu Widok przypadków użycia Widok konstrukcji Diagramy czynności są jedynym diagramem w widoku procesu modelowanego
Bardziej szczegółowoSieci komputerowe i bazy danych
Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Sieci komputerowe i bazy danych Sprawozdanie 5 Badanie protokołów pocztowych Szymon Dziewic Inżynieria Mechatroniczna Rok: III Grupa: L1 Zajęcia
Bardziej szczegółowoSystemy kontroli wersji
Systemy kontroli wersji Git Część II Gałęzie Aleksander Lamża ZKSB Instytut Informatyki Uniwersytet Śląski w Katowicach aleksander.lamza@us.edu.pl Zawartość Gałęzie Wstępne wymagania Wprowadzenie do systemów
Bardziej szczegółowoSystem zarządzania wersjami I Subversion
Subversion Na tych zajęciach poznamy reguły pracy z systemami zarządzania wersjami oraz przećwiczymy podstawowe, najczęściej wykonywane operacje w takich systemach. Bazować będziemy na systemie Subversion
Bardziej szczegółowoDokumentacja instalacji aktualizacji systemu GRANIT wydanej w postaci HotFix a
Dokumentacja instalacji aktualizacji systemu GRANIT wydanej w postaci HotFix a 1. Informacje wstępne...1 2. Sprawdzenie zainstalowanej wersji systemu GRANIT oraz pobieranie aktualizacji...1 3. Instalacja
Bardziej szczegółowoDokument Detaliczny Projektu
Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
Bardziej szczegółowoOpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi
OpenOfficePL Zestaw szablonów magazynowych Instrukcja obsługi Spis treści : 1. Informacje ogólne 2. Instalacja zestawu a) konfiguracja połączenia z bazą danych b) import danych z poprzedniej wersji faktur
Bardziej szczegółowoI. Raport wykonywalności projektu
Spis treści: " I. " Raport wykonywalności projektu..." str. 2 " II. " Glosariusz projektu... " str. 4 " III. " Diagramy relacji encja-związek..." str. 6 " IV. " Diagramy przepływu danych..." str. 7 " V.
Bardziej szczegółowoLaboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Bardziej szczegółowoSYSTEMY INFORMATYCZNE ćwiczenia praktyczne
SYSTEMY INFORMATYCZNE ćwiczenia praktyczne 12.03.2019 Piotr Łukasik p. 373 email: plukasik@agh.edu.pl / lukasik.pio@gmail.com www.lukasikpiotr.com Zakres tematyczny implementacji projektu informatycznego
Bardziej szczegółowoTechnologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Bardziej szczegółowoPLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych
Bardziej szczegółowo2.5 Dzielenie się wiedzą
2.5 Dzielenie się wiedzą 2.5.1 Baza wiedzy zespołu Tworzenie bazy wiedzy w OneNote, zapoznanie się z przykładowymi bazami wiedzy, stworzenie struktury bazy wiedzy, zdefiniowanie własnych tagów, stworzenie
Bardziej szczegółowo