Techniki komputerowe w robotyce - Laboratorium mucha/TechKomp/wyklad03.pdf · PDF...
date post
02-Mar-2019Category
Documents
view
218download
0
Embed Size (px)
Transcript of Techniki komputerowe w robotyce - Laboratorium mucha/TechKomp/wyklad03.pdf · PDF...
Techniki komputerowew robotyce
Wykad III
Praca grupowa nad projektem informatycznym
Robert MuszyskiKCiR, W4, PWr
Skad FoilTEX c R. Muszyski 2007-2016
Praca grupowa nad projektem informatycznym
Cykl ycia oprogramowaniaCykl ycia oprogramowania to cig dziaa projektowo-programowych,obejmujcy zakres od powstania zapotrzebowania na oprogramowanie a dojego wycofania z eksploatacji, ktry jest zbieny z cyklem projektu i obejmuje: faz strategiczn, faz specyfikacji i analizy wymaga, faz projektowania, faz konstrukcji implementacji, faz testowania, walidacji, faz konserwacji.
Skad FoilTEX 1
Praca grupowa nad projektem informatycznym
Cykl ycia oprogramowaniaW ramach cyklu ycia oprogramowania powstaje: wersja niestabilna (testowa) oprogramowania seria wyda, podczas kt-
rej dodawane s przede wszystkim nowe moliwoci: wersja robocza (pre-alpha), najczciej dostpna tylko dla twrcw pro-
gramu w postaci repozytorium kodu rdowego, wersja alfa (pre-beta), czyli wersja doprowadzona do dziaania, wersja beta, ktra ma pierwszych uytkownikw, RC (ang. Release Candidate) wydanie kandydujce, ktrych moe
by nawet kilka, RTM (ang. Release to manufacture lub Ready to market) produkt go-
towy do wypuszczenia na rynek, wersja stabilna oprogramowania wersja nadajca si do uytkowania
zgodnie z zaoeniami, wersje stabilne z poprawkami bezpieczestwa lub innych bdw, starzenie moralne programu.
Skad FoilTEX 2
Praca grupowa nad projektem informatycznym
Numeracja wersji oprogramowaniaNumeracja wersji oprogramowania okrela kolejno powstawania nowychwersji oprogramowania. Zazwyczaj jest liczb naturaln lub zestawieniem kil-ku liczb naturalnych. Wtedy maj one znaczenie: numeru gwnego (ang. major) wsplne oznaczenie wszystkich wersji
programu bazujcych na tych samych zaoeniach, mechanizmach itd., numeru dodatkowego (ang. minor) ktry oznacza kolejne etapy rozwoju
programu w ramach tej samej koncepcji, o rozbudowanej funkcjonalnoci, numeru wydania (ang. release) mwicym o tym, ktrym wydaniem
w ramach wersji minor jest dana paczka programu, numeru kompilacji (ang. build) numer kompilacji programu, pozwalajcy
na ledzenie kompilacji np. przy rozpatrywaniu zgaszanych bdw.Przykady linux kernel 2.6.28 linux suse 11.3-Milestone3 gcc version 4.3.2 [gcc-4 3-branch revision 141291] svn, wersja 1.5.7 (r36142)
Skad FoilTEX 3
Praca grupowa nad projektem informatycznym
Proces wytwarzania oprogramowania Jego organizacj zajmuje si inynieria oprogramowania (koncentrujc
si na stronie praktycznej) w aspekcie technicznym, organizacyjnym, finan-sowym itp.
Celem jest zapewnienie by oprogramowanie byo dobre, czyli: poprawne, zgodne z wymaganiami uytkownikw, atwe w konserwacji, dokonywaniu zmian, niezawodne (availability, reliability) i bezpieczne (safety, security), przenone, wydajne i efektywne, ergonomiczne.
Wymaga dostarczenia mechanizmw zapewniajcych: wspdzielenie kodu, przepyw informacji, obieg dokumentw, rozstrzyganie konfliktw.
Skad FoilTEX 4
Praca grupowa nad projektem informatycznym
Modele yciowe oprogramowaniaMona wyrni szereg modeli yciowych oprogramowania, w tym: pisz i poprawiaj, model kaskadowy, model spiralny, model prototypowy, model przyrostowy (iteracyjny), model rwnolegy, programowanie odkrywcze, programowanie zwinne (ang. agile programming), programowanie ekstremalne (ang. extreme programming), programowanie sterowane testami, synchronizuj i stabilizuj.
Skad FoilTEX 5
Praca grupowa nad projektem informatycznym
Narzdzia CASENarzdzia CASE (ang. Computer-Aided Software Engineering) to oprogra-mowanie uywane do komputerowego wspomagania tworzenia oprogramo-wania (na etapie analizy, projektowania i programowania).
Typowe narzdzia CASE: narzdzia do modelowania w jzyku UML i podobnych, narzdzia do zarzdzania konfiguracj zawierajce system kontroli wersji, narzdzia do refactoringu,
pozwalaj na uatwienie prawidowego okrelenia struktury aplikacji, ograniczenie liczby nieporozumie pomidzy projektantem a programist, popraw komunikacji w zespole, wymuszenie dokumentowania procesu tworzenia oprogramowania.
Skad FoilTEX 6
Praca grupowa nad projektem informatycznym
Systemy kontroli wersjiSystem kontroli wersji (VCS) suy do ledzenia zmian gwnie w kodzierdowym oraz pomocy programistom w czeniu i modyfikacji zmian doko-nanych przez wiele osb w rnych momentach. Sposb rozpowszechniania:
Wolnodostpne wszystkie niezamknite pod Architektura Zamknite BitKeeper (BitMover), Code Co-op (Reliable Software),
Rational ClearCase (IBM), StarTeam (Borland), Visual SourceSafe, Vi-sual Studio Team Foundation Server (Microsoft)
Architektura: Scentralizowana RCS, CVS, Subversion (SVN), GNU CSSC Rozporoszona Bazaar, Codeville, Darcs, GNU Arch, Git, BitKeeper,
Code Co-op, Mercurial, Monotone, svk Modele pracy:
blokuj-modyfikuj-odblokuj (ang. lock-modify-unlock) kopiuj-modyfikuj-scal (ang. copy-modify-merge)
Skad FoilTEX 7
Praca grupowa nad projektem informatycznym
System kontroli wersji modele pracy
Typowy problem Blokuj-modyfikuj-odblokuj
Skad FoilTEX 8
Praca grupowa nad projektem informatycznym
System kontroli wersji modele pracy
Kopiuj-modyfikuj-scal
Skad FoilTEX 9
Praca grupowa nad projektem informatycznym
System kontroli wersji SubversionSubversion jest darmowym systemem kontroli wersji o otwartym rdle. Su-y on do zarzdzania plikami, katalogami i zmianami wprowadzanymi w miarupywu czasu. To pozwala na odzyskanie starszej wersji danych lub przegld-nicie historii zmian na plikach. Subversion moe dziaa przez sie, ktraumoliwia wykorzystanie go przez rne platformy.
Dostarczana funkcjonalno wspdzielenie kodu, w tym zdalne, np. poprzez serwer Apache, archiwizacja pracy, w tym historia zmian nazw katalogw i plikw, kontrola wersji, w tym efektywne wersjonowanie plikw binarnych, atwe tworzenie wyda, gazi rozwojowych, rozstrzyganie konfliktw.
Pojedynczemu programicie pozwala na: prac nad projektem na kilku komputerach, cofnicie kadej zmiany, oznaczanie wyda, tworzenie gazi.
Skad FoilTEX 10
Praca grupowa nad projektem informatycznym
Subversion architektura
Skad FoilTEX 11
Praca grupowa nad projektem informatycznym
Subversion komponenty svn klient SVN do pracy w trybie tekstowym svnversion program do monitorowania stanu kopii roboczej svnlook narzdzie do inspekcji repozytorium svnadmin narzdzie do tworzenia, optymalizowania lub naprawy repo-
zytorium mod dav svn modu serwera Apache do zdalnego udostpniania re-
pozytorium svnserve dedykowany serwer SVN, svndumpfilter program do filtrowania repozytoriw SVN, svnsync program do przyrostowego tworzenia obrazw repozytoriw.
Skad FoilTEX 12
Praca grupowa nad projektem informatycznym
Subversion nomenklaturaRepozytorium zestaw plikw i folderw zarzdzanych i udostpnianychprzez serwer SVN. System SVN jest serwerem plikw, ktry nadaje caemurepozytorium dodatkowy wymiar: numer rewizji. W kadej chwili uytkowni-cy mog uzyska dostp do caego repozytorium (czyli drzewa katalogw iplikw) w stanie z zadanej rewizji.
Kopia robocza komplet plikw tworzcych projekt przekopiowany z ser-wera SVN na dysk lokalny. Kopia robocza jest w 100% prywatn wasnoci:oprogramowanie SVN nigdy samowolnie nie dokona w niej adnych zmian.
Rewizja stan systemu plikw przechowywanych przez serwer SVN po wy-konaniu zadanej liczby zmian. Kada operacja przesyajca kopi robocz naserwer zwiksza numer rewizji.
Kolizja sytuacja, w ktrej dwie lub wicej osb wykonay wykluczajcesi zmiany w jednym z plikw. Serwer SVN nie moe w takiej sytuacji auto-matycznie rozstrzygn, ktra wersja pliku ma by traktowana jako bieca.Decyzj o tym, ktry plik ma by aktualny, podejmuje czowiek, po rcznejanalizie plikw.
Skad FoilTEX 13
Praca grupowa nad projektem informatycznym
Subversion struktura repozytoriw i dostp do nichZalecana struktura repozytoriw:
projekt/ gwny katalog projektutrunk/ gwna cieka rozwoju projektutags/ katalog kopii projektu, ktre nie bd ju modyfikowanebranches/ katalog kopii rozwojowych projektu
Adresy URL repozytoriw:
file:// bezporedni dostp do repozytorium (na dysku lokalnym)http:// dostp przez protok WebDAV do serwera Apachehttps:// jak http://, ale z szyfrowaniem SSLsvn:// dostp przez protok serwera svnserversvn+ssh:// jak svn://, ale przez tunel SSH
Skad FoilTEX 14
Praca grupowa nad projektem informatycznym
Subversion tworzenie repozytorium, jego struktura
svnadmin create
svn ls
~>svnadmin create --fs-type fsfs /tmp/svn
~>svn ls file:///tmp/svn
~>ls /tmp/svn/
conf db format hooks locks README.txt
~>du -sh /tmp/svn/
136K /tmp/svn/
Skad FoilTEX 15
Praca grupowa nad projektem informatycznym
Subversion operowanie na repozytorium
svn mkdir
svn copy
svn move
svn delete
~>svn mkdir file:///tmp/svn/Przykladowy -m "Utworzenie katalogu"
Zatwierdzona wersja 1.
~>svn ls file:///tmp/svn
Przykladowy/
~>ls /tmp/svn/
conf db format hooks locks README.txt
~>du -sh /tmp/svn
144K /tmp/svn
~>svn delete file:///tmp/svn/Przykladowy -m "Usuniecie katalogu"
Zatwierdzona wersja 2.
~>du -sh /tmp/svn
152K /tmp/svn
Skad FoilTEX 16
Praca grupowa nad projektem informatycznym
Subversion historia zmian
svn log
~>svn log file:///tmp/svn/------------------------------------------