42
PRINCIPET E PROJEKTIMIT TË SISTEMEVE KOMPJUTERIKE Autorë: Jerome H. Saltzer, M. Frans Kaashoek Instituti për Teknologji i Masaçusetsit – MIT, SHBA Përktheu dhe përshtati në shqip: Dr. Fisnik Dalipi Sistemet PËRMBAJTJA E KAPITULLIT Përmbledhje ......................................................................................................................... 2 1.1 SISTEMET DHE KOMPLEKSITETI .................................................................................... 3 1.1.1 Problemet e rëndomta të sistemeve nëpër shumë fusha....................................... 3 1.1.2 Sistemet, komponentet, ndërfaqet, dhe mjediset ................................................. 8 1.1.3 Kompleksiteti ...................................................................................................... 10 1.2 BURIMET E KOMPLEKSITETIT ..................................................................................... 13 1.2.1 Kërkesat Ujëvarë dhe Ndërvepruese ................................................................... 13 1.2.2 Mirëmbajtja e shfrytëzimit të lartë ...................................................................... 17 1.3 PËRBALLIMI ME KOMPLEKSITETIN I............................................................................ 19 1.3.1 Modulariteti ........................................................................................................ 19 1.3.2 Abstraksioni ........................................................................................................ 20 1.3.3. Nivelizimi............................................................................................................ 24 1.3.4. Hierarkia............................................................................................................. 25 1.3.5. I vendosim përsëri të Bashkuara: Emrat krijojnë Lidhjet ..................................... 26 1.4. SISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ................................. 27 1.4.1 Sistemet Kompjuterike nuk kanë Kufij të Afërt në Krijim...................................... 28 1.4.2 d(teknologji)/dt është i Padëgjuar ....................................................................... 31 1.5 BALLAFAQIMI ME KOMPLEKSITETIN II ........................................................................ 35 1.5.1 Përse nuk mjaftojnë modulariteti, abstraksioni, nivelizimi dhe hierarkia ............. 35 1.5.2 Iteracioni ............................................................................................................. 36 1.5.3 Mbaje të thjeshtë! ............................................................................................... 39 PËRSE SHËRBEN PJESA TJETËR E LIBRIT? .............................................................................. 40 KAPITULLI 1

Sistemet 1 - · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

  • Upload
    vodang

  • View
    266

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

PRINCIPET E PROJEKTIMIT TË SISTEMEVE KOMPJUTERIKE Autorë: Jerome H. Saltzer, M. Frans Kaashoek Instituti për Teknologji i Masaçusetsit – MIT, SHBA Përktheu dhe përshtati në shqip: Dr. Fisnik Dalipi

Sistemet

PËRMBAJTJA E KAPITULLIT

Përmbledhje ......................................................................................................................... 2

1.1 SISTEMET DHE KOMPLEKSITETI .................................................................................... 3

1.1.1 Problemet e rëndomta të sistemeve nëpër shumë fusha....................................... 3

1.1.2 Sistemet, komponentet, ndërfaqet, dhe mjediset ................................................. 8

1.1.3 Kompleksiteti ...................................................................................................... 10

1.2 BURIMET E KOMPLEKSITETIT ..................................................................................... 13

1.2.1 Kërkesat Ujëvarë dhe Ndërvepruese ................................................................... 13

1.2.2 Mirëmbajtja e shfrytëzimit të lartë ...................................................................... 17

1.3 PËRBALLIMI ME KOMPLEKSITETIN I ............................................................................ 19

1.3.1 Modulariteti ........................................................................................................ 19

1.3.2 Abstraksioni ........................................................................................................ 20

1.3.3. Nivelizimi ............................................................................................................ 24

1.3.4. Hierarkia............................................................................................................. 25

1.3.5. I vendosim përsëri të Bashkuara: Emrat krijojnë Lidhjet ..................................... 26

1.4. SISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ................................. 27

1.4.1 Sistemet Kompjuterike nuk kanë Kufij të Afërt në Krijim...................................... 28

1.4.2 d(teknologji)/dt është i Padëgjuar ....................................................................... 31

1.5 BALLAFAQIMI ME KOMPLEKSITETIN II ........................................................................ 35

1.5.1 Përse nuk mjaftojnë modulariteti, abstraksioni, nivelizimi dhe hierarkia ............. 35

1.5.2 Iteracioni ............................................................................................................. 36

1.5.3 Mbaje të thjeshtë! ............................................................................................... 39

PËRSE SHËRBEN PJESA TJETËR E LIBRIT? .............................................................................. 40

KAPITULLI

1

Page 2: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

2

USHTRIME ........................................................................................................................... 41

Përmbledhje Ky libër ka të bëjë me sistemet kompjuterike, dhe ky kapitull pasqyron disa nga temat dhe konceptet e përdorura gjatë dizajnimit të sistemeve kompjuterike. Po ashtu kapitulli paraqet “perspektivën sistemore”, që është një metodë e të menduarit për sistemet, metodë kjo globale që më mirë i tejkalon, sesa fokusohet në çështje të veçanta. Një kuptim i plotë për këtë mënyrë të menduarit nuk mund të sillet vetëm në një përmbledhje të shkurtër, kështu që ky kapitull paraqet një reflektim idesh që do të zhvillohen më në thellësi gjatë kapitujve vijues.

Kursi i zakonshëm për të mësuar shkencat kompjuterike dhe inxhineringun fillon me ndërtimet linguistike të nevojshme për të përshkruar njehsimet (softuerin) dhe ndërtimet fizike, si dhe për ta kuptuar njehsimin (harduerin). Pastaj degëzohet, fokusohet, për shembull, në teorinë e njehsimit, inteligjencën artificiale, sistemet e transaksioneve dhe bazave të dhënave, arkitekturën kompjuterike, inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë. Duke mos u ndaluar menjëherë në njërën nga këto fusha speciale, sepse supozojmë që lexuesi ka përfunduar me kurset fillestare për softuer dhe harduer, do të fillojmë të pasqyrojmë një hulumtim të gjerë për sistemet kompjuterike që përkrah linjën e plotë të detajeve sistemore. Shumë aplikacioneve interesante kompjuterike iu nevojitet: Rezistenca ndaj gabimeve Koordinimi i aktiviteteve konkuruese Të dhëna të shpërndara gjeografike që janë të ndërlidhura Sasi e madhe e informatave të ruajtura Mbrojtje nga gabimet dhe sulmet e qëllimshme Bashkëveprim me më shumë njerëz

Për të zhvilluar aplikacione që i posedojnë këto kërkesa, dizajnuesi duhet që patjetër të shikojë përtej softuerit dhe harduerit dhe ta shohë sistemin kompjuterik si një tërësi. Prandaj, dizajnuesi ballafaqohet me shumë probleme – me aq probleme saqë kufiri i shtrirjes së sistemeve kompjuterike në përgjithësi, nuk mund të vërehet nga fizika apo ligjet juridike, as edhe nga pamundësia teorike, por nga kufizimet e të kuptuarit njerëzor.

Disa nga këto probleme kanë plotësues ose së paku homolog, në sistemet tjera që, në shumicën e rasteve kanë vetëm një përfshirje rastësore të kompjuterëve. Studimi i sistemeve është një arenë ku inxhinieringu kompjuterik mund të përfitojë nga njohuritë e fushave tjera inxhinierike, si: ndërtimtaria (urat dhe rrokaqiejt), planifikimi urbanistik (dizajnimi i qyteteve), inxhinieringu mekanik (veturat dhe kondicionerët e ajrosjes), aviacioni dhe fluturaket hapësinore, inxhinieringu elektrik, dhe madje nga ekologjia dhe shkencat politike.

Dituria e shumtë për sistemet, që është akumuluar gjatë shekujve, është trashëguar në formë të folklorit, thënieve, aforizmave dhe citateve. Një pjesë e asaj diturie është vendosur në kutitë e pjesës së fundit të këtyre faqeve. Çdokush duhet t’i bëjë gjërat sa më të lehta që mundet, por jo edhe shumë më të lehta. - përgjithësisht i atribuohet Albert Ajnshtajnit, kjo në fakt është parafrazë e një komenti të bërë nga ai në një leksion të vitit 1933 në Oksford.

Page 3: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

3

Ne fillojmë duke analizuar disa nga problemet e përbashkëta. Pastaj, do të ekzaminojmë dy mënyra sipas të cilave sistemet kompjuterike parashtrojnë probleme që janë të ndryshme.

Mos u brengosni nëse disa nga shembujt përbëhen nga gjëra që asnjëherë nuk i keni hasur ose për të cilat nuk jeni të i informuar! Qëllimi i vetëm i shembujve është ilustrimi i një varg fakteve dhe sugjerimeve nëpër llojet e ndryshme të sistemeve.

Duke vazhduar më tej në këtë kapitull dhe përgjatë librit, do të shqyrtojmë një seri të principeve të dizajnimit të sistemeve, që janë rregulla të gishtit të madh, që zakonisht aplikohen në shumë rrethana. Principet e dizajnimit nuk janë ligje të pandryshueshme, por janë rrëfime që tërheqin dituri dhe përvojë dhe që mund ta ndihmojnë dizajnuesin t'i evitojë gabimet. Lexuesi i mprehtë menjëherë do të kuptojë se sa herë ekzistojnë tensione apo kontradikta ndërmjet principeve të ndryshme dizajnuese. Megjithatë, nëse dizajnuesi zbulon se ai apo jo nuk i respekton principet dizajnuese, është mirë që ta rishikojë situatën e tillë me kujdes.

Në ballafaqimin e parë me principet dizajnuese, libri i paraqet ato në formë të spikatur. Këtu jepet një shembull, i ndodhur në faqen 16.

Shmangeni përgjithësimin e tepruar!

Nëse është i mirë për gjithçka, është (s’është) i mirë për asgjë.

Çdo princip dizajnues ka titull formal (“Shmangeni përgjithësimin e tepruar!“) dhe një përshkrim të shkurtër informal (“Nëse është në rregull për . . . “), që ka për qëllim të rikujtojë principet. Shumica e principeve dizajnuese do të paraqiten disa herë, në kontekste të ndryshme, që është një arsye pse ato janë të dobishëm. Teksti nxjerrë në pah ballafaqimet pasardhëse të principit psh: shmangeni përgjithësimin e tepruar! Një listë me të gjithë principet dizajnuese të përmendura në libër mund të gjendet në pjesën e brendshme të përparme si dhe në indeks, si “Principet dizajnuese“. Seksionet pasuese të kapitullit diskutojnë problemet e përgjithshme të sistemeve, burimet e problemeve të tyre, dhe teknikat për t’i përballuar ato.

1.1 SISTEMET DHE KOMPLEKSITETI

1.1.1 Problemet e rëndomta të sistemeve nëpër shumë fusha Problemet që mund t’i hasni në këtë laramani sistemesh, mund të ndahen në katër kategori: tiparet emergjente, përhapjet e efekteve, masat joadekuate, dhe ekuilibrimet.

Kërko thjeshtësinë dhe mos i beso asaj! -Alfred North Whitehead, The Concept of Nature (1920)

Page 4: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

4

1.1.1.1 Tiparet emergjente

Tiparet emergjente janë tipare që nuk janë prezentë në komponentet e veçuara të një sistemi, por paraqiten atëherë kur ato komponentë kombinohen, ndaj, si rrjedhim mund t’i quajmë edhe befasi. Tiparet emergjente janë të pranishme në shumicën e sistemeve, edhe pse mund të merren si argument, (të padobishëm) varësisht nga fakti, nëse analiza paraprake e komponentëve mund të ketë lejuar parashikimin e befasisë apo jo. Është e arsyeshme që të evitohet ky argument dhe të fokusohemi në faktin e pandryshueshëm jetësor: disa gjëra dalin vetëm kur ndërtohet sistemi. Disa shembuj të tipareve emergjente janë të njohura. Sjellja e komisionit apo jurisë shpeshherë i befason vëzhguesit e jashtëm. Grupi zhvillon një mënyrë të menduarit që nuk mundej të parashikohej, nga njohuritë e individëve. (Koncepti dhe etiketimi për – tiparet emergjente që rrjedhin nga sociologjia.) Kur Ura e Mileniumit mbi lumin Temza u hap për këmbësorët në Londër, dizajnuesit e saj duhej ta mbyllnin menjëherë pas disa ditëve. Ata u befasuan kur zbuluan se këmbësorët i sinkronizojnë hapat e tyre me lëkundjet e urës, duke bërë që ura të lëkundej edhe më shumë. Ndërlidhja e disa kompanive të rrjetit elektrik për të lejuar shpërndarjen e ngarkesës, ndihmoi reduktimin e frekuencës së shkyçjes elektrike, por kur shkyçja ndodhi, ajo shkatërroi të gjithë strukturën e ndërlidhjes. Befasia politike ka të bëjë me faktin se numri i klientëve të prekur mund të jetë shumë i madh, sa për të tërhequr vëmendjen e padëshirueshme të autoriteteve qeveritare.

1.1.1.2 Përhapja e efekteve

Ndërlidhja e rrjetit elektrik po ashtu ilustron kategorinë e dytë të problemeve sistemore – përhapjen e efekteve – kur një pemë do rrëzohet mbi një tel elektrik në Oregon, do të vijë deri te ndërprerja e dritave në Nju Meksiko, në një largësi prej 1000 milje. Ajo çka në fillim duket si përçarje e vogël apo ndryshim lokal, mund të ketë efekte që arrijnë, nga njëra anë e sistemit, në anën tjetër. Një nevojë e rëndësishme në shumicën e dizajnimit të sistemeve është kufizimi i impaktit të dështimeve. Si një shembull tjetër për përhapjen e efekteve, konsideroni një vendimmarrje të një dizajnuesi për vetura, kur ndryshon madhësinë e gomave të prodhimit të modelit të veturës nga 13 në 15 inç! Arsyeja e ndryshimit të madhësisë mund të ketë qenë përmirësimi i vozitjes. Në analizat pasuese, ky ndryshim do të sjellë deri te ndryshimet tjera: redizajnimi i rrotës metalike, zmadhimi i hapësirës për gomën rezervë, korrigjimi i bagazhit për mbajtjen e gomës rezervë, dhe zhvendosja e ulëses së pasme përpara, pasi të jetë redizajnuar bagazhi. Ndryshimi i ulëses e bën hapësirën për t’u ulur prapa shumë të ngushtë, ndaj dhe mbështetëset e karrigeve duhet bërë më të holla. Kjo do ta reduktonte komfortin i cili ishte arsyeja kryesore për ndryshimin e madhësisë së gomës, dhe po ashtu do të reduktonte sigurinë në rast ndeshjeje. Madhësia e shtuar e bagazhit dhe dizajni i ulëses së pasme, nënkupton që nevojiten susta më të ngjeshura. Proporcioni i boshtit të pasmë, duhet modifikuar për ta mbajtur në normale forcën e çliruar në rrugë, nga ana e rrotave, dhe ingranazhi i shpejtësimatësit duhet të ndryshohet, që të harmonizohet me madhësinë e re të rrotës si dhe me proporcionin e ri boshtor.

Jeta jonë është e copëtuar me hollësira ... thjeshtësi, thjeshtësi, thjeshtësi! -Henry David Thoreau, Walden; or, Life in the Woods (1854)

Page 5: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

5

Ata efekte janë të dukshme. Tek sistemet më të komplikuara, me vazhdimin e analizës, do të paraqiten efekte më të largëta dhe më thelbësore. Si një shembull tipik, prodhuesi i automobilave mund të konstatojë, se zyra shtetërore e shitjes për Teksasin nuk posedon furnizues të çertifikuar për zëvendësimin e gomave me madhësi më të mëdha. Kështu, do të ndërpritet shitja e veturave për qeverinë e Teksasit për dy vite, gjatësi kohore kjo e nevojshme për të futur një furnizues në listën e të çertifikuarve. Është e njohur në popull se përhapja e efekteve karakterizohet si: “Nuk ekzistojnë ndryshime të vogla në sisteme të mëdha”.

1.1.1.3 Masa joadekuate

Problemi i tretë karakteristik që haset në studimin e sistemeve është masa joadekuate: me rritjen e madhësisë ose shpejtësisë së sistemit, jo të gjitha pjesët e ndjekin rregullin e njëjtë të shkallëzimit, kështu që gjërat ndalojnë së punuari. Përshkrimi matematikor i këtij problemi lidhet me atë se pjesët e ndryshme të sistemit shfaqin rregulla të ndryshme të rritjes. Disa shembuj:

Galileo vëzhgoi se “natyra nuk mund të prodhojë një . . . gjigant dhjetë herë më të lartë se një njeri i zakonshëm, duke . . . ndryshuar tepër proporcionet e gjymtyrëve të tij dhe në veçanti eshtrave të tij, që do të ishin zmadhuar përtej të zakonshmes“ [ Discourses and Mathematical Demonstrations on Two New Sciences , secondday, Leiden, 1638]. Në një artikull klasik nga viti 1928, “Për të qenë në madhësinë e duhur“ [shiko Sugjerimet për Literaturën plotësuese 1.4.1], J.B.S Haldane shfrytëzon shembullin e miut, i cili, nëse rritet në madhësinë e elefantit, do të shkatërrohej nga pesha e tij. Nga të dy shembujt mund të nxjerrim arsyen e kësaj dukurie që shpjegohet kështu: pesha rritet me vëllimin, i cili është proporcional me kubin e madhësisë lineare, por fuqia eshtërore, që varet kryesisht nga hapësira ndër-grupore, rritet vetëm me katrorin e madhësisë lineare. Si rezultat, elefantit të vërtetë i nevojitet një përshtatje skeletore që është shumë më ndryshe nga miu i zmadhuar.

Arkitekti egjiptian Sneferu tentoi të ndërtoj piramida shumë të mëdha. Fatkeqësisht, veshja e murit në mes të piramidës, dhe tavani i dhomës së varrimit të piramidës në Dashur u plasarit. Ai më vonë kuptoi se mund të rrisë madhësinë e piramidës sa madhësia e piramidave në Giza, duke zvogëluar proporcionin e lartësisë së piramidës ndaj gjerësisë së saj. Arsyeja e funksionimit të kësaj zgjidhjeje asnjëherë nuk është analizuar plotësisht, por duket se është shfrytëzuar shkallëzimi adekuat – pesha e piramidës rritet me kubin e madhësisë lineare të saj, përderisa fuqia e gurëve e përdorur për të ndërtuar tavanin e dhomës së varrimit rrit vetëm hapësirën e saj ndër-grupore, e cila rritej me katrorin e madhësisë lineare.

Kapiteni i një anije naftëmbajtëse konstatoi se anija është aq e madhe, saqë me shpejtësinë e plotë i nevojiten 12 milje për ta sjellë në vijë të drejtë ndalimi – por, 12 milje janë përtej horizontit, siç mund të shihet nga ura e anijes (Shiko shiritin anësor 1.1 për më shumë detaje).

Lartësia e një rrokaqielli është e kufizuar me hapësirën e kateve më të poshtme, që duhet tu dedikohet për hyrje kateve mbi to. Vlera e hapësirës së nevojshme për hyrje (për shembull, për liftin apo shkallët) është proporcionale me numrin e njerëzve që kanë zyra në katet më lart.

Nga thellësitë e papërshtatshme ne hutohemi dhe i dobësojmë mendimet. -Edgar Allan Poe, “The Murders in the Rue Morgue” (1841)

Page 6: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

6

Ai numër pastaj është proporcional me numrin e kateve më të larta, shumëzuar me hapësirën e shfrytëzueshme për secilin kat. Nëse të gjitha katet kanë hapësirë të barabartë, dhe numri i kateve rritet, në disa raste, kati i poshtëm do të shfrytëzohet, kryesisht për hyrje në katet më të lartë, kështu që kati i poshtëm nuk jep ndonjë vlerë. Në praktikë, ekonomia e patundshmërisë nuk preferon përdorimin e më shumë se 25% të katit të poshtëm për hyrje.

Masa joadekuate paraqitet në shumicën e sistemeve. Ajo zakonisht paraqet faktorin që kufizon madhësinë apo shpejtësinë, të cilin mund ta trajtojë një dizajnim i një sistemi të vetëm. Nga ana tjetër, duhet pasur kujdes me argumentet e masës. Ata kanë qenë të përdorura në fillim të shekullit njëzet për të mbështetur pretendimin, se nuk duhet të humbet koha për të ndërtuar aeroplan (shiko Shiritin anësor 1.2).

1.1.1.4 Ekuilibrimet

Problemi i katërt i dizajnimit të sistemeve ka të bëjë me paraqitjen e shumë kufizimeve, si të ekuilibruara. Modeli i përgjithshëm i ekuilibrimeve fillon me observimin (idenë, bindjen) se ekziston sasi e kufizuar e një forme mirësie në univers, dhe sfida dizajnuese është që të zmadhohet së pari mirësia, së dyti të shmanget humbja e saj, dhe së treti të shpërndahet në vende ku mund të ndihmojë më së shumti. Një formë e përgjithshme e ekuilibrimeve ndonjëherë quhet edhe si efekti i dyshekut me ujë: shtytja e një problemi në një pikë, shkakton që në një vend tjetër të paraqitet problem tjetër. Për shembull, nëse qarku harduerik sinkronizohet të funksionojë me shpejtësi më të lartë se të orës, atëherë ai ndryshim e rrit edhe konsumimin e energjisë edhe rrezikun e gabimeve kohore. Në këtë situatë, duhet të reduktohet rreziku i gabimeve kohore, duke e zvogëluar fizikisht qarkun. Por, pas këtij veprimi shumë pak hapësirë do të mbetet për ta shpërndarë nxehtësinë e shkaktuar nga rritja e konsumimit të energjisë. Një formë tjetër e përgjithshme e ekuilibrimeve paraqitet te klasifikimi binar, për shembull, gjatë dizajnit të detektorëve të duhanit, filtrave të spam (një mesazh elektronik apo e-mail i padëshiruar), pyetësorëve të bazës së të dhënave, dhe pajisjeve për verifikim. Modeli i përgjithshëm i klasifikimit binar përdoret nëse dëshirojmë të klasifikojmë një tërësi gjërash, në dy kategori bazuar në prezencën ose mungesën e disa tipareve, por duke na munguar njësi matjeje direkte për atë tipar.

Shiriti anësor 1.1 Frenimi i një anije naftëmbajtëse Nga gjeometria e dimë se distanca deri te horizonti i dukshëm është proporcional me rrënjën katrore të lartësisë së urës. Ajo lartësi konsiderohet se rritet me fuqinë e parë të dimensionit linear të anijes. Energjia e nevojshme për ta ndaluar apo kthyer anijen është proporcionale me masën e saj, e cila rritet me fuqinë e tretë të dimensionit linear të saj. Koha e duhur për ta dhënë energjinë frenuese ose kthyese është më pak e qartë, por shtytja e timonit dhe kthimi mbrapshtë i helikave, janë mjete e vetme në dispozicion, e që të dyja kanë sipërfaqe që rritet me katrorin e dimensionit linear. Ta përgjithësojmë: nëse e dyfishojmë dimensionin linear të anijes, momenti rritet me faktor 8, dhe mundësia për t; dhënë energji ndalese apo kthimi rritet vetëm faktor 4, pra na duhet të shohim dy herë përpara. Fatkeqësisht, horizonti do të jetë 1.414 herë më larg. Në mënyrë të pashmangshme, ekziston një madhësi për të cilën navigacioni pamor duhet të dështoj;.

KISS: Keep it Simple, Stupid. (Vazhdo ta mbash të thjeshtë, budalla.) -folklor tradicional për menaxhim; burim i humbur në mjegullën e kohës.

Page 7: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

7

Për këtë qëllim identifikojmë dhe përdorim disa njësi matjeje indirekte, të njohura si autorizues (ang. Proxy). Nganjëherë, kjo skemë përjashton diçka. Duke i rregulluar parametrat e autorizuesit, dizajnuesi është në gjendje të reduktojë një klasë të gabimeve (në rastin me detektorin e duhanit, zjarret e pavërejtura, për filtrin e spam-it, mesazhet legjitime të shënuara si spam), por me koston e rritjes të disa klasave tjera të gabimeve (për detektorin e duhanit, alarmeve false, për filtrin e spam-it, spamet e shënuara si mesazhe legjitime). Shtojca A e hulumton ekuilibrin e klasifikimit binarë, më në detaje. Shumë nga përpjekjet intelektuale të dizajnuesve sistemorë, shkojnë drejt vlerësimit të disa llojeve të ekuilibrimeve.

Tiparet emergjente, parashikimi i efekteve, masa joadekuate, dhe ekuilibrimet janë çështje që dizajnuesit duhet t’i përdorin në çdo sistem. Çështja është se si të ndërtohet një sistem kompjuterik i dobishëm, duke i pasur parasysh këto gabime?! Teorikisht, ne do të donim të përshkruajmë teorinë konstruktive, e cila lejon që dizajnuesi sistematikisht të sintetizojë sistemin nga specifikacionet e tij, dhe t’i bëjmë ekuilibrat e nevojshëm me precizitet, ashtu siç janë teoritë konstruktive në fusha të tilla, si, në sistemet komunikuese, sistemet e kontrollit linearë dhe (deri diku) në dizajnimin e urave dhe rrokaqiejve. Fatkeqësisht, në rastin me sistemet kompjuterike, mund të konstatojmë se jemi lindur shumë vonë. Edhe pse ardhja e hershme në skenë, ofron sfidën e zhvillimit të teorisë së humbur, problemi bëhet shpejt i dukshëm, sepse ne punojmë, pothuajse në tërësi, duke analizuar shembujt rastësor dhe jo duke i sintetizuar ato.

Pra, në vend të teorisë së organizuar mirë, ne përdorim raste studimore. Secilën nëntemë të librit do e fillojmë, duke identifikuar kërkesat, së bashku me qëllimin e nxjerrjes së strukturës sistemore nga kërkesat. Pastaj, pothuajse menjëherë do kalojmë tek rastet studimore dhe do të shohim si sistemet reale i plotësojnë kërkesat e parashtruara. Gjatë punës do evidentojmë, se ku do të fillojnë të paraqiten rrugët sistematike për sintetizimin e sistemit nga kërkesat e tij, dhe pastaj do të tregojmë paraqitjet, abstraksionet, dhe principet dizajnuese që janë treguar të dobishëm në përshkrimin dhe ndërtimin e sistemit. Rezultati i synuar i këtij studimi është që të pajisemi me njuhori mbi atë, se si dizajnuesit krijojnë sisteme reale.

Shiriti anësor 1.2 Përse nuk mund të fluturojnë Aeroplanët Pesha e aeroplanit rritet me fuqinë e tretë të dimensionit të tij linear, por lartësia e ngritjes, e cila është proporcionale me hapësirën e sipërfaqes, mund të rritet vetëm me fuqinë e dytë. Madje edhe nëse ndërtohet një aeroplan i vogël, i madhi nuk mund asnjëherë të zbresë në tokë. Kjo vijë e arsyetimit përdorej rreth viteve 1900 edhe nga fizikanët edhe nga inxhinierët, për të argumentuar se ndërtimi i makinave të rënda për në ajër, ishte harxhim kohe. Aleksandër Graham Bell dëshmoi se ky argument nuk qëndron, gjatë fluturimit me balon në Maine, në verën e vitit 1902. Në eksperimentet e tij ai, lidhi anash dy balona, konfiguracion ky që dyfishon hapësirën e ngritjes, por edhe lejon eliminimin e materialit tepricë dhe mbështet pikën e takimit të balonave. Kështu, raporti lartësi - ngritje-peshë u përmirësua me rritjen e masës. Bell i botoi rezultatet e tij në “The tetrahedral principle in kite structure” [Shiko në Sugjerimet për Literaturë plotësuese 1.4.2].

Budallenjtë e injorojnë kompleksitetin. Pragmatistët vuajnë nga ai. Disa mund ta shmangin. Gjenialët e eliminojnë atë. — Alan J. Perlis, “Epigrams in Programming” (1982)

Page 8: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

8

1.1.2 Sistemet, komponentet, ndërfaqet, dhe mjediset Fjalori i Tretë më i Ri Ndërkombëtar Webster, i zgjeruar, e definon sistemin si “njësi komplekse, të formuar shpesh herë nga pjesë të ndryshme, të cilat realizojnë plane dhe shërbime për një qëllim të përbashkët”. Edhe pse ky definicion përdoret në raste të zakonshme, inxhinierët preferojnë ta sqarojnë në mënyrë më konkrete. Shpesh herë “pjesë të ndryshme” ne i emërtojmë si “komponentë”. Ne barazojmë “njësinë” dhe “planin e përbashkët” me “ndërlidhjen e komponentëve”, dhe e perceptojmë “qëllimin e përbashkët” të sistemit, si diçka që do të tregojë njëfarë sjellje, përtej ndërfaqes së një mjedisi. Kështu e formulojmë definicionin tonë teknik: Sistemi paraqet një tërësi të komponentëve të ndërlidhur që kanë një sjellje të pritshme, të vëzhguar në ndërfaqen, me mjedisin e saj.

Ideja themelore e konceptit për sistemin konsiston në ndarjen e gjërave në dy grupe: ato që po diskutohen dhe ato që nuk diskutohen. Ato gjëra që janë në diskutim e sipër janë pjesë e sistemit – por jo, pjesë e mjedisit. Për shembull, ne mund ta definojmë sistemin diellor, se përbëhet prej diellit, planetëve, asteroideve dhe kometave. Mjedisi i sistemit diellor paraqet pjesën e mbetur të universit. (Në të vërtetë, fjala “univers” është sinonim për mjedisin.)

Pothuajse gjithmonë ekzistojnë ndërveprime, ndërmjet sistemit dhe mjedisit të tij. Këto ndërveprime janë ndërfaqet, (ang. Interfaces) ndërmjet sistemit dhe mjedisit. Ndërfaqja ndërmjet sistemit diellor dhe pjesës tjetër të universit, përfshin tërheqjen gravitacionale për yjet më të afërt dhe shkëmbimin e rrezatimit elektromagnetik. Ndërfaqet e para të sistemit personal, si zakonisht i përfshijnë ekranin, tastierën, altoparlantët, lidhjen në rrjetë, dhe kordonin elektrik, por ekzistojnë edhe ndërfaqe më pak të dukshme, si shtypja atmosferike, lagështia dhe temperatura e ambientit, dhe mjedisi i zhurmës elektromagnetike.

Një studim i sistemit përfshin parashikimin e sjelljes së tij të përgjithshme, bazuar në informatat për komponentët e tij, ndërlidhjen, dhe sjelljen individuale të tyre. Njëjtësimi i komponentëve, megjithatë, varet nga një pikëpamje, e cila përmban dy aspekte, qëllimin dhe granularitetin. Për qëllime të ndryshme, sistemi mund të konsiderohet ndryshe. Poashtu mund të zgjidhet, cilado nga granularitet e ndryshme. Këto zgjidhje ndikojnë njëjtësimin e komponentëve të sistemit, në mënyra të rëndësishme.

Për të parë se si pikëpamja mund të varet nga qëllimi, le të marrim dy qasje ndaj një aeroplani reaktiv, si sistem. E para e konsideron aeroplanin si objekt fluturues, ku komponentët e sistemit e përfshijnë trupin, krahët, hapësirën kontrolluese, dhe motorët. Mjedisi është atmosfera dhe toka, e si ndërfaqe paraqiten graviteti, shtyrja e motorëve, dhe rezistenca e ajrit. Pikëpamja e dytë e konsideron aeroplanin si sistem për bartjen e pasagjerëve. Tani, komponentët përfshijnë ulëset, udhëtarët, sistemin e ajrit të kondicionuar, dhe kuzhinën e aeroplanit. Mjedisi është një tërësi udhëtarësh, dhe ndërfaqet janë butësia e ulëseve, ushqimi, dhe ajri, që rrjedh nga sistemi për kondicionimin e tij.

Në qasjen e parë kishim, aeroplanin si objekt fluturimi, ulëset, udhëtarët, dhe kuzhinën, por dizajnuesi i konsideron ato si kontribues të peshës. Anasjelltas, në qajen e dytë, si sistem për bartjen e pasagjerëve, dizajnuesi e konsideron motorin si burim zhurme dhe mbase edhe zbrazës tymi, dhe me gjasë do e injorojë hapësirën kontrolluese dhe krahët e aeroplanit. Pra, varësisht nga qasja, ne mund të zgjedhim t’i injorojmë apo konsolidojmë komponentët apo ndërfaqet sistemore.

Dhe thjeshtësia është çmimi i pashmangshëm që duhet ta paguajmë për sigurinë. — Charles Anthony Richard Hoare, “Data Reliability” (1975)

Page 9: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

9

Mundësia për të zgjedhur granularitetin nënkupton se komponenti, në një kontekst, mund të jetë një sistem i plotë në tjetrin. Nga pikëpamja e dizajnuesit të aeroplanit, aeroplani reaktiv është komponent që ka peshën, shtytjen dhe ndoshta edhe rezistencën. Nga ana tjetër, prodhuesi i motorrit e shikon atë si sistem në vete, me shumë komponentë – turbina, pompa hidraulike, koordinata, lënda djegëse, ku të gjitha këto ndërveprojnë në mënyra të ndryshme për të shtyrë aeroplanin – një ndërfaqe me mjedisin e motorrit. Krahu i aeroplanit që e mban motorrin është komponentë e sistemit të aeroplanit, por është njëkohësisht, pjesë e mjedisit të tërë sistemit të motorrit.

Kur një sistem, në një kontekst është komponentë, në sistemin tjetër, ai quhet nënsistem (Shiko shiritin anësor 1.3). Përbërja e sistemeve nga nënsistemet apo zbërthimi i sistemeve nënën sisteme, mund të ndodhë, në disa nivele, sipas nevojës.

Si përfundim, për t’i analizuar sistemet domosdoshmërisht do të duhet të krijojmë një pikëpamje, mbi të cilën do të përcaktojmë, cilat gjëra t’i konsiderojmë si komponentë, cili duhet të jetë granulariteti i atyre komponentëve, ku është kufiri i sistemit, dhe cilat janë ndërfaqet, ndërmjet sistemit dhe mjedisit të tij.

Sistemi kompjuterik apo sistemi informativ, në termin që përdorim ne, ka për qëllim të ruajë, përpunojë, apo komunikojë informata nën kontroll automatik. Më tutje, ne jemi të interesuar për sisteme që janë kryesisht digjitale. Këtu jepen disa shembuj: Kompjuteri personal Kontrolluesi i brendshëm i motorrit të automobilit Sistemi telefonik Interneti Sistemi për rezervimin e aviobiletave Sistemi për kontrollimin tokësor të anijeve kozmike Sajti në www

Në të njëjtën kohë për të marrë ide dhe udhëzime, do të mund t’i analizojmë shembujt e

sistemeve për menaxhim jo digjital dhe jo automatik, siç janë postat, libraritë,

Shiriti anësor 1.3 Terminologjia: Fjalët e shfrytëzuara për Përshkrimin e Përbërjes së Sistemit Mbasi sistemet mund të përmbajnë komponentë nënsistemore që në vete janë sisteme nga një pikëpamje tjetër, zbërthimi i sistemeve është rekursiv. Për të shmangur këtë, autorët dhe dizajnuesit, në shkrimet e tyre, përpiluan një listë të gjatë sinonimesh për të njëjtin koncept: sistemet, nënsistemet, komponentët,elementet, përbërësit, objektet, modulet, nënmodulet, pjesët montuese, nënpjesët montuese, etj.

Pluralitas non est ponenda sine neccesitate. Shumica nuk duhet të pranohet pa pjesëmarrjen e domosdoshmërisë. — William of Ockham (shekulli XIV. Në gjuhën popullore njihet si “Brisku i Occam-it,” edhe pse ideja mendohet të jetë paraqitur në shkrimet e antikës së lashtë).

Page 10: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

10

1.1.3 Kompleksiteti Definicioni i Webster për “sistem” e përdor fjalën “kompleks”. Duke shikuar këtë term, kuptojmë që kompleks nënkupton “vështirë për të kuptuar”. Mungesa e kuptimit sistematik është veçoria themelore e kompleksitetit. Pason se kompleksiteti është edhe koncept subjektiv edhe relativ. Domethënë, mund të thuhet, se një sistem është më kompleks se tjetri, por edhe pse mund të numërohen gjëra të ndryshme që mund t’i kontribuojnë kompleksitetit, nuk ekziston matje e unifikuar për këtë dukuri. Madje, edhe argumenti që një sistem është më kompleks se tjetri, vështirë se mund të jetë imponues, sepse mungon matja e unifikuar. Në vend të kësaj matjeje, mund ta huazojmë teknikën e medicinës: përshkruaj një tërësi shenjash të kompleksitetit që mund të ndihmojnë në vërtetimin e diagnozës! Si konkluzion, e lëmë anash shpresën për të prodhuar përshkrim definitiv të kompleksitetit. Në vend të kësaj duhet të përqendrohemi në shenjat e tij, të cilat mjafton të tregojnë, se kompleksiteti është prezent. Për në fund, japim pesë shenja të kompleksitetit:

1. Numër i madh i komponentëve. Madhësia e plotë, sigurisht që ndikon kuptimin tonë, nëse një sistem e konsideron përshkrimin “kompleks”.

2. Numër i madh i ndërlidhjeve. Edhe shumë pak komponentë mund të ndërlidhen në një numër të madh e vështirë të menaxhueshëm mënyrash. Për shembull, Dielli dhe planetet e njohura përbëjnë vetëm disa komponentë, por secili nga ata ka tërheqje gravitacionale me të tjerët, që sjellë deri te një tërësi ekuacionesh që janë të pazgjidhshme me teknikat aktuale matematikore. Edhe më keq, një çrregullim i vogël, mund të prishë në mënyrë dramatike orbitat e tyre. Për shkak të kësaj ndjeshmërie të çrregullimit, sistemi solar teknikisht është kaotik. Edhe pse nuk ekziston definicion formal për sistemet kompjuterike, ai term zbatohet në mënyrë joformale.

3. Disa parregullsi. Një numër i madh komponentësh dhe ndërlidhjesh akoma mund të përfaqësojnë një sistem të thjeshtë, nëse komponentët janë përsëritës dhe ndërlidhjet janë të rregullta. Megjithatë, mungesa e rregullshmërisë, siç është treguar me numrin e përjashtimeve ose me vendosjen e ndërlidhjeve jo-përsëritëse, fuqimisht e sugjeron kompleksitetin. Shikuar nga një këndvështrim tjetër, përjashtimet e vështirësojnë kuptueshmërinë.

4. Përshkrimi i gjatë. Duke analizuar përshkrimin më të gjatë të mundshëm të sistemit, mund të vërehet, se ai nuk përbëhet nga një listë e shkurtër me specifikime sistematike që shpjegojnë çdo aspekt, por nga një listë e gjatë me tipare. Teoricienët e formalizojnë këtë ide duke matur, atë që ato e quajnë “kompleksiteti i Kolmogorov-it të objektit njehsues”, si gjatësinë e specifikimit të tij më të shkurtër. Deri në një farë vlere, kjo shenjë mund të paraqes një pasqyrim të tri vlerave të mëparshme, edhe pse e thekson një aspekt të rëndësishëm të kompleksitetit: është i ngjashëm me kuptueshmërinë.

Il semble que la perfection soit atteinte non quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retrancher. (Nuk është përsosmëri të arrish atëherë kur nuk mbetet më gjë për të shtuar, por kur nuk ka gjë tjetër për të marrë. — Antoine de Saint-Exupéry, Terre des Hommes (1939)

Page 11: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

11

Nga ana tjetër, mungesa e përshkrimit metodik mund të tregojë se sistemi është i konstruktuar nga komponentë të papërshtatshëm, është i organizuar dobët, ose mund të ketë sjellje të paparashikuara. Të gjitha këto e bëjnë kompleksitetin pjesë të dizajnit dhe përdorimit.

5. Ekipi i dizajnuesve, implementuesve, apo mirëmbajtësve. Nevojiten disa njerëz që ta kuptojnë, konstruktojnë, apo mirëmbajnë sistemin. Çështja thelbësore në çdo sistem është nëse është apo jo mjaftueshëm i lehtë që një individ ta kuptojë atë në tërësi. Nëse jo, ai është sistem kompleks pasi që përshkrimi, konstruktimi, apo mirëmbajtja e tij do të kërkojë jo vetëm mjeshtëri teknike, por edhe koordinim dhe komunikim në kuadër të ekipit.

Sërish, mund të sjellim një shembull : krahasoni një librari të një qyteti të vogël me një librari universiteti! Natyrisht që ekziston dallim për nga madhësia: universiteti ka më shumë libra, pra e kemi prezente shenjën e parë. Shenja e dytë është më e prekshme: përderisa libraria e vogël ka katalog për të udhëzuar shfrytëzuesin, libraria universitare mund të mos ketë katalog, por edhe ndihma tjera, shërbime të abstrakteve, indekse revistash, etj. Edhe pse këto shtjellime e bëjnë librarinë e madhe më të dobishme (së paku për shfrytëzuesin me përvojë), ato edhe e komplikojnë punën e shtimit të elementeve të reja në librari: dikush duhet të shtojë disa ndërlidhje (në këtë rast, referenca-tërthore) ashtu që elementi i ri mund të gjendet në të gjitha mënyrat e mundshme. Shenja e tretë, numri i madh i përjashtimeve, po ashtu është i dukshëm. Për derisa libraria e vogël ka vetëm disa klasifikime (prozë letrare, biografi, letërsi jo artistike, dhe magazina) dhe disa përjashtime (librat e trashë mbahen mbi raftin e gazetave), libraria e universitetit është e mbushur plotë përjashtime. Disa libra janë shumë të trashë, disa vijnë si mikrofilm ose në mediume digjitale, disa libra tjerë janë të rrallë apo të vlefshëm dhe duhet mbrojtur. Librat që shpjegojnë ndërtimin e bombës hidrogjenike iu jepen vetëm personave të caktuar. Disa libra nuk bëjnë pjesë në asnjë sistem standard për klasifikim. Sa i përket shenjës së katërt, secili shfrytëzues i librarisë së madhe universitare do të vërtetojë se nuk ekzistojnë rregulla metodike për gjetjen e një pjese të informacionit dhe se përdorimi i librarisë është art, dhe jo shkencë.

Së fundmi, shenja e pestë e kompleksitetit ka të bëjë me atë që në librarinë e universitetit nevojitet një staf i përbërë nga më shumë se një person. Libraritë e qyteteve të vogla kanë vetëm një punëtor biblioteke – zakonisht një person energjik i cili e dinë se ku është vendosur çdo libër, sepse ka pasur rastin ta shfletoj t’j shfletojë ata. Libraria universitare nuk ka vetëm

Dhuntia duhet të jetë e thjeshtë, dhuntia duhet të jetë e thjeshtë, Dhuntia duhet të vijë aty ku jemi ne; Dhe kur e gjejmë veten tonë në vendin e duhur, Do të jetë në luginën e dashurisë dhe kënaqësisë. Kur të arrihet thjeshtësia e vërtetë Për t’u përkulur dhe kthyer ne nuk do të na vije turp; Për t’u kthyer, kthimi do jetë kënaqësia jonë, Derisa me kthim, me kthim do të vijmë rrotull. — Simple Gifts, traditional Shaker hymn

Page 12: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

12

personelin, por edhe specialistë që janë të aftë për aspekte të veçanta të operacioneve në librari, siç është mbledhja e mikrofilmave.

Libraria universitare i shtjellon të gjitha shenjat e kompleksitetit, por kjo absolutisht nuk është e rëndësishme. Nga ana tjetër, prezenca e vetëm një apo dy shenjave nuk jep një rast të barabartë për kompleksitetin. Sistemet e termodinamikës përmbajnë një numër, tej mase, të madh të komponentëve (grimca elementare) dhe ndërfaqe, që nga pikëpamja e duhur, ato nuk kualifikohen si komplekse, pasi ekziston përshkrim i thjeshtë dhe metodik i sjelljes së tyre. Pikërisht kur kemi mungesë të përshkrimit të thjesht dhe metodik, atëherë kemi kompleksitet.

Një nga mospajtimet për ta konceptuar kompleksitetin si diçka që bazohet në pesë shenjat, lidhet me atë se të gjithë sistemet janë pafundësisht komplekse. Kjo, sepse sa më thellë të shkohet aq më komplekse bëhen ata. Si rrjedhim, edhe kompjuteri digjital më i thjeshtë përbëhet nga portat, që janë transistorët, të cilët përbëhen nga silici, i cili përbëhet nga protone, neutrone dhe elektrone, të cilat përmbajnë kuarke (ang. quarks), të cilat disa fizikanë mendojnë se janë fije vibruese etj. Ne duhet ta adresojmë këtë mospajtim duke kufizuar thellësinë e gërmimit, me teknikën e njohur si abstraksion. Kompleksiteti që na intereson dhe që na preokupon është kompleksiteti që mbetet pavarësisht përdorimit të abstraksionit.

Çfarëdo që njeriu ndërton . . . përpjekjet . . . e tij . . . në mënyrë të pandryshueshme kulminojnë në . . . gjëra që kanë princip të vetëm dhe udhërrëfyes . . . thjeshtësinë . . . perfeksioni i shpikjes i prek duart me mungesën e shpikjes, meqë nëse . . . [atje] ishte vargu që nuk ka qenë i zbuluar por . . . [ishte] në fillim . . . i fshehur nga natyra dhe më në fund . . . u gjet nga një inxhinier. — Simple Gifts, himni tradicional i Shaker

Page 13: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

13

1.2 BURIMET E KOMPLEKSITETIT Ekzistojnë disa burime të kompleksitetit, por dy meritojnë vëmendje të veçantë. I pari është numri i kërkesave që dizajnuesi pret, që sistemi ti plotësojë. I dyti është një kërkesë e posaçme: mirëmbajtja e shfrytëzimit të lartë.

1.2.1 Kërkesat Ujëvarë dhe Ndërvepruese Burimi i parë i kompleksitetit është lista e kërkesave për një sistem. Secila kërkesë, shikuar vetvetiu, mund të duket e hapur. Çdo kërkesë e posaçme mund të duket edhe sikur shton vetëm një kompleksitet të lehtë e të tolerueshëm në listën ekzistuese të kërkesave. Problemi qëndron aty se akumulimi i disa kërkesave nuk shton vetëm kompleksitetet e tyre individuale, por edhe kompleksitete nga ndërveprimet e tyre. Ky kompleksitet ndërveprimi vjen nga presioni për përgjithësimin dhe përjashtimin, të cilat i shtojnë komplikimet, duke ndryshuar kërkesat individuale me kalimin e kohës dhe duke bërë keq.

Shumë nga shfrytëzuesit e kompjuterëve personalë kanë hasur deri tani disa versione të skenarit vijues: Shitësi njofton për version të ri të programit që ju e keni për menaxhim të çeqeve, dhe versioni i ri ka disa tipare qe juve ju duken të rëndësishme dhe të dobishme (p.sh. e ka sistemin më të ri bankar për onlajn), kështu që ju e përdorni programin. Duke provuar ta instaloni atë, ju zbuloni se versioni i ri i programit kërkon version më të ri të disa paketave të ndara të librarive, të cilat nuk keni pasur nevojë t’i instaloni më përpara. Por, kjo kërkon version më të ri të sistemit operativ. Pasi instaloni versionin e fundit të sistemit operativ, ndërsa programi i ri i çeqeve u funksionon mirë, do t’u dalë problem me diskun e ngurtë. Pasi ta analizoni këtë, do të kuptoni se softueri i patentuar i diskut nuk është kompakt me versionin më të ri të sistemit operativ. Fatkeqësisht, shitësi i diskut akoma po e përpunon një përditësim për softuerin e diskut, ndaj gjëja më e mirë e mundshme në këtë rast është të përdorni një version beta testues, afati i të cilit do të skadojë në fund të muajit.

Qëllimi themelor i këtij skenari është që të vemë në dukje, se kompjuteri personal është dizajnuar t’i plotësojë disa kërkesa: të ketë një sistem të organizuar mirë për fajllet, zgjerueshmëri të diskut, mundësinë për lidhje të pajisjeve të ndryshme hyrëse-dalëse, lidhje në rrjet, mbrojtje nga personat keqdashës në rrjet, të jetë praktik, i sigurt, me kosto të ulët, dhe lista vazhdon dhe vazhdon. Secila nga këto kërkesa shton kompleksitetin e vet, dhe ndërveprimi në mes tyre, shton akoma më shumë kompleksitetet.

Në mënyrë të ngjashme, sistemi telefonik, me kalimin e viteve, siguronte një numër të madh të veçorive, si pritje gjatë thirrjes, kthimi të thirrjes, kahëzimi të thirrjes, krijim dhe përfundim të bllokimit të thirrjeve, ID e thirrësit, bllokimin e ID së thirrësit, pamundësimin për thirrjet anonime, opcionin” mos shqetëso!”, mbrojtjen gjatë pushimeve. Dhe, përsëri lista vazhdon dhe vazhdon.

Kur je në dyshim bëje guximshëm, dhe nga gjërat që ti i di. Kur je në dyshim, harroje. — thënie folklorike nga industria e automobilave

Page 14: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

14

Këto veçori ndërveprojnë në shumë mënyra, ashtu që ekziston një fushë studimi e njohur si “ndërveprimi i tipareve” te sistemet telefonike. Studimi fillon me debatet se çka do të ndodhë. Për shembull, 900 numrat e ashtuquajtur e kanë veçorinë e quajtur “pagesa e kthyer – pala e kërkuar apo thirrur mund të hedh pagesën te pala që thërret. Alice (Alice është karakteri i parë që e hasëm te roli i karaktereve, i përshkruar te Shiriti anësor 1.4) ka tiparin që bllokon thirrjet dalëse, për ti këmbyer numrat e pagesës. Alice e thërret Bob-in, telefoni i të cilit është kahëzuar në një nga 900 numrat. A do të realizohet thirrja, dhe nëse po, cila palë do ta pagujë, Bob apo Alice? Këtu kemi tre tipare ndërvepruese, dhe së paku katër mundësi të ndryshme: blloko thirrjen, lejo thirrjen dhe shënoja si borxh Bob-it, telefonoi Bob-it, ose shto edhe një tipar tjetër që (për pagesë mujore) lejon që Bob të zgjedh përfundimin.

Shembulli sugjeron se në funksion është një princip themelor. Atë e quajmë si :

Principi i kompleksitetit të shkallëzuar

Shtimi i kërkesave e zmadhon jashtë mase komplesitetin.

Principi është subjektiv, sepse kompleksiteti në vetvete është subjektiv – madhështia e tij është në mendjen e spektatorit. Figura 1.1 jep një interpretim grafik të principit.

Shiriti anësor 1.4 Rolet e Karaktereve dhe Organizatave Në shembujt konkretë të librit, lexuesi do të hase role standarde të karaktereve të emëruar si Alice, Bob, Charles, Dawn, Ella, dhe Felipe. Alice është dërguesi i mesazhit, dhe Bobi pranuesi i tij. Charles ndonjëherë është i njohuri reciprok i Alice dhe Bon. Të tjerët luajnë role ndihmëse, të ndryshme, varësisht nga shembulli. Kur është fjala te mbrojtja, një karakter me emrin Lucifer do të dalë në skenë. Roli i Luciferit është të thyejë sigurinë dhe mundësisht të ndërhyjë te puna e karaktereve të tjerë. Libri përmend edhe disa organizata fiktive. Janë dy universitete: Universiteti Pedantic, në internet si Pedantic.edu, dhe The Institute of Scholarly Studies, si Scholarly.edu. Janë edhe katër organizata komerciale në internet si TrustUs.com, ShopWithUs.com, Awesome.net dje Awful.net. Profesori i M.I.T. Ronald Invest i paraqet Alice dhe Bob te literatura për shkenca kompjuterike tek Literatura Shtesë 11.5.1. Çdo ngjashmëri, me personat e gjallë apo jo të gjallë apo organizatat reale apo imagjinare, është rastësore.

Përsosmëria duhet të arrihet me shkallë; duhet durim për këtë. — François-Marie Arouet (Voltaire)

Page 15: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

15

Ndoshta gjëja më e rëndësishme për tu dalluar në analizën e kësaj figure është se barriera e kompleksitetit është e butë: duke shtuar tipare dhe kërkesa, nuk goditet ndonjë send solid, i cili paralajmëron që të ndalojmë së shtuari, por bëhet edhe më keq.

Me rritjen e numrit të kërkesave, rritet edhe numri i përjashtimeve dhe me këtë edhe i komplikimeve. Është i pabesueshëm numri i rasteve speciale në kodin

FIGURA 1.1

Principi i kompleksitetit të shkallëzuar

e taksave në SHBA, gjë që bën që mbledhja e taksave nga të ardhurat bëhet punë e vështirë. Ndikimi i cilitdo përjashtim, mund të jetë i vogël, por ndikimi kumulativ i disa përjashtimeve ndërvepruese mund të bëjë që sistemi të jetë aq kompleks sa që asnjë nuk mund ta kuptojë. Komplikimet po ashtu ndodhin nga kërkesat e jashtme, siç është insistimi se një komponentë e caktuar duhet patjetër të jetë nga një furnizues i caktuar. Ajo komponentë mund të jetë më pak e durueshme, më pak e rëndë, nga furnizuesit e tjerë ose jo aq shumë në dispozicion, siç janë ata. Ato tipare nuk mund ta parandalojnë përdorimin e tij, por ato shtojnë kompleksitetet te pjesët e tjera të sistemit, që duhet të dizajnohen për tu kompenzuar.

Plotësimi i disa kërkesave me një dizajn të vetëm ndonjëherë është i shprehur si nevojë për përgjithësim. Përgjithësimi mund të definohet afërsisht, si “zbatimi në shumëllojshmëri rrethanash”. Fatkeqësisht, përgjithësimi kontribuon në kompleksitet, ashtu që vjen deri te ekuilibrimi, dhe dizajnuesi duhet të gjykojë mirë, për të vendosur se sa kërkohet aktualisht nga përgjithësimi. Ja një shembull ekstrem: një automobil me katër timonë, secili prej të cilëve kontrollon një rrotë, na jep një lloj përgjithësimi, ku, pothuajse i tëri është i padëshirueshëm. Këtu, të dy aspektet e padëshirueshmërisë dhe kompleksiteti i fituar i vozitjes së veturës, janë të mjaftueshëm, por në shumë raste të dy këto aspekte janë vështirë të vlerësueshëm: Sa e komplikon sistemin një formë e propozuar e përgjithësimit, dhe deri në cilin nivel është i dobishëm ai përgjithësim? Përgjithësimi i padëshiruar, po ashtu kontribuon në mënyrë indirekte te kompleksiteti: shfrytëzuesit e sistemit me përgjithësim të tepruar, do të përdorin stile përdorimi që e thjeshtëzojnë dhe i japin fund përgjithësimit për të cilin ato nuk kanë nevojë. Shfrytëzues të ndryshëm mund të përdorin stile të ndryshme dhe pastaj të zbulojnë se ato nuk munden lehtësisht të shkëmbejnë ide me njëri tjetrin. Secili që përpiqet të përdor kompjuter personal të përshtatur nga dikush tjetër, do ta vërejë këtë problem.

Numri i kërkesave

Kom

plek

site

ti su

bjek

tiv

Më e mira është armike e së mirës. — François-Marie Arouet (Voltaire) Dictionnaire Philosophique (1764)

Page 16: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

16

Herë pas here, dikush përpiqet të dizajnojë automjet për ta vozitur pastaj në autostradë, të fluturojë, dhe ta përdorë për lundrim, por rezultati i dizajnit të përgjithshëm nuk duket se funksionon mirë në cilëndo mënyrë të transportit.

Për të ndihmuar në eliminimin e përgjithësimit, përvoja sugjeron një princip tjetër të dizajnimit*:

Shmangeni përgjithësimin e tepruar!

Nëse është i mirë për gjithçka, është i mirë për asgjë.

Ekziston një tension ndërmjet përjashtimeve dhe përgjithësimit. Një pjesë e artit të dizajnimit të një nënsistemit, lidhet me bërjen e tipareve të tij përgjithësisht të pranueshëm për të zvogëluar numrin e përjashtimeve që duhet të kihen parasysh si raste speciale. Këtu vërehet më shumë gjykimi i dizajnuesit të sistemit. Neutralizimi i efekteve të masës joadekuate, mund të jetë burim plotësues i kompleksitetit. Haldane, në esenë e tij ”Për të qenë në madhësinë e duhur”, nxjerr në pah se organizmat e vegjël, siç janë insektet, absorbojnë oksigjen të mjaftueshëm nëpërmjet lëkurës për të mbijetuar, por organizmat më të mëdhenj, të cilat kërkojnë një sasi oksigjeni që është proporcional me kubin e madhësisë së tyre lineare, nuk kanë shumë hapësirë sipërfaqeje. Për të zëvendësuar këtë madhësi joadekuate, ato shtojnë kompleksitet në formë të mushkërive dhe enëve të gjakut me qëllim të absorbimit dhe shpërndarjes së oksigjenit nëpër trup. Në rastin e kompjuterëve, programuesi i një mikroprocesori 4-bitësh, për të kontrolluar aparatin e tostave, mundet me sukses ta shkruaj kodin me numra binar, brenda disa ditëve, kurse programuesit të një loje kompjuterike me procesor 64-bitësh dhe 40 gigabajt të dhëna plotësuese i duhen një varg i gjerë veglash – kompajlerë, editues për foto apo video, gjenerues të efekteve të ndryshme, si dhe një sistem operativ, për ta realizuar punën për një kohë të arsyeshme. Në këtë rast, masa joadekuate ka kërkuar përdorimin e grupeve të veglave më komplekse. Më në fund, burimi i madh i kompleksitetit është se kërkesat ndryshojnë. Dizajnimet e sistemit që janë të suksesshme, zakonisht mbeten në përdorim për një kohë të gjatë, gjatë së cilës kohë, ndryshon mjedisi i sistemit. Avancimet në teknologjinë harduerike mund të bëjnë që mirëmbajtësit e sistemeve të furnizohen me pajisje më të shpejta, më të lira dhe më të besueshme. Ndërkohë, dituria se si të ruhet pajisja e vjetër (dhe furnizimi me pjesë rezerve) mund të zhduket.

* Konsulenti i industrisë kompjuterike (dhe më përpara instruktor i kursit për të cilin u shkrua ky libër) Michael Hammer sugjeroi versionin joformal të këtij principi dizajnues.

Sistemi kompleks që është funksional në mënyrë të pandryshueshme është zhvilluar nga një sistem i thjeshtë funksional. — John Gall, Systemantics (1975)

Page 17: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

17

Nga përvoja e shfrytëzuesit të sistemeve, bëhet e qartë se disa kërkesa plotësuese duhet të kenë qenë pjesë e dizajnit dhe se një pjesë e kërkesave origjinale kanë qenë më pak të rëndësishme sesa mendohej. Shpesh herë sistemi do të zgjerohet në masë, disa herë përtej parashikimeve të dizajnuesve të tij. Supozimet thelbësore se dizajnuesit origjinalë kanë zhvilluar sistem, tani fillojnë ta humbin rëndësinë e tyre, në secilin nga rastet. Dizajnuesit e sistemit mund të kenë parashikuar disa ndryshime të mjedisit, por disa nga ndryshimet nuk kanë mundur të parashikohen. Meqë ndryshimet për të plotësuar kërkesat e paparashikuara ndodhin, ato zakonisht shtojnë komplekset. Meqenëse është vështirë të ndryshohet arkitektura e sistemit aktiv (Seksioni 1.3 e shpjegon arsyen pse), ekziston një stimul i fuqishëm për të bërë ndryshime brenda arkitekturës ekzistuese, duke u llogaritur si gjëja më e mirë për ta bërë. Përhapja e efekteve mund t’i përforcojë problemet e shkaktuara nga ndryshimi, pasi efektet më të largëta të ndryshimit nuk mund të vërehen, deri sa dikush kërkon disa tipare që rrallë përdoren. Kur këto efekte të largëta dalin në sipërfaqe, mirëmbajtësi mundet ta ketë lehtë të merret me ato, aty për aty, ndoshta duke bërë përjashtime. Efektet nga masa joadekuate fillojnë të dominojnë sjelljen, kur mirëmbajtësi pasues e rrit sistemin për nga madhësia ose zëvendëson pajisjet me harduer më të shpejtë. Përsëri e theksojmë se përgjigja e parë ndaj këtyre efekteve është ndryshimi lokal (disa herë quhen arnime) dhe jo realizimi i ndryshimeve rrënjësore në dizajn, që do të kërkonte ndryshimin e disa moduleve ose ndryshimin e ndërfaqes midis moduleve. Një problem shumë i përafërt është kur sistemi rritet me kompleksitet, me kalimin e kohës. Këtu edhe ndryshimi më i thjeshtë, siç mund të jetë riparimi i një gabimi, shkakton një risk të madh për një gabim tjetër, sepse kompleksiteti tenton ta turbullojë ndikimin e plotë të përmirësimit. Një fenomen i përgjithshëm në sistemet e vjetra është se numri i gabimeve i paraqitur nga softueri për eliminimin e gabimeve, mund ta tejkalojë numrin e gabimeve të fiksuara nga softueri†.

1.2.2 Mirëmbajtja e shfrytëzimit të lartë Një kërkesë në vete, paraqet shpesh herë një burim të veçantë të kompleksitetit. Ajo fillon me dëshirën për performansë të lartë ose efikasitet të lartë. Kurdo që të përfshihet resursi i pakët, do të nevojitet një shfrytëzim i lartë.

Keni parasysh, për shembull, një hekurudhë me një binar të vetëm që kalon nëpër një kanjon të ngushtë. ‡ Për të përmirësuar shfrytëzimin e një binari të vetëm apo për të shtuar komunikacioni nëpër të, duhet të lejohen trenat të kalojnë në të dyja anët në të njëjtën kohë. Kjo mund të arrihet duke instaluar një transferim dhe një binar anësor të shkurtër, në një vend të gjerë, përgjatë gjysmës së distancës nëpër kanjon. Pastaj, nëse kihet kujdes për orarin, treni që do shkojë në drejtim të kundërt, do të takohet, në binarin anësor, me trenin tjetër. Ata do ta kalojnë njëri-tjetrin, dhe kështu do të dyfishohet, në mënyrë efikase, numrin i trenave që mund të kalojnë në një binar për çdo ditë.

†Ky fenomen është dokumentuar nga Laszlo A. Belady dhe Meir M. Lehman në artikullin “A model of large program development”, IBM Systems Journal 15, 3 (1976), faqet 225–252. ‡ Michael D. Schroeder e sugjeroi këtë shembull me hekurudhën në kanjon.

Een schip op’t droogh gezeylt, dat is een seeker baken. (Anija, e drejtuar drejt tokës së thatë, ky është një fener. Mëso nga gabimet e të tjerëve.). — Jacob Cats, Mirror on Old and New Times (1632), bazuar në një proverb holandez

Page 18: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

18

Megjithatë, operacionet për trenat tani janë më shumë komplekse sesa kanë qenë më parë. Nëse ndonjë nga trenat vonohet, do të prishet orari për të dy. Këtu nevojitet të instalohet sistem sinjalizues sepse operatorët apo individët që e rregullojnë orarin mund të bëjnë gabime. Po ashtu kemi edhe – një tipar urgjent – trenat tani kanë një kufizim për nga gjatësia. Nëse dy trenat duhet të kalojnë në mes, së paku njëri nga ata duhet të jetë aq i shkurtër sa të futet tërësisht në binarin anësor. Treni i kanjoneve është një ilustrim i mirë sesi përpjekjet për rritjen e shfrytëzimit, mund ta rrisin kompleksitetin. Në të tilla raste, do të hasim principin e përgjithshëm dizajnues që ekonomistët e quajnë..............

Ligji për zvogëlimin e fitimit

Sa më shumë të përmirësohen përmasat e të mirave (mallrave), aq më shumë përpjekje do të nevojitet për përmirësimin e ardhshëm.

Ky fenomen më veçanërisht vërehet në përpjekjet e përdorimit efikas të resurseve: sa më mirë që bëhen orvatje për përdorimin e resurseve të rralla, aq më shumë rritet komleksiteti i strategjive për përdorimin, alokimin dhe shpërndarjen e tyre.

Kështu një udhëkryq që përdoret rrallë nuk kërkon kontroll të komunikacionit përtej rregullave. Por me rritjen e përdorimit të rrugës, duhet të aplikohen në mënyrë progresive rregulla më komplekse: shenja për ndalim, semafor, vija të shënuara, dhe sensorë për kontrollin e dritave.

Pasi që të mbushet kapaciteti i aeroportit sipas komunikacionit brenda dhe jashtë tij, atëherë duhet të merren masa për aeroplanët e shumtë, duke i dërguar të parkohen në aeroporte të tjerë, apo duke koordinuar oraret e disa linjave. Pra vlen rregulla e përgjithshme, sa më shumë që të bëhen përpjekje për rritjen e shfrytëzimit të resursit të kufizuar, aq më i madh do bëhet kompleksiteti (shiko Figurën 1.2).

Lexuesi do të vërejë se Figurat 1.1 dhe 1.2 janë identike. Duhet që të mbahet mend kjo figurë pasi që disa versione të saj mund të përdoren për të përshkruar disa aspekte në lidhje me sistemet.

FIGURA 1.2

Një shembull i zvogëlimit të fitimit: kompleksiteti rritet me rritjen e shfrytëzimit.

Është e pamundur që të parashikohen pasojat e të qenurit i mençur. — Christopher Strachey, siç raportohet nga Roger Needham

Page 19: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

19

1.3 PËRBALLIMI ME KOMPLEKSITETIN I Duke pasur parasysh shembujt e fushave të ndryshme për sistemet me probleme dhe burime të ndryshme të kompleksitetit, janë paraqitur teknika për përballimin me kompleksitetin. Këto teknika mund të ndahen në katër kategori të përgjithshme: modulariteti, abstraksioni, nivelizimi, dhe hierarkia. Seksioni vijues i përshkruan metodat e përgjithshme për secilën teknikë. Në kapitujt pasues do të shfaqen disa shembuj të secilës teknikë. Vlera e tyre bëhet më e qartë vetëm duke studiuar ato shembuj.

1.3.1 Modulariteti Vegla më e thjeshtë dhe më e rëndësishme për reduktimin e kompleksitetit është teknika përça-dhe-sundo: analizo apo dizajno sistemin si një koleksion i ndërveprimeve të nën sistemeve, të quajtura module. Fuqia e kësaj teknike mbështetet kryesisht në konsiderimin e ndërveprimeve të komponentëve në kuadër të modulit pa menduar në mënyrë simultane për komponentët që janë brenda moduleve tjera.

Për të vërejtur ndikimin e reduktimit të ndërveprimeve, konsideroni rregullimin (eliminimin e gabimeve) të një programi të madh me N deklarime. Supozoni se numri i gabimeve në program është proporcional me madhësinë e tij dhe gabimet janë të shpërndara rastësisht nëpër kod. Programuesi e përkthen (kompajlon) programin, e ekzekuton, e vëren gabimin, e gjen dhe e fikson atë, pastaj e përkthen përsëri përpara se të shikojë gabimin tjetër. Supozoni edhe që koha që duhet për ta gjetur gabimin në program është afërisht proporcionale me madhësinë e programit. Më pastaj mund ta modelojmë kohën e shpenzuar për eliminimin e gabimeve:

NumriGabimeve ~ N

KohaRregullimit ~ N x NumriGabimeve

~ N2

Për fat të keq, koha e rregullimit rritet proporcionalisht me katrorin e madhësisë së programit.

Tani supozoni se programuesi e ndan programin në K module, të gjithë me madhësi afërsisht të barabartë, pra çdo modul përmban N/K deklarime. Duke pasur parasysh se modulet implementojnë tipare të pavarura, mund të shpresohet se zbulimi i gabimit do të kërkojë ekzaminimin e vetëm një moduli. Koha e nevojitur për të rregulluar gabimin e një moduli të caktuar reduktohet në dy mënyra: sa më i vogël të jetë moduli aq më i shpejtë është rregullimi, dhe meqë gjinden disa gabime tek programet e vogla, secili nga modulet nuk ka nevojë të rregullohet më shumë herë. Këto dy efekte pasohen pjesërisht nga nevoja e rregullimit të gjitha K moduleve. Në këtë mënyre modeli jonë për kohën e nevojshme për rregullimin e sistemit me K module bëhet

KohaGabimit ~ x K

~

Page 20: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

20

Modulariteti tek K komponentët do ta reduktoh kohën e rregullimit me faktor K. Edhe pse mekanizmi i detajuar sipas të cilit modulariteti i redukton përpjekjet ndryshon nga një sistem te tjetri, ky tipar i modularitetit është universal. Për këtë qëllim, konstatojmë modularitet në çdo sistem të madh.

Tipari i modularitetit që e përmendim këtu konsiston në faktin se është lehtë të zëvendësohet në modul të dobët me një më të përmirësuar, duke mundësuar përmirësim rritës në sistem duke mos e rindërtuar atë nga fillimi. Në këtë mënyrë modularitet ndihmon në kontrollin e kompleksitetit të shkaktuar nga ndryshimet. Ky tipar aplikohet jo vetëm gjatë eliminimit të gabimeve por në të gjitha aspektet e përmirësimit dhe zhvillimit sistemor. Njëkohësisht, është me rëndësi të dallohet principi dizajnues që ndërlidhet me modularitetin të cilin munda ta definojmë si

Rregulla e pandryshueshme e themelimit

Është më lehtë të ndryshohet moduli sesa modulariteti.

Kjo për arsye se pasi të përdoret ndërfaqja nga një modul tjetër, ndryshimi i ndërfaqes kërkon zëvendësimin e së paku dy moduleve. Nëse një ndërfaqe përdoret nga disa module, ndryshimi i saj kërkon zëvendësimin e të gjitha moduleve njëkohësisht. Për këtë arsye, është veçanërisht e rëndësishme që të përdoret modulariteti si duhet. Janë shkruar libra të tëra në lidhje me modularitetin dhe përparësitë që ofrohen nga modulariteti. Shiriti anësor 1.5 e përshkruan njërin nga librat.

1.3.2 Abstraksioni

Një supozim i rëndësishëm në shembullin numerik për efektin e modularitetit në kohën e rregullimit, mund të zbatohet edhe në praktikë: ai zbulim i gabimit zakonisht na çon në ekzaminimin e vetëm një moduli. Që supozimi të jetë i saktë, ka edhe një kërkesë: nuk duhet të ketë asnjë efekt të përhapjes nga njëri modul te moduli tjetër. Edhe pse ekzistojnë shumë mënyra të ndarjes së sistemit në module, disa nga këto mënyra janë më të sakta sesa të tjerat – “sipas formimit natyral, aty ku ndodh bashkimi, nuk mund të ndahet në pjesë edhe nga prerësi më i keq” (Platoni, Phaedrus, 265e, përkthim nga Benjamin Jowett).

Qëllimi i llogaritjes është mendjemprehtësia, e jo numrat. — Richard W. Hamming, Numerical Methods for Scientists and Engineers (1962)

Page 21: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

21

Shiriti anësor 1.5 Si e reformoi modulariteti industrinë kompjuterike Dy profesorë nga Shkolla Biznesore e Harvardit, Carliss Baldwin dhe Kim Clark, kanë shkruar një libër për modularitetin§. Aty diskutohen shumë gjëra, por një nga më interesantet është sqarimi i kalimit të madh në biznes. Në vitet 1960, sistemet kompjuterike kanë qenë të integruara në industri në mënyrë vertikale. Kompanitë IBM, Burroughs, Honeywell, dhe të tjera ofruan sisteme të tipit nga-lartë-poshtë, me procesorë, memorie, disk, sistem operativ, aplikacione, shitje, dhe mirëmbajtje; IBM madje ka prodhuar edhe çipet e veta. Në vitet 1990, industria u transformua në mënyrë vertikale ku Intel shet procesorë, Micron shet memorie, Seagate shet disqe, Microsoft shet sisteme operative, Adobe shet aplikacione për tekst dhe imazhe, Oracle shet sisteme për baza të dhënash, dhe Gatewae dhe Dell shesin kuti të quajtura “kompjuter” që në vete nuk përmbajnë asnjë komponentë nga rivalët.

Carliss Baldwin dhe Kim Clark e sqarojnë këtë kalim si një shembull të modularitetit në veprim. Kompanitë që krijuan produkte me vija të integrimit vertical menjëherë u ballafaquan me kompleksitet, dhe konkluduan se mënyra e vetme efektive për ta kontrolluar atë është modularizimi i produkteve të tyre. Pas disa eksperimenteve me modularitete të gabuara (IBM në fillim dizajnoi kompjuter të ndryshëm për biznes dhe për aplikacione shkencore), ato në mënyrë efektive i ndanë gjërat duke mbajtur nën kontroll koston e zhvillimit dhe të shpërndarjes: IBM i zhvilloi karakteristikat arkitekturale të System/360, që mundeshin të

aplikohen në kompjuter me aftësi të ndryshme. Ky modularitet mundësoi që secili aplikacion të ekzekutohet në secilin procesor. IBM poashtu e zhvilloi standardin për I/O magjistralen dhe ndërfaqen e diskut, ashtu që çdo pajisje I/O apo disk i prodhuar nga IBM mund të bashkëngjitej në çdo kompjuter IBM.

Digital Equipment Corporation e zhvilloi familjen PDP-11, e cila, me një teknologji të përmirësuar u veçua, mbase, njëkohësisht për çmim të arsyeshëm me PDP-11/03 dhe funksionalitet me PDP-11/70. Strategjia emulative e ndihmuar nga hardueri për instruksionet e humbura harduerike, në makinat e vogla mundësonte që aplikacionet të shkruhen për secilën makinë që ekzekutohej ose në secilën makinë të familjes. Digital po ashtu zhvillon një I/O arkitekturë, e quajtur UNIBUS®, që mundëson që çdo pajisje I/O të bashkëngjitet me çdo model PDP-11.

Rezultati afatgjatë ishte, se pas definimit dhe vërtetimit ai efektiv të modularitetit, shitësit e tjerë ishin të aftë të kyçen dhe ta transformojnë çdo modul në një biznes të posaçëm. Rezultati ishte industria kompjuterike e viteve 1990, që është dukshëm horizontale, në veçanti duke konsideruar formën e ndryshme që ka pasur para 20 viteve.

Carliss Baldwin dhe Kim Clark vëzhgojnë po ashtu, më në përgjithësi, se ekonomia e tregut po karakterizohet nga modulariteti. Në vend që të ketë një familje të pavarur pa taksa që e bën çdo gjë për vete, ekonomia e tregut ka vazapunues, kallajxhi, farkëtar, stalla, etj., ku secila është më produktive në specialitetin modular, ku çdo gjë shitet me një ndërfaqe universale – me paranë.

Page 22: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

22

Pra, ndarjet më të zakonshme si zakonisht i ndjekin kufijtë natyralë dhe efektiv. Ato karakterizohen me ndërveprime më të vogla në mes moduleve dhe me efekte të përhapjes më të vogla, nga njëri modul në modulin tjetër. Më në përgjithësi, ato karakterizohen nga aftësia që secili modul të trajtojë të gjithë të tjerët në bazë të vetive të tyre të jashtme, duke mos pasur nevojë për njohuri në lidhje me atë se çka ndodh në brendësi. Kjo kërkesë plotësuese e modularitetit quhet abstraksion. Abstraksioni paraqet ndarjen e ndërfaqes nga të brendshmet e specifikimit nga implementimi. Për arsye se abstraksioni, pothuajse është prezent tek modulariteti, disa autorë nuk bëjnë dallim ndërmjet dy ideve. Disa herë e shohin termin si modularitet funksional për të nënkuptuar modularitetin me abstraksion.

Kështu për shembull kur blen dikush një DVD pajisje e shikon atë si pajisje me disa butona në panelin e jashtëm dhe asnjëherë nuk tenton ta hap brendësinë e saj. Pa ditur detajet e dizajnit të brendshëm të televizionit, me qëllim të zgjedhjes së pajisjes së volitshme të DVD, asnjë nuk do ta blinte atë pajisje. Në mënyrë të ngjashme, kur kthehet paketa për ta shpërndarë gjatë natës duke mos pasur interes të mësohet diçka në lidhje me pjesët e automjetit apo rrugën me të cilën do të shpërndahet ai paket. Besimi se paketa a do të arrijë nesër në mëngjes mbetet i vetmi shqetësim.

Në botën kompjuterike, abstraksioni shfaqej shumë herë. Kapaciteti i përgjithshëm i qarqeve sekuenciale për të fiksuar gjendjen, abstrakohet në module të veçanta e që lehtë përshkruhen të quajtura regjistra. Programet janë të dizajnuara që t’i fshehin detajet e paraqitjes së tyre të strukturave komplekse të dhënave dhe detajet me të cilat thirrin programet tjera. Përdoruesit presin ndërfaqe aplikacionesh që janë lehtësisht të përdorshme, me butona siç janë lojërat kompjuterike, programet tabelare, ose Web shfletuesit që abstrakojnë përforcimet komplekse të menaxhimit të memories, procesorit, komunikimit dhe ekranit.

Qëllimi i minimizimit të ndërlidhjeve në mes moduleve mund të dështojë, nëse ndodhin ndërlidhje të paqëllimshme apo aksidentale si rezultat i gabimeve gjatë implementimit, ose edhe kur dizajni kuptimplotë tenton r’i tejkalojë fshehurazi kufijtë e moduleve paraprake me qëllim që të përmirësojë performansat ose të plotësojë kushte tjera. Softueri në veçanti është subjekt i këtij problemi sepse kufijtë modulare të krijuara nga nënprogramet e kompajluara veçmas, janë disi të butë dhe lehtësisht të depërtueshëm nga gabimet gjatë përdorimit të pointerave, buferëve mbushës, ose gjatë llogaritjes së treguesve të fushave. Për këtë qëllim, dizajnuesit e sistemeve preferojnë teknika që e përforcojnë modularitetin, duke u futur ndërmjet mureve të pakalueshme ndërmjet moduleve. Këto teknika sigurojnë që nuk mund të paraqiten ndërlidhje të paqëllimshme apo të fshehta. Kapitulli 4 dhe 5 paraqesin disa nga këto teknika të përforcimit të modularitetit.

Duhet që patjetër të mbahet mend se s’ka gjë më të vështirë se të planifikosh, as më rrezik se të menaxhosh krijimin e sistemit të ri. Iniciatori ka armiqësinë atyre që do të kenë profit nga ruajtja e institucioneve të vjetra dhe mbrojtësit pasiv, të cilët mund të përfitohen nga të rinjtë. — Niccolò Machiavelli, The Prince (1513, botuar në 1532; Tr. nga Thomas G. Bergin, Appleton-Century-Crofts, 1947)

Page 23: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

23

Abstraksionet modulare që janë të dizajnuara mirë dhe siç duhet të përforcuara, janë veçanërisht të rëndësishme në kufizimin e ndikimit të difekteve, sepse ato kontrollojnë përhapjen e efekteve. Ashtu siç do të shohim gjatë studimit të rezistencës së defekteve/gabimeve në Kapitullin 8 [onlajn], modulet janë njësi të përbërësve të gabimeve, dhe definicioni i dështimit është se moduli nuk e plotëson specifikimin e ndërfaqes së abstraksionit të tij.

Shumë e ngjashme me abstraksionin është rregulla e rëndësishme e dizajnit që e bën modularitetin të zbatohet në praktikë:

Principi i fuqisë

Bëju tolerant me hyrjet dhe rigoroz me daljet!

Ky princip nënkupton se moduli duhet dizajnuar që të jetë liberal në interpretimin e tij, për vlerat e tij, duke i pranuar ato edhe nëse ato nuk janë brenda intervaleve të caktuara, dhe nëse akoma mund të shfaqet mënyra e interpretimit të tyre. Nga ana tjetër, moduli duhet t’i konstruktojë daljet e tij në përputhje me specifikimet e tij – nëse ato mundësisht bëhen më të sakta apo më të kufizuara sesa kërkojnë specifikimet. Efekti i principit të fuqisë është që të tentojë t’u jap fund, e jo të përhap apo edhe të përforcojë, zërin apo gabimet që dalin në ndërfaqet ndërmjet moduleve.

Principi i fuqisë është njëri nga idetë më të rëndësishme të prodhimit modern në masë. Historikisht, makinistët kanë prodhuar komponentë që kanë qenë të destinuara të krahasohen duke prodhuar një nga komponentët dhe pastaj duke prodhuar komponentët e dytë në atë mënyrë që saktësisht t’i përshtatet të parës. Kjo teknikë quhet si përshtatshmëria. Ndryshimi erdhi me kuptimin se nëse specifikohen tolerancat për komponentët dhe dizajnohet çdo komponentë që të krahasohet me komponentën tjetër që ishte brenda tolerancës së specifikuar, atëherë do të jetë e mundur të modularizohet dhe përshpejtohet prodhimi, duke përdorur pjesë këmbimi. Me sa duket, ky koncept për herë të parë u aplikua në kontratën e vitit 1822 për shpërndarjen e pushkëve për ushtrinë e Shteteve të Bashkuara. Me kalimin e kohës u krijua linja prodhuese e njohur si Model T, dhe Henry Ford e bëri për vete konceptin në aforizmin “Nuk ekzistojnë filtra në prodhimin në masë“.

Jemi të ballafaquar me një mundësi të pakapërcyeshme. — Pogo (Walt Kelley)

Page 24: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

24

Principi i fuqisë luan një rol të madh te sistemet kompjuterike. Është me rëndësi të veçantë në ndërfaqet njerëzore, protokollet e rrjetave, dhe rezistencën ndaj gabimeve, dhe, si u shpjegua nga Seksioni 1.4 e këtij kapitulli, ai e formon bazën e logjikës digjitale. Njëkohësisht, ekziston një tension ndërmjet principit të fuqisë dhe një principi tjetër shumë të rëndësishëm:

Principi i margjinës së sigurimit

Ndiqe distancën për te shkëmbi, përndryshe do të biesh anës matanë!

Kur hyrjet nuk janë afër vlerave të tyre të specifikuara, atëherë kemi situatën kur diçka po shkon gabim. Sa më herët të vërehet se diçka shkon gabim, aq më herët mund të ndreqet. Për këtë arsye, është e rëndësishme ndjekja dhe raportimi i hyrjeve që janë jashtë tolerancës, edhe nëse principi i fuqisë u lejon atyre që të interpretohen suksesshëm.

Disa sisteme implementojnë principin e margjinës së sigurimit, duke ofruar dy modele, që mund të quhen “lëkundja” dhe “prodhimi”. Në modin lëkundja, modulet e kontrollojnë çdo hyrje me kujdes dhe refuzojnë të pranojnë diçka që është jashtë specifikimit, duke lejuar zbulim të menjëhershëm të problemeve dhe gabimeve të programimit në kodin burimor. Në modin prodhimi, modulet pranojnë çdo hyrje që mund të interpretohet arsyeshëm, në pajtim me principin e fuqisë. Sistemet e ndërtuara me kujdes i gërshetojnë të dy idetë: pranon çdo hyrje të arsyeshme, por raporton çdo hyrje që fillon të dalë jashtë tolerancës, ashtu që mund të përmirësohet përpara se të bëhet krejtësisht i papërdorshëm.

1.3.3. Nivelizimi Sistemet e dizajnuara për të përdorur abstraksione tentojnë ta minimizojnë numrin e

ndërlidhjeve midis moduleve të komponentëve të tyre. Një mënyrë e tillë e shkëlqyer për reduktimin e ndërlidhjeve të moduleve, është aplikimi i një metode të veçantë e organizimit të moduleve e quajtur si nivelizimi. Në procesin e dizajnimit me nivele, ndërtohen një grup mekanizmash që janë tashmë të kompletuara (niveli i ulët) dhe ato përdoren për të krijuar grupe apo tërësi të ndryshme të mekanizmave (niveli sipëror). Niveli mund të vetimplementohet si disa module, por si rregull i përgjithshëm, moduli i një niveli të dhënë ndërvepron vetëm me palët e tij, në të njëjtin nivel dhe me module të niveleve pasues të sipërm apo të ulët. Ky kufizim në sistemet e mëdha mund ta reduktojë ndjeshëm numrin e ndërveprimeve potenciale ndërmodulare.

Nuk ekziston një gjë e tillë, si ndryshimi i vogël tek sistemi i madh. — folklor sistemesh, burimi është humbur në mjegullën e kohës

Page 25: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

25

Disa nga shembujt më të mirë të kësaj qasjeje janë gjetur tek sistemet kompjuterike: interpretuesi për një gjuhë të lartë programuese po implementohet, duke përdorur një gjuhë të nivelit më të ulët dhe më të orientuar drejt makinës. Edhe pse gjuhët e larta programuese nuk lejojnë që të shprehen programet e reja, është më lehtë të përdoren, së paku për aplikacionet për të cilat janë të dizajnuara. Si rrjedhim, pothuajse, çdo sistem kompjuterik përbëhet nga disa nivele. Niveli më i ulët përbëhet nga porta dhe qeli memorie, mbi të cilat ndërtohet niveli që përbëhet nga procesori dhe memoria. Përmbi këtij niveli është ndërtuar niveli i sistemit operativ, i cili vepron si shtojcë e nivelit të procesorit dhe memories. Së fundmi, programi aplikativ ekzekuton në këtë nivel të shtuar të procesorit dhe memories. Në secilin nivel, funksionet e ofruara nga niveli i mëposhtëm janë të rregulluara rishtas, ripaketuara, riabstrahuara, dhe riinterpretuara siç duhet, për të qenë i volitshëm për nivelin e mësipërm. Siç mund ta shohim në Kapitullin 7 [onlajn], nivelet janë po ashtu teknika e parë organizuese e rrjeteve për komunikimin e të dhënave. Niveli i dizajnuar nuk është unik për sistemin kompjuterik dhe komunikimet. Shtëpia ka një nivel të brendshëm struktural gozhdësh, trarësh, shtylla lidhëse për t’i dhënë formë dhe fuqi, nivelin e mbulesës dhe muret për ta izoluar nga era, nivelin e veshjes me dërrasa, pllakat për dyshemenë dhe tavanin, për t’u bërë e papërshkruar nga uji, dhe nivelin kozmetik të ngjyrosjes që e bën të duket bukur. Shumë degë të matematikës si, algjebra e veçantë, është e organizuar në mënyrë elegante në nivele (në rastin e algjebrës, numrat e plotë, racional, kompleks, polinomet, dhe polinomet me koeficiente polinomiale), dhe ky organizim lehtëson shumë kuptimin e kësaj fushe.

1.3.4. Hierarkia Teknika e fundit e rëndësishme për ballafaqimin me kompleksitetin, po ashtu i redukton ndërlidhjet midis moduleve, por në një mënyrë më të veçantë dhe më të ndryshme. Fillon me një grup të vogël modelesh, dhe i bashkon ato në një nënsistem të qëndrueshëm dhe vetë-përmbajtësor e që ka ndërfaqe mirë të definuar. Më pastaj, bashkohet një grup i vogël me nënsisteme për të prodhuar një nënsistem më të madh. Ky proces vazhdon deri kur sistemi final është ndërtuar nga një numër i vogël i nënsistemeve të mëdha. Rezultati duket si një strukturë peme që njihet me emrin hierarkia. Organizatat e mëdha siç janë korporatat janë të organizuara në këtë mënyrë, me një menaxher që është përgjegjës për pesë deri dhjetë punëtorë, një menaxher i nivelit më të lartë që është përgjegjës për pesë deri dhjetë menaxherë, e deri te presidenti i kompanisë, i cili mund të mbikqyrë pesë, deri dhjetë zëvendës president. E njëjta skemë aplikohet edhe në ushtri. Madje edhe nivelet mund të llogariten si një tip i një hierarkie me një dimension. Ekzistojnë edhe shembuj tjerë që kanë të bëjnë me hierarkinë, duke u nisur nga sistemet biologjike mikroskopike deri te perandoria e Aleksandrit. Një artikull klasik nga Herbert Simon, “The architecture of complexity” [Sugjerimet për Literaturë Plotësuese 1.4.3], përmban një varg të mirë shembujsh dhe ofron argumente bindëse se, nën sundimin e evolucionit, dizajnimet hierarkike kanë shanse më të mira për të mbijetuar. Arsyeja qëndron tek fakti që hierarkia i kufizon ndërveprimet, duke i lejuar vetëm ato midis komponentëve të nënsistemit.

80 përqindëshi i parë i projektit merr 80% të kohës. 20 përqindëshi i mbetur merr edhe 80% tjetër të kohës. — burim i panjohur

Page 26: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

26

Hierarkia përmban një sistem me N komponentë, që në rastin më të keq kryen N x (N-1) ndërveprime, ashtu që secila komponentë mund të ndërveprojë vetëm me anëtarët e nënsistemit të vet, përveç komponentëve të ndërfaqes, që po ashtu ndërvepron me anëtarët e tjerë të nënsistemit - nivelin pasues më të sipërm të hierarkisë. (Komponenti i ndërfaqes në korporatë quhet “menaxher” e në ushtri “oficeri komandues”ë për programin quhet “ndërfaqja programuese e aplikacionit”.) Nëse nënsistemet janë të limituar, të themi, me 10 komponentë, ky numër mbetet konstant, pavarësisht sesa do të rritet sistemi. Do të kemi N/10 nënsisteme të nivelit më të ulët, N/100 nën sisteme vijuese me nivel më të sipërm, e kështu me radhë, por që numri total i nënsistemeve, dhe numri i ndërveprimeve, mbetet proporcional me N. Ngjashëm me mënyrën se si modulariteti i redukton përpjekjet e rregullimeve (eliminimit të gabimeve), hierarkia e redukton numrin e ndërveprimeve potenciale midis moduleve nga katror në linear. Ky efekt vërehet më shumë nga dizajnuesi i një moduli të vetëm. Nëse nuk kemi kufizime, secili modul duhet që në parim të jetë i gatshëm të ndërveprojë me secilin modul tjetër të sistemit. Përparësia e hierarkisë qëndron aty se dizajnuesi i modulit mund të koncentrohet vetëm në ndërveprimet me ndërfaqet e anëtarëve tjerë të nënsistemit të menjëhershëm të tij.

1.3.5. I vendosim përsëri të Bashkuara: Emrat krijojnë Lidhjet

Katër teknikat për ballafaqimin me kompleksitetin – modulariteti, abstraksioni, nivelizimi, dhe hierarkia – japin mënyra të ndarjes së gjërave dhe vendosjes së moduleve rezultues në relacione të përshtatshme me njëri-tjetrin. Megjithatë, akoma na nevojitet një mënyrë për t’i lidhur këto module. Tek sistemet digjitale, metoda primare e lidhjes është ajo ku një modul emëron modulin tjetër që ka për qëllim ta përdorë. Emrat mundësojnë vonimin e vendimeve, zëvendësim të lehtë të një moduli me një modul më të mirë, dhe ndarjen e moduleve. Softueri përdor emrat në mënyra shumë të qarta. Më pak të qarta janë, modulet harduerike të lidhura në magjistrale, po ashtu përdorin emrat për ndërlidhje – adresat. Adresat e magjistraleve, janë lloje të emrave.

Në sistemin modular, mund të gjinden disa mënyra të kombinimit të moduleve për të implementuar një tipar të dëshiruar. Dizajnuesi duhet që patjetër të zgjedh një implementim të caktuar nga ato që janë të mundshme. Përzgjedhja e këtillë quhet lidhje. Duke rikujtuar se fuqia e modularitet vjen nga aftësia e zëvendësimit të një implementimi me një tjetër, dizajnuesi, si zakonisht, përpiqet të mbajë një fleksibilitet maksimal duke i vonuar lidhjet deri në çastin e fundit, ndoshta edhe deri në çastin e parë kur tipari është i nevojshëm.

Ligji i Hofstadter-it: Gjithmonë zgjat më shumë se duhet, edhe sikur ta keni parasysh Ligjin e Hofstadter-it. — Douglas Hofstadter: Gödel, Escher, Bach: An Eternal Golden Braid (1979)

Page 27: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

27

Një mënyrë për të vonuar lidhjen është emërimi i tipareve e jo implementimi i tyre. Duke përdorur emra mundësohet dizajnimi i modulit sikur ekziston një tipar i një moduli tjetër, edhe nëse ai tipar akoma nuk është implementuar, dhe po ashtu e bënë mekanikisht të lehtë që më vonë të zgjidhet implementim tjetër. Me kohë tipari thirret, kurse emri duhet të jetë gati për implementimin real të modulit tjetër. Përdor emra për të vonuar apo mundësuar

Ndaji modulet tërthorazi!

Veprimi i tërthortë e mbështet zëvendësimin.

Një version i një thënieje popullore të këtij principi, që i vishet informatikanit David Wheeler nga Universiteti i Kembrixhit, e zmadhon fuqinë e veprimit të tërthortë (apo indirekt) duke sugjeruar se “secili problem në sistemet kompjuterike mund të zgjidhet duke shtuar nivelin e veprimit të tërthortë.“ Si plotësim më i besueshëm për këtë thënie popullore është vlerësimi se çdo sistem kompjuterik mund të bëhet më shpejt, duke hequr nivelin e veprimit të tërthortë.

Kur një modul ka emër, disa module tjera mund ta përdorin atë emër, duke ndarë përpjekjet dizajnuese, koston, apo informacionin e përmbajtur në modulin e parë. Pasi që emrat janë elemente gurthemel të modularitetit tek sistemet digjitale, kapitujt 2 dhe 3, kryesisht, kanë të bëjnë me dizajnin e skemave të emrave.

1.4. SISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM Ashtu siç kemi sugjeruar vazhdimisht, duhet që të nxjerrim mësim nga shembujt e shumtë që ilustrojnë problemet e sistemeve. Disa nga problemet e zakonshme paraqiten te të gjitha sistemet komplekse, pavarësisht nga fusha. Tiparet urgjente, përhapja e efekteve, masa joadekuate, dhe ekuilibrimet janë elemente në aktivitete të ndryshme, si dizajnimi i stacioneve hapësinore, administrimi në ekonomi, ndërtimi i rrokaqiejve, ngjitja e gjeneve, rafineritë e naftës, rrjetat e sateliteve komunikuese, dhe qeverisja e Indisë, si dhe dizajnimi i sistemeve kompjuterike. Veç kësaj, teknikat e ndryshme për ballafaqimin me kompleksitetin janë universale. Modulariteti, abstraksioni, nivelizimi, dhe hierarkia përdoren si vegla në shumë fusha që kanë të bëjnë me sistemet komplekse. Për këtë qëllim për dizajnuesin e sistemeve kompjuterike është e dobishme të hulumtohen sistemet nga fusha të tjera, për të përfituar perspektiva plotësuese, se si shfaqen problemet e sistemeve dhe të zbulohen teknika nga fusha tjera që po ashtu mund të aplikohen te sistemet kompjuterike. Thënë shkurt, mund të përfundojmë se sistemet kompjuterike janë të njëjta si të gjithë sistemet tjera.

Sistemi asnjëherë nuk ndalet së zhvilluari, deri kur ai të mos përdoret fare. — i atribuohet Gerald M. Weinberg

Page 28: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

28

Por na del një problem me atë përfundim: është gabim. Ekzistojnë së paku dy mënyra me rëndësi ku sistemet kompjuterike dallojnë nga llojet tjera të sistemeve me të cilat dizajnuesit kanë përvojë:

Kompleksiteti i sistemit kompjuterik nuk kufizohet nga ligjet fizike. Norma e ndryshimit të teknologjisë së sistemit kompjuterik është e pashembullt.

Këto dy dallime kanë ndikim të madh tek kompleksiteti dhe mënyrat e menaxhimit të tij.

1.4.1 Sistemet Kompjuterike nuk kanë Kufij të Afërt në Krijim Sistemet kompjuterike janë kryesisht digjitale, dhe kontrollohen nga softueri. Secila

nga këto dy veti, veçmas çon deri te ulja e diçkaje, që në sistemet tjera, mund të jenë kufijtë e kompleksitetit që rrjedhin nga ligjet fizike.

Konsideroni së pari dallimin ndërmjet sistemeve analoge dhe digjitale. Të gjitha sistemet analoge e kanë kufirin inxhinierik, ku secila komponentë jep zë. Ky zë mund të vijë nga mjedisi në formë të, për shembull, vibracionit apo rrezatimit elektromagnetik. Zëri poashtu mund të shfaqet, sepse sjellja fizike e komponentit nuk e ndjek saktësisht ndonjë model të përpunuar me operacione: turra e gurëve që inxhinieri i ndërtimtarisë e përcakton që të vendoset nën mbajtësen e urës nuk i përmbahet modelit të thjeshtë të deformimit, rezistuesi në qarkun elektronik gjeneron zë të rastit, niveli i të cilit varet nga temperatura. Kur komponentët analogë inkuadrohen në sisteme, zëri nga komponentët individual akumulohet (nëse burimet e zërit janë të pavarura në mënyrë statistikore, zëri mund të akumulohet vetëm në mënyrë të ngadaltë por, përsëri do të akumulohet). Me rritjen e numrit të komponentëve, në një çast zëri do ta dominojë sjelljen e sistemit. (Kjo analizë aplikohet te sistemet e dizajnuara nga inxhinierët humanë. Sistemet biologjike natyrale, termodinamike, dhe sistemet makroekonomike, të përbëra nga miliarda komponentë analogë, në një farë mënyre për të operuar, shfrytëzojnë hierarkinë, nivelizimin, abstraksionin, dhe modularitetin, pavarësisht zërit, por ato janë aq komplekse saqë ne nuk i kuptojmë aq sa duhet për të përdorur teknika të njëjta.)

Zëri në këtë mënyrë siguron një kufizim të numrit të komponentëve analogë të cilat dizajnuesi mund t’i inkuadrojë ose të numrit të fazave që dizajnuesi mund t’i zbatojë. Ky argument aplikohet te secili sistem i ndërtuar analog: urë mbi lumë, stereo, apo një linjë ajrore. Kjo është arsyeja pse fotokopja e fotokopjes është më e vështirë për ta lexuar sesa origjinali. Po ashtu mund të dalin edhe limite tjera në madhësi ( që janë si rezultat i fuqisë së materialit, për shembull), por zëri gjithmonë është kufi për kompleksitetin e sistemeve analoge.

Më vonë gjatë jetës mësova se ne tentojmë të plotësojmë çdo situatë me riorganizim; dhe çfarë metode e mrekullueshme mund të jetë krijimi i iluzionit të progresit përderisa krijojmë konfuzion, joefektshmëri dhe demoralizim. — version i shkurtuar i një observimi nga Charlton Ogburn, “Merrill’s Marauders: The truth about an incredible adventure”, Harper’s Magazine (January 1957). I atribuohet jo me gjasë Petronius Arbiter (ca. A.D. 60)

Page 29: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

29

Nga ana tjetër, sistemet digjitale nuk kanë zë. Kompleksiteti mund të rritet pa ndonjë kufizim të lidhjes që vjen nga zëri. Dizajnuesit e logjikës digjitale e përdorin versionin e principit të fuqisë e njohur si disiplina statike. Disiplina paraqet burimin fillestar të magjisë që duket se i rrethon sistemet digjitale. Disiplina statike kërkon që intervali i vlerave analoge të cilin pajisja e pranon si vlerë digjitale NJË (ose ZERO), të jetë më i gjerë se intervali i vlerave analoge që pajisja nxjerr, kur kemi vlerë digjitale NJË (ose ZERO). Kjo disiplinë është një shembull i të qenurit tolerant për hyrjet dhe rigoroz për daljet. Sistemet digjitale janë, afërsisht në nivelin e ulët, të konstruktuara nga komponentë analog. Komponentët analog, të zgjedhura për këtë

qëllim, janë jolineare, dhe kanë përforcim ndërmjet hyrjes dhe daljes. Kur të përdoren ashtu si duhet, jolineariteti lejon që hyrjet të kenë tolerancë të gjerë, dhe përforcimi siguron se daljet qëndrojnë brenda specifikimeve të ngushta, si në Figurën 1.3. Së bashku ato prodhojnë tiparin e qarqeve digjitale të quajtur rivendosje apo rigjenerim. Nivelet e sinjaleve të rigjeneruara shfaqen në daljen e çdo komponenti digjital, pavarësisht nga niveli i tyre i granularitetit: porta, shoshone (ang. Flip-flops), çip memoria, procesori, ose sistemi i plotë kompjuterik. Nivelet e rigjeneruara krijojnë ndërfaqe të pastra që mundësojnë një nënsistem që lidhet me tjetrin pa problem. Ndryshe nga turra e gurëve e inxhinierëve të ndërtimit, porta logjike performon saktësisht sipas caktimit nga dizajnuesi.

Disiplina statike dhe rivendosja e nivelit nuk garantojnë që pajisja me hyrje dhe dalje digjitale, asnjëherë nuk do të bëjë gabime. Çdo komponentë mund të dështojë. Ose sinjali hyrës që është caktuar të jetë NJË mund të jetë jashtë tolerancës që komponenti pranues e pranon si ZERO. Kur ndodh kjo, dalja e komponentit që e pranoi atë vlerë gabimisht mund të jetë gabim. Pasoja e rëndësishme është se komponentët digjitale bëjnë gabime të mëdha, e jo të vogla, dhe siç do të shohim kur të mbërrijmë te kapitulli për rezistencën e gabimeve, gabimet e mëdha janë relativisht të lehta për t’i zbuluar dhe për të menaxhuar me ta.

Nëse sinjali nuk akumulon zë gjatë kalimit nëpër shumë pajisje, atëherë zëri nuk kufizon numrin e pajisjeve që lidh së bashku. Me fjalë të tjera, zëri nuk kufizon thellësinë maksimale të kompozimit për sistemet digjitale. Ndryshe nga sistemet analoge, sistemet digjitale mund të rriten në kompleksitet, deri sa e tejkalojnë aftësinë e të kuptuarit të dizajnuesve të tyre. Që nga viti 2009, çipet e procesorëve përmbajnë mbi dy bilion transistorë, shumë më tepër se një çip analog. Asnjë aeroplan nuk ka afërsisht aq shumë komponentë – përveç në brendësi të kompjuterëve të aeroplanit.

FIGURA 1.3

Si i kthen nivelet jo-lineariteti i komponentës digjitale. Niveli hyrës dhe dalës shtrihen në rangun e njëjtë të vlerave, por rangu i hyrjeve të pranuara është më i gjerë sesa rangu i daljeve të gjeneruara.

Gjasa e dështimit të sistemit tenton të jetë proporcional me besimin se dizajnuesit e tij janë të sigurt për të. — folklor për sistemin, burimi i humbur

Page 30: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

30

Arsyeja e dytë që kompozicioni nuk ka kufij të përafërt është se sistemet kompjuterike kontrollohen nga softueri. Mund të jetë i dëmshëm kontributi në kompleksitet nga disiplina statike, por kontributi nga softueri del që është më i dëmshëm. Hardueri më së paku është subjekt i ndonjë kufizimi fizik – shpejtësia e dritës, norma rregullimit të sinjalit te materialet gjysmëpërçues, bashkimi i paqëllimshëm elektrik ndërmjet komponentëve ngjitës, vlera në të cilën mund të mënjanohet nxehtësia, dhe hapësira që e mbulon. Softueri siç duket nuk ka limit fizikë, qoftë përtej dispozicionit të memories për të ruajtur të dhëna dhe procesorit për ti ekzekutuar ato. Si rezultat, kompozicioni i softuerit mund të vazhdojë aq shpejt sa që mund ta krijojnë njerëzit. Pra, është normale të dëgjojmë për sistemet operative, sistemet e bazave të dhënave, dhe madje edhe për procesorët, me më shumë se 10 milion deklarime programore.

Parimisht, abstraksioni mund ta ndihmojë ndërtimin (kompozimin) e softuerit duke e fshehur implementimin nën ndërfaqet e modulit. Problemi qëndron aty se shumica e abstraksioneve janë realisht pak “rrjedhëse” në atë se ato nuk e pajtojnë në tërësi implementimin e ndodhur. Një shembull i thjeshtë i rrjedhjes është mbledhja e numrave të plotë: në shumicën e implementimeve, operacioni i mbledhjes, në mënyrë të përsosur përshtatet me specifikimet matematikore, për sa kohë që rezultati përputhet me madhësinë e fjalës së mundshme, por rezultati është më i madh. Tejmbushja (ang. Overflow) që fitohet, bëhet komplikim për programuesin. Rrjedhja, ashtu si edhe zëri te sistemet analoge, akumulon, deri kur rritet numri i moduleve softuerike. Ndryshe nga zëri, ajo akumulon në formë të kompleksitetit, dhe mungesa e kufizimeve fizike te kompozimi softuerik mbetet një problem kyç. Për këtë qëllim, është lehtë mekanikisht të krijohet sistem me kompleksitet që është përtej mundësisë së kuptimit nga dizajnuesi i tij. Dhe meqë është lehtë, ndodh shpesh, dhe disa herë me rezultate shkatërruese.§

Nëpërmjet mungesës së limitit të imponuar të zërit në kompozimin e harduerit digjital dhe limiteve të largëta fizike të kompozimit të softuerit, është shumë lehtë për një dizajnues të pamatur ti keqpërdor veglat e modularitetit, abstraksionit, nivelizimit, dhe hierarkisë për të përfshirë akoma më shumë kompleksitet. Ky fenomen është mjaft i panjohur te dizajni i urave dhe aeroplanëve. Për dallim nga sistemet e tjera, sistemet kompjuterike mundësojnë kompozim deri në thellësi, limiti i parë i të cilit është aftësia e dizajnuesit për ta kuptuar. Për fat të keq, kjo mungesë e limiteve të përafërt natyralë dhe fizikë, në thellësinë e kompozicionit, i provokon dizajnuesit të ndërtojnë sisteme akoma më komplekse. Nëse natyra nuk imponon limite të përafërta për kompozicion, dizajnuesi duhet që vetë t’i imponojë limitet. Meqë është vështirë të thuhet jo, për tiparet që tingëllojnë të arsyeshme, tiparet vazhdojnë të shtohen. Këtu qëndron fati i shumë dizajnuesve të sistemeve kompjuterike.

§ Terminologjia “rrjedhje” vjen në përdorim nga programuesi Joel Spolsky.

Dallimi kryesor ndërmjet sendit që mund të shkojë gabim dhe sendit që nuk mundet të shkojë gabim është se kur sendi që nuk mund të shkojë gabim shkon gabim dhe si zakonisht është e pamundur që ai të riparohet. — Douglas Adams, Mostly Harmless (Hitchhiker’s Guide to the Galaxy V) (1993)

Page 31: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

31

1.4.2 d(teknologji)/dt është i Padëgjuar

Për arsyet që pjesërisht janë shpjeguar te shiriti anësor 1.6, përgjatë 35 viteve të fundit çmimi i harduerit digjital që përdoret për llogaritje dhe komunikim ka rënë për mesatarisht 30% për çdo vit. Kjo vlerë e ndryshimit nënkupton se vetëm dy vitet e fundit kanë qenë të mjaftueshme që teknologjia t’i ulë çmimet për gjysmë, dhe për shtatë apo tetë vjet do t’i zvogëlojë çmimet me faktor 10. Disa komponentë kanë përjetuar edhe vlera më të mëdha të ndryshimit. Figura 1.4 tregon koston e diskut magnetik përgjatë 25 viteve. Gjatë asaj kohe, çmimet e disqeve kanë rënë përafërsisht me faktor 10 çdo vit, duke bërë që çmimi të ulet për afër 60% çdo vit. Ekspertët e disqeve projektojnë një vlerë të njëjtë të ndryshimit për së paku edhe disa vjet. Projektimi i tyre duket se është i sigurt, meqë asnjë barrierë nuk është raportuar nga laboratorët zhvillues që punojnë tashmë, në erën e re të teknologjisë magnetike të ruajtjes të dhënave. Skica të njëjta aplikohen te memoria me qasje të drejtpërdrejtë, kostoja e procesorit, dhe shpejtësia e përçimit me fije optike.

Ndryshimi rapid i teknologjisë ka krijuar dallim thelbësor ndërmjet sistemeve kompjuterike dhe sistemeve të tjera inxhinierike . Pasi që për sistemet komplekse nevojiten vite për t’i ndërtuar, me kalimin e kohës sistemi kompjuterik është i gatshëm për shitje, sakaq që rregulla bazë nën të cilën fillimisht është krijuar është zhvendosur. Masa joadekuate zakonisht nënkupton se dizajnuesi duhet patjetër të përshtatet për stres pune, atëherë kur parametrat sistemorë ndryshojnë me faktor 2, sepse jo të gjitha komponentët zmadhohen (apo zvogëlohen) me të njëjtin proporcion.

Inxhinieringu struktural është arti i modelimit të materialeve që nuk i kuptojmë në tërësi, nuk mundemi t’i analizojmë saktësisht në atë formë sa të refuzojmë forcat që nuk mundemi plotësisht t’i vlerësojmë, në atë mënyrë që publiku nuk ka arsye të dyshojë nivelin e injorancës sonë. (TË SHIHET EDHE NJIHERË) — A. R. Dykes, Scottish Branch, Institution of Structural Engineers (1946)

Page 32: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

32

Shiriti anësor 1.6 Përse Teknologjia Kompjuterike me kalimin e kohës ka ndryshuar eksponencialisht

Mediumet e njohura shpeshherë e përdorin termin “eksponencial” për të përshkruar ritmin eksploziv të zhvillimit të teknologjisë kompjuterike. Stephen Ward ka përmendur se ekziston një arsye e mirë që kjo është e qëlluar: teknologjia kompjuterike duket së është disiplina e rrallë inxhinierike, ku teknologjia e përmirësuar në mënyrë rutine aplikohet për të përmirësuar teknologjinë. Këtë mundësi e kanë njerëzit që ndërtojnë aeroplan, ura, rrokaqiej dhe fabrika kimike.

Për shembull, fuqia e mikroprocesorit përcaktohet, të paktën, pjesërisht nga aftësia e shpërndarjes së tij, që siç duhet është e kufizuar nga koha në dispozicion për t’i shfrytëzuar veglat të ndihmuara nga kompjuteri që fitojnë përparësi nga zhvillimet e litografisë. Nëse Intel, me përmirësimet e tij, zhvillon një version të Pentium që është dy herë më i shpejtë, sa të dalë në përdorim Pentium-i i ri, do të përdoret si procesor për të bërë veglat planifikuese për Pentiumin tjetër që do të ekzekutojë dy herë më shpejt; dizajni i ardhshëm mund të përfitojë nga llogaritja e shpejtuar për dy herë. Ky efekt është një nga pikënisjet e ligjit të Mur-it, i cili parashikon një rritje eksponenciale të numrit të komponentëve në çip, të colat do të dyfishohen çdo 18 muaj [Shiko Literatura Plotësuese 1.6.1].

Nëse në realitet ritmi i zhvillimit të teknologjisë sonë është proporcional me kualitetin e vetë teknologjisë, atëherë mund ta shprehim këtë ide si

= K x teknologjia

që ka një zgjidhje eksponenciale, teknologjia = e K-t

Situata aktuale është akoma më e komplikuar sesa sugjeron ekuacioni, por të gjitha ekuacionet që nga larg duken në të njëjtën formë, në kushtet kur ritmi i zhvillimit të teknologjisë është funksion pozitiv i gjendjes së tij, kanë eksponenciale rritëse në zgjidhjen e tyre. Në botën reale, treguesit (eksponencialet) duhet të kenë patjetër ndonjë limit. Te hardueri ekzistojnë limite themelore të qarta fizike për rritjen eksponenciale, siç janë principi i pasigurisë, energjia minimale e nevojshme për ndërrimin e portës, dhe vlera e mënjanimit të nxehtësisë nga pajisja. Pjesa interesante është se nuk është e qartë kush do të bëhet pengesa, ose kur. Për këtë arsye, zgjuarsia inxhinierike në shfrytëzimin e ekuilibrimeve ka vonuar ditën e llogaritjes. Për softuerin, duhet të ekzistojnë limite të ngjashme për rritjen eksponenciale, por natyra e tyre nuk është në tërësi e qartë.

Virtualisht, çdo përmirësim i teknologjisë kompjuterike apo komunikuese – qofshin çipa më të shpejtë, algoritme më të mirë për rrugëtimin e Internetit, gjuhë prototipe më efektive, ndërfaqe më të mirë të listuesve të Internetit, kompajler më të shpejtë, disqe më të mëdhenj, apo RAM më të madh – menjëherë vendoset në punë nga secili që punon me çipa më të shpejtë, algoritme më të mirë për rrugëtimin e Internetit, gjuhë prototipe më efektive, ndërfaqe më të mirë të listuesve të Internetit, kompajler më të shpejtë, disqe më të mëdhenj, apo RAM më të madh. Dizajnuesit e sistemeve kompjuterike jetojnë brenda një sistemi të madh reagimi, që të paktën për momentin, po përjeton zgjidhje eksponenciale.

Page 33: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

33

FIGURA 1.4

Historia e çmimit të diskut magnetik dhe projektimi, 1983-2007

Për më tepër, dizajni plotësisht i ri zakonisht është i nevojshëm kur çdo parametër sistemor ndryshon me renditje (decimale) të madhësisë. Ky rregull i gishtit të madh për tendosjen e shkaktuar nga ndryshimet e parametrave na jep principin tonë të ardhshëm të dizajnimit:

Rregulla e masës joadekuate

Ndryshimi i çdo parametri sistemor me faktor 10 zakonisht kërkon dizajn të ri.

Kjo rregull, kur kombinohet me ritmin e observuar të ndryshimit të teknologjisë, nënkupton se përderisa sistemi i ri i dizajnuar kompjuterik është gati për shitje, do të jenë të nevojshme dy cikle të përshtatjes që të jetë gati për ridizajnim të plotë. Edhe pse dizajnuesi mundt të ketë parashikuar ndikimin e ndryshimit teknologjik, topat e kristaltë janë të turbullt. Edhe më keq, gjatë zhvillimit të sistemit, gjërat mund të shkojnë më ngadalë sesa kur të jetë i mbaruar sistemi, kodi dhe të dhënat nuk përputhen me hapësirat adresuese, ose mbase të dhënat duhet të shpërndahen nëpër disa disqe të fortë në vend që të vendosen në një. Këto probleme mund të evitohen duke i kompensuar, por secili kompensim absorbon resurse intelektuale dhe kontribuon në rritjen e kompleksitetit gjatë procesit të zhvillimit.

Nëse e dizajnoni në mënyrë që të montohet gabimisht, dikush do ta montojë gabimisht. — Edward A. Murphy, Jr. (parafrazë e ligjeve origjinale të Marfit, 1949; shiko shiritin anësor 2.5)

Page 34: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

34

Edhe nëse nuk ndodh përshtatja apo ridizajni, plani origjinal ishte mesa duket një dizajn tashmë i ri. Ura (apo aeroplani) mund të kenë një numër modest të gjërave që janë të ndryshme nga të parët, por inxhinieri i ndërtimtarisë (apo aeronautiku) pothuajse gjithmonë përfundon së dizajnuari diçka që është vetëm pak i ndryshueshëm nga disa ura të mëparshme (ose aeroplan). Në rastin me sistemet kompjuterike, idetë që kanë qenë në total joreale para një apo dy viteve, mund të mbesin gjithmonë në trend, ashtu që dizajnuesi i sistemit kompjuterik pothuajse gjithmonë përfundon së dizajnuari diçka që është pak më ndryshe se sistemi kompjuterik i mëparshëm. Dallimi shkakton që analiza e thellë e dizajnit paraprak të jetë më e çmuar për inxhinerët e ndërtimit dhe aeronautikës, sesa dizajnuesit e sistemit kompjuterik, dhe po ashtu kjo nënkupton se tek sistemet kompjuterike nuk është dashur të zbulohen dhe sheshohen shumica e gabimeve të dizajnit paraprak, përpara se të kalohet në rishikimin e ardhshëm më të madh. Këto gabime mund që të kontribuojnë fuqimisht në kompleksitet. Pasi që teknologjia është përmirësuar (zhvilluar) shumë shpejt, fusha e dizajnit të sistemit kompjuterik priret që të vë më pak theks në analizën për detajet e performancës dhe përshtatjeve të vockla, sesa në realizimin e përpjekjeve tjera inxhinierike. Kur sistemi për gjenerimin e fuqisë elektrike mund të përfitojë në mënyrë dramatike nga turbina e re e avullit që përmirëson transferimin energjik për 1%, një përmirësim i nevojshëm prej 20% të performancës së sistemit kompjuterik mund të arrihet, duke pritur katër muaj për ciklin pasues të njoftimeve të produkteve harduerike. Nëse propozimi për rishkrimin e aplikacionit, me qëllim të arritjes së përmirësimit të njëjtë do të kërkonte një vit pune, është më shumë e arsyeshme, sa i përket kostos, që vetëm të presim për ndryshimin e teknologjisë që ta zgjedh problemin. E parë nga ana tjetër, teknologjia që zhvillohet në mënyrë rapide nënkupton se zgjidhjet më të vrazhda, (blerja e më shumë memorieve, pritje për procesor më të shpejt, përdorimi i algoritmit më të shpejt) janë shpesh herë qasja e duhur tek sistemet kompjuterike, përderisa tek sistemet tjera ato mund të jenë të papërfytyrueshëm. Pronari i hekurudhës që kalonte nëpër kanjon me siguri që nuk do ta konsideronte ekonomikisht të arsyeshëm propozimin që të zgjerohet kanjoni edhe më shumë apo të instalohet një binar tjetër. Kjo sepse edhe nëse resurset ishin në dispozicion, ndikimi në mjedi do të ishte tmerrues. Pasoja e dytë e madhe e zhvillimit rapid të teknologjisë tek sistemet kompjuterike është se shfrytëzueshmëria, dhe kualitetet përcjellëse që i nënshtrohen “inxhinieringut human”, të sistemeve kompjuterike, janë gjithmonë të shprishura. Nevojiten shumë vite provash dhe gabimesh për të bërë një sistem praktik, të favorshëm, dhe falës (ang. Forgiving), por përderisa një nivel i teknologjisë kompjuterike është zbutur, niveli i ri i teknologjisë kompjuterike i hap mundësitë e tipareve të reja për të njëjtën kosto, ose i ofron tiparet aktuale për më lirë deri te audienca e re e shfrytëzuesuesve të papërgatitur. Në mënyrë të ngjashme, proceseve legale dhe juridike iu duhen dekada për çështjet e reja, meqë njerëzit debatojnë për përfitimet e politikave të ndryshme, zbulojnë abuzime, dhe hulumtojnë ilaçet alternative. Përpara syve të teknologjisë së sistemeve kompjuterike, e cila zhvillohet në mënyrë rapide, këto procese mbesin mbrapa, duke i vonuar rezolutat për shpërblimin e ideve shpikëse softuerike dhe rregullave për mbrojtjen e informacionit të ruajtur nëpër kompjuterë, duke shtuar, kështu, pasiguritë e kërkesave për dizajnuesit e sistemit kompjuterik.**

** Lawrence Lessig bën një analizë të mirë për bashkëveprimin e ligjit, shoqërisë, dhe teknologjisë kompjuterike te Code: and Other Laws of Cyberspace [Sugjerimet për Literaturë Plotësuese 1.1.4].

Ky “telefon” ka shumë të meta që të konsiderohet seriozisht si mjet për komunikim. Kjo pajisje qenësisht nuk ka asnjë vlerë për ne. — shpesh i atribuohet një shënimi të brendshëm të Western Union nga viti 1876, por nuk ka prova për këtë shënim dhe me gjasë kjo paraqet një mit.

Page 35: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

35

Përfundimisht, komunikimet moderne të shpejtësisë së lartë dhe shtrirje globale e kanë përshpejtuar ritmin me të cilin njerëzit zbulojnë se teknologjia e re është dobishme dhe e përdorin atë. Përderisa duheshin disa dekada për elektricitetin dhe telefonin që nga kurioziteti të bëhen të gjithë të përdorura, shpikjet e fundit siç janë aparati digjital dhe DVD-të i kanë vërshuar tregjet për më pak se një dekadë, dhe një temë e një sajti www në CNN apo Newsweek mund të bëjë që ai sajt të pushtohet nga miliona klikime në ditë. Më në përgjithësi, aplikacionet e reja, siç janë shpërndarja e fajlleve palë me palë (ang. Peer-to-peer), mund të ndryshojë formën e ngarkesës së sistemeve ekzistuese brenda natës.

Kështu pra, studimi i sistemeve kompjuterike përfshin largpamësinë e proceseve të zakonshme të planifikimit, ekzaminimin e kërkesave, arnimin e detajeve, dhe integrimin e shfrytëzuesve dhe shoqërisë. Largpamësia çon deri te shitja e sistemeve të reja që kanë shkallë të papërpunuara dhe pa përfitime të paramenduara. Njerëzit që ndërtojnë aeroplan dhe ura nuk ballafaqohen me këto probleme. Problemet e këtilla mund të shikohen ose vështirësi të frustruara ose si një sfidë ngacmuese, varësisht nga cila perspektivë shikohen.

1.5 BALLAFAQIMI ME KOMPLEKSITETIN II Limitet fizike të thjeshta tek hardueri dhe limitet e largëta fizike tek softueri, së

bashku na dhanë mundësinë e krijimit të sistemeve me kompleksitet të paimagjinueshëm – dhe të pamenaxhueshëm, dhe hapi rapid i ndryshimit teknologjik i ngacmon dizajnuesit të nxjerrin sisteme, duke përdorur rregulla të reja dhe të patestuara. Këto dy efekte e përforcojnë kompleksitetin e sistemit kompjuterik, atëherë kur krahahasohen me sistemet nga fushat e ndryshme inxhinierike. Pra, dizajnuesëve të sistemit kompjuterik iu duhen disa vegla shtesë për tu ballafaquar me kompleksitetin.

1.5.1 Përse nuk mjaftojnë modulariteti, abstraksioni, nivelizimi dhe hierarkia

Modulariteti, abstraksioni, nivelizimi dhe hierarkia janë një ndihmesë e madhe, por të vetmuara nuk janë aq të mjaftueshme për ta mbajtur nën kontroll kompleksitetin e fituar. Arsyeja qëndron aty se të katër këto teknika supozojnë se dizajnuesi e kupton sistemin që ndërtohet. Në realitetin e sferës shumë të ndryshueshme të sistemeve teknologjike, është vështirë të zgjidhet

modulariteti i qëlluar nga deti, me modularitete alternative të besueshme. abstraksioni i qëlluar nga deti, me abstraksione alternative të besueshme. nivelizimi i qëlluar nga deti, me nivelizime alternative të besueshme. hierarkia e qëlluar nga deti, me hierarki alternative të besueshme.

Megjithëse i kemi të njohura disa principe dizajnuese, ato janë shumë të pakta, dhe udhërrëfimi i vetëm real vjen nga përvoja me sistemet paraprake.

Librat së shpejti do dalin jashtë përdorimit në shkollat publike . . . .Është e mundur që të mësohet çdo degë e njohurive njerëzore me fotografi lëvizëse. Sistemi i jonë shkollor do të ndryshojë plotësisht brenda dhjetë viteve. — Thomas A. Edison, në New York Dramatic Mirror (July 9, 1913)

Page 36: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

36

Ashtu siç mund të pritet, dizajnuesit e sistemeve kompjuterike kanë zhvilluar dhe përpunuar së paku një teknikë plotësuese për t’u ballafaquar me kompleksitetin. Dizajnuesit e llojeve tjera të sistemeve e përdorin po ashtu këtë teknikë, por zakonisht ato nuk e konsiderojnë si shumë të rëndësishme për sukses, meqë përdoret për sistemet kompjuterike, me sa duket për arsye se teknika është e realizueshme veçanërisht tek softueri. Ky është një proces programimi që njihet si iteracion.

1.5.2 Iteracioni Esenca e iteracionit ka të bëjë me fillimin e ndërtimit të një sistemi të thjeshtë e

funksional që i përmbush vetëm një pjesë të kërkesave dhe pastaj sistemi i tillë zhvillohet në hapa të vogla që gradualisht ta përfshijë më shumë tërësinë e plotë të kërkesave. Ideja qëndron aty se hapat e vogla mund të ndihmojnë në reduktimin e rrezikut të shkaktuar nga kompleksiteti. Pasja në dispozicion e një sistemi funksional në të gjithë kohën, ndihmon që të ndihemi të sigurt se diçka mund të ndërtohet, duke mundësuar një përvojë të vazhdueshme me rregullat bazike të teknologjisë aktuale, për të zbuluar dhe ndrequr gabimet. Së fundmi, përshtatjet për ndryshimet teknologjike që arrijnë gjatë zhvillimit softuerik janë më të lehta për t’i inkorporuar si pjesë e një apo disa iteracioneve. Nëse shohim që një pjesë softuerike identifikohet si “version 5.4”, ky është një tregues se shitësi përdor iteracion.

Iteracionet e suksesshme kërkojnë parashikime të konsiderueshme. Ky parashikim përfshin disa elemente, dy nga të cilët i identifikojmë si principe dizajnuese:

Para së gjithash,

Dizajni për iteracion

Nuk mund ta qëlloni për herë të parë, kështu që bëjeni të lehtë për ndryshim!

Dokumentoni supozimet prapa dizajnit ashtu që kur të vijë koha për ndryshim të dizajnit do jetë më lehtë për të kuptuar çka tjetër është ndryshuar! Jo vetëm që duhet të modifikohen apo zëvendësohen modulet, por edhe të rimodularizohen, sepse sistemi dhe kërkesat bëhen më lehtë të kuptueshme.

Bëj hapa të vogla! Kjo me qëllim që të mundësohet zbulimi i shpejtë edhe i gabimeve të dizajnimit edhe i ideve të gabuara, ashtu që ato mund të ndryshohen apo të hiqen me një përpjekje të vogël dhe përpara se pjesët e tjera në iteracionet pasuese të sistemit të fillojnë të varen nga ato dhe bëhen me efekt të pandryshueshëm. Sistemet që janë aktivisht duke u zhvilluar mund të jenë subjekt i rindërtimit të plotë të sistemit, për çdo ditë, sepse procesi i rindërtimit imponon një numër të madh të kontrolleve dhe testimeve që mund të zbulojnë gabime gjatë implementimit, përderisa ndryshimet që shkaktojnë gabimet janë të freskëta në mendjet e implementuesve.

Mendoj se ka një treg botëror për ndoshta pesë kompjuterë. — Shpesh herë thuhet të jetë thënë nga Thomas J. Watson, Sr., drejtori i IBM, në një fjalim të vitit 1943, por ka pak prova se kjo është vetëm një legjendë

Page 37: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

37

Mos u nxito! Edhe pse hapat individuale mund të jenë të vogla, ato patjetër që duhet të

jenë të planifikuara mirë. Në shumicën e projekteve, ekziston një nxitim drejt implementimit. Me dizajnin iterativ, ky nxitim mund të jetë edhe më i theksuar, dhe dizajnuesi duhet që të sigurojë se dizajni është gati për hapin tjetër.

Planifiko për reagimet (informatat kthyese)! Të përfshihen si pjesë e dizajnit edhe rrugët e reagimeve edhe stimujt pozitiv për të dhënë reagime! Testuesit, instaluesit, mirëmbajtësit, dhe përdoruesit e sistemit mund të japin shumë informacione për përmirësime. Testimi alfa (“nuk jemi në tërësi të sigurt se kjo mund të funksionojë”) dhe testimi beta (“duket se funksionon. Përdori në rrezikun tënd!”) janë shembuj të zakonshëm, dhe disa shitës i inkurajojnë përdoruesit t’i raportojnë detajet e problemeve dhe dështimeve me postë elektronike. Sistemi i ndërtuar mirë do të na jep shumë skema të tilla reagimesh në të gjitha nivelet.

Studioi dështimet! Një qëllim i rëndësishëm është të mësojmë prej gabimeve e jo të fajësojmë për ato. Stimulimet duhet që patjetër të dizajnohen për të siguruar se reagimet për dështimet nuk injorohen ose fshihen nga njerëzit që ndihen fajtorë. Pasi të zbulohet dukshëm shkaku i dështimit,

Vazhdo të gërmosh!

Kompjuterët kompleks dështojnë për arsye komplekse. Vazhdo të kërkosh për shkaqe tjera të thjeshta! Sistemet funksionale shpesh punojnë për arsye që nuk kuptohen mirë. Është normale të zbulohet se versioni i ri i sistemit i evidenton gabimet që kanë qenë në sistem për një kohë të gjatë, por nuk janë trajtuar deri tani. Mund të mësohet shumë duke kuptuar përse nuk janë trajtuar. Është e dobishme poashtu që të hulumtohet botëkuptimi i dizajnuesve për të kuptuat se çka i shtyri ato të ndërtojnë një sistem që mundi të dështojë në këtë mënyrë.††Ngjashëm, mos injoroni sjelljen e pasqaruar! Nëse reagimi raporton diçka që tani duket se nuk është problem apo është zhdukur, kjo është shenjë se diçka është gabim dhe nuk duhet besuar që sistemi në mënyrë magjike u ndreq vetvetiu.

†† Ideja për mësimin nga dështimet dhe onservimi se sistemet komplekse dështojnë për arsye komplekse janë tema në librin e mrekullueshëm nga Henry Petroski, Design Paradigms: Case Histories of Error and Judgment in Engineering [Sugjerime për Literaturë Plorësuese 1.2.3].

Kompjuterët në të ardhmen mund të peshojnë më pak se 1.5 tonë. — Popular Mechanics (March 1949)08-

Page 38: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

38

Iteracioni është një teknikë e hapur, por disa pengesa mund të ndërhyjnë. Pengesa kryesore është se me rritjen e dizajnit nëpër disa seri të iteracioneve, rritet edhe rrisku për humbjen e integritetit konceptual. Rrisku sugjeron se plani i përgjithshëm për versionin fillestar dhe të thjeshtë të sistemit duhet t’u përshtatet të gjitha iteracioneve të nevojshme për të arritur versionin final (ja pra nevoja për parashikim). Dikush mund që vazhdimisht të kontrolloj për të qenë të sigurt se kuptimi i përgjithshëm për dizajnim mbetet i qartë, pavarësisht ndryshimeve të ndodhura gjatë iteracionit.

Në shumicën e organizatave, lajmi i mirë (p.sh. një pjesë e madhe e sistemit punon përpara pritshmërisë) rrjedh shpejtë, por lajmi i keq (p.sh. një modul i rëndësishëm akoma nuk punon) shpesh mbyllet në pjesën e organizatës ku është zbuluar, së paku deri sa të ndreqet gabimi dhe të raportohet lajmi i mirë. Ky fenomen, i njohur si dioda e lajmit të keq mund të parandalojë perceptimin, se më mirë është të ndryshohet një pjesë tjetër e sistemit.

Problemi i përafërt është kur dikush përfundimisht kupton se modulariteti është gabim, dhe ai nuk mund të ndryshohet lehtë, për dy arsye. Së pari, rregulla e pandryshueshme e themelimit (shiko faqen 20) vjen në shprehje. Ndryshimi i modularitetit sipas definicionit përfshin ndryshimin e më shumë se një moduli, dhe disa herë të shumë moduleve. Së dyti, dizajnuesit që kanë investuar kohë dhe mund në zhvillimin e modulit, i cili nga një pikëpamje tjetër po bën atë punë që duhet, kur të paraqitet nevoja, mund të ngurrojnë për ta rishikuar atë dhe mundin e humbur në ripërpunim. Më thjesht, për të ndryshuar modularitetin duhet të kihen parasysh edhe komponentët edhe dizajnuesit.

Rrisku afatgjatë i iteracionit disa herë paraqitet kur dizajni fillestar është edhe i thjeshtë edhe i suksesshëm. Suksesi mund të bëjë që dizajnuesit të jenë të mbi kënaqur dhe të jenë shumë ambicioz në iteracionet pasuese. Teknologjia ka ndryshuar për sa kohë që vënia në funksion e versionit fillestar të sistemit dhe reagimet kanë sugjeruar shumë tipare të reja. Çdo tipar i sugjeruar duket i lehtë për t’u kuptuar nga natyra, dhe është vështirë të gjykohet se si mund të ndërveprojë. Rezultati shpesh herë është tejkalim dramatik dhe dështim i qëndrueshëm, sa që bëhet e zakonshme duke e pasur edhe emrin: efekti i dytë i sistemit.

Duke u bazuar në analizat e thella financiare dhe tregtare, është projektuar se nuk mund të shiten më shumë se pesë mijë makina Haloid. . . .Modeli 914, nuk ka ardhmëri në tregun e pajisjeve për fotokopje nëpër zyra. — Raport i firmës konsultuese Arthur D. Little për IBM në lidhje me prospektet për makinat kopjuese kserografike (1959) 08-

Page 39: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

39

Iteracioni mund të nënkuptohet si aplikimi i modularitetit në menaxhimin e dizajnimit sistemor dhe procesit të implementimit. Si rrjedhim, kjo na çon deri fusha e teknikave të menaxhimit, që nuk janë të adresuara drejtpërdrejtë në këtë libër. ‡‡

1.5.3 Mbaje të thjeshtë!

Mrekullisht, një nga teknikat më shumë efektive gjatë ballafaqimit me kompleksitetin është po ashtu ajo që është më e vështirë për ta aplikuar: thjeshtësia. Si u shpjegua tek Seksioni 1.4.1, sistemeve kompjuterike iu mungojnë limitet fizike për të menaxhuar kompleksitetin, kështu që dizajnuesi duhet patjetër të imponojë limite, përndryshe risku u dizajnuesit do të përhapet.

Problemi me këshillën e qartë për ta mbajtur të thjeshtë ka të bëjë me atë se:

Sistemet paraprake japin një pasqyrë sesa të mëdha mund të jenë gjërat, nëse shtohen më shumë tipare.

Teknologjia ka përparuar aq shumë sa që kostoja dhe performansat nuk janë kufizime. Secili nga tiparet e sugjeruar është demonstruar diku me sukses. Asnjë nga përjashtimet apo komplikimet tjera nuk janë të vështira për t’i trajtuar. Ekziston frika se konkurrenti do të nxjerrë në treg një sistem me më shumë tipare. Ndër dizajnuesit e sistemeve, arroganca, krenaria, dhe mbi të gjitha, vetëbesimi janë

më shumë të zakonshme sesa vetëdijesimi i qartë për rreziqet e kompleksitetit.

Këto përfundime na bëjnë të vështirë ti themi “jo” secilës nga kërkesat, tiparet, përjashtimet, apo komplikimet. Mbetet të jetë ndikimi i tyre kumulativ që prodhon eksplozion kompleksiteti siç është ilustruar në Figurën 1.1. Dizajnuesit e sistemit duhet që ta mbajnë në mend këtë ndikim kumulativ përgjatë gjithë kohës. Kufiri i kësaj i poshtëm është se arma më e fortë e dizajnuesve të sistemit kompjuterik, kundër kompleksitetit është aftësia për të thënë: “Jo. Kjo do ta bënte shumë të komplikuar”.

‡‡ Një libër i shkëlqyer për zhvillimin e sistemeve, nga veterani i dizajnimin, është Frederik P. Brooks Jr., The Mythical Man-Month [Sugjerime për Lexim Plotësues 1.1.3]. Një libër tepër i rekomanduar është ligjërata nga Alan Turing nga Fernando J. Corbato, “On building systems that will fail” [Sugjerime për Lexim Plotësues 1.5.3].

Nuk ekziston ndonjë arsye që dikush të mbajë kompjuter në shtëpi. — Kenneth Olsen, president i Digital Equipment Corporation (1977)08-

Page 40: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

40

Duke vazhduar që të studiojmë temat e veçanta të sistemeve kompjuterike, do ta përdorim edhe një lloj të veçantë të thjeshtësisë, deri aty sa të zbulojmë edhe një princip tjetër dizajnues:

Pranoji thjeshtësitë gjithëpërfshirëse!

Ashtu që mund të shikosh se çka je duke bërë.

Secila temë do të paraqes qartazi një apo disa thjeshtësi. Kjo për arsye se ato bëjnë të mundur që dizajnuesir të gjejnë argumente detyruese për korrektësi. Ata i bëjnë të parëndësishme detajet dhe ua bëjnë të qartë të gjithë pjesëmarrësve se çka po ndodh në të vërtetë. Ata do të bëhen një nga shpresat më të mira për ta mbajtur nën kontroll kompleksitetin.

PËRSE SHËRBEN PJESA TJETËR E LIBRIT? Ky kapitull ka paraqitur disa nga idetë më bazike për studimin e sistemeve kompjuterike. Gjatë ndërtimit të këtyre ideve bazike, kapitujt e ardhshëm hulumtojnë një seri temash nga inxhinieringu i sistemeve duke marrë parasysh tri motive që përsëriten:

A. Rëndësia përhapëse e modularitetit B. Dizajni i sistemeve i bazuar në principe C. Bërja e sistemeve të fuqishëm dhe me aftësi ripërtëritëse

Modulariteti shfaqet në secilën temë të inxhinieringut, qoftë si një nga qëllimit e asaj teme ose si një bazament i dizajnit të saj. Fjalët nga titujt e kapitullit e sugjerojnë këtë motiv (lëndë). Abstraksioni dhe nivelizimi janë mënyra të veçanta për ndërtim mbi modularitetin. Emërimi është mekanizëm fundamental për ndërlidhjen dhe zëvendësimin e moduleve. Klientët dhe shërbimet si dhe virtualizimi janë dy mënyra të përforcimit të modularitetit. Rrjetat janë të ndërtuara mbi bazat e modularitetit. Tek rezistenca ndaj gabimeve, moduli është njësi që e kufizon përhapjen e dështimit. Atomiciteti është një formë jashtëzakonisht e fuqishme e modularitetit, të cilën dizajnuesi mund ta përdor për të fituar konsistencë. Së fundmi, mbrojtja e informacioneve përfshin përforcime tjera të mureve modulare.

Motivi i dytë, dizajni i sistemeve i bazuar në principe, tashmë është paraqitur, edhe gjatë përmendjes eksplicite të disa principeve edhe në listën e principeve dizajnuese përbrenda faqes së parë. Këto principe shkurtimisht i nxjerrin në pah copëzat e gjëra të zbatimit të diturive që janë zhvilluar ndër gjenerata nga dizajnuesit e sistemit kompjuterik. Kapitujt pasues i aplikojnë këto principe të përgjithshme dhe po ashtu paraqesin principe dizajnuese plotësuese që janë më specifike për fushat e posaçme inxhinierike. Duke marrë për bazë këto principe, shpesh herë është vështirë të jepen receta precize për dizajnim.

Page 41: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

41

Për këtë arsye, nëpër libër lexuesi do të gjejë një formë të dytë të diturive të marra në formë të disa aluzioneve që përmbajnë kuptueshmërinë për të bërë ekuilibrime. §§ Së bashku, principet edhe aluzionet sugjerojnë se dizajni i sistemeve kompjuterike, edhe pse për pjesën më të madhe nuk bazohet në teori të matematikës, nuk është po ashtu plotësisht rastësor: në fakt bazohet në principe të forta të nxjerra nga përvoja dhe nga analizat e sistemeve të suksesshme dhe të dështuara. Lexuesi që i kupton dhe mëson këto principe dhe aluzione do të ketë mësuar shumëçka ng ajo që ky libër ka për qëllim të thotë.

Motivi apo lënda e tretë, që ka të bëjë me bërjen e sistemeve të fuqishëm dhe të aftë për t’u ripërtërirë, është paraqitur po ashtu, edhe në principin e fuqisë dhe me idenë se modulariteti, duke i kufizuar ndërlidhjen, mund të ndihmojë në kontrollimin e përhapjes së efekteve. Termet fuqia dhe aftësia e ripërtëritjes janë joformalë dhe përkojnë me përshkrimet e qëllimit të përgjithshëm të dizajnit se: sistemi nuk duhet të jetë i ndjeshëm ndaj zhvendosjeve të thjeshta dhe afatgjatë në mjedisin e tij dhe se duhet të vazhdojë të punojë saktë pa marrë parasysh fatkeqësitë e rastit. Çdo kapitull pasues e paraqet, së paku, një mënyrë vazhdimisht të fuqishme për ta bërë sistemin të fuqishëm dhe më të aftë për t’u rikthyer. Kapitulli mbi emërimin tregon se si mënyra e tërthortë e emrave mund ta bëjë sistemin më pak të brishtë. Më pastaj, kapitulli i klientëve dhe shërbimeve dhe virtualizimit demonstron se si të përforcohet modulariteti për të limituar efektet e gabimeve dhe incidenteve. Kapitulli mbi rrjetat paraqet teknikat që mundësojnë komunikime të sigurta, pavarësisht dështimeve në komunikim. Kapitulli mbi rezistencën ndaj gabimeve, pastaj, i përgjithëson ato teknika për të realizuar një sistem plotësisht të aftë për ripërtrirje, edhe pse ato përmbajnë komponentë me gabime. Kapitujt për atomicitetin dhe konsistencën aplikojnë teknikat e rezistencës ndaj gabimeve te problemi special i mirëmbajtjes së integritetit të të dhënave të deponuara, pavarësisht aktiviteteve konkurrente dhe pa marrë parasysh dështimet softuerike dhe harduerike. Së fundmi, kapitulli për ruajtjen e informatave paraqet teknikat për limitimin e ndikimit të sulmeve keqdashës që kanë për qëllim t’i vjedhin, ndryshojnë apo t’i bllokojnë informacionet.

USHTRIME 1.1 E saktë apo e pa saktë? Shpjego: modulariteti e redukton kompleksitetin sepse:

a. e redukton efektin e masës joadekuate b. ndihmon në kontrollimin e përhapjes së efekteve

1994–1–3d and 1995-1-1e 1.2 E saktë apo e pa saktë? Shpjego: hierarkia e redukton kompleksitetin sepse:

a. e redukton madhësinë e moduleve individuale b. e ndërpret numrin e ndërlidhjeve ndërmjet elementeve c. e monton një numër të elementeve të vogla në një element të madh d. e përforcon strukturën e ndërlidhjeve ndërmjet elementeve

§§ Shumë nëse jo të gjitha, aluzionet janë përshkruar nga Butler Lampson në artikullin e tij “Hints for computer system design” [Sugjjerime për Literaturë Plotësuese 1.5.4].

Page 42: Sistemet 1 -   · PDF fileSISTEMET KOMPJUTERIKE JANË TË NJËJTË POR TË NDRYSHËM ... inxhinieringun softuerik, kompilatorët, rrjetat kompjuterike, mbrojtjen, dhe sigurinë

KAPITULLI 1 Sistemet

42

e. të gjitha nga të lartpërmendurat.

1994-1-3c and 1999–1–02

1.3 Nëse krijojmë një grafik me shoqërinë personale, do të kemi hierarki. Saktë apo jo saktë?

1995–1–1b 1.4 Cili nga rastet zakonisht haset te sistemi kompjuterik kompleks?

a. teknologjia aktuale ka një ritëm të lartë të ndryshimit. b. Është lehtë të shkruhet një përshkrim i ngjeshur i sjelljes së sistemit. c. Ka një numër të madh të tipareve ndërvepruese. d. Tregon tipare urgjente që e bëjnë sistemin të ekzekutojë më mirë se sa është paraparë

nga dizajnuesi i sistemit.

2005-1-1 1.5 Ben Bitdiddle ka shkruar një program me 16 module kryesore me kod. Secili modul

përmban disa procedura. Në implementimin e parë të programit të tij, ai zbulon se secili modul përmban së paku një thirrje te secili modul tjetër. Secili modul përmban 100 rreshta kodi. 1.5a Sa i gjatë me rreshta kodi është programi i Benit? 1.5.b Sa ndërlidhje modulesh ndodhen në implementimin e tij? (Secila thirrje nga një modul në modulin tjetër paraqet një ndërlidhje.) Beni vendos që ta ndryshojë implementimin. Tani kemi katër module kryesore, secili që

përmban katër nënmodule në një hierarki me një nivel. Të katërta modulet kanë secili thirrje tek të gjithë modulet kryesore, dhe brenda secilit modul, katër nënmodulet kanë thirrje te secili. Janë 100 rreshta kod për çdo nënmodul, por secili modul kryesor ka nevojë për 100 rreshta kod për menaxhim.

1.5c Sa i gjatë është programi i Benit tani? 1.5d Sa ndërlidhje do të kemi tani? Llogariti edhe ndërlidhjet modul-modul she nën modul-nën modul! 1.5e A ishte vendim i mirë që të përdoret hierarkia? Pse po ose pse jo?

1996–1–2a…e Ushtrime plotësuese në lidhje me Kapitullin 1 mund të gjeni në tërësinë e problemeve që fillojnë në faqen 425.