RAD (programare)
RAD (din limba engleză rapid application development - rapid application development) - conceptul de organizare a procesului tehnologic de dezvoltare a produselor software , axat pe rezultate cât mai rapide posibile în fața constrângerilor severe de timp și buget și a cerințelor de produs vag definite. Efectul de accelerare a dezvoltării se realizează prin utilizarea mijloacelor tehnice adecvate și continue, în paralel cu progresul dezvoltării, clarificarea cerințelor și evaluarea rezultatelor curente cu implicarea clientului. RAD a fost creat la sfârșitul anilor 1980 ca o alternativă la modelele anterioare în cascadă și iterative . De la sfârșitul secolului al XX-lea, RAD a devenit larg răspândit.
Același termen este folosit pentru instrumentele software pentru prototipare rapidă și dezvoltare software. Calitățile tipice ale unor astfel de instrumente sunt automatizarea maximă a operațiunilor de rutină și utilizarea pe scară largă a programării vizuale .
Istorie
Crearea conceptului RAD a fost rezultatul unei combinații a mai multor factori.
- Nemulțumirea cu metodele de dezvoltare software din anii 1970 și începutul anilor 1980 , cum ar fi modelul Waterfall . Dezvoltate prin analogie cu metodele de proiectare a sistemelor tehnice „de fier”, ele prevăd formarea în etape a cerințelor, documentația, proiectarea și implementarea. Aplicarea lor consecventă duce la un proces atât de lent de creare a unui program, încât adesea chiar și cerințele de bază ale programului au timp să se schimbe înainte de finalizarea dezvoltării.
- Conștientizarea faptului că dezvoltarea de produse software diferă de tipurile tradiționale de activitate de inginerie, ceea ce constă într-o disponibilitate mult mai mare a subiectului de dezvoltare pentru modificări complexe repetate.
- Apariția capacităților hardware și a instrumentelor de dezvoltare software care vă permit să creați rapid prototipuri funcționale ale sistemelor software și ale părților acestora și să automatizați documentația acestora. Cu aceste instrumente, o alternativă la proiectarea detaliată și la pre-documentarea atentă a sistemului este crearea sau modificarea rapidă a unui prototip și evaluarea directă a acestuia de către client.
- Experiență de succes în dezvoltarea de sisteme bazată pe munca unei mici echipe coezive de dezvoltatori care interacționează direct între ei și cu un reprezentant al clienților.
Fondatorul RAD este angajatul IBM James Martin, care în anii 1980 a formulat principiile de bază ale RAD, pe baza ideilor lui Barry Boym și Scott Schultz. Și în 1991, Martin a publicat o carte celebră, în care a detaliat conceptul RAD și posibilitățile de aplicare a acestuia. RAD devine acum cadrul acceptat pentru crearea instrumentelor de dezvoltare software .
Numire
RAD presupune că dezvoltarea software-ului este realizată de o echipă mică de dezvoltatori pe o perioadă de aproximativ trei până la patru luni, folosind prototipuri incrementale folosind instrumente de modelare vizuală și dezvoltare. Tehnologia RAD asigură implicarea activă a clientului în stadiile incipiente - un studiu al organizației, dezvoltarea cerințelor pentru sistem. Ultima dintre aceste proprietăți presupune îndeplinirea integrală a cerințelor clientului, atât funcționale, cât și nefuncționale, ținând cont de eventualele modificări ale acestora în timpul dezvoltării sistemului, precum și obținerea de documentație de înaltă calitate care să asigure ușurința în exploatare și întreținere a sistemului. sistemul. Aceasta înseamnă că costurile suplimentare pentru asistență imediat după livrare vor fi semnificativ mai mici. Astfel, timpul total de la începutul dezvoltării până la obținerea unui produs acceptabil este redus semnificativ folosind această metodă.
Aplicație
Tehnologia RAD nu este universală, este indicat să o utilizați numai dacă proiectul îndeplinește toate sau unele dintre condițiile:
- Timp scurt. Este necesar să se creeze un sistem care să îndeplinească cerințele actuale cât mai repede posibil. Creșterea termenilor creează o probabilitate mare a unei schimbări atât de semnificative a prevederilor fundamentale care reglementează activitățile automatizate, încât sistemul va deveni învechit din punct de vedere moral chiar înainte de finalizarea proiectului.
- Cerințe neclar definite și/sau în schimbare în timpul dezvoltării. Clientul are o idee foarte grosieră despre activitatea viitorului produs software și nu poate formula clar toate cerințele pentru software. Cerințele pot să nu fie definite la începutul proiectului sau se pot schimba pe măsură ce proiectul progresează.
- Buget limitat cu dorința clientului de a participa la dezvoltare. Clientul nu are fonduri pentru a plăti munca unei echipe mari de designeri și dezvoltatori pentru o lungă perioadă de timp, dar există dorința de a aloca specialiști pentru participarea directă constantă la dezvoltarea și evaluarea stării sale actuale.
- Volume mici sau capacitatea de a împărți proiectul în componente funcționale. Dacă sistemul dorit este mare, trebuie să poată fi împărțit în bucăți mai mici, fiecare cu funcționalitate clară și dependență minimă de celelalte. Ele pot fi emise secvenţial sau în paralel (în acest din urmă caz sunt implicate mai multe grupuri RAD).
- Interfața grafică cu utilizatorul este cea mai importantă sau una dintre cele mai importante componente ale sistemului. Tehnologia RAD oferă cele mai mari avantaje în crearea interfeței, deoarece interfața este demonstrată direct pe prototip și destul de curând după începerea proiectului. Este chiar posibilă implicarea directă a reprezentantului clientului în proiectarea interfeței în editorul vizual. Această abordare evită situația tipică când interfața descrisă de utilizator în cerințe (de regulă, fără a ține cont de limitările tehnologice) se comportă în practică complet diferit de ceea ce se aștepta utilizatorul, deși sistemul respectă în mod formal pe deplin cerințele documentate.
- Complexitate de calcul scăzută. Procesarea datelor într-un proiect se reduce la o combinație de operațiuni tipice, toate sau majoritatea fiind deja implementate sub formă de biblioteci disponibile. Algoritmii originali de prelucrare a datelor fie nu sunt necesari deloc, fie sunt destul de simpli si pot fi implementati rapid si fara mare dificultate.
Dacă cerințele pentru sistem sunt clar definite și nu pot fi modificate, nu este necesară implicarea clientului în procesul de dezvoltare și dezvoltarea ierarhică tradițională ( metoda în cascadă ) poate fi mai eficientă. De asemenea, RAD nu oferă practic niciun avantaj în proiecte, a căror complexitate principală este determinată de necesitatea implementării unor algoritmi de prelucrare a datelor complecși, nestandard, iar interfața cu utilizatorul este fie absentă ca atare, fie foarte simplă și complet standard.
Principii de bază
Principiile tehnologiei RAD sunt menite să ofere cele trei avantaje principale ale sale - viteză mare de dezvoltare, cost scăzut și calitate înaltă. Realizarea unui produs software de înaltă calitate este foarte dificilă, iar unul dintre principalele motive pentru dificultățile care apar este că dezvoltatorul și clientul văd subiectul dezvoltării (software) în moduri diferite.
- Setul de instrumente ar trebui să urmărească reducerea la minimum a timpului de dezvoltare.
- Crearea unui prototip pentru a clarifica cerințele clienților.
- Ciclul de dezvoltare: fiecare versiune nouă a produsului se bazează pe evaluarea rezultatului muncii versiunii anterioare de către client.
- Minimizarea timpului de dezvoltare a versiunii prin transferul de module gata făcute și adăugarea de funcționalități la noua versiune.
- Echipa de dezvoltare trebuie să lucreze îndeaproape împreună, fiecare membru trebuie să fie dispus să-și asume mai multe responsabilități.
- Managementul proiectului ar trebui să minimizeze durata ciclului de dezvoltare.
Principiile RAD se aplică nu numai implementării, ci și tuturor etapelor ciclului de viață, în special stadiului studiului organizației, construirii cerințelor, analizei și proiectării.
Faze de dezvoltare
- Planificarea este un set de cerințe obținute din planificarea sistemului și analiza procedurii de dezvoltare a ciclului de viață (SDLC). În această etapă, utilizatorii, managerii și specialiștii IT discută despre obiectivele proiectului, domeniul său de aplicare, cerințele de sistem, precum și dificultățile care pot apărea în timpul dezvoltării. Faza se încheie cu un acord de către grupul RAD asupra punctelor cheie și obținerea permisiunii liderilor de proiect pentru a continua.
- Proiectarea utilizatorului - În această fază, utilizatorii interacționează cu analiștii de sistem pentru a dezvolta modele și prototipuri care includ toate funcțiile necesare ale sistemului. Pentru a traduce prototipurile utilizatorilor în modele de lucru, echipa RAD utilizează de obicei tehnici de dezvoltare comună a aplicațiilor (JAD) și instrumente CASE . Designul utilizatorului se dovedește a fi un proces interactiv de lungă durată care permite utilizatorilor să înțeleagă, să modifice și, în cele din urmă, să selecteze un model de lucru care să le îndeplinească cerințele.
- Designul este etapa în care sarcina principală este dezvoltarea de programe și aplicații. Similar cu etapa de „implementare” în SDLC. În RAD, totuși, utilizatorii continuă să participe și pot sugera în continuare modificări sau îmbunătățiri sub forma rapoartelor pe care le-au elaborat. Sarcinile lor includ programarea și dezvoltarea aplicațiilor, codificarea, integrarea modulelor și testarea sistemului.
- Comutare - include operațiuni de conversie a datelor, testare, trecere la un sistem nou și instruire pentru utilizatori. În sarcinile sale, seamănă cu etapa finală a SDLC. În comparație cu metodele tradiționale de dezvoltare de software, întregul proces este comprimat în timp. Ca rezultat, noul sistem este construit mai rapid, livrat clientului și instalat la locul de muncă.
Beneficii
Tehnologia Rapid Application Development (RAD)
vă permite să oferiți:
- viteza de promovare a produsului software pe piață;
- interfață care se potrivește utilizatorului;
- adaptabilitate ușoară a proiectului la cerințele în schimbare;
- ușurința dezvoltării funcționalității sistemului.
Vezi și