Techniki komputerowe w robotyce - Laboratorium mucha/TechKomp/wyklad03.pdf · PDF...

Click here to load reader

  • date post

    02-Mar-2019
  • Category

    Documents

  • view

    218
  • download

    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/------------------------------------------