Sunteți pe pagina 1din 4

Revista Informatica Economic, nr.

1(33)/2005

63

Software development methodologies


Lect. dr. Paul POCATILU Catedra de Informatic Economic A.S.E., Bucureti Developing project portfolio management applications and other applications requires the use of a software development methodology and specific tools. This paper presents several methodologies for software development that can be used for project portfolio applications as well. Keywords: project portfolio management, software life cycle, software development, methodologies

ntroducere Evoluia societii informaionale se realizeaz prin intermediul soluiilor software i hardware elaborate de firmele din domeniul tehnologiei informaiei (IT). n societatea actual, majoritatea companiilor IT i desfoar activitile prin intermediul proiectelor, la un moment dat derulndu-se mai multe proiecte n paralel. Managementul proiectelor IT desfurate n cadrul firmelor este esenial pentru succesul aplicaiilor realizate. Numrul i complexitatea proiectelor care se deruleaz variaz de la o firm la alta, de la o perioad la alta. Proiectele care se deruleaz la un moment dat ntr-o firm partajeaz aceleai resurse. Prin organizarea proiectelor n cadrul unui portofoliu de proiecte se urmrete obinerea unei imagini de ansamblu asupra tuturor proiectelor companiei n vederea unui management centralizat al acestora. Se are n vedere stabilirea unei metodologii care s permit realizarea de aplicaii pentru managementul portofoliilor proiectelor IT care s in cont de necesitile actuale ale managerilor i de modul n care se desfoar derularea proiectelor. Astfel, se are n vedere distribuirea n spaiu a proiectelor i necesitatea de a avea informaii n orice moment i de oriunde despre proiectele desfurate. innd cont de aceste lucruri, metodologia are n vedere dezvoltarea de aplicaii distribuite precum i aplicaii mobile. n continuare sunt prezentate caracteristicile principalelor metodologii utilizate n dezvoltarea software Tehnici i metode utilizate n dezvoltarea software

Tehnicile de dezvoltare utilizate n realizarea produsului au n vedere etapele de analiz i proiectare a acestuia. Exist mai multe metode de analiz i proiectare, clasificate dup modul n care este realizat proiectul aplicaiei. Astfel, exist metode care au la baz: structura funcional; n cadrul acestor metode sistemul este mprit n subsisteme pe baza funcionalitii componentelor; structura datelor; proiectarea sistemului se bazeaz pe datele care sunt prelucrate; fluxul datelor; n proiectare se pornete de la fluxurile datelor din cadrul sistemului. Metodele care au la baz structura funcional a produsului sunt: metoda Top-Down; are la baz principiul modularitii i presupune descompunerea sistemului de sus n jos pn la obinerea de module elementare; metoda Bottom-Up; la baza metodei st principiul agregrii i presupune identificarea de jos n sus a componentelor sistemului; metoda HIPO; metoda se bazeaz pe descrierea intrrilor, prelucrrilor i ieirilor ntr-o manier ierarhic; sunt construite diagramele de coninut H i diagramele IPO, pentru intrri/prelucrri/ieiri; metoda de analiz i proiectare structural SADT; la baza metodei st descompunerea descendent pe baze funcionale a sistemului; metoda presupune elaborarea a dou modele: modelul activitilor i modelul datelor. Metodele care pornesc de la structura datelor sunt: metoda de realizare a sistemelor LCS i metoda de realizare a programelor LCP; au la baz structurarea sistemului n funcie de

64

Revista Informatica Economic, nr. 1(33)/2005

datele de ieire; metoda Jackson; sistemul este structurat pornind de la analiza datelor problemei; se creeaz o structur ierarhic a sistemului. Metodele care au n vedere fluxul datelor sunt: metoda lui DeMarco; este o metod de analiz structurat; metoda lui Yourdon i Constantine; se obine diagrama de flux a datelor (DFD) i pe baza acesteia se realizeaz o descompunere funcional a sistemului; metoda lui Myers; se mai numete i proiectarea compozit; obiectivul metodei este acela de a minimiza relaiile din interiorul modulelor i de a maximiza relaiile dintre module. Metodologii orientate obiect Metodele de analiz i proiectare orientate obiect pun accentul n primul rnd pe reutilizare. Principalele metode de analiz i proiectare orientate obiect sunt OOA (Object Oriented Analysis), OOD (Object Oriented Design), OOSE (Object Oriented Software Engineering), OMT (Object Modeling Technique) i RUP (Rational Unified Process). OOA este o metod de analiz orientat obiect dezvoltat de Shlaer & Mellor care se bazeaz pe o multitudine de reguli, analistul avnd destul de puine posibiliti de reprezentare a problemei sau a lumii reale. Analistul partiioneaz sistemul n domenii, construindu-se diagrame ale domeniile. Fiecare domeniu este analizat separat, acestea fiind interconectate n timpul proiectrii i implementrii. Modelele cu care lucreaz metoda sunt: modelul informaional; sunt descrise entitile conceptuale i relaiile dintre acestea; modelele strilor; conine ciclurile de via a obiectelor i relaiile dintre obiecte; modelul de comunicaie a obiectelor; este redat comunicaia asincron dintre obiectele din sistem; modelul de acces al obiectelor; descrie comunicaia sincron dintre obiectele sistemului. Metoda de analiz orientat obiect ia n considerare i posibilitatea c proiectarea orientat obiect nu poate fi aplicat pentru problem i las la latitudinea analistului sau proiectantului aceast alegere. OOA lucreaz cu diagrama claselor, diagrama de structur a claselor, dia-

grama dependenelor i diagrama motenirii [SHLA92]. OOD a fost descris pentru prima dat de ctre G. Booch n [BOOC91]. Metoda subliniaz rolul esenial jucat n proiectarea orientat-obiect de aspectul iterativ al dezvoltrii i importana creativitii dezvoltatorului. Metoda este mai mult dect un set de reguli euristice i sfaturi referitoare la procesul realizrii unei aplicaii. Dei nu sunt prezentate reguli stricte i succesiune riguroas n timp, ordinea operaiilor care trebuie efectuate n OOD este urmtoarea: identificarea claselor i obiectelor la un anumit nivel de abstractizare; identificarea semanticii claselor i obiectelor; identificarea relaiilor ntre clase i obiecte; implementarea claselor i obiectelor. Metoda se concentreaz asupra fazei de proiectare, pentru care ofer un set bogat de concepte i notaii. Prezentarea modelului de dezvoltare din diferite perspective permite ilustrarea clar a unor aspecte diferite ale modelului. OOD separ structura logic de cea fizic. Vederea logic conine structura claselor, n timp ce vederea fizic se refer la structura modulelor i a proceselor. Diagramele detaliate pentru module i procese constituie una din caracteristicile OOD. Pe lng diagramele statice, Booch utilizeaz i dou diagrame dinamice. Prima este o diagram de tranziie a strilor iar a doua, o diagram de timp care descrie succesiunea evenimentelor ntre obiecte. OMT acoper fazele de analiz, proiectare i implementare. Spre deosebire de OOD, OMT se concentreaz asupra analizei. Metoda, conceput de Rumbaugh, este descris n [MIHA98] i const din patru etape: analiza; const n definirea domeniului aplicaiei fr a lua n considerare aspecte legate de implementare; rezultatele etapei sunt modelele obiectual, dinamic i funcional; proiectarea sistemului; modelele obinute n faza de analiz sunt rafinate, extinse i detaliate astfel nct pe baza lor s se implementeze; ca rezultat al fazei de proiectare se obine arhitectura sistemului; proiectarea orientat obiect; n aceast etap sunt proiectai algoritmii, asocierile i se creeaz ierarhiile de clase; rezultatele acestei eta-

Revista Informatica Economic, nr. 1(33)/2005

65

pe sunt cele trei modele detaliate; implementarea; pe baza modelelor detaliate este scris codul aplicaiei utiliznd un limbaj de programare orientat obiect. Iniial sunt dezvoltate trei modele ale sistemului, care ulterior sunt rafinate n toate etapele ciclului de via. Aceste modele sunt: modelul obiect (static) care descrie structura static a sistemului lund n considerare clasele i relaiile dintre ele; modelul dinamic, construit pentru a surprinde aspectele temporale ale modelului obiect; modelul funcional care descrie n principiu, n termenii operaiilor dintre obiecte, modul n care plecnd de la informaiile iniiale sunt obinute informaiile finale. OOSE (Ivar Jacobson) este o metodologie orientat obiect bazat pe idei noi privind procesul de realizare a software-ului. Etapele acestei metodologii sunt [JACO96]: analiza; sunt identificate clasele sistemului; din etapa de analiz rezult modelul cerinelor i modelul de analiz; construcia; etapa const din proiectare i implementare; clasele obinute n etapa de analiz sunt rafinate; sistemul este adaptat mediului real n care acesta opereaz, fiind luate n considerare limbajul de programare, bazele de date cu care acesta lucreaz; rezultatele etapei sunt modelul de proiectare i modelul de implementare; testarea; fiecare clas sau grup de clase este testat n parte att din punct de vedere funcional ct i structural; instane ale claselor sunt integrate continuu pe parcursul realizrii sistemului i testate; dup integrarea ntregului sistem, acesta este testat; pentru testarea de integrare i testarea de sistem sunt utilizate cazurile de utilizare; mentenana; dup acceptarea sistemului de ctre beneficiar, acesta intr n exploatare curent; n msura n care apar erori pe parcursul utilizrii, acestea sunt corectate. Metoda utilizeaz cinci modele corespunztoare etapelor de dezvoltare: modelul cerinelor, de analiz, de proiectare, de implementare i de testare. Fiecare model ia n considerare o anumit parte sau anumite aspecte ale sistemului care se realizeaz. Un concept nou al metodei este cel al cazurilor

de utilizare (Use Cases), concept care face parte din modelul cerinelor, acesta fcnd posibil legtura dintre cerine, dezvoltare, testare i acceptare de ctre utilizatorul final [MIHA98], [BODE01]. Metoda RUP are la baz metodele OOD (Booch), OMT (Rumbaugh) i OOSE (Jacobson). Pe lng aceste metode, au mai fost folosite i FUSION (Coleman), OOA (Shlaer & Mellor) i alte metode. Metoda unificat se bazeaz pe cazurile de utilizare, este centrat pe arhitectur i este interactiv i incremental. UML st la baza reprezentrilor grafice utilizate n aceast metod. Principiile reunificrii [RUMB96], sunt: simplitatea metoda trebuie s foloseasc un numr redus de concepte; aplicabilitatea metoda trebuie s poat fi aplicabil la construirea unui numr ct mai mare de sisteme diferite; utilitatea metoda trebuie s se concentreze asupra acelor elemente care sunt semnificative pentru un sistem practic i pentru tehnicile de ingineria programrii; atenia special acordat problemelor frecvent ntlnite problemele frecvent ntlnite trebuie s fie simplu de modelat iar problemele limit pot s necesite o complexitate oarecare, msurat prin frecvena de utilizare; auto-consistena acelai concept i simbol trebuie s fie aplicat n aceeai manier n cadrul metodei; ortogonalitatea conceptele independente trebuie s fie modelate independent; structurarea pe niveluri conceptele avansate trebuie tratate ca extensii ale conceptelor de baz ale metodei; stabilitatea s adopte concepte i simboluri care sunt larg cunoscute i folosite; posibilitatea de tiprire diagramele folosite trebuie s poat fi uor desenate cu mna sau cu editoarele grafice; extensibilitatea att utilizatorii ct i constructorii trebuie s aib un anume grad de libertate care s le permit s extind i s adapteze metoda. Metodologii light S-au dezvoltat o serie de metodologii de analiz i proiectare pentru proiecte de dimensiuni

66

Revista Informatica Economic, nr. 1(33)/2005

reduse, precum: Adaptive Software Development (ASD), Extreme Programming (XP), SCRUM i Crystal Clear. Majoritatea acestor metodologii sunt orientate obiect. Metodologia ASD se bazeaz pe teoria sistemelor complexe adaptive, utiliznd trei concepte importante pentru a descrie lumea extern: ageni, medii i rezultate. La baza metodologiei Extreme Programming (XP) st satisfacia clientului i lucrul n echip; metoda se utilizeaz pentru proiecte la care lucreaz ntre 2 i 10 oameni; n echip sunt inclui i managerii i clienii; o cerin important este testabilitatea i se are n vedere posibilitatea automatizrii testelor de modul i funcionale; obiectivul principal este livrarea de software de calitate la timp; n privina testrii se scriu mai nti cazurile de test i dup aceea programele care urmeaz a fi testate. Obiectivul metodologie SCRUM ei este de a furniza software de calitate ntr-o serie de trei pn la opt intervale de timp care dureaz cel mult o lun; etapele metodei, stabilirea cerinelor, analiza, proiectarea, evoluia i livrarea sunt grupate ntr-un stagiu; aceste stagii de deruleaz pn la finalizarea produsului software. Metodologia Crystal Clear se adreseaz proiectelor la care lucreaz echipe ntre 4 i 6 oameni; se bazeaz pe elementele de succes ale proiectelor precedente, iar accentul este pus pe comunicaia continu n cadrul echipei. Toate aceste metodologii pun un accent important pe calitate i pe testarea rezultatelor obinute. [DIAS00] Concluzii Utilizarea instrumentelor CASE n analiza i proiectarea aplicaiilor software pentru anumite tehnici i metode de dezvoltare conduce la: creterea productivitii n activitatea de analiz i proiectare; avnd la dispoziie o multitudine de posibiliti de descriere grafic a modelelor i faciliti de verificare a consistenei acestora, efortul necesar analizei i proiectrii se reduce; obinerea de documente unitare n fiecare etap de dezvoltare; dup fiecare etap sunt

generate automat documente specifice pentru descrierea modelelor elaborate i a relaiilor dintre acestea; posibilitatea generrii de cod surs pentru modelele realizate; modelele detaliate obinute permit generarea de cod n diverse limbaje de programare (C++, Java, VB); sunt create clasele i prototipurile metodelor, urmnd ca algoritmii i funcionalitatea acestora s fie completate de ctre programatori. La ora actual exist o multitudine de instrumente CASE care suport att metode de analiz i proiectare structurate, ct i metode orientate obiect. Bibliografie [BODE01] Bodea, Constana-Nicoleta, Sabu, Gheorghe, Posdarie, Elena Sisteme Informatice Economice. Analiz i proiectare orientate obiect utiliznd UML, Editura Inforec, Bucureti, 2001 [BOOC91] Booch, Grady, Object Oriented Design with Applications, The Benjamin/Cummings Publishing Company, Inc., 1991 [DIAS00] Dias, Paulo Lightweight methodologies, INESC, 2000 [JACO96] Jacobson, Ivar et al ObjectOriented Software Engineering A Use Case Driven Approach, Addison-Wesley, 1996 [MIHA98] Mihalca, Rodica, Fabian, Csaba, U, Adina, Simion, Felix Analiz i proiectare orientate obiect Instrumente de tip CASE, Editura Societatea Autonom de Informatic, Bucureti 1998 [MIHA02] Mihalca, Rodica Programe aplicative, Biblioteca Virtual ASE, Bucureti, 2002 [POCA04] Pocatilu, Paul Project Portfolio Management Applications, Revista Economy Informatics, No. 1, 2004, pp.73-76 [RUMB96] Rumbaugh, James E. To Form a More Perfect Union: Unifying the OMT and Booch Methods, JOOP, Vol. 8, No. 8, January 1996, pp. 14-18, 65 [SHLA92] Shlaer, Sally A Comparison of OOA and OMT, Project Technology, 1992