Što je softversko inženjerstvo? Definicija, osnove, karakteristike

Sadržaj:

Anonim

Što je softversko inženjerstvo?

Softverski inženjering definira se kao postupak analize korisničkih zahtjeva, a zatim dizajniranja, izrade i testiranja softverske aplikacije koja će udovoljiti tim zahtjevima.

Pogledajmo razne definicije softverskog inženjerstva:

  • IEEE, u svom standardu 610.12-1990, definira softverski inženjering kao primjenu sustavnog, discipliniranog, što je izračunat pristup za razvoj, rad i održavanje softvera.
  • Fritz Bauer definirao ga je kao "uspostavu i uporabu standardnih inženjerskih principa. Pomaže vam da ekonomično nabavite pouzdan softver koji učinkovito radi na stvarnim strojevima.
  • Boehm definira softversko inženjerstvo, koje uključuje "praktičnu primjenu znanstvenih spoznaja na kreativni dizajn i izgradnju računalnih programa. Također uključuje povezanu dokumentaciju potrebnu za njihov razvoj, rad i održavanje. '

U ovom vodiču za softversko inženjerstvo naučit ćete:

  • Što je softversko inženjerstvo?
  • Zašto softversko inženjerstvo? Kriza softvera i njezino rješenje
  • Zašto je softversko inženjerstvo popularno?
  • Povezanost softverskog inženjerstva s drugim disciplinama
  • Izazovi softverskog inženjerstva
  • Atributi za softverske proizvode
  • Karakteristike dobrog softvera

Zašto softversko inženjerstvo? Kriza softvera i njezino rješenje:

Što je bila kriza softvera?

  • Bilo je to krajem 1960-ih kada su mnogi softverski projekti propali.
  • Mnogi su softveri postali prekoračeni. Izlaz je bio nepouzdan softver koji je skup za održavanje.
  • Veći softver bilo je teško i prilično skupo za održavanje.
  • Puno softvera nije u stanju zadovoljiti rastuće zahtjeve kupaca.
  • Složenost softverskih projekata povećavala se kad god se povećavala njegova hardverska sposobnost.
  • Potražnja za novim softverom povećala se brže u usporedbi sa sposobnošću generiranja novog softvera.

Svi gore navedeni problemi vode do "softverske krize".

Rješenje

Rješenje je bilo u tome što je transformiranje neorganiziranog kodiranja u disciplinu softverskog inženjerstva. Ovi inženjerski modeli pomogli su tvrtkama da pojednostave poslovanje i isporuče softver koji zadovoljava zahtjeve kupaca.

  • Krajem 1970-ih došlo je do široke primjene principa softverskog inženjerstva.
  • Osamdesetih godina dolazi do automatizacije procesa softverskog inženjerstva i rasta (CASE) računalno potpomognutog softverskog inženjerstva.
  • Devedesetih godina prošlog stoljeća pojačan je naglasak na aspektima upravljanja 'standardima kvalitete i procesa', poput ISO 9001

Zašto je softversko inženjerstvo popularno?

Evo važnih razloga koji stoje iza popularnosti softverskog inženjerstva:

  • Veliki softver - U našem je stvarnom životu ugodnije graditi zid nego kuću ili zgradu. Na isti način, kako veličina softvera postaje velika, softverski inženjering pomaže vam u izradi softvera.
  • Skalabilnost - Ako se proces razvoja softvera temelji na znanstvenim i inženjerskim konceptima, lakše je ponovno stvoriti novi softver za skaliranje postojećeg.
  • Prilagodljivost : Kad god se softverski proces temeljio na znanstvenom i inženjerskom radu, lako je ponovno stvoriti novi softver uz pomoć softverskog inženjerstva.
  • Troškovi hardverske industrije pokazali su svoje vještine, a velika proizvodnja smanjuje troškove računala i elektroničkog hardvera.
  • Dinamična priroda - Uvijek raste i prilagođava prirodu softvera. Ovisi o okruženju u kojem korisnik radi.
  • Upravljanje kvalitetom : nudi bolju metodu razvoja softvera za pružanje kvalitetnih softverskih proizvoda.

Povezanost softverskog inženjerstva s drugim disciplinama

Evo kako je softversko inženjerstvo povezano s drugim disciplinama:

  • Računalne znanosti: daje znanstvene temelje softveru jer elektrotehnika uglavnom ovisi o fizici.
  • Znanost o upravljanju: Softversko inženjerstvo radno je intenzivan posao koji zahtijeva i tehničku i upravljačku kontrolu. Stoga se široko koristi u znanosti upravljanja.
  • Ekonomija: U ovom sektoru softverski inženjering pomaže vam u procjeni resursa i kontroli troškova. Računalni sustav mora se razviti, a podaci se trebaju redovito održavati u okviru zadanog proračuna.
  • Sustavno inženjerstvo: Većina softvera komponenta je mnogo većeg sustava. Na primjer, softver u industrijskom sustavu za nadzor ili softver za let u zrakoplovu. Za proučavanje ove vrste sustava treba primijeniti metode softverskog inženjerstva.

Izazovi softverskog inženjerstva

Evo nekoliko kritičnih izazova s ​​kojima su suočeni softverski inženjeri:

  • U sigurnosno kritičnim područjima kao što su svemir, zrakoplovstvo, nuklearne elektrane itd. Troškovi kvara softvera mogu biti ogromni jer su životi ugroženi.
  • Povećani zahtjevi tržišta za brzim vremenom obrade.
  • Suočavanje s povećanom složenošću softverske potrebe za novim aplikacijama.
  • Raznolikost softverskih sustava trebala bi međusobno komunicirati.

Atributi za softverske proizvode

Karakteristike bilo kojeg softverskog proizvoda uključuju značajke koje proizvod prikazuje kada se instalira i stavi u upotrebu.

Oni nisu usluge koje pruža proizvod. Umjesto toga, oni su povezani s dinamičkim ponašanjem proizvoda i uporabom proizvoda.

Primjeri ovih atributa su:

Efficiency, reliability, robustness, maintainability, etc.

Međutim, relativna važnost ovih karakteristika razlikuje se od jednog do drugog softverskog sustava.

Karakteristike proizvoda Opis
Održavanje Softver bi se trebao razvijati kako bi udovoljio promjenjivim zahtjevima klijenata.
Pouzdanost Pouzdanost uključuje razne karakteristike. Pouzdani softver nikada ne bi trebao uzrokovati fizičku ili ekonomsku štetu u trenutku kvara sustava.
Učinkovitost Softverska aplikacija trebala bi prekomjerno koristiti sistemske resurse poput memorije i ciklusa procesora.
Upotrebljivost Softverska aplikacija trebala bi imati određeno korisničko sučelje i dokumentaciju.

Optimizacija gornjeg atributa vrlo je izazovna. Na primjer, nuđenje boljeg korisničkog sučelja može smanjiti učinkovitost sustava.

Karakteristike dobrog softvera

Bilo koji softver treba ocjenjivati ​​prema onome što nudi i koje su metode koje vam pomažu da ga koristite.

Svaki softver mora zadovoljiti sljedeće atribute:

  • Operativni
  • Prijelazni
  • Održavanje

Evo nekoliko važnih karakteristika dobrog softvera koji su razvili profesionalci softvera

Operativni

Ova nam karakteristika daje do znanja o tome kako dobro softver funkcionira u operacijama koje se mogu mjeriti na:

  • Proračun
  • Učinkovitost
  • Upotrebljivost
  • Pouzdanost
  • Ispravnost
  • Funkcionalnost
  • Sigurnost
  • Sigurnost

Prijelazni

Ovo je bitan aspekt kada se softver premješta s jedne platforme na drugu:

  • Interoperabilnost
  • Ponovna upotrebljivost
  • Prijenosnost
  • Prilagodljivost

Održavanje

Ovaj aspekt govori o tome koliko dobro softver ima mogućnosti prilagodbe u okruženju koje se brzo mijenja:

  • Fleksibilnost
  • Održavanje
  • Modularnost
  • Skalabilnost

Sažetak

  • Softverski inženjering postupak je analize zahtjeva korisnika, a zatim dizajniranja, izrade i testiranja softverske aplikacije koja će udovoljiti tim zahtjevima
  • Važni razlozi za korištenje softverskog inženjerstva su: 1) veliki softver, 2) skalabilnost 3) prilagodljivost 4) cijena i 5) dinamička priroda.
  • Krajem 1960-ih mnogi programi prelaze proračun. Stoga nudi nepouzdan softver koji je skup za održavanje.
  • Krajem 1970-ih došlo je do široke primjene principa softverskog inženjerstva.
  • Koncept softverskog inženjerstva 1) Računarstvo 2) Znanost o upravljanju 3) Inženjerstvo sustava i 4) Ekonomija
  • Povećani tržišni zahtjevi za brzim rokovima najvećih su izazova na polju softverskog inženjerstva.
  • 1) Održavanje, 2) pouzdanost, 3) učinkovitost i, 4) upotrebljivost najvažnija su svojstva softverskih proizvoda.
  • Tri najvažnije karakteristike dobrog softvera su 1) operativno 2) prijelazno 3) održavanje.