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