Software Engineering
-
Upload
blerimraci -
Category
Documents
-
view
265 -
download
12
description
Transcript of Software Engineering
Software Engineering
Ne kete prezantim ka materjale dhe figura te marra nga libri Ian Sommerville, Software Engineering, Addison Wesley;
2
Per Lenden
� Profesor: Armend Bilalli
� LiteraturaLibri kryesor: Ian Sommerville, Software Engineering, Addison Wesley; 8 edition (May 25, 2006).
-UML 2 for Dummies by Michael Jesse Chonoles and James A. Schardt
-.The Unified Modeling Language User Guide SECOND EDITION By Grady Booch, James Rumbaugh, Ivar Jacobson
3
Per Lenden
� Detyra e Kursit:
� Grupe nga 4-5 studente max.
� Grupet krijohen vullnetarisht.
� Prezantime ne faza te projektit.
� Evaluimi behet gjate gjithe kohes se kursit.
� Mund te gjeni edhe projekte konkrete reale. ngakompani te ndryshme.
� Anetaret e grupeve te dergohen me e-mail ne [email protected]
� Kollokviumi: (Java e 5-te)
4
Per Lenden
� Notimi:� Detyra e Kursit (Projekti) 20%� Kollokviumi 20%� Provimi Final 60%
� Shenim: � Pjesmarrja si anetar ne nje grup eshte i detyruar.� Pjesmarrja ne kollokvium eshte i detyruar.
(Mungesa nenkupton 20% me pak te notes perfundimtare)
� Nuk lejohet paraqitja e provimit pa kaluar detyren e kursit(Projektin).
5
Qellimi
� Te mesoni hapat kryesor te zhvillimit te nje software.
� Te mesoni dhe praktikoni punen ne grup ne projekte tezhvillimit te nje software perfshire menaxhimin.
� Te jeni ne gjendje ne menyre efektive te analizoni nje‘problem’ dhe te gjeni zgjidhjen me te mire.
� Te jeni ne gjendje te perktheni kerkesat e klientit dhebiznesit ne gjuhen e kompjuterit.
� Te jeni ne gjendje te krijoni class, object, use case, data flow, sequence diagrams, activity diagram ne UML.
� Te jeni ne gjendje te gjeni nje zgjidhje dizajni dheimplementimi me te mire per nje problem programimi.
� Te jeni ne gjendje te identifikoni burimet potenciale terreziqeve qe do te mund te conin ne deshtimin e nje projektisoftverik.
6
Software Engineering
� Software engineering merret me teorite, metodatdhe veglat e punes (tools) per nje zhvillimprofesional te nje software dhe cka eshte me e rendesishme; me nje kosto efektive te zhvillimit te tij.
� Shumica e sistemeve ne diten e sotme kontrollohennga software.
� Shpenzimet ne software, reprezantojne nje pjese temire te prodhimit te brendshem bruto ne ekonomitee shteteve te zhvilluara.
� Ekonimia e nje vendi te zhvilluar eshte e VARUR nga software
7
Pyetjet e Shpeshta-FAQs
� Ç’ka eshte software?� Ç’ka eshte software engineering?� Cili eshte dallimi mes shkencave
kompjuterike dhe software engineering?� Cili eshte dallimi ne mes software
engineering dhe system engineering?� Cilat jane atributet kryesore te nje software
te mire?� Ç’ka nenkuptojme me Proces Softwerik dhe
Model te procesit? � Etj
8
Ç’ka eshte Software? � Kod Programimi se bashku me dokumentacionin
percjelles si kerkesa, dizajni, manuali teknik dhe i perdoruesit etj.
� Software Gjenerik� Photoshop � Word� SQL Server
� Software specifik (customized)� Programe te Ndryshme financiare� Programi per regjistrimin e popullsise
� Dallimi esencial eshte-? “Specifikacioni”.
� Kohet e fundit te dy keto tipe soft. jane bashkuar, kukompanite zhvillojne nje software i cili me pas mund tepershtatet per nevoja te klientit(p.sh SAP)
9
Ç’ka eshte Inxhinjerimi i softuare?
� Eshte nje discipline inxhinjerike e cila merret me te gjithaaspektet e prodhimit te nje software, nga faza fillestare e specifikacionit deri tek mirembajta e sistemit pasi te keteshkuar ne perdorim.
� “Inxhinjerike”. -Nje Inxhinier softueri, duhet te adoptoje ne menyre sistematike metodat dhe teknikat me tepershtateshme per zgjidhjen e nje problemi duke paturparasysh kufizimet operacionale dhe buxhetore.
� “Te gjitha aspektet e prodhimit te nje software”(menaxhimi i projektit, veglat e zhvillimit, metodat dhe teorite,
10
Procesi Softuerik (Software process)
� Temat Kresore
� Modelet e procesit softuerik
� Perseritja e Proceseve
� Aktivitetet e Procesit
� The Rational Unified Process
� Computer-aided software engineering-CASE
11
Procesi Softuerik
� Me proces softuerik kuptojme një grup teaktiviteteve qe kryhen per te zhvilluar njesoftware.
� Aktivitet kryesore te nje procesi softuerikjane:
� Specifikacioni i softuare;
� Dizajni dhe implementimi;
� Validimi i software;
� Evoluimi i software (Evolution)
12
Specifikacioni i Softuare
� Specifikacioni I softuare eshte nje proces I kuptimit dhe percaktimit te sherbimeve qeduhet te ofroje sistemi si dhe percaktimit tekufizimeve te sistemit.
� Fazat e detajuara te specifikacionit tesoftware jane:� Analiza e fizibilitetit;
� Analiza dhe percaktimi kerkesave;
� Specifikimi I kerkesave;
� Validimi I kerkesave;
13
Specifikacioni I Softuare
Analiza e fizibilitetit
Analiza dhepercaktimi kerkesave
Raporti I Fizibilitetit
Dokumenti i Kerkesavete software
KlasifikimiKerkesave
Validimi I Kerkesave
14
Dizajni dhe implementimi
� Eshte nje proces i konvertimit te specifkacionitte sistemit ne sistem te egzekutueshem.
� Software design
� Dizajnimi i software ne baze te specifikacionit;
� Implementimi
� Perkthimi i struktures se dizajnit ne program teegzekutueshem;
15
Procesi I dizajnimit tesoftware
16
Verifikimi dhe Validimi i Software
� Verifikimi dhe Validimi (V & V) sherben per te vertetuar se sistemi eshte konformspecifikacionit dhe permbush kerkesat e klientit.
� Perfshin kontrollin dhe rishikimin e sistemitme metoda te ndryshme testimi.
� Testimi i sistemit behet me shembuj testimi, zakonisht me te dhena reale qe procesohennga sistemi.
17
Procesi i Testimit
Testimi i Komponenteve
Testimi i Sistemit
Pranimi i Testimit
18
Evoluimi i software
� Software ne vetevete duhet te jete fleksibildhe te kete mundesi per ndryshime.
� Ashtu Sic ndryshojne kerkesat, me ndryshimin e kerkesave te biznesit, software i cili suporton kete biznes duhet teevoluoje dhe te jete ne gjendje te ndryshoje.
� Jane rritur rastet kur vendoset te blihetsoftware i ri, ne vend qe te ndryshohet apopershatet ai ekzistues. PSE?
19
Evoluimi i Sitemit
20
Generic software process models
� Ç’ka eshte nje model i procesit softuerik?� Eshte nej prezantim I thjeshtesuar (apstrakt) I nje procesi
softuerik.� Nje menyre formale e prezantimit si operon biznesi
� The Waterfall model� Secila faze e procesit startohet ne menyre sekuenciale.
Nuk mund te filloje nje faze pa mbaruar ajo paraprake.
� Evolutionary development� Ne kete model mund te punohet paralelisht ne fazat e
procesit.
� Component-based software engineering� Sistemi ndertohet nga komponentet ekzistuese.
21
Waterfall model
22
Mangesite e Waterfall Model
� Gjate procesit softuerik eshte veshtire te behenndryshime te parametrave nese eshte duke u punuar ne nje faze te procesit. Nje faze duhet teperfundoje para se te kalohet ne fazen tjeter.
� Ky model eshte i perdorshem vetem atehere kurkerkesat jane kuptuar dhe percaktuar ne fillim dhendryshimet gjate zhvillimit jane te vogla(shumerralle ndodh kjo)
� Ky model zakonisht perdoret ne sisteme te medha, ku zakonisht zhvillimi behet ne vende te ndryshmene te njejten kohe.
23
Modeli Evolutiv
� Ne kete model objektivi eshte qe tepunohet se bashku me klientin derisate arrihet versioni perfundimtar i sistemit nga nje pershkrim fillestarspecifikacionit.
24
Zhvillimi Evolutiv
25
Zhvillimi Evolutiv
� Perparesite: � Shume shpejte i akseptueshem nga klienti,
sepse zhvillohet duke qene klienti aktiv me sistemin gjate tere kohes.
� Me efektiv ne prodhimin e nje software ne kohe me te shpejte.
� I aplikueshem per sisteme te vogla dhe temesme, per pjese te sistemeve te medha sidhe per sisteme me jetegjatesi te shkurter.
� Mangesite� Sistemet zakonisht jane te strukturuar dobet.� Mungon dokumentacioni i zhvillimit te
proceseve
26
CBSE- Component-based SE
� Ne kete model perdoren sistemetekzistuese dhe integrimi i tyre
27
Cilat jane Metodat e Soft Eng?
� Nje metode e inxjinjerimit te software eshtenje qasje e strukturuar e zhvillimit tesoftware, qellimi i se ciles eshte lehtesimi i zhvillimit te nje software.
� Metoda Structured Analysis(DeMarco 1978)
� OO, Object Oriented (Booch 1994)
� UML-unified modeling language (Booch and Rumbaught 1999)
28
Cka eshte CASE?
� Shkurtesa CASE qendron per Computer-Aided Software Engineering.
� Mbulon programe te ndryshme, qe perdoren per tesuportuar aktivitetet e zhvillimit te procesit softwerik(analizkerkesave,modelimi, debugging, testimi)
� Veglat CASE mund te perfshijne edhe gjenerimin e kodit, gjenerimin e dokumentacionit, gjenerimin e dizajneve tendryshme etj.
� Per me teper lexoni www.case-tools.org
29
Cilat jane atributet kryesore tenje software te mire?
Nje Software duhet te ofroje funksionalitetin dhe performancen e kerkuar tek perdoruesi dhe duhet te jete i mirembajtshem, i besueshem dhe i pranueshem
� Mirembajtshmeria
� Software duhet te zhvillohet per te plotesuar kerkesat dhenevojat qe ndryshojne me kohen
� Besueshmeria
� Software duhet te jete I besueshem;
� Efikasiteti
� Software nuk duhet te perdori resurset e sistemit pa nevoje
� Pranueshmeria
� Software duhet te jete i pranueshem dhe i kuptueshem ngaperdoruesit per te cilte eshte zhvilluar.
30
Detyre Shtepie
� Cili eshte dallimi ne mes shkencavekompjuterike dhe software engineering?
� Cili eshte dallimi ne mes software engineering dhe system engineering?
� Lexoni kapitullin 1,2,3 te librit kryesor.
31
Intentionally left blank
32
Procesi Softuerik
� Cilat ishin aktivitetet kryesore te njeprocesi softuerik?
� Specifikacioni i softuare;
� Dizajni dhe implementimi;
� Validimi i software;
� Evoluimi i software (Evolution)
33
Specifikacioni i Softuare
Analiza e fizibilitetit
Analiza dhepercaktimi kerkesave
Raporti I Fizibilitetit
DokumetiKerkesavete software
Klasifikimi I Kerkesave
Validimi I Kerkesave
34
Analiza e Fizibilitetit
Nepermjet analizes se Fizibilitetit percaktohet/vendoset neseduhet te zhvillohet nje software.
Analiza e fizibilitetit duhet te jepe pergjigje ne disa pyetjekryesore.
� A duhet te zhvillohet ky softuer?Pse?
� Cili eshte plani kohore?A mund te realizohet ne kohe?
� Sa eshte profiti?
� A duhet te investohet? ROI(return on investment)
� Cilat jane perfitimet e organizates?
� A mund te implementohet Projekti?
� A ka specifikacion te mirefillt te kerkesave?
� Kush duhet te beje Analizen e Fizibiliteti????
35
Analiza dhe percaktimiKerkesave
� Nepermjet analizes dhe percaktimit te kerkesave behetIDENTIFIKIMI I KERKESAVE
� Inxhinjeri/at softuerik se bashku me klientin dhe perdoruesite sistemit duhet te punojne per identifikimin e kerkesave.
� Nepermjet Analiza se kerkesave te software percaktohen
� Sherbimet/detyrat qe duhet te kryhen nga sistemi.
� Qellimi dhe caku qe duhet te arrihet nga sistemi.
� Kufizimet operacionale, funksionale dhe teknike tesistemit.
� Ne kete proces perfshihen te gjithe palet e interesuara(stakeholders) sic jane: perdoruesit, menaxheret, ekspertet e fushave specifike etj.
36
Veshtiresite e analizes se kerkesave
� Zakonisht palet e interesuara nuk e dine realisht se qka deshirojne.
� Kerkesat e paleve te ndryshme bienne kundershtim me njera tjetren.
� Politikat sociale dhe organizativemund te ndikojne ne analizen e kerkesave.
� Ndryshimi dinamik i kerkesave gjatefazes se analizes.
37
Aktivitetet gjate analizes se kerkesave
� Identifikimi I kerkesave� Bashkebisedimi me palet e interesuara per te identifikuar kerkesat
e tyre. � Behet mbledhja e informacionit per sistemin qe diskutohet dhe
sistemet ekzistuese� Mblidhen te gjitha burimet e informacionit, sic mund te
jene;dokumente te ndryshme, specifikacione te sistemeveekzistuese, manualet e ndryshme operative etj.
� Klasifikimi dhe organizimi i kerkesave
� Caktimi i Prioriteteve dhe Negociimi� Caktohen kerkesat sipas prioriteteve dhe negociohen kerkesat qe
kane konflikt njera me tjetren
� Dokumentimi I Kerkesave� Dokumentohet dhe percaktohet sakte cka deshiron klienti
38
Takimet me klientin-Intervistat
� Identifikimi I kerkesave arrihet nepermjet pyetjeve qe I behen paleve te interesuara.
� Intervistat me pyetjet e parapregaditura dheDiskutimet e hapura ne takime te zgjeruara –Brainstorming
� Intervistuesit duhet “te dijne” te degjojne palet e interesuara.
� Intervistuesit duhet te jene ne gjendje te kuptojnekerkesen dhe te japin propozime te ndryshme dhe jo tepresim pergjigje ne pyetjet “Qka deshiron”
� Gjithmone mbaj shenime
39
Skenaret
� Skenaret jane shembuj real se si mundte perdoret sistemi.
� Nepermjet nje skenari pershkruhet njeinteraksion i caktuar ne sistem.
� Skenaret duhet te pershkruajne
� Nje pershkrim te gjendjes se fillimit;
� Nje pershkrim te rrjedhes normale tengjarjeve;
� Nje pershkrim se cfare mund te shkojekeq;
� Nje pershkrim te gjendjes se skenaritne fund;
40
Shembull Skenari
Skenari: Terheqja e mjeteve me Visa cardPershkrimi Nepermjet ketij skenari paraqitet interaksioni ne mes
klientit dhe bankomatit. Klienti realizon terheqjen e mjeteve me nje kartele Visa Card; Terheqja realizohet pas verifikimit tekarteles si dhe limitit ditor te lejuar per terheqje.
1. Poseduesi i karteles VISA vendos kartelen ne lexuesine karteles.
2. ATM verifikon nese kartela e futur eshte VISA 3. ATM kerkon nga poseduesi I karteles te jape numrin
PIN.4. Poseduesi I karteles shtyp numrin PIN5. ATM kontrollon numrin e dhene PIN me ate qe eshte I
ruajtur ne kartele.6. ATM kerkon nje autorizim nga sistemi qendror VISA
per autorizim.7. Sistemi I autorizimit VISA konfirmon validitetin e
karteles dhe njofton per limitin maksimal ditor te lejuarper terheqje
41
Shembull Skenari(vazhdim)
8. ATM kerkon nga poseduesi I karteles shumen qeai/ajo deshiron te terheqe
9. Poseduesi I karteles zgjedh shumen qe deshiron teterheqe.
10. ATM kontrollon vleren kundrejt shumes maksimalete lejuar
11. ATM pyet poseduesin e karteles nese ai deshironfature
12. Poseduesi I karteles kerkon fature.13. ATM I kthen kartelen poseduesit14. Poseduesi I karteles merr kartelen15. ATM I jep parate e kerkuara dhe faturen16. Poseduesi merr parate dhe faturen
Modelimi i skenareve
Vetem pikat kryesore te detajuarame nje shembull
UML Use Case
43
Why UML Use Case?
� USE Case� Nje grup skenaresh te nderlidhura nga aktor
dhe qellime te njejta.� Nje pershkrim sekuencial i aksioneve qe
performohen nga nje sistem per te prodhuarnje rezultat per nje aktor.
� Use case pershkruajne sjelljen e pritur“WHAT” dhe jo metoden egzakte si behet“HOW”
� Use case krijohen bazuar ne kerkesatfunksionale te identifikuara.
� Perdoren ne fazen fillestare per identifikimin e kerkesave
44
Use Case Diagrams
� Use Case
� Actors
� Relationships
� Use Case Diagrams
45
Use Case (UC)
� Definicioni� Use case pershkruan punen(task) qe nje
perdorues mund te kryej duke perdorursistemin
� Pershkrimi� Pershkruan kerkesat e sistemit� Nje pune e pershkruar nga UC perbehet nga
aktivitetet (activities)
� UC mund te kete disa variacione qe quhenSkenare (scenarios)
� Nuk duhet te perdoren per te nxjerrefunksionalitete nga UC
46
Hapi i pare
� Identifiko aktoret
� Identifiko Use Case! UC me se lehteidentifikohen duke percaktuar qkaduhet te bejne aktoret
� Krijo listen e Use case, duke specifikuar edhe prioritetinUse Case Description UC-1 Kontrol lo Bilancin
Priority: 2
UC-2 Nuk ka rrjet/sis temi nuk punon
Priority: 1
Shembull I use case list I gjeneruar nga CASE tool, Case Complete
47
Use case pershkrimet
� Numri i UC� Emri i Use Case� Pershkrim i shkurter� Parakushtet� Kufizimet� Paskushtet� Pershkrimi i rrjedhes se sakte( success
scenarios)� Efektet� Verejtje
48
49
Aktoret-ActorsDefinicioni
� Aktori eshte nje entitet I jashtem I cilieshte I perfshire ne bashkeveprim me sistemin e pershkruar ne UC
Pershkrimi
� Aktoret=rolet
� Aktoret mund te jene edhe sisteme tejashtme
Simboli VISA Sistemi I Autorizimeve
Klienti
50
Gjeneralizimi I aktoreve
Nenpunes
Nenpunes operativNenpunes Adminsitrativ
Gjeneralizimi: Nenpunesi mund te kryeje gjithckacka mund te kryeje nje nenpunes administrativ
51
Use Case Diagram
Definicioni
� Tregon nderlidhjen ne mes disa use case-ve dhe aktoreve te involvuar me keto use case
Pershkrimi
� Vegel per percaktimin e kerkesave
� UC diagrami pershkruan ato aktivitetete cilat duhet te suportohen gjate fazes se zhvillimit te software.
52
Use Case Diagram(2)
� Simboli
Aktori 2
Aktori 1
UC 3
UC 2
UC 1
Emri I Diagramit
53
Shembull – Bankomati(ATM)
� ATM ofron sherbimet e meposhtme:1. Ofron terheqjen e te hollave per te gjithe
poseduesit e kartelave nepermejt lexuesitte karteles dhe makines automatike me monedhe
2. Raport per gjendjen e llogarise, keshit dhesherbimit te deponimit ne bankomat per klientet e bankes qe posedojne nje kartelebankare.
3. Te gjitha transaksionet jane te procesuara
4. ATM duhet te rimbushet me monedha kohepas kohe
54
Diagrami fillestar per ATM
55
Diagrami i permiresuar per ATM
56
Me shume Aktore
Nese poseduesi I karteles eshte VISA athere SA VISA duhet te kontaktohetNese poseduesi I karteles eshte I bankes(qe I takon bankomati)athere SA bankes thirret
57
Relationship ne mes UC� <<Include>> UC baze perfshine funksionalitetet e “Included” Use
case
� <<extend>> Nje UC e shtuar(extension) ne menyre opsionale e zgjeron sjelljen e nje UC tjeter(UC baze).
� Relacioni <<extend>> tregon se inkorporimi I UC te zgjeruarvaret se cfare ndodh kur UC baze ekzekutohet.
� Gjeneralizimi: Sub UC trashegon sjelljen nga Super Use Case
� Gjeneralizmi mund te perdoret ne mes aktoreve ose UC dhe jone mes nje aktori dhe UC
UC Baze
Included
UC
<<Include>>
UC Baze
UC e
zgjeruar
<<extend>>
Super UC
SUB UC
Gjeneralizimi
58
Shembull i nje INCLUDE Relationship
Te gjitha llojet e transaksioneve duhet te autorizohen
59
Shembull i nje <<EXTEND>> Relationship
…….8. ATM kerkon nga poseduesi I karteles shumen qe ai/ajo deshiron te terheqeExtension Point: Nuk Ka rrjet/nuk punon sistemi
9. Poseduesi I karteles zgjedh shumen qe deshiron te terheqe.10. ATM kontrollon vleren kundrejt shumes maksimale te lejuar……
uc Use Case Model
Verifiko Shumen Nuk ka rrjet«extend»
60
Shembull i nje GjeneralizimiRelationship te UC
61
ATM, UCD i Zgjeruar
62
Ushtrim- “Drive Test”
� Pershkrimi i problemit: Nje kompani e cila merretme shitjen e autoveturave iu jep mundesi klienteveqe te kene mundesine te provojne automjete qejane te interesuar t’i blejne.
� Meqenese interesimi i klienteve eshte i madhkompanise iu eshte dashur qe tju kerkoje klienteveqe paraprakisht te bejne rezervimet. Perpara se te behet nje rezervim per ‘drive test’ klienti duhet te regjistrohet.
� Kompania nepermjet sistemit te saj dhe administratorit merret me te gjithe menaxhimin e automjeteve, si datat e lejimit per “drive test”, konfirmimin e rezervimit etj
63
Te plotesohet UC diagrami i meposhtem-Ushtrim ne Klase
64
Sistemi i Administrimit tekurseve
� Student: update te dhenat personale, shef rezultatet e provimit, shfletondetajet mbi kurset, zgjedh kursin e preferuar
� Mesuesi: shfleton rezultatet e provimeve, update informacionin e kurseve, shfleton regjistrimet e bera
� Stafi admin: hedh rezultatet e provimeve, update te dhenatpersonale te studenteve, shfletonregjistrimet e bera per per kurse.
65
UCD per sistemin e admin. kurseve
66
Shmebull 1-POS
Keni shembulli e nje dyqani apo te nje pike te shitjes (point of sale –POS Terminal) . Nje pike shitje zakonisht ka njekompjuter, barcode, peshore, printer, POS terminal qeeshte i lidhur me sistemin e procesimit te kartes se kredititetj. Nje klient ben pagesen per mallrat e blere me kartele nepermjet POS terminalit.
� Identifikoni aktoret?
� Identifikoni Use case?
� Vizatoni nje Use Case Diagram?
� Pershkruani nje skenar sukesi?
67
Shembull 2: Online Shopping
� Aktoret: Klienti Online, pay pal, credit autorizimi,serveri
� Use case: shfleto artikull, bej pagese, CHECKOUT, authentikimi I klientit, kalkulimi I takses dhe transporti, pagesa(kredit ose pagese pay pal)
� Vizatoni nje Use case diagram?
68
Intentionally left blank
69
Ngaora e kaluar….
� Analiza e kerkesave te software
� Percaktimi i kerkesave dhe veshtersite qehasen gjate percaktimit te tyre.
� Aktivitetet (identifikimi, klasifikimi, caktimi i prioriteteve..)
� Takimi me klientet(intervistat)
� Analiza e skenareve (use case)
� Use case Diagramet dhe shembuj
� Vazhdojme me analizen e kerkesave…
70
Tipet e Kerkesave
� Kerkesat e Perdoruesve (user requirements)
� Deklarata ne gjuhen natyrale plus diagrame tesherbimeve qe ofron sistemi si dhe kufizimet operative. Shkruhen per konsumator.
� Kerkesat e Sistemit (system requirements)
� Nje dokument i strukturuar qe percakaton ne menyre tehollesishme pershkrimin e funksioneve te sistemit, sherbimet dhe kufizimet operacionale. Percakton se cfare duhet te implementohet dhe mund te jete pjese e kontrates ne mes klientit dhe kontraktorit
71
Definimi dhe Specifikimi
� Definimi i kerkeses se perdoruesit (User Requirement Definition)
� Nje Software i cili i mundeson klienteteve qe te nderrojnePIN te karteles ne ATM.
� Specifikimi i kerkesave te sistemit ( System requirement specification)
� 1.1 Klienti duhet te jete klient i bankes qe posedon ATM� 1.2 Klienti duhet te kete kartele valide� 1.3 Klienti duhet te dije PIN e vjeter, para nderrimit te tij.� 1.4 Pas ndryshim te Pin nuk lejohet transaksion tjeter pa u
validuar PIN i ri.� …………..
72
Klasifikimi I Kerkesave
� Kerkesat Funksionale� Deklarata(statements) te sherbimeve qe duhet te
ofroje sistemi. � Si duhet te reagoje sistemi� Si duhet te sillet sistemi ne situata te vecanta
� Kerkesat jo-funksionale� Siguria dhe performanca� Kufizimet e ndryshme te sherbimeve(p.sh kufizimi ne
kohe)� Standardet e ndryshme etj
� Kerkesat e fushes (domain requirements)� Kalkulimi i tatimit ne rroge duhet te behet sipas
rregullores XX te Administrates tatimore te Kosoves.
73
Kerkesat Funksionale
� Kerkesat Funksionale pershkruajnefunksionalitetin ose sherbimet e sistemit.
� Kerkesat Funksionale te perdoruesve janekerkesa globale qe tregojne ne vija tetrasha cfare duhet te beje sistemi.
� Kerkesat Funksionale te sistemit duhet tepershkruajne sherbimet dhe funksionet e sistemit ne detaje.
� Dokumentimi i kerkesave funksionale duhetme qene konsistent dhe i kompletuar.
74
Shembuj te kerkesavefunksionale
� Perdoruesi duhet te kete mundesi te kerkojeklientat ekzistues ne database.
� Sistemi nuk duhet te shfaqe detajet e klienteve qe jane te kategorizuar si VIP (perveq emrit).
� Ç’do porosi duhet te identifikohet me Porosia_Id, nepermjet se ciles perdoruesimund te kontrolloje statusin e porosise.
75
Kerkesat Jo-funksionale
� Kerkesat Jo-funksionale zakonisht nuk varennga perdoruesi.
� Perdoren per te definuar kufizimet dhe vetite(properties) e sistemit p.sh besueshmeria, cilesia, pergjigja ne kohe, IO devices etj.
� Mund te jene kufizime si percaktimi i gjuhesse programimit dhe CASE metodave.
� Kerkesat jo-funksionale mund te jene me kritike se ato funksionale.
76
Kerkesat Jo-Funksionale
77
Klasifikimi i kerkesave Jo-funksionale
� Kerkesat e Produktit
� Kerkese e cila specifikon qe produkti i kryer duhet te silletne nje menyre te caktuar p.sh koha e ekzekutimit, besueshmeria etj
� Kerkesat organizative
� Kerkesa qe dalin si rezultat i politikave dhe proceduraveorganizative p.sh standardet e proceseve qe perdoren, implementimi i kerkesave etj
� Kerkesat e jashtme
� Kerkesa qe dalin si rezultat I faktoreve te jashtem. P.shNderveprimi(interoperability), kerkesat legjislative, etike etj
78
Shembuj kerkesash jo-funksionale
� Kerkesat e produktit
� Interface duhet te implementohet me HTML te thjeshte, pa frames dhe Java applets.
� Kerkesat organizative
� Sistemi dhe dokumentimi i tij duhet te jetekonform standardit ISO XXX
� Kerkesat e jashtme
� Sistemi nuk duhet te lejoje asnje rrjedhje teinormacionit personal te klienteve, perveqemrit dhe numrit te references.
79
Kerkesat e Sistemit
� Kane per qellim te jene nje baze per dizajnimin e sistemit (software design)
� Mund te inkorporohen ne kontraten e sistemit,
� Mund te ilustrohen apo definohetduket perdorur modelet e sistemit(Use case, Data flow digrams, activity diagram etj)
80
Kerkesat dhe Dizajni
� Kerkesat – Ç’ka duhet te beje sistemi
� Dizajni – Si duhet te realizohet(behet) kerkesa.
� Ne praktike Kerkesa dhe Dizajni janezakonisht te pandara.
81
Specifikacioni i Nderfaqesit ( Interface Specification)
� Shumica e sistemeve duhet te operojneme sisteme te tjere, specifikacioni i nderfaqesit duhet te jete gjithashtu pjesee kerkesave.
� Nderfaqesit procedural;
� Struktura e te dhenave qe shkembehet;
� Riprezantimi i te dhenave
82
Dokumenti i kerkesave teperdoruesit
83
Struktura e dokumentit teKerkesave
� Hyrje
� Fjalori(Glossary)
� Definimi I kerkesave te perdoruesit
� Arkitektura e sistemit
� Specifikacioni I kerkesave te sistemit
� Modeli I sistemit
� Evoluimi I Sitemit
� Anekset (Appendices)
Shikoni shembullin e SRS ne word.
84
Intentionally left blank
85
Modelimi i Procesit� Ç’ka eshte nje model i procesit softuerik?
� Eshte nej prezantim i thjeshtesuar (apstrakt) i nje procesi softuerik.
� Nje menyre formale prezantimi si operonbiznesi.
� Data flow diagramet perdoren per tetreguar procesetproceset e e biznesitbiznesit dhe tete dhenatdhenat qekalojne ne mes tyre.(proceseve)
� Meqenese data flow diagramet tregojnelevizjen e te dhenave ne mes proceseve, keta diagram quhen zakonisht “Process model”.
86
Physical vs Logical Model
� Modelet logjike te procesevepershkrujne proceset pa treguar se siato kryhen
� Modelete Fizike (physical model) perfshijne edhe informacione siimplementohet nje proces.
87
Data Flow Diagrams
Process
Data Store
Source/Sink or External
Data Flow
De Marco & Yurdon Gain & Sarson
88
Context Diagram
� Nje pamje gjenerale e nje Sistemi.
� Tregon procesin e pergjithshem tebiznesit vetem si nje proces i vetem
� Qellimi i nje sistemi organizativ qetregon kufijte e sistemit, entitetet e jashtme qe nderveprojne me sistemindhe te dhenat kryesore qe shkembejne
89
Context diagramOrder system
90
DFD Rregullat- Context Diagram
� Vetem nje process, me numer 0.
� Entitetet e jashtme te vizatuara ne forme drejtekendeshi
� Vetem rrjedha e te dhenave kryesore.
� Data store nuk shfaqen ne kete faze
91
Level 0(zerro) DFD
� Tregon te gjitha proceset kryesoreqe e perbejne sistemin.
� Tregon si rrjedh informacioni(tedhenat) ne mes proceseve.
� Shtohen ne diagram “data stores”
� Kur zgjerohet context diagrami ne DFD level-0, te gjitha lidhjet qe hynedhe dalin duhet te ruhen (Balancimi)
92
Level 1 -DFD
� Tregon te gjitha proceset qe perbejnenje proces te vetem ne diagramin e nivelit 0.
� Sherben per te treguar ne detajepermbajtjen e procesit te nje niveli me te larte.
� Diagrami i nevelit 1, mund te mosduhet per te gjitha proceset e nivelit 0
93
1.0
Fill
Order
2.0
Create
Invoice
3.0
Apply
Payment
SALES
REPBANK ACCOUNTING
CUSTOMER WAREHOUSE
Order
Order
Reject
Notice
Picking List
Accounts
ReceivableD1
Invoice
Invoice
Invoice
DetailPayment
Detail
Payment
Commission Bank Deposit Cash Receipts Entry
Completed
Order
Level-0 DFDOrder system
94
Dekompozimi dhe Balancimi
� Dekompozimi
� Nje process iterativ i ndarjes se pershkrimit tesistemit ne detaje me te vogla.
� Niveli me i ulet quhet DFD primitive.
� Balancimi
� Gjate dekompozimit te DFD nga nje nivel ne tjetrin duhet te ruhen “hyrjet ne” dhe “daljet nga”nje proces
� Sigurohuni qe numri i hyrjeve/daljeve terrjedhes se te dhenave eshte i njejte gjatekalimit nga nje nivel dekompozimi ne tjetrin
95
Shembull balancimi� Shembull: Hoosier Burgers
� Ne figuren 1, vini re se eshte vetem nje“input” ne sistem (customer order)
� Tre outpute: Customer receipt, Food order dhe Management reports
Figure 1, Context diagram of Hoosier Burger’s Food ordering, Marre nga libri“Modern System analysis and design”, jeffrey a.Hoffer
96
Vini re: Kemi te njejtat hyrje dhe dalje me diagramin e meparshem. Mund te themi se context diagrami dhe DFD niveli-0 jane tebalancuar.
97
Krijimi i Data flow diagrameve
� Hapat gjeneral1. Krijo “context” diagramin preliminar2. Identifiko use cases, p.sh menyrat se si
predoruesit e perdorin sistemin3. Krijo DFD fragmente per cdo Use case4. Krijo Level 0 diagramin nga fragmentet. 5. Dekompozo ne Level 1,2..6. Kthehu ne hapin e pare dhe rishiko per
gabime.7. Valido DFD me perdoruesit
98
DFD- Rregullat
� Te pergjitheshme:� Hyrjet ne nje process duhet te jene te ndryshme nga daljet e atij procesi� Te gjitha Objektet ne DFD duhet te kene emra unik
� Process:� Nje proces nuk mund te kete vetem dalje.� Asnje proces nuk mund te kete vetem hyrje� Proceset duhet te emrohen me folje
� Data store:� Te dhenat nuk mund te rrjedhin nga nje data store ne tjeter� Te dhenat nuk mund te rrjedhin nga nje entitet I jashtem ne data store� Data store emerohen me emra
� External Entities: � Te dhenat nuk mund te rrjedhin me mes dy entiteteve te jashtme� Entitetet e jashtme emerohen me emra
� Data flow:� E njejta Rrjedhe e te dhenave nuk mund te kthehet ne te njejtin proces� Data flow duhet te emerohen me emra.
99
DF-Gabimet e Zakonshme
a b ab
Duhet nje
proces qe te
kete kal im te
dhenash ne
mes dy
enti teteve te
jashtme
a DataStore1 a
Duhet nje
proces per te
updatuar apo
perdorur nje
Data Store
DataStore1
DataStore2 DataStore3
Duhet nje
proces per te
levizur te
dhenat nga
nje Datastore
ne Tjetren
DataStore2 DataStore3
100
Shembull 1:
� Kur klienti ben nje porosi nepermjet website, sistemikontrollon nese artikulli eshte ne stok, njofton klientinme statusin e artikullit dhe gjeneron kerkesen per porosi ne magazine e cila mbush porosine. Kurporosia eshte derguar(nisur) klienti faturohet. Sistemigjithastu prodhon raporte te ndryshme si raporte teinventarit per kontabilitet.
1. VIzato nje context diagram per kete sistem porosienepermjet website
2. Vizato DFD-0 per te njejtin sistem.
101
Context diagrami
102
DFD level 0
103
Ushtrim 2: ATM- Context Diagrami
ATM Screen
ATM Printer
dhensi i parave
Tastiera
Lexuaesi i
Karteles
ATM Sistemi
menu/mesazhe
fatura e klienti t
para ne cash
komandat
nga
kl ienti
Te dhenat e karteles
D.SH. Te ndertohetDFD Niveli 0
104
Ushtrime ne Laborator
1. Ne EA, te vizatohet shembulli 1 i sistemit teporosive.
2. Te ndertohet nje DFD, nepermjet te cilit paraqitetaplikimi per pune ne nje organizate per nje pozite tecaktuar. Sistemi njofton aplikantin mbi pranimin e dokumenteve. Aplikanti i pranuar regjistrohet ne Payroll pas evaluimit te te gjitha aplikanteve. Detajetmbi poziten merren nga menaxheri, te cilit i nevoitetpunetori.
105
Intentionally left blank
106
Procesi Softuerik
� Cilat ishin aktivitetet kryesore te njeprocesi softuerik?
� Specifikacioni i softuare;
�� DizajniDizajni dhedhe implementimiimplementimi;;
� Validimi i software;
� Evoluimi i software (Evolution)
107
DESIGN
� Pas perfundimit te analizes se kerkesave/specifikacionit duhet tepercaktojme si keto kerkesa duhet teimplementohen - Design.
108
Temat qe do te mbulohen
� Software Architecture Design.
� Application architectures.
� Object-Oriented Analysis (OOA)
� Object-Oriented Design (OOD)
� Static OOD
� Dynamic OOD
� User Interface Design
109
Pse na duhet Dizajni
� Tashme i kemi kerkesat/specifikacionin� Kerkesat jane ne forme shume Abstrakte per ndertimin
e kodit…� Na duhen detajet per:
� Menyren si pjeset e nje sistemi bashkohen(“Architecture”)
� Si grupohen funksionet/te dhenat (“System structure”)� Si reprezantohen te dhenat (“data structure”)� Si procesohen te dhenat (“Algorithms”) � Si do te perdoren API (“services”)� Si do ta perdorin perdoruesit sistemin (“user interface”)� Si do te bashkeveproje sistemi me te tjeret(system
interface)
110
Software Architecture � C’ka duhet te konsiderojme:
� Programet dhe proceset te cilat e perbejnesistemin.
� PC/Servers ku programet ekzekutohen(lloji, app. existuese, sistemet operative etj)
� Networking� Ku do te ruhen te dhenat, si do te
aksesohen/transferohen� Arkitekura e centralizuar apo decentralizuar.� Kualiteti i sherbimit, performanca, siguria etj
� Rezultati I procesit te dizajnit eshte:� Pershkrimi i arkitektures se software
� Client Server Architecure eshte arkitektura e software me e perdorur.
111
Arkitektura Client-Server
� Zakonisht ndahet ne 3 nivele (3 tiers)� Interface (nje pjese ne client nje pjese ne
server)� Processing (pak klient, shumica ne server)� Data storage (zakonisht vetem server)
� Menyra te ndryshme per te ndare tedhenat/funkisonet.
� P.sh. E-commerce Website tipik (browser + http server + Database Server).
� Thin & Thick Clients. � Disa modele client-server
� Multiple server, single server, decentralized/centrelized systems etj
112
“Thin” Clients
� Procesimi ne ‘client side’ eshteshume i limituar
� Puna me e madhe kryhet ne server, perfshi ketu edhe njepjese te formatimit te UI (p.shJSP, ASP)
� Ndonjehere ka nevoje per bandwidth me te larte ne rrjet.
� Shembuj: Web browser, telnet
113
“Thick” Client
� UI dhe nje pjese e procesimitbehet ne “Client side”.
� Nje pjese e procesimit kryhetne server.
� I pershtatshme per volum tevogel ne rrjet (bandwidth tevogel)
� Shembuj:java applets, ATM machine, virtual environment client.
114
Dizajni i Arkitektures
� Identifikimi i programeve/proceseve qe nevojiten.
� Identifiko pjesen hardwerike (PC,server, networking etj).
� Percakto cili program exekutohet ne cilenmakine.
� Kontrollo nese arkitektura suporton kerkesatjofunksionale dhe ato funksionale. � Keni kerkese jofunksionale si me poshte:
• koha e regjistrimit transaksioni <=2 sec
• koha e maximale e gjenerimit te nje raporti eshte 10 sec. (si te behet validimi/kontrollimi?)
115
Video Library System UML deployment diagram
116
Application Architecture
� Data processing Application� Applikacione qe procesojne te dhenat ne
grup( in batches), ndonjehere edhe pa nderhyrjen e perdoruesit.
� Transaction processing application� “Data centered application” qe procesojne
kerkesat e perdoruesve dhe update-ojneinformacionin ne DB te sistemit.
� Event processing application� Aplikacione ku aktivitetet e sistemin varen
nga interpretimi i ngjarjeve qe vijne ngamjedisi i sistemit.
117
Tipet e applikacioneve –shembuj
� Data processing systems
� Sistemi i faturimit;
� Sistemi i rrogave.
� Transaction processing systems
� E-commerce systems;
� Sistemi i rezervimeve;
� Sistemi i financave(kontabiliteti)
� Event processing systems
� Word processors;
� Real-time systems;
118
Input/output Data processing
119
Transaction processing system
120
Object-Oriented
� Object Oriented Analysis OOA
� Object Oriented Design-OOD
� Object Oriented Programming –OOP
� OOA, OOD dhe OOP jane tenderlidhura me njera tjetren porndryshojne.
121
Object Oriented Analysis
� Modelimi i kerkesave ne kuptimin e objekteve dhesherbimeve qe ato ofrojne
� OOA eshte (pretendon te jete) me ‘natyral’� Me evoluimin e sistemit, funksionet (proceset) kane
tendence te ndryshojne ndersa Objektet kanetendence te mbeten te pandryshuar.
� Modeli i strukturuar i analizes (DFD) do te dale jashte perdorimit, ndersa OO model JO
� Ne OOA theksohet rendesia e mire definuar e lidhjes se objekteve (ku ne DFD kemi mungese teketij informacioni)
122
Object Oriented Design
� Objected jane nje forme abstrakte e jetes se perditshme ose entitete te sistemit.(p.shperson,student, karrige etj)
� Objektet jane te pavaruara dhe perfaqesojne njeinstance te prezantimit te informacionit
� Funksionaliteti i sistemit shprehet ne terminsherbimet e objektit (Object services)
� Objektet komunikojne nepermjet te mesazheve
� Objektet mund te jene te distribuara dhe mund teegzekutohen ne menyre sekuenciale apo paralele
123
OO Design
Pse behet dizajn i Software?� Pse dizajnohet projekti i nje ndertese para se ajo te ndertohet?
� Cka eshte OO Design?
� OO design eshte nje nga metodologjite me te perdorura per software dizajn!?! (pretendohet)
� Ne OOD fillohet me analizimin e entiteteve te botes reale qeekzistojne.
� Pastaj shtohen atributet dhe sjellja per cdo entitet.
� Hapat kryesor ne OO Design
� Shpreh entitetet ne Klasa dhe objekte
� Bej lidhjen e klasave
� Analizo te gjitha veprimet qe nje objekt mund te kryeje me njeobjekt tjeter
124
Cka eshte nje Object?
� Nje objekt eshte nje entitet qe ka gjendje(state), atribute dhe funksionalitete(services)
� P.sh Nje person ka emer dhe numer personal
� Atributet ruhen ne variabla
� Funksionaliteti ruhet ne metoda class System
PERSON
# Adressa: char
+ Emri: TEXT
- Nr_perosnal: int
+ han() : boolean
# vrapon() : float
Functionality (method)
Attributes
125
Classes (Klasat)
� Nje pershkrim i nje Objekti quhet Class
� Person eshte nje class e cila mund te kete atributet
� Emri
� Adresa
� Dhe mund te kete funksionalitet
� Vrapon
� Ha (ushqim)
� Ne slide paraprak ne tham qe Person eshteObject?????
� Objekti eshte nje instance e nje klase
class System
PERSON
# Adressa: char
+ Emri: TEXT
- Nr_perosnal: int
+ han() : boolean
# vrapon() : float
126
Identifikimi i Objekteve
� Pjesa me e veshtire gjate dizajnit OO eshte identifikimi i objekteve
� Nuk ka nje “formule magjike” per identifikimin e Objekteve. Ajombeshtetet ne aftesi dhe eksperiencesi dhe ekperiencen e fushes ngadizajneret e sistemit.
� Identifikimi i Objekteve eshte njeproces iterativ.
127
Qasjet ne identifikimin e objekteve
� Perdor metoden gramatikore te gjuhesnatyrale te pershkrimit te problemit. � Emrat � Objekte� Foljet � Metoda
� Bazo identifikimin ne gjerat e prekshme ne “application domain”.
� Perdor qasjen “sjellje” (cka ben) per teidentifikuar objektet bazuar ne sjellje.
� Perdor analizen e bazuar ne skenare. Objektet, atributet dhe metodat ne cdoskenar identifikohen.
128
Weather station description
� weather station is a package of software controlled instruments which collects data, performs some data processing and transmits this data for further processing. The instruments include air and ground thermometers, an anemometer, a wind vane, a barometer and a rain gauge. Data is collected periodically.
� When a command is issued to transmit the weather data, the weather station processes and summarises the collected data. The summarised data is transmitted to the mapping computer when a request is received.
129
Weather station-USE Case
Lexo me shume ne liber fq. 324 Pershkrimin e plote dhe skenaret
130
Objektet klasa
131
Per te mbajtur mend…
� Ç’ka eshte nje objekt?
� Ç’ka eshte nje klase?
� Differenca ne mes klases dhe Objektit
� Ç’ka eshte OOA, OOD.
132
Class Diagrams
� Diagrami i Klasave pershkruan tipet e objekteve ne sistem dhe lloje te ndryshme telidhjeve statike (static relationship) ne mestyre.
� Permbledhje
� Perspectives: Conceptual, Specification, Implementation
� Attributes, Operations and Methods.
� Associations, Navigability, Aggregation, Composition, Association Classes.
� Generalization, Interfaces, Abstract Classes
133
134
Nga Use cases ne Class Diagram
uc Us e Ca s e V ie w
P oros ia
K lie nti
poros ia
Ne ke m i kl i e n te q e p o ro si si n p ro d u kte t to n a .
Ne i d a l l o j m e kl i e n te t f i rm a n g a kl i e n te t p ri va t, se p se f i rm a t p a g u a jn e
n je h e re n e m u a j n d e rsa kl i e n te t p ri va t d u h e t te p a ra p a g u a jn e p o ro si te .
Ne d e sh i ro j m e q e p o ro si te te ra d h i te n sip a s p ro d u kte ve
Cd o l i n j e d u h e t te ke te sa si n e d h e cm i m i n p e r cd o p ro d u kt.
135
Shembull: Porosia -Association
class Class M odel
Porosia Klienti
* 1
u c U s e C a s e V ie w
p o r o s ia
• N e k e m i k l ie n te q e p o r o s is in p r o d u k te t to n a .N e i d a l l o j m e kl i e n te t f i rm a n g a kl i e n te t p ri v a t , se p se f i rm a t p a g u a j n e
n j e h e re n e m u a j n d e rsa kl i e n te t p ri v a t d u h e t te p a ra p a g u a j n e p o ro si te .
N e d e sh i ro j m e q e p o ro si te te ra d h i te n si p a s p ro d u kte v e
C d o l i n j e d u h e t te ke te sa si n e d h e c m i m i n p e r c d o p ro d u kt .
Association Multiplicity
136
Shembull:Porosia-Generalization c la s s Cla s s M ode l
P oros ia Klie nti
Klie nt P riv a tKlie nt FIRM
* 1
uc U s e C a s e V ie w
poros ia
Ne ke m i kl i e n te q e p o ro si si n p ro d u kte t to n a .
Ne i da llo j m e k l ie n te t firm a nga k lie n te t p riv a t, s e ps e firm a t pa gua j ne nj e he re ne m ua j nde rs a k lie n te t pr iv a t duhe t te pa ra pa gua j ne poros ite .
Ne d e sh i ro jm e q e p o ro si te te ra d h i te n si p a s p ro d u kte ve
Cd o l i n j e d u h e t te ke te sa si n e d h e cm im in p e r cd o p ro d u kt.
Generalization
137
More association
Porosia Klienti
Klient Priv atKlient FIRMLinja e porosive Produkt
* 1
*
1
* 1
p o ro s ia
N e ke m i kl i e n te q e p o ro si si n p ro d u kte t to n a .
N e i d a l l o j m e kl i e n te t f i rm a n g a kl i e n te t p ri v a t , se p se f i rm a t p a g u a j n e
n j e h e re n e m u a j n d e rsa kl i e n te t p ri v a t d u h e t t e p a ra p a g u a j n e p o ro si te .
N e d e s h ir o j m e q e p o r o s ite te r a d h ite n s ip a s p r o d u k te v eC d o l in j e d u h e t te k e te s a s in e d h e c m im in p e r c d o p ro d u k t.
138
Porosia–Attributes & Operations
Klienti
- Adresa
- Emri
+ Klasifikimi_kredise()
Porosia
- Cmimi: Currency
- Data e pranimit
- EshtePpregaditur
- number: String
+ Close()
+ Dergoj()
Attributes
Operations
porosia
Ne kemi kliente qe porosisin produktet tona.
Ne i dallojme klientet firma nga klientet privat, sepse firmat paguajne
njehere ne muaj ndersa klientet privat duhet te parapaguajne porosite me
credit card
Ne deshirojme qe porosite te radhiten sipas produkteve
Cdo linje duhet te kete sasine dhe cmimin per cdo produkt.
139
Porosia-DIagrami i klases
Porosia
- Cmimi: Currency
- Data e pranimit
- EshteParapaguarr
- number: String
+ Close()
+ Dergoj()
Klienti
- Adresa
- Emri
+ Klasifikimi_kredise()
Klient Privat
- Credit_card: int
Klient FIRM
- Klasifikimi_kredise: int
- Kontak_Person: char
- Limiti_kredise: int
+ Fatura_muajit() : int
Linja e porosive
- Cmimi: float
- Sasia: int
Produkt
«Pre-condition»
{Nese Porosia.klienti.kalsifikimi_kredise eshte i "KEQ" atehehere
Porosia.Eshte_parapaguar duhet te jete "TRUE"}
* 1
*
1
* 1
140
Perspektivat
Jane tre perspektiva qe mund t’i perdorni gjate vizatimit teClass Diagrams;
� Conceptual� Ne menyre konceptuale paraqitet klasa.� Ofron gjuhe indipendente te implementimit
� Specification � Reprezanton interface te software� Implementimi eshte I fshehur
� Implementation � Klasat reale te perdorura ne gjuhe programimi� Lidhet direkt me implementimin
141
Class - Vizibiliteti
+ public, mund te shifet nga cdoklase tjeter
# protected, mund te shifetvetem nga nen-clasat
- private, shifet vetem nga kjoklase
Porosia
- Cmimi: Currency
+ Data e pranimit
+ EshteParapaguarr
- /number: String
# TEST: Boolean
+ Close()
+ Dergoj()
+ test() : Integer
142
Relacionet ne mes Klasave
�Association
�Aggregation
�Composition
�Association Classes
�Generalization
143
Associations
� Associations reprezentojne lidhjen ne mes instancave te klasave.
� C’do Asociacion ka dy role qe mundte emerohen.
� Multipliciteti: 1; *;2..4; 2,4;24
RoliRoli
Personi Kompania
+Punesohet
*
+Puneson
1
144
Associations-Navigability
� Asociacionet binare
� Te dy klasat e njofin njera tjetren
� Asociacionet unare
� Klienti nuk mund te tregoje cfareporosie ka bere
Personi Kompania
+Punesohet
*
+Puneson
1
Porosia Klienti
* 1
145
Aggregation� Agregation eshte PJES E (part of)
Relacionit.
� P.sh. “Regjioni eshte pjese e shtetit”
� A eshte nje kompani aggregation per punetoret e vet apo eshte njeasociacion ne mes punetoreve te tij?
S h te t i R e g j i o n i
A u to m j e t i
D y e r t
D r i ta r e t
Specifikohet me nje diamant te zbrazetnga ana e pjesespermbajtese
146
Composition � Kompozicioni eshte nje version me i
forte i agregacionit
� Klasa perberese varet nga klasapermbajtese. Nese vdes klasapermbajtese vdes edhe klasa perberese.
S hte pia Dhom a
K lie nti LLoga riaSpecifikohet me nje diamant te ZInga ana e pjesespermbajtese
147
Association Classes
� Penetoret punesohen nga kompaniaper nje periudhe te caktuar.
� Pyetje: Atributi Periudhe ne cilenklase vendoset.
� Associtions classes ju lejojne temodeloni asociacionet me klasa.
Personi Kom pania
Puna
+ Pe riud ha: in t
* 1
148
Generalization
� Inheritance/Trashigimia
� Superklasa -Gjerat e perbashketa qe kane disaklasa.
� Sub klasa – diferencatndahen ne nenklasa
Klienti
- Adresa
- Emri
+ Klasifikimi_kredise()
Klient Privat
- Credit_card: int
Klient FIRM
- Klasifikimi_kredise: int
- Kontak_Person: char
- Limiti_kredise: int
+ Fatura_muaji t() : int
Super klasa
Nen Klasat
149
UML Class diagram
DVD Movie VHS Movie Video Game
Rental Item
Rental Invoice
1..*1
Customer
Checkout Screen
0..1
1
Simple
Association
Class
Abstract
Class
Simple
Aggregation
Generalization
Composition
Multiplicity
Source: University of Washington
150
Ushtrime
� Nga ciftet e meposhtme dallo klasen ngaobjekti i nje klase?
1. Superhero, superman klas: superhero, objekt: superman
2. Hashim, Person
3. Gazete, Koha
4. Bajram, Feste
151
Ushtrim 2
� Listo disa atribute dhe operacione tecilat mund te definohen per klasen e quajtur “Takim” qe reprezanton njetakim biznesi?
Atributet: data, koha,lokacioni,qellimi
Operacionet: cakto, cancel, “setters & getters” per cdo atribut{p.sh set_time(), get time() }
152
Ushtrim 3
Nje kompani ka departamente. Departamentetmund te gjenden ne nje ose disa zyra tekompanise(lokacione).
Nje zyre luan rolin e zyres Qendrore.
C’do departament ka menaxherin e vet i cilinjekohesisht eshte edhe punetor.
Detyra juaj eshte te ndertoni nje diagram klasave duke perfshire te gjithe elementet qe juduhen.
153
Kompania
- Emri: char
+ Get_name() : void
+ set_nam e() : void
Departamenti
- Em ri_Dep: string
+ get() : void
+ set() : void
ZYRA
- Adresa: int
Zyra Qendrore
Punetori
- Emri: string
- T itul l i : char
+ get() : void
+ set() : void
+menaxhohet nga 1
+M enaxhon 1 1..*
1
+gjindet ne
*
+i takon
*
154
Ushtrim 4� Movie Shop
Te dizajnohet nje diagram klase per sistemin "movie shop" nepermejt te cilit perdoruesit mund te bejne porosine e filmave ne dyqan, te kerkoje/shfletoje ne katalogun e dyqanit dhe te anetarsohen/regjistrohen. Cdo anetar qeregjistrohet merr edhe karten e tij rimbushese.
Vetem anetaret e regjistruar lejohen te marrin filma me qera me karten e tyre. Vlera ne karte update-ohet gjateqiramarrjes se filmave.
Filmat mund te blihen nga perdoruesit dhe anetaret.
Filmat porositen edhe kur nuk jane ne ne dispozicion.
155
Perdoruesi
- Emri : char
- Mbiemri: char
+ Anetaresohu() : void
Porosia
- Data: int
- Titull i: char
+ Get_credit() : void
+ Set_Credit() : void
SHOP
- Emri_Dyqanit: int
Kataogu
- total_filma: int
Filmi
- Titulli: int
FIlm Qera
- Cmimi: int
- Gjendja: byte
+ I_Kthyer() : void
+ I_marre_me Qera() : void
Blej FILM
- Cmimi: int
+ gjendja: int
+ Blej() : void
+ Porosit() : void
CARD
- number: int
+ get() : void
+ set() : void
Anetari
+ C'antaresohu() : void
1
Ben
1..* *
Behet
1
Shfleton
1
zoteron
1
*
leshohet
1 1
1..*
*
1..
0..1
Merr me qera
0..*
156
Ushtrim 5
Te krijohet nje diagram i klases i thjeshtesuar per regjistrin e klaseve shkollore. (pa atribute dhe metoda) Çdo klas e shkolles perbehet prej jo me shume se 25 studenteve. Ç’do klase ka kujdestarin e klases qe eshte njeri prejmesuesve. Gjithashtu ç’do klase ka nje nxenes kryesor qeperfaqeson klasen- kryetari i klases. E gjithe klasa meson lendet e njejta(brenda kohes se caktuar te javes) perveq gjuheve te huaja(disa mesojnefrengjisht, disa anglisht)Mesuesi mund te mbaje disa lende. Nxenesi gjate semestrit merr note parciale dhe note finale nga cdo lende, per me teper nxenesi notohet edhe per sjelllje.
157
Klasa Nxenes
- Emri: string
- Mbiemri: string
Nota
Mesuesi
Lendet
- lenda: string
- ore_ne_jave: string
Grupet e Gjueve
Gjuet e Huaja
nota per lenden Nota per sjelljen
Nota Parciale Nota Finale
0..*
kryetari i klases
1
1..25
0..*
Kujdestar klase
1 1
1..*
0..*
mesojne
1..*
1
mesojne
0..1
1 Merr note
0..*
1
0..*
158
Detyre Shtepie 6
� Nga Diagrami i Klases ne slide-in Pasues (“Universe of Discourse: UNN Information System (UNN-IS)”) tepershkruhet Problemi i kerkesave duke lexuardiagramin.
159
Class Diagram
Ref: Advanced Database (CM036) –Lecture, Object Oriented Database(I)
160
Intentionally left Blank
161
ERD
Entity relationship Diagram
Entity Relationship Diagram Entity Relationship Diagram
ERDERDIntroduction
�Dizajnimi Konceptual I DB
�Cka eshte ERD?
�Chen and crow’s foot simbolet
�Entity, relationships,attributes
�Identifikuesit, kardinaliteti
�Lidhjet binare 1:M, 1:1,M:N te ilustruara me shembuj
�Modality – Optional Vs Mandatory
�Detyre shtepie
163
Cka eshte dizajnim konceptualbazes se te dhenave?
� Process I pershkrimit te te dhenave, lidhjeve ne mes te dhenave dhe‘konstraints’(kufizimet) qe kane te dhenat.
� Pas analizes- Merr te gjitha informacionet e detajuara dhe mundohu te kuptosh si janete lidhura te dhenat
� Fokusi duhet te jete ne te dhenat dhe jo ne proceset.
� Rezultati i nje dizajnimi konceptual te njeDB eshte ‘Conceptual Data Model’
164
Mbledhja e informacionit per modelim konceptual te tedhenave
� Dy perspektiva
� Top-down (Nga larte-poshte)• Modeli perfitohet nga nje njohje e thelle dhe e
detajuar e biznesit.
� Bottom-up (Nga poshte-larte)• Modeli perftohet duke rishikuar specifikacionet e
biznesit dhe dokumentet.(p.sh duke shikuar Indexinsi dokument modelojme nje entitet INDEX me tegjitha detajet qe ka indexi)
165
Entity-Relationship (ER) Modeling
� ER Modeling eshte nje qasje nga larte-poshte ne dizajnimin e database.
� Entity Relationship (ER) Diagram� Prezantim I detajuar logjik i entiteve, lidhjeve dhe te dhenave te krijuara,
ruajtura dhe te perdoruara nga nje organizate apo biznes. � Entitetet zakonisht pasqyrojne te dhena te ngjajshme te informacionit. P.sh
Entitetit student(ID, emer, mbiemer,ditelindje..)
� Tre konsrtuktet kryesore te nje ERD Diagram� Entitiy� Relationships� Attributes
� Perdoren disa lloje simbolesh per ER modeling� Chen Model � Crow’s Foot Model� Information Enginering(IE)� Etj
166
Emri Entitetit Shprehje foljoreqe tregon lidhjen
Emri Atributit
Emri I Atributit osekarakteristikat e nje entiteti
Lidhja ne mesinstancave te njeapo me shumeentiteteve
Person, vend, objekt, ngjarjeper te cilat te dhenat duhet temirembahen
Pasqyron nje grup objektesh ne boten reale qe ndajnekarakteristikat e njejta
Chen Notation
167
Ndjek/Regjistron
Emri
Entitetit
EntityEntity AttributeAttribute
Emri entitetit
Lista e
atributeve
RelationshipRelationship
Shprehje foljoreqe tregonlidhjen ne mesentiteve
Crow’s Foot Notation
Student
ID
EmerMbiemer
Ditelinja
…
Fakulteti
dega
Emri fakAdresa
tel
…
168
Entity
� Person, vend apo ngjarje per te cilat duhette ruhen te dhenat.
� Shembuj entitetesh:� Person: PUNETOR, STUDENT, PACIENT� Vend: DYQAN, MAGAZINE� Objekt: MAKINE, PRODUKT, AUTOMJET� Ngjarje: SHITJE,REGJISTRIM, NDRYSHIM� Koncept: LLOGARI, DREJTIM FAKULTETI
� ‘Must be multiple occurrences’Nese nje firme ka vetem nje magazine a eshte
magazina Entitet? Mjeku duhet te ekziston ne menyre qe te caktohet nje
termin.
169
Attributes
� Informacioni qe ruhet per nje entitet
Shembull i atributeve te nje intiteti:
STUDENT: Student_ID, Student_Name,
Home_Address, Phone_Number
170
Identifiers-Identifikuesit
� Nje ose me shume atribute mund tesherbejne si identifikues te nje Entiteti.
� Shembull: studenti mund teidentifikohet nga student_ID. Gjithashtustudenti mund te identifikohej ngakombinimi i emrit dhe mbiemrit. Candidate key
� Nje Identifikues mund te jete “artificial’, siq eshte krijimi i ID number.
171
Relationships
� Relacioni apo lidhja ne mes entiteteve
� Entiteti i pare ne Lidhje eshte parent entity; entiteti i dyte ne Lidhje quhetchild entity
� Lidhjet duhet te emrohen me emrafoljor(active verb names)
� Lidhja eshte gjithmone e dyanshme
172
Shembull
Autori Libri
Emri Relacionit:
Shkruan/shkruhet
Nje autor Shkruan nje ose me shume libra
Nje liber mund te shkruhet nga nje ose me shume autor
Shenim:
Autor dhe Liber janeEMRA(noun)
Shkruan eshtefolje(verb)
173
Cardinality
� Kardinaliteti
� Numri minimal apo maksimal i instancave te nje entiteti A qe mund telidhet me cdo instance te entitetit B.
• one – to – one (1:1)
• one – to – many(1:M)
• many – to –many(M:N)
174
Modality-Optionality
� Modality Specifikon nese nje instance duhet te egzistoje apo mund temungoje ne nje lidhje te entiteteve
� NOT NULL (mandatory)
� NULL (optional) Optionality
Cardinality
175
Shembull Cardinality(1)
Profesor Lendaligjeron
Profesor Lendaligjeron
Profesori Ligjeron lenden OSELenda Ligjerohet nga Profesori
Sa? Sa lende? Sa profesor?
Sa? Sa lende? Sa profesor?
176
Shembull Cardinality(1)
Profesor Lenda
ligjeron
(1,1) (1,4)
Cardinality
177
Simbolet ne Lidhje
� Chen Model simbolet
� 1 pasqyron one.
� M pasqyron many
� Crow’s Foot simbolet
1
M
many
One
One or many
Mandatory one , nenkupton (1,1)
Zero or many
178
Lidhja Binare(1:M)
� One to many : Piktor Piktur
Pikturon
Relacioni One to many ne mes Piktorit dhe piktures
179
Lidhja Binare(1:1)
� Nje instance e vetme ne nje entiteteshte e lidhur me vetem nje instance te nje entiteti tjeter
� Ka indikacione qe te dy entitetet mundte shkrihen (jo gjithmone)
� Ndodh shume rralle ne nje ER model
Professor DepartmentUdheheq
Lidhja ne mes profesorit dhe departamentit
180
181
Lidhja Binare(M:N)� Kur nje instance e nje entitetit lidhet me shume instanca te entitetit
tjeter dhe anasjelltas.
� Duhet te ‘shmangen’ keto lloj lidhje sepse cojne ne te dhena teteperta (data redundancy )
� M:N lidhja nuk mund te perkthehet ne menyre direkte ne DB relacionale.
� Mund te implementohet duke shkeputur lidhjen M:N ne dy lidhje1:M
� Bridge Entity• Perdoret per te lidhur entitetet(tabelat) qe jane ne lidhje M:N• Struktura Bridge entity perfshin TE PAKTEN identifikuesit (PK) te entiteteve
qe lidhen nepermjet bridge entity.
182
Student Lenda
Ndjek/ndiqet
M:N Lidhja ne mes Studentit dhe lendeve
Hashim
Luan
Soft Engineering
Programim ne WWW
Analize Funksionale
183
Implementim i Gabuar
Kodi LendesStudent ID Klasa Koha Profesoriprog001 999 103 12:00 7653
ing082 888 202 16:00 3294ing082 777 202 13:00 3294
Student ID ST_name Kodi Lendes
999 Hashim prog001
888 Luan ing082
777 prakash ing082
888 Luan prog001
PK(student_id dhe kodi I Lendes)
PK(kodi I Lendes dhe student ID)
184
Bridge Entity
Student Lenda
Student Lenda
Ndjek
Regjistron
Bridge Entity: Nga M:N lidhje ne DY 1:M Lidhje
185
Student ID ST_name999 Hashim
888 Luan777 prakash
888 Luan
K od i L e nd esS tud en t ID No ta
p rog 00 1 9 9 9 7
in g0 82 8 8 8 6in g0 82 7 7 7 10
K od i L e nd esK las a K o h a P ro fe s or ip rog 00 1 1 0 3 12 :00 7 6 53
in g0 82 2 0 2 16 :00 3 2 94
in g0 82 2 0 2 13 :00 3 2 94
PK(kodi lendes student Id)
186
Mandatory VS Optional/ NULL VS Not NULL
Profesori LandaLigjeron
Nje profesor mund te ligjeron 0 ose me shume Lende.
Lenda mund te ligjerohen nga nje dhe vetem nje profesor
OptionalOptionalMandatoryMandatory
(0,N)(1,1)
Profesori Lenda
(0,N) (1,1)
Ligjeron1
M
187
Gabim I zakonshem
Cfare te dhene deshirojme te ruajme ??
Ne jemi te interesuar te modelojme te dhenat
dhe JO proceset apo funksionet qe perdorin apo
gjenerojne keto te dhena.
Modelimi I proceseve apo funksioneve ne vend te modelimit te te dhenave
188
Ushtrim� Jeni punesuar nga nje menaxher I nje dyqani qe shet ski. Detyra juaj eshte qe
te modeloni nje ERD qe sherben per inventarizimin e artikujve, Klienteve dheQerave te produkteve.
� Dyqani i skive jep me qera SKI dhe SAJA klienteve te vet. Cdo artikull ka kodine vet unik inventarit qe e identifikon artikullin. Menaxheri deshiron te dije madhesine e artikullit si dhe cmimin e qerase per cdo artikull. Cdo artikull ne inventar klasifikohet ne baze te modelit. Cdo artikull i takon ekzaktesiht vetem nje modeli. Dyqani i skive mund te kete shume artikuj qe i takojne nje modeli te caktuar.
� Perveq invertarit menaxheri i dyqanit deshiron te ruaje informacione rreth Modeleve si numri I modelit, ngjyren e modelit, vitin e modelit. Cdo model klasifikohet sipas stilit(JUMP, Freestyle).
� Gjithashtu menaxheri deshiron te ruaj edhe te dhenat per klientet si emrin, mbiemrin, adresen, qytetin shtetin dhe e-mail. Klienti mund te marre me qera cdo artikull nese eshte ne inventar(ne dyqan). Nje artikull gjithashtu mund e merret me qera vetem nga nje klient ne te njejten kohe.
� Punetoreve te Dyqanit te skive do te ju duhet nje forme e qerase e cila do tregon emrin e klientit dhe adresen, daten e kthimit te artikullit, cmimin e qerase
189
Intentionally left blank
190
Zhvillimi i Software
� Rapid Software Development –RSD
� Agile methods
� Programimi Ekstrem –XP
� Reuse Development
� Programimi Gjenerik
� COTS (commercial of the shelf)
� Evoluimi i software
191
Rapid software development
� Zhvillimi bazohet ne ate menyre kuspecifikacioni i kerkesave dhe dizajni eshtenje proces Iterativ.
� Zhvillimi behet ne menyre incrementale derisa te arrihet ne nje version stabil.
� Perdoruesit evaluojne cdo zhvillim te ri (cdoincrement) the bejne propozime per ndryshimet te reja.
� Kerkesat jane dinamike, zhvillimi eshtedinamik dhe dorezimi i soft. eshte i shpejtedhe dinamik.
192
Nje proces iterativ zhvillimi
Validate
increment
Build system
increment
Specify system
increment
Design system
architectur e
Define system
deliverables
System
complete?Integrate
increment
Validate
system
Deliver final
systemYES
NO
193
Avantazhed e zhvillimitIterativ(perserites)
� Sherbim i shpejte ndaj klientit.
C’do shvillim i ri (increment) ka ne vetevetefunksionalitetet prioritare te klientit.
� Angazhimi i perdoruesit me sistemin.
Perdoruesit duhet te jene patjeter teinvolvuar gjate tere kohes, qe d.m.th sistemine shumicen e rasteve i ploteson kerkesat e perdoruesit si dhe perdoruesit jane me shume te perkushtuar ndaj sistemit.
194
Disavantazhet e ZhvillimitIterativ
� Problemet e menaxhimit
� Eshte e veshtire te gjykohet Progresi dhe Problemetsepse nuk ka dokumentacion qe demostron se ckaeshte bere.
� Qeshtjet kontraktuale me klient
� Probleme me validimin/testimin
� Pa nje specifikacion, kundrejt cilitspecifikacion/kerkese te validohet sistemi?
� Problemet e Mirembajtjes
� Ndryshimet e vazhdueshme e bejne te veshtiremirembajtjen e software
.
195
Metodat Agile (shkathet)
� Nje qasje e zhvillimit iterativ(RAD) � Pakenaqesite me zhpenzimet e teperta qe
perfshihen gjate fazes se dizajnit çuan ne krijimin e metodave Agile. Keto meda:� Fokusohen me shume ne KOD se ne dizajn.� Bazohen ne qasjen iterative te zhvillimit te
software� Jane te destinuara per nje dorezim te shpejt
te nje software qe punon.
� Metodat Agile ndoshta jane me te mira per biznese te vogla apo te mesme.
196
Programimi Ekstrem -XP� XP - Extreme Programming
� Metoda me e njohur dhe me e perdorur Agile
� Metoda ekstreme ka nje qasje ‘ekstreme’ tezhvillimit iterativ� Versionet e reja mund te zhvillohen disa here
ne dite.
� ‘Increments’ dorezohen tek klienti c’do 1 apo 2 jave;
� Te gjitha testet duhet te behen ne cdo version, dhe nje version pranohet vete nese te gjithatestet kane qene te sukseseshem.
� Klienti duhet te jete i involvuar me orar teplote.
197
Skenaret e kerkesave ne XP
� Ne XP, kerkesat e perdoruesve jane teshprehura si skenare apo tregime teperdoruesve.
� Keta skenare shkruhen ne ‘karta’ dhe grupi i zhvilluesve i ndan ato ne aktivitete(pune) per implementim.
Downloadimi i nje artikulli me pagese
Fillimisht e zgjedh artikullin qe deshiron nga lista e artikujve.Pastaj ju I thoni sistemit se si do te paguani per kete artikull, kjo mund
Te jete nepermjet anetaresimit, llogarise se kompanise apo credit card.
198
Cikli i leshimit ne pune te njesoftware ne XP
Break down
stories to tasks
Select user
stories for this
release
Plan release
Release
software
Evaluate
system
Develop/integrate/
test software
199
RAD- rapid application development
� Edhe pse metodat Agile kane marre shumevemendje vitet e fundit, Sistemet e Biznesitjane zhvilluar ne menyre iterative per shume vite duke perdorur tekniken RAD.
� Keto sisteme biznesi jane dizajnuar qe tezhvillojne “data-intensive” aplikacionebiznesi dhe mbeshteten ne programimindhe paraqitjen e informacionit nga baza e tedhenave.
200
Veglat RAD-rapid application development
� Database programming language
� Interface Generator
� Links to office applications
� Report generators
201
Mjedisi RAD
DB
programming
language
Interface
generator
Office
systems
Report
generator
Database management system
Rapid application
development environment
202
Software ReuseRipordorimi i software
� Ne shumicen e disciplinave inxhinjerike, sistemet dizajnohen duke kompozuarkomponente ekzistuese te cilat jane perdorurne sisteme te tjera.
� Inxhinjerimi i software ka qene me shume i fokusuar ne nje zhvillim origjinal.
� Viteve te fundit eshte vene re se per te arriturnje software me te mire, me shpejte dhe me kosto me te ulet duhet te adaptohen procesedizajni qe jane bazuar ne riperdoriminsistematik te software.
203
Baza e Riperdorimit
� Application system reuse
� Nje applikacion i tere, i plote mund te riperdoret, oseduke e inkorporuar pa asnje ndryshim ne nje sistemtjeter (COTS commercial off-the-shelf reuse) oseduke zhvilluar aplikacion te te njejtes familje.
� Component reuse
� Komponentet e nje aplikacioni nga nen-sistemet deritek nje objekt mund te riperdoren (CBSE*)
� Object and function reuse
� Komponentet softuerike qe implementojne nje objektte definuar mire ose nje funksion mund te riperdoren
*CBSE- component based software engineering
204
Faktoret qe duhet konsideruarpara Riperdorimit te Soft.
� Orari dhe koha e zhvillimit te software
� Jetegjatesia e pritshme e software.
� Njohurite dhe eksperienca e grupit tezhvillimit.
� Rendesia e software dhe kerkesat e tijjofunksionale.
� Platforma e ekzekutimit te software.
� Domain i aplikacionit
205
Koncepti Riperdorim
� Kur riperdoret nje program apo nje komponent juduhet te ndiqni vendimet qe jane marre ngazhvilluesi origjinal.
� Kjo mund te kufizoje mundesine per riperdorim� Megjithate, nje forme me abstrakte e riperdorimit
eshte vete koncepti ‘riperdorim’ ku nje qasje e vecante e nje problemi eshte i pershkruar per njeimplementim te pavarur dhe pastaj behetimplementimi.
� Dy qasjet kryesore te konceptit Riperdorim jane: � Mostra Dizajni (design patterns) � Programimi Gjenerik/prodhues. (Generative
programming)
206
Mostra Dizajni- Design Patterns
� Moster dizajni eshte nje zgjidhje e pergjithshme qe perseritet per njeproblem qe ndodh shpesh ne soft. Dizajn.
� Nuk eshte nje dizajn i perfunduar qemund te transformohet direkt ne kod.
� Eshte nje pershkrim ose template se si te zgjidhet nje problem i cili mund teperdoret ne shume situata.
207
Programimi Gjenerik
� Programi gjenerik perfshine riperdorimin e mostrave standarde dhe algoritmeve.
� Keta jane te perfshire ne Gjenerator the teparametrizuar nga komandat e perdoruesit. Programi pastaj gjenerohet
� Riperdorimi gjenerik eshte i mundur kurdomaini abstrakt dhe lidhja e tyre ne kod teekzekutueshem mund te identifikohen.
� Per krijimin dhe kontrollin e ketijabstraksioni perdoren Gjuhe specifike tedomain.
208
Llojet e Programeve Gjenerik
� Llojet e programeve gjenerik
� Gjenerator aplikacionesh per procesim te tedhenave per biznese.
� Gjeneratoret e kodit ne CASE tools.
� Riperdorimi i programeve gjenerik eshte shume i shpejte dhe me kosto shume te ulet, porzbatueshmeria eshte shume e limituar.
� Bug Free!!??
� Provoni nje shembull programimi gjenerik - Iron Speed (www.ironspeed.com)
209
Riperdorimi gjate Gjenerimitte programit
210
MVC-Model View Controller
� MVC eshte nje moster dizajni(designpattern) shume e perdorur per GUI.
� E njejta e dhene e shfaqur ne forma tendryshme.
� models per mirembajtjen e te dhenave
� views per shfaqjen e te dhenave
� controllers per trajtimin(handling) e ngjarjeve te cilat afektojne modelin apoviews
211
MVC- Si punon
212
COTS- Commercial Off-The-Shelf systems
� Sistemet COTS jane sisteme tekompletuara te cilat ofrojne API per integrim.
(API -Application Programming Interface).
� Ndertimi i sistemeve te medha duke integruar sisteme COTS eshte njestrategji e zbatueshme dhe me benefit per disa sisteme sic jane p.sh E-Comerceapplicionet.
213
E-procurement system
Client
Web browser E-mail system
Server
E-commerce
systemOrdering and
invoicing system
E-mail system
Adaptor
Adaptor
214
Software -Linja Produkti
� Software ne formen e linjave te produktit janeaplikacione me funksionalitet gjenerik te cilatmund te adaptohen dhe konfigurohen per perdorim.
� Adaptimet mund te jene:� Konfigurimi i komponenteve dhe sistemit� Shtimi i nje komponenti ne sistem� Zgjedhja e komponenteve ekzistues nga librarija
e komponenteve� Modifikimi i nje komponenti per te permbushur
kerkesat e reja.
215
Evolucioni I Software
Ndryshimet ne software jane te paevitueshme
� Dalin kerkesa te reja duke u perdorur sistemi
� Mjedisi i biznesit ndryshon
� Gabimet (errors) duhet te rregullohen
� Paisje te reja shtohen ne sistem
� Performanca ose besueshmeria duhet tepermiresohet etj.
� Problemi kryesor i organizatave eshte implementimidhe menaxhimi I ndryshimeve ne softuerat ekzistues.
� Te analizohet procesi I evoluimit te software gjateprocesit te zhvillimit.
216
Kosto zhvillimit/mirembajtjes
0 50 100 150 200 250 300 350 400 450 500
System 1
System 2
Development costs Maintenance costs
$
217
Procesi i evoluimit tesoftware
Release
planning
Change
implementa tion
System
release
Impact
analysis
Change
requests
Platform
adaptation
System
enhancementFault repair