Professional Documents
Culture Documents
SE Leksion 1 - Produkti Dhe Procesi
SE Leksion 1 - Produkti Dhe Procesi
Në këtë leksion...
Çfarë është Inxhinieria Software, pse është e domosdoshme dhe fushat e aplikimit.
Këndvështrim historik mbi Inxhinierinë Software. Evoluimi i saj në vite.
Çfarë është një produkt software realisht, tiparet e tij dhe kategorizimi.
Disa mite mbi software.
Shumë kompani dhe individë ende zhvillojnë software në mënyrë kaotike, bazuar në një analizë të
varfër, çka çon në marrjen e rezultateve jo të kënaqshëm siç janë software që dështojnë shpesh dhe që
nuk arrijnë të përmbushin kërkesat e pritura. Për të optimizuar këto dukuri aplikohet Inxhinieria
Software.
Disa përkufizime:
“Inxhinieria Software është ndërtimi dhe përdorimi i parimeve të shëndoshë inxhinierik për të përftuar
software ekonomikë, të besueshëm dhe që punojnë në mënyrë efiçente në makina reale.”- Fritz Bauer,
1969.
“Inxhinieria Software është studimi i një mënyre sistematike, të disiplinuar për të zhvilluar, operuar dhe
mirëmbajtur software” – IEEE (Institute of Electrical and Electronics Engineers) 1993
Shumë prej studiuesve të industrisë së zhvillimit të software i kanë karakterizuar problemet që lindin
gjatë zhvillimit të një software si një “krizë”. Vetë lindja e Inxhinierisë Software i dedikohet të
ashtuquajturës “Krizës së Software”(Software Crisis) që shqetësoi programuesit dhe organizatat në vitet
60’. Kriza konsistonte në:
1
Inxhinieri Software Leksion 1
Një sërë konferencash u mbajtën për zgjidhjen e saj. Në konferencën e mbajtur nga NATO në 1968 u
arrit në përfundimin se zhvillimi i software duhet të jetë një aktivitet inxhinierik.
Që prej asaj kohe është diskutuar gjatë mbi Inxhinierinë Software. Diskutimi është shtrirë midis
organizatave, kompanive dhe individëve. Sot nuk vihet më në dyshim domosdoshmëria e kësaj disipline.
Debati vazhdon të zhvillohet mbi mënyrën e aplikimit të saj, mjetet dhe metodat që duhet të përdoren
për maksimizimin e cilësisë dhe minimizimin e faktorit kosto+kohë.
Kriza e Software ndodhi në kushtet e kërkesave gjithnjë e në rritje për software dhe pamundësisë për t’i
plotësimin e tyre në kushtet e burimeve të pamjaftueshme njerëzore, kohore dhe financiare.
“Kërkesa për software është rritur më shumë se aftësia jonë prodhuese. Për më tepër kombi ka nevojë
për software shumë herë më të përdorshëm, të besueshëm dhe të fuqishëm se ata ekzistues. Në mënyrë
të rrezikshme ne po bëhemi të varur nga sisteme gjigant software-ikë sjellja e të cilëve jo gjithmonë
është e kuptueshme dhe që shpesh dështojnë në mënyrë të paparashikuar.” – Presidenti i Komitetit
Këshillues mbi Teknologjinë e Informacionit 1999
Shumë libra i dedikohen dështimeve spektakolare të software-ve dhe dëmeve që kanë shkaktuar.
“The most likely way for the world to be destroyed, most experts agree, is by accident” - Nathaniel
Borenstein
“Shumica e ekspertëve bien dakord se mënyra më e mundshme për shkatërrimin e botës është
aksidenti.” - Nathaniel Borenstein
Gabimet, si në çdo fushë tjetër të shkencës janë të padëshirueshme por edhe jo plotësisht të
paevitueshme në të njëjtën kohe. Inxhinieria Softuer është ndoshta e vetmja disiplinë inxhinierike ku
gabimet parashikohen të ndodhin me siguri.
Në vitet 1985-1987 u ndërtua një makinë e cila do të shërbente për radioterapi dhe që do të
kontrollohej nga një software. Nga hardware u hoq mekanizmi që suportonte dy funksione në të njëjtën
2
Inxhinieri Software Leksion 1
kohë, ndërkohë që edhe software nuk ofronte një tipar të tillë. Makina nuk arriti të menaxhonte dy
mënyra pune njëkohësisht: veprimtaria me rreze elektron dhe ajo me rreze X. Kjo shkaktoi disa vdekje si
rezultat i djegieve te pacientët. Shkaku i aksidentit ishte mungesa e njohurve të mjaftueshme të
programuesit mbi programimin paralel.
Raketa Ariane 5 e lëshuar në hapësirë në 1996 nga Agjensia Europiane Hapësinore arriti të qëndrojë
vetëm për pak momente në hapësirë dhe më pas u shkatërrua. Shkaku: Përjashtim i pamenaxhuar në
kodin Ada si rezultat i ndryshimeve fizike
Browser-i i parë i përdorur gjerësisht në botë u krijua në Universitetin e Illinois në 1994. Pjesëmarrësit
në projekt bënë një punë të shpejtë por jo të pastër gjatë zhvillimit të tij. Gjithsesi brenda 8 muajve ekipi
nxori Netscape Navigator i cili punonte në tre platforma. Në të njëjtën kohë Microsoft punonte për
Internet Explorer, por e nxori produktin në treg vetëm pas një viti. Netscape vazhdoi të ishte dominues
për aq kohë sa nuk nevojiteshin tipare të reja.
Koha dhe konkurrenca me I Explorer kërkoi shtimin e tipareve të reja të tij gjë që shtoi kaosin në kodin
burim deri sa erdhi një çast kur ky i fundit u bë krejtësisht i pamenaxhueshëm. Dizenjimi i Netscape
Navigator nuk ishte aq largpamës sa të lejonte jetëgjatësi të tij nën trysninë e kërkesave gjithnjë e në
rritje të përdoruesve. Ekipit iu desh të paguante koston e të shkruarit kod pa kaluar më parë në
modelim. Ndërkohë që Microsoft vazhdonte të fitonte betejën deri sa Netscape u zëvendësua tërësisht
nga Internet Explorer.
Të inxhinierosh një software nuk do të thotë thjesht ta programosh atë. Inxhinieria Software nënkupton
në të vërtetë shumë punë analizuese dhe dokumentuese dhe më pak kodim. Zakonisht si inxhinierë
software caktohen individë kreativë, me ide të reja, që dinë të menaxhojnë mirë një projekt dhe që
sigurisht kanë përvojë të mjaftueshme në programim.
3
Inxhinieri Software Leksion 1
Inxhinieria Software:
4
Inxhinieri Software Leksion 1
Sikurse të gjitha disiplinat e tjera inxhinierike, edhe IS kryhet brenda disa kornizave sociale dhe ligjore të
cilat kufizojnë lirinë e inxhinierëve. Inxhinierët softuer duhet të pranojnë që puna e tyre përfshin
përgjegjësi më të gjera se sa vetëm aplikimi i aftësive të tyre teknike. Ata gjithashtu duhet të sillen në
mënyre etike dhe të përgjegjshme nëse duan që të respektohen si profesionistë. Aftësitë dhe njohuritë
nuk duhet të përdoren në mënyrë të pandershme duke cënuar kështu reputacionin e profesionit të
inxhinierisë softuer. Megjithatë ekzistojnë disa fusha ku standardet e sjelljeve të pranueshme nuk
kufizohen nga ligjet por nga nocioni i përgjegjshmërisë profesionale. Disa prej këtyre janë:
Në vendosjen e standarteve etike luajnë një rol të rëndësishëm edhe shoqëritë dheinstitutet
profesioniste si p.sh ACM, IEEE, British Computer Society etj. Këto shoqëri publikojnë kode etikë dhe
profesionalë që duhet të respektohen nga anëtarët e tyre. ACM dhe IEEE kanë kooperuar për të
prodhuar një kod praktike profesionale dhe etike të përbashkët. Ky kod ekziston në dy forma: formën e
shkurtuar dhe në formën e gjatë
5) PRODUKTI
Software është i paevitueshëm në shoqërinë moderne të informacionit. Çdo veprimtari shoqërore apo
prodhuese varet prej sistemeve software. Biznesi dhe kërkimet shkencore drejtohen prej tyre. Software
përfshihen në sisteme të të gjitha llojeve: transport, mjekësi, telekomunikacion, ushtri, procese
industrialë, argëtim etj. Impakti është i pakundërshtueshëm për sa kohë që shoqëria i ka besuar
software-ve punën, mirëqenien, sigurinë madje edhe jetesën. Software duhet parë paralelisht edhe si
produkt edhe si mjet për të përftuar produktin. Roli i tij është kaq i rëndësishëm pasi na sjell produktin
më të rëndësishëm të kohës: informacionin.
Megjithatë roli i software dhe raporti i tij me hardware ka ndryshuar gjatë 50 viteve të jetës së tij.
Avancimet e teknologjisë hardware, rritja e aftësive llogaritëse kanë sjellë sisteme software
kompjuterikë më kompleks dhe më të sofistikuar.
5
Inxhinieri Software Leksion 1
50%
Rritje në raportin
performancë/çmim
20% për vit
5%
Software 5% /
Minis/Mainframes 20% / vit
PCs/Workstations 50% /
1. Një tërësi instruksionesh që japin performancën dhe funksionin e dëshiruar gjatë ekzekutimit.
2. Struktura të dhënash që i mundësojnë programeve një manipulim të përshtatshëm të
informacionit.
3. Dokumente që përshkruajnë operimin dhe përdorimin e programeve.
Produkti Software është i ndryshëm nga produktet e tjera që njerëzit prodhojnë dhe ndërtojnë.
Software në ndryshim nga hardware është më tepër një element logjik se fizik, prandaj edhe ka
karakteristika që e dallojnë në mënyrë thelbësore nga hardware.
6
Inxhinieri Software Leksion 1
projektet software nuk mund ttë menaxhohen në të njëjtën mënyrë sikurse edhe projektet e
tjerë prodhues.
2. Një softuer nuk ndikohet nga materialet fizikë. Nuk kufizohet nga ligjet e fizikës dhe as nga
procesi i prodhimit. Në një farë mënyrë kjo e lehtëson procesin e inxhinierimit të softuer duke
qenë se procesi nuk duhet të përballet me kufizime fizike. Megjithatë kjo mungesë kufizimesh
shpesh
pesh e bën softuerin shumë kompleks dhe rrjedhimisht të vështirë për tu kuptuar.
3. Software nuk vjetërsohet
rsohet dhe nuk dëmtohet siç mund të ndodhë me hardware. Figura më m
poshtë tregon shkallën e dëështimit të një software në varësi të kohës.
Një tjetër aspekt që tregon ndryshimin midis hardware dhe software nga pikëpamja pik e
vjetërsimit është aftësia
sia e zzëvendësimit nga pjesë të tjera. Nqs pjesë të ndryshme tët hardware
mund të zëvendësohen
sohen nga pjespjesë të reja kjo gjë nuk ndodh me software prandaj edhe
mirëmbajtja e software ësht
shtë më e vështirë.
4. Pjesa më e madhe e software jan janë të ndërtuar në varësi të klientit (custom-built)
(custom dhe jo
prodhim në seri ndonëse raste ttë tillë nuk përjashtohen. Kjo është edhe arsyeja pse kërkesat
k
për software janë më të larta se kkërkesat përr hardware dhe pse industria sot gjithnjë
gjithnj e më tepër
po drejtohet në inxhinierimin e komponent
komponentëve të ripërdorshëm.
5. Një produkt software mund ttë shumëfishohet në kopje identike në seri të së s njëjtës cilësi pa
pasur rrezik skarco.
2.3 Cili është ndryshimi midis Inxhinierisë Sofuer dhe Shkencave Kompjuterike
Shkencat Kompjuterike merren me teoritë dhe metodat mbi të cilat ndërtohen kompjuterat dhe
sistemet softuer, ndërsa Inxhinieria Softuer merret me problemet praktikë të prodhimit të softuer.
Megjithatë
jithatë për të inxhinieruar një softuer janë të nevojshme disa njohuri të mira në Shkencat
Kompjuterike. Megjithatë jo të gjitha teoritë elegante të Shkencave Kompjuterike janë zgjidhja më e
mirë për tu aplikuar në një program real.
7
Inxhinieri Software Leksion 1
Sa herë që ekziston një algoritëm për zgjidhjen e një problemi ky i fundit mund të nënshtrohet një
aplikacioni software për zgjidhjen e tij (bëjnë përjashtim këtu disa raste të problemeve të Inteligjencës
Artificiale). Përmbajtja e informacionit dhe përcaktueshmëria janë dy faktorë shumë të rëndësishëm që
ndikojnë në natyrën e një aplikacioni software.
Ndonëse në gamën e gjerë të aplikacioneve që përdoren sot është e vështirë të bësh një kategorizim të
qartë, është e nevojshme që për arsye studimi të caktohen hapësira përfshirëse për ta. Të tilla janë:
Software sistemi. Software-t e sistemit janë një grup programesh që u shërbejnë programeve të
tjerë. Të tillë janë kompilatorët, parser-at, sistemet e menaxhimit të skedarëve, driver-at,
sistemet e shfrytëzimit etj. Këta aplikacione karakterizohen nga:
o Ndërveprim i ngushtë me hardware.
o Shumë përdorues (multi-user)
o Veprime të njëkohshëm.
o Struktura të dhënash komplekse.
o Shumë ndërfaqe të jashtme.
Sisteme në kohë reale(real-time). Këta lloj software monitorojnë, analizojnë dhe kontrollojnë
ngjarjet e botës realë ndërkohë që ato ndodhin. Këta aplikacione karakterizohen nga:
o Komponentë që mbledhin të dhëna nga një mjedis i jashtëm dhe i formatojnë ato për
manipulim.
o Komponentë që analizojnë informacionin dhe transformojnë sipas kërkesave të
aplikacionit.
o Komponentë që kontrollojnë output-in .
o Komponentë drejtues që koordinojnë punën e komponentëve të tjera në mënyrë që
sistemi të përgjigjet në kohë reale.
Software biznesi. Kjo është edhe kategoria më e madhe e software-ve. Këta aplikacione
kryesisht merren me ruajtjen dhe aksesimin e të dhënave që kanë të bëjnë me informacionin e
biznesit. Zakonisht karakterizohen nga baza të dhënash të normalizuara dhe të përmasave të
mëdha si edhe nga interaktivitet i lartë me përdoruesin.
8
Inxhinieri Software Leksion 1
Software shkencorë dhe inxhinierikë. Këta software përfshijnë pothuajse gjithmonë algoritma
dhe llogaritje komplekse. Fusha ë aplikimit janë astronomia, biologjia molekulare, matematika e
aplikuar, fizika etj. Sot software-t shkencorë nuk janë vetëm software përllogaritës por po
tentojnë drejt sistemeve simulues, interaktivë dhe kanë tipare të software-ve real-time.
Sotware të ndërfutur. Janë software që vijnë si pjesë e industrisë dhe e prodhimeve të saj. Këta
software qëndrojnë në kujtesën afatshkurtër të pajisjes dhe shërbejnë për të kontrolluar dhe
automatizuar punën e saj. Software-t e ndërfutur mund të kryejnë vetëm pak funksione të
kufizuar, i kufizuar është edhe ndërveprimi i përdoruesit me këta sisteme.
Software për kompjutera personalë. Tregu i software-ve për kompjutera personalë ka zënë
shumë peshë në prodhimin e përgjithshëm të industrisë software. Shembujt janë të shumtë:
Software word-processing, grafikë, personal, multimedial, lojëra, për aksesim të bazave të të
dhënave etj.
Software të bazuar në web (web-based). Aksesohen me anë të browser-ave dhe bazohen në
rrjetin mbarëbotëror të kompjuterëve, internetin. Të dhënat në të paraqiten në forma të
ndryshme dhe lehtësisht të kuptueshme për përdoruesin si psh: hypertext dhe formate
multimedialë. Çdo ditë e më tepër rritet rëndësia dhe kërkesa për këto lloj aplikacionesh për
shkak kërkesave në rritje për komunikim dhe shkëmbim të informacionit midis individëve apo
kompanive.
Software të Inteligjencës Artificiale. Përdorin algoritma jonumerikë për të zgjidhur probleme
kompleksë të cilët nuk mund të zgjidhen me metodat tradicionale. Të tillë janë sistemet
ekspertë, sistemet e bazuar në njohuri, rrjetat neutralë, vërtetimi i teoremave, lojërat
inteligjente etj.
Gjatë historisë rreth 50-vjeçare të zhvillimit të software kanë lindur dhe janë vënë re shumë ide të
gabuara të cilat kanë çuar në keqinformim dhe që kanë shkaktuar konfuzion në radhët analistëve dhe
zhvilluesve. Këto janë ide intuitive që shpesh kanë një pjese të së vërtetës në brendësi, por që nuk janë
të duhura për tu zbatuar. Shpesh kanë të bëjnë me zakone të vjetër nga të cilët ka qenë e vështirë që
njerëzit të shkëputeshin kurse të tjera janë vështrime pragmatiste.
Këtyre ideve dhe mendimeve në Inxhinierinë Software autorët i referohen si Mite të Software.
9
Inxhinieri Software Leksion 1
Disa shembuj:
Mite të menaxhimit:
“Ne kemi një libër plot me udhëzime dhe standarde për ndërtimin e software. Kjo do t’i sigurojë
njerëzve të mi çdo gjë që iu duhet.”
“Njerëzit e mi kanë mjetet më të sofistikuar për zhvillimin e software. Për më tepër ne blejmë
kompjuterat më të fundit.”
“Nqs jemi prapa me planin gjithmonë mund të shtojmë numrin e programuesve dhe të arrijmë
afatet kohorë.”
Mite të klientit
Mite të praktikuesit
“The amateur software engineer is always in search of magic, some sensational method or tool whose
application promises to render software development trivial. It is the mark of the professional software
engineer to know that no such panacea exists.” – Grady Booch, Object Oriented Analyses and Design
Tashmë e dimë që nuk ekziston ndonjë pikëpamje “ideale” për Inxhinierinë Softuer. Diversiteti i lartë i
sistemeve dhe i organizatave që përdorin sistemet do të thotë që na duhet një diversitet pikëpamjesh
për Inxhinierinë Softuer. Megjithatë në themel të këtyre teknikave gjenden nocione thelbësore të
procesit të inxhinierimit të cilët përbëjnë esencën e IS. Gjatë këtij kursi pritet që të trajtohen gjerësisht
këta parime thelbësorë.
10