Table of Contents

Laborator 3

Versionarea aplicatiilor software

Unelte si tehnologii pentru managementul proiectelor:

Concepte:

Documentatie laborator

Versionarea aplicatiilor

Sistemele pentru contolul versiunii (Version Control Systems - VCS - sau Source Code Management - SCM) sunt aplicatii care permit lucrul colaborativ pe diverse fisiere, in special fisiere cod sursa. Sistemele pentru controlul versiunii sunt practic obligatorii in cadrul unui proiect cu dezvoltatori multipli. Astfel de sisteme retin istoricul modificarilor efectuate de fiecare dezvoltator si folosesc comenzi specializate care sa faciliteze transmiterea acestor modificari intre dezvoltatori.

Din punct de vedere al modului de implementare VCS pot fi clasificate:

In cadrul laboratoruli de MP vom utiliza Subversion care este un proiect Apache de versionare a aplicatiilor software de tip centralizat. Acesta este integrat cu Redmine, astfel incat din cadrul proiectului veti putea vizualiza fisierele sursa asociate proiectului stocat pe serverul Subversion.

Presupunand ca avem instalat un server SVN, pasii necesari pentru configurarea unui “repository” Subversion in care sa stocam un proiect sunt urmatorii:

1. Creare repository

Este creat si configurat directorul in care toate fisierele asociate proiectului, si care sunt sub controlul Subversion, vor fi stocate.

$ svnadmin create /path/to/repository 

2. Configurare repository

Fisierul principal de configurare este localizat in /path/to/repository/conf/svnserce.conf. In cadrul acestui fisier sunt setate mecansimele de autentificare si autorizare asociate proiectului. Variabilele anon-access si auth-access pot fi confgurate cu valorile none, read si write. Un exemplu de configurare posibila este urmatorul:

[general]
anon-access = read
auth-access = write
password-db = passwd

4. Configurarea utilizatorilor ce vor avea acces la repository.

Fisierul de configurare a utilizatorilor passwd se afla in acelasi director cu fisierul /path/to/repository/conf/svnserce.conf. Un exemplu de fisier de configurare a utilizatorilor este acesta:

[users]
developer1 = pass1
developer2 = pass2

Pentru ca schimbarile sa aiba efect serverul Subversion va trebui restartat.

5. Pasul final este cel de a importa in repository directorul proiectului.

$ svn import --username=developer1 --passowrd=pass1 /path/to/project/ file://localhost/path/to/repository/ -m "first imp
ort"

Detalii cu privire la toate comenzile Subversion gasiti aici.

Odata creat repository-ul si importat proiectul, clientii vor putea accesa proiectul si vor pune moddifica si adauga fisiere in cadrul acestuia, iar Subversion va gestiona acest proces.

Operatiile principale pe care un client le poate face sunt urmatoarele:

Un tutorial care descrie comenzile de baza gasiti aici.

Standarde de codare

Indiferent de limbajul de programare folosit, pentru facilitarea parcurgerii, intelegerii si imbunatatirii codului se recomanda folosirea unui set de reguli, incadrate de obicei, intr-un document (de obicei fisier text) de tip Coding Style sau Coding Standards. Exemple de astfel de documente sunt:

In general, conventiile de codare difera dar urmaresc aspecte comune:

Unelte pentru crearea prezentarilor

Exista diferse produse specializate pentru crearea de prezentari. Probil una dintre cele mai utilizare aplicatii in acest scop este Microsoft PowerPoint ce face parte din suita Office.

Latex Beamer este un alt tool de creare a prezentarilor. Beamer este o componenta Latex.

Cateva reguli pentru realizarea prezentarilor gasiti aici.

Planificare utilizand Pert/CPM

Diagrama PERT(eng- Program Evaluation and Review Technique) este un instrument de management al proiectului, care a fost elaborat si folosit pentru prima oara de U.S. Navy in anii ’50, pentru a coordona programul submarinului atomic Polaris.O metodologie de management a proiectului similara, respectiv Metoda Drumului Critic (CPM-eng-« Critical Path Method), care a fost elaborata cam in aceeasi perioada, pentru sectorul privat, a devenit sinonima cu PERT. Aceasta este cauza pentru care sunt intalnite variatii de denumiri pentru acelasi instrument: PERT, CPM sau PERT\CPM.

Aceste tipuri de diagrame se folosesc pentru planificarea proiectelor complexe in care activitatile trebuie sa se realizeze intr-o succesiune logica, si acestea trebuie sa se incadreze in termene bine definite. Folosind aceste diagrame se poate calcula drumul critic in proiect, acesta fiind format din insiruirea activitatilor a caror intarziere (activitati critice) duce la intarzierea intregului program.

Diagrama PERT contine informatii despre sarcinile dintr-un proiect, perioadele de timp pe care se intind si dependentele dintre ele. Forma grafica este o retea de noduri conectate de linii directionale.

Documentatie laborator PERT

Exercitii

Exercitii PERT

Sa doreste realizarea unui sistem modern de informarea si rezervare de bilete de tren care sa ofere posibilitatea de accesare a functionalitatilor acestuia prin intermediul telefonelor mobile. Sa se identifice activitatile necesare pentru a implementa un astfel de sistem. Sa se estimeze duratele de executie ale activitatilor si sa se calculeze drumul critic in cadrul proiectului utilizand diagrama PERT.

Exercitii Subversion

Se va descarca ultima varianta a mediului de dezvoltare Eclipse de pe pagina oficiala. Se va cauta si se va instala in cadrul instantei Eclipse descarcate plug-in-ul ce implementeaza functionalitatile Subversion.

Se vor testa operatiile de check-out, add, commit, update. In acest scop se va utiliza serverul Subversion din laborator. Detalii cu privire la proiectul pe care se va lucra vor fi oferite in timpul orelor de laborator.

Exercitii standarde de codare

Studiati documentatia standardului de codare java.

Sa se modifice codul de mai jos pentru a respecta standardele de codare java.

//bad code example
public class senzor {
static final int max = 10;
//valuare curent senzor
int x;
senzor(int v){x=v;}
int preiavaloaresenzor(){return x;}
void seteazav(int a){x =a;}
void a()
	{System.out.println("Valoare curenta senzor="+x);
	}
public static void main(String[] args) 
{
senzor A = new senzor(3);
A.a();
A.seteazav(9);
}
}

Exercitii prezentare

Realizati o prezentare PowerPoint in care sa descrieti proiectul de licenta. Se va urmari atingerea urmatoarelor puncte in cadrul prezentarii: obiectivele lucrarii de licenta,concepte si notiuni teoretice, unelte si tehnologii folosite pentru implementare, arhitectura software/hardware, stadiul actual.

Proiect

In functie de limbajul de programare folosit pentru elaborarea lucrarii de licenta, sa se aleaga un standard de codare potrivit.

Sa se realizeze o estimare a duratei de executie a proiectului folosind diagrame Pert/CPM.