Organizarea și reutilizarea tehnicilor, instrumentelor și exemplelor valoroase
Publicat la 17 aprilie 2007
Cineva, undeva, cândva, cineva s-a confruntat cu o problemă asemănătoare cu a dumneavoastră și și-a dat seama cum să o rezolve. Cum ar fi dacă ați putea captura informațiile obținute cu greu de acea persoană și ați putea pune soluția într-o formă reutilizabilă? Aceasta este exact ceea ce modelele de proiectare și analiză au oferit inginerilor de software în ultimul deceniu. Cu toate acestea, aceste modele discută, în general, o soluție specifică; ele nu oferă prea multe îndrumări pentru a învăța cum să identificați modelul corect și să aplicați acel model în primul rând.
Din fericire, puteți apela la cadrele analitice, care combină soluții reutilizabile cu modele de analiză, cercetare, tehnici de organizare utile și exemple specifice de abordări de succes. Un cadru analitic este un pic ca o bibliotecă personală, adaptată în mod specific experienței și pregătirii dumneavoastră.
Planurile de analiză au fost utilizate în dezvoltarea de software de mulți ani pentru a oferi soluții pentru accesul la date, monitorizarea și gestionarea tranzacțiilor, securitate, mesagerie, interfețe utilizator și alte nevoi ale aplicațiilor. Ele nu sunt menite să fie implementate în cod, ci mai degrabă să permită analiștilor să înțeleagă domenii de probleme complexe.
Cadrele analitice încorporează astfel de modele și oferă, de asemenea, o listă de verificare a competențelor, instrumentelor și tehnicilor care sunt necesare pentru cercetarea unui anumit domeniu, cum ar fi analiza afacerilor sau arhitectura de sistem. Acest lucru poate fi un mare avantaj pentru companiile care caută competențe specifice pentru a satisface o nevoie curentă. Dacă un candidat poate demonstra experiența și abilitățile enumerate, este probabil ca acel candidat să aibă succes în îndeplinirea sarcinii.
Înțelegerea structurii cadrului analitic
Considerați pentru o clipă modul în care o persoană instruită în prelucrarea lemnului procedează pentru a crea mobilă. Un lucrător care se limitează la câteva unelte simple și la cunoștințele sale personale poate găsi dificil și consumator de timp pentru a crea piese noi. Pe de altă parte, dacă aceleiași persoane i se pune la dispoziție un atelier complet amenajat, unelte puternice și o bibliotecă completă de planuri și exemple de piese, îi va fi mult mai ușor să creeze mobilier complex și interesant. În același mod, performanța unui analist poate fi îmbunătățită prin accesul la un set de modele de analiză dovedite, la instrumente și tehnici analitice puternice și la multiple exemple de abordări eficiente de modelare pentru capturarea și prezentarea de informații complexe.
Un cadru analitic este alcătuit din cinci componente majore: un sortiment de instrumente, un set de modele de soluții utile, una sau mai multe forme de model, multiple tehnici și abilități de cercetare și metode de grupare a informațiilor complexe. Tabelul 1 prezintă elementele necesare pentru un cadru de analiză a afacerii.
Tabelul 1. Cadrul de analiză a afacerii
Element | Descriere | |
---|---|---|
Unelte | Procesarea cuvintelor, software de modelare, controlul versiunilor de documente | |
Patmodele | Patroni | Patroni specifici sectorului de activitate, modele de sisteme de afaceri, structuri de organizare a afacerii |
Forme de modelare | Grafic de organizare, caz de afaceri în limbajul de modelare unificat (UML), activitate UML, Zachman Framework | |
Tehnici | Observație, interviu, studiu de documente | |
Abilități | Tomarea de notițe, ascultarea activă, facilitarea ședințelor, conducerea echipei, gândirea critică, raționamentul prin analogie | |
Categorizare | Cadrul proceselor de afaceri, ierarhia departamentelor, cazurile de utilizare a afacerii, graficul de dependență funcțională a afacerii |
În acest cadru de analiză a afacerii, instrumentele eficiente pentru descoperirea și capturarea proceselor de afaceri includ un software de modelare (în special modelarea UML, dacă cerințele de afaceri sunt capturate sub formă de cazuri de utilizare), ajutoare de procesare a textelor și o anumită formă de control al versiunilor pentru modele și documente. Instrumentele pot fi adaptate pentru nevoi specifice sau pot fi instrumente mai generale, cum ar fi un simplu ajutor vizual de desenare.
Modelele de analiză recurente pot fi eficiente atunci când sunt aplicate la un anumit domeniu de analiză. În cadrul analizei de afaceri, aceste modele includ modele de sisteme de afaceri (cum ar fi introducerea comenzilor, controlul inventarului și rezolvarea schimburilor comerciale), modele specifice industriei (cum ar fi rutarea telefoniei, expedierea și programarea pachetelor și controlul producției de medicamente) și structuri de afaceri (cum ar fi matrici, ierarhii și organizații distribuite). Modelele sunt teme care s-au dovedit a apărea în mod repetat în anumite domenii de activitate. Pentru mai multe informații despre modalitățile de captare a temelor de afaceri recurente, consultați „Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML”. (Pentru mai multe informații, consultați secțiunea Teme conexe.)
Puteți utiliza o selecție de forme de model pentru a capta informații complexe. Pentru analiza analitică complexă, există o serie de forme de model utile, cum ar fi Limbajul de modelare unificat (UML) pentru sistemele cu utilizare intensivă de software, Limbajul de modelare a sistemelor (SysML) pentru ingineria sistemelor și Cadrul Zachman pentru preocupările transversale ale organizației. În exemplul cadrului de analiză a afacerilor prezentat în tabelul 1, formele de model utile pentru studierea proceselor de afaceri includ UML (pentru modelarea proceselor și a cazurilor de utilizare), organigrame ierarhice și o formă potențial modificată a modelului Zachman.
Tehnicile și competențele sunt un aspect crucial al oricărei abordări de analiză. Este important să se poată oferi o evaluare a competențelor disponibile în prezent ale unei persoane sau ale unei echipe. De exemplu, tehnica interviului necesită abilități de luare de notițe și de ascultare activă. Desfășurarea unui atelier de lucru în grup necesită abilități de facilitare și de conducere a echipei. Analiza de sistem se bazează pe abilitățile de a gândi critic asupra problemei (recunoscând modul în care problema poate fi împărțită în domenii mai mici, mai simple) și de a aplica soluții similare găsite în alte domenii.
Obiectivul analizei este acela de a prezenta concluziile unui public. Cel mai bun analist din lume nu va avea succes dacă nu poate organiza informațiile într-un mod semnificativ și prezentabil. Instrumentele automatizate oferă doar o parte din soluția la această problemă; organizarea generală a informațiilor determină modul în care publicul vizat va utiliza datele. În cadrul de analiză a afacerii, aceste principii de clasificare sunt reprezentate de procesele de afaceri (în care afacerea este împărțită în subdomenii), grafice de dependență între cazurile de utilizare a afacerii și structura generală de organizare (de obicei, ierarhică).
Aplicarea unui cadru analitic
Acum că știți ce cuprinde un cadru analitic, trebuie să învățați cum să utilizați unul. Există cel puțin trei situații în care un cadru analitic poate fi de folos. Prima este atunci când o persoană este nevoită să își schimbe rolul. De exemplu, un analist de afaceri poate trece la un rol de analist de sistem sau la un rol de analist de testare. Fiecare rol are responsabilități diferite și generează un set complet diferit de documentație și produse de lucru. Dacă individul poate apela la un cadru analitic preexistent (cu exemple adecvate), va fi mult mai ușor să se pregătească și să facă tranziția către noul rol. Persoana trebuie să învețe ce instrumente, tehnici, modele, modele și abordări organizaționale funcționează cel mai bine în fiecare situație. Accesul la un model analitic pentru fiecare dintre aceste domenii poate reduce foarte mult timpul petrecut în căutarea de soluții.
Al doilea domeniu în care cadrele analitice se pot dovedi utile este în evaluarea competențelor și a pregătirii unui grup de externalizare. Majoritatea organizațiilor care utilizează externalizarea near-shore sau offshore se bazează pe experiența anterioară a echipelor pentru a evalua capacitatea acestora de a livra artefactele convenite. Dacă echipa de externalizare este ținută la un anumit standard, așa cum este definit de un anumit model analitic care s-a dovedit a fi eficient, există o încredere mai mare că echipa va avea colecția corectă de materiale și abilități. Același lucru se poate spune și despre echipele interne, deși, de obicei, aceste echipe au dovedit deja o anumită abordare, care oferă sursa pentru cadrul analitic.
Cel de-al treilea domeniu în care cadrele analitice sunt utile este cel al formării. Dacă studiați cadrul prezentat în tabelul 1, ar trebui să fie evident că acestea pot sta la baza unui plan de formare pentru îmbunătățirea echipei. Puteți efectua o evaluare pentru a determina dacă colecția adecvată de elemente ale cadrului, instrumente, modele și abilități sunt deja disponibile în cadrul membrilor echipei sau trebuie adăugate fie prin achiziționarea unui instrument, fie prin instruirea personalului.
Crearea și adaptarea cadrelor
Un cadru analitic este util numai dacă instrumentele sunt familiare celui care face modelarea. Amintind de tâmplarul talentat, cele mai bune unelte sunt inutile fără aplicarea creativă a unui meșter instruit și talentat. În mod similar, construirea unor modele plăcute din punct de vedere estetic necesită adaptarea unuia sau mai multor cadre analitice la un domeniu de probleme. Trebuie să știți cum să selectați cel mai relevant cadru, să vă familiarizați cu elementele cadrului și să adaptați elementele cadrului la problema în cauză.
Multe probleme au aspecte recurente, astfel încât puteți adapta adesea un cadru strâns legat. De exemplu, aproape toate sistemele informatice moștenite au nevoie de o anumită formă de investigare a proiectării, chiar dacă nu din alt motiv decât pentru a instrui noii dezvoltatori în ceea ce privește întreținerea și extinderea sistemului. Prin urmare, un cadru de proiectare a sistemului ar fi mai aplicabil decât un cadru pentru procesele de afaceri.
Crearea unui nou cadru poate fi la fel de simplă ca și clonarea unui cadru existent și adăugarea de noi modele și exemple. Pe de altă parte, cadrele mai complexe, cum ar fi unul care poate fi dezvoltat pentru analiza și gestionarea proiectelor de sisteme încorporate, pot avea puține lucruri în comun cu alte cadre existente, astfel încât este posibil să fie nevoie să le creați de la zero. Ar trebui să începeți prin a lua în considerare instrumentele și tehnicile pe care le puteți aplica domeniului. De exemplu, este posibil să trebuiască să modificați tehnicile existente, cum ar fi interviurile sau facilitarea grupurilor, pentru a sprijini noul domeniu. Este posibil să puteți pune la dispoziția modelatorului alte instrumente pentru sarcini specifice, cum ar fi ingineria software asistată de calculator (CASE) pentru organizarea conținutului pentru o federație de site-uri web. Pe măsură ce timpul avansează, puteți extinde cadrul pentru a include mai multe exemple. În cele din urmă, la încheierea proiectului, puteți captura în mod formal tehnicile și modelele care s-au dovedit cele mai utile ca modele de analiză pentru a fi utilizate la următoarea problemă aplicabilă.
Poate fi necesar să adaptați un cadru analitic înainte ca acesta să fie utilizabil într-un anumit context. Adaptarea unui cadru implică includerea de noi modele sau scheme de organizare pentru a corespunde mai bine nevoilor subiectului. În acest fel, puteți extinde și dezvolta aceste cadre pentru domenii noi de probleme. Pe măsură ce noi instrumente și tehnici devin disponibile și pe măsură ce noi modele de analiză sunt descoperite și codificate, le puteți adăuga la setul dumneavoastră de instrumente și le puteți organiza într-un cadru modificat. Dacă nivelul de modificare este semnificativ, acest lucru poate indica faptul că ar trebui să construiți un cadru complet nou.
Punerea în funcțiune a cadrului analitic
Imaginați-vă că sunteți un dezvoltator senior care tocmai a fost repartizat pe o nouă poziție de arhitect pentru un sistem moștenit. Nu ați fost implicat în activitatea de dezvoltare inițială, dar trebuie să învățați rapid sistemul și să aduceți la zi o echipă de noi membri ai echipei, ceea ce necesită ca mai întâi să vă puneți la punct. Din fericire, aveți câteva lucruri în favoarea dvs. În primul rând, aveți un set bun de exemple de arhitectură de la alte sisteme similare din cadrul companiei. În al doilea rând, aveți acces la modelul analitic pentru arhitectura software (a se vedea tabelul 2).
Tabelul 2. Cadrul analitic al arhitecturii software
Element | Descriere |
---|---|
Unelte | Profilator de cod, instrument de raportare a bazelor de date, șablon de document de arhitectură software, software de modelare, analiză de cod |
Patroni | Patroni de implementare a software-ului, modele de arhitectură, modele de proiectare a sistemelor, modele de stocare a datelor |
Forme de modelare | Modeluri dinamice (cum ar fi secvența UML, diagramele de algoritmi, starea UML și activitatea UML), diagrame entitate-relație de baze de date, modele structurale (cum ar fi harta de apelare a claselor și funcțiilor UML), diagrame de flux de date, modele de sisteme de întreprindere |
Tehnici | Gândire abstractă, organizare și clasificare, analiză critică, luare de notițe |
Abilități | Structura codului, analiza fluxului, profilarea hardware, comportamentul sistemului |
Categorizare | Comportamentul funcțional, dependența de subsisteme, dependența de componente, împachetarea implementării |
Utilizând cadrul de arhitectură software, primul pas este să asamblați toate instrumentele recomandate. Instrumentul de modelare oferă posibilitatea de a vizualiza codul existent într-un model UML, ceea ce vă permite să investigați structura existentă a codului. Profilatorul în timp de execuție este valoros pentru înregistrarea stivei de apeluri pe măsură ce funcționalitatea aplicației este executată.
În continuare, puteți investiga modelele arhitecturale comune prezente în aplicație. Puteți identifica aceste modele, dacă sunt prezente, utilizând descrierile modelelor comune notate în cadru, în special modelele de analiză și proiectare. Multe astfel de tipare sunt publicate; cunoașterea celor mai comune va fi adesea suficientă pentru un efort de analiză arhitecturală.
Familiarizarea cu o varietate de forme de model, cum ar fi diagramele entitate-relație (ERD), UML și alte abordări de modelare orientate pe sistem, vă va oferi o gamă largă de opțiuni de modelare. Clasificarea acestor modele în funcție de comportamentul funcțional, compararea logică cu structura fizică și stările comportamentului intern va produce o evidență utilă a arhitecturii generale a sistemului. În cele din urmă, este important să vă cunoașteți propriile limitări. Autoevaluarea este o sarcină dificilă, dar necesară pentru a vă asigura și reasigura că toate competențele cu adevărat necesare sunt disponibile pentru echipă. Utilizarea setului de competențe așteptate enumerate în cadrul analitic al arhitecturii software reprezintă un bun punct de plecare pentru a determina tipurile de abilități necesare pentru o sarcină de analiză arhitecturală. Cadrul analitic vă oferă o listă de verificare a numărului minim de elemente de care aveți nevoie pentru a avea succes. Competențe suplimentare pot fi necesare pentru arhitecturi specializate, cum ar fi rețelele de transport.
Rezumat
Studierea și înțelegerea sistemelor software complexe poate fi o sarcină dificilă. Pentru a avea succes, trebuie să folosiți o varietate de instrumente și tehnici pentru a aduna, aranja și prezenta descrierile de sistem. Prin crearea și adaptarea cadrelor analitice, vă puteți pregăti cu mult timp înainte și puteți colecta instrumente și exemple utile pe care să le folosiți în situația dumneavoastră actuală. Acum că știți ce elemente compun un cadru analitic de succes, cum să reutilizați cadrele și cum să creați cadre noi, veți fi bine pregătit să abordați multe dintre situațiile comune întâlnite în problemele complexe de astăzi.
Resurse descărcabile
- PDF al acestui conținut
- Pentru mai multe informații despre arhetipurile de afaceri, citiți Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML, de Jim Arlow și Ila Neustadt (Addison-Wesley Professional, 2003).
- Consultați seria de trei părți a lui Ben Lieberman (PDF) despre Arta modelării, care vă învață despre construirea unui cadru analitic, organizarea și construirea modelului și compoziția vizuală (developerWorks, august 2003).
- Învățați să modelați cu forme structurale, teme de organizare și pivoți de diagrame în articolul lui Ben Lieberman, „Construiți modele de sistem eficiente” (developerWorks, martie 2007).
.