Što je softversko inženjerstvo? Karakteristike, definicija

⚡ Pametni sažetak

Softverski inženjering je disciplinirani proces analize zahtjeva, a zatim dizajniranja, izgradnje i testiranja softvera koji ih zadovoljava. Ovaj resurs objašnjava njegove definicije, softversku krizu koja ga je stvorila, njegovu popularnost, srodne discipline, izazove i karakteristike dobrog softvera.

  • 📘 Osnovna definicija: Softversko inženjerstvo primjenjuje sustavne, disciplinirane inženjerske principe za razvoj, rad i održavanje pouzdanog softvera.
  • ⚠️ Softverska kriza: Neuspjesi projekata krajem 1960-ih i rastući troškovi stvorili su potrebu za strukturiranom inženjerskom disciplinom.
  • 📈 Zašto je važno: Omogućuje veliki, skalabilan, prilagodljiv i isplativ softver s dosljednim upravljanjem kvalitetom.
  • 🔗 Povezane discipline: Oslanja se na računalne znanosti, znanost o upravljanju, ekonomiju i sistemsko inženjerstvo.
  • Dobar softver: Kvalitetan softver je operativan, privremen i održiv u promjenjivim okruženjima.

Što je softversko inženjerstvo

Što je softverski inženjering?

Softverski inženjering se definira kao proces analize korisničkih zahtjeva, a zatim dizajniranja, 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 i računalnog pristupa razvoju, radu i održavanju softvera.
  • Fritz Bauer ga je definirao kao „uspostavu i korištenje standardnih inženjerskih principa. Pomaže vam da, na ekonomičan način, dobijete softver koji je pouzdan i učinkovito radi na stvarnim strojevima“.
  • Boehm definira softversko inženjerstvo kao „praktična primjena znanstvenog znanja na kreativni dizajn i izgradnju računalnih programa. Također uključuje i pripadajuću dokumentaciju potrebnu za razvoj“ping, njihovo upravljanje 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.
  • Velik dio softvera je premašio proračun. Rezultat je bio nepouzdan softver koji je bio skup za održavanje.
  • Održavanje većeg softvera bilo je teško i prilično skupo.
  • Mnogo softvera nije bilo u stanju zadovoljiti rastuće zahtjeve kupaca.
  • Složenost softverskih projekata povećavala se kad god su se povećavale njihove hardverske mogućnosti.
  • Potražnja za novim softverom rasla je brže u usporedbi s mogućnošću stvaranja novog softvera.

Svi gore navedeni problemi doveli su do 'softverske krize'.

Rješenje

Rješenje problema bilo 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 upotrebe principa softverskog inženjerstva.
  • Osamdesetih godina prošlog stoljeća došlo je do automatizacije procesa softverskog inženjerstva i razvoja računalno potpomognutog softverskog inženjerstva (CASE).
  • Devedesetih godina prošlog stoljeća naglasak je stavljen na „upravljačke“ aspekte projekata te standarde kvalitete i procesa, baš kao što je 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 stvarnom životu puno je lakše izgraditi zid nego kuću ili zgradu. Na isti način, kako veličina softvera postaje velika, softversko inženjerstvo pomaže vam u izgradnji softvera.
  • skalabilnost – Ako je proces razvoja softvera temeljen na znanstvenim i inženjerskim konceptima, lakše je ponovno stvoriti novi softver kako bi se skalirao postojeći.
  • Prilagodljivost – Kada se proces razvoja softvera temelji na znanstvenim i inženjerskim principima, lako je ponovno stvoriti novi softver uz pomoć softverskog inženjerstva.
  • Trošak – Industrija hardvera pokazala je svoje vještine, a ogromna proizvodnja snizila je cijenu računala i elektroničkog hardvera.
  • Dinamična priroda – Stalno rastuća i prilagodljiva priroda softvera. Ovisi o okruženju u kojem korisnik radi.
  • Upravljanje kvalitetom – Nudi bolju metodu razvoja softvera kako bi se osigurali kvalitetni softverski proizvodi.

Odnos softverskog inženjerstva s drugim disciplinama

Evo kako se softversko inženjerstvo odnosi na druge discipline:

  • Računalne znanosti: Daje znanstvenu osnovu za softver, baš kao što je fizika osnova za elektrotehniku.
  • Znanost upravljanja: Softverski inženjering je radno intenzivan posao koji zahtijeva i tehničku i upravljačku kontrolu. Stoga se široko koristi u znanosti upravljanja.
  • Ekonomija: U ovom sektoru, softversko inženjerstvo pomaže u procjeni resursa i kontroli troškova. Računalni sustav mora biti razvijen, a podaci trebaju biti redovito održavani unutar zadanog proračuna.
  • Inženjering sustava: Većina softvera je komponenta mnogo većeg sustava, na primjer, softver u industrijskom sustavu za nadzor ili softver za let u avionu. Metode softverskog inženjerstva trebale bi se primijeniti na proučavanje ovih vrsta sustava.

Izazovi softverskog inženjerstva

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

  • U područjima kritičnim za sigurnost poput svemira, zrakoplovstva i nuklearnih elektrana, troškovi softverskih kvarova mogu biti ogromni jer su životi ugroženi.
  • Povećani zahtjevi tržišta za brzim vremenom obrade.
  • Rješavanje povećane složenosti softvera potrebnog za nove aplikacije.
  • Raznolikost softverskih sustava koji bi trebali međusobno komunicirati.

Atributi za softverske proizvode

Karakteristike bilo kojeg softverskog proizvoda uključuju značajke koje proizvod prikazuje kada je instaliran i pušten u upotrebu.

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

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 aplikacija ne smije prekomjerno koristiti sistemske resurse poput memorije i procesorskih ciklusa.
Upotrebljivost Softverska aplikacija treba imati odgovarajuće korisničko sučelje i dokumentaciju.

Optimizacija gore navedenih atributa je vrlo izazovna. Na primjer, ponuda boljeg korisničkog sučelja može smanjiti učinkovitost sustava.

Karakteristike dobrog softvera

Svaki softver treba ocjenjivati ​​prema onome što nudi i metodama koje vam pomažu da ga koristite.

Svaki softver mora zadovoljiti sljedeće atribute:

  • Operacionalni
  • Prijelazan
  • održavanje

Evo nekih važnih karakteristika dobrog softvera koji su razvili softverski stručnjaci.

Operacionalni

Ova karakteristika nam govori koliko dobro softver funkcionira u operacijama, što se može 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 dobro softver ima sposobnost prilagodbe brzo promjenjivom okruženju:

  • Fleksibilnost
  • sposobnost snabdijevanja
  • modularnost
  • skalabilnost

Pitanja i odgovori

Umjetna inteligencija pomaže u generiranju koda, automatiziranom testiranju i otkrivanju grešaka. Obavlja rutinske zadatke, omogućujući inženjerima da se usredotoče na dizajn, arhitekturu i rješavanje složenih problema, a istovremeno zahtijeva ljudsku provjeru kvalitete i ispravnosti.

Ne. Umjetna inteligencija povećava produktivnost, ali ne može zamijeniti ljudsku prosudbu u prikupljanju zahtjeva, dizajniranju arhitekture, vaganju etičkih kompromisa i donošenju složenih odluka. Inženjeri sve više vode i potvrđuju rezultate koje generiraju alati umjetne inteligencije.

Programiranje se fokusira na pisanje koda. Softverski inženjering primjenjuje disciplinirane procese tijekom cijelog životnog ciklusa, uključujući zahtjeve, dizajn, testiranje i održavanje, kako bi isporučio pouzdan softver u velikom opsegu unutar proračunskih i vremenskih ograničenja.

Osnovni životni ciklus uključuje analizu zahtjeva, dizajn, kodiranje, testiranje, implementaciju i održavanje. Svaka faza se nadovezuje na prethodnu kako bi se osiguralo da je konačni softver pouzdan, održiv i da zadovoljava potrebe korisnika.

Sažmite ovu objavu uz: