Przygotowanie platformy projektowo-programowej

Transkrypt

Przygotowanie 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 środowiska
programistyczne
● UML jako przykład narzędzia do
projektowania systemów
●
Wprowadzenie do Systemów Kontroli
Wersji
●
●
●
●
Systemy kontroli wersji ułatwiają grupową pracę
wielu programistów nad jednym projektem
Pozwalają one na współbieżną współpracę poprzez
„sieć” wielu osób nad tym samym kodem
źródłowym
Najbardziej popularnym systemem kontroli wersji
jest CVS
Ze względu na kilka wad systemu CVS powstał
system Subversion, nazywany również SVN, który
wypiera (wyparł) CVS
Wprowadzenie do Systemów Kontroli
Wersji
●
●
●
●
●
Wszędzie tam, gdzie nad jednym projektem pracuje wiele
osób, zastosowanie znajduje system kontroli wersji
System, zainstalowany na serwerze, przechowuje pliki
projektu
Programista, który chce wykonać poprawki lub zmiany w
kodzie źródłowym, pobiera aktualny kod projektu z serwera
Po dokonaniu zmian w plikach, kod projektu jest przesyłany
przez programistę ponownie na serwer
Oprogramowanie kontroli wersji scala pliki przesłane przez
programistę z kodem
Wprowadzenie do Systemów Kontroli
Wersji
●
●
●
●
Proces scalania jest niemal całkowicie automatyczny
Nawet, jeśli wielu programistów wykonało zmiany w projekcie i
przesłało nowe wersje kodu na serwer w tym samym czasie,
oprogramowanie kontroli wersji poprawnie scali wszystkie
dokonane zmiany: być może w wielu plikach naraz, być może w
niektórych plikach w wielu miejscach
Jedynie wykluczające się wzajemnie zmiany dotyczące dokładnie
tego samego miejsca w jednym pliku nie mogą być rozstrzygnięte
automatycznie
Wówczas potrzebna jest ingerencja jednego z programistów, który
musi ręcznie wybrać jedną wersję wprowadzonych modyfikacji
Wprowadzenie do Systemów Kontroli
Wersji
●
●
●
●
●
Naturalnie, takie kolizje w rzeczywistości są dość rzadkie (pod
warunkiem, że poszczególni developerzy mają ściśle określone
zadania)
Opisany model pracy jest określany jako kopiuj-modyfikuj-scal
(copy-modify-merge)
W modelu tym, poza specjalnymi przypadkami, nie występują
blokady, co znaczy że żaden z plików projektu nie jest
zablokowany
Programista może pobrać kod całego projektu, i pracować nad
dowolnym plikiem w dowolnej chwili
Nie ma wymogu oczekiwania na zakończenie pracy
poszczególnych osób w zespole (wykonania uaktualnienia) programiści są wzajemnie niezależni
Subversion – cechy systemu
●
●
●
●
●
Subversion może być postrzegany jako serwer plików
wzbogacony o dodatkową funkcjonalność
„W wirtualnym systemie plików” udostępnianym przez serwer
wszystkie zmiany, a więc zawartość, nazwy, atrybuty oraz
położenie plików i katalogów podlegają śledzeniu i mogą być
wycofywane
System rejestruje zmiany dotyczące nie tylko zawartości, ale
także wszystkich innych cech plików
Foldery podlegają rejestracji w taki sam sposób jak pliki
Śledzeniu podlegają także operacje na plikach i folderach:
tworzenie, kopiowanie, przesuwanie, usuwanie, zmiana nazwy
Subversion – cechy systemu
●
●
●
Zatwierdzenie poprawek przez programistę jest operacją
atomową, tzn. odbędzie się ona w całości lub nie odbędzie
się wcale (bez względu na to ilu plików dotyczy)
Subversion został zaimplementowany m.in. w postaci
modułu serwera Apache, dzięki czemu dostęp do
repozytoriów może wykorzystywać SSL, kompresję danych
i wszelkie inne udogodnienia oferowane przez Apache'a
System pozwala na rejestrację wersji zarówno plików
tekstowych jak i binarnych
SVN – słownik
●
repozytorium (repository):
–
zestaw plików i folderów zarządzanych i udostępnianych
przez serwer SVN
–
System SVN jest serwerem plików, który nadaje całemu
repozytorium dodatkowy wymiar: numer rewizji
–
W każdej chwili użytkownicy mogą uzyskać dostęp do
całego repozytorium (czyli drzewa katalogów i plików)
w stanie z zadanej rewizji
–
Numer rewizji dotyczy całego repozytorium i jest
zwiększany po każdym przesłaniu plików na serwer
(czyli po wykonaniu operacji commit)
SVN – słownik
●
repozytorium (repository):
–
Podstawowy proces wykorzystywania SVN-a:
●
●
●
●
Użytkownik najpierw pobiera z serwera aktualną
kopię plików
Kopia lokalna jest nazywana kopią roboczą
Następnie użytkownik dowolnie modyfikuje swoją
własną kopię roboczą
Na zakończenie, zmieniona kopia robocza jest
przesyłana przez użytkownika na serwer i scalana z
plikami zawartymi na serwerze
SVN – słownik
●
kopia robocza (working copy):
–
Komplet plików tworzących projekt przekopiowany z
serwera SVN na dysk lokalny
–
Kopia robocza jest w 100% prywatną własnością:
oprogramowanie SVN nigdy samowolnie nie dokona w
niej żadnych zmian
–
Do utworzenia kopii roboczej służy polecenie checkout
zaś do przesłania kopii roboczej na serwer polecenie
commit
–
Po przesłaniu na serwer, kopia robocza może być
usunięta (nie ma to wpływu na zawartość serwera)
SVN – słownik
●
rewizja (revision)
–
Stan systemu plików przechowywanych przez serwer
SVN po wykonaniu zadanej liczby zmian
–
Operacja commit przesyłająca kopię roboczą na serwer
zwiększa numer rewizji
–
Bez względu na liczbę zmienionych plików, jedna
operacja commit zwiększa numer rewizji dokładnie o
jeden w stosunku do aktualnego numeru rewizji na
serwerze SVN
–
Numery rewizji dotyczą całego drzewa plików i
katalogów przechowywanego przez SVN, a nie
poszczególnych plików
SVN – słownik
●
kolizja (collision):
–
Sytuacja, w której dwie osoby wykonały wykluczające
się zmiany w jednym z plików
–
Serwer SVN nie może w takiej sytuacji automatycznie
rozstrzygnąć, która wersja pliku ma być traktowana jako
bieżąca
–
Decyzję o tym, który plik ma być aktualny, podejmuje
człowiek, po ręcznej analizie plików
Subversion
●
Oprogramowanie Subversion składa się z klienta oraz
serwera:
–
VISUALSVN SERVER:
Serwer SVN dla
systemu Windows
–
TortoiseSVN:
graficzny klient SVN
dla systemu Windws
VISUALSVN SERVER
●
Po zainstalowaniu należy stworzyć użytkowników, którzy –
w oparciu o login i hasło - będę mieć dostęp do SVN:
VISUALSVN SERVER
●
W następnej kolejności należy stworzyć repozytorium, czyli
miejsce w którym będą przechowywane „kopie robocze”
VISUALSVN SERVER
●
Z utworzonym repozytorium można powiązać
użytkowników, nadając im indywidualne prawa dostępu:
TortoiseSVN
●
●
TortoiseSVN: graficzny klient SVN dla systemu Windows
W celu skorzystania z klienta SVN, w pierwszej kolejności
należy powiązać folder użytkownika z repozytorium:
TortoiseSVN
●
W celu skorzystania z klienta SVN, w pierwszej kolejności
należy „powiązać” folder użytkownika z repozytorium:
TortoiseSVN
●
●
Po wykonaniu polecania „SVN checkout” zostanie pobrana
zawartość repozytorium
W następnej kolejności można dodawać nowe pliki/foldery
do repozytorium:
TortoiseSVN
●
Aby synchronizować repozytorium z lokalną wersją należy
użyć 1 z 2 komend:
–
SVN Update – której zadaniem jest pobranie najnowszej
wersji np..pliku z repozytorium
–
SVN Commit – której zadaniem jest wysłanie
nowej/zmodyfikowanej wersji np.. pliku
TortoiseSVN
●
W trakcie wysyłania użytkownik zostanie poproszony o
podanie komentarza:
TortoiseSVN
●
Użytkownicy mają dostęp
do wszystkich wcześniej
wysłanych wersji:
Zintegrowane środowiska
programistyczne
●
●
Zintegrowane środowisko programistyczne (Integrated
Development Environment, IDE) jest to aplikacja lub zespół
aplikacji, środowisk służących do tworzenia, modyfikowania,
testowania i konserwacji oprogramowania
Przykłady:
–
Edytor tekstowy, np: vim, gedit, kwrite
–
NetBeans
–
Eclipse
–
Visual Studio
–
Dev-C++
NetBeans
●
NetBeans – projekt otwartego oprogramowania mający za zadanie
dostarczanie efektywnych narzędzi programowania głównie w języku
Java
●
Dodatkowo, NetBeans zapewnia wsparcie dla PHP, C/C++, i HTML5
●
Dwa najważniejsze elementy wchodzące w skład NetBeans-a to:
–
NetBeans IDE – zintegrowane środowisko programistyczne,
którego głównym celem jest przyspieszenie budowy aplikacji, w
tym również usług sieciowych oraz aplikacji mobilnych
–
NetBeans Platform – gotowa platforma służąca za fundament
rozwoju aplikacji Java Swing. Dzięki użyciu gotowej bazy i
udostępnianych przez NetBeans Platform gotowych do użycia
usług – okna, menu, zarządzanie i przechowywanie konfiguracji,
dostęp do plików – można znacząco skrócić proces budowy
aplikacji
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html
NetBeans – moduł C/C++
●
●
Moduł Netbeans dla C/C++ wymaga wcześniejszego
zainstalowania kompilatorów dla C/C++, debuggera gdb,
jak również zapewnienia wsparcia dla make utility
Dla systemów rodziny Linux może zostać wykorzystany
szeroko znany GNU Compiler Collection, natomiast dla
rodziny systemów Windows można wykorzystać jeden z
następujących narzędzi:
–
Cygwin Compilers and Tools
–
MinGW Compilers and Tools
https://netbeans.org/community/releases/72/cpp-setup-instructions.html#downloading
NetBeans – praca zdalna
●
●
NetBeans pozwala na pracę zdalną, np.:
–
Kod tworzony/rozwijany może być na lokalnym
komputerze lub serwerze
–
Kod może być kompilowany na serwerze lub lokalnie
–
Program może zostać uruchomiony na serwerze lub na
lokalnym komputerze
Wykorzystywane są do tego standardowe protokoły
komunikacyjne: ssh, sshfs lub ftp, sftp
NetBeans - Subversion
●
●
●
NetBeans zapewnia integrację klienta SVN
W rezultacie usprawnia to proces rozwoju danego
oprogramowania dla grup roboczo-projektowych,
poprzez równoległą pracę z użyciem wspólnego
repozytorium
Funkcjonalność ta pozwala na wykonywanie zadań
wersjonowanych bezpośrednio z IDE systemu
projektu
https://netbeans.org/kb/docs/ide/subversion.html
Narzędzia do modelowania w UML
●
●
●
Narzędzia do modelowania w UML (Unified Modeling
Language – ujednoliconym języku modelowania) –
oprogramowanie, które pozwala tworzyć modele pomocne
przy programowaniu
Format otwarty UML język formalny wykorzystywany do
modelowania różnego rodzaju systemów
Służy do modelowania dziedziny problemu - w przypadku
stosowania go do analizy oraz do modelowania
rzeczywistości, która ma dopiero powstać - tworzy się w
nim głównie modele systemów informatycznych.
Narzędzia do modelowania w UML
●
●
●
UML jest głównie używany wraz z jego reprezentacją
graficzną - jego elementom przypisane są symbole, które
wiązane są ze sobą na diagramach
Można wyróżnić aż 14 diagramów głównych oraz 3
abstrakcyjne (struktur, zachowań i interakcji)
Przykładowe diagramy:
–
Przypadków użycia: przedstawia interakcję pomiędzy
aktorem (użytkownikiem systemu), który inicjuje
zdarzenie oraz samym systemem jako sekwencję
prostych kroków
Narzędzia do modelowania w UML
●
Przykładowe diagramy:
–
Sekwencji: opisują interakcje pomiędzy częściami
systemu w postaci sekwencji komunikatów
wymienianych między nimi
–
Klas: to statyczny diagram strukturalny, przedstawiający
strukturę systemu w modelach obiektowych przez
ilustrację struktury klas i zależności między nimi
–
Komunikacji – kooperacji: Diagram komunikacji jest
jednym z diagramów interakcji. Diagram komunikacji
przedstawia sposób wymiany komunikatów pomiędzy
obiektami uczestniczącymi w interakcji.
Diagram przypadków użycia
Diagram Sekwencji
Diagram Komunikacji
Serwer www - Apache
●
●
●
Apache - otwarty serwer HTTP dostępny dla wielu
systemów operacyjnych
W połączeniu z interpreterem języka skryptowego PHP i
bazą danych MySQL, Apache stanowi jedno z najczęściej
spotykanych środowisk w firmach oferujących miejsce na
serwerach sieciowych
Cechuje go wielowątkowość, skalowalność,
bezpieczeństwo, itd...
PHP
●
●
●
PHP jest językiem skryptowym służącym do rozszerzania
możliwości stron internetowych
Składnia PHP jest bardzo podobna do popularnych języków
programowania C/C++, lecz jest bardzo uproszczona –
programista PHP zazwyczaj nie musi przejmować się
poprawnością typów zmiennych, przydzielaniem dla nich
pamięci itp.
PHP umożliwia współpracę z wieloma rodzajami źródeł
danych, takich jak systemy zarządzania bazami danych,
pliki tekstowe, dokumenty XML oraz serwisy WWW
Baza danych: MySQL
●
●
●
●
MySQL jest wolnodostępnym systemem zarządzania
relacyjnymi bazami danych
MySQL rozwijany jest przez firmę Oracle
MySQL to najchętniej używana baza danych z otwartym
dostępem do kodu źródłowego
Jest wykorzystywana do tworzenia niedrogich, skutecznych
i skalowalnych wbudowanych aplikacji bazodanowych w
sieci
phpMyAdmin
●
●
●
phpMyAdmin – narzędzie służące do łatwego zarządzania
bazą danych MySQL napisane w języku PHP
Oprogramowanie wydawane jest na licencji GNU General
Public License i umożliwia między innymi
tworzenie/usuwanie baz danych, dodawanie/kasowanie
relacji oraz edycję ich struktury i zawartości
Wszystkie operacje mogą być wykonywane z poziomu
przeglądarki internetowej, w graficznym środowisku, bez
konieczności pracy z domyślnym interfejsem tekstowym
WorkBeanch
●
●
●
●
MySQL Workbench jest zunifikowanym wizualnym
narzędziem dla twórców baz danych, programistów i
administratorów baz danych
MySQL Workbench umożliwia modelowania baz danych
oraz zapewnia kompleksowe narzędzia administracyjne dla
konfiguracji serwera, administracji użytkowników,
tworzenia kopii zapasowych itd..
MySQL Workbench jest dostępny dla różnych systemów
operacyjnych rodziny Windows, Linux i Mac OS X
MySQL Workbench dostarcza wizualne narzędzia do
tworzenia, realizacji i optymalizacji zapytań SQL
Instalacja serwera Apache, PHP,
MySQL
●
●
●
●
●
Alache:
http://httpd.apache.org/download.cgi
php:
http://windows.php.net/download/
MySQL:
http://dev.mysql.com/downloads/mysql/
phpmyadmin:
http://www.phpmyadmin.net/home_page/downloads.php
przykładowy przewodnik:
http://www.tworzenieinternetowychstron.cba.pl/porady/instal
acja-serwera-apache-php-i-mysql.html