Software
Engineering
Ne kete prezantim ka materjale dhe figura te marra nga libri Ian Sommerville, Software Engineering, Addison Wesley;
Per Lenden
Profesor: Armend Bilalli [email protected] Literatura
Libri 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,
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. nga
kompani te ndryshme.
Anetaret e grupeve te dergohen me e-mail ne [email protected]
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)
5
Qellimi
Te mesoni hapat kryesor te zhvillimit te nje software.
Te mesoni dhe praktikoni punen ne grup ne projekte te
zhvillimit 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 dhe
biznesit 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 dhe
implementimi me te mire per nje problem programimi.
Te jeni ne gjendje te identifikoni burimet potenciale te
rreziqeve qe do te mund te conin ne deshtimin e nje projekti softverik.
Software Engineering
Software engineering merret me teorite, metodat
dhe veglat e punes (tools) per nje zhvillim
profesional te nje software dhe cka eshte me e
rendesishme; me nje kosto efektive te zhvillimit te tij.
Shumica e sistemeve ne diten e sotme kontrollohen
nga software.
Shpenzimet ne software, reprezantojne nje pjese te
mire te prodhimit te brendshem bruto ne ekonomite e shteteve te zhvilluara.
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?
Ç’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”.
9
Ç’ka eshte Inxhinjerimi i
softuare?
Eshte nje discipline inxhinjerike e cila merret me te gjitha
aspektet e prodhimit te nje software, nga faza fillestare e specifikacionit deri tek mirembajta e sistemit pasi te kete
shkuar ne perdorim.
“Inxhinjerike”. -Nje Inxhinier softueri, duhet te adoptoje ne
menyre sistematike metodat dhe teknikat me te
pershtateshme per zgjidhjen e nje problemi duke patur parasysh kufizimet operacionale dhe buxhetore.
“Te gjitha aspektet e prodhimit te nje software”(menaxhimi i
Procesi Softuerik (Software
process)
Temat Kresore
Modelet e procesit softuerik
Perseritja e Proceseve
Aktivitetet e Procesit
The Rational Unified Process
Computer-aided software
11
Procesi Softuerik
Me proces softuerik kuptojme një grup te
aktiviteteve qe kryhen per te zhvilluar nje software.
Aktivitet kryesore te nje procesi softuerik
jane:
Specifikacioni i softuare; Dizajni dhe implementimi; Validimi i software;
Specifikacioni i Softuare
Specifikacioni I softuare eshte nje proces I
kuptimit dhe percaktimit te sherbimeve qe duhet te ofroje sistemi si dhe percaktimit te kufizimeve te sistemit.
Fazat e detajuara te specifikacionit te
software jane:
Analiza e fizibilitetit;
Analiza dhe percaktimi kerkesave; Specifikimi I kerkesave;
13
Specifikacioni I Softuare
Analiza e
fizibilitetit percaktimi kerkesaveAnaliza dhe
Raporti I Fizibilitetit Dokumenti i Kerkesave te software Klasifikimi Kerkesave Validimi I Kerkesave
Dizajni dhe implementimi
Eshte nje proces i konvertimit te specifkacionit
te sistemit ne sistem te egzekutueshem.
Software design
Dizajnimi i software ne baze te specifikacionit;
Implementimi
Perkthimi i struktures se dizajnit ne program te
15
Procesi I dizajnimit te
software
Verifikimi dhe Validimi i
Software
Verifikimi dhe Validimi (V & V) sherben per
te vertetuar se sistemi eshte konform
specifikacionit dhe permbush kerkesat e klientit.
Perfshin kontrollin dhe rishikimin e sistemit
me metoda te ndryshme testimi.
Testimi i sistemit behet me shembuj testimi,
zakonisht me te dhena reale qe procesohen nga sistemi.
17
Procesi i Testimit
Testimi i Komponenteve Testimi i Sistemit Pranimi i TestimitEvoluimi i software
Software ne vetevete duhet te jete fleksibil
dhe te kete mundesi per ndryshime.
Ashtu Sic ndryshojne kerkesat, me
ndryshimin e kerkesave te biznesit,
software i cili suporton kete biznes duhet te evoluoje dhe te jete ne gjendje te ndryshoje.
Jane rritur rastet kur vendoset te blihet
software i ri, ne vend qe te ndryshohet apo pershatet ai ekzistues. PSE?
19
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
21
Mangesite e Waterfall Model
Gjate procesit softuerik eshte veshtire te behen
ndryshime te parametrave nese eshte duke u punuar ne nje faze te procesit. Nje faze duhet te perfundoje para se te kalohet ne fazen tjeter.
Ky model eshte i perdorshem vetem atehere kur
kerkesat jane kuptuar dhe percaktuar ne fillim dhe ndryshimet gjate zhvillimit jane te vogla(shume
rralle ndodh kjo)
Ky model zakonisht perdoret ne sisteme te medha,
ku zakonisht zhvillimi behet ne vende te ndryshme ne te njejten kohe.
23
Modeli Evolutiv
Ne kete model objektivi eshte qe te
punohet se bashku me klientin derisa
te arrihet versioni perfundimtar i
sistemit nga nje pershkrim fillestar
specifikacionit.
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 te
mesme, per pjese te sistemeve te medha si dhe per sisteme me jetegjatesi te shkurter.
Mangesite
Sistemet zakonisht jane te strukturuar dobet. Mungon dokumentacioni i zhvillimit te
CBSE- Component-based SE
Ne kete model perdoren sistemet
27
Cilat jane Metodat e Soft
Eng?
Nje metode e inxjinjerimit te software eshte
nje qasje e strukturuar e zhvillimit te
software, 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
Cka eshte CASE?
Shkurtesa CASE qendron per Computer-Aided Software
Engineering.
Mbulon programe te ndryshme, qe perdoren per te
suportuar aktivitetet e zhvillimit te procesit softwerik(analiz kerkesave,modelimi, debugging, testimi)
Veglat CASE mund te perfshijne edhe gjenerimin e kodit,
gjenerimin e dokumentacionit, gjenerimin e dizajneve te ndryshme etj.
29
Cilat jane atributet kryesore te
nje 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 dhe
nevojat 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 nga
Detyre Shtepie
Cili eshte dallimi ne mes shkencave
kompjuterike dhe software
engineering?
Cili eshte dallimi ne mes software
engineering dhe system engineering?
31
Procesi Softuerik
Cilat ishin aktivitetet kryesore te nje
procesi softuerik?
Specifikacioni i softuare;
Dizajni dhe implementimi;
Validimi i software;
33
Specifikacioni i Softuare
Analiza e
fizibilitetit percaktimi kerkesaveAnaliza dhe
Raporti I Fizibilitetit Dokumeti Kerkesave te software Klasifikimi I Kerkesave Validimi I Kerkesave
Analiza e Fizibilitetit
Nepermjet analizes se Fizibilitetit percaktohet/vendoset nese duhet te zhvillohet nje software.
Analiza e fizibilitetit duhet te jepe pergjigje ne disa pyetje kryesore.
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?
35
Analiza dhe percaktimi
Kerkesave
Nepermjet analizes dhe percaktimit te kerkesave behet
IDENTIFIKIMI I KERKESAVE
Inxhinjeri/at softuerik se bashku me klientin dhe perdoruesit
e 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 te
sistemit.
Ne kete proces perfshihen te gjithe palet e
interesuara(stakeholders) sic jane: perdoruesit, menaxheret, ekspertet e fushave specifike etj.
Veshtiresite e analizes se
kerkesave
Zakonisht palet e interesuara nuk e
dine realisht se qka deshirojne.
Kerkesat e paleve te ndryshme bien
ne kundershtim me njera tjetren.
Politikat sociale dhe organizative
mund te ndikojne ne analizen e
kerkesave.
Ndryshimi dinamik i kerkesave gjate
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 sistemeve ekzistuese, 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
Takimet me klientin-Intervistat
Identifikimi I kerkesave arrihet nepermjet pyetjeve qe I
behen paleve te interesuara.
Intervistat me pyetjet e parapregaditura dhe
Diskutimet e hapura ne takime te zgjeruara – Brainstorming
Intervistuesit duhet “te dijne” te degjojne palet e
interesuara.
Intervistuesit duhet te jene ne gjendje te kuptojne
kerkesen dhe te japin propozime te ndryshme dhe jo te presim pergjigje ne pyetjet “Qka deshiron”
39
Skenaret
Skenaret jane shembuj real se si mund
te perdoret sistemi.
Nepermjet nje skenari pershkruhet nje
interaksion i caktuar ne sistem.
Skenaret duhet te pershkruajne
Nje pershkrim te gjendjes se fillimit;
Nje pershkrim te rrjedhes normale te
ngjarjeve;
Nje pershkrim se cfare mund te shkoje
keq;
Nje pershkrim te gjendjes se skenarit
Shembull Skenari
Skenari: Terheqja e mjeteve me Visa card
Pershkrimi Nepermjet ketij skenari paraqitet interaksioni ne mes
klientit dhe bankomatit. Klienti realizon terheqjen e mjeteve me nje kartele Visa Card; Terheqja realizohet pas verifikimit te
karteles si dhe limitit ditor te lejuar per terheqje.
1. Poseduesi i karteles VISA vendos kartelen ne lexuesin
e 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 PIN
5. 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.
41
Shembull Skenari
(vazhdim)
8. ATM kerkon nga poseduesi I karteles shumen qe
ai/ajo deshiron te terheqe
9. Poseduesi I karteles zgjedh shumen qe deshiron te
terheqe.
10. ATM kontrollon vleren kundrejt shumes maksimale
te lejuar
11. ATM pyet poseduesin e karteles nese ai deshiron
fature
12. Poseduesi I karteles kerkon fature.
13. ATM I kthen kartelen poseduesit
14. Poseduesi I karteles merr kartelen
15. ATM I jep parate e kerkuara dhe faturen
Modelimi i skenareve
Vetem pikat kryesore te detajuara
me 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 prodhuar nje rezultat per nje aktor.
Use case pershkruajne sjelljen e pritur
“WHAT” dhe jo metoden egzakte si behet “HOW”
Use case krijohen bazuar ne kerkesat
funksionale te identifikuara.
Perdoren ne fazen fillestare per identifikimin e
Use Case Diagrams
Use Case
Actors
Relationships
45
Use Case (UC)
Definicioni
Use case pershkruan punen(task) qe nje
perdorues mund te kryej duke perdorur sistemin
Pershkrimi
Pershkruan kerkesat e sistemit
Nje pune e pershkruar nga UC perbehet nga
aktivitetet (activities)
UC mund te kete disa variacione qe quhen
Skenare (scenarios)
Nuk duhet te perdoren per te nxjerre
Hapi i pare
Identifiko aktoret
Identifiko Use Case! UC me se lehte
identifikohen duke percaktuar qka
duhet te bejne aktoret
Krijo listen e Use case, duke
specifikuar edhe prioritetin
Use C ase De sc ription
UC -1 K ontrol lo Bila ncin P rio rit y: 2
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
49
Aktoret-Actors
Definicioni
Aktori eshte nje entitet I jashtem I cili
eshte I perfshire ne bashkeveprim me
sistemin e pershkruar ne UC
Pershkrimi
Aktoret=rolet
Aktoret mund te jene edhe sisteme te
jashtme
Simboli
VISA Sistemi IAutorizimeve Klienti
Gjeneralizimi I aktoreve
Nenpunes
Nenpunes operativ Nenpunes Adminsitrativ
Gjeneralizimi: Nenpunesi mund te kryeje gjithcka cka 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 aktivitete
te cilat duhet te suportohen gjate fazes
se zhvillimit te software.
Use Case Diagram(2)
Simboli
Aktori 2 Aktori 1 UC 3 UC 2 UC 1 Emri I Diagramit53
Shembull – Bankomati(ATM)
ATM ofron sherbimet e meposhtme:
1. Ofron terheqjen e te hollave per te gjithe
poseduesit e kartelave nepermejt lexuesit te karteles dhe makines automatike me monedhe
2. Raport per gjendjen e llogarise, keshit dhe sherbimit te deponimit ne bankomat per klientet e bankes qe posedojne nje kartele bankare.
3. Te gjitha transaksionet jane te procesuara 4. ATM duhet te rimbushet me monedha kohe
55
Diagrami i permiresuar per
ATM
Me shume Aktore
Nese poseduesi I karteles eshte VISA athere SA VISA duhet te kontaktohet Nese poseduesi I karteles eshte I bankes(qe I takon bankomati)
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 zgjeruar
varet 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 jo
ne mes nje aktori dhe UC
UC Baze Included UC <<Include>> UC Baze UC e zgjeruar <<extend>> Super UC SUB UC Gjeneralizimi
Shembull i nje INCLUDE
Relationship
59
Shembull i nje <<EXTEND>>
Relationship
…….
8. ATM kerkon nga poseduesi I karteles shumen qe ai/ajo deshiron te terheqe Extension 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
Shembull i nje Gjeneralizimi
Relationship te UC
61
Ushtrim- “Drive Test”
Pershkrimi i problemit: Nje kompani e cila merret
me shitjen e autoveturave iu jep mundesi klienteve qe te kene mundesine te provojne automjete qe jane te interesuar t’i blejne.
Meqenese interesimi i klienteve eshte i madh
kompanise iu eshte dashur qe tju kerkoje klienteve qe 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”,
63
Te plotesohet UC diagrami i
meposhtem-Ushtrim ne Klase
Sistemi i Administrimit te
kurseve
Student: update te dhenat personale,
shef rezultatet e provimit, shfleton
detajet 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 dhenat
65
UCD per sistemin e admin.
kurseve
Shmebull 1-POS
Keni shembulli e nje dyqani apo te nje pike te shitjes (point of sale –POS Terminal) . Nje pike shitje zakonisht ka nje kompjuter, barcode, peshore, printer, POS terminal qe
eshte i lidhur me sistemin e procesimit te kartes se kreditit etj. Nje klient ben pagesen per mallrat e blere me kartele nepermjet POS terminalit.
Identifikoni aktoret?
Identifikoni Use case?
Vizatoni nje Use Case Diagram?
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)
69
Nga
ora e kaluar….
Analiza e kerkesave te software
Percaktimi i kerkesave dhe veshtersite qe
hasen gjate percaktimit te tyre.
Aktivitetet (identifikimi, klasifikimi, caktimi i
prioriteteve..)
Takimi me klientet(intervistat) Analiza e skenareve (use case) Use case Diagramet dhe shembuj
Tipet e Kerkesave
Kerkesat e Perdoruesve (user requirements)
Deklarata ne gjuhen natyrale plus diagrame te
sherbimeve qe ofron sistemi si dhe kufizimet operative. Shkruhen per konsumator.
Kerkesat e Sistemit (system requirements)
Nje dokument i strukturuar qe percakaton ne menyre te
hollesishme pershkrimin e funksioneve te sistemit, sherbimet dhe kufizimet operacionale. Percakton se cfare duhet te implementohet dhe mund te jete pjese e
71
Definimi dhe Specifikimi
Definimi i kerkeses se perdoruesit (User Requirement Definition)
Nje Software i cili i mundeson klienteteve qe te nderrojne
PIN 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.
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
73
Kerkesat Funksionale
Kerkesat Funksionale pershkruajne
funksionalitetin ose sherbimet e sistemit.
Kerkesat Funksionale te perdoruesve jane
kerkesa globale qe tregojne ne vija te trasha cfare duhet te beje sistemi.
Kerkesat Funksionale te sistemit duhet te
pershkruajne sherbimet dhe funksionet e sistemit ne detaje.
Dokumentimi i kerkesave funksionale duhet
Shembuj te kerkesave
funksionale
Perdoruesi duhet te kete mundesi te kerkoje
klientat 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 perdoruesi mund te kontrolloje statusin e porosise.
75
Kerkesat Jo-funksionale
Kerkesat Jo-funksionale zakonisht nuk varen
nga 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 gjuhes
se programimit dhe CASE metodave.
Kerkesat jo-funksionale mund te jene me
77
Klasifikimi i kerkesave
Jo-funksionale
Kerkesat e Produktit
Kerkese e cila specifikon qe produkti i kryer duhet te sillet
ne nje menyre te caktuar p.sh koha e ekzekutimit, besueshmeria etj
Kerkesat organizative
Kerkesa qe dalin si rezultat i politikave dhe procedurave
organizative p.sh standardet e proceseve qe perdoren, implementimi i kerkesave etj
Kerkesat e jashtme
Kerkesa qe dalin si rezultat I faktoreve te jashtem. P.sh
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 jete
konform standardit ISO XXX
Kerkesat e jashtme
Sistemi nuk duhet te lejoje asnje rrjedhje te
inormacionit personal te klienteve, perveq emrit 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 definohet
duket perdorur modelet e sistemit
(Use case, Data flow digrams, activity
diagram etj)
Kerkesat dhe Dizajni
Kerkesat – Ç’ka duhet te beje sistemi
Dizajni – Si duhet te realizohet(behet)
kerkesa.
Ne praktike Kerkesa dhe Dizajni jane
81
Specifikacioni i Nderfaqesit (
Interface Specification)
Shumica e sistemeve duhet te operojne
me sisteme te tjere, specifikacioni i
nderfaqesit duhet te jete gjithashtu pjese
e kerkesave.
Nderfaqesit procedural;
Struktura e te dhenave qe shkembehet;
Riprezantimi i te dhenave
Dokumenti i kerkesave te
perdoruesit
83
Struktura e dokumentit te
Kerkesave
Hyrje
Fjalori(Glossary)
Definimi I kerkesave te perdoruesit Arkitektura e sistemit
Specifikacioni I kerkesave te sistemit Modeli I sistemit
Evoluimi I Sitemit
Anekset (Appendices)
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 operon
biznesi.
Data flow diagramet perdoren per te
treguar procesetproceset e e biznesit dhebiznesit tete dhenat qedhenat
kalojne ne mes tyre.(proceseve)
Meqenese data flow diagramet tregojne
levizjen e te dhenave ne mes proceseve, keta diagram quhen zakonisht “Process model”.
Physical vs Logical Model
Modelet logjike te proceseve
pershkrujne proceset pa treguar se si
ato kryhen
Modelete Fizike
(physical model)
perfshijne edhe informacione si
implementohet nje proces.
87
Data Flow Diagrams
Process
Data Store
Source/Sink or External
Data Flow
Context Diagram
Nje pamje gjenerale e nje Sistemi.
Tregon procesin e pergjithshem te
biznesit vetem si nje proces i vetem
Qellimi i nje sistemi organizativ qe
tregon kufijte e sistemit, entitetet e
jashtme qe nderveprojne me sistemin
dhe te dhenat kryesore qe shkembejne
89 Context diagram Order system
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 kryesore
qe e perbejne sistemin.
Tregon si rrjedh informacioni(te
dhenat) ne mes proceseve.
Shtohen ne diagram “data stores”
Kur zgjerohet context diagrami ne
DFD level-0, te gjitha lidhjet qe hyne
dhe dalin duhet te ruhen (Balancimi)
Level 1 -DFD
Tregon te gjitha proceset qe perbejne
nje proces te vetem ne diagramin e
nivelit 0.
Sherben per te treguar ne detaje
permbajtjen e procesit te nje niveli me
te larte.
Diagrami i nevelit 1, mund te mos
93 1.0 Fill Order 2.0 Create Invoice 3.0 Apply Payment SALES
REP BANK ACCOUNTING
CUSTOMER WAREHOUSE Order Order Reject Notice Picking List Accounts Receivable D1 Invoice Invoice Invoice Detail Payment Detail Payment
Commission Bank Deposit Cash Receipts Entry Completed
Order
Level-0 DFD Order system
Dekompozimi dhe Balancimi
Dekompozimi
Nje process iterativ i ndarjes se pershkrimit te
sistemit 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 te
rrjedhes se te dhenave eshte i njejte gjate kalimit 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
Vini re: Kemi te njejtat hyrje dhe dalje me diagramin e meparshem.
97
Krijimi i Data flow
diagrameve
Hapat gjeneral
1. Krijo “context” diagramin preliminar
2. Identifiko use cases, p.sh menyrat se si
predoruesit e perdorin sistemin
3. Krijo DFD fragmente per cdo Use case 4. Krijo Level 0 diagramin nga fragmentet. 5. Dekompozo ne Level 1,2..
6. Kthehu ne hapin e pare dhe rishiko per
gabime.
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:
99
DF-Gabimet e Zakonshme
a b a b Duhet nje proces qe te kete kalim te dhenash ne mes dy entiteteve 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 DataStore3Shembull 1:
Kur klienti ben nje porosi nepermjet website, sistemi
kontrollon nese artikulli eshte ne stok, njofton klientin me statusin e artikullit dhe gjeneron kerkesen per porosi ne magazine e cila mbush porosine. Kur
porosia eshte derguar(nisur) klienti faturohet. Sistemi gjithastu prodhon raporte te ndryshme si raporte te inventarit per kontabilitet.
1. VIzato nje context diagram per kete sistem porosie
nepermjet website
101
103
Ushtrim 2: ATM- Context
Diagrami
ATM Screen ATM Printer dhensi i parave T astiera Lexuaesi i Karteles ATM Sistemi menu/mesazhe fatura e klientit para ne cash komandat nga klienti Te dhenat e karteles D.SH. Te ndertohet DFD Niveli 0Ushtrime ne Laborator
1. Ne EA, te vizatohet shembulli 1 i sistemit te
porosive.
2. Te ndertohet nje DFD, nepermjet te cilit paraqitet
aplikimi per pune ne nje organizate per nje pozite te caktuar. Sistemi njofton aplikantin mbi pranimin e dokumenteve. Aplikanti i pranuar regjistrohet ne
Payroll pas evaluimit te te gjitha aplikanteve. Detajet mbi poziten merren nga menaxheri, te cilit i nevoitet punetori.
105
Procesi Softuerik
Cilat ishin aktivitetet kryesore te nje
procesi softuerik?
Specifikacioni i softuare;
Dizajni
Dizajni
dhe
dhe
implementimi
implementimi
;
;
Validimi i software;
107
DESIGN
Pas perfundimit te analizes se
kerkesave/specifikacionit duhet te
percaktojme si keto kerkesa duhet te
implementohen - Design.
Temat qe do te mbulohen
Software Architecture Design.
Application architectures.
Object-Oriented Analysis (OOA)
Object-Oriented Design (OOD)
Static OOD
Dynamic OOD
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
Software Architecture
C’ka duhet te konsiderojme:
Programet dhe proceset te cilat e perbejne
sistemin.
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
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 te
dhenat/funkisonet.
P.sh. E-commerce Website tipik (browser
+ http server + Database Server).
Thin & Thick Clients.
Disa modele client-server
Multiple server, single server,
“Thin” Clients
Procesimi ne ‘client side’ eshte
shume i limituar
Puna me e madhe kryhet ne
server, perfshi ketu edhe nje
pjese te formatimit te UI (p.sh
JSP, ASP)
Ndonjehere ka nevoje per
113
“Thick” Client
UI dhe nje pjese e procesimit
behet ne “Client side”.
Nje pjese e procesimit kryhet
ne server.
I pershtatshme per volum te
vogel ne rrjet (bandwidth te vogel)
Shembuj:java applets, ATM
machine, virtual environment client.
Dizajni i Arkitektures
Identifikimi i programeve/proceseve qe nevojiten. Identifiko pjesen hardwerike (PC,server,
networking etj).
Percakto cili program exekutohet ne cilen
makine.
Kontrollo nese arkitektura suporton kerkesat
jofunksionale dhe ato funksionale.
Keni kerkese jofunksionale si me poshte:
• koha e regjistrimit transaksioni <=2 sec
115
Video Library System
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-ojne informacionin ne DB te sistemit.
Event processing application
Aplikacione ku aktivitetet e sistemin varen
nga interpretimi i ngjarjeve qe vijne nga mjedisi 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;
119
Transaction processing
system
Object-Oriented
Object Oriented Analysis OOA
Object Oriented Design-OOD
Object Oriented Programming –OOP
OOA, OOD dhe OOP jane te
nderlidhura me njera tjetren por
ndryshojne.
121
Object Oriented Analysis
Modelimi i kerkesave ne kuptimin e objekteve dhe
sherbimeve qe ato ofrojne
OOA eshte (pretendon te jete) me ‘natyral’
Me evoluimin e sistemit, funksionet (proceset) kane
tendence te ndryshojne ndersa Objektet kane tendence 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 te ketij informacioni)
Object Oriented Design
Objected jane nje forme abstrakte e jetes se
perditshme ose entitete te sistemit.(p.sh
person,student, karrige etj)
Objektet jane te pavaruara dhe perfaqesojne nje
instance te prezantimit te informacionit
Funksionaliteti i sistemit shprehet ne termin
sherbimet e objektit (Object services)
Objektet komunikojne nepermjet te mesazheve Objektet mund te jene te distribuara dhe mund te
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 qe
ekzistojne.
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 nje
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 SystemPERSON # Adressa: char + Emri: T EXT - Nr_perosnal: int + han() : boolean # vrapon() : float 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 eshte
Object?????
Objekti eshte nje instance e nje klase
class System PERSON # Adressa: char + Emri: T EXT - Nr_perosnal: int + han() : boolean # vrapon() : float
Identifikimi i Objekteve
Pjesa me e veshtire gjate dizajnit OO
eshte identifikimi i objekteve
Nuk ka nje “formule magjike” per
identifikimin e Objekteve. Ajo
mbeshtetet ne aftesi dhe eksperience
si dhe ekperiencen e fushes nga
dizajneret e sistemit.
Identifikimi i Objekteve eshte nje
127
Qasjet ne identifikimin e
objekteve
Perdor metoden gramatikore te gjuhes
natyrale te pershkrimit te problemit.
Emrat Objekte Foljet Metoda
Bazo identifikimin ne gjerat e prekshme ne
“application domain”.
Perdor qasjen “sjellje” (cka ben) per te
identifikuar objektet bazuar ne sjellje.
Perdor analizen e bazuar ne skenare.
Objektet, atributet dhe metodat ne cdo skenar identifikohen.
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
131
Per te mbajtur mend…
Ç’ka eshte nje objekt?
Ç’ka eshte nje klase?
Differenca ne mes klases dhe Objektit
Ç’ka eshte OOA, OOD.
Class Diagrams
Diagrami i Klasave pershkruan tipet e
objekteve ne sistem dhe lloje te ndryshme te lidhjeve statike (static relationship) ne mes
tyre.
Permbledhje
Perspectives: Conceptual, Specification,
Implementation
Attributes, Operations and Methods.
Associations, Navigability, Aggregation,
Composition, Association Classes.
Nga Use cases ne Class
Diagram
u c U s e C a s e V ie w P o r o s ia K lie n ti p o r o 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 fi rm a n g a kl i e n te t p ri va t, se p se fi 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 va 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 cm i m i n p e r cd o p ro d u kt.135
Shembull: Porosia -Association
c la s s Cla s s M ode l
P oros ia Klie nti
* 1 u c U s e C a s e V i e w p o r o s i a • N e k e m i k l i e n te q e p o r o s i s i n 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 t e t f i rm a n g a kl i e n t e 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 t e 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 t e . N e d e sh i ro j m e q e p o ro si t e t e ra d h i t e n si p a s p ro d u kt e v e C d o l i n j e d u h e t t e ke t e 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
Shembull:Porosia-Generalization
c la s s C la s s M o d e l P o ro s i a K lie n ti K lie n t P ri v a t K li e n t F I R M * 1 u c U s e C a s e V ie w 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 kt e t to n a .N e i d a llo j m e k l ie n te t fir m a n g a k li e n te t p riv a t, s e p s e fi 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 rs a k lie n te t p r iv a t d u h e t te p a ra p a g u a j n e p o r o s i te .
137
More association
Porosia Klienti
Klient Priv at Klient FIRM
Linj a e porosiv e Produkt
* 1 * 1 * 1 p o r o s i a N e ke m i kl i e n t e q e p o ro si si n p ro d u kt e t t o n a . N e i d a l l o j m e kl i e n t e t f i rm a n g a kl i e n t e 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 t e 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 t e . N e d e s h i r o j m e q e p o r o s i te te r a d h i te n s i p a s p r o d u k te v e C d o l i n j e d u h e t te k e te s a s i n e d h e c m i m i n p e r c d o p r o d u k t.
Porosia–Attributes & Operations
Klienti - Adresa - Emri + Klasifikimi_kredise() Porosia - Cmimi: Currency - Data e pranimit - EshtePpregaditur - number: String + Close() + Dergoj() Attributes Operations porosiaNe 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
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
Perspektivat
Jane tre perspektiva qe mund t’i perdorni gjate vizatimit te Class 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 cdo
klase tjeter
#
protected, mund te shifet
vetem nga nen-clasat
-
private, shifet vetem nga kjo
klase
Porosia - Cmimi: Currency + Data e pranimit + EshteParapaguarr - /number: String # TEST: Boolean + Close() + Dergoj() + test() : IntegerRelacionet 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 mund
te emerohen.
Multipliciteti: 1; *;2..4; 2,4;24
Roli Roli Personi Kompania +Punesohet * +Puneson 1Associations-Navigability
Asociacionet binare
Te dy klasat e njofin njera tjetren
Asociacionet unare
Klienti nuk mund te tregoje cfare
porosie ka bere
Personi Kompania +Punesohet * +Puneson 1 Porosia Klienti145
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 nje
asociacion ne mes punetoreve te tij?
S h t e t i R e g j i o n i
A u t o m j e t i
D y e r t
D r i t a r e t
Specifikohet me
nje diamant te zbrazet nga ana e pjeses
Composition
Kompozicioni eshte nje version me i
forte i agregacionit
Klasa perberese varet nga klasa
permbajtese. Nese vdes klasa
permbajtese vdes edhe klasa perberese.
S h te p i a D h o m a
K lie n ti L L o g a r i a
Specifikohet me nje diamant te ZI
147
Association Classes
Penetoret punesohen nga kompania
per nje periudhe te caktuar.
Pyetje: Atributi Periudhe ne cilen
klase vendoset.
Associtions classes ju lejojne te
modeloni asociacionet me klasa.
P e rs oni Kom pa nia
P una
+ P e ri u d h a : i n t
Generalization
Inheritance/Trashigimia
Superklasa -Gjerat e
perbashketa qe kane disa
klasa.
Sub klasa – diferencat
ndahen ne nenklasa
Klienti - Adresa - Emri + Klasifikimi_kredise() Klient Priv at - Credit_card: int Klient FIRM - Klasifikimi_kredise: int - Kontak_Person: char - Limiti_kredise: int + Fatura_muajit() : int Super klasa149
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
Ushtrime
Nga ciftet e meposhtme dallo klasen nga
objekti i nje klase?
1. Superhero, superman
klas: superhero, objekt: superman
2. Hashim, Person
3. Gazete, Koha
151
Ushtrim 2
Listo disa atribute dhe operacione te
cilat mund te definohen per klasen e
quajtur “Takim” qe reprezanton nje
takim biznesi?
Atributet: data, koha,lokacioni,qellimi
Operacionet: cakto, cancel, “setters &
getters” per cdo atribut{p.sh set_time(),
get time() }
Ushtrim 3
Nje kompani ka departamente. Departamentet mund te gjenden ne nje ose disa zyra te
kompanise(lokacione).
Nje zyre luan rolin e zyres Qendrore.
C’do departament ka menaxherin e vet i cili njekohesisht eshte edhe punetor.
Detyra juaj eshte te ndertoni nje diagram
153
Kompania
- Em ri: char
+ Get_nam e() : void + set_nam e() : void
Departamenti - Em ri _Dep: stri ng + get() : void + set() : voi d ZYRA - Adresa: i nt Zyra Qendrore Punetori - Em ri: stri ng - T itulli : char + get() : voi d + set() : void +m enaxhohet nga 1 +M enaxhon 1 1..* 1 +gjindet ne * +i takon *
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 qe regjistrohet 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 gjate qiramarrjes se filmave.
155 Perdoruesi - Emri : char - Mbiemri: char + Anetaresohu() : void Porosia - Data: int - Titulli: 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..*
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 prej
mesuesve. Gjithashtu ç’do klase ka nje nxenes kryesor qe perfaqeson klasen- kryetari i klases.
E gjithe klasa meson lendet e njejta(brenda kohes se caktuar te javes) perveq gjuheve te huaja(disa mesojne frengjisht, 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
157 Klasa Nxenes - Emri: string - Mbiemri: string Nota Mesuesi Lendet - lenda: string - ore_ne_jave: string Grupet e Gjuev e Gjuet e Huaja
nota per lenden Nota per sjellj en
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..*
Detyre Shtepie 6
Nga Diagrami i Klases ne slide-in Pasues (“Universe of
Discourse: UNN Information System (UNN-IS)”) te
pershkruhet Problemi i kerkesave duke lexuar diagramin.
159
Class Diagram
161
ERD
Entity Relationship Diagram
Entity Relationship Diagram
ERD
ERD
Introduction
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
163
Cka eshte dizajnim konceptual
bazes 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 jane te lidhura te dhenat
Fokusi duhet te jete ne te dhenat dhe jo ne
proceset.
Rezultati i nje dizajnimi konceptual te nje
Mbledhja e informacionit per
modelim konceptual te te
dhenave
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 Indexin si dokument modelojme nje entitet INDEX me te
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)
Emri Entitetit Shprehje foljore
qe tregon lidhjen Emri Atributit
Emri I Atributit ose karakteristikat e nje entiteti Lidhja ne mes instancave te nje apo me shume entiteteve
Person, vend, objekt, ngjarje per te cilat te dhenat duhet te mirembahen
Pasqyron nje grup objektesh ne Chen Notation
167 Ndjek/ Regjistron Emri Entitetit Entity
Entity AttributeAttribute Emri entitetit Lista e atributeve Relationship Relationship Shprehje foljore qe tregon lidhjen ne mes entiteve
Crow’s Foot Notation
Student ID Emer Mbiemer Ditelinja … Fakulteti dega Emri fak Adresa tel …
Entity
Person, vend apo ngjarje per te cilat duhet
te 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?
169
Attributes
Informacioni qe ruhet per nje entitet
Shembull i atributeve te nje intiteti:
STUDENT: Student_ID, Student_Name,
Identifiers-Identifikuesit
Nje ose me shume atribute mund te
sherbejne si
identifikues
te nje Entiteti.
Shembull: studenti mund te
identifikohet nga student_ID. Gjithashtu
studenti mund te identifikohej nga
kombinimi i emrit dhe mbiemrit.
Candidate key