Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Managementul Proiectelor Software

management


Managementul Proiectelor Software






Productia Software este efectul cresterii într-un ritm foarte sustinut al industriei IT, datorita noilor tehnologii care au aparut în viata de zi cu zi a populatiei. Ca urmare a acestui fapt, productia software poate fi privita ca orice alt tip de productie, unde, urmare a unui proces de productie avem un produs final, în cazul de fata fiind vorba de un program pentru un Computer Personal, un program pentru Telefonul Mobil, un program pentru Masina de spalat inteligenta si enumerarea ar putea continua, deoarece aproape toate produsele noi ce apar pe piata detin în interiorul lor un microcomputer.


Analog cu productia clasica, si productia software are un caracter inovativ care cere din partea dezvoltatorului un volum urias de creativitate, dar care creativitate nu poate fi pusa în responsabilitatea unui singur om, deoarece creierul uman are limitele sale. Ca urmare a acestui fapt, munca si creativitatea trebuie distribuita într-un mod riguros în echipe ce vor fi specializate pe anumite teme. În lipsa unui management bine structurat si în absenta unei organizari, proiectele software de mare anvergura pot determina pierderi de timp, resurse si termene de livrare, care se vor concretiza în pierderi financiare.


Din acest motiv s-au creat un set de procese organizationale care trebuie de faca fata urmatoarelor constrângeri:

-     737n1324h ;     737n1324h ;  acopera cerintele clientilor

-     737n1324h ;     737n1324h ;  proiectul se finalizeaza în timpul propus

-     737n1324h ;     737n1324h ;  în procesul de dezvoltare nu sunt depasite costurile alocate.


Principala diferenta dintre Productia Industriala si Productia Software este ca în primul caz se urmaresc cu precadere procesele legate de bunuri materiale, care urmaresc multiplicarea conform cu specificatiile prototipului, iar în cazul productiei software este vorba de un ansamblu de activitati organizate legate în principal de partea de dezvoltare de programe, parti de programe sau sisteme de programe, în care scopul final este atingerea caracteristicilor bine definite ale produsului de dezvoltat.


Motivele care stau la baza managementului proiectelor software:

-     737n1324h ;     737n1324h ;  pentru a se face o estimare initiala a costurilor legate de proiect, si a termenelor de predare ale proiectelor

-     737n1324h ;     737n1324h ;  pentru a verifica daca programul propus este în grafic, iar în caz ca apar unele probleme legate de termeni de livrare sa se ia deciziile corespunzatoare

-     737n1324h ;     737n1324h ;  pentru a avea un control asupra calitatii produsului dezvoltat, tinând cont ca, calitatea produsului este masura prin care se poate vedea satisfactia clientului pentru produsul achizitionat de la producator.

De obicei un produs software este obtinut printr-un proces de dezvoltare, care este compus din mai multe faze. Aceste etape sunt prezentate în Fig1.

Fig.1 Fazele de dezvoltare a produsului software


Cele 4 etape pot fi descrise astfel:

  1. Stabilirea Planului (Planning)
    • Definirea produsului
    • Estimarea riguroasa a resurselor cerute de realizarea produsului
    • Stabilirea dependentelor între activitati si costuri
    • Stabilirea termenelor de sfârsit ale diferitelor faze de productie
    • Stabilirea task-urilor din interiorul actiunilor ce urmata de     atriburirea lor unei anumite persoane sau unui grup de programatori.
  2. Executia - partea efectiva de dezvoltare a produsului. De obicei numai aceasta faza este acceptata de catre programatori
  3. Controlul - se vor avea în vedere urmatoarele obiective:

·     737n1324h ;    Estimarea costurilor

·     737n1324h ;    Verificarea termenelor de executie (daca se încadreaza sau nu în timpul planificat)

·     737n1324h ;    Verificari de calitate


  1. Finalizarea proiectului - nu se poate spune ca aceasta este ultima etapa si produsul este final, nu mai intervin modificari asupra lui, pentru ca si în timpul functionarii produsului pot sa fie iasa în evidenta anumite probleme. De obicei pentru fiecare produs,     producatorul aloca resurse pentru întretinerea aplicatiilor si pentru a putea rezolva problemele ce apar în timpul functionarii produsului.

Se poate vedea ca din acest ciclu de productie software doar executia are de a face efectiv cu produsul ce trebuie livrat, restul proceselor sunt strict legate de management.



Procese, activitati si task-uri din interiorul unui proiect software


Multitudinea si complexitatea problemelor legate de dezvoltarea software au impus realizarea unor standarde pentru o abordare sistematica a unui proiect. Ca urmare a acestui fapt ISO (International Standard Organization) a creat un standard adresat în principal dezvoltatorilor software, acest standard fiind ISO/CEI 12207:1995.

Prin acest standard se urmareste realizarea unei platforme comune de dezvoltare si folosirea unei terminologii bine definite.

De comun acord cu standardele Proiectarii Software se definesc urmatorii termeni:

·     737n1324h ;    Proces - un ansamblu de resurse si activitati independente orientate pentru realizarea unui scop bine definit

·     737n1324h ;    Activitate - este o parte a unui proces, constituie un numar de actiuni prin care resursele legate de proces sunt folosite pentru realizarea proiectului

·     737n1324h ;    Task - componenta a activitatilor legat de una sau mai multe activitati care este asumat unei persoane sau unui grup de persoane, el având responsabilitatea de a duce la bun sfârsit task-ul în timpul prognozat.


Din punctul de vedere al unui proiect software avem 3 tipuri de procese:

·     737n1324h ;    Procese primare - legate în principal de realizarea efectiva a produsului software. Principalele parti ale acestui proces fiind achizitia proiectului, alocarea resurselor pentru proiect, dezvoltarea produsului, procese legate de utilizarea produsului si nu în ultimul rând întretinerea produsului.

·     737n1324h ;    Procese de suport a produsului software:

-     737n1324h ;     737n1324h ;  realizarea documentelor necesare pentru procesul de dezvoltare (planuri de actiune, rapoarte, specificatii, standarde interne, documente asociate ...);

-     737n1324h ;     737n1324h ;  realizarea unui sistem de management al produsului software, pentru verificarea modificarilor realizate de la o versiune software la alta versiune software, stabilirea versiunilor produsului, crearea unei componente care ne poate da starea produsului ( functionalitati, disfunctionalitati, erori)

-     737n1324h ;     737n1324h ;  realizarea proceselor de asigurare a calitatii - ce se defineste ca fiind un ansamblu de activitati care verifica într-un mod obiectiv, daca produsul software realizat îndeplineste specificatiile cerute si daca în dezvoltarea produsului s-au urmarit procesele de dezvoltare interne

-     737n1324h ;     737n1324h ;  procese de testare - activitati care urmaresc verificarea produsului rezultat în urma procesului de dezvoltare.

-     737n1324h ;     737n1324h ;  Procese de validare - definesc un ansamblu de activitati care verifica daca produsul software aflat în ultima faza, satisface cerintele avute în planul proiectului.

-     737n1324h ;     737n1324h ;  Procese de auditare - este un set de activitati orientate spre a certifica daca produsul realizat se încadreaza în anumite normative, cerinte si programe. Auditarea nu are un impact asupra produsului final, prin acest proces verificându-se daca procesele primare sunt executate conform specificatiilor.

·     737n1324h ;    Procese organizationale, sunt legate de infrastructura în acest caz referindu-ne efectiv la hardware, software, unelte de lucru, tehnici, standarde, cladiri folosite pentru facilitarea procesului de dezvoltare, întretinerea si exploatarea acestor cladiri pentru a fi complet operabile pentru dezvoltarea de activitati software. De asemenea aceste procese urmaresc si realizarea trainingurilor pentru programatori, cooptarea unor noi angajati, si chiar îmbunatatirea anumitor procese de productie software.


Procesul de dezvoltare software


Cea mai mare parte a întregului proiect software cu cel mai mare suport din partea celorlalte procese conexe.

Principalele activitati ce se executa în cadrul acestui proces sunt:

1.     737n1324h ;  Initializarea procesului :

Va lua în considerare utilizarea unui ciclu de viata al produsului, în concordanta cu dimensiunea, complexitatea si domeniul de aplicabilitate al produsului software ce urmeaza a fi dezvoltat. Totodata se va elaborarea un Plan de Realizare al Proiectului, bazat pe documentatia proceselor, acest plan urmând urmatoarele reguli:

·     737n1324h ;    Utilizarea unor anumite standarde, metode si unelte de dezvoltare specifice, acestea fiind în strânsa corelare cu procesele legate de infrastructura disponibila

·     737n1324h ;    Împartirea activitatilor în task-uri, identificarea cunostintelor necesare pentru finalizarea task-urilor (cunoasterea unui anumit mediu de dezvoltare, a unui anumit limbaj de programare)

·     737n1324h ;    Identificarea persoanei înzestrate cu aceste abilitati, iar în cazul în care nu exista o astfel de persoana, realizarea de traininguri pentru persoana careia i se va aloca acest task

·     737n1324h ;    Identificarea proceselor de dezvoltare

·     737n1324h ;    Identificarea rezultatelor ce trebuiesc realizate pe parcursul procesului de dezvoltare, în strânsa legatura cu caracteristicile proiectului.


2.     737n1324h ;  Analiza cerintelor Software si de Sistem

Ca si rezultat final al acestui proces, un document numit 'Specificatii' va fi creat. În acest document vor fi trecute toate cerintele legate de proiect cum ar fi:

·     737n1324h ;    Optiunile si posibilitatile de lucru ale produsului software si ale sistemelor

·     737n1324h ;    Securitatea, ergonomia si cerintele financiare legate de produs

·     737n1324h ;    Infrastructura si resurse umane necesare

·     737n1324h ;    Interfata cu utilizatorul si cu alte componente software sau sisteme software existente

·     737n1324h ;    Exploatarea si întretinerea produsului software

·     737n1324h ;    Documentatia pentru utilizatorul final al produsului software

De asemenea în cadrul analizei se definesc testele de Validare a produsului.


3.     737n1324h ;  Arhitectura si designul sistemului

La baza acestui pas stau documente legate de:

  • Componentele hardware necesare si interconectarea dintre aceste componente
  • Configurarile software ce trebuiesc realizate pentru a corespunde cu platforma hardware
  • Operatiile manuale permise de catre sistem
  • Configurarea interfetelor atât pentru utilizatorul final cât si pentru componentele software ce urmeaza a folosi facilitati ale produsului dezvoltat
  • Arhitectura de nivel înalt a produsului software (interfete între componente precum si structura generala)
  • Versiunea preliminara a manualului de utilizare si administrare pentru utilizator
  • Versiunea preliminara a planului de integrare a produsului

4.     737n1324h ;  Designul detaliat al produsului Software

Elaborarea unui set de documente care detaliaza principiile de baza. Se vor urmarii urmatori pasi:

  • Detalierea fiecarei componente software, acest lucru însemnând descompunerea produsului final software în unitati functionale avându-se în obiectiv specificarea rolului, a interfetei unitatii, chiar si ciclul de viata pentru fiecare unitate software. Design-ul detaliat trebuie sa permita codificarea directa a componentelor fara a fi nevoie de informatii suplimentare
  • Detalierea structurii proiectului bazat pe datele de baza
  • Specificarea Test Planului pentru fiecare unitate software in parte
  • Reactualizarea planului de testare a întregului sistem

5.     737n1324h ;  Codarea - implementarea efectiva a fiecarei unitati software, avându-se în vedere regulile de codare software si obtinerea unui produs compatibil cu cerintele date în faza de design al unitatii.

6.     737n1324h ;  Testarea codului scris - poarta numele de 'Qualification Test'. Este realizata conform cu planul de testare al unitatii software si trebuie sa urmareasca daca rezultatele testelor sunt documentate ca si Rapoarte de testare, iar problemele legate de buguri software sunt rezolvate urmând procesul de remediere al defectelor software.

7.     737n1324h ;  Integrarea sistemului - prezinta un set de activitati legate de integrarea componentelor software cu componentele hardware sau cu elemente componentelor ale altor sisteme.

8.     737n1324h ;  Teste de integrare - poarta numele de 'System qualification test ' si verifica functionarea corecta a întregului sistem, realizeaza rapoartele de testare si în cazul aparitiei erorilor sau a problemelor se recurge la rezolvarea defectelor prin aplicarea proceselor de remediere software.

9.     737n1324h ;  Instalarea Software-ului - este o problema legata de instalarea produsului software pe platforma utilizatorului (PC, telefon mobil, ...).

  • Se va urmarii realizarea unui Plan de Instalare în care se vor specifica actiunile initiale si resursele necesare pentru a putea instala produsul de catre utilizator. Totodata se va urmarii realizarea unei proceduri prin care utilizatorul final sa poata sa instaleze produsul fara a fi nevoit a face apel la dezvoltatorul programului.
  • Instalarea efectiva a sistemului conform cu Planul de Instalare
  • Înregistrarea evenimentelor ce apar pe parcursul instalarii produsului în documente specifice.

Suportul si validarea sistemului - este dat de catre programator pentru utilizatorul final si consta în:

·     737n1324h ;    Asistenta si teste de validare a sistemului,

·     737n1324h ;    Validarea sistemului conform cerintelor date în specificatii,

·     737n1324h ;    Rezultatele testarilor vor fi salvate în documente specifice,

·     737n1324h ;    Daca apare vreun defect pe parcursul functionarii, problema va fi rezolvata conform Proceselor de remediere a defectelor

·     737n1324h ;    În caz de sfârsit fericit al acestui pas, se poate considera ca procesul de dezvoltare sa terminat.


Ciclul de viata al unui proiect software


Pornind de la Planul proiectului, trebuie observat ca în cadrul procesului de dezvoltare trebuie urmariti anumiti pasi, si în acelasi rând trebuie observat ca produsul software trebuie întretinut. Ca si activitate în procesul de dezvoltare, ciclul de viata al unui proiect este vazut ca si o activitate de dezvoltare si suport al produsului software.

Principalele modele de descriere a ciclului de viata al unui proiect sunt:

- modelul cascadei - este un model liniar, clasic, fiind cel mai vechi. In figura 2 este prezentat modelul cascada. Aplicabil în proiecte de complexitate redusa sau în cazul în care cerintele initiale sunt foarte bine definite.

Fig.2 Modelul Cascadei


-     737n1324h ;     737n1324h ;  Modelul V - de asemenea este un model liniar care cere specificatii bine definite sau disponibilitatea programatorului de a participa efectiv la crearea specificatiilor proiectului. Exemplul modelului V este prezentat in Figura 3.

Fig.3 Modelul V


-     737n1324h ;     737n1324h ;  Prototip - este un model în care clientul nu poate participa la realizarea unei liste bine definite de cerinte. Din acest motiv analiza si design-ul se realizeaza într-un mod iterativ. Rezultatul obtinut va modifica iterativ analiza si designul sistemului. Din acest motiv sunt necesare unelte rapide pentru realizarea prototipurilor într-un timp foarte scurt. Figura 4 prezinta modelul prototip

Figura.4 Modelul Prototip


-     737n1324h ;     737n1324h ;  Modelul Spirala: folosit cu precadere în proiecte cu o complexitate marita si cu riscuri de dezvoltare marite, în proiecte de urmeaza sa foloseasca tehnologi foarte speciale, proiecte în care nu se stie modalitatea concreta în care se pot realiza problemele clientului, proiecte foarte scumpe. Acest model poate fi vazut ca o repetare a ciclurilor liniare, fiecare ciclu adaugat spiralei, adauga în acelasi timp noi functionalitati produsului software. În figura 5 este prezentat modelul spirala.

Fig5. Modelul Spirala




În concluzie, realizarea unui produs software, este strâns legata de urmarea unor pasi bine stabiliti, deoarece numai asa se pot reliza proiecte de anvergura care sa poata fi întretinute usor în timp, si care sa determine costuri productie relativ scazute. Ca urmare a acestor idei, programatorul trebuie sa stie ca un produs software bun, nu este acel produs care realizeaza functiunile cerute de client, ci este produsul care pe suplimentar acestor cerinte ofera si stabilitatea functionarii în timp, posibilitatea de a putea fi adaugate noi caracteristici programului dezvoltat, o întretinere usoara a produsului, si posibilitatea reutilizarii componentelor software si în alte proiecte.


Document Info


Accesari: 5335
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )