Ce este Ingineria Software? Definiție, Baze, Caracteristici

Ce este Ingineria Software?

Ingineria software este definită ca un proces de analiză a cerințelor utilizatorului și apoi de proiectare, construire și testare a aplicației software care va satisface aceste cerințe.

Să ne uităm la diferitele definiții ale ingineriei software:

  • IEEE, în standardul său 610.12-1990, definește ingineria software ca aplicarea unei abordări sistematice, disciplinate, care reprezintă o abordare computabilă pentru dezvoltarea, operarea și întreținerea software-ului.
  • Fritz Bauer a definit-o drept „înființarea și principiile standard ale ingineriei utilizate. Vă ajută să obțineți, în mod economic, un software de încredere și care funcționează eficient pe mașinile reale.
  • Boehm definește ingineria software, care implică „aplicarea practică a cunoștințelor științifice la proiectarea creativă și construirea de programe de calculator”. De asemenea, include documentația asociată necesară pentru dezvoltarea, operarea și întreținerea acestora.

De ce Inginerie Software? Criza software și soluția sa

Ce a fost criza software-ului?

  • A fost la sfârșitul anilor 1960 când multe proiecte software au eșuat.
  • Multe programe software au depășit bugetul. Ieșirea a fost un software nesigur, care este costisitor de întreținut.
  • Software-ul mai mare a fost dificil și destul de costisitor de întreținut.
  • O mulțime de software care nu sunt capabili să satisfacă cerințele în creștere ale clientului.
  • Complexitatea proiectelor software a crescut ori de câte ori capacitatea sa hardware a crescut.
  • Cererea pentru software nou a crescut mai rapid în comparație cu capacitatea de a genera software nou.

Toate problemele de mai sus duc la „criză software”.

Soluția

Soluția a fost transformarea efortului de codare neorganizat într-o disciplină de inginerie software. Aceste modele de inginerie au ajutat companiile să eficientizeze operațiunile și să furnizeze software care îndeplinește cerințele clienților.

  • Sfârșitul anilor 1970 a văzut utilizarea pe scară largă a principiilor ingineriei software.
  • În anii 1980 a fost înregistrată automatizarea procesului de inginerie software și creșterea ingineriei software asistate de calculator (CASE).
  • În anii 1990 s-a pus accentul pe aspectele de „management” ale standardelor de calitate și proceselor proiectelor, la fel ca ISO 9001

De ce este populară ingineria software?

Iată motivele importante din spatele popularității ingineriei software:

De ce ingineria software este populară

  • Software mare – În viața noastră reală, este destul de mai confortabil să construiești un zid decât o casă sau o clădire. În același mod, pe măsură ce dimensiunea software-ului devine mare, ingineria software vă ajută să construiți software.
  • Scalabilitate- Dacă procesul de dezvoltare a software-ului s-a bazat pe concepte științifice și de inginerie, este mai ușor să recreezi un nou software pentru a scala unul existent.
  • Adaptabilitate: Ori de câte ori procesul software s-a bazat pe științifice și inginerie, este ușor să recreezi software nou cu ajutorul ingineriei software.
  • Cost- Industria hardware și-a demonstrat abilitățile, iar producția uriașă a redus costul computerului și al hardware-ului electronic.
  • Natura dinamică– Natură mereu în creștere și adaptare a software-ului. Depinde de mediul în care lucrează utilizatorul.
  • Managementul Calitatii: Oferă o metodă mai bună de dezvoltare a software-ului pentru a oferi produse software de calitate.

Relația inginerii software cu alte discipline

Iată cum s-a raportat ingineria software cu alte discipline:

  • Informatică: Oferă baza științifică pentru software, deoarece ingineria electrică depinde în principal de fizică.
  • Știința managementului: Ingineria software-ului este o muncă intensivă în muncă, care necesită atât control tehnic, cât și managerial. Prin urmare, este utilizat pe scară largă în știința managementului.
  • Economie: În acest sector, ingineria software vă ajută în estimarea resurselor și controlul costurilor. Sistemul de calcul trebuie dezvoltat, iar datele trebuie menținute în mod regulat în cadrul unui buget dat.
  • Inginerie de sistem: Majoritatea software-ului este o componentă a unui sistem mult mai mare. De exemplu, software-ul dintr-un sistem de monitorizare a industriei sau software-ul de zbor pe un avion. Pentru studiul acestui tip de sisteme ar trebui aplicate metode de inginerie software.

Provocările ingineriei software

Iată câteva provocări critice cu care se confruntă inginerii software:

  • În domenii critice pentru siguranță, cum ar fi spațiul, aviația, centralele nucleare etc., costul defecțiunii software poate fi masiv, deoarece vieți sunt în pericol.
  • Cerințe crescute ale pieței pentru timp de răspuns rapid.
  • Confruntarea cu complexitatea crescută a necesității de software pentru aplicații noi.
  • Diversitatea sistemelor software ar trebui să comunice între ele.

Atribute pentru produse software

Caracteristicile oricărui produs software includ caracteristici care sunt afișate de produs atunci când este instalat și pus în funcțiune.

Nu sunt serviciile oferite de produs. În schimb, acestea au legat de comportamentul dinamic al produselor și de utilizarea produsului.

Exemple de aceste atribute sunt:

Efficiency, reliability, robustness, maintainability, etc. 

Cu toate acestea, importanța relativă a acestor caracteristici variază de la un sistem software la altul.

Caracteristicile produsului Descriere
mentenabilitate Software-ul ar trebui să evolueze pentru a satisface cerințele în schimbare ale clienților.
Fiabilitate Fiabilitatea include diverse caracteristici. Software-ul de încredere nu ar trebui să provoace niciodată daune fizice sau economice în momentul defecțiunii sistemului.
Eficiență: Aplicația software ar trebui să utilizeze în exces resursele sistemului, cum ar fi memoria și ciclul procesorului.
Usability Aplicația software ar trebui să aibă interfață de utilizare și documentație specifice.

Optimizarea atributului de mai sus este foarte dificilă. De exemplu, oferirea unei interfețe de utilizare mai bune poate reduce eficiența sistemului.

Caracteristicile unui software bun

Orice software ar trebui să fie judecat după ceea ce oferă și care sunt metodele care vă ajută să îl utilizați.

Fiecare software trebuie să îndeplinească următoarele atribute:

  • Operational
  • Tranziție
  • Mentenanță

Iată câteva caracteristici importante ale unui software bun dezvoltat de profesioniști în software

Operational

Această caracteristică ne permite să știm cât de bine funcționează software-ul în operațiunile care pot fi măsurate pe:

  • Buget
  • Eficiență:
  • Usability
  • Fiabilitate
  • Corectitudine
  • Funcționalitate
  • Siguranţă
  • Securitate

Tranziție

Acesta este un aspect esențial atunci când software-ul este mutat de la o platformă la alta:

  • Interoperabilitate
  • Abilitatea de Reus
  • Portabilitate
  • Adaptabilitate

Mentenanță

Acest aspect vorbește despre cât de bine are software-ul capabilitățile de a se adapta în mediul în schimbare rapidă:

  • Flexibilitate
  • mentenabilitate
  • modularitate
  • scalabilitate

Rezumat

  • Ingineria software este un proces de analiză a cerințelor utilizatorului și apoi de proiectare, construire și testare a aplicației software care va satisface aceste cerințe.
  • Motive importante pentru utilizarea ingineriei software sunt: ​​1) Software mare, 2) Scalabilitate 3) Adaptabilitate 4) Cost și 5) Natura dinamică.
  • La sfârșitul anilor 1960, multe programe software depășesc bugetul. Prin urmare, oferă software nesigur, care este costisitor de întreținut.
  • Sfârșitul anilor 1970 a văzut utilizarea pe scară largă a principiilor ingineriei software.
  • Concept de inginerie software 1) Informatică 2) Știința managementului 3) Inginerie de sistem și 4) Economie
  • Cererile crescute ale pieței pentru un timp de răspuns rapid reprezintă cele mai mari provocări ale domeniului ingineriei software.
  • 1) Mentenabilitatea, 2) Fiabilitatea, 3) Eficiența și 4) Utilizabilitatea sunt cele mai importante atribute ale produselor software.
  • Cele mai importante trei caracteristici ale unui software bun sunt 1) Opera2) Tranzitorie 3) Întreținere.