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