Cinci principii ale managementului ciclului de viață al aplicațiilor. Conceptul de metodologie de management al ciclului de viață al aplicației - ALM (Application Lifecycle Management)

Control ciclu de viață aplicatii ( Ciclul de viață al aplicației Management, ALM) se dezvoltă rapid. Aceasta este o abordare promițătoare pentru îmbunătățirea procesului de dezvoltare software. Cu toate acestea, procesul ALM „tradițional” nu este capabil să-și atingă întregul potențial de profit pentru organizație. De ce? Deoarece furnizorii împing în mod agresiv soluții ALM limitate end-to-end pe piață, care au scopul de a lega clienții de platforme tehnologice închise. Clienții constată în curând că aceste soluții nu se integrează cu procesele, instrumentele și platformele lor de dezvoltare existente. Din păcate, acest lucru lasă echipele de dezvoltare cu procese fragmentate și o mizerie de date ALM, ceea ce, la rândul său, le împiedică să realizeze pe deplin capacitățile ALM.

Este necesară o nouă abordare pentru a rezolva această problemă. O abordare care permite clienților să creeze software folosind un mediu de dezvoltare mixt. Cu soluțiile Borland Open ALM, organizațiile își pot folosi resursele și instrumentele de dezvoltare existente. Acest lucru va ajuta la obținerea transparenței, controlului și disciplinei pe tot parcursul ciclului de dezvoltare a software-ului. Clienții pot beneficia acum de o platformă ALM optimizată și de un proces de dezvoltare software unificat, gestionabil și măsurabil.

Dezvoltare software previzibilă: misiune imposibilă?

Dezvoltarea de software este în esență o activitate complexă. Crearea unui produs software cu caracteristici suficient de clar definite, realizat cu o calitate acceptabila, in limita bugetului alocat si la timp, necesita coordonarea constanta a unui numar mare de actiuni intre numerosi specialisti.

Complexitatea gestionării și urmăririi proiectelor software crește atunci când organizațiile decid să utilizeze modele de dezvoltare distribuite (de exemplu, programare offshore sau utilizarea de angajați temporari și subcontractanți). Ca urmare, eșecurile sau rezilierile proiectelor devin omniprezente. Suprabugetarea, programele ratate, calitatea slabă și fiabilitatea slabă au devenit norma în industria software. În consecință, din ce în ce mai multe abordări inteligente sunt cerute de la organizațiile implicate în dezvoltarea de software. Ei trebuie să adopte abordări bine gestionate, structurate și orientate spre proces, care urmează pașii disciplinelor de inginerie mai tradiționale. 1

Odată cu standardizarea tot mai mare și utilizarea platformelor de dezvoltare a întreprinderilor, provocările cu care se confruntă industria au devenit mai puțin tehnice. Capacitatea de a genera profituri stabile și previzibile din dezvoltarea de software a devenit o prioritate semnificativă pentru mulți profesioniști din domeniu tehnologia Informatiei(ACEASTA). Ei trebuie să aibă încredere că echipele lor vor fi eficiente în crearea de software. Având în vedere aceste considerente, Borland a dezvoltat platforme pentru ALM. Acestea sunt concepute pentru a rezolva problema stabilității și predictibilității procesului de dezvoltare software.

1 Tendințele cheie ale industriei, cum ar fi adoptarea accelerată a cadrului de îmbunătățire a proceselor CMM / CMMI și utilizarea sporită a modelelor de dezvoltare terță parte sunt strâns legate de această transformare aparentă a industriei software.

Apariția ALM

Pe măsură ce industria instrumentelor de dezvoltare a aplicațiilor răspunde nevoii de dezvoltare software previzibilă, și-a concentrat eforturile pe mai mult decât instrumente pentru dezvoltatorul individual. Producătorii și-au extins ofertele și au integrat atât capabilitățile existente, cât și cele noi în produsele lor. Soluțiile lor îndeplinesc acum sarcini asociate cu alte roluri în procesul de dezvoltare a software-ului. Aceste pachete de produse, adesea comercializate și comercializate ca platforme de dezvoltare colaborativă, au introdus tehnologia Application Lifecycle Management (ALM). A devenit o categorie nouă pe piață și o disciplină separată în dezvoltarea de software. Platformele ALM sunt concepute special pentru a răspunde provocărilor de creștere a predictibilității și integrității în procesul de dezvoltare a software-ului. Aceștia abordează aceste provocări oferind integrare și automatizare pentru fiecare rol major care participă la proces și automatizarea unui număr de funcții.

Măsurabilitate

Capacitatea de a defini sisteme de măsuri pentru a evalua calitatea, productivitatea, progresul și riscul.

Analizați aceste valori și generați rapoarte pe măsură ce proiectul progresează.

Armonizare

Alinierea specializării afacerii și a priorităților IT.

Alinierea rezultatelor proiectului cu așteptările utilizatorilor finali.

Disciplina

Consecvența definirii, implementării și urmăririi cu procesele software.

Creșterea severității procesului de schimbări în management și previziunea consecințelor acestora.

Aceste capabilități le permit liderilor IT să echilibreze și să prioritizeze portofoliile lor de proiecte software. Ei pot atinge un nivel mai înalt de management al echipelor lor și mult mai multă transparență în implementarea proiectelor. Cu ALM, directorii pot obține, de asemenea, mult mai mult control asupra procesului de dezvoltare software. Acest lucru oferă oportunități mai bune pentru guvernanța corporativă și ajută organizația să demonstreze conformitatea cu diverse reguli și reglementări.

Industria ALM

Inițial, unul dintre puținii inovatori care a înțeles importanța tendinței ALM și și-a schimbat strategiile de lansare a produselor spre sprijin explicit pentru aceasta a fost Borlandși IBM Rational... Răspunzând unor oportunități evidente, alte companii s-au alăturat conceptului ALM câștigător: Microsoft, IBM Rational / Telelogic, Mercury și Serena. ALM astăzi este o tendință stabilită și o industrie în creștere recunoscută de analiști. Furnizorii ALM oferă o varietate de instrumente și tehnologii pentru a sprijini procesul de dezvoltare a software-ului. Aceste instrumente depășesc cu mult instrumentele tradiționale de productivitate ale dezvoltatorului individual. Acestea au ca scop furnizarea de metodologii și instrumente axate pe munca în echipă pentru a crea software. Pentru a crea o soluție ALM viabilă, furnizorii trebuie să răspundă nevoilor grupului de dezvoltare software „extins” și să includă roluri în produsele lor care sunt implicate în procesul mai larg.

Barele de instrumente la nivel de portofoliu sunt furnizate pentru nevoile managerilor, acoperind metrici importante proiect: risc, progres și calitate.

Pentru nevoile managerilor de proiect sunt oferite instrumente pentru planificarea si controlul proiectului, analizarea alternativelor posibile si alocarea resurselor.

Pentru nevoile analiștilor, sunt furnizate instrumente pentru definirea cerințelor, interacțiunea cu utilizatorii finali și alte părți interesate ale proiectului. Acest nivel oferă, de asemenea, instrumente pentru gestionarea cerințelor de-a lungul ciclului de viață al proiectului, inclusiv modificările ulterioare.

Pentru nevoile arhitecților, există instrumente pentru modelarea vizuală a diferitelor aspecte ale aplicației (componente, date, proces), precum și instrumente pentru descrierea modelelor de design și arhitecturii corporative.

Pentru nevoile dezvoltatorilor sunt furnizate diverse medii de programare și instrumente de asigurare a calității la nivel de cod (de exemplu, profilere de rulare, testare unitară și auditare automată a codului).

Pentru nevoile inginerilor de calitate, sunt furnizate instrumente pentru crearea și gestionarea testelor, pentru regresie și testare funcțională, precum și instrumente pentru testarea automată a performanței.

O infrastructură colectivă servește la rezolvarea problemelor comune ale întregului grup. Oferă instrumente pentru colaborare, managementul proceselor, managementul schimbărilor și controlul versiunilor.

Pentru nevoile managerilor procesului de dezvoltare software, există instrumente pentru modelarea și aplicarea unui set de standarde tehnologice corporative.

Pentru nevoile utilizatorilor finali și ale altor părți interesate din organizație, sunt furnizate instrumente pentru automatizarea managementului cerințelor. De asemenea, li se oferă oportunități de a face schimb de informații despre cerințe, de a raporta defectele observate și de a urmări starea întrebărilor adresate.

Tehnologia ALM este recunoscută pe scară largă ca un pas major înainte în dezvoltarea industriei de dezvoltare a aplicațiilor și a clienților săi. Interesant este că cel mai recent „Raport Chaos” de la Standish Group arată că numărul proiectelor software eșuate a scăzut la jumătate în ultimul deceniu. Această îmbunătățire poate fi atribuită parțial și ALM. Cu toate acestea, un studiu mai profund al nevoilor clienților arată că, în ciuda avantaje evidente ALM, întregul potențial al acestei tehnologii este încă greu de realizat. Pentru a face acest lucru, trebuie să schimbați abordarea fundamentală care este utilizată pentru a integra procesele și instrumentele implicate în ciclul de viață al software-ului.

Potențialul de afaceri al ALM este în mare parte nerealizat

Pentru a înțelege mai bine de ce soluțiile actuale fac dificilă dezlănțuirea completă a valorii de afaceri a ALM, să aruncăm o privire mai atentă la mediile de operare și de dezvoltare software tipice. Vom examina modul în care software-ul este produs și implementat în ceea ce privește procesele, instrumentele de dezvoltare și platformele de lucru. În cele din urmă, această discuție explică de ce producția de software rămâne unul dintre ultimele procese de afaceri care eșuează - darămite automatizarea - în mod constant și previzibil.

Mediul IT corporativ: provocarea eterogenității

Creșterea Internetului și proliferarea sa ca platformă principală pentru comerț a adus schimbări semnificative în organizațiile IT convenționale. Acest lucru a fost facilitat și de cei forțați loc de munca permanentîntr-un mediu de deficit de resurse și exigențe ridicate de flexibilitate. Problema acestor schimbări are de-a face cu evoluția arhitecturală. Acesta își propune să îmbunătățească capacitatea de răspuns IT și nivelurile de servicii și eficiența prin trecerea de la tehnologiile moștenite la noi platforme de aplicații moderne. Acestea sunt domeniile cheie ale acestei evoluții.

Migrați de la aplicații specializate mainframe monolitice la noi instrumente de dezvoltare pentru platforme distribuite pentru întreprinderi, și anume J2EE și .NET.

Migrați de la aplicații de întreprindere împachetate, construite pe arhitecturi vechi, pentru a procesa și a combina aplicații de rulare, cum ar fi SAP NetWeaver și Oracle Fusion.

Utilizarea platformelor specializate pentru nevoi specifice. Acestea sunt, de exemplu, limbaje de scripting pentru aplicații web care utilizează baze de date (PHP, Ruby etc.) sau platforme pentru dezvoltarea de aplicații cu o varietate de funcții Internet și multimedia (de exemplu, Adobe® Flash® / Flex ™).

Fiecare dintre aceste tehnologii este asociată cu instrumente specifice de dezvoltare a aplicațiilor (deseori oferite de diferiți furnizori). Aceste instrumente acoperă analiza, proiectarea, codificarea, controlul calității, controlul versiunilor și gestionarea configurației.

Este rezonabil să presupunem, în special pentru corporațiile mijlocii și mari, că, în viitorul apropiat, fiecare mediu IT al întreprinderii va include cel puțin trei dintre platformele enumerate pentru implementare: mainframe, mediu distribuit (J2EE sau .NET) și sistem de automatizare a afacerilor. -procese (SAP sau Oracle). De asemenea, se pare (și devine din ce în ce mai evident) că unele organizații implementează software atât pe platformele J2EE, cât și pe platformele .NET. 2

Programe conflictuale

Este interesant de observat că, din motive evidente, unii furnizori de IT încearcă să influențeze natura eterogenă a mediului IT al întreprinderii pe cât posibil. Acești furnizori caută să „preia” pe deplin organizarea mediului IT prin împingerea pe piață a soluțiilor complete „pe viață”. Acestea conțin instrumente de dezvoltare software, un mediu de aplicații și instrumente pentru gestionarea rețelelor și sistemelor. Producătorii majori includ și un sistem de operare sau chiar hardware în soluțiile lor. Este de la sine înțeles că astfel de soluții implică și o componentă semnificativă servicii profesionale.

În ciuda acestei eforturi masive pentru soluții atotcuprinzătoare dintr-o singură sursă, realitatea este că pentru mulți clienți, această abordare pur și simplu nu funcționează. Astfel de organizații cresc eterogenitatea la toate nivelurile. Prin urmare, au un set de priorități diferite care fac ca anumite obiective să fie importante pentru client (nu pentru furnizor).

Maximizarea competitivității. Organizațiile care încearcă să ofere cel mai bun produs sau serviciu aleg, de obicei, cea mai bună platformă și instrument de dezvoltare din perspectiva proiectului. Această abordare îi ajută să obțină beneficiile pe care fiecare platformă le oferă anumitor utilizatori finali. Acest lucru se întâmplă adesea în proiecte separate, dar se poate întâmpla și în același proiect. Acest lucru duce în cele din urmă la aplicații „hibride” care acoperă mai multe domenii tehnologice. Iată câteva exemple relevante.

o Aplicații sau servicii compozite, care includ mainframe, aplicații împachetate și aplicații distribuite dezvoltate de sine.

o Hibrizi J2EE / .NET care valorifică capabilitățile clientului și interfața cu utilizatorul a .NET. Pe partea de server, acestea profită de scalabilitatea, gestionabilitatea și securitatea tehnologiei J2EE. Acest model arhitectural este deosebit de comun în verticala financiară. Este folosit pentru platforme de tranzacționare de înaltă performanță, deoarece Windows este standardul desktop de facto pe Wall Street.

o Hibrizi Flash / J2EE. Ele combină oportunitățile Adobe flash ca platformă pentru streaming video și aplicații Internet bogate cu beneficiile tehnologiei J2EE pentru servere. Acest lucru permite un grad ridicat de scalabilitate și o interfață multimedia bogată.

Costuri de dezvoltare reduse. Organizațiile încearcă să reducă costurile de dezvoltare și implementare a software-ului combinând atât instrumentele și programele cu sursă deschisă, cât și cele proprietare. În acest sens, merită menționat popularitatea tot mai mare a suitei LAMP (Linux, Apache, MySQL, PHP) și utilizarea tot mai mare a acesteia în organizații.

Reducerea timpului de comercializare a produselor. Organizațiile pot prefera anumite instrumente de dezvoltare din cauza beneficiilor specifice pe care le oferă. Acest lucru are potențialul de a reduce semnificativ timpul de comercializare a produselor.

Utilizarea eficientă a investițiilor deja realizate. Orice abordare „distruge și înlocuiește” se confruntă cu obstacole semnificative. Acest lucru se datorează faptului că majoritatea organizațiilor nu doresc să renunțe la investiții semnificative în programe și instrumente vechi.

Reducerea riscului. Mai mulți furnizori din industria IT oferă suport nativ personalizat pentru platformele lor. Acest lucru este văzut ca un risc în ochii clienților lor. Legarea unui anumit furnizor IT de o platformă poate duce la un risc semnificativ de afaceri, mai ales dacă acel furnizor este (sau va deveni) un concurent în viitor.

2 Tendințele cheie ale industriei, cum ar fi adoptarea accelerată a cadrului de îmbunătățire a proceselor CMM / CMMI și utilizarea sporită a modelelor de dezvoltare terță parte sunt strâns legate de această transformare aparentă a industriei software. Raportul de utilizare J2EE și .NET al IDC Insight de Steve McClure afirmă următoarele. 10,4% dintre utilizatorii actuali .NET se asteapta sa foloseasca J2EE / J2ME in urmatoarele 12 luni; 11,9% dintre utilizatorii J2EE/J2ME se așteaptă să fie implicați în dezvoltarea .NET în următoarele 12 luni.

Eterogeneitatea IT: cea mai mare provocare pentru ALM

Pe scurt, multe organizații din industria IT văd eterogenitatea ca singura alternativă, deoarece există multe beneficii de afaceri asociate cu aceasta. Foarte des, echipele de dezvoltare folosesc o varietate de instrumente care nu sunt menite să lucreze împreună. Nu există un singur furnizor care să furnizeze instrumentele pentru toate acțiunile necesare în contextul unui singur proiect software. Mai mult, nu există un singur furnizor care să poată acoperi pe deplin cele trei domenii principale: suport și modernizare a sistemului moștenit, extinderea și personalizarea aplicațiilor pachetate și dezvoltarea de noi aplicații distribuite. Prin urmare, este foarte probabil ca organizațiile să continue să folosească instrumente de dezvoltare disparate în cadrul aceluiași proiect și în diferite domenii tehnologice. Din acest motiv, cea mai mare provocare în implementarea ALM este eterogenitatea instrumentelor de dezvoltare. Ca o reamintire, ALM se străduiește să obțină predictibilitate și integritate în procesul de fabricație a software-ului prin măsurabilitate, aliniere și disciplină automate. Cu toate acestea, într-un mediu foarte eterogen, aceste calități ale procesului de fabricație a software-ului sunt mult mai dificil de atins.

Deoarece măsurabilitatea necesită colectarea de informații despre metrice din diverse instrumente de dezvoltare a aplicațiilor și depozite, nu există un standard acceptat universal pentru o astfel de colectare de date. Întrucât nu există o schemă de informare comună pentru toate instrumentele implicate în proces, devine și necesar să „normalizăm” metricile colectate și să le comparăm cumva în contextul anumitor proiecte.

Alinierea necesită urmărirea acțiunilor și a rezultatelor pe tot parcursul procesului, de la strategiile IT până la modulele implementate. Acest grad de control este foarte dificil de atins atunci când resursele și activitățile de proces sunt împrăștiate în instrumente și depozite disparate. Nu există instrumente standard care identifică, colectează, gestionează și utilizează automat informațiile de audit.

Disciplina necesită implementarea, acceptarea și controlul diferitelor procese generale pentru a gestiona producția de software. Acest lucru devine mult mai complex atunci când subprocesele curg ca „insule de proces” între o varietate de instrumente de proces. Nu există un mecanism standard pentru asigurarea coregrafiei unor astfel de sub-procese (în conformitate cu procesul de nivel superior) sau pentru implementarea componentelor de proces pentru aceste instrumente. De asemenea, nu există o terminologie unică pentru descrierea proceselor într-un mediu de instrumente disparate. Toți folosesc propriile limbi pentru „articole”, „artefacte”, „proiecte” și așa mai departe. Un alt aspect al disciplinei necesită schimbări semnificative în management și analiza impactului. Aceste capabilități, totuși, necesită implementarea adecvată a controlului operațional de la capăt la capăt. După cum sa discutat mai devreme, controlul de la capăt la capăt este mult mai dificil de realizat într-un mediu de dezvoltare eterogen.

Pentru a aborda aceste provocări, organizațiile care practică ALM deseori încetează să dezvolte numeroasele integrări punct-la-punct specializate, care completează de obicei golurile tehnologice dintre diferitele instrumente de dezvoltare utilizate. Astfel de integrări sunt nesigure. Acestea se sparg la modernizarea sau schimbarea instrumentelor și sunt costisitoare de construit și întreținut. În plus, ele duc la apariția unor procese software care nu pot fi ușor măsurate și controlate și care sunt incomod de gestionat. Evident, această abordare este inacceptabilă și neprofitabilă.

Prin urmare, majoritatea organizațiilor IT prezintă provocări majore pentru furnizorii de ALM. Aceste organizații ar dori să obțină mai multă valoare de la ALM, și anume îmbunătățiri semnificative în procesul de producție de software care să le ofere stabilitatea și predictibilitatea de care au nevoie. Cu toate acestea, clienții ALM își doresc mai mult decât atât.

Capacitatea de a utiliza un amestec de platforme de lucru în cel mai optim mod în ceea ce privește obiectivele lor de afaceri.

Utilizarea gratuită a unei varietăți de instrumente de dezvoltare de aplicații comerciale și open source optimizate pentru obiectivele de implementare dorite.

Utilizarea gratuită a unei varietăți de procese de dezvoltare software comerciale sau specializate care sunt optimizate pentru cultura, tipurile de proiecte și tehnologia de bază a organizației.


Este necesară o nouă abordare a ALM pentru a îndeplini acest set complex de cerințe. O abordare care permite clienților să valorifice pe deplin puterea ALM într-un mediu IT eterogen. Borland și-a anunțat recent abordarea și strategia de produs numită Open ALM. Această abordare abordează direct această provocare. aceasta singura decizie ALM, care este proiectat de la zero pentru a permite organizațiilor IT să livreze software în mod previzibil în timpul propriu.

Depășirea eterogenității: ultima frontieră a ALM

Abordarea Open ALM implementează viziunea și strategia de produs stabilite de Borland. Această abordare reprezintă o schimbare arhitecturală semnificativă unică pentru piața comercială ALM. De fapt, dacă sunt implementate complet, platforma Borland Open ALM și aplicațiile asociate ar putea oferi beneficii semnificative chiar și clienților care nu folosesc deloc instrumente de dezvoltare a aplicațiilor Borland. Borland își consideră, fără îndoială, afacerea cu scule ca fiind vitală. Compania va continua să le dezvolte și să ofere cele mai bune instrumente din clasă pentru o echipă extinsă de dezvoltare de software. Instrumentele Borland vor evolua treptat pentru a sprijini strategia Open ALM. Acest lucru le-ar permite să participe la orchestrarea producției de software bazate pe Open ALM.Cu toate acestea, instrumentele Borland ar putea fi înlocuite, dacă clienții înțeleg rostul, cu orice produs care să le susțină cerințele de dezvoltare. Poate fi fie un produs terță parte, fie open source. Acest nivel de modularitate și flexibilitate diferențiază strategia de produs Borland de alți furnizori ALM, mulți dintre care încearcă să preia întregul lanț de aprovizionare cu software.

Beneficiile Open ALM

Open ALM oferă funcționalitatea ALM, oferind în același timp un grad de flexibilitate de neegalat la nivel de proces, instrument și platformă. Mai exact, utilizatorii Open ALM beneficiază de următoarele caracteristici.

Libertatea de a alege orice combinație de platforme și medii de lucru în contextul unui proiect software sau pentru mai multe proiecte diferite simultan. În acest caz, alegerea se face în funcție de prioritățile de afaceri sau de adecvarea pentru proiect.

Libertatea de a alege cele mai bune instrumente de dezvoltare pentru platformele alese pe baza unor considerente economice, productivitate crescută și adecvare tehnică.

Libertatea de a alege sau proiecta procesele de dezvoltare care se potrivesc cel mai bine proiectelor și platformelor alese și, de asemenea, se potrivesc

cultura organizațională și cerințele de time-to-market.

Pentru prima dată, Open ALM și instrumentele sale de asistență vor oferi organizațiilor IT care implementează medii eterogene de dezvoltare a aplicațiilor cu următoarele capabilități.

O vizualizare excelentă multidimensională și personalizabilă a progresului, calității și măsurătorilor de risc ale proiectelor și portofoliilor pentru a sprijini managementul proiectelor și inițiativele de îmbunătățire a proceselor.

„Sfântul Graal”: plin control operationalși urmărirea ciclului de viață. Acest lucru va permite alinierea reală a obiectivelor și activităților de afaceri pe tot parcursul procesului de dezvoltare, va oferi o legătură mai bună între așteptările utilizatorilor finali și rezultatele proiectului și va oferi oportunități mai bune pentru managementul proiectelor printr-o analiză de impact precisă și cuprinzătoare.

Un nou nivel de management al procesului de dezvoltare software cu ajutorul coordonării automate a acțiunilor specialiștilor și instrumentelor implicate în ciclul de viață, pe baza proceselor.


Aceste capabilități oferă o eficiență excelentă a echipei, sprijină inițiativele de îmbunătățire a calității și ușurează sarcina conformării cu reglementările interne și externe. Acestea vor fi livrate ca un set de componente de infrastructură și instrumente de management ALM corporative. În plus, clienții pot folosi și cele mai bune instrumente integrate de la Borland pentru dezvoltarea de aplicații și managementul proiectelor. Acest lucru le va permite să câștige valoare în patru domenii principale de proces.

Managementul portofoliului de proiecte (PPM). Fonduri și procese automatizate să gestioneze dezvoltarea întregii strategii de dezvoltare software, precum și să gestioneze execuția unui portofoliu de proiecte de dezvoltare software.

Definirea și managementul cerințelor (RDM). Un set de instrumente și bune practici care asigură că cerințele proiectului sunt exacte și complete, pot fi urmărite eficient până la obiectivele de afaceri și sunt acoperite în mod optim de testele software.

Managementul calității ciclului de viață (LQM). Procedura și instrumentele de gestionare a definiției și măsurării calității în toate etapele dezvoltării software. Aceste instrumente sunt concepute pentru a detecta și a preveni problemele de calitate la începutul unui proiect, atunci când costul remedierii lor este relativ scăzut. De asemenea, echipele de control al calității trebuie să se asigure că testele lor sunt complete și se bazează pe cerințele utilizatorului final.

Managementul schimbării (CM). Infrastructură și instrumente pentru a ajuta la prezicerea impactului schimbării. De asemenea, ajută la gestionarea resurselor și a activităților de schimbare a ciclului de viață atât în ​​modelele cu mai multe noduri, cât și în modelele cu un singur nod.

Soluția Borland Open ALM

După cum sa menționat mai devreme, obiectivul principal al ALM este de a realiza un proces de dezvoltare software previzibil și gestionabil prin măsurabilitate, aliniere și disciplină automate. Am văzut că fiecare dintre cele trei dimensiuni ale ALM într-un mediu de dezvoltare de aplicații eterogen devine mult mai dificil de implementat și, prin urmare, prezintă o serie de provocări specifice pentru utilizatorii ALM. Arhitectura platformei Borland Open ALM este un set de trei zone de soluții, fiecare special concepută pentru a răspunde provocărilor unuia dintre domeniile majore ALM. Fiecare zonă a soluției Open ALM se bazează pe un strat de infrastructură extrem de modular și extensibil și este un set de aplicații specializate. Scopul stratului de infrastructură este de a permite platformei Open ALM să funcționeze cu orice combinație de instrumente și procese de dezvoltare comerciale sau open source, indiferent de furnizor sau de tehnologia mediului așteptat. Diagrama de pe pagina următoare prezintă o diagramă conceptuală a soluției Borland ALM.


Arhitectura soluției Borland Open ALM


Deschide Business Intelligence pentru ALM

Open Business Intelligence pentru ALM (OBI4ALM) se bazează pe infrastructură și aplicații standard pentru a crește măsurabilitatea progresului, a îmbunătăți calitatea muncii sau orice altă măsură specială a proiectelor software într-un mediu de dezvoltare de aplicații eterogen. OBI4ALM furnizează infrastructura pentru colectarea discretă de date distribuite și maparea și analiza metricilor din orice instrument de dezvoltare a aplicațiilor care este înregistrat pentru a face acest lucru. Prin extragerea unor valori predefinite din sursele de date, cadrul OBI4ALM reunește informații disparate împrăștiate de-a lungul ciclului de dezvoltare a software-ului. Această consolidare oferă mari oportunități. De exemplu, puteți crea o vizualizare agregată a valorilor proiectului și puteți defini noi valori de proiect care combină mai multe valori de nivel inferior. Infrastructura OBI4ALM utilizează un depozit de date. Acest depozit conține informații actuale și istorice colectate de la acele instrumente care sunt implicate în diferite etape ale procesului de dezvoltare a software-ului. Utilizează o structură care este optimizată pentru interogarea și analiza datelor. Aplicațiile OBI4ALM pot transforma valorile colectate în informații utile pentru luarea deciziilor pe baza acestora. Aceasta oferă suport pentru luarea deciziilor și notificarea timpurie a problemelor.

Barele de instrumente de date în timp real sunt vizualizări KPI personalizabile care arată tendințele de-a lungul timpului.

Alertele bazate pe valori sunt alerte personalizate care sunt declanșate atunci când apar anumite condiții (de exemplu, când o tendință depășește o anumită limită). Alertele ajută la îmbunătățirea flexibilității managementului pentru o varietate de probleme ale proiectului: progres lent, calitate slabă, performanță scăzută sau orice altă problemă care poate fi cuantificată folosind valori.

Instrumente de luare a deciziilor - Instrumente analitice care utilizează informații istorice despre un proiect (sau mai multe proiecte) pentru a vă ajuta să luați decizii cu privire la managementul proiectelor.

Deschideți controlul procesului pentru ALM

În ultimă analiză, procesul devine el însuși concept important, care pătrunde în întregul ciclu de viață al software-ului. Un proces înseamnă mai mult decât împărtășirea structurilor de informații cu instrumente care sunt utilizate de diferite roluri sau furnizarea de integrare a capabilităților la nivel de interfață cu utilizatorul. Procesul are un potențial real de coordonare a acțiunilor oamenilor și sistemelor care sunt implicate în procesul de creare a software-ului. În același timp, procesul asigură conformitatea cu politicile stabilite și controlul calității implementării.

Open Process Management for ALM (OPM4ALM) oferă componente de infrastructură și un set de aplicații care sunt utilizate pentru a modela, implementa și implementa diferite procese software într-un mediu de dezvoltare de aplicații eterogen. OPM4ALM merge mult mai departe decât furnizarea de conducere și atribuirea de sarcini părților interesate. Această metodă folosește, de asemenea, un strat de automatizare a procesului care servește ca lipici principal pentru integrarea clientului, serverului și metodologiei conform regulilor capturate în modelele de proces. Din acest punct de vedere, integrarea între instrumentele de dezvoltare a aplicațiilor este asigurată de fapt de procese de nivel inferior. Aceasta devine baza fundamentală pentru munca eficienta colectiv.

Infrastructura OPM4ALM este construită pe un nucleu distribuit de procese. Oferă modelarea, personalizarea, implementarea, orchestrarea și coregrafia mai multor procese de dezvoltare software într-un mediu de dezvoltare eterogen. O parte importantă a infrastructurii OPM4ALM este gestionarea și definirea evenimentelor de proces. Instrumentele Open ALM se pot abona și asculta aceste evenimente și pot fi notificate când apar. Process Engine oferă, de asemenea, definirea și evaluarea flexibilă a regulilor. Ajută la descrierea și aplicarea politicilor de dezvoltare a aplicațiilor.


Aplicațiile OPM4ALM oferă valoare de la nivelul infrastructurii de proces. Ele oferă următoarele capacități.

Instrumente pentru procese de modelare, tuning, potrivire și reutilizare. Acestea permit proiectarea eficientă a proceselor software comerciale sau personalizate folosind un model de dezvoltare software bogat în funcții.

Enterprise Process Console care oferă o vedere panoramică consolidată. Această vizualizare conține toate procesele software care sunt implementate în diferite proiecte cu participarea instrumentelor de dezvoltare disparate.

Tabloul de bord pentru evaluarea conformității procesului. Arata abaterile proceselor si a acestora consecințe potențialeși oferă, de asemenea, capabilități de raportare utile pentru implementarea inițiativelor de conformitate.

Măsurare și raportare pe baza unor metrici specifice pentru fiecare proces.

Deschideți controlul pentru ALM

Controlul proceselor de la capăt la capăt sprijină multe dintre beneficiile importante ale ALM. Unele dintre ele sunt: ​​Este un instrument esențial pentru implementarea dezvoltării bazate pe cerințe de afaceri, dezvoltarea și testarea bazate pe cerințe și analiza precisă a impactului schimbărilor. Open Traceability for ALM (OT4ALM) oferă infrastructura pentru crearea și clasificarea legăturilor între resursele create în timpul dezvoltării software. De asemenea, creat program flexibil link-uri de resurse conexe. Nu contează în ce instrumente se află aceste resurse. Această tehnologie oferă, de asemenea, un mijloc de a naviga în diagrama relațiilor dintre resurse, precum și de a crea interogări optime și de a extrage datele pe care le conține această diagramă.

OT4ALM oferă aplicații care transformă datele de control colectate în informații pentru luarea deciziilor.

Planificare automată, analiza impactului schimbărilor, costuri precise și previziuni bugetare.

Controlul limitelor - avertizare timpurie a abaterilor de la limitele definite (de exemplu, resurse care nu îndeplinesc cerințele) și a cerințelor neîndeplinite.

Analizor de reutilizare - Vă permite să reutilizați întregi arbori de resurse (de la cerințe și modele la cod și teste) în loc să reutilizați pur și simplu modulele de cod.

TraceView - Vizualizatori interactiv de urmărire pentru diverse proiecte. Acest lucru vă ajută să găsiți toate resursele proceselor și să le comparați cu alte resurse.

Infrastructură platformă comună

Infrastructura Open ALM conține două componente care sunt utilizate în toate zonele soluției.

Metamodelul ALM. Un limbaj comun pentru descrierea proceselor software, a relațiilor dintre resursele procesului (controlabilitate) și unități de măsură (metrice). Metamodelul ALM oferă un model conceptual bogat în caracteristici pentru domeniul dezvoltării software. Acesta este pentru a descrie un vocabular standard pe care trebuie să-l înțeleagă toate instrumentele compatibile cu Open ALM. Această înțelegere va asigura o comunicare eficientă în cadrul platformei Open ALM.

Stratul de integrare ALM. Motor de integrare extensibil și încorporabil și SDK. Acesta definește modul standard de funcționare a instrumentelor ALM, colectează valori ALM și creează diagrame pentru monitorizarea resurselor. Pentru a sprijini și a participa la platforma ALM, instrumentul trebuie să furnizeze un plugin de platformă care să satisfacă standardul Open ALM API. De asemenea, puteți utiliza un adaptor personalizat care conectează instrumentul la restul mediilor de dezvoltare a aplicațiilor prin procese care sunt orchestrate de platforma Open ALM.


Drumul spre Open ALM

În următoarele 24 de luni, Borland va continua să extindă infrastructura, aplicațiile și instrumentele care compun platforma Open ALM. Borland intenționează, de asemenea, să completeze acest produs cu o gamă largă de programe de servicii profesionale menite să accelereze implementarea și să asigure succesul implementărilor pentru întreprinderi ale Open ALM. Clienții pot profita astăzi de unele dintre beneficiile Open ALM. Organizațiile care doresc să îmbunătățească calitatea și să-și îmbunătățească schimbarea și managementul proiectelor vor găsi soluția actuală Borland foarte atractivă. Această soluție oferă suport foarte automatizat și integrat pentru patru domenii importante ale proceselor de dezvoltare a aplicațiilor:

Managementul portofoliului de proiecte (PPM);

Definirea și managementul cerințelor (RDM);

Managementul ciclului de viață al aplicației (LQM);

Managementul schimbării (CM).

Aceste soluții sunt furnizate printr-o integrare strânsă între produsele Borland și instrumentele terțelor părți. Acest lucru oferă clienților flexibilitatea de care au nevoie și le crește semnificativ capacitățile de gestionare a proiectelor software în prezent.

De ce Borland?

De-a lungul istoriei sale lungi, Borland a lucrat constant cu clienții săi pentru a se asigura că aceștia creează software în cel mai convenabil mod. Borland se angajează în dezvoltarea bazată pe standarde și sprijinul pe mai multe platforme. Ea a oferit organizațiilor IT flexibilitatea și libertatea de alegere de care au nevoie. Odată cu introducerea Open ALM, Borland își duce valorile tradiționale la un nivel cu totul nou. Acest lucru diferențiază în mod clar compania de alți furnizori ALM și inițiative ALM non-profit.

Pentru cei mai mari furnizori ALM, IBM Rational și Microsoft, serviciul pentru clienți nu este prioritatea lor principală. Ambele companii încearcă în mod continuu să-și folosească instrumentele de dezvoltare pentru a lega clienții de platformele lor middleware și de gestionare a sistemelor.

Spre deosebire de această abordare, Borland a insistat întotdeauna să susțină standardele Java și J2EE și a oferit suport puternic și integrat pentru platformă, limbi și instrumente de dezvoltare. Microsoft... Borland continuă să extindă în mod explicit soluția ALM de la Microsoft. Borland a investit enorm în susținerea celor mai recente tehnologii Microsoft. De exemplu, CaliberRM, prima soluție complet integrată de management al cerințelor pentru Team System, este recomandat de Microsoft pentru a extinde funcționalitatea de bază de management al cerințelor oferită de instrument VSTS. Borland va continua să se extindă munca în comun Platforme Java și .NET. Sunt planificate capabilități suplimentare, cum ar fi generarea de cod UML-to-C # și suportul pentru limbaje specifice domeniului Microsoft (alternativa Microsoft la înlocuirea UML).


Trecerea către sursa deschisă este, de asemenea, asociată cu provocările pe care le reprezintă eterogenitatea pentru ALM. Scopul mai multor inițiative Eclipse (Application Lifecycle Framework (ALF), Corona și Eclipse Process Framework (EPF)) este similar cu cel al Borland Open ALM. În timp ce Borland înțelege motivațiile din spatele acestor proiecte, compania consideră că abordarea lor este insuficientă. Atât ALF, cât și Corona încearcă să ofere numai componente de infrastructură Open ALM. Cu toate acestea, Open ALM este o abordare mai holistică. Această abordare le permite, de asemenea, clienților să obțină valoare de afaceri din infrastructurile disponibile, printr-o suită de aplicații complementare. Borland merge mai departe decât alți furnizori ALM în trecerea sa către Open ALM. Compania și-a extins recent orizonturile și își propune să atingă domenii suplimentare de dezvoltare a aplicațiilor. Borland caută, de asemenea, cea mai bună abordare pentru a susține proiecte de dezvoltare de aplicații pachetate pe platformele SAP NetWeaver și Oracle Fusion.

Concluzie

Borland este unic în a ajuta utilizatorii ALM să creeze software în propriile lor proprii termeni... Abordarea Open ALM și strategia de produs îl deosebesc în mod clar pe Borland de alți furnizori ALM și inițiative open source. Borland este singurul furnizor important de ALM care recunoaște pe deplin realitatea eterogenității IT. Compania încearcă să ajute utilizatorii ALM să folosească instrumentele existente în procesele, mediile și instrumentele lor de dezvoltare. Abordarea Borland cu privire la integrarea bazată pe proces separă și mai mult compania de concurenți. Acest lucru permite Borland să ofere transparență, control și ordine în întreaga strategie ALM.

Borland începe să construiască infrastructură, aplicații și instrumente de dezvoltare aferente pentru Open ALM. Prin urmare, pentru prima dată, clienții vor putea utiliza pe deplin capacitățile ALM. Ei vor putea profita de un proces de dezvoltare software complet coeziv, gestionabil și măsurabil.

Analizând evoluția pieței instrumentelor de dezvoltare în ultimii 10-15 ani, se remarcă o tendință generală de schimbare a accentului față de tehnologiile de scriere efectivă a programelor (care, de la începutul anilor 90, au fost marcate de apariția Instrumente RAD - „dezvoltare rapidă a aplicațiilor”) la necesitatea unui sistem integrat gestionarea întregului ciclu de viață al aplicațiilor - ALM (Application Lifecycle Management) .

Pe măsură ce complexitatea proiectelor software crește, cerințele pentru eficiența implementării acestora cresc brusc. Acest lucru este cu atât mai important astăzi, când dezvoltatorii de software sunt implicați în aproape toate aspectele muncii întreprinderilor și numărul acestor specialiști este în creștere. În același timp, datele cercetării în acest domeniu sugerează că rezultatele a cel puțin jumătate din proiectele de dezvoltare „internă”. instrumente software nu se ridica la nivelul sperantelor puse asupra lor. În aceste condiții, sarcina de optimizare a întregului proces de creare a software-ului devine deosebit de urgentă, acoperind toți participanții săi - designeri, dezvoltatori, testeri, servicii de asistență și manageri. Managementul ciclului de viață al aplicației (ALM) vede procesul de lansare a software-ului ca un ciclu care se repetă mereu de etape interdependente:

· Definirea cerintelor (Cerinte);

· Design si analiza (Design & Analysis);

· Dezvoltare (Dezvoltare);

· Testare (Testing);

· Implementare și întreținere (Deployment & Operations).

Fiecare dintre aceste etape trebuie atent monitorizată și monitorizată. Un sistem ALM organizat corespunzător vă permite să:

· Reduceți timpul de lansare a produselor pe piață (dezvoltatorii nu trebuie decât să se îngrijoreze de conformitatea programelor lor cu cerințele formulate);

· Îmbunătățiți calitatea, asigurându-vă în același timp că aplicația răspunde nevoilor și așteptărilor utilizatorilor;

· Creșterea productivității muncii (dezvoltatorii au posibilitatea de a împărtăși cele mai bune practici în dezvoltare și implementare);

· Accelerează dezvoltarea prin integrarea instrumentelor;

· Reduceți costurile de întreținere prin menținerea constantă a coerenței între aplicație și documentația de proiectare a acesteia;



· Profitați la maximum de investiția dvs. în competențe, procese și tehnologie.

Strict vorbind, însuși conceptul de ALM, desigur, nu este ceva fundamental nou - o astfel de înțelegere a problemelor dezvoltării software a apărut acum patruzeci de ani, în zorii formării metodelor de dezvoltare industrială. Cu toate acestea, până relativ recent, principalele eforturi de automatizare a sarcinilor de dezvoltare software au vizat crearea de instrumente direct pentru programare, ca etapa cea mai consumatoare de timp. Și abia în anii 80, din cauza complicațiilor proiectelor software, situația a început să se schimbe semnificativ. În același timp, a crescut considerabil relevanța extinderii funcționalității instrumentelor de dezvoltare (în sensul larg al acestui termen) în două domenii principale: 1) automatizarea tuturor celorlalte etape ale ciclului de viață al software-ului și 2) integrarea instrumentelor cu fiecare.

Multe companii au fost angajate în aceste sarcini, dar lider incontestabil aici a fost compania Rational, care de mai bine de douăzeci de ani, de la înființare, s-a specializat în automatizarea proceselor de dezvoltare. produse software... La un moment dat, ea a devenit unul dintre pionierii utilizării pe scară largă tehnici vizuale designul software (și practic autorul UML, care este acceptat de facto ca standard în acest domeniu), a creat o metodologie generală ALM și un set corespunzător de instrumente. Putem spune că până la începutul acestui secol, Rational era singura companie care avea în arsenalul său întreaga gamă de produse pentru a susține ALM (de la proiectarea afacerii până la întreținere), cu excepția, totuși, a unei clase de instrumente - instrumentele convenționale de codare. Cu toate acestea, în februarie 2003, a încetat să mai existe ca organizație independentă și a devenit o divizie a corporației IBM, numită IBM Rational.

Mai recent, Rational a fost practic singurul producător de instrumente complexe de dezvoltare pentru clasa ALM, deși au existat și sunt încă instrumente concurente de la alți furnizori pentru anumite etape de dezvoltare software. Totuși, în urmă cu câțiva ani, Borland Corporation și-a anunțat public intenția de a concura cu aceasta, care a avut întotdeauna o poziție puternică doar în domeniul instrumentelor tradiționale de dezvoltare a aplicațiilor (Delphi, JBuilder etc.), care stau de fapt la baza complexul ALM al corporației, a cărui extindere a trecut prin achiziția altor companii care produc produse similare. Aceasta este diferența fundamentală dintre modelele de afaceri ale celor două companii, ceea ce deschide potențiale oportunități de concurență reală. După ce Rational a devenit parte a IBM, Borland se poziționează ca singurul furnizor independent al unei platforme ALM integrate în prezent (adică nu își promovează propriile sisteme de operare, limbi etc.). La rândul lor, concurenții notează că Borland nu a formulat încă o metodologie ALM clară care să ofere o bază pentru combinarea instrumentelor sale existente.

Un alt jucător important în domeniul instrumentelor de dezvoltare este Microsoft. Până acum, ea nu își propune să-și creeze propria platformă ALM; promovarea la această direcție este doar în cadrul cooperării cu alți furnizori, același Rational și Borland (amândoi au devenit primii participanți la programul Visual Studio Industry Partner). În același timp, instrumentul de dezvoltare de bază al Microsoft, Visual Studio .NET, își extinde continuu funcționalitatea prin utilizarea unor instrumente de modelare și management de proiect la nivel înalt, inclusiv integrarea cu Microsoft Visio și Microsoft Project.

Trebuie remarcat faptul că astăzi aproape toate companiile de top - dezvoltatori de tehnologii și produse software (cu excepția celor enumerate mai sus, se poate numi Oracle, Computer Associates etc.) au dezvoltat tehnologii pentru crearea de software, care au fost create atât pe cont propriu, cât și prin achiziționarea de produse și tehnologii create de companii mici, specializate. Și deși, la fel ca Microsoft, nu intenționează să-și creeze încă propria platformă ALM, instrumentele CASE produse de aceste companii sunt utilizate pe scară largă în anumite etape ale ciclului de viață al software-ului.

Sistemele ALM vă permit să oferiți transparență, o înțelegere clară a procesului de dezvoltare a aplicațiilor și să îl prezentați ca unul dintre procesele de afaceri. Cu toate acestea, ALM nu ar trebui privit doar ca un instrument de monitorizare și impunere a conformității, avertizează analiștii. Aceste sisteme sunt concepute nu atât pentru control, cât pentru automatizarea procesului de dezvoltare și integrarea diverselor instrumente.

Cea mai mare provocare în implementarea instrumentelor ALM este că oamenii nu înțeleg procesul de dezvoltare. Adesea, conducerea crede că ALM poate fi folosit pentru a face lucrurile într-un mod bine definit. Cu toate acestea, este imposibil să planificați totul în avans. În dezvoltarea aplicației, de multe ori trebuie să treceți prin mai multe iterații la fiecare pas, să eliberați versiuni intermediare și să creșteți treptat funcționalitatea aplicației. Sistemul ALM nu ar trebui să restrângă acțiunile dezvoltatorilor, ci mai degrabă să faciliteze procesul.

Industria IT adoră să vorbească despre barierele dintre IT și afaceri, dar în cadrul structurii IT în sine, există multe bariere mai puțin vizibile care pot sta în calea unui integrator de sistem neatent.

Luați în considerare, de exemplu, unul dintre cele mai controversate și aprins dezbateri subiecte din IT astăzi - metodologia DevOps și tot ceea ce este legat de aceasta. Ca o scurtă descriere a tuturor acțiunilor asociate cu transferul aplicației dezvoltate către serviciul IT pentru funcționare reală, aceste cuvinte sună suficient de inofensive. Dar, în general, există un zid de confuzie între dezvoltatorii de aplicații pentru întreprinderi și specialiștii care gestionează infrastructura IT a întreprinderii. Programatorii dau vina adesea pe IT pentru lipsa de flexibilitate, iar cei care gestionează operațiunile IT de zi cu zi dau vina pe IT pentru că ignoră constrângerile și cerințele infrastructurii de producție în care trebuie să ruleze aplicațiile pe care le creează.

Această tensiune determină un interes tot mai mare pentru tehnologia Application Lifecycle Management (ALM), care este un set de instrumente de management concepute pentru a oferi programatorilor și personalului IT o înțelegere mai clară a aplicației dezvoltate și a infrastructurii în care trebuie să ruleze aplicația. .. Ideea principală este că facilitarea colaborării între dezvoltatori și profesioniștii IT va duce la o funcționare mai eficientă a întregului mediu informațional al întreprinderii. Problema este că implementarea ALM are șanse mici într-o situație în care cele două părți, a căror cooperare este necesară pentru a asigura succesul proiectului, încep să-și transfere responsabilitatea pentru dificultățile care apar.

Pentru implementarea cu succes a metodologiei ALM, integratorul de sistem trebuie să se ridice peste nivelul acuzațiilor reciproce din departamentul IT. Potrivit Gina Poole, vicepreședinte de marketing, IBM Rational Software, aceasta înseamnă găsirea și angajarea unui CIO sau CFO capabil să realizeze câți bani pierde clientul din cauza lipsei de muncă coordonată a tuturor serviciilor departamentului IT. Remedierea erorilor dintr-o aplicație târziu în proiectul de dezvoltare înseamnă costuri extrem de mari. Dacă necesitatea unei astfel de remedieri este cauzată de ipotezele anterioare ale dezvoltatorului cu privire la mediul în care va funcționa aplicația, iar aceste ipoteze sunt în cele din urmă greșite, atunci costul întregului proiect crește semnificativ sau clientul va fi obligat să să-și modernizeze infrastructura în consecință.

Desigur, poate fi nevoie de o sumă semnificativă de bani pentru a elimina astfel de contradicții din infrastructura IT a unei organizații. Cu toate acestea, singurul scop final al acestei lucrări ar trebui să fie crearea și implementarea unui set de tehnologii de management care să permită programatorilor și specialiștilor în operațiuni IT să nu mai interfereze cu munca celuilalt. Cu cât programatorii petrec mai mult timp discutând despre colaborarea cu profesioniștii IT, cu atât mai puțin timp au la dispoziție direct pentru dezvoltare. Cu cât se creează mai multe aplicații, cu atât va fi nevoie de infrastructură mai dezvoltată și aceasta este, desigur, o veste bună pentru revânzători.

În general, dezbaterea DevOps este cu siguranță benefică pentru revânzători și integratori. Problema este să nu te lași prins în conflicte interne asociate cu dorința de a realiza prea multe proiecte IT în paralel. Dacă clientul nu acceptă însuși conceptul de ALM, acesta este de fapt un indicator foarte bun al lipsei sale de maturitate și al competenței slabe în managementul IT. Acest lucru în sine sugerează că este mai bine ca revânzătorul să stea departe de un astfel de client, deoarece există o probabilitate mare ca un astfel de client să aducă mult mai multe probleme decât profiturile.

Se știe că mulți utilizatori (și, să fiu sincer, unii specialiști IT), când vorbesc despre dezvoltare software, se referă în primul rând la crearea și depanarea codului aplicației. A fost o vreme când astfel de idei s-au dovedit a fi suficient de aproape de adevăr. Dar dezvoltarea de aplicații moderne constă nu numai și nu atât în ​​scrierea codului, cât și în alte procese, atât imediat premergătoare programării, cât și după ea. De fapt, vom vorbi mai departe despre ele.

Ciclul de viață al dezvoltării aplicațiilor: Vise și realitate

Nu este un secret faptul că multe produse de succes comercial, atât în ​​Rusia, cât și în străinătate, au fost implementate folosind doar instrumente de dezvoltare a aplicațiilor și chiar și datele au fost adesea concepute pe hârtie. Nu va fi o exagerare să spunem că dintre toate instrumentele posibile pentru crearea de software în Rusia (și în multe țări europene), instrumentele de dezvoltare a aplicațiilor sunt acum populare și, într-o măsură mai mică, instrumentele de proiectare a datelor (aceasta se referă în primul rând la proiecte cu un buget mic și termene strânse de implementare). Toată documentația de proiect, de la atribuirea tehnică până la manualul de utilizare, este creată folosind editori de text, iar faptul că o parte din aceasta este informația inițială pentru programator înseamnă doar că o citește pur și simplu. Și asta în ciuda faptului că, pe de o parte, instrumentele de management al cerințelor, modelarea proceselor de afaceri, instrumentele de testare a aplicațiilor, instrumentele de management de proiect și chiar instrumentele de generare. documentatia proiectului există de multă vreme, dar pe de altă parte, orice manager de proiect, firește, își dorește să-și facă viața mai ușoară pentru el și pentru restul interpreților.

Care este motivul neîncrederii multor manageri de proiect în instrumentele care permit automatizarea multor etape ale muncii echipelor pe care le conduc? În opinia mea, există mai multe motive pentru aceasta. Prima dintre ele este că instrumentele folosite de companie de foarte multe ori nu se integrează bine între ele. Să luăm în considerare un exemplu tipic: Rational Rose este folosit pentru modelare, Delphi Professional este folosit pentru codare, CA AllFusion Modeling Suite este folosit pentru proiectarea datelor; instrumentele de integrare pentru aceste produse fie sunt complet absente pentru o anumită combinație a versiunilor lor, fie nu funcționează corect cu limba rusă, fie pur și simplu nu sunt achiziționate. Drept urmare, diagramele de caz de utilizare și alte modele create cu Rose nu devin altceva decât imagini în documentația de proiectare, iar modelul de date servește în principal ca sursă de răspunsuri la întrebări precum: „De ce este acest câmp în acel tabel? " Și chiar și părți atât de simple ale aplicației, cum ar fi echivalentele rusești ale numelor câmpurilor bazei de date, sunt scrise de către participanții la proiect de cel puțin trei ori: o dată când se documentează modelul de date sau aplicația, a doua oară când se scrie codul interfeței cu utilizatorul și a treia oară când crearea unui fișier de ajutor.și manuale de utilizare.

Al doilea motiv, nu mai puțin serios, pentru neîncrederea în instrumentele de suport pentru ciclul de viață al software-ului este că, din nou, din cauza absenței sau a funcționalității slabe a instrumentelor de integrare pentru astfel de produse, în multe cazuri este posibil să nu fie posibilă sincronizarea continuă a tuturor părților proiectului. între ele: modele de proces, modele de date, codul aplicației, structura bazei de date. Este clar că un proiect care implementează schema clasică de cascadă (Fig. 1), în care se formulează mai întâi cerințele, apoi se realizează modelarea și proiectarea, apoi dezvoltarea și, în final, implementarea (despre această schemă și alte metodologii de implementare a proiectului poate fi citit în seria de recenzii de Lilia Hough, publicată în revista noastră) este mai mult un vis decât o realitate - în timp ce codul este scris, clientul va avea timp să schimbe unele dintre procese sau să-și dorească funcționalități suplimentare. Ca urmare a execuției proiectului, se obține adesea o aplicație care este foarte departe de ceea ce a fost descris în termeni de referinta, și Bază de date, care are puține în comun cu modelul original, iar sincronizarea tuturor acestora între ele în scopul documentării și transferului către client se transformă într-o sarcină destul de laborioasă.

Al treilea motiv pentru care suportul pentru ciclul de viață al software-ului nu este folosit peste tot acolo unde ar putea fi util este că are o opțiune extrem de limitată. În principal două linii de produse sunt promovate activ pe piața rusă: instrumentele IBM / Rational și instrumentele Computer Associates (în principal linia de produse AllFusion Modeling Suite), care în prezent sunt concentrate în mare parte pe anumite tipuri de modelare, și nu pe procesul constant de sincronizare a codului , baze de date și modele.

Mai există un motiv care poate fi atribuit categoriei factori psihologici: există dezvoltatori care nu se străduiesc deloc să își formalizeze și să documenteze pe deplin aplicațiile - la urma urmei, în acest caz devin angajați indispensabili și valoroși și o persoană care este forțată să înțeleagă după concedierea unui astfel de dezvoltator în codul său sau Pur și simplu însoțirea produsului său se va simți pentru foarte mult timp un idiot complet. Astfel de dezvoltatori, desigur, nu sunt în niciun caz în majoritate, cu toate acestea, cunosc cel puțin cinci directorii companiei, cărora astfel de foști angajați i-au stricat mult sânge.

Desigur, mulți manageri de proiect, în special proiecte cu un buget mic și intervale de timp limitate, ar dori să aibă un instrument cu care să formuleze cerințele pentru produsul software în curs de dezvoltare... și ca urmare, să obțină un gata făcut. distribuirea unei aplicații de lucru. Acesta, desigur, este doar un ideal, la care până acum nu se poate decât să viseze. Dar dacă cobori din cer pe pământ, atunci poți formula dorințe mai specifice, și anume:

1. Instrumentele de management al cerințelor ar trebui să simplifice crearea modelului de aplicație și a modelului de date.

2. Pe baza acestor modele, ar trebui generată o parte semnificativă a codului (de preferință nu numai codul client, ci și codul serverului).

3. O parte semnificativă a documentației ar trebui să fie generată automat și în limba țării pentru care este destinată această aplicație.

4. Când creați codul aplicației în modele, ar trebui să apară modificări automate, iar când modelul se modifică, codul ar trebui să fie generat automat.

5. Codul scris de mână nu ar trebui să dispară atunci când se modifică modelul.

6. Apariția unei noi cerințe ale clientului nu ar trebui să provoace probleme serioase asociate cu modificările de modele, cod, bază de date și documentație; totuși, toate modificările trebuie făcute sincron.

7. Instrumentele de control al versiunilor pentru toate cele de mai sus ar trebui să fie convenabile în ceea ce privește găsirea și urmărirea modificărilor.

8. În sfârșit, toate aceste date (cerințe, cod, modele, documentație) ar trebui să fie disponibile participanților la proiect în măsura în care au nevoie de ei pentru a-și îndeplini sarcinile - nici mai mult, nici mai puțin.

Cu alte cuvinte, ciclul de dezvoltare a aplicațiilor ar trebui să permită dezvoltarea colaborativă iterativă fără costul suplimentar al schimbării cerințelor clienților sau al modului în care acestea sunt implementate.

Nu vă voi asigura că toate aceste dorințe sunt absolut imposibil de îndeplinit cu ajutorul instrumentelor IBM/Rational sau CA - tehnologiile se dezvoltă, apar produse noi, iar ceea ce era imposibil astăzi va deveni disponibil mâine. Dar, după cum arată practica, integrarea acestor instrumente cu cele mai populare instrumente de dezvoltare, din păcate, este încă departe de a fi atât de ideală pe cât ar părea la prima vedere.

Produse Borland din perspectiva unui manager de proiect

Borland este unul dintre cele mai populare instrumente pentru dezvoltatori din lume și se bucură de o dragoste binemeritată pentru dezvoltatori timp de douăzeci de ani. Până de curând, această companie oferea în principal o gamă largă de instrumente destinate direct creatorilor de coduri de aplicații - Delphi, JBuilder, C ++ Builder, Kylix (am scris despre toate aceste produse de multe ori în revista noastră). Totuși, succesul unei companii pe piață este determinat în mare măsură de cât de bine urmărește tendințele dezvoltării acesteia și cât de mult înțelege nevoile celor care sunt consumatori ai produselor sale (în acest caz, companii și departamente specializate în dezvoltarea de aplicații).

Acesta este motivul pentru care strategia de dezvoltare a instrumentelor de dezvoltare a Borland include acum suport pentru managementul ciclului de viață al aplicațiilor (ALM), care include definirea cerințelor, proiectarea, dezvoltarea, testarea, implementarea și întreținerea aplicațiilor. Acest lucru este dovedit de achiziția de anul trecut de către Borland a unui număr de companii - BoldSoft MDE Aktiebolag (un furnizor de top al celei mai recente tehnologii de dezvoltare a aplicațiilor Model Driven Architecture), Starbase (un furnizor de instrumente de management al configurației pentru proiecte software), TogetherSoft Corporation (un furnizor de soluții de proiectare software). De la achiziționarea acestor companii, s-a depus multă muncă în ceea ce privește integrarea acestor produse între ele. Drept urmare, aceste produse răspund deja nevoilor managerilor de proiect pentru capacitatea de a organiza dezvoltarea colaborativă iterativă. Mai jos vom discuta despre ceea ce Borland oferă în prezent directorilor și altor contribuitori la proiectele de dezvoltare software (multe dintre produsele și tehnologiile de integrare descrise mai jos au fost prezentate de Borland la conferințele pentru dezvoltatori organizate în noiembrie la San Jose, Amsterdam și Moscova)...

Managementul cerințelor

Managementul cerințelor este una dintre cele mai importante părți ale procesului de dezvoltare. Fără cerințe formulate, de regulă, este practic imposibil fie să organizezi normal munca la un proiect, fie să înțelegi dacă clientul a dorit cu adevărat să obțină exact ceea ce a fost implementat.

Potrivit analiștilor, cel puțin 30% din bugetul proiectului este cheltuit pentru ceea ce se numește reelaborarea aplicației (și personal cred că această cifră este mult subestimată). Mai mult, mai mult de 80% din această muncă este asociată cu cerințe formulate incorect sau incorect, iar repararea unor astfel de defecte este de obicei destul de costisitoare. Și măsura în care clienților le place să schimbe cerințele atunci când aplicația este aproape gata este probabil cunoscută de toți managerii de proiect... Din acest motiv, managementului cerințelor ar trebui să li se acorde cea mai mare atenție.

Pentru managementul cerințelor, arsenalul Borland include Borland CaliberRM, care este în esență o platformă de automatizare a managementului cerințelor care oferă urmărirea modificărilor (Figura 2).

CaliberRM se integrează cu multe instrumente de dezvoltare atât de la Borland, cât și de la alți producători (de exemplu, Microsoft), până la încorporarea unei liste de cerințe în mediul de dezvoltare și generarea de fragmente de cod atunci când glisați o pictogramă de cerințe în editorul de cod. În plus, puteți crea propriile soluții pe baza acestuia - pentru aceasta există un set special de instrumente CaliberRM SDK.

Rețineți că acest produs este utilizat pentru a gestiona cerințele nu numai pentru software, ci și pentru alte produse. De exemplu, există cazuri de aplicare cu succes a acestuia în industria auto pentru a gestiona cerințele pentru diferite componente ale vehiculelor (inclusiv vehicule Jaguar). În plus, conform lui Jon Harrison, manager de linie de produse pentru JBuilder, utilizarea CaliberRM pentru a crea Borland JBuilderX a simplificat foarte mult procesul de dezvoltare pentru acest produs.

Și, în sfârșit, prezența unui instrument convenabil de gestionare a cerințelor simplifică foarte mult crearea documentației de proiect, și nu numai la începutul etapele proiectului, dar și pe toate cele ulterioare.

Proiectarea aplicațiilor și a datelor

Designul este o parte la fel de importantă a creării unei aplicații și ar trebui să se bazeze pe cerințele declarate. Rezultatul designului sunt modelele utilizate de programatori în etapa de creare a codului.

Pentru proiectarea aplicațiilor și a datelor, Borland oferă Borland Together (Figura 3), o platformă de analiză și proiectare a aplicațiilor care se integrează cu o varietate de instrumente de dezvoltare Borland și non-Borland, inclusiv Microsoft. Produsul specificat permite modelarea și proiectarea aplicațiilor și datelor; în același timp, gradul de integrare a acestuia cu instrumentele de dezvoltare în acest moment este de așa natură încât modificările modelului de date conduc la o modificare automată a codului aplicației, precum și modificările codului duc la o schimbare a modelelor ( această tehnologie integrarea instrumentelor de modelare și a instrumentelor de dezvoltare se numește LiveSource).

Borland Together poate fi folosit ca instrument pentru integrarea sarcinilor de management al cerințelor și modelare cu sarcinile de dezvoltare și testare și vă permite să înțelegeți care ar trebui să fie implementarea cerințelor produsului.

Generarea codului aplicației

Scrierea codului de aplicație este un domeniu în care Borland s-a specializat de peste 20 de ani de existență. Borland produce astăzi instrumente de dezvoltare pentru Windows, Linux, Solaris, Microsoft .NET și o gamă largă de platforme mobile. Despre instrumentele de dezvoltare ale acestei companii am scris deja de multe ori și nu ne vom repeta în acest articol. Menționăm doar că cele mai recente versiuni ale instrumentelor de dezvoltare ale acestei companii (Borland C # Builder, Borland C ++ BuilderX, Borland JBuilderX), precum și cele așteptate în curând o noua versiune Unul dintre cele mai populare instrumente de dezvoltare din țara noastră, Borland Delphi 8 pentru Microsoft .NET Framework, permite integrarea strânsă a instrumentelor de modelare Together și a instrumentelor de management al cerințelor CaliberRM cu mediile lor de dezvoltare. Cu siguranță vom vorbi despre Delphi 8 într-un articol separat din numărul următor al revistei noastre.

Testare și optimizare

Testarea este o parte absolut esențială a construirii unui software de calitate. În această etapă se verifică dacă aplicația îndeplinește cerințele formulate pentru aceasta și se fac modificările corespunzătoare codului aplicației (și adesea atât în ​​model, cât și în bazele de date). Faza de testare necesită de obicei instrumente de analiză și optimizare a performanței aplicației, iar Borland Optimizeit Profiler este utilizat în acest scop. Astăzi, acest produs, împreună cu acesta, este integrat în mediul de dezvoltare al celor mai recente versiuni ale instrumentelor de dezvoltare Borland, precum și în mediul Microsoft Visual Studio .NET (Fig. 4).

Implementarea

Implementarea software este una dintre cele mai importante componente ale succesului unui proiect. Ar trebui să fie efectuat în așa fel încât, în etapa de funcționare de probă a produsului, să se poată face modificări fără costuri și pierderi serioase, este ușor să creșteți numărul de utilizatori fără a compromite fiabilitatea. Deoarece aplicațiile sunt implementate în prezent cu companii care utilizează tehnologii și platforme diferite și folosesc un anumit număr de aplicații existente, capacitatea de a integra o nouă aplicație cu sistemele moștenite poate fi importantă în timpul implementării. În acest scop, Borland oferă o serie de tehnologii de integrare multiplatformă (cum ar fi Borland Janeva, care permit integrarea aplicațiilor .NET cu aplicațiile bazate pe CORBA și J2EE).

Managementul schimbării

Gestionarea modificărilor se realizează în toate etapele creării aplicației. Din perspectiva lui Borland, aceasta este cea mai importantă parte a proiectului - la urma urmei, pot apărea modificări în cerințe, în cod și în modele. Este dificil să gestionezi un proiect fără a urmări modificările – managerul de proiect trebuie să fie conștient de ceea ce se întâmplă exact în această etapă și de ceea ce a fost deja implementat în proiect, altfel riscă să nu ducă la bun sfârșit proiectul la timp.

Pentru a rezolva această problemă, puteți folosi Borland StarTeam (Figura 5), ​​un instrument scalabil de gestionare a configurației software care stochează toate datele necesare într-un depozit centralizat și optimizează interacțiunea angajaților responsabili de diverse sarcini. Acest produs oferă echipei de proiect o varietate de instrumente pentru publicarea cerințelor, gestionarea sarcinilor, programarea, lucrul, discutarea modificărilor, controlul versiunilor, organizarea fluxului de lucru.

Caracteristicile acestui produs sunt integrarea strânsă cu alte produse Borland, suport pentru echipele de dezvoltare distribuite care interacționează prin Internet, prezența mai multor tipuri de interfețe client (inclusiv interfața Web și interfața Windows), suport pentru multe platforme și sisteme de operare, prezența StarTeam Software Development Kit (SDK), care reprezintă interfețe de programare a aplicațiilor pentru crearea de soluții bazate pe StarTeam, instrumente de protecție a datelor pe partea client și server, instrumente de accesare a Merant PVCS Version Manager și a depozitelor Microsoft Visual SourceSafe, instrumente pentru integrarea cu Microsoft Project, instrumente pentru prezentarea vizuală a datelor, raportare și suport decizional.

În loc de o concluzie

Ce înseamnă apariția pe piața rusă a setului de produse de mai sus de la un producător binecunoscut, ale cărui instrumente de dezvoltare sunt utilizate pe scară largă într-o mare varietate de proiecte? Cel puțin, faptul că astăzi vom putea obține nu doar un set de instrumente pentru diverși participanți la proiect, ci și o platformă integrată pentru implementarea întregului ciclu de viață al dezvoltării - de la definirea cerințelor până la implementare și întreținere (Fig. 6). În același timp, această platformă, spre deosebire de seturile de produse concurente, va garanta suport pentru toate cele mai populare instrumente de dezvoltare și va permite integrarea componentelor sale în acestea la nivel de sincronizare completă a codului cu modele, cerințe și modificări. Și sperăm că managerii de proiect vor răsufla ușurați, eliberându-se și angajații lor de multe sarcini obositoare și de rutină...

 

Ar putea fi util să citiți: