Inginerie software

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
busolă Dezambiguizare - Dacă căutați informații despre ingineria software în sistemul universitar italian, consultați articolele computer sau inginerie computerizată
Un model de dezvoltare software

„Ingineria software-ului ( ingineria software-ului în limba engleză ) este computerul de conducere care se ocupă de procesele de producție și metodologiile de dezvoltare care conduc la crearea sistemelor software [1] . Propune o serie de obiective legate de evoluția dezvoltării de software (înțeleasă ca activitate industrială ) atât din punct de vedere tehnologic (de exemplu, prin definirea de noi limbaje de programare ), cât și metodologic (de exemplu, îmbunătățirea ciclului de viață al software-ului ).

Istorie

Exemplu de algoritm diagramă bloc

Nevoia de a crea o disciplină teoretico-practică care se ocupă în totalitate de crearea de software apare, la sfârșitul anilor șaizeci , din necesitatea dezvoltării unor produse din ce în ce mai complexe și avansate care să răspundă solicitărilor utilizatorilor mari, conferind rigoare și disciplină. dezvoltare software de ultimă generație în companii mari.

Mai exact, din 1950 până în 1965 dezvoltarea software-ului a fost oarecum limitată: multe programe au fost dezvoltate pe loturi , informaticienii au fost puțini și au învățat în domeniu. Ceea ce a fost dezvoltat a fost conceput pentru un singur client, mai mult decât o singură persoană a lucrat și ar fi lucrat la fiecare proiect, de obicei fără a scrie nicio documentație software . Până la nașterea ingineriei software, realizarea produselor informatice a fost o simplă activitate de programare efectuată prin aplicarea unor discipline precum:

Programarea se referea în principal la asamblarea unei secvențe de instrucțiuni de cod sursă pentru a îndeplini sarcini foarte specifice.

Din 1965 până în 1975 asistăm la dezvoltarea de software conceput pentru mai mulți utilizatori și pentru sisteme în timp real . În această perioadă începe dezvoltarea pachetelor software și apar numeroase probleme, cum ar fi gestionarea și întreținerea software-ului.

În 1968, conferința NATO care a avut loc la Garmisch , Germania , a clarificat problema incapacității de a produce la timp programe fiabile și conforme. Începând din 1972 și până în 1988 , au fost introduse noi tehnologii, s-au născut sisteme distribuite și s-a stabilit figura proiectantului de sisteme informatice (cel care mai târziu va fi numit arhitect software ). Costul hardware-ului scade considerabil și, ca rezultat, tehnologia computerelor începe să se răspândească rapid. Nivelul de calitate al software-ului crește, cu toate acestea dezvoltarea sa este încă limitată la proiecte științifice și militare și abia mai târziu, după ce a trecut printr-o lungă fază de testare , software-ul este introdus în industrii. Organizații precum Pentagonul promovează puternic studiul modelelor care permit minimizarea cantității de erori din software.

Odată cu introducerea tehnologiei informației și în sectorul industrial și comercial, începând cu 1988 , bazinele de utilizatori care nu mai sunt tehnici simt nevoia să își computerizeze structurile. În această perioadă s - a născut programarea orientată pe obiecte , există tendința de a controla dezvoltarea de software, încercând să dezvolte produse de calitate, datorită și concurenței care s-a impus între casele de software . Încercăm să avem grijă cât mai mult posibil de interfața grafică prezentată utilizatorului, deoarece s-a schimbat și tipul de utilizator. Din aceste nevoi rezultă întâlnirea dintre cerințele companiei client și funcțiile pe care programatorul trebuie să le implementeze.

Un concept este dezvoltat în mod similar cu optimizările liniei de asamblare în industriile secolului al XX-lea , care perturbaseră în mod similar modul în care erau produse echipamentele mecanice. Adică încercăm să identificăm punctele focale care trebuie să guverneze crearea unui produs software bun, dar mai presus de toate încercăm să definim formal ceea ce poate descrie un produs software bun .

Descriere

Noțiuni de bază

Pictogramă lupă mgx2.svg Același subiect în detaliu: Dezvoltare software .
O parte a dezvoltării software-ului

Ingineria software identifică o formalizare a procesului de analiză , proiectare , construcție și întreținere a unui sistem informatic. Pentru această asociere cu o idee aproape biologică de viață, vorbim adesea despre ciclul de viață al unui software, un concept care și-a asumat o importanță crescândă de-a lungul deceniilor, abandonând treptat ideea de software ca artefact și trecând la un ideea software-ului ca produs industrial. Necesitatea creării unei științe care se ocupă de implementarea sistemelor informaționale apare din necesitatea dezvoltării unor produse din ce în ce mai complexe și avansate care să răspundă nevoilor de corectitudine a produsului final și de întreținere ușoară a acestuia.

Software-ul ca produs industrial devine, de asemenea, subiectul unui control atent pentru a-și extinde capacitățile de producție. În practică, se naște un concept similar cu optimizările liniei de asamblare pentru industriile secolului trecut . Prin urmare, încercăm să identificăm în dezvoltarea software-ului acele obiective la care se ocupă industriile software, cum ar fi calitatea software-ului creat și mai presus de toate pentru a lansa un produs bine documentat și ușor de "întreținut".

Noua știință, ingineria software, este de fapt preocupată de realizarea acestor nevoi, prin definirea modelelor care permit echipelor de tehnicieni să creeze produse din ce în ce mai avansate și de calitate în cooperare. Prin urmare, ingineria software definește un set de procese sau secvențe de faze care identifică pași specifici în crearea unui sistem software, toate documentate și inspectabile, care oferă în esență o vizibilitate adecvată diferitelor tipuri de utilizatori ai sistemului, pentru controlul individual produse și / sau pentru orice întreținere.

Fazele de inginerie software sau inginerie sisteme

Fiecare domeniu de inginerie software poate fi grupat succint în doar 5 pași:

  • Analiza afacerii și analiza cerințelor;
  • Proiectare și arhitectură software;
  • Dezvoltare, programare sau codificare de software;
  • Livrarea de software și asigurarea calității;
  • Întreținere corectiv-adaptivă și întreținere evolutivă;

Amintindu-ne că acești cinci pași pe care i-am enumerat pentru un proces de inginerie software nu ar trebui luați ca regulă sau standard. [2]

Producția de software în mileniul al treilea

Pictogramă lupă mgx2.svg Același subiect în detaliu: ciclul de viață al software-ului , modelul de dezvoltare software și metodologia de dezvoltare software .

Chiar și astăzi, companiile pun accentul pe necesitatea definirii proceselor de dezvoltare software care fac posibilă respectarea termenelor stabilite pentru a reduce costurile de producere a produselor. Sunt identificate diferite cicluri de viață ale software-ului , adică diferite procese care pot fi actualizate de o echipă pentru a ajunge la un rezultat comun. Fiecare dintre aceste procese diferite identifică o serie de pași cheie care trebuie urmați pentru a crea în cele din urmă un produs software care îndeplinește cerințele. Ingineria software cuprinde aceste elemente, precum și multe alte elemente, definind o știință căreia îi pasă de cum să nu mai permită unei singure persoane, ci unei echipe formate din mulți dezvoltatori să facă software bun . Utilizatorii diferiți generează cerințe diferite [3] și nevoi noi în realizarea unui software.

Astăzi rămâne problema producerii de sisteme software de dimensiuni redutabile, cu timpi și costuri prestabilite, crescute enorm comparativ cu pachetele software de acum câteva decenii. Pentru aceste situații, știința nou-născutului se găsește adesea în dificultate și se simte nevoia unor teorii mai avansate. Dacă abordarea inițială s-a bazat pe conceptele de industrie mecanică de la începutul secolului al XX-lea ( timpuri și metode ), acum se înțelege că această abordare este insuficientă: în industria mecanică vorbim acum despre o fabrică imaterială constând în cunoașterea angajații, din relațiile dintre ei, din aspirațiile comune; cu atât mai mult pentru fabrica de software. În plus, mulți au înțeles caracteristicile originale ale produsului software (în primul rând imaterialitatea produsului principal - codul executabil) care duc la necesitatea unor tehnologii mai puțin cunoscute în alte sectoare: cea mai importantă dintre aceste tehnologii este probabil configurația control. (ca și companiile).

Sistemul universitar

In Italia

În sistemul universitar italian există diplome specializate în inginerie software. Acestea urmăresc specializarea IT în diferitele domenii cărora li se poate aplica disciplina: de la sisteme complexe și sisteme în timp real , la sisteme încorporate , până la sisteme distribuite și de întreprindere. Diplomele de master în ingineria software sunt, de exemplu, cele ale Universității din L'Aquila [4] , aleUniversității Libere din Bolzano [5] și ale Politehnicii din Torino [6] care includ cursuri duble de studii străine. Pentru gradele de trei ani , pe de altă parte, există catedre și predări de inginerie software în facultatea de științe pentru cursurile de licență în informatică , inginerie computerizată și computerizată și tehnologii pentru producția de software .

Notă

  1. ^ Pentru standardul IEEE 610.12-1990 este aplicarea unei abordări sistematice, disciplinate și cuantificabile în dezvoltarea, operarea și întreținerea software-ului
  2. ^ Cele 5 etape ale dezvoltării software - Infografice | Inginerie software și analiză cerințe , la engineeringdelsoftware.online . Adus la 13 ianuarie 2020 (depus de „url original 12 ianuarie 2020).
  3. ^ chicoalff, Como escrever uma User Story fantástica | Inginerie software și analiză cerințe , la engineeringdelsoftware.online . Adus la 13 ianuarie 2020 (depus de „url original 12 ianuarie 2020).
  4. ^ [1]
  5. ^ [2]
  6. ^ [3]

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității Tezaur BNCF 63744 · LCCN (EN) sh87007398 · GND (DE) 4116521-4 · BNF (FR) cb11966616k (dată) · BNE (ES) XX541523 (dată) · NDL (EN, JA) 01.014.113