Š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.

Š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:
- 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

