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

Što je softverski inženjering?

Softversko inženjerstvo se definira kao proces analize korisničkih zahtjeva i zatim projektiranja, izgradnje i testiranja softverske aplikacije koja će zadovoljiti te zahtjeve.

Pogledajmo različite definicije softverskog inženjerstva:

  • IEEE, u svom standardu 610.12-1990, definira softversko inženjerstvo kao primjenu sustavnog, discipliniranog pristupa koji je izračunljiv za razvoj, rad i održavanje softvera.
  • Fritz Bauer je to definirao kao 'uspostavu i korištenje standardnih inženjerskih načela. Pomaže vam da ekonomično dobijete softver koji je pouzdan i učinkovito radi na stvarnim strojevima.
  • Boehm definira softversko inženjerstvo, koje uključuje 'praktičnu primjenu znanstvenog znanja na kreativni dizajn i izgradnju računalnih programa'. Također uključuje pridruženu dokumentaciju potrebnu za njihov razvoj, rad i održavanje.'

Zašto softversko inženjerstvo? Softverska kriza i njezino rješenje

Što je bila softverska kriza?

  • Bilo je to u kasnim 1960-ima kada su mnogi softverski projekti propali.
  • Mnogi softveri su premašili budžet. Izlaz je bio nepouzdan softver čije je održavanje skupo.
  • Održavanje većeg softvera bilo je teško i prilično skupo.
  • Mnoštvo softvera ne može zadovoljiti sve veće zahtjeve korisnika.
  • Složenost softverskih projekata povećavala se kad god se povećavala njegova hardverska sposobnost.
  • Potražnja za novim softverom rasla je brže u usporedbi s mogućnošću stvaranja novog softvera.

Svi gore navedeni problemi dovode do "softverske krize".

Rješenje

Rješenje problema bilo je pretvaranje neorganiziranog napora kodiranja u disciplinu softverskog inženjeringa. Ovi inženjerski modeli pomogli su tvrtkama da pojednostave poslovanje i isporuče softver koji ispunjava zahtjeve kupaca.

  • Kasnih 1970-ih došlo je do široke upotrebe principa softverskog inženjeringa.
  • U 1980-ima došlo je do automatizacije procesa softverskog inženjeringa i rasta (CASE) računalno potpomognutog softverskog inženjerstva.
  • U 1990-ima se povećao naglasak na aspekte 'upravljanja' projektima standarda kvalitete i procesa poput ISO 9001

Zašto je softversko inženjerstvo popularno?

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

Zašto je softversko inženjerstvo popularno

  • Veliki softver – U našem stvarnom životu dosta je ugodnije sagraditi zid nego kuću ili zgradu. Na isti način, kako veličina softvera postaje velika, softversko inženjerstvo vam pomaže da izgradite softver.
  • Skalabilnost- Kad bi se proces razvoja softvera temeljio na znanstvenim i inženjerskim konceptima, lakše je ponovno izraditi novi softver za skaliranje postojećeg.
  • Prilagodljivost: Kad god se softverski proces temeljio na znanosti i inženjerstvu, lako je ponovno stvoriti novi softver uz pomoć softverskog inženjerstva.
  • Cijena- Industrija hardvera pokazala je svoje vještine i golema proizvodnja smanjila je cijenu računalnog i elektroničkog hardvera.
  • Dinamična priroda– Stalno rastuća i prilagođavajuća priroda softvera. Ovisi o okruženju u kojem korisnik radi.
  • Upravljanje kvalitetom: Nudi bolju metodu razvoja softvera za pružanje kvalitetnih softverskih proizvoda.

Odnos softverskog inženjerstva s drugim disciplinama

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

  • Računalne znanosti: Daje znanstvene temelje za softver jer elektrotehnika uglavnom ovisi o fizici.
  • Znanost upravljanja: Programsko inženjerstvo je radno intenzivan posao koji zahtijeva i tehničku i upravljačku kontrolu. Stoga se naširoko koristi u znanosti o upravljanju.
  • Ekonomija: U ovom sektoru softversko inženjerstvo pomaže vam u procjeni resursa i kontroli troškova. Računalni sustav mora biti razvijen, a podaci se trebaju redovito održavati unutar zadanog proračuna.
  • Inženjering sustava: Većina softvera sastavni je dio mnogo većeg sustava. Na primjer, softver u sustavu za praćenje industrije ili softver za letenje u zrakoplovu. Za proučavanje ove vrste sustava treba primijeniti metode programskog inženjerstva.

Izazovi softverskog inženjerstva

Evo nekoliko ključnih izazova s ​​kojima se suočavaju softverski inženjeri:

  • U sigurnosnim kritičnim područjima kao što su svemir, zrakoplovstvo, nuklearne elektrane itd. cijena kvara softvera može biti ogromna jer su životi ugroženi.
  • Povećani zahtjevi tržišta za brzim vremenom obrade.
  • Suočavanje s povećanom složenošću softvera, potrebom 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 pusti u upotrebu.

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

Primjeri ovih atributa su:

Efficiency, reliability, robustness, maintainability, etc. 

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

Karakteristike proizvoda Description
sposobnost snabdijevanja Softver bi se trebao razvijati kako bi zadovoljio promjenjive zahtjeve klijenata.
Pouzdanost Pouzdanost uključuje različite karakteristike. Pouzdan softver nikada ne bi trebao uzrokovati fizičku ili ekonomsku štetu u trenutku kvara sustava.
Učinkovitost Softverska bi aplikacija trebala pretjerano koristiti sistemske resurse poput memorije i ciklusa procesora.
Upotrebljivost Softverska aplikacija treba imati posebno korisničko sučelje i dokumentaciju.

Optimiziranje gornjeg atributa vrlo je izazovno. Na primjer, ponuda boljeg korisničkog sučelja može smanjiti učinkovitost sustava.

Karakteristike dobrog softvera

Svaki softver treba prosuđivati ​​prema onome što nudi i koje su metode koje vam pomažu da ga koristite.

Svaki softver mora zadovoljiti sljedeće atribute:

  • Operacionalni
  • Prijelazan
  • održavanje

Ovdje su neke važne karakteristike dobrog softvera koje su razvili softverski profesionalci

Operacionalni

Ova nam karakteristika daje do znanja koliko dobro softver radi u operacijama koje se mogu mjeriti na:

  • Budžet
  • Učinkovitost
  • Upotrebljivost
  • Pouzdanost
  • Ispravnost
  • Funkcionalnost
  • Sigurnosni
  • Sigurnost

Prijelazan

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

  • Interoperabilnost
  • Reus Sposobnost
  • Pokretnost
  • Prilagodljivost

održavanje

Ovaj aspekt govori o tome koliko softver ima sposobnosti da se prilagodi okruženju koje se brzo mijenja:

  • Fleksibilnost
  • sposobnost snabdijevanja
  • modularnost
  • skalabilnost

Rezime

  • Softversko inženjerstvo je proces analize korisničkih zahtjeva, a zatim projektiranja, izgradnje i testiranja softverske aplikacije koja će zadovoljiti te zahtjeve.
  • Važni razlozi za korištenje softverskog inženjeringa su: 1) veliki softver, 2) skalabilnost, 3) prilagodljivost, 4) cijena i 5) dinamičnost.
  • Kasnih 1960-ih mnogi softveri postaju prekoračeni. Stoga nudi nepouzdan softver čije je održavanje skupo.
  • Kasnih 1970-ih došlo je do široke upotrebe principa softverskog inženjeringa.
  • Koncept programskog inženjerstva 1) Računarska znanost 2) Znanost upravljanja 3) Inženjerstvo sustava i 4) Ekonomija
  • Povećani zahtjevi tržišta za brzim vremenom izrade najveći su izazovi u području programskog inženjerstva.
  • 1) Mogućnost održavanja, 2) Pouzdanost, 3) Učinkovitost i, 4) Upotrebljivost su najvažniji atributi softverskih proizvoda.
  • Tri najvažnije karakteristike dobrog softvera su 1) Operacionalni 2) Prijelazni 3) Održavanje.