Programare eXtremaProgramare Extrema (XP) este o metodologie care tine de ingineria programarii si este cea maiprominenta dintre metodologiile de dezvoltare a proceselor agile. Ca si alte metodologii agile, ProgramareExtrema difera de metodologii traditionale in primul rand prin accentuarea pe adaptabilitate sipredictabilitate. Cei care au propus XP respecta schimbarile cerintelor ca un aspect natural, inevitabil sidorit in dezvoltarea proiectelor; ei considera ca posibilitate de adaptare la cerintele in curs de schimbare inorice moment din desfasurarea proiectului este mai rationala si reprezinta o abordare mai buna decattendinta de a defini toate cerintele la inceputul desfasurarii proiectului care apoi implica efort crescutpentru controlul schimbarilor cerintelor.XP propune un set de procedee pentru manageri si developeri; procedee trebuie sa cuprinda si incurajezevalori particulare. Propunatori considera ca utilizarea acestor procedee conduce la procese de dezvoltarecare sunt mai apropiate de nevoile clientului (mai "agile") decat metode traditionale, in timp ce se oferaposibilitate de creare software-ului de calitate superioara.IstoriaProgramare Extrema a fost creata de catre Kent Beck, Ward Cunningham, si Ron Jeffries in timpuldezvoltarii proiectului Chrysler Comprehensive Compensation System (C3). Kent Beck a devenit liderulproiectului C3 in Martie 1996 si a inceput sa rafineze metodologia de dezvoltare folosita in proiect. KentBeck a scris o carte despre metodologia, si in Octobrie 1999, Extreme Programming Explained a fostpublicata. Proiectul fiind fara succes Chrysler l-a oprit in Februarie 2000, dar metodologia a rezistat indomeniul de inginerie a programarii.Scopul a Programarii ExtremeCartea Extreme Programming Explained descrie Programare Extrema ca fiind:O incercare de a impaca humanizm si productivitate.Un mecanism pentru schimbare sociala.O cale spre imbunatatire.Un stil de dezvoltare.O disciplina de dezvoltare software.Scopul principal a XP este de a reduce costul schimbarii. In metode din sisteme traditionale de dezvoltare(cum este SSADM - Structured Systems Analysis and Design Method) cerintele sistemului sunt determinatela inceputul dezvoltarii proiectului si deseori fixate de la acel punct. Asta inseamna ca si costul de schimbarea cerintelor in stadiul mai tarziu va fi mare.XP tinde sa reduca costul de schimbare introducand valori de basa, principii si procedee. Aplicand XP, unsistem de developare unui proiect ar trebui sa fie mai flexibil cu respect pentru schimbari.Valorile Programarii ExtremeProgramare Extrema initial prezenta patru valori. Una noua a fost adaugata in editia a doua deExtreme Programming Explained. Cele cinci valori sunt:- Comunicare- Simplitate- Feedback- Curaj- Respect (cea mai recenta)Construirea unui sistem software necesiata comunicarea cerintelor de sistem catre dezvoltatoriisistemului. In metodologii formale ale dezvoltarii software, aceasta sarcine este realizata prin documentatii.Tehnicile Programarii Extreme pot fi vazute ca metode pentru construirea rapida a conostintelorinstitutionale intre membrii al timului de dezvoltare. Scopul este de a oferi tuturor membrilor vederepartajata a sistemului care se poate compara cu vederea detinuta de utilizatorii ai sistemului.Programare Extrema incurajeaza plecarea de la solutii cat mai simple si refabricarea lor in solutii maibune. Diferenta intre abordarea aceasta si abordarea conventionala este concentrarea la scrierea coduluipentru nevoile de astazi, in loc de scrierea codului pentru maine, saptamana viitoare, sau chiar lunaviitoare. Propunatorii ai XP au remarcat ca metoda conventionala poate uneori implica mai mult efort camaine sistemul sa fie schimbat; ei sustin acest neajuns este mult compensat de avantajul al investitiei inposibile cerinte care se pot schimba inainte de a deveni relevante. Scrierea codului si design pentru cerintede viitor nesigure implica riscul de consumare a resurselor pe ceva ce poate nici nu va fi folosit. Legat devaloarea "comunicarii", simplitate in design si scrierea codului ar trebui sa imbunatateasca (calitatea de)comunicare. Un design simplu cu un cod simplu pot fi foarte usor intalese de majoritatea programatorilor intimul respectiv.In Programare Extrema, feedback-ul este de arii diferite ale dezvoltarii sistemului:Feedback de la sistem: scriind teste unitare, sau ruland periodic teste de intgrare, programatori aufeednback direct de la starea sistemului dupa implementarea schimbarilor.Feedback de la client: Teste de functionalitate sunt scrise de catre client si testeri. Ei vor obtinefeedback concret despre starea curenta a sistemului. Aceasta revizuire este planificata odata la 2-3saptamani ca respectivul client sa poate usor conduce dezvoltarea.Feedback de catre timul: Cand utilizatori intervin cu noi cerinte in planificare, timul ofera o estimaredirecta a timpului necesar petnru implementare.Feedback este strans legat cu simplitate si comunicare. Punctele slabe in sistem sunt usor comunicatescriind teste unitare care arata ca anumite parti ale codului vor ceda. Feedback direct de la sistem spuneprogramatorilor sa rescrie acea bucata de code. Clientul are posibilitatea de a testa sistemul periodic,conform cu cerintele functionalitatii.Cateva procedee cuprind si curaj. Unul dintre ele este comandament ca intodeuna sa se scrie codulpentru astazi si nu pentru maine. Acesta este un efort de a nu se incurca cu design si implica mult efortpentru implementarea unui al design. Curajul ofera sentimentul de confortabilitate de a rescrie codul lororicand este necesar. Asta presupune verificare sistemului existent si modificare lui astfel incat eventualeleschimbari in viitor sa fie cat mai usor de implementate. Inca un exemplu de curaj este de a stii cand estenevoie de a renunta la o parte din cod: curajul de a renunta la bucata de cod invechita, inutila fara a tinecont de efortul depus pentru crearea acelei bucate de cod. De asemenea presuspune si persistenta: Unprogramator poate sa ramana blcat la o problema complexa intreaga zi si apoi s-o rezolve foarte rapid ziuaurmatoare, doar daca este persistent.Valoare de respect se manifesta in mai multe moduri. In Programarea Extrema, membrii ai timului serespecta reciproc fiind ca nici un progrmator nu ar trebui sa comita schimbari care vor provoca erori lacompilare, care vor face ca teste sa esueze, sau care vor intarzia munca in oricare al mod. Membrii respectamunca lor tinzand intotdeuna la calitate superioara, la cel mai bun design.Adoptarea celor patru calori de mai sus conduce la respect obtinut de la toti membri ai timului. Nici unmembru ai timului nu terbuie sa fie subestimat sau ignorat. Asta asigura nivel ridicat de motivare siincurajeaza loialitate pentru timul si pentru scopul proiectului.ActivitaiXP descrie patru activitai de baza care sunt aplicate in procesul de dezvoltare software:CodareAdepti ai XP sustin ca singurul adevarat si important product al dezvoltarii unui sistem este codul. Faracod nu exista nimic.Codare poate insemna desenare a diagramelor care vor genera cod, scriptare a sistemului bazat pe websau scrierea programului care trebuie sa fie compilat.Codare poate fi de asemenea folosita pentru a gasi cea mai potrivita solutie pentru o problema. Deexemplu, XP propune, in caz ca avem mai multe alternative pentru o problema anume, programatoru artebui sa scrie codul pentru fiecare solutie aparte si sa determine cea mai eficienta, folsind eventual testeautomate. Codare poate de asemenea ajuta la comunicarea ideilor si probelmelor de programare. Unprogramator, care este in fata unei probleme complexe si infrunta dificultati in demonstrarea solutiecolegilor, ar putea folosi codul pentru a demonstra ce a avunt in gand. Codul este intotdeauna curat, concissi nu poate fi interpretat in mai multe moduri. Alti programatori ofera feedback pentru acest cod scriind, deasemenea, codul pentru pentru ideile lor.TestareUn programtor nu poate cu siguranta sustine corectitudinea solutiei pana nu a testa-o. Testare nu estenecesitate primara pentru un client. O mare parte din softwerul dezvoltat este lansat fara a fi testat inaintesi inca mai functioneaza (mai mult sau mai putin). In dezvoltarea software, XP sustine ca un programator nupoate spune ca o functie este corecta daca nu a testat-o intai.Un programator poate fi nesigur daca ceea ce a scris este ceea ce a gandit. Pentru a testa aceastanelamurire XP foloseste teste unitare (Unit Tests). Acestea sunt teste automate care testeaza codul scris.Un programator ar trebuie sa incerce sa scrie cat mai multe teste care ar putea provoca caderea codului;daca toate testele ruleaza cu succes atunci codarea este completa.Un programator poate fi nesigur daca ceea ce a gandit este ceea ce trebuia sa gandesca. Pentru a testaaceasta nelamurire XP foloseste teste de acceptare (acceptance tests) basate pe cerintele oferite de catreclientul in faza de explorarea planificarii.AscultareProgramatori nu trebuie neaparat sa fie constienti despre partea de afacere a sistemului in dezvoltare.Functionalitatea sistemului este determinata tocmai de partea de afacere. Pentru ca programatori sa aflede despre functionalitatea sistemului, este necesar sa "asculte" afacerea.Programatori trebuie sa asculte "in larg": ei trebui sa asculte nevoile clientului. De asemenea, ei trebuie saincerce sa intaleaga problemele afecerii si sa ofere clientului feedbeck despre problema clientului, saimbunatateasca perceperea lor legata de problema respectiva.DesignDin puctul de vedere al simplitatii, programatorul ar putea spune ca dezvoltarea sistemului necesita doarcodare, testare si ascultare. Daca acele activitati sunt efectuate bine, rezultatul ar trebui intotdeuna sa fieun sistem care functioneaza. In practica, acesta nu se poate aplica. Programatorul poate sa inainteze farafara a folosi design, dar la un moment dat se va bloca. Sistemul devine prea complex si dependentele dininterior nu mai sunt la fel de clare.Programatorul poate evita aceasta situatie prin crearea unei structuri de design care organizeaza logica insistemul respecitv. Un design bun ofera posibilitate de a evita prea multe dependente in sistem; astainseamna ca modificand o parte din sistem nu vor fi afectate alte parti ale sistemului.Aplicarea Programarii ExtremeIn ciuda aspectelor controversate, XP ramane o alegere viabila pentru unele proiecte. Proiectele potriviteProgramarii Extreme sunt cele care:- implica noile tehnologii de prototipuri, unde cerintele se schimba rapid, sau este nevoie de odezvoltare pentru a descoperi problemele neprevazute de implementare- sunt proiecte de cercetare unde rezultatul muncii nu este produsul insusi, dar cunostinteledomeniului- sunt mici si usor de directionat prin metodele nonformaleProiectele potrivite pentru metode mai traditionale sunt cele care:- implica tehnologii stabile si au cerinte fixe, unde se stie ca putine schimbari vor interveni- implica sisteme de importanta mare a scopului si a sigurantei, unde metode formale trebuie safie angajate pentru securitate sau asigurare- sunt proiecte ample pot distruge mecanisme de comunicare nonformale- contin produse complexe care continua sa solicite, in afara scopului sistemului, alterariimportante si frecvente, unde o baza de cunostinte, sau un set de documentatie devine onecesitate fundamentala pentru a sustine intretinerea.Manageri de proiect trebuie sa cantareasca aspectele proiectului fata de metodologiile disponibile pentrua face o alegere potrivita. Totusi, unele concepte ale XP pot fi aplicate in afara, cum ar fi utilizareaProgramarii in Pereche pentru a expedia schimbari tehnice referitoare la setul de documentatii al unuiproiect amplu.ProcedeeXP are 12 procedee, grupate in 4 sectiuni, derivate din cele mai bune procedee din ingineria programarii:Fine scale feedbackPair ProgrammingPlanning GameTest Driven DevelopmentWhole teamContinuous processContinuous IntegrationDesign ImprovementSmall ReleasesShared understandingCoding StandardsCollective Code OwnershipSimple DesignSystem MetaphorProgrammer welfareSustainable PaceBibliografie:http://en.wikipedia.org/wiki/Extreme_Programming
REFERAT INFORMATICA: PROGRAMARE EXTREMA
label
Referate
calendar_month
2008-05-27, 00:00
autorenew
2025-09-29, 16:56
history_edu
Anonim