Cursul de Inginerie software

Ca să vă oferim o descriere cât mai exactă a ingineriei software, o vom defini ca un mod de dezvoltare, gestionare şi mentenanţă a software-ului, în conformitate cu un plan sistematic şi bine stabilit. Pur şi simplu, ingineria software acoperă toate aspectele producţiei de software, motiv pentru care este legată direct şi se bazează pe discipline precum ştiinţele aplicate, ingineria ştiinţelor aplicate, management, managementul de proiect, managementul calităţii, ergonomia software şi ingineria de sistem.

Ingineria software se numără printre cele mai importante domenii, deoarece ne influenţează aproape toate aspectele vieţii. Datorită numeroaselor software-uri, astăzi avem posibilitatea să lucrăm, să comunicăm, să cumpărăm, să ne informăm mai rapid şi mai eficient etc. Astăzi, fără soluţii software, ne-ar fi imposibil să ne imaginăm dezvoltarea majorităţii ramurilor industriale, a medicinei, a educaţiei şi aproape a tuturor domeniilor prin care societatea progresează.

Ingineria software pune accent pe folosirea calculatorului ca mijloc de bază al soluţionării diferitelor probleme. Funcţiile calculatorului în domeniul menţionat se folosesc ca părţi ale soluţiei generale, respectiv ca instrumente de proiectare software.

Producerea unui software de calitate este un proces foarte important, pe termen lung, a cărui finalitate este un produs care va influenţa viaţa în mai bine. Tocmai din acest motiv, pe pieţele din întreaga lume, inginerii software sunt printre cei mai căutaţi experţi IT, iar cercetările arată că vor fi din cei în ce mai căutaţi.

Sunteţi interesat de acest curs? Îl puteţi parcurge în cadrul acestor programe LINK Academy:Microsoft Windows Development ProgramMicrosoft Web Development ProgramProgramare PHPJava DevelopmentMicrosoft Development Program şi Android Development.

Descrierea şi obiectivele cursului de Inginerie software

Cursul Ingineria software este destinat tuturor celor care vor să participe la dezvoltarea software-urilor. În acest domeniu, şansa construirii unei cariere de succes se oferă programatorilor, managerilor, finanţatorilor, designerilor, colaboratorilor de marketing, precum şi tuturor utilizatorilor de software.

Acest curs vă oferă ocazia să învățați cum puteți specifica cerințele software, designul şi arhitectura software, modelele şi managementul dezvoltării de software, precum şi calitatea produsului software.

În cadrul cursului Ingineria software veţi dobândi competenţe şi cunoştinţe cu ajutorul cărora veţi fi pregătiţi să creați soluţii software care îndeplinesc cele mai înalte standarde de calitate. Pe parcursul cursului, experţi în domeniu vă vor oferi o imagine completă a întregului sistem de realizare a unui software şi prin exemple practice, vă vor ajuta să învăţaţi cum să creaţi soluţii cât mai productive şi mai eficiente.

Ingineria software este o disciplină relativ tânără, care se schimbă constant fiind influențată de apariţia noilor limbaje de programare. Toate acestea determină actualizarea în permanență a programului cu cele mai noi tendinţe urmate de ingineria software. Parcurgând cursul Ingineria software, veţi învăţa care este rolul de bază al acestui domeniu, ce anume implică construcţia unui software şi cum se îndeplinesc criteriile calităţii dorite a software-ului.

Pe lângă aceasta, veţi afla şi că, dacă scriem un cod de programare, nu înseamnă că suntem ingineri software și dacă lucrăm în construcţii, nu înseamnă că suntem ingineri constructori. Profesori de top vă vor explica cum se face o analiză, cum se confirmă şi validează cerințele software, dar şi ce înseamnă noţiunea de caracteristică a procesului.

Cunoştinţele asimilate pe parcursul cursului vă vor da posibilitatea să lucrați într-unul din cele zece domenii care alcătuiesc ingineria software:

  • Cerințe software (Software Requirements)
  • Design software (Software Design)
  • Construcţia software (Software Construction)
  • Testare software (Software Testing)
  • Mentenanţa software (Software Maintenance)
  • Managementul configuraţiilor software (Software Configuration Management)
  • Managementul ingineriei software (Software Engineering Management)
  • Procesele ingineriei software (Software Engineering Process)
  • Instrumente şi metode ale ingineriei software (Software Engineering Tools and Methods)
  • Calitatea software (Software Quality)

Producerea unui software de calitate implică simultan şi arta şi ştiinţa pe care le veţi folosi după ce asimilați competenţele parcurgând cursul Ingineria Software.

Cursul Ingineria Software răspunde la următoarele întrebări:

1. În ce constă activitatea unui inginer software?

Activitatea pe care o desfășoară un inginer software defineşte în mare măsură planificarea şi gestionarea dezvoltării produsului software, aplicând principiile ingineriei software. Aceste principii definesc cum colectăm cerințele cumpărătorilor produsului software, determină arhitectura şi designul care se va aplica, precizează paşii din faza de dezvoltare şi, în mod obligatoriu, stabilesc criteriile unui produs rezistent și de calitate.

Condiţiile impuse de un inginer software sunt legate exclusiv de disponibilitatea calculatorului. De aceea, în general, munca se desfășoară la birou, dar deseori apare şi nevoia de deplasare, în funcţie de locaţia clientului care va achiziționa produsul.

2. De ce sunt importante cerințele software?

Colectarea şi analizarea cerințelor software este o fază foarte importantă în dezvoltarea software-ului. Aceasta este prima fază pe baza căreia se iau mai departe decizii legate de design, arhitectură, planificare estc. Cerințele definesc nevoile cumpărătorului de software, definesc condiţiile de rezolvare a problemelor, determină regulile de afaceri care trebuie aplicate în software, precizează standardele organizaţiei interne, precum şi normele legislative pe care trebuie să le respecte software-ul.

Cu cât cerințele software au o calitate mai înaltă, cu atât crește și calitatea managementului dezvoltării. Printre altele, cerințele permit clientului să vadă ceea ce cere de la software-ul său și pe această bază își poate planifica şi costurile, deoarece primeşte propuneri privind soluţia şi costurile.

3. Ce este agile software development?

„Agile” (agil în engleză) este un cuvânt care se referă la viteză şi ușurință. În contextul dezvoltării tehnologiilor de calcul, în timp, aceste caracteristici au devenit extrem de necesare, deoarece, de cele mai multe ori, cumpărătorul de software nu poate sau nu are timp să aştepte mult după produs. Pentru că în această industrie timpul pierdut nu este prea tolerat, a fost introdus conceptul de agile software development (dezvoltare agilă a software-ului) - o abordare care conduce la soluţii rapide.

Dezvoltarea agilă defineşte principiile în conformitate cu care se dezvoltă cerințe şi soluţii de către echipe autoorganizate şi interconectate. Cheia dezvoltării agile este menținerea unei relaţii continue între client şi echipa software, unde clientul şi dorinţa sa au întâietate în raport cu documentaţia, specificațiile etc. Manifestul dezvoltării agile software este precizat în următoarele patru reguli:

  • Colaborarea şi indivizii au întâietate în fața proceselor şi instrumentelor;
  • Software-ul funcţional are întâietate în fața documentaţiei ample;
  • Colaborarea cu clientul are întâietate în fața respectării contractului;
  • Reacţia la modificări are întâietate în fața respectării planului.
Cursul de Inginerie software

4. Ce este Scrum?

Scrum este un cadru pentru gestionarea dezvoltării produsului software, care se bazează pe dezvoltarea agilă. Este alcătuit din perioade iterative care sunt îmbunătățite încontinuu şi în care au loc interacţiuni frecvente cu cumpărătorii software-ului. Paşii menţionaţi cu precizie în fiecare iteraţie, unde colaborarea cu cumpărătorul este esenţială, permit echipelor de dezvoltare acces rapid la nevoile utilizatorului, ceea ce ajută mult realizarea în sine. Clientul se poate răzgândi în privința a ceea ce îi trebuie şi ce vrea, iar acest aspect nu poate fi planificat. De aceea, Scrum şi dezvoltarea agilă pun pe primul loc „dorinţele” utilizatorului în locul documentaţiei imense.

Iteraţiile în care se implementează cerințele stabilite se numesc Sprint. Sprint este o perioadă de două săptămâni sau o lună de zile în care se dezvoltă funcţionalităţile stabilite, după care clientul primeşte aceste funcţionalităţi şi le poate folosi. Această abordare este foarte bună, deoarece încă din primele faze ale dezvoltării, clientul poate să folosească sistemul şi să observe eventualele lipsuri și să-și dea seama de ce mai are nevoie.

5. Ce este UML?

Unified Modeling Language (UML) este un limbaj vizual de modelare care se foloseşte pentru specificarea, vizualizarea, construcţia şi documentarea sistemelor software. Pemite luarea deciziilor şi înţelegerea sistemelor care se pot construi. Se foloseşte pentru analiză, design, căutare, configurare, mentenanţă şi controlul informaţiilor despre astfel de sisteme. UML cuprinde informaţii despre structura statistică şi comportamentul dinamic al sistemului. Sistemul este modelat ca o colecţie de obiecte discrete care interacţionează.

Modelul este o simplificare a realităţii care permite descrierea completă a sistemului dintr-o anumită perspectivă. Modelele ne ajută să înţelegem mai bine sistemul. Modelăm sisteme complexe deoarece nu putem să înţelegem aceste sisteme în întregime. Modelele ne ajută să vizualizăm sistemul aşa cum este sau cum vrem să specificăm structura sau comportamentul sistemului, ne permit să folosim şabloane în construcţia sistemului şi să documentăm decizia pe care am făcut-o.

6. Ce este QA?

Quality Assurance (QA) este un mod de specificare a erorilor sau a defectelor în software-ul dezvoltat care are scopul de a evita livrarea unui produs cu probleme. Aceasta înseamnă că ingineria software influenţează în mod direct controlul calităţii produsului software. Calitatea software-ului este analizată în mod special în timpul procesului complet de inginerie software şi este legată de toate domeniile de dezvoltare a software-ului.

Calitatea software-ului măsoară cât este de bine proiectat un software (Quality of Design) şi cât este de bun software-ul respectiv în conformitate cu acest design (Quality of Conformance). Managementul calităţii software-ului (SQM) se aplică tuturor aspectelor proceselor, produselor şi resurselor software. Pe lângă aceasta, SQM defineşte procesele, cerințele, posesorii, măsurile, ieşirile şi canalele de feedback.

7. Cât este de importantă testarea software-ului?

O atenţie deosebită este dedicată activităţii de descoperire a erorilor. Acest aspect devine foarte important dacă înțelegem importanța stabilirii faptului dacă programul sau sistemul funcţionează. Pierderile enorme ale companiilor care dezvoltă software-uri sunt datorate exact numeroaselor defecte ale software-ului livrat. Prima sarcină a inginerului de testare este să descopere problemele din software, cu scopul de a le rezolva înainte de livrarea produsului software către cumpărător.

Costurile de eliminare a erorilor descoperite, dacă nu sunt evitate de la bun început, sunt mari şi produc pierderi mari în afacere, precum şi nemulţumirea cumpărătorilor. Înainte de a finaliza faza de implementare a componentelor software, acestea trebuie mai întâi testate, pentru a descoperi şi rezolva erorile din cadrul lor. În primul rând, trebuie să încercăm să evităm apariţia erorilor încă din primele faze ale dezvoltării software-ului, pentru a evita întârzierile şi pentru a reduce costurile implicate în eliminarea lor. Acesta este scopul aplicării activităţii de prevenire a apariţiei erorilor.

Planul şi programa cursului

1. Termenul şi rolul ingineriei software

  • Introducere în ingineria software 
  • Rolul ingineriei software 
  • Importanţa fiabilităţii software-ului

2. Specificaţia cerinţelor software

  • Cerinţele software (Software Requirements)
  • Determinarea şi analiza cerinţelor software 
  • Specificaţia şi validarea cerinţelor software 
  • Procesul şi caracteristicile procesului

3. Designul şi arhitectura software-ului

  • Designul software (Software Design)
  • Strategiile, notaţia şi analiza designului software 
  • Natura şi caracteristicile designului
  • Stilurile arhitecturale software 
  • Conexiunea şi coeziunea componentelor software

4. Construcția software-ului

  • Construirea software-ului (Software Construction)
  • Gestionarea construirii software-ului 
  • Modelele de producere a software-ului
  • Alte modele ale procesului de producere a software-ului
  • Metodologia modernă de dezvoltare a software-ului

5. Administrarea configuraţiei software

  • Software configuration management
  • Planificarea şi gestionarea procesului SCM
  • Software Engineering Management 
  • Participanţii la proiect

6. Calitatea software-ului

  • Calitatea software-ului (Software Quality)
  • Perspectivele şi calitatea produsului şi a procesului
  • Ingineria calităţii software-ului
  • Inginerie software

Cursul de Inginerie software

3 moduri de a obține un job bine plătit

Am pregătit un document în care puteţi descoperi trei moduri de a obţine un job bine plătit pentru profesioniştii care lucrează pe calculator. Descărcați raportul aici.

Înregistrarea pentru generaţia 2017/18. se face aici

Pentru a afla totul despre înscriere, click aici.