Ordin nr.259 din 29.12.2020 cu privire la aprobarea standardelor ocupaţionale "351401 Dezvoltator web" şi "351203 Programator"
MINISTERUL ECONOMIEI ŞI INFRASTRUCTURII
O R D I N
cu privire la aprobarea standardelor ocupaţionale
"351401 Dezvoltator web" şi "351203 Programator"
nr. 259 din 29.12.2020
(în vigoare 15.02.2021)
Monitorul Oficial al R. Moldova nr. 9-12 art. 30 din 15.01.2021
* * *
Abrogat: 12.08.2026
Ordinul Ministerului Dezvoltării Economice şi Digitalizării nr.131 din 07.08.2026
În conformitate cu prevederile pct.19 din Metodologia de elaborare a standardelor ocupaţionale, aprobată prin Hotărârea Guvernului nr.678/2020, precum şi în baza Regulamentului cu privire la organizarea şi funcţionarea Ministerului Economiei şi Infrastructurii, aprobat prin Hotărârea Guvernului nr.690/2017,
ORDON:
1. Se aprobă standardele ocupaţionale:
"351401 Dezvoltator web" (studii profesional tehnice), conform anexei nr.1;
"351203 Programator" (studii profesional tehnice), conform anexei nr.2.
2. Direcţia politici şi reglementări în domeniul societăţii informaţionale şi economiei digitale va asigura publicarea standardelor ocupaţionale în Monitorul Oficial al Republicii Moldova.
3. Controlul asupra executării prezentului ordin mi-l asum.
| MINISTRU | Anatol USATÎI |
| Nr.259. Chişinău, 29 decembrie 2020. | |
Anexă nr.1
la Ordinul Ministerului
Economiei şi Infrastructurii
nr.259 din 29 decembrie 2020
STANDARD OCUPAŢIONAL
Dezvoltator web (studii profesional tehnice)
Codul CORM: 351401
Nivelul CNCRM: 4
Coordonatori:
1. Veronica Midari – expert în elaborarea SO, Centrul de Inovare şi Politici, dr. în ştiinţe economice;
2. Petru Todos – coordonator proiect, Universitatea Tehnică a Moldovei, dr. în ştiinţe tehnice.
Grupul de lucru pentru elaborarea Profilului Ocupaţional:
1. Veaceslav Barbarii – "Amdaris" SRL, dezvoltator software (.NET);
2. Eugeniu Cebanu – "Amdaris" SRL, dezvoltator software senior;
3. Ion Vîrlan – Banca Naţională a Moldovei, inginer coordonator, dezvoltator web (Java);
4. Vladimir Căruntu – "Regular Expressions" SRL, dezvoltator front-end;
5. Magilina Galcu – "El Compasso-Artitech" SRL România, programator senior;
6. Ion Vasilov – "Pentalog CHI" SRL, Project manager software development;
7. Irinel Moldovan – "Arhipelago Interactive" SRL România, tehnician web.
Grupul de lucru pentru elaborarea Standardului Ocupaţional:
1. Andrei Hohan – "Fiatest" SRL România, Director, expert în elaborarea SO, consultant TIC şi securitatea informaţiei;
2. George Antoci – "BSD Management" SRL, manager de proiect, consultant TIC şi securitatea informaţiei;
3. Maria Cucu – "Fiatest" SRL România, expert în elaborarea SO, expert în managementul calităţii în proiecte TIC;
4. Alina Popa – "Fiatest" SRL România, expert în elaborarea SO, expert în management de proiecte TIC;
5. Anatol Oprea – "T2" SRL România, director executiv, manager dezvoltare software;
6. Eugeniu Cebanu – "Amdaris" SRL, dezvoltator software senior.
Evaluat şi validat de către:
1. Ghenadie Cernei – BC "Moldova Agroindbank" SA, director servicii electronice, Preşedinte al comisiei;
2. Ion Aremescu – Î.M. "Enterprise Business Solutions" SRL, director, dezvoltator web, Membru al comisiei;
3. Nicolae Godina – Î.M. "Enterprise Business Solutions" SRL, dezvoltator web, Membru al comisiei.
Descrierea ocupaţiei
Definiţia ocupaţiei:
Dezvoltatorul web (studii profesional tehnice) participă la dezvoltarea de site-uri web pe partea de front-end cu implicarea în procesul de creare design pentru interfeţe de site-uri (user interface design), dezvoltarea funcţiilor solicitate de client (user experience design), precum şi pe partea de back-end cu utilizarea programării scripturilor, utilizarea bibliotecilor software, menţinerea conexiunii cu serverul, studierea comportamentului site-ului web, depanarea site-ului web.
Deţine cunoştinţe legate de limbaje de programare web, limbajele foilor de stil, software de creaţie, software pentru editare grafică şi design, servere proxy, metodologii de asigurare a calităţii, baze de date, sisteme de operare, protocoale de comunicare, analiză jurnale de activitate (loguri), paneluri de gestiune (Plesk, cPanel, WHM), securitatea informaţiei.
La unele companii, activităţile de dezvoltare a site-urilor web sunt divizate pe partea de interfaţă a site-urilor (partea de client) şi pe partea de elaborare a algoritmului site-ului (partea de server). Dezvoltatorii implicaţi pot fi divizaţi în: Dezvoltatori front-end şi Dezvoltatori back-end respectiv.
O abordare mai recentă pe care trebuie să o respecte dezvoltatorii web ţine de "Economia verde în domeniul TIC (Green IT)". Acest principiu propune să reducă la minimum impactul negativ al operaţiunilor TI asupra mediului prin proiectarea, fabricarea, operarea şi scoaterea din uz a tehnicii de calcul şi a produselor legate de computer într-un mod ecologic.
Condiţiile de muncă (mediul fizic, socio-organizaţional): Dezvoltatorul web lucrează în echipă cu specialişti din domeniul TIC în oficii dotate cu computere conectate în reţele. Tot mai prezentă este modalitatea de lucru la distanţă.
Riscurile profesionale:
- Riscurile de sănătate şi psihice asociate cu modul sedentar de viaţă.
- Riscuri asociate cu suprasolicitarea sistemului vizual.
Programatorii, precum şi alte persoane ce activează în domeniul TIC urmează să fie informaţi despre riscurile menţionate. Angajatorii urmează să-şi asume tratarea riscurilor profesionale.
Perspectiva pe piaţa muncii este determinată de solicitarea şi importanţa tot mai mare a tehnologiilor digitale care facilitează interacţiunea profesională şi personală în baza platformelor digitale, site-urilor web, blogurilor, vlogurilor, atât cu scopuri profesionale, cât şi în scopuri de divertisment. Economia digitală care se dezvoltă intens în întreaga lume va determina în continuare diversificarea şi promovarea interacţiunii şi formării reţelelor web. Astfel, acest domeniu în perspectivă va fi unul extrem de solicitat, specialiştii fiind întrebaţi, capabili de a creşte în carieră şi de a forma abilităţi pe orizontală în domenii adiacente.
Instrumente utilizate în procesul de lucru:
Limbaje de programare de bază şi de creare scripturi, solicitate pe piaţa muncii: JavaScript, TypeScript, PHP, Python, Java, PERL, VB, C#, JSP, Elm, Kotlin (Android), Swift (iOS), PL/SQL
Biblioteci şi frameworkuri: Bootstrap, JQuery, Laravel, Redux, Highcharts, JPGraph, Django, React.js, Angular.js, ASP.NET, Vue.js, Spring, Node.js
Instrumentele TIC de bază utilizate pentru testarea şi depanarea programelor şi a codului software: WebStorm, POSTMAN, CSS Lint, CHrome DevTools, Firefox Developer Tools, Safari Develop Meniu, JSON Formatter and Validator, Cross browser testing tools, Node.js Inspector, SoapUI, Jmeter, Sentry, Robot Framework.
Instrumente de depanare integrate în mediile de dezvoltare: Eclipse, IntelliJ, Visual Studio, Visual Studio Code, Android Studio Debuggers, Xcode.
Instrumente pentru versionare, gestionarea configuraţiei software: Git, SVN, Microsoft Team Foundation Server, Ansible, NPM.
Instrumente Continuous Integration / Continuous Delivery: Jenkins, GitLab.
Alte instrumente: HTML (limbaj de marcare), CSS (limbaj de gestiune a foilor de stil).
Tendinţele de viitor în domeniu:
- Dezvoltarea web determină trecerea de la dezvoltarea paginilor web simple şi statice spre crearea aplicaţiilor web complexe şi dinamice, cum ar fi comerţul electronic, învăţarea pe platforme electronice, reţele sociale, site-uri capabile de a realiza calcule, diagrame, date complexe schimbătoare în timp. Un Dezvoltator web cu experienţă poate realiza sarcini legate de aplicaţiile web, exploatând tehnologii atât pe partea de server, cât şi pe partea clientului, precum şi poate participa la dezvoltarea aplicaţiilor de tip hibrid.
- În domeniul TIC există tot mai mult tendinţa de a diviza ocupaţia de Dezvoltator web pe funcţii specifice: UI designer, UX designer, Dezvoltator front-end pe diferite tehnologii (JavaScript, ReactJS, VueJs, Angular, etc.), Dezvoltator back-end pe diferite limbaje de programare.
- Creşterea importanţei Dezvoltatorilor web datorită tendinţei actuale de a transfera aplicaţii desktop pe web şi a permite utilizatorului să acceseze datele independent de computer şi de locul în care lucrează. Este evidentă sporirea popularităţii şi solicitării site-urilor dinamice, cu funcţionalităţi complexe şi personalizate. Pentru dezvoltarea a astfel de produse sunt necesare competenţe atât front-end cât şi back-end. Drept urmare, dezvoltatorii web cu competenţe mai extinse, care pot acoperi segmentele front-end şi back-end, au oportunităţi mai bune de angajare şi de creştere profesională.
- Conceptul de "economie verde" a dobândit o importanţă tot mai mare în toate domeniile, inclusiv TIC. Principiile acesteia au devenit o preocupare din ce în ce mai mare deoarece au impact asupra afacerii, societăţii şi un impact semnificativ asupra mediului. Economia verde în TIC abordează reducerea consumului de energie asociată cu utilizarea hardware, software de ex: îmbunătăţirea eficienţei energetice a hardware şi a centrelor de date, consolidarea serverelor folosind software de virtualizare şi reducere a poluării provenite de la deşeurile asociate echipamentelor utilizate.
Date specifice:
Blocurile principale de activităţi de care este responsabil Dezvoltatorul web sunt următoarele:
- Participă la planificarea / proiectarea aplicaţiei web: după definirea cerinţelor tehnice ale aplicaţiei, în baza obiectivelor şi cerinţelor clientului şi proiectarea aplicaţiei web de către Manager şi Arhitectul Software, Dezvoltatorul web participă la stabilirea structurii generale a site-ului (aplicaţiei) Web, identificarea elementelor de conţinut, identificarea specificaţiilor tehnice conform structurii generale, alegerea platformei de stocare pentru bazele de date, stabilirea protocoalelor de comunicare, selectarea instrumentelor şi a limbajului de programare pentru realizarea proiectului.
- Participă la dezvoltarea aplicaţiei web: după determinarea proceselor funcţionale, în baza specificaţiilor tehnice, alegerea limbajelor şi tehnologiilor de programare pe partea de client şi server de către Manager şi Arhitectul Software, Dezvoltatorul web participă la elaborarea codurilor şi bibliotecilor reutilizabile, transpunerea cerinţelor (necesităţilor) părţilor interesate în coduri front-end, realizarea conexiunii dintre partea front-end şi back-end în baza legăturii cu serverul, integrarea soluţiei de stocare a datelor (databases, key-value stores, blob stores, etc.), definirea structurii bazei de date pentru extragerea informaţiei, administrarea conţinutului dinamic al site-ului, implementarea cerinţelor de securitate şi de protecţie a datelor.
Această etapă de lucru în activitatea specialistului este una cheie. Capacitatea specialistului în elaborarea codului site-ului pentru interacţiunea cu bazele de date este esenţială. Instrumentele de bază cu care operează specialistul: pentru site-urile statice se aplică HTML, CSS, JavaScript; pentru site-urile dinamice se aplică limbaje de programare Ruby, Java, Python, PHP, Perl, Erlang, C#, etc. şi limbaje specifice pentru sisteme de gestiune a bazelor de date, inclusiv diferite dialecte ale SQL.
- Participă la testarea aplicaţiei web: verificarea compatibilităţii site-ului pe diferite tipuri de navigatoare (browsere), la diferite rezoluţii şi proporţii ale ecranului de vizualizare, verificarea compatibilităţii site-ului cu diverse sisteme de operare, testarea interfeţei cu utilizatorii aplicaţiei Web, testarea funcţionalităţii legăturilor interne şi externe, testarea accesibilităţii aplicaţiei Web pentru diverşi utilizatori, testarea aplicaţiei Web prin efectuarea testelor de securitate şi integritate a datelor, asigurarea că livrabilele sunt conforme cu specificaţiile funcţionale şi non-funcţionale, participarea la analiza codului pentru a asigura că toate caracteristicile implementate sunt funcţionale, fiabile, pot fi menţinute şi susţinute.
- Participă la implementarea aplicaţiei web: în dependenţă de complexitatea aplicaţiei, independent, sau limitat împreună cu inginerii pe Dezvoltare şi Operare (DevOps) configurarea platformei hardware şi software conform cerinţelor, instalarea şi testarea site-ului (aplicaţiei şi serviciilor) pe serverul-gazdă, verificarea stării sistemului de securitate, înregistrarea site-ului în motoarele de căutare şi promovare.
Competenţe generale pe care trebuie să le deţină Dezvoltatorul web sunt următoarele:
- Noţiunea de experienţă a utilizatorului (UX),
- Noţiunea de proiectare grafică,
- Programare pe calculator:
√ tehnici şi principii ale dezvoltării software,
√ paradigme de programare (programare orientată pe obiect, programare funcţională),
√ limbaje de programare,
√ medii integrate de dezvoltare.
- Elemente de programare web: HTML5, CSS3, JavaScript, PCRE.
- Cunoştinţe despre elementele fundamentale ale aplicaţiilor web: arhitecturi REST, arhitecturi client-server, protocoale de reţea, JSON, XML şi xPath, configuraţii de server web.
- Instrumente de identificare a erorilor în TIC (debugging).
- Sisteme de operare (Windows, Linux, etc.),
- Protocoale de comunicare securizată (SSH, TLS/SSL, etc.),
- Analiză jurnale de activitate (loguri) şi urme de audit,
- Paneluri de gestiune (Plesk, cPanel, WHM),
- Instrumente pentru versionare şi gestionarea configuraţiei software (SVN, Git, TFS, etc).
- Instrumente privind marketingul digital.
- Cunoaşterea la nivel de înţelegere a documentaţiei tehnice a limbii engleze este esenţială pentru practicarea profesiei şi dezvoltare.
- Cunoştinţe despre principiile economiei verzi în domeniul TIC (Green IT).
Fondul standardului ocupaţional
Dezvoltator web (studii profesional tehnice)
Competenţe generice (transversale) (CG)
CG1. Lucrul în echipă: conştientizarea rolurilor şi activităţilor specifice lucrului în echipă; aplicarea regulilor interne de lucru în echipă.
CG2. Comunicarea la locul de muncă: comunicare orală şi scrisă în limba maternă/străină; comunicare eficientă cu echipa de lucru şi cu clienţii, în vederea desfăşurării activităţilor la nivelul de performanţă solicitat de locul de muncă.
CG3. Rezolvarea de probleme şi luarea de decizii: utilizarea proceselor necesare pentru a rezolva situaţii care se abat de la normal sau situaţii în care s-au identificat oportunităţi de îmbunătăţire, în care soluţia nu este evidentă.
CG4. Dezvoltare profesională: accesarea, procesarea şi asimilarea de noi cunoştinţe şi deprinderi, deschidere către învăţarea pe tot parcursul vieţii, abilităţi de învăţare autonomă pe baza autoperfecţionării şi autodisciplinei.
CG5. Respectarea şi dezvoltarea valorilor şi a eticii profesionale: comportament responsabil şi etic pentru a asigura reputaţia profesiei; îmbinarea şi utilizarea cunoştinţelor, deprinderilor şi atitudinilor în vederea obţinerii rezultatelor, prin respectarea unui set minim de principii, valori şi reguli de conduită specifice moralei profesionale.
CG6. Utilizarea tehnologiei informaţiei şi comunicării: utilizarea eficientă de hardware (de exemplu, desktopuri, laptopuri, tablete, componente PC), software (de exemplu, sisteme de operare, aplicaţii, software de comunicare, colaborare şi planificare) şi dispozitive de comunicare (de exemplu, telefonie, dispozitive wireless, reţea şi sisteme wireless).
CG7. Aplicarea principiilor de calitate: respectarea instrucţiunilor de lucru, procedurilor, standardelor de calitate; implementarea de acţiuni corective şi preventive pentru a asigura îndeplinirea cerinţelor referitoare la calitate.
CG8. Aplicarea principiilor securităţii cibernetice în dezvoltarea software: cunoaşterea şi aplicarea mecanismelor pentru protejarea confidenţialităţii, integrităţii şi disponibilităţii datelor procesate, stocate, comunicate.
CG9. Aplicarea cerinţelor în domeniul securităţii şi sănătăţii în muncă: aplicarea cerinţelor privind desfăşurarea procesului de muncă, apărarea vieţii, integrităţii fizice şi psihice, sănătăţii lucrătorilor şi a altor persoane participante la procesul de muncă.
| Atribuţii şi sarcini de lucru | Competenţe profesionale specifice şi corelarea acestora cu sarcinile de lucru | Criterii de realizare a activităţilor asociate competenţelor profesionale |
| 1. Participarea la planificarea aplicaţiei web:
1.a Analizarea specificaţiilor tehnice definite de Managerul şi Arhitectul Software în baza obiectivelor şi cerinţelor funcţionale definite de către client; 1.b Colectarea cerinţelor funcţionale şi non-funcţionale cu privire la Interfaţă (front-end); 1.c Analizarea opţiunilor tehnologice pentru implementarea cerinţelor funcţionale şi non-funcţionale; 1.d Participarea la selectarea tehnologiilor şi soluţiilor tehnice pentru dezvoltarea, implementarea şi integrarea aplicaţiilor; 1.e Determinarea proceselor funcţionale ale aplicaţiei web în baza specificaţiilor tehnice; 1.f Participarea la proiectarea aplicaţiilor mobile şi web; 1.g Participarea la planificarea dezvoltării şi împărţirea proiectului în module. 2. Modelarea experienţei utilizatorului (User Experience): 2.a Dezvoltarea funcţionalităţilor de interfaţă cu utilizatorul, inclusiv interacţiuni, aranjări în pagină şi stiluri; 2.b Respectarea specificaţiei aplicaţiei şi proiectul grafic aprobat; 2.c Validarea implementării proiectului grafic şi a funcţionalităţii pe toate terminalele şi rezoluţiile desemnate; 2.d Implementarea interfeţelor funcţionale, performante şi ergonomice; 2.e Adaptarea interfeţei grafice în conformitate cu cea aprobată de către client; 2.f Validarea designului aplicaţiei cu clientul; 2.g Remedierea neajunsurilor relevate în urma testelor de utilizator (UAT); 2.h Ajustarea interfeţelor pentru a asigura funcţionalitatea pe toate dispozitivele ţintă – desktop, tabletă, telefon mobil, etc.; 2.i Implementarea funcţionalităţilor de accesibilitate a aplicaţiei pentru diferitele categorii de utilizatori, inclusiv utilizatori cu dizabilităţi. 3. Dezvoltarea aplicaţiei web: 3.a Participarea la elaborarea modulelor de cod în limbaje de programare folosind medii de dezvoltare integrate; 3.b Elaborarea codurilor şi bibliotecilor reutilizabile, pentru utilizări viitoare; 3.c Divizarea funcţiilor complexe în funcţii elementare; 3.d Optimizarea aplicaţiilor pentru îmbunătăţirea vitezei de răspuns şi a scalabilităţii; 3.e Reutilizarea modulelor funcţionale şi bibliotecilor existente; 3.f Actualizarea informaţiei cu privire la versiunile de cod şi progresul proiectului în sistemele dedicate; 3.g Aplicarea principiilor Green IT pentru reducerea impactului utilizării aplicaţiei dezvoltate asupra mediului înconjurător. 4. Integrarea componentelor aplicaţiei web: 4.a Realizarea conexiunilor dintre componenta front-end şi componentele back-end cu respectarea cerinţelor de integrare; 4.b Colaborarea cu dezvoltatorii back-end pentru a obţine specificaţii ale interfeţelor programabile APIs; 4.c Aplicarea funcţionalităţilor disponibile în interfeţe / servicii web pentru conectarea la sisteme back-end; 4.d Colectarea cerinţelor de integrare cu sisteme terţe; 4.e Participarea la definirea structurii bazei de date pentru accesarea datelor de pe server în formă optimală; 4.f Integrarea soluţiilor de stocare a datelor (databases, key-value stores, blob stores, etc.). 5. Testarea aplicaţiei web: 5.a Participarea la definirea cazurilor de testare; 5.b Verificarea compatibilităţii aplicaţiei cu terminalele şi rezoluţiile specificate; 5.c Testarea funcţionalităţii legăturilor interne şi externe a site-ului; 5.d Testarea accesibilităţii aplicaţiei Web pentru diverşi utilizatori; 5.e Asigurarea suportului utilizatorilor pentru testarea de utilizare; 5.f Remedierea neconformităţilor livrabilelor faţă de specificaţiile funcţionale şi non-funcţionale; 5.g Soluţionarea observaţiilor rezultate din testele de utilizare; 5.h Participarea la analiza codului pentru a asigura că toate caracteristicile implementate sunt funcţionale, fiabile, pot fi menţinute şi susţinute. 6. Implementarea aplicaţiei web în mediul funcţional (de producţie): 6.a Participarea în procesele de asigurare a calităţii intermediare şi finale; 6.b Implementarea mecanismelor de identificare şi autorizare a accesului; 6.c Aplicarea mecanismelor de control al accesului la funcţii şi la date; 6.d Implementarea mecanismelor de protecţie a datelor stocate; 6.e Aplicarea mecanismelor de limitare a retenţiei datelor cu caracter personal; 6.f Participarea la realizarea configuraţiei necesare funcţionării proiectului la utilizatorul final şi a instalării pe serverele de producţie; 6.g Participarea la realizarea configuraţiei necesare actualizării aplicaţiei; 6.h Oferirea instruirii necesare utilizatorului privind modul de utilizare al aplicaţiei, caracteristicile specifice funcţionale, generarea rapoartelor, etc. 7. Documentarea aplicaţiei web: 7.a Comentarea codului dezvoltat; 7.b Documentarea librăriilor funcţionale dezvoltate pentru a facilita reutilizarea ulterioară; 7.c Documentarea modificărilor efectuate în cadrul cererilor de modificare şi a versiunilor; 7.d Documentarea arhitecturii funcţionale a aplicaţiei; 7.e Documentarea interfeţelor modulelor dezvoltate; 7.f Colaborarea cu personalul specializat pentru elaborarea documentaţiei de suport şi utilizare. 8. Participarea la managementul neconformităţilor legate de aplicaţia web: 8.a Identificarea originii defecţiunilor componentelor sistemului; 8.b Remedierea neconformităţilor, erorilor, vulnerabilităţilor şi problemelor identificate în colaborare cu echipele asociate; 8.c Efectuarea ajustărilor relevante, bazate pe feedbackul intern şi extern; 8.d Remedierea vulnerabilităţilor identificate în urma testelor de securitate. |
1. Analizarea cerinţelor funcţionale şi non-funcţionale
(1.a, 1.b, 1.c, 4.d) |
1.1. Oferă feedback privind completitudinea şi adecvarea specificaţiilor funcţionale de referinţă, inclusiv asupra neconcordanţelor între cerinţele clientului, specificaţiile tehnice şi capabilităţile platformelor utilizate, dacă este cazul;
1.2. Documentează riguros opţiunile tehnologice pentru implementarea cerinţelor funcţionale şi non-funcţionale şi soluţia agreată; 1.3. Documentează riguros cerinţe de integrare cu sisteme terţe şi specificaţiile interfeţelor programabile oferite/apelate, inclusiv datele transferate şi procedurile de schimb de date. |
| 2. Proiectarea tehnică a dezvoltării aplicaţiei
(1.d, 1.e, 1.f, 1.g, 4.e) |
2.1. Respectă procedurile aprobate pentru selectarea tehnologiilor şi soluţiilor tehnice pentru dezvoltarea, implementarea şi integrarea aplicaţiilor;
2.2. Documentează corect şi complet procesele funcţionale ale aplicaţiei, realizate în baza specificaţiilor tehnice; 2.3. Defineşte şi documentează alocarea cerinţelor tehnice pe componentele proiectului. |
|
| 3. Dezvoltarea interfeţelor grafice cu utilizatorul (User Experience)
(2.a, 2.b, 2.c, 2.d, 2.h, 2.i) |
3.1. Dezvoltă funcţionalităţi de interfaţă cu utilizatorul, inclusiv interacţiuni, aranjări în pagină şi stiluri cu utilizarea instrumentelor şi cadrelor (frameworks) agreate şi aprobate;
3.2. Înţelege modul de aplicare şi realizează în practică cerinţele faţă de specificaţiile aplicaţiei şi proiectul grafic aprobat; 3.3. Documentează riguros validarea proiectului grafic şi a funcţionalităţii pe terminalele şi rezoluţiile desemnate; 3.4. Realizează elaborarea cu respectarea cerinţelor de performanţă, ergonomie şi funcţionare corectă pentru interfeţele aplicaţiei; 3.5. Adaptează interfaţa grafică în conformitate cu proiectul grafic aprobat de către client; 3.6. Realizează ajustarea / modificarea interfeţelor aplicaţiei pentru a asigura funcţionalitatea pe toate dispozitivele ţintă, conform necesităţilor; 3.7. Realizează interfeţele aplicaţiei cu respectarea cerinţelor faţă de accesibilitate pentru diferitele categorii de utilizatori, inclusiv utilizatori cu dizabilităţi. |
|
| 4. Dezvoltarea codului funcţional, optimizat şi reutilizabil
(3.a, 3.b, 3.c, 3.d, 3.e, 3.f) |
4.1. Elaborează componentele software alocate utilizând instrumentele şi cadrele (frameworks) aprobate;
4.2. Comentează codul dezvoltat cu informaţii suficiente pentru a facilita testarea, integrarea şi reutilizarea modulelor software dezvoltate; 4.3. Aplică bunele practici de optimizare a aplicaţiilor pentru îmbunătăţirea vitezei de răspuns şi a scalabilităţii; 4.4. Reutilizează modulele funcţionale şi bibliotecile, atunci când acesta sunt disponibile; 4.5. Documentează riguros conformitatea codului dezvoltat cu cerinţele aplicabile. |
|
| 5. Validarea dezvoltărilor pe baza feedbackului primit de la client
(2.e, 2.f, 2.g) |
5.1. Documentează riguros validarea designului aplicaţiei cu clientul intern sau extern, în conformitate cu procedurile aprobate;
5.2. Pune la dispoziţia utilizatorilor toate informaţiile necesare pentru realizarea testării de utilizare; 5.3. Documentează riguros remedierea observaţiilor relevate în urma testelor de utilizator (User Acceptance Testing - UAT). |
|
| 6. Implementarea mecanismelor de integrare
(4.a, 4.c, 4.e, 4.f) |
6.1. Înţelege şi respectă cerinţele de integrare la realizarea conexiunilor dintre componenta front-end dezvoltată şi componentele back-end;
6.2. Aplică funcţionalităţile disponibile în interfeţe / servicii web pentru conectarea la componentele back-end; 6.3. Oferă informaţii necesare pentru proiectare şi feedback asupra structurii bazei de date, pentru accesarea datelor de pe server în forma optimală. |
|
| 7. Asigurarea calităţii în procesul de dezvoltare
(5.a, 5.b, 5.c, 5.d, 5.f, 5.g, 5.h, 6.a) |
7.1. Defineşte cazuri de testare complete şi adecvate pentru specificaţiile şi cerinţele aplicabile;
7.2. Verifică şi documentează corect şi complet compatibilitatea aplicaţiei cu terminalele şi rezoluţiile specificate; 7.3. Documentează rezultatele testării de funcţionalitate a legăturilor interne şi externe a site-ului; 7.4. Documentează rezultatele testării de accesibilitate a aplicaţiei Web pentru diverşi utilizatori; 7.5. Documentează remedierea neconformităţilor livrabilelor faţă de specificaţii şi a observaţiilor rezultate din testele de utilizare; 7.6. Aplică instrumentele destinate asigurării calităţii şi metodele aprobate pentru analiza codului în scopul asigurării cerinţelor faţă de caracteristicile implementate; 7.7. Aplică procedurile şi politicile aplicabile cu privire la asigurarea calităţii în procesele de dezvoltare. |
|
| 8. Documentarea aplicaţiei web
(7.a, 7.b, 7.c, 7.d, 7.e, 7.f) |
8.1. Asigură documentare corectă şi completă pentru librăriile dezvoltate, conform cerinţelor aplicabile;
8.2. Documentează modificările efectuate urmare a cererilor de modificare şi versionării; 8.3. Documentează corect şi complet arhitectura funcţională a aplicaţiei, conform cerinţelor şi tehnicilor necesare; 8.4. Asigură documentarea completă şi corectă pentru interfeţele modulelor (componentelor) dezvoltate; 8.5. Răspunde operativ la solicitările personalului desemnat pentru redactarea documentaţiei suport de operare şi utilizare şi pune la dispoziţie informaţii complete şi relevante. |
|
| 9. Asigurarea mentenanţei aplicaţiei
(6.f, 6.g, 8.a, 8.b, 8.c, 8.d) |
9.1. Defineşte şi comunică parametrii de configurare necesari funcţionării proiectului la utilizatorul final şi instalării pe serverele de producţie;
9.2. Defineşte şi comunică parametrii de configurare necesari actualizării aplicaţiei; 9.3. Aplică cunoştinţele profesionale şi utilizează expertiza altor membri ai echipei şi identifică corect originea defecţiunilor componentelor sistemului; 9.4. Documentează riguros remedierea neconformităţilor, erorilor, vulnerabilităţilor şi problemelor în conformitate cu procedurile aprobate; 9.5. Ajustările efectuate în baza la feedbackul intern şi extern sunt oportune, relevante şi eficiente; 9.6. Documentează riguros remedierea vulnerabilităţilor identificate în urma testelor de securitate şi comunică cu toate părţile interesate în vederea validării remedierilor. |
|
| 10. Asigurarea securităţii datelor
(6.b, 6.c, 6.d, 6.e, 8.d) |
10.1. Aplică mecanisme de control al accesului la funcţii şi la date, în conformitate cu cerinţele tehnice şi normele de dezvoltare sigură aprobate;
10.2. Implementează mecanisme de protecţie a datelor stocate, în conformitate cu cerinţele tehnice şi normele de dezvoltare sigură aprobate; 10.3. Cunoaşte cerinţele specifice faţă de protecţia datelor cu caracter personal şi le aplică corect la locul de muncă; 10.4. Aplică mecanisme de limitare a retenţiei datelor cu caracter personal în conformitate cu cerinţele tehnice, principiile de protecţie a datelor cu caracter personal aprobate şi cu avizul responsabilului cu protecţia datelor, dacă este cazul; 10.5. Participă la remedierea vulnerabilităţilor identificate în urma testelor de securitate şi asigură documentarea lor; 10.6. Implementează mecanisme de identificare şi autorizare a accesului în conformitate cu cerinţele tehnice şi normele de dezvoltare sigură aprobate. |
|
| 11. Asigurarea de suport pentru utilizatori
(5.e, 6.h) |
11.1. Participă la procesul de instruire a utilizatorilor privind modul de utilizare al aplicaţiei, caracteristicile specifice funcţionale, generarea rapoartelor, etc.
11.2. Comunică în mod corect şi complet către utilizatori restricţiile şi precauţiile de utilizare, necesare pentru asigurarea bunei funcţionări a aplicaţiei dezvoltate; 11.3. Participă în mod eficient şi operativ în procesul de acordare a suportului către utilizatori şi soluţionare incidente sau cereri de deservire; 11.4. Comunică în mod corect şi complet către utilizatori informaţiile necesare pentru testarea de utilizare (UAT). |
|
| 12. Colaborarea cu echipa de elaborare
(1.a, 1.g, 4.b, 6.a, 7.f) |
12.1. Comunică operativ problemele apărute către echipa de elaborare;
12.2. Comunică cu grupul de lucru pentru identificarea soluţiilor optimale, prezintă eficient informaţia pe zona de responsabilitate; 12.3. Participă la şedinţele de lucru cu clientul şi prezintă informaţia în mod corect, complet şi eficient; 12.4. Respectă planificarea agreată, urmează jaloanele de proiect stabilite; 12.5. Raportează corect şi coerent în cadrul şedinţelor periodice de proiect, comunicând exact şi succint ce a realizat de la ultima şedinţă, ce are planificat pentru perioada următoare şi ce probleme a întâmpinat; 12.6. Utilizează eficient mijloacele şi procedurile de comunicare aprobate; 12.7. Utilizează instrumentele de management al dezvoltării, versiunilor şi implementării în conformitate cu procedurile aprobate. |
|
| 13. Aplicarea principiilor economiei verzi in domeniul TIC (Green IT)
(3.g) |
13.1. Identifică soluţiile optime pentru reducerea impactului utilizării aplicaţiei dezvoltate asupra mediului înconjurător;
13.2. Documentează impactul estimat al codului dezvoltat aspra obiectivelor relevante de mediu: consum energetic, emisii de carbon, după caz; 13.3. Consultă clientul privind beneficiile şi oportunităţile utilizării Green IT. |
Anexă nr.2
la Ordinul Ministerului
Economiei şi Infrastructurii
nr.259 din 29 decembrie 2020
STANDARD OCUPAŢIONAL
Programator (studii profesional tehnice)
Codul CORM: 351203
Nivelul CNCRM: 4
Coordonatori:
1. Veronica Midari – expert în elaborarea SO, Centrul de Inovare şi Politici, dr. în ştiinţe economice;
2. Petru Todos – coordonator proiect, Universitatea Tehnică a Moldovei, dr. în ştiinţe tehnice.
Grupul de lucru pentru elaborarea Profilului Ocupaţional:
1. Ecaterina Vizdoaga – "Amdaris" SRL, Quality and Standards Specialist;
2. Gabriel Gliboceanu – "Halley Soft" SRL, programator;
3. Ion Terzi – "Halley Soft" SRL, programator;
4. Vasile Ţîcău – "Halley Soft" SRL, şef Departament dezvoltare software;
5. Anatolie Prisăcaru – programator freelancer România;
6. Natalia Căruntu – "Regular Expressions" SRL, programator;
7. Ion Vasilov – "Pentalog CHI" SRL, Project manager software development;
8. Sorin Victor Tacpa – "Life Solutions" SRL România, programator;
9. Valentin Cristian Zaharia – "Life Solutions" SRL România, programator.
Grupul de lucru pentru elaborarea standardului ocupaţional:
1. Andrei Hohan – "Fiatest" SRL România, Director, expert în elaborarea SO, consultant TIC şi securitatea informaţiei;
2. George Antoci – "BSD Management" SRL, manager de proiect, consultant TIC şi securitatea informaţiei;
3. Maria Cucu – "Fiatest" SRL România, expert în elaborarea SO, expert în managementul calităţii în proiecte TIC;
4. Alina Popa – "Fiatest" SRL România, expert în elaborarea SO, expert în management de proiecte TIC;
5. Anatol Oprea – "T2" SRL România, director executiv, manager dezvoltare software;
6. Eugeniu Cebanu – "Amdaris" SRL, dezvoltator software senior;
7. Vladimir Căruntu – "Regular Expressions" SRL, dezvoltator front-end.
Evaluat şi validat de către:
1. Valentin Brăgaru – "Readcast" SRL, director executiv, dezvoltator software, Preşedinte al comisiei;
2. Alexandru Bîrca – "S&T Mold" SRL, dezvoltator software senior, Membru al comisiei;
3. Dumitru Gînu – ÎCS "Computaris International" SRL, dezvoltator software senior, Membru al comisiei.
Descrierea ocupaţiei
Definiţia ocupaţiei:
Programatorii (studii profesional tehnice) lucrează în echipă şi oferă asistenţă dezvoltatorilor de software / programatorilor de calificare mai înaltă la implementarea aplicaţiilor TIC (software) pe baza modelelor furnizate, utilizând limbajele, instrumentele, platformele şi experienţa specifică domeniului aplicaţiilor.
La etapa de proiectare a programului (sistemului) este realizată planificarea iniţială a modului în care va fi dezvoltat software. Este realizată crearea de modele şi diagrame care detaliază modul în care se va scrie codul. Acestea, de regulă, sunt elaborate la general de Arhitectul de Software şi Managerul proiectului. Programatorul (studii profesional tehnice) se implică în scrierea şi depanarea codului, proiectarea unei interfeţe a aplicaţiei sau a sistemului, oferind suport echipei de programatori.
Programatorul împreună cu întreaga echipa de dezvoltare scrie şi testează codul care permite funcţionarea aplicaţiilor şi programelor software. În plus, programatorii testează aplicaţii şi programe nou create pentru a se asigura că produc rezultatele aşteptate. Dacă acestea nu funcţionează corect, programatorii verifică codul la greşeli şi le înlătură sau participă la soluţionarea lor.
O abordare mai recentă pe care trebuie să o respecte programatorii ţine de "Economia verde în domeniul TIC (Green IT)". Acest principiu propune să reducă la minimum impactul negativ al operaţiunilor TI asupra mediului prin proiectarea, fabricarea, operarea şi scoaterea din uz a tehnicii de calcul şi a produselor legate de computer într-un mod ecologic.
Condiţiile de muncă (mediul fizic, social-organizaţional): Programatorul lucrează în echipă cu specialişti din domeniul TIC în oficii dotate cu computere conectate în reţele. Tot mai prezentă este modalitatea de lucru la distanţă.
Riscurile profesionale:
- Riscurile de sănătate şi psihice asociate cu modul sedentar de viaţă.
- Riscuri asociate cu suprasolicitarea sistemului vizual.
Programatorii, precum şi alte persoane ce activează în domeniul TIC urmează să fie informaţi despre riscurile menţionate. Angajatorii urmează să-şi asume tratarea riscurilor profesionale.
Perspectiva pe piaţa muncii a Programatorului este determinată de solicitarea şi importanţa tehnologiilor digitale. Tehnologiile digitale reprezintă un factor determinant critic al creşterii economice, securităţii naţionale şi competitivităţii internaţionale. Economia digitală are o influenţă profundă asupra economiei şi a bunăstării sociale a cetăţenilor. Astfel, acest domeniu în perspectivă va fi unul solicitat, specialiştii fiind întrebaţi, capabili de a creşte în carieră şi de a forma abilităţi pe orizontală în domenii adiacente.
Instrumente utilizate în procesul de lucru:
Limbaje de programare şi de creare scripturi: C, C# , C++, Java , JavaScript , PHP, Python, Ruby, ASP.
Frameworks: Angular, React, Vue, jQuery, Node.JS, Spring, Thorntail, Payara.
Baze de date: relaţionale (MySQL, PostgreSQL, Microsoft SQL Server, MariaDB, Oracle) ne-relaţionale (MongoDB, Cassandra, Redis, CouchDB).
Instrumente gestionare şi versionare Baze de Date: FlyAway, Liquibase.
Medii de dezvoltare integrate: JetBarains Toolbox App (full set), Eclipse, Visual Studio Code, NetBeans.
Instrumente Big Data: ELK Stack (Beats, Elasticsearch, Logstash, Kibana), Hadoop.
Instrumentele TIC de bază utilizate pentru testarea şi depanarea programelor şi a codului software: Selenium, XRAY, Jmeter, Sonar, Cucumber, Postman, SoapUI, Chrome / alte navigatoare & web inspector.
Instrumente de depanare integrate în mediile de dezvoltare: Eclipse, IntelliJ, Visual Studio, Visual Studio Code, Android Studio Debuggers, Xcode.
Instrumente pentru versionare, gestionarea configuraţiei software: Git, SVN, Microsoft Team Foundation Server (TFS).
Instrumente pentru configurarea infrastructurii şi instalarea în producţie (deployment) a modulelor program: Docker container, Azure Resource Management, CloudFormation, Kubernetes, Terraform, Octopus, Ansible, OpenShift, Rancher.
Instrumente Continuous Integration / Continuous Delivery: Jenkins, GitLab.
Tendinţele de viitor în domeniu:
- Conceptul de "economie verde" a dobândit o importanţă tot mai mare în toate domeniile, inclusiv TIC. Principiile acesteia au devenit o preocupare din ce în ce mai mare deoarece are impact asupra afacerii, societăţii şi un impact semnificativ asupra mediului. Economia verde în TIC abordează reducerea consumului de energie asociată cu utilizarea hardware, software de ex: îmbunătăţirea eficienţei energetice a hardware şi a centrelor de date, consolidarea serverelor folosind software de virtualizare şi reducerea poluării provenite de la deşeurile asociate echipamentelor utilizate.
- Continuous Integration (integrarea continuă) / Continuous Delivery (livrarea continuă) / Continuous Deployment (implementarea continuă) - CI/CD/CD. Practicile CI/CD/CD urmăresc conectarea eficientă a activităţilor de dezvoltare, operaţiuni şi servicii TI. CI/CD/CD ajută dezvoltatorii şi testării (persoane responsabile de testare) şi DevOps (ingineri pe Dezvoltare şi Operare) să livreze şi să pună în funcţiune produsele software într-o manieră rapidă şi sigură, într-un mod structurat. Spre deosebire de ciclul de viaţă tradiţional al dezvoltării software, procesul CI/CD/CD se bazează pe actualizări frecvente – săptămânale sau zilnice. Actualizările în mediul de producţie se produc fără un impact vizibil asupra operaţiunilor. Lucrul în echipa devine un element cheie în domeniul respectiv.
Date specifice:
Blocurile principale de activităţi de care este responsabil Programatorul, conform cerinţelor pieţei muncii sunt următoarele:
- Participă la planificarea/proiectarea produsului de program: analiza şi definirea cerinţelor tehnice ale produsului de program în conformitate cu obiectivele şi cerinţele clientului, selectarea instrumentelor şi a limbajului de programare pentru realizarea aplicaţiei.
- Asistă procesul de dezvoltare a produsului de program: determinarea proceselor funcţionale ale produsului de program în baza specificaţiilor tehnice, folosirea limbajelor şi tehnologiilor de programare pentru elaborarea aplicaţiei, utilizarea bibliotecilor de coduri, scrierea de cod în conformitate cu instrucţiunile, specificaţiile şi standardele agreate, implementarea cerinţelor de securitate şi de protecţie a datelor, implementarea mecanismelor de integrare a aplicaţiei cu sisteme suport.
Această etapă de lucru în activitatea specialistului este una cheie. Capacitatea specialistului în elaborarea codului produsului de program este esenţială.
- Participă la testarea produsului de program: colaborează cu analiştii de sistem şi echipele operaţionale pentru a identifica şi rezolva problemele în aplicaţiile existente, identifică erori de depanare şi le înlătură, asigură conformitatea livrabilelor cu specificaţiile funcţionale şi non-funcţionale, participă la analiza codului pentru a asigura că toate caracteristicile implementate sunt funcţionale, fiabile, pot fi menţinute şi susţinute.
Programatorii se confruntă cu o gamă largă de probleme, de la bug-uri (erori) software la actualizări de sistem. Pentru a face faţă acestor provocări, un programator trebuie să colecteze toate datele relevante şi să le analizeze pentru a determina cursul adecvat al acţiunii.
- Participă la sau asigură elaborarea / actualizarea documentaţiei pentru produsul de program: dezvoltă documentaţia specifică cu instrucţiunile şi explicaţiile de rigoare. Documentaţia se elaborează de către programator odată cu crearea sau modificarea produsului de program.
Specialistul pregăteşte documentaţia pentru produsele elaborate, descriind funcţionalitatea şi compoziţia lor. Acesta trebuie să poată fi înţeleasă de o audienţă largă, fără cunoştinţe tehnice şi să fie conformă cu cerinţele şi standardele definite.
- Realizează mentenanţa produsului de program: execută actualizări şi modificări de sistem. Periodic, atât dispozitivele fizice, cât şi produsele program ale sistemelor existente vor necesita actualizări - inclusiv software intermediar şi programele de aplicaţii care rulează pe sistem. Programatorul (studii profesional tehnice) execută aceste actualizări (de obicei pe partea software), asigurându-se că ele sunt implementate corespunzător şi funcţionează corect.
- Programatorul realizează personalizarea software: programele necesită adesea modificări sau configurări specifice, necesare funcţionării pe anumite sisteme de operare sau platforme. Este sarcina programatorului să personalizeze software pentru a răspunde acestor cerinţe, fără a compromite performanţa altor programe sau a sistemului în ansamblu.
Competenţe generale necesare în lucrul Programatorului sunt:
- Programare pe calculator:
√ tehnici şi principii ale dezvoltării software,
√ paradigme de programare (programare orientată pe obiect, programare funcţională / procedurală),
√ limbaje de programare.
- Utilizarea de instrumente de modelare (UML) sau alte modele folosite de business.
- Utilizarea mediilor integrate de dezvoltare.
- Folosirea instrumentelor de identificare a erorilor (debugging).
- Cunoaşterea şi aplicarea modelelor de proiectare.
- Cunoştinţe de bază de structuri de date, baze de date şi fluxuri de date.
- Aplicarea instrumentelor pentru versionare, gestionarea configuraţiei software şi management de proiect.
- Utilizarea instrumentelor pentru configurarea infrastructurii şi lansarea în producţie (deployment) a modulelor program.
- Modelarea orientată spre servicii (Infrastructure as a Service - IaaS, Service as a Service - SaaS, Platform as a Service - PaaS).
- Aplicarea principiilor economiei verzi în domeniul TIC (Green IT).
Fondul standardului ocupaţional
Programator (studii profesional tehnice)
Competenţe generice (transversale)
CG1. Lucrul în echipă: conştientizarea rolurilor şi activităţilor specifice lucrului în echipă; aplicarea regulilor interne de lucru în echipă.
CG2. Comunicarea la locul de muncă: comunicare orală şi scrisă în limba maternă/străină; comunicare eficientă cu echipa de lucru şi cu clienţii, în vederea desfăşurării activităţilor la nivelul de performanţă solicitat de locul de muncă.
CG3. Rezolvarea de probleme şi luarea de decizii: utilizarea proceselor necesare pentru a rezolva situaţii care se abat de la normal sau situaţii în care s-au identificat oportunităţi de îmbunătăţire, în care soluţia nu este evidentă.
CG4. Dezvoltare profesională: accesarea, procesarea şi asimilarea de noi cunoştinţe şi deprinderi, deschidere către învăţarea pe tot parcursul vieţii, abilităţi de învăţare autonomă pe baza autoperfecţionării şi autodisciplinei.
CG5. Respectarea şi dezvoltarea valorilor şi a eticii profesionale: comportament responsabil şi etic pentru a asigura reputaţia profesiei; îmbinarea şi utilizarea cunoştinţelor, deprinderilor şi atitudinilor în vederea obţinerii rezultatelor, prin respectarea unui set minim de principii, valori şi reguli de conduită specifice moralei profesionale.
CG6. Utilizarea tehnologiei informaţiei şi comunicării: utilizarea eficientă de hardware (de exemplu, desktopuri, laptopuri, tablete, componente PC), software (de exemplu, sisteme de operare, aplicaţii, software de comunicare, colaborare şi planificare) şi dispozitive de comunicare (de exemplu, telefonie, dispozitive wireless, reţea şi sisteme wireless).
CG7. Aplicarea principiilor de calitate: respectarea instrucţiunilor de lucru, procedurilor, standardelor de calitate; implementarea de acţiuni corective şi preventive pentru a asigura îndeplinirea cerinţelor referitoare la calitate.
CG8. Aplicarea principiilor securităţii cibernetice în dezvoltarea software: cunoaşterea şi aplicarea mecanismelor pentru protejarea confidenţialităţii, integrităţii şi disponibilităţii datelor procesate, stocate, comunicate.
CG9. Aplicarea cerinţelor în domeniul securităţii şi sănătăţii în muncă: aplicarea cerinţelor privind desfăşurarea procesului de muncă, apărarea vieţii, integrităţii fizice şi psihice, sănătăţii lucrătorilor şi a altor persoane participante la procesul de muncă.
| Atribuţii şi sarcini de lucru | Competenţe profesionale specifice şi corelarea acestora cu sarcinile de lucru | Criterii de realizare a activităţilor asociate competenţelor profesionale |
| 1. Participarea la planificarea aplicaţiei / produsului de program:
1.a Analizarea cerinţelor tehnice ale aplicaţiei / produsului de program, definite de către Managerul proiectului şi Arhitectul Software în baza obiectivelor şi cerinţelor clientului; 1.b Formularea de soluţii concrete la cerinţele generale (abstracte), care ulterior sunt validate de către client; 1.c Participarea la transformarea cerinţelor funcţionale şi non-funcţionale în specificaţii tehnice de dezvoltare; 1.d Participarea la selectarea instrumentelor şi limbajul de programare pentru realizarea aplicaţiei; 1.e Analizarea modelelor şi diagramelor care detaliază modul în care se va scrie codul. 2. Dezvoltarea aplicaţiei / produsului de program: 2.a Participarea la transformarea proiectul cu specificaţiile software în cod performant, în limbajul şi cu instrumentele selectate; 2.b Dezvoltarea prototipurilor pentru validarea specificaţiilor funcţionale; 2.c Participarea la elaborarea modulelor de cod, folosind medii de dezvoltare integrate; 2.d Reutilizarea modulelor funcţionale şi bibliotecilor existente; 2.e Actualizarea informaţiei cu privire la versiunile de cod şi progresul proiectului în sistemele dedicate; 2.f Realizarea mecanismelor de integrare a aplicaţiei cu sisteme suport; 2.g Participarea la instalarea proiectului în producţie, inclusiv prin metode de migrare automatizate; 2.h Implementarea cerinţelor de securitate şi de protecţie a datelor; 2.i Comunicarea cu grupul de lucru pentru identificarea soluţiilor optimale de realizare a sarcinilor; 2.j Raportarea în cadrul şedinţelor de proiect despre ce a realizat de la ultima şedinţă, ce are planificat pentru perioada următoare şi ce probleme a întâmpinat; 2.k Aplicarea principiilor Green IT pentru reducerea impactului utilizării aplicaţiei dezvoltate asupra mediului înconjurător. 3. Testarea aplicaţiei /produsului de program: 3.a Participarea la definirea cazurilor de testare (Test Case); 3.b Revizuirea codului dezvoltat de membrii echipei; 3.c Verificarea codului pentru eliminarea erorilor; 3.d Verificarea corectitudinii codului faţă de specificaţiile proiectului; 3.e Verificarea menţinerii unui nivel corespunzător de calitate a codului, în conformitate cu standardele acceptate; 3.f Compilarea modulelor funcţionale pentru executarea testelor; 3.g Realizarea testării modulului după implementare, pentru a asigura funcţionarea corectă a tuturor componentelor adăugate sau modificate; 3.h Aplicarea măsurilor de îmbunătăţire a produsului. 4. Documentarea aplicaţiei: 4.a Comentarea codului dezvoltat; 4.b Documentarea librăriilor funcţionale dezvoltate pentru a facilita reutilizarea ulterioară; 4.c Documentarea modificărilor efectuate în cadrul cererilor de modificare şi a versiunilor; 4.d Documentarea arhitecturii funcţionale a aplicaţiei; 4.e Documentarea interfeţelor modulelor dezvoltate; 4.f Colaborarea cu personalul specializat pentru redactarea documentaţiei suport de operare şi utilizare. 5. Prestarea de suport utilizatorului aplicaţiei: 5.a Asistarea procesului de configurare a platformei dispozitivelor fizice (hardware) şi a produselor program ale sistemelor (software), conform cerinţelor aplicaţiei (e.g. pregătirea fişierelor de configurare, etc.); 5.b Asistarea procesului de actualizare hardware şi software ale sistemelor existente, în vederea asigurării compatibilităţii cu produsul dezvoltat; 5.c Instruirea (după necesitate) utilizatorilor privind modalitatea de utilizare a aplicaţiei; 5.d Rezolvarea problemelor semnalate (e.g. funcţionare incorectă, erori de aplicaţie, date incorecte, funcţii ne-realizate, etc.) şi răspunderea la sugestii de îmbunătăţire; 5.e Efectuarea ajustărilor şi îmbunătăţirilor bazate pe feedbackul intern şi extern. 6. Participarea la managementul neconformităţilor legate de aplicaţie: 6.a Participarea în procesele de asigurare a calităţii intermediare şi finale cum ar fi: funcţionalitatea, designul, fiabilitatea, realizarea activităţilor de testare / analiză cod, revizuirea codului, analizarea erorilor; 6.b Participarea la analizarea neconformităţilor funcţionale identificate şi semnalate; 6.c Formularea soluţiilor pentru remedierea neconformităţilor şi dezvoltarea de prototipuri pentru validarea soluţiei; 6.d Remedierea documentată a erorilor, vulnerabilităţilor şi neconformităţilor identificate în colaborare cu echipele asociate; 6.e Participarea la definirea testelor pentru validarea corecţiilor aplicate. |
1. Analizarea cerinţelor funcţionale şi non-funcţionale
(1.a, 1.b, 1.e) |
1.1. Studiază minuţios cerinţele tehnice ale aplicaţiei / produsului de program definit de către Managerul proiectului si Arhitectul Software în baza obiectivelor şi cerinţelor clientului;
1.2. Este capabil să extragă cerinţe de dezvoltare din analiza documentelor tehnice, modele şi diagrame de proces. |
| 2. Proiectarea tehnică a dezvoltării aplicaţiei
(1.b, 1.c, 1.d) |
2.1. Asigură trasabilitatea între specificaţii tehnice de dezvoltare şi cerinţele funcţionale şi non-funcţionale asociate;
2.2. Defineşte cerinţele de dezvoltare a componentelor software astfel încât să includă toate elementele informative definite de standardul internaţional ISO/IEC/IEEE/29148: ˇ verificări de validitate a intrărilor; ˇ secvenţa exactă a operaţiilor; ˇ răspunsul la situaţii anormale; ˇ efectul parametrilor; ˇ relaţia dintre ieşiri şi intrări, inclusiv: √ secvenţe intrare / ieşire; √ formule pentru conversia intrărilor în ieşiri; 2.3. Asigură că tehnologiile de dezvoltare şi implementare alese corespund cerinţelor funcţionale şi non-funcţionale definite. |
|
| 3. Elaborarea aplicaţiei
(2.a, 2.b, 2.c, 2.d) |
3.1. Dezvoltă prototipuri care permit validarea alegerilor funcţionale;
3.2. Realizează sau adaptează componente software, în conformitate cu strategia, constrângerile şi procedura de implementare definite; 3.3. Elaborează componentele software utilizând mediile de dezvoltate agreate prin strategia de dezvoltare; 3.4. Reutilizează modulele funcţionale şi bibliotecile atunci când acesta sunt disponibile. |
|
| 4. Validarea codului dezvoltat
(3.a, 3.b, 3.c, 3.d, 3.f, 3.g) |
4.1. Asigură adecvarea şi completitudinea cazurilor de testare pentru toate cerinţele de referinţă;
4.2. Realizează şi participă la procesul de validare a codului cu echipa (Peer Code Review); 4.3. Identifică erorile, neconformităţile şi deficienţele de integrare a codului dezvoltat de membrii echipei; 4.4. Compilează module funcţionale pentru executarea testelor, particularizate pentru a asigura trasabilitatea datelor relevante pentru cazurile de testare; 4.5. Documentează riguros rezultatele testelor şi măsurile de corecţie agreate şi rezultatele testelor de validare a corecţiei. |
|
| 5. Implementarea aplicaţiei în mediul de operare
(2.f, 2.g, 2.h, 5.a, 5.b) |
5.1. Realizează mecanisme de integrare funcţionale şi eficace, care nu produc perturbaţii în sistemele corespondente;
5.2. Pune la dispoziţia echipei desemnate cu procesul de configurare a platformei hardware şi software informaţii complete şi corecte pentru configurarea mediului de operare; 5.3. Răspunde în mod operativ la solicitările de informare privind potenţialul impact al actualizărilor hardware/software asupra funcţionalităţii modulelor dezvoltate, şi propune măsuri de remediere dacă este cazul; 5.4. Comunică în mod corect şi complet către utilizatori restricţiile şi precauţiile de utilizare necesare pentru asigurarea bunei funcţionări a aplicaţiei dezvoltate. |
|
| 6. Participarea în proiectul colaborativ de dezvoltare
(2.e, 2.i, 2.j, 4.c) |
6.1. Comunică operativ problemele apărute către colectivul de lucru;
6.2. Respectă planificarea agreată; 6.3. În procesul de identificare a soluţiilor optimale de realizare a sarcinilor este eficient în comunicare şi aplică instrumentele relevante în acest sens; 6.4. În cadrul şedinţelor de proiect raportează în mod eficient, constructiv şi exact ce a realizat de la ultima şedinţă, ce are planificat pentru perioada următoare şi ce probleme a întâmpinat; 6.5. Utilizează mijloacele şi procedurile de comunicare aprobate; 6.6. Utilizează instrumentele de management al dezvoltării, versiunilor şi implementării în conformitate cu procedurile aprobate; 6.7. Documentează modificările efectuate corect, exact şi în conformitate cu politicile şi procedurile interne aplicabile. |
|
| 7. Furnizarea documentaţiei tehnice
(4.a, 4.b, 4.c, 4.d, 4.e, 4.f) |
7.1. Comentează codul dezvoltat cu informaţii suficiente pentru a facilita testarea, integrarea şi reutilizarea modulelor software dezvoltate;
7.2. Documentează riguros trasabilitatea între cerinţe şi modulele dezvoltate; 7.3. Documentează interfeţele modulelor dezvoltate, într-o manieră care permite utilizarea acestora în mod transparent de către terţii şi depanarea eventualelor erori sau excepţii; 7.4. Răspunde operativ la solicitările personalului desemnat pentru redactarea documentaţiei suport de operare şi utilizare şi pune la dispoziţie informaţii complete şi relevante. |
|
| 8. Asigurarea calităţii şi conformităţii aplicaţiei
(3.c, 3.e, 3.h, 6.a, 6.b, 6.c, 6.d, 6.e) |
8.1. Documentează riguros conformitatea codului dezvoltat cu cerinţele aplicabile;
8.2. Participă în procesele de asigurare a calităţii intermediare şi finale în conformitate cu procedurile şi politicile aplicabile; 8.3. Identifică toate deviaţiile de la standardele interne de calitate a codului şi propune măsuri de remediere adecvate; 8.4. Aplică instrumentele utilizate pentru gestiunea calităţii şi metodele aprobate pentru analiza neconformităţilor funcţionale identificate şi semnalate şi identificarea cauzelor rădăcină şi a soluţiilor optime de rezolvare; 8.5. În baza la feedbackul intern şi extern, realizează ajustările şi îmbunătăţirile necesare, cu aplicarea procedurilor relevante; 8.6. Documentează riguros analiza şi soluţiile problemelor semnalate şi rezultatele testelor de validare a corecţiei. |
|
| 9. Asigurarea securităţii şi protecţiei datelor
(2.h) |
9.1. Aplică bunele practici de programare sigură şi de protecţie a datelor personale, aşa cum sunt definite în politicile şi procedurile aplicabile;
9.2. Implementează cerinţele de securitate a datelor; 9.3. Implementează şi respectă cerinţele de protecţie a datelor cu caracter personal; 9.4. Defineşte cazuri de testare relevante pentru cerinţele de securitate / protecţie definite; 9.5. Documentează riguros implementarea cerinţelor şi rezultatele testelor. |
|
| 10. Comunicarea cu utilizatorii
(5.c, 5.d, 5.e) |
10.1. Informează în mod corect şi complet utilizatorii cu privire la restricţiile şi precauţiile de utilizare aplicabile aplicaţiei dezvoltate;
10.2. Rezolvă în mod operativ problemele semnalate cu respectarea procedurilor interne aplicabile; 10.3. Asigură informaţia şi datele necesare procesului de instruire a utilizatorilor în privinţa utilizării aplicaţiei; 10.4. Comunică eficient cu părţile implicate, obţine feedbackul necesar şi informaţia relevantă necesităţilor de îmbunătăţire identificate. |
|
| 11. Aplicarea principiilor economiei verzi în domeniul TIC (Green IT)
(2.k) |
11.1. Identifică soluţiile optime pentru reducerea impactului utilizării aplicaţiei dezvoltate asupra mediului înconjurător;
11.2. Documentează impactul estimat al codului dezvoltat aspra obiectivelor relevante de mediu: consum energetic, emisii de carbon, după caz; 11.3. Consultă clientul privind beneficiile şi oportunităţile utilizării Green IT. |