L01-Hyrje

16
Inxhinierimi i software Hyrje Hyrje Inxhinierimi i software (S oftware E ngineering –SE) është displina e modelimit, krijimit dhe mirëmbajtjes së softwareve duke zbatuar teknologji dhe praktika të informatikës, e menaxhimit të projekteve, e modelimit të ndërfaqes grafike, etj. Kjo disipline merret me identifikimin, percaktimin, kuptimin dhe verifikimin e karakteristikave të kërkuara të software përfundimtar. Këto karakteristika mund të përfshijnë funksionalitetin(functionality), besueshmerine(reliability), mundesine per mirembajtje(maintainability),testueshmërinë(testability), lehtësinë e përdorimit, portability dhe atribute të tjerë. Këto karakteristika adresohen nga inxhinierët e softwareve duke përgatitur modelime dhe specifikime teknike, të cilat, nqs implementohen ashtu si duhet, do te rezultojnë në një software të verifikueshëm përsa i përket këtyre kërkesave. Përmbledhtasi, mund të themi që SE është disiplina inxhinierike që merret me të tërë aspektet e ndertimit të një software nga fazat e para të specifikimit të sistemit deri në mirembajtjen e sistemit pasi ai është vene në punë. SE trajton dhe adreson proceset e software, modelet e proceseve, kostot, atributet e software, mjete të ndryshme që zgjidhen për tu perdorur gjatë ndërtimit të software, përgjegjësitë profesionale dhe etike. Objektivi kryesor i SE është të ofroje mënyra për të siguruar një prodhimin e një software që permbush qellimet për të cilat është kerkuar (kerkesa funksionale/ jo funksionale, kufizime të ndryshme të mjedisit në të cilin do të ekzekutohet, kosto, respektimin e ligjeve, etj). Nevoja për inxhinierimin e software Në ditët e sotme: - ekomonia e të tëra shteteve të zhvilluara është e varur nga softet - software kontrollojnë gjithmonë e më shumë sistemet. - 1 -

Transcript of L01-Hyrje

Page 1: L01-Hyrje

Inxhinierimi i software Hyrje

Hyrje

Inxhinierimi i software (Software Engineering –SE) është displina e modelimit, krijimit dhe mirëmbajtjes së softwareve duke zbatuar teknologji dhe praktika të informatikës, e menaxhimit të projekteve, e modelimit të ndërfaqes grafike, etj. Kjo disipline merret me identifikimin, percaktimin, kuptimin dhe verifikimin e karakteristikave të kërkuara të software përfundimtar. Këto karakteristika mund të përfshijnë funksionalitetin(functionality), besueshmerine(reliability), mundesine per mirembajtje(maintainability),testueshmërinë(testability), lehtësinë e përdorimit, portability dhe atribute të tjerë. Këto karakteristika adresohen nga inxhinierët e softwareve duke përgatitur modelime dhe specifikime teknike, të cilat, nqs implementohen ashtu si duhet, do te rezultojnë në një software të verifikueshëm përsa i përket këtyre kërkesave. Përmbledhtasi, mund të themi që SE është disiplina inxhinierike që merret me të tërë aspektet e ndertimit të një software nga fazat e para të specifikimit të sistemit deri në mirembajtjen e sistemit pasi ai është vene në punë. SE trajton dhe adreson proceset e software, modelet e proceseve, kostot, atributet e software, mjete të ndryshme që zgjidhen për tu perdorur gjatë ndërtimit të software, përgjegjësitë profesionale dhe etike.Objektivi kryesor i SE është të ofroje mënyra për të siguruar një prodhimin e një software që permbush qellimet për të cilat është kerkuar (kerkesa funksionale/ jo funksionale, kufizime të ndryshme të mjedisit në të cilin do të ekzekutohet, kosto, respektimin e ligjeve, etj).

Nevoja për inxhinierimin e software

Në ditët e sotme:- ekomonia e të tëra shteteve të zhvilluara është e varur nga softet- software kontrollojnë gjithmonë e më shumë sistemet.- shpenzimet për software përbëjnë një pjesë të konsiderueshme të shpenzimeve te

shteteve të zhvilluara.- kostoja e një software është mbizotëruese në koston e një sistemi kompjuterik,

software kushton më shume sesa hardware.- zhvillimi i software kushton më pak sesa mirëmbajtja e tij. Për një software me

jetë të gjatë, kostoja e mirembajtjes mund te jete shumefish i asaj te zhvillimit.

Inxhinierimi i software merret me zhvillimin e nje software me kosto efektive.Termi inxhinierim software (SE) u perdor per here të parë në vitin 1968 në konferencën e NATO-s, e organizuar nga komiteti shkencor i NATO-s, ne Gjermani. Besohet që kjo konference i dha pikënisjen profesionit të inxhinierimit të software. Objektivi ishte zgjidhja e të ashtuquajturës krizë e software e viteve 1960, 1970, 1980, e cila evidentoi problemet e zhvillimit të software. Termi ‘krizë e software’ u përdor fillimisht në lidhje me produktivitetin, por evoloi më pas për të theksuar cilësinë. Këtë krizë e evidentonin:

- software dorëzoheshin pas afatit të duhur(vonë)- software kushtonin më shumë nga sa ishte parashikuar (shtrenjtë). Shembull

klasik është zhvillimi i sistemit të operimit OS/360. Ishte një projekt që zgjati afërsisht një dekadë, nga 1960 deri në 1970 dhe krijoi një nga produktet më

- 1 -

Page 2: L01-Hyrje

Inxhinierimi i software Hyrje

komplekse të krijuara ndonjëherë. OS/360 ishte projekti i parë i madh i marrë përsipër me rreth 1000 programues. Fred Brooks thotë tek ‘The Mythical Man Month’ se bëri një gabim prej miliona dollarë duke mos ndërtuar më parë një arkitekturë koherente për sistemin përpara se të fillonte zhvillimi.

- software nuk ishin të besueshëm(dëmtim)- software nuk kishin cilësi që t’i bënin të jetonin gjatë(mungesë mirëmbajteje)- software kishin performancë të ulët.

Në këto kushte, pyetja që shtrohej ishte: ç’mund të bëhet për t’i lehtësuar dhe shmangur këto probleme. Përgjigjja e vetme për problemet ishte: software duhet të jetë një produkt që duhet inxhinieruar. Softet e sotme janë aq të mëdha dhe komplekse sa përpjeka për të filluar zhvillimin e tyre duke shkruar menjëherë kod është fillimi i dështimit.

Kur fillon projekti i ndertimit te nje ndertese, nuk fillon menjehere puna duke ndertuar ndertesen. Inxhinieret perdorin metoda te percaktuara me pare dhe te dokumentuara mire.

1. Analizohet ndertimi i kerkuar duke biseduar shpesh me klientet/perdoruesit per te kutpuar sa me mire ate qe kerkohet.

2. Dizenjohet ndertimi ne perputhje me kerkesat e perdoruesit. Keto kerkesa jane gjeneruar nga nje specifikim i caktuar.

3. Ndertohet nje model per te testuar dizenjon.4. Se fundmi, fillohet ndertimi konkret.

Veprimet e pershkruara me lart, jane faza te inxhinierimit të një ndërtese cfarëdo. Në këto faza duhet të kalojë dhe ndërtimi i një software.

Inxhinierimi është krijimi i zgjidhjeve për problemet praktike, me pak shpenzim, duke përdorur njohuri shkencore, për të ndërtuar gjëra në shërbim të njerëzimit.

Kriza e software po zhduket shumë ngadalë. Po pranohet që zgjidhja e problemeve të zhvillimit të software janë vërtet të vështira dhe ato mund të zgjidhen vetëm me shumë punë gjatë periudhave shumë të gjata.Nga viti 1970 e deri në vitet 1990, përdorimi i mjeteve të ndyshme, disiplina, metodat formale, proçesi, dhe profesionalizmi trumbetoheshin si çelësi i zgjidhjes së krizës.

Zhvillimi i sistemeve të kompjuterizuara është shoqëruar nga një numër i madh problemesh, shumica e të cilëve janë të pranishëm akoma. Përparimet në hardware mbizotërojnë mbi aftësitë tona për të ndërtuar me të njëjtat ritme software që i përgjigjen potencialeve të hardwareve. Aftësitë për të ndërtuar programe të reja nuk ecin me të njëjtin ritëm me kërkesat për programe të reja. Aftësitë janë të kufizuara edhe për të ndërtuar shpejt programe që t’i përgjigjen kërkesave të tregut. Përdorimi shumë i gjerë i kompjuterave e ka berë shoqërinë më shumë të varur nga operimi i besueshem i programeve.Deshtimet e software shkaktojnë dëme të mëdha ekonomike. Aftesite per te zhvilluar dhe mbështetur më tej programet ekzistuese kërcënohet nga dizenjim i varfër i tyre dhe burime të kufizuara (burimet e kufizuara shpesh cojnë në një zhvillim të software pa ndjekur standarte ose pa kaluar nëper fazat që percakton SE, gje që rezulton edhe në dizenjim të varfer dhe software që është i vështirë për tu mirembajtur) .

- 2 -

Page 3: L01-Hyrje

Inxhinierimi i software Hyrje

Këto janë arsyet që kanë çuar në krijimin e disiplinës së SE. Duhet maksimizuar cilësia e software duke ulur kohën e kërkuar për zhvillim dhe shpenzimet.

Disa Shifra & Statistika

Në 1994, Grupi Keshillor i IBM (IBM Consulting Group) nxorri një studim (sondazh) nga 24 kompani kryesuese të cilat kishin zhvilluar sisteme shpërndarjeje shumë të mëdha. Studimi:

- 55% e software të zhvilluar kushtonte më shumë sesa ishte parashikuar në projekt.- 68% kërkuan kohë më të gjatë për tu përfunduar sesa ishte parashikuar. - 88% ishin ridizenjuar thuajse tërësisht.

Një studim i 1994 Standish Group i zhvilluar për 8,380 projekte të bëra për qeverinë dhe sektoret privatë në SHBA, tregoi që :

- 31% e projkteve të software ishin anulluar para se të përfundoheshin. - 53% e projekteve të perfunduara kushtuan 189% nga vlera e paracaktuar. - nga 53%, vetëm 42% i kishin funksionet dhe tiparet e propozuara që më parë. - vetëm 9% e projekteve ishin përfunduar në përputhje me afatet kohore dhe buxhetin e percaktuar

Pse deshtojne projektet e ndertimit te software- software nuk eshte ai qe duhet ne kontekstin ne te cilin do te perdoret (per arsye si

keqkuptim i kerkesave, mungesa e analizes se kontekstit- mjedisi, audienca, perdoruesi fundor, rregullat dhe specifikat e fushes se ciles do i sherbeje)

- arsye qe lidhen drejtperdrejt me SE si keqkuptim i kerkesave, probleme modelimi, gabime ne specifikime, modelim apo implementim, probleme ne funksionim

- software jane komplekse, menaxhimi i duhur i kompleksitetit eshte i veshtire-

[lexim i sugjeruar: R.N.Charette.WhySoftwareFails.IEEESpectrum,pp.42-49,September2005.]

Pyetje që dalin përpara SE dhe që kërkojnë përgjigje:1. Pse duhet një kohë kaq e gjatë për të përfunduar një projekt?2. Pse kushton kaq shumë për të ndërtuar një software?3. Pse shpërndahen software me gabime të rëndësishme në to?4. Pse është kaq e vështirë të matet progresi gjatë proçesit të zhvillimit?

Përgjigjet duhen kërkuar në proçesin e zhvillimit të software, dnth në hapat që duhen ndjekur gjatë zhvillimit, mjetet që duhen përdorur, etj.

Disa përkufizime për SE

Inxhinierimi i software është disiplina që synon të zhvillojë softe pa gabime, të përfunduara dhe lëshuara në kohë, brenda buxhetit dhe që kënaqin nevojat e përdoruesit.

- 3 -

Page 4: L01-Hyrje

Inxhinierimi i software Hyrje

Inxhinierimi i software është studimi i proçeseve sistematike dhe efektive si dhe studimi i tekonologjive për të mbështetur zhvillimin e software në mënyrë që të rritet cilësia dhe te ulen shpenzimet.

Përkufizimi klasik (1968): themelimi dhe përdorimi i prinicipeve të inxhinierisë për të prodhuar software ekonomikë, të besueshëm dhe që punon në mënyrë efiçente në makina reale.

Përkufizimi nga IEEE (Institute of Electrical and Electronics Engineers) (1993): Zbatimi i një mënyre sistematike, të disiplinuar për të zhvilluar, operuar dhe mirëmbajtur software. Ky është zbatimi inxhinierik i software.

SE merret me të gjitha aspketet e zhvillimit të një software.

Pse nevojitet Software Engineering

• Për të parashikuar kohë, përpjekje, dhe shpenzime. • Për për përmirësuar cilësinë e software• Për të përmirësuar mirëmbajtjen• Për t’iu përgjigjur kërkesave në rritje• Për të ulur shpenzimet e software• Për të ndërtuar suksesshëm sisteme software të medha, komplekse• Për të lehtësuar përpjekjet në grup gjatë zhvillimit të software

Cilës fushë i përket SE?

Ekzistojnë debate nëse SE është degë e programimit, degë e inxhinierisë tradicionale, degë e informatikës apo është e pavarur?Programimi thekson shkrimin e kodit, pavarësisht nga projekti dhe klientët. SE thekson shkrimin e kodit në kontekstin e projektit dhe të klientëve duke bërë plane dhe duke shpërndarë aplikime.Shumë mendojnë se SE është pjesë e informatikës për shkak të lidhjeve te tyre historike dhe të lidhjes së tyre me matematikën dhe, duan ta quajnë si pjesë të saj. Si informatika ashtu dhe SE merren me programet. Informatika thekson teorinë dhe të vërtetat e përhershme, ndërsa SE thekson rëndësinë praktike. Shumë argumentojnë që informatika eshte për SE ashtu si është kimia dhe fizika për inxhinieritë tradicionale.Disa akademikë dhe ushtrues të SE si psh. David Parnas dhe Steve McConnell kanë shtruar idenë e trajtimit të SE si një disiplinë inxhinierike. Mbrojtësit e këtij mendimi, argumentojnë se praktimi i inxhinierisë kërkon përdorimin e matematikës, shkencës dhe teknologjive të fundit, për të ndërtuar produkte që i përshtaten kërkesave. Një përshrim i tillë i përshtatet edhe SE.Kohët e fundit, SE ka filluar te trajtohet si një disiplinë më vete. Zyra e punës në Shtetet e Bashkuara i klasifikon inxhinierët e software si nënkatogori të specialistëve të kompjuterave si dhe specialistë si informatikanë, programues, adminstatorë rrjeti.

- 4 -

Page 5: L01-Hyrje

Inxhinierimi i software Hyrje

Trekëndëshi i kufizimeve

Koha

Kostoja Cilësia

Kostoja është treguesi sesa programues do të punësohen në ekipin zhvillues. Koha eshte matësi i kohëzgjatjes së projektit. Cilësia tregon sesa cilësi do të përfshijë produkti dhe sesa do të jetë testuar ai.Kontrollimi i kohës, kostos dhe cilësisë përbën qëllime të rëndësishme të projektit. Koha duhet menaxhuar që projekti të përfundojë sipas afateve të përcaktuara. Kostoja e zhvillimit duhet kontrolluar që projekti të jetë brenda buxhetit dhe madje të nxirren dhe fitime. Duhet siguruar dhe cilësia në menyrë që software të jetë tërheqës për përdoruesit. Në kushte ideale do të donim që projektet të bëheshin menjëherë, pa kosto dhe me cilësi të mire. Por në një botë reale duhen bërë kompromise. Në rast se do të ndryshohen kërksesat për një nga një elementët, atëherë duhen bërë veprime rregulluese në lidhje me përbërësit e tjerë. Kështu, nqs duhet të zvogëlohet kohëzgjatja e projektit do të duhet të rriten kostot duke punësuar njerëz të rinj dhe/ose të ulet cilësia duke reduktuar një pjesë të veçorive të software ose duke reduktuar testimin. Mund të ulet kostoja e projektit duke pakësuar nr e programuesëve, gjë që do të kërkojë zgjatje të kohës dhe/ose ulje të cilësisë. Në rast se vendoset për një projekt me cilësi shumë të lartë, do të duhet me shumë kohë dhe më tepër shpenzime.Nëse klienti (ose menaxheri) specifikon në mënyrë arbitrare të tre kulmet e trekëndëshit të kufizimeve, atëherë projekti ka shumë mundësi të dështojë. Cdo ndryshim në njërin prej kulmeve, duhet të balancohet me ndryshime në kulmet e tjera (te paktën në njërin). Në rast se kjo eshtë e pamundur, projekti është i destinuar të dështojë.Në 1990, NASA filloi të vepronte bazuar në sloganin” Më shpjet, më mire, më lire”. Pasuan një varg projektesh të pasukseshme. Ishte praktikisht e pamundur që një parim i tillë të rezultonte i suksesshëm. Më vonë, filloi të qarkullonte një tjetër shprehje ndërmjet inxhinierëve të software, që ishte plotesim i të mësipërmes: “Më lirë, më mire, më shpejt, zgjidhni dy prej tyre”Menyra për të ekonomizuar cilësinë nuk është të mendohet që do të ndërtohet një program plot me gabime dhe ato nuk do të rregullohen, por të mendohet që do të kufizohet në mënyrë të ndjeshme numri i funksioneve që do të ofrojë programi.

SE studion të gjitha veprimtaritë e nevojshme për zhvillim cilësor të software. Objekte të saj janë produkti që do të zhvillohet dhe proçesi përgjatë të cilit do të bëhet ky zhvillim.

- 5 -

Page 6: L01-Hyrje

Inxhinierimi i software Hyrje

Produkti

Software të kompjuterave janë bërë një force udhëheqëse. Ata jane motorret që udheheqin vendimarrjen. Ato sherbejne si baza për veprimtari shkecore dhe për zgjidhjen e problemeve inxhinierike. Ato jane të nderfutur në shumë sisteme të të tera tipeve: transport, mjeksore, telekomunikimi, ushtarake, procese industriale, zbavitje, produkte zyre,etj. Në boten moderne nuk mund t’i shpetosh softwareve. Dhe, në shekullin e 21, softwaret do të jenë udheheqesit drejt perparimeve të reja që nga arsimimi fillor e deri në inxhinierine gjenetike.

Software luan një rol të dyfishte në ditet e sotme. Ai është produkti dhe, në të njejten kohe dhe menyra e shperndarjes se produktit që kerkohet. Si produkt ai lejon shfrytezimin e potencialeve llogaritese të hardware të një kompjuteri lokal ose të një rrjeti kompjuterash. Pavarësisht nëse software operon brenda një telefoni celular apo brenda një kompjuteri mainframe, software është një transformues informacioni – ai prodhon, menaxhon, mbledh, modifikon, shfaq ose transmeton informacion që mund të jetë një bit i thjeshte ose një prezantim multi-medial. Si mjet i shpërndarjes së produktit, software shërben si bazë për kontrollin e hardware (sistemet e shfrytezimit), për komunikimin e informacionit (rrjetat), dhe për krijimin dhe kontrollin e softwareve të rinj (system tools dhe mjedise të ndryshme).

Karakteristikat e software

Për të kuptuar me mirë softwaret dhe rrjedhimisht dhe SE-në, është e rendesishme të examinohen karakteristikat e që e bejne software të ndryshem nga gjerat e tjera që ndertojne njerezit. Kur ndertohet hardware, procesi krijues njerezor (analiza, modelimi, ndertimi dhe testimi) perkthet në një forme fizike. Kur ndertohet një kompjuter i ri, skemat fillestare, vizatimet formale të modelit, prototipi zhvillohen në një produkt fizik. Software është me teper logjik sesa një element fizik i sistemit. Prandaj ai ka karakteristika të ndryshme nga ato të hardware.

- software zhvillohet (ose kalon ne inxhinierim- engineering); nuk prodhohet/fabrikohet (manufactured) duke u bazuar ne kuptimin klasik. Në të dyja rastet, cilesia e larte arrihet duke realizuar një modelim të mirë, por faza e prodhimit të hardware mund të nxjerrë probleme fatale cilësore, të cilat nuk ekzistojnë në rastin e ndërtimit të software. Të dyja aktivitet varen nga njerëzit, por raporti ndërmjet njerëzve të perfshire dhe punes se realizuar është teresisht e ndryshme.

- software nuk demtohet (del jashte perdorimit): software ka ritme te ndryshme deshtimi nga hardware – me saktesisht: eshte konstant pasi eshte korrigjuar;

- pjesa me e madhe e software eshte ndertuar sipas klientit (custom built), dhe jo nje pershtatje-asemblim i perberesve ekzistues. Zhvillimi i një disipline inxhinierike, shoqerohet me krijimin e një bashkesie komponentesh të standartizuar që mund të riperdoren. Shembull i tille jane qarqet që perdoren në elektronike. Elementet e riperdorshme krijohen që inxhinieret të mund të perqendrohen vetem në pjeset e reja të dizenjimit. Në boten e hardware

- 6 -

Page 7: L01-Hyrje

Inxhinierimi i software Hyrje

riperdorimi i komponenteve është mese i zakonshem, ndersa në boten e software është diçka që sapo ka filluar të arrihet.Një kompontent software duhet të modelohet dhe implementohet në mënyrë që të mund të riperdoret në programe të ndryshme. Në vitet ’60 u ndertuan librari me procedura të ndryshme që u perdoren në aplikime të ndryshme inxhinierike. Keto librari permbanin algoritme të percaktuara mirë në menyra efektive. Komponentet moderne të riperdorshme enkapsulojne të dhena dhe veprime mbi të dhenat duke lejuar inxhinieret e software të krijojne aplikime të reja nga pjeset e riperdorshme. Psh. nderfaqet grafike të sotme ndertohen nga perdorimi i kopmonenteve të riperdorueshme që lejojne krijimin e dritareve, etj.

Aplikimet e software

Software mund të aplikohet në cdo situate për të cilen jane paracaktuar një bashkesi hapash proceduriale (psh një algoritem). Permbajtja e informacionit dhe percaktueshmeria (determinizmi) e tij jane dy faktore të rendesishem në percaktimin e natyres se aplikimit të software. Permbajtja i referohet kuptimit dhe formes të informacionit hyres dhe dales. Psh shumë aplikime ekonomike marrin të dhena të struktuara dhe nxjerrin raporte të formatuara. Percaktueshmeria e informacionit (information determinacy) i referohet parashikueshmerise se rendit dhe kohes se manipulimit te informacionit. Nje program analist i inxhinieruar pranon te dhena qe kane nje rend te paracaktuar, ekzekuton algoritmin e analizes pa nderprerje dhe gjeneron te dhena rezultuese ne raport apo format grafik.

Aplikime te tilla jane te percaktuara (determinate). Nje sistem operimi multi-

user, nga ana tjeter, pranon të dhena hyrese qe kane permbajtje te ndryshme dhe kohe arbitrare (te cfaredoshme); ekzekuton algoritmet qe mund te nderpriten nga kushte të jashtëm, dhe prodhon output që ndryshon si funksion i varur nga mjedisi dhe koha. Aplikime me tipare te tilla jane te papercaktuara (indeterminate). Eshte e veshtire per te zhvilluar kategori gjenerike per aplikimet software. Sa me shume rritet kompleksiteti i software, klasifikimi i tyre veshtiresohet. Hapesirat e software te meposhtem tregojne aplikime te mundshme të tyre:

Software të sistemit: eshte nje koleksion programesh te shkruara per t’i sherbyer programeve te tjera. Disa sisteme (psh kompilues, editor, dhe utilitete per menaxhim skedaresh) procesojne struktura informacioni komplekse, por te percaktueshme (determinate).Aplikime te tjera software (psh komponent te OS, drivers, processor telekomunikacioni) procesojnë të dhëna të mëdha të papërcaktueshme (indeterminate). Në cdo rast, hapësira e software të sistemit karakterizohet nga:

• ndërveprim (interaction) i madh me hardware të kompjuterit; • përdorim i gjere nga shume perdorues; • veprime konkurente qe kerkojne renditje; • ndarje te burimeve (resource sharing) dhe menaxhim procesi te sofistikuar; • strukture te dhenash komplekse (database);

- 7 -

Page 8: L01-Hyrje

Inxhinierimi i software Hyrje

• nderfaqe të jashtme te shumta.

Software në kohe reale: Software që monitoron/analizon/kontrollon ngjarje reale nderkohe qe ato ndodhin ne kohe reale. Elemente te ketyre software perfshijne:

1. komponent qe mbledh te dhena, i cili koleksionon dhe formaton informacionin nga nje mjedis i jashtem;

2. komponent analize qe transformon informacionin si eshte kerkuar nga aplikimi;

Software biznesi: procesimi i informacionit të biznesit është hapesira me e madhe e aplikimit të softwareve. Sistemet diskrete si sistemet e pagesave, etj kane evoluar në software të menaxhimit të informacionit (MIS) që aksesojne një ose me shumë databaza të medha me informacion të madh. Aplikimet në këtë fushe i strukturojne të dhenat në mënyrë që të lehtesojne veprimet e biznesit dhe menaxhimin e marrjes se vendimeve.

Software shkencore dhe inxhinierike: Aplikimet e kesaj hapesire variojne nga astronomia, ne vullkanologji, nga analiza e stresit ne dinamike orbite te anijeve kozmike, dhe nga biologji molekulare ne prodhim te automatizuar (manufacturing). Keto aplikime kane qene te lidhura me algoritme numerike. Gjths, software moderne ne hapesiren e inxhinierise/shkences kane evoluar duke zhvilluar modelim ‘computer-aided’, simulim sistemesh, dhe aplikime interaktive te cilat po marrin tipare te real-time software dhe software sistemi

Software të nderfutur(embedded software):produktet inteligjente jane bere te zakonshme ne tregun e konsumueseve dhe ate industrial.Embedded Software vendosen ne ROM (read-only memory) dhe perdoren per te kontrolluar produkte dhe sisteme per tregun. Ata:1. kryejne funksione shume te kufizuara: (psh, kontrolljne celesta për soben me mikrovale) 2. sigurojne funksione te rendesishme dhe aftesi kontrolluese (psh,funksione dixhitale ne automobil sic eshte kontrolli i naftes, etj)

Software për kompjutera personale: tregu per software te dedikuar per PC ka evoluar ne dy dekadat e fundit:

• Procesim fjalesh (word processing), • spreadsheets, • grafike kompjuteri, • multimedia, argetim, • menaxhim database, • aplikime personale dhe financiare, • akses rrjeti te jashte etj, jane nder te pakta shembuj nga shumica e ketyre

aplikimeve.

- 8 -

Page 9: L01-Hyrje

Inxhinierimi i software Hyrje

Software web-based: Faqet e webit te lexuara nga nje browser jane software te cilat permbajne instruksione te ekzekutueshme (psh, CGI, HTML, PERL, PHP, JAVA) dhe te dhena-data (hypertext dhe nje variete formatesh visual dhe audio). Ne thelb, rrejti behet nje kopjuter masiv qe siguron akses thuajse te pakufizuar per cdo njeri.

Software të inteligjences artificiale: nje software i AI (artifical intelligence) perdor algoritme jo-numerike per te zgjidhur probleme qe nuk jane te lidhura me analize llogaritje te drejtperdrejte. Shembuj: Sisteme eksperte, te quajtura dhe sisteme te bazuar ne njohuri (knowledge base

systems), njohes modelesh – pattern recognition (imazh dhe ze), rrjete artificiale neural (artificial neural networks) ..

Mitet e software

Gjate historise se zhvillimit të software, u zhvillua dhe mitologjia e tij. Mitet e software propagandonin keqinformim dhe konfuzion. Ata kishin një numer atributesh që i benin të djallezuar, psh ata dukeshin se permbanin pohime të arsyeshme, ishin intuitivisht të drejta dhe propagandoheshin zakonisht nga njerez me pervoje .

• Miti i menaxherit: “Ne e kemi tashme nje liber qe eshte plot me standarte dhe procedura per te ndertuar software. A nuk do t’i siguroje kjo njerezve te mi cdo gje te cilen ata kane nevoje ta dine?” “Njerezit e mi kane mjete te sofistikuara (state-of-the-art) per te zhvilluar software. Mbi te gjitha, ne blejme kompjuterat me te rinj.”“Nqs ne jemi vone per afatin e percaktuar, ne mund te shtojme me shume programues, te rrisim ritmin dhe te jemi ne kohe.”

• Miti i klientit: “Kerkesat e projektit ndryshojne vazhdimisht, por ndryshimet mund te pershtaten lehtesisht sepse software eshte fleksibel.”“Nje dokument i thjeshte me objektivat e pergjithshme eshte I mjaftueshem per te filluar te shkruash programin – ne mund ta mbushim me detaje me vone.”

Miti i zhvilluesit:” Sapo ne e shkruajme programin dhe e veme ne pune, detyra jone ka mbaruar”.“Derisa une ta bej programin te punoje, nuk kam vertet asnje menyre sesi te vleresoj cilesine e tij.”“I vetmi mjet per tu dorezuar ne nje projekt te suksesshem eshte programi qe punon”

Në realitet:• “... Programuesit nuk tregojne te verteten per gjendjen aktuale te kodit te tyre.”

- 9 -

Page 10: L01-Hyrje

Inxhinierimi i software Hyrje

• “... Menaxhimi e nenvleresoi jashte mase kohen e nevojitur per te perfunduar projektin.”

• “... Menaxhimi nuk lejoi kohe te mjaftueshme per te planifikuar me kujdes projektin.”

• “... Rendimeti I programuesve rezultoi te ishte shume me e ulet sesa pritej.”

Zgjidhja:• Zhvillimi i nje strukture (framework) e cila te suportonte permiresimet e

vazhdueshme, evoluese ne produkt dhe proces.• Nje model i qarte per procesin e zhvillimit ishte celesi qe mungonte ne pervojat e

kaluara

- 10 -