• No results found

Software Engineering

N/A
N/A
Protected

Academic year: 2021

Share "Software Engineering"

Copied!
217
0
0

Loading.... (view fulltext now)

Full text

(1)

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 [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)

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]

(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)

(5)

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.

(6)

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)

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?

(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”.

(9)

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

(10)

Procesi Softuerik (Software

process)



Temat Kresore



Modelet e procesit softuerik



Perseritja e Proceseve



Aktivitetet e Procesit



The Rational Unified Process



Computer-aided software

(11)

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;

(12)

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)

13

Specifikacioni I Softuare

Analiza e

fizibilitetit percaktimi kerkesaveAnaliza dhe

Raporti I Fizibilitetit Dokumenti i Kerkesave te software Klasifikimi Kerkesave Validimi I Kerkesave

(14)

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)

15

Procesi I dizajnimit te

software

(16)

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)

17

Procesi i Testimit

Testimi i Komponenteve Testimi i Sistemit Pranimi i Testimit

(18)

Evoluimi 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)

19

(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

(21)

21

(22)

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)

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.

(24)
(25)

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

(26)

CBSE- Component-based SE



Ne kete model perdoren sistemet

(27)

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

(28)

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)

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

(30)

Detyre Shtepie



Cili eshte dallimi ne mes shkencave

kompjuterike dhe software

engineering?



Cili eshte dallimi ne mes software

engineering dhe system engineering?

(31)

31

(32)

Procesi Softuerik



Cilat ishin aktivitetet kryesore te nje

procesi softuerik?



Specifikacioni i softuare;



Dizajni dhe implementimi;



Validimi i software;

(33)

33

Specifikacioni i Softuare

Analiza e

fizibilitetit percaktimi kerkesaveAnaliza dhe

Raporti I Fizibilitetit Dokumeti Kerkesave te software Klasifikimi I Kerkesave Validimi I Kerkesave

(34)

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)

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.

(36)

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)

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

(38)

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)

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

(40)

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)

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

(42)

Modelimi i skenareve

Vetem pikat kryesore te detajuara

me nje shembull

UML Use Case

(43)

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

(44)

Use Case Diagrams



Use Case



Actors



Relationships

(45)

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

(46)

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)

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)

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 I

Autorizimeve Klienti

(50)

Gjeneralizimi I aktoreve

Nenpunes

Nenpunes operativ Nenpunes Adminsitrativ

Gjeneralizimi: Nenpunesi mund te kryeje gjithcka cka mund te kryeje nje nenpunes administrativ

(51)

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.

(52)

Use Case Diagram(2)



Simboli

Aktori 2 Aktori 1 UC 3 UC 2 UC 1 Emri I Diagramit

(53)

53

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

(54)
(55)

55

Diagrami i permiresuar per

ATM

(56)

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)

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

(58)

Shembull i nje INCLUDE

Relationship

(59)

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

(60)

Shembull i nje Gjeneralizimi

Relationship te UC

(61)

61

(62)

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)

63

Te plotesohet UC diagrami i

meposhtem-Ushtrim ne Klase

(64)

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)

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 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)

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)

(68)
(69)

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

(70)

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)

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.

(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

(73)

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

(74)

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)

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

(76)
(77)

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

(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 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)

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)

(80)

Kerkesat dhe Dizajni



Kerkesat – Ç’ka duhet te beje sistemi



Dizajni – Si duhet te realizohet(behet)

kerkesa.



Ne praktike Kerkesa dhe Dizajni jane

(81)

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

(82)

Dokumenti i kerkesave te

perdoruesit

(83)

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)

(84)
(85)

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”.

(86)

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)

87

Data Flow Diagrams

Process

Data Store

Source/Sink or External

Data Flow

(88)

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)

89 Context diagram Order 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)

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)

(92)

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)

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

(94)

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)

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.

(97)

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.

(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:

(99)

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 DataStore3

(100)

Shembull 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)

101

(102)
(103)

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 0

(104)

Ushtrime 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)

105

(106)

Procesi Softuerik



Cilat ishin aktivitetet kryesore te nje

procesi softuerik?



Specifikacioni i softuare;





Dizajni

Dizajni

dhe

dhe

implementimi

implementimi

;

;



Validimi i software;

(107)

107

DESIGN



Pas perfundimit te analizes se

kerkesave/specifikacionit duhet te

percaktojme si keto kerkesa duhet te

implementohen - Design.

(108)

Temat qe do te mbulohen



Software Architecture Design.



Application architectures.



Object-Oriented Analysis (OOA)



Object-Oriented Design (OOD)



Static OOD



Dynamic OOD

(109)

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

(110)

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)

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,

(112)

“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)

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.

(114)

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)

115

Video Library System

(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-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)

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)
(119)

119

Transaction processing

system

(120)

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)

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)

(122)

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)

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

(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: T EXT - Nr_perosnal: int + han() : boolean # vrapon() : float Attributes

(125)

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

(126)

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)

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.

(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)

129

Weather station-USE Case

(130)
(131)

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 te lidhjeve statike (static relationship) ne mes

tyre.

 Permbledhje

 Perspectives: Conceptual, Specification,

Implementation

 Attributes, Operations and Methods.

 Associations, Navigability, Aggregation,

Composition, Association Classes.

(133)
(134)

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)

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 aN 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

(136)

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)

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.

(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

(139)

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

(140)

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)

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() : Integer

(142)

Relacionet ne mes Klasave



Association



Aggregation



Composition



Association Classes



Generalization

(143)

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 1

(144)

Associations-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 Klienti

(145)

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 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

(146)

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)

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

(148)

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 klasa

(149)

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

(150)

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)

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() }

(152)

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)

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 *

(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 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)

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..*

(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 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)

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..*

(158)

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)

159

Class Diagram

(160)
(161)

161

ERD

(162)

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)

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

(164)

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)

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)

(166)

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)

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

(168)

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)

169

Attributes



Informacioni qe ruhet per nje entitet

Shembull i atributeve te nje intiteti:

STUDENT: Student_ID, Student_Name,

(170)

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



Nje Identifikues mund te jete “artificial’,

References

Related documents

In an effort to provide resources and support the teaching and learning process the Associate Superintendent required the benchmark middle schools to follow the district’s

Fuel supply system in petrol engines: Types of fuel feed systems, fuel tank, fuel pumps and fuel filters (types and construction), air filter types and

Cause High-layer software operation abnormal or board error, which results in frequent alarm reports. Handling Observe whether there are alarms on the board and isolate the

Governments Just as Cooperation Between Certs Is ...40 H6 – Confidence Building Measures Span Widely Across Polity Scores and Geographies ...40 CHAPTER 6: IDENTIFYING PATTERNS

In summary, the S40-E54 region of NS1 mimics the host FFAT motif and serves as the basis for interaction with the VAPA MSP domain based on the following findings: (i) the order

collected using semistructured interviews and analyzed with a focus on themes that could inform future decisions by Army senior leadership on the self-development of leaders, and

These values have the potential to strengthen cultural resilience and thus need to be internalized; and (2) there are various internalization efforts that have been