Software Engineering

217
Software Engineering Ne kete prezantim ka materjale dhe figura te marra nga libri Ian Sommerville, Software Engineering, Addison Wesley;

description

Software Engineering

Transcript of Software Engineering

Page 1: Software Engineering

Software Engineering

Ne kete prezantim ka materjale dhe figura te marra nga libri Ian Sommerville, Software Engineering, Addison Wesley;

Page 2: Software Engineering

2

Per Lenden

� Profesor: Armend Bilalli

[email protected]

� LiteraturaLibri kryesor: Ian Sommerville, Software Engineering, Addison Wesley; 8 edition (May 25, 2006).

-UML 2 for Dummies by Michael Jesse Chonoles and James A. Schardt

-.The Unified Modeling Language User Guide SECOND EDITION By Grady Booch, James Rumbaugh, Ivar Jacobson

Page 3: Software Engineering

3

Per Lenden

� Detyra e Kursit:

� Grupe nga 4-5 studente max.

� Grupet krijohen vullnetarisht.

� Prezantime ne faza te projektit.

� Evaluimi behet gjate gjithe kohes se kursit.

� Mund te gjeni edhe projekte konkrete reale. ngakompani te ndryshme.

� Anetaret e grupeve te dergohen me e-mail ne [email protected]

� Kollokviumi: (Java e 5-te)

Page 4: Software Engineering

4

Per Lenden

� Notimi:� Detyra e Kursit (Projekti) 20%� Kollokviumi 20%� Provimi Final 60%

� Shenim: � Pjesmarrja si anetar ne nje grup eshte i detyruar.� Pjesmarrja ne kollokvium eshte i detyruar.

(Mungesa nenkupton 20% me pak te notes perfundimtare)

� Nuk lejohet paraqitja e provimit pa kaluar detyren e kursit(Projektin).

Page 5: Software Engineering

5

Qellimi

� Te mesoni hapat kryesor te zhvillimit te nje software.

� Te mesoni dhe praktikoni punen ne grup ne projekte tezhvillimit te nje software perfshire menaxhimin.

� Te jeni ne gjendje ne menyre efektive te analizoni nje‘problem’ dhe te gjeni zgjidhjen me te mire.

� Te jeni ne gjendje te perktheni kerkesat e klientit dhebiznesit ne gjuhen e kompjuterit.

� Te jeni ne gjendje te krijoni class, object, use case, data flow, sequence diagrams, activity diagram ne UML.

� Te jeni ne gjendje te gjeni nje zgjidhje dizajni dheimplementimi me te mire per nje problem programimi.

� Te jeni ne gjendje te identifikoni burimet potenciale terreziqeve qe do te mund te conin ne deshtimin e nje projektisoftverik.

Page 6: Software Engineering

6

Software Engineering

� Software engineering merret me teorite, metodatdhe veglat e punes (tools) per nje zhvillimprofesional te nje software dhe cka eshte me e rendesishme; me nje kosto efektive te zhvillimit te tij.

� Shumica e sistemeve ne diten e sotme kontrollohennga software.

� Shpenzimet ne software, reprezantojne nje pjese temire te prodhimit te brendshem bruto ne ekonomitee shteteve te zhvilluara.

� Ekonimia e nje vendi te zhvilluar eshte e VARUR nga software

Page 7: Software Engineering

7

Pyetjet e Shpeshta-FAQs

� Ç’ka eshte software?� Ç’ka eshte software engineering?� Cili eshte dallimi mes shkencave

kompjuterike dhe software engineering?� Cili eshte dallimi ne mes software

engineering dhe system engineering?� Cilat jane atributet kryesore te nje software

te mire?� Ç’ka nenkuptojme me Proces Softwerik dhe

Model te procesit? � Etj

Page 8: Software Engineering

8

Ç’ka eshte Software? � Kod Programimi se bashku me dokumentacionin

percjelles si kerkesa, dizajni, manuali teknik dhe i perdoruesit etj.

� Software Gjenerik� Photoshop � Word� SQL Server

� Software specifik (customized)� Programe te Ndryshme financiare� Programi per regjistrimin e popullsise

� Dallimi esencial eshte-? “Specifikacioni”.

� Kohet e fundit te dy keto tipe soft. jane bashkuar, kukompanite zhvillojne nje software i cili me pas mund tepershtatet per nevoja te klientit(p.sh SAP)

Page 9: Software Engineering

9

Ç’ka eshte Inxhinjerimi i softuare?

� Eshte nje discipline inxhinjerike e cila merret me te gjithaaspektet e prodhimit te nje software, nga faza fillestare e specifikacionit deri tek mirembajta e sistemit pasi te keteshkuar ne perdorim.

� “Inxhinjerike”. -Nje Inxhinier softueri, duhet te adoptoje ne menyre sistematike metodat dhe teknikat me tepershtateshme per zgjidhjen e nje problemi duke paturparasysh kufizimet operacionale dhe buxhetore.

� “Te gjitha aspektet e prodhimit te nje software”(menaxhimi i projektit, veglat e zhvillimit, metodat dhe teorite,

Page 10: Software Engineering

10

Procesi Softuerik (Software process)

� Temat Kresore

� Modelet e procesit softuerik

� Perseritja e Proceseve

� Aktivitetet e Procesit

� The Rational Unified Process

� Computer-aided software engineering-CASE

Page 11: Software Engineering

11

Procesi Softuerik

� Me proces softuerik kuptojme një grup teaktiviteteve qe kryhen per te zhvilluar njesoftware.

� Aktivitet kryesore te nje procesi softuerikjane:

� Specifikacioni i softuare;

� Dizajni dhe implementimi;

� Validimi i software;

� Evoluimi i software (Evolution)

Page 12: Software Engineering

12

Specifikacioni i Softuare

� Specifikacioni I softuare eshte nje proces I kuptimit dhe percaktimit te sherbimeve qeduhet te ofroje sistemi si dhe percaktimit tekufizimeve te sistemit.

� Fazat e detajuara te specifikacionit tesoftware jane:� Analiza e fizibilitetit;

� Analiza dhe percaktimi kerkesave;

� Specifikimi I kerkesave;

� Validimi I kerkesave;

Page 13: Software Engineering

13

Specifikacioni I Softuare

Analiza e fizibilitetit

Analiza dhepercaktimi kerkesave

Raporti I Fizibilitetit

Dokumenti i Kerkesavete software

KlasifikimiKerkesave

Validimi I Kerkesave

Page 14: Software Engineering

14

Dizajni dhe implementimi

� Eshte nje proces i konvertimit te specifkacionitte sistemit ne sistem te egzekutueshem.

� Software design

� Dizajnimi i software ne baze te specifikacionit;

� Implementimi

� Perkthimi i struktures se dizajnit ne program teegzekutueshem;

Page 15: Software Engineering

15

Procesi I dizajnimit tesoftware

Page 16: Software Engineering

16

Verifikimi dhe Validimi i Software

� Verifikimi dhe Validimi (V & V) sherben per te vertetuar se sistemi eshte konformspecifikacionit dhe permbush kerkesat e klientit.

� Perfshin kontrollin dhe rishikimin e sistemitme metoda te ndryshme testimi.

� Testimi i sistemit behet me shembuj testimi, zakonisht me te dhena reale qe procesohennga sistemi.

Page 17: Software Engineering

17

Procesi i Testimit

Testimi i Komponenteve

Testimi i Sistemit

Pranimi i Testimit

Page 18: Software Engineering

18

Evoluimi i software

� Software ne vetevete duhet te jete fleksibildhe te kete mundesi per ndryshime.

� Ashtu Sic ndryshojne kerkesat, me ndryshimin e kerkesave te biznesit, software i cili suporton kete biznes duhet teevoluoje dhe te jete ne gjendje te ndryshoje.

� Jane rritur rastet kur vendoset te blihetsoftware i ri, ne vend qe te ndryshohet apopershatet ai ekzistues. PSE?

Page 19: Software Engineering

19

Evoluimi i Sitemit

Page 20: Software Engineering

20

Generic software process models

� Ç’ka eshte nje model i procesit softuerik?� Eshte nej prezantim I thjeshtesuar (apstrakt) I nje procesi

softuerik.� Nje menyre formale e prezantimit si operon biznesi

� The Waterfall model� Secila faze e procesit startohet ne menyre sekuenciale.

Nuk mund te filloje nje faze pa mbaruar ajo paraprake.

� Evolutionary development� Ne kete model mund te punohet paralelisht ne fazat e

procesit.

� Component-based software engineering� Sistemi ndertohet nga komponentet ekzistuese.

Page 21: Software Engineering

21

Waterfall model

Page 22: Software Engineering

22

Mangesite e Waterfall Model

� Gjate procesit softuerik eshte veshtire te behenndryshime te parametrave nese eshte duke u punuar ne nje faze te procesit. Nje faze duhet teperfundoje para se te kalohet ne fazen tjeter.

� Ky model eshte i perdorshem vetem atehere kurkerkesat jane kuptuar dhe percaktuar ne fillim dhendryshimet gjate zhvillimit jane te vogla(shumerralle ndodh kjo)

� Ky model zakonisht perdoret ne sisteme te medha, ku zakonisht zhvillimi behet ne vende te ndryshmene te njejten kohe.

Page 23: Software Engineering

23

Modeli Evolutiv

� Ne kete model objektivi eshte qe tepunohet se bashku me klientin derisate arrihet versioni perfundimtar i sistemit nga nje pershkrim fillestarspecifikacionit.

Page 24: Software Engineering

24

Zhvillimi Evolutiv

Page 25: Software Engineering

25

Zhvillimi Evolutiv

� Perparesite: � Shume shpejte i akseptueshem nga klienti,

sepse zhvillohet duke qene klienti aktiv me sistemin gjate tere kohes.

� Me efektiv ne prodhimin e nje software ne kohe me te shpejte.

� I aplikueshem per sisteme te vogla dhe temesme, per pjese te sistemeve te medha sidhe per sisteme me jetegjatesi te shkurter.

� Mangesite� Sistemet zakonisht jane te strukturuar dobet.� Mungon dokumentacioni i zhvillimit te

proceseve

Page 26: Software Engineering

26

CBSE- Component-based SE

� Ne kete model perdoren sistemetekzistuese dhe integrimi i tyre

Page 27: Software Engineering

27

Cilat jane Metodat e Soft Eng?

� Nje metode e inxjinjerimit te software eshtenje qasje e strukturuar e zhvillimit tesoftware, qellimi i se ciles eshte lehtesimi i zhvillimit te nje software.

� Metoda Structured Analysis(DeMarco 1978)

� OO, Object Oriented (Booch 1994)

� UML-unified modeling language (Booch and Rumbaught 1999)

Page 28: Software Engineering

28

Cka eshte CASE?

� Shkurtesa CASE qendron per Computer-Aided Software Engineering.

� Mbulon programe te ndryshme, qe perdoren per tesuportuar aktivitetet e zhvillimit te procesit softwerik(analizkerkesave,modelimi, debugging, testimi)

� Veglat CASE mund te perfshijne edhe gjenerimin e kodit, gjenerimin e dokumentacionit, gjenerimin e dizajneve tendryshme etj.

� Per me teper lexoni www.case-tools.org

Page 29: Software Engineering

29

Cilat jane atributet kryesore tenje software te mire?

Nje Software duhet te ofroje funksionalitetin dhe performancen e kerkuar tek perdoruesi dhe duhet te jete i mirembajtshem, i besueshem dhe i pranueshem

� Mirembajtshmeria

� Software duhet te zhvillohet per te plotesuar kerkesat dhenevojat qe ndryshojne me kohen

� Besueshmeria

� Software duhet te jete I besueshem;

� Efikasiteti

� Software nuk duhet te perdori resurset e sistemit pa nevoje

� Pranueshmeria

� Software duhet te jete i pranueshem dhe i kuptueshem ngaperdoruesit per te cilte eshte zhvilluar.

Page 30: Software Engineering

30

Detyre Shtepie

� Cili eshte dallimi ne mes shkencavekompjuterike dhe software engineering?

� Cili eshte dallimi ne mes software engineering dhe system engineering?

� Lexoni kapitullin 1,2,3 te librit kryesor.

Page 31: Software Engineering

31

Intentionally left blank

Page 32: Software Engineering

32

Procesi Softuerik

� Cilat ishin aktivitetet kryesore te njeprocesi softuerik?

� Specifikacioni i softuare;

� Dizajni dhe implementimi;

� Validimi i software;

� Evoluimi i software (Evolution)

Page 33: Software Engineering

33

Specifikacioni i Softuare

Analiza e fizibilitetit

Analiza dhepercaktimi kerkesave

Raporti I Fizibilitetit

DokumetiKerkesavete software

Klasifikimi I Kerkesave

Validimi I Kerkesave

Page 34: Software Engineering

34

Analiza e Fizibilitetit

Nepermjet analizes se Fizibilitetit percaktohet/vendoset neseduhet te zhvillohet nje software.

Analiza e fizibilitetit duhet te jepe pergjigje ne disa pyetjekryesore.

� A duhet te zhvillohet ky softuer?Pse?

� Cili eshte plani kohore?A mund te realizohet ne kohe?

� Sa eshte profiti?

� A duhet te investohet? ROI(return on investment)

� Cilat jane perfitimet e organizates?

� A mund te implementohet Projekti?

� A ka specifikacion te mirefillt te kerkesave?

� Kush duhet te beje Analizen e Fizibiliteti????

Page 35: Software Engineering

35

Analiza dhe percaktimiKerkesave

� Nepermjet analizes dhe percaktimit te kerkesave behetIDENTIFIKIMI I KERKESAVE

� Inxhinjeri/at softuerik se bashku me klientin dhe perdoruesite sistemit duhet te punojne per identifikimin e kerkesave.

� Nepermjet Analiza se kerkesave te software percaktohen

� Sherbimet/detyrat qe duhet te kryhen nga sistemi.

� Qellimi dhe caku qe duhet te arrihet nga sistemi.

� Kufizimet operacionale, funksionale dhe teknike tesistemit.

� Ne kete proces perfshihen te gjithe palet e interesuara(stakeholders) sic jane: perdoruesit, menaxheret, ekspertet e fushave specifike etj.

Page 36: Software Engineering

36

Veshtiresite e analizes se kerkesave

� Zakonisht palet e interesuara nuk e dine realisht se qka deshirojne.

� Kerkesat e paleve te ndryshme bienne kundershtim me njera tjetren.

� Politikat sociale dhe organizativemund te ndikojne ne analizen e kerkesave.

� Ndryshimi dinamik i kerkesave gjatefazes se analizes.

Page 37: Software Engineering

37

Aktivitetet gjate analizes se kerkesave

� Identifikimi I kerkesave� Bashkebisedimi me palet e interesuara per te identifikuar kerkesat

e tyre. � Behet mbledhja e informacionit per sistemin qe diskutohet dhe

sistemet ekzistuese� Mblidhen te gjitha burimet e informacionit, sic mund te

jene;dokumente te ndryshme, specifikacione te sistemeveekzistuese, manualet e ndryshme operative etj.

� Klasifikimi dhe organizimi i kerkesave

� Caktimi i Prioriteteve dhe Negociimi� Caktohen kerkesat sipas prioriteteve dhe negociohen kerkesat qe

kane konflikt njera me tjetren

� Dokumentimi I Kerkesave� Dokumentohet dhe percaktohet sakte cka deshiron klienti

Page 38: Software Engineering

38

Takimet me klientin-Intervistat

� Identifikimi I kerkesave arrihet nepermjet pyetjeve qe I behen paleve te interesuara.

� Intervistat me pyetjet e parapregaditura dheDiskutimet e hapura ne takime te zgjeruara –Brainstorming

� Intervistuesit duhet “te dijne” te degjojne palet e interesuara.

� Intervistuesit duhet te jene ne gjendje te kuptojnekerkesen dhe te japin propozime te ndryshme dhe jo tepresim pergjigje ne pyetjet “Qka deshiron”

� Gjithmone mbaj shenime

Page 39: Software Engineering

39

Skenaret

� Skenaret jane shembuj real se si mundte perdoret sistemi.

� Nepermjet nje skenari pershkruhet njeinteraksion i caktuar ne sistem.

� Skenaret duhet te pershkruajne

� Nje pershkrim te gjendjes se fillimit;

� Nje pershkrim te rrjedhes normale tengjarjeve;

� Nje pershkrim se cfare mund te shkojekeq;

� Nje pershkrim te gjendjes se skenaritne fund;

Page 40: Software Engineering

40

Shembull Skenari

Skenari: Terheqja e mjeteve me Visa cardPershkrimi Nepermjet ketij skenari paraqitet interaksioni ne mes

klientit dhe bankomatit. Klienti realizon terheqjen e mjeteve me nje kartele Visa Card; Terheqja realizohet pas verifikimit tekarteles si dhe limitit ditor te lejuar per terheqje.

1. Poseduesi i karteles VISA vendos kartelen ne lexuesine karteles.

2. ATM verifikon nese kartela e futur eshte VISA 3. ATM kerkon nga poseduesi I karteles te jape numrin

PIN.4. Poseduesi I karteles shtyp numrin PIN5. ATM kontrollon numrin e dhene PIN me ate qe eshte I

ruajtur ne kartele.6. ATM kerkon nje autorizim nga sistemi qendror VISA

per autorizim.7. Sistemi I autorizimit VISA konfirmon validitetin e

karteles dhe njofton per limitin maksimal ditor te lejuarper terheqje

Page 41: Software Engineering

41

Shembull Skenari(vazhdim)

8. ATM kerkon nga poseduesi I karteles shumen qeai/ajo deshiron te terheqe

9. Poseduesi I karteles zgjedh shumen qe deshiron teterheqe.

10. ATM kontrollon vleren kundrejt shumes maksimalete lejuar

11. ATM pyet poseduesin e karteles nese ai deshironfature

12. Poseduesi I karteles kerkon fature.13. ATM I kthen kartelen poseduesit14. Poseduesi I karteles merr kartelen15. ATM I jep parate e kerkuara dhe faturen16. Poseduesi merr parate dhe faturen

Page 42: Software Engineering

Modelimi i skenareve

Vetem pikat kryesore te detajuarame nje shembull

UML Use Case

Page 43: Software Engineering

43

Why UML Use Case?

� USE Case� Nje grup skenaresh te nderlidhura nga aktor

dhe qellime te njejta.� Nje pershkrim sekuencial i aksioneve qe

performohen nga nje sistem per te prodhuarnje rezultat per nje aktor.

� Use case pershkruajne sjelljen e pritur“WHAT” dhe jo metoden egzakte si behet“HOW”

� Use case krijohen bazuar ne kerkesatfunksionale te identifikuara.

� Perdoren ne fazen fillestare per identifikimin e kerkesave

Page 44: Software Engineering

44

Use Case Diagrams

� Use Case

� Actors

� Relationships

� Use Case Diagrams

Page 45: Software Engineering

45

Use Case (UC)

� Definicioni� Use case pershkruan punen(task) qe nje

perdorues mund te kryej duke perdorursistemin

� Pershkrimi� Pershkruan kerkesat e sistemit� Nje pune e pershkruar nga UC perbehet nga

aktivitetet (activities)

� UC mund te kete disa variacione qe quhenSkenare (scenarios)

� Nuk duhet te perdoren per te nxjerrefunksionalitete nga UC

Page 46: Software Engineering

46

Hapi i pare

� Identifiko aktoret

� Identifiko Use Case! UC me se lehteidentifikohen duke percaktuar qkaduhet te bejne aktoret

� Krijo listen e Use case, duke specifikuar edhe prioritetinUse Case Description UC-1 Kontrol lo Bilancin

Priority: 2

UC-2 Nuk ka rrjet/sis temi nuk punon

Priority: 1

Shembull I use case list I gjeneruar nga CASE tool, Case Complete

Page 47: Software Engineering

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

Page 48: Software Engineering

48

Page 49: Software Engineering

49

Aktoret-ActorsDefinicioni

� Aktori eshte nje entitet I jashtem I cilieshte I perfshire ne bashkeveprim me sistemin e pershkruar ne UC

Pershkrimi

� Aktoret=rolet

� Aktoret mund te jene edhe sisteme tejashtme

Simboli VISA Sistemi I Autorizimeve

Klienti

Page 50: Software Engineering

50

Gjeneralizimi I aktoreve

Nenpunes

Nenpunes operativNenpunes Adminsitrativ

Gjeneralizimi: Nenpunesi mund te kryeje gjithckacka mund te kryeje nje nenpunes administrativ

Page 51: Software Engineering

51

Use Case Diagram

Definicioni

� Tregon nderlidhjen ne mes disa use case-ve dhe aktoreve te involvuar me keto use case

Pershkrimi

� Vegel per percaktimin e kerkesave

� UC diagrami pershkruan ato aktivitetete cilat duhet te suportohen gjate fazes se zhvillimit te software.

Page 52: Software Engineering

52

Use Case Diagram(2)

� Simboli

Aktori 2

Aktori 1

UC 3

UC 2

UC 1

Emri I Diagramit

Page 53: Software Engineering

53

Shembull – Bankomati(ATM)

� ATM ofron sherbimet e meposhtme:1. Ofron terheqjen e te hollave per te gjithe

poseduesit e kartelave nepermejt lexuesitte karteles dhe makines automatike me monedhe

2. Raport per gjendjen e llogarise, keshit dhesherbimit te deponimit ne bankomat per klientet e bankes qe posedojne nje kartelebankare.

3. Te gjitha transaksionet jane te procesuara

4. ATM duhet te rimbushet me monedha kohepas kohe

Page 54: Software Engineering

54

Diagrami fillestar per ATM

Page 55: Software Engineering

55

Diagrami i permiresuar per ATM

Page 56: Software Engineering

56

Me shume Aktore

Nese poseduesi I karteles eshte VISA athere SA VISA duhet te kontaktohetNese poseduesi I karteles eshte I bankes(qe I takon bankomati)athere SA bankes thirret

Page 57: Software Engineering

57

Relationship ne mes UC� <<Include>> UC baze perfshine funksionalitetet e “Included” Use

case

� <<extend>> Nje UC e shtuar(extension) ne menyre opsionale e zgjeron sjelljen e nje UC tjeter(UC baze).

� Relacioni <<extend>> tregon se inkorporimi I UC te zgjeruarvaret se cfare ndodh kur UC baze ekzekutohet.

� Gjeneralizimi: Sub UC trashegon sjelljen nga Super Use Case

� Gjeneralizmi mund te perdoret ne mes aktoreve ose UC dhe jone mes nje aktori dhe UC

UC Baze

Included

UC

<<Include>>

UC Baze

UC e

zgjeruar

<<extend>>

Super UC

SUB UC

Gjeneralizimi

Page 58: Software Engineering

58

Shembull i nje INCLUDE Relationship

Te gjitha llojet e transaksioneve duhet te autorizohen

Page 59: Software Engineering

59

Shembull i nje <<EXTEND>> Relationship

…….8. ATM kerkon nga poseduesi I karteles shumen qe ai/ajo deshiron te terheqeExtension Point: Nuk Ka rrjet/nuk punon sistemi

9. Poseduesi I karteles zgjedh shumen qe deshiron te terheqe.10. ATM kontrollon vleren kundrejt shumes maksimale te lejuar……

uc Use Case Model

Verifiko Shumen Nuk ka rrjet«extend»

Page 60: Software Engineering

60

Shembull i nje GjeneralizimiRelationship te UC

Page 61: Software Engineering

61

ATM, UCD i Zgjeruar

Page 62: Software Engineering

62

Ushtrim- “Drive Test”

� Pershkrimi i problemit: Nje kompani e cila merretme shitjen e autoveturave iu jep mundesi klienteveqe te kene mundesine te provojne automjete qejane te interesuar t’i blejne.

� Meqenese interesimi i klienteve eshte i madhkompanise iu eshte dashur qe tju kerkoje klienteveqe paraprakisht te bejne rezervimet. Perpara se te behet nje rezervim per ‘drive test’ klienti duhet te regjistrohet.

� Kompania nepermjet sistemit te saj dhe administratorit merret me te gjithe menaxhimin e automjeteve, si datat e lejimit per “drive test”, konfirmimin e rezervimit etj

Page 63: Software Engineering

63

Te plotesohet UC diagrami i meposhtem-Ushtrim ne Klase

Page 64: Software Engineering

64

Sistemi i Administrimit tekurseve

� Student: update te dhenat personale, shef rezultatet e provimit, shfletondetajet mbi kurset, zgjedh kursin e preferuar

� Mesuesi: shfleton rezultatet e provimeve, update informacionin e kurseve, shfleton regjistrimet e bera

� Stafi admin: hedh rezultatet e provimeve, update te dhenatpersonale te studenteve, shfletonregjistrimet e bera per per kurse.

Page 65: Software Engineering

65

UCD per sistemin e admin. kurseve

Page 66: Software Engineering

66

Shmebull 1-POS

Keni shembulli e nje dyqani apo te nje pike te shitjes (point of sale –POS Terminal) . Nje pike shitje zakonisht ka njekompjuter, barcode, peshore, printer, POS terminal qeeshte i lidhur me sistemin e procesimit te kartes se kredititetj. Nje klient ben pagesen per mallrat e blere me kartele nepermjet POS terminalit.

� Identifikoni aktoret?

� Identifikoni Use case?

� Vizatoni nje Use Case Diagram?

� Pershkruani nje skenar sukesi?

Page 67: Software Engineering

67

Shembull 2: Online Shopping

� Aktoret: Klienti Online, pay pal, credit autorizimi,serveri

� Use case: shfleto artikull, bej pagese, CHECKOUT, authentikimi I klientit, kalkulimi I takses dhe transporti, pagesa(kredit ose pagese pay pal)

� Vizatoni nje Use case diagram?

Page 68: Software Engineering

68

Intentionally left blank

Page 69: Software Engineering

69

Ngaora e kaluar….

� Analiza e kerkesave te software

� Percaktimi i kerkesave dhe veshtersite qehasen gjate percaktimit te tyre.

� Aktivitetet (identifikimi, klasifikimi, caktimi i prioriteteve..)

� Takimi me klientet(intervistat)

� Analiza e skenareve (use case)

� Use case Diagramet dhe shembuj

� Vazhdojme me analizen e kerkesave…

Page 70: Software Engineering

70

Tipet e Kerkesave

� Kerkesat e Perdoruesve (user requirements)

� Deklarata ne gjuhen natyrale plus diagrame tesherbimeve qe ofron sistemi si dhe kufizimet operative. Shkruhen per konsumator.

� Kerkesat e Sistemit (system requirements)

� Nje dokument i strukturuar qe percakaton ne menyre tehollesishme pershkrimin e funksioneve te sistemit, sherbimet dhe kufizimet operacionale. Percakton se cfare duhet te implementohet dhe mund te jete pjese e kontrates ne mes klientit dhe kontraktorit

Page 71: Software Engineering

71

Definimi dhe Specifikimi

� Definimi i kerkeses se perdoruesit (User Requirement Definition)

� Nje Software i cili i mundeson klienteteve qe te nderrojnePIN te karteles ne ATM.

� Specifikimi i kerkesave te sistemit ( System requirement specification)

� 1.1 Klienti duhet te jete klient i bankes qe posedon ATM� 1.2 Klienti duhet te kete kartele valide� 1.3 Klienti duhet te dije PIN e vjeter, para nderrimit te tij.� 1.4 Pas ndryshim te Pin nuk lejohet transaksion tjeter pa u

validuar PIN i ri.� …………..

Page 72: Software Engineering

72

Klasifikimi I Kerkesave

� Kerkesat Funksionale� Deklarata(statements) te sherbimeve qe duhet te

ofroje sistemi. � Si duhet te reagoje sistemi� Si duhet te sillet sistemi ne situata te vecanta

� Kerkesat jo-funksionale� Siguria dhe performanca� Kufizimet e ndryshme te sherbimeve(p.sh kufizimi ne

kohe)� Standardet e ndryshme etj

� Kerkesat e fushes (domain requirements)� Kalkulimi i tatimit ne rroge duhet te behet sipas

rregullores XX te Administrates tatimore te Kosoves.

Page 73: Software Engineering

73

Kerkesat Funksionale

� Kerkesat Funksionale pershkruajnefunksionalitetin ose sherbimet e sistemit.

� Kerkesat Funksionale te perdoruesve janekerkesa globale qe tregojne ne vija tetrasha cfare duhet te beje sistemi.

� Kerkesat Funksionale te sistemit duhet tepershkruajne sherbimet dhe funksionet e sistemit ne detaje.

� Dokumentimi i kerkesave funksionale duhetme qene konsistent dhe i kompletuar.

Page 74: Software Engineering

74

Shembuj te kerkesavefunksionale

� Perdoruesi duhet te kete mundesi te kerkojeklientat ekzistues ne database.

� Sistemi nuk duhet te shfaqe detajet e klienteve qe jane te kategorizuar si VIP (perveq emrit).

� Ç’do porosi duhet te identifikohet me Porosia_Id, nepermjet se ciles perdoruesimund te kontrolloje statusin e porosise.

Page 75: Software Engineering

75

Kerkesat Jo-funksionale

� Kerkesat Jo-funksionale zakonisht nuk varennga perdoruesi.

� Perdoren per te definuar kufizimet dhe vetite(properties) e sistemit p.sh besueshmeria, cilesia, pergjigja ne kohe, IO devices etj.

� Mund te jene kufizime si percaktimi i gjuhesse programimit dhe CASE metodave.

� Kerkesat jo-funksionale mund te jene me kritike se ato funksionale.

Page 76: Software Engineering

76

Kerkesat Jo-Funksionale

Page 77: Software Engineering

77

Klasifikimi i kerkesave Jo-funksionale

� Kerkesat e Produktit

� Kerkese e cila specifikon qe produkti i kryer duhet te silletne nje menyre te caktuar p.sh koha e ekzekutimit, besueshmeria etj

� Kerkesat organizative

� Kerkesa qe dalin si rezultat i politikave dhe proceduraveorganizative p.sh standardet e proceseve qe perdoren, implementimi i kerkesave etj

� Kerkesat e jashtme

� Kerkesa qe dalin si rezultat I faktoreve te jashtem. P.shNderveprimi(interoperability), kerkesat legjislative, etike etj

Page 78: Software Engineering

78

Shembuj kerkesash jo-funksionale

� Kerkesat e produktit

� Interface duhet te implementohet me HTML te thjeshte, pa frames dhe Java applets.

� Kerkesat organizative

� Sistemi dhe dokumentimi i tij duhet te jetekonform standardit ISO XXX

� Kerkesat e jashtme

� Sistemi nuk duhet te lejoje asnje rrjedhje teinormacionit personal te klienteve, perveqemrit dhe numrit te references.

Page 79: Software Engineering

79

Kerkesat e Sistemit

� Kane per qellim te jene nje baze per dizajnimin e sistemit (software design)

� Mund te inkorporohen ne kontraten e sistemit,

� Mund te ilustrohen apo definohetduket perdorur modelet e sistemit(Use case, Data flow digrams, activity diagram etj)

Page 80: Software Engineering

80

Kerkesat dhe Dizajni

� Kerkesat – Ç’ka duhet te beje sistemi

� Dizajni – Si duhet te realizohet(behet) kerkesa.

� Ne praktike Kerkesa dhe Dizajni janezakonisht te pandara.

Page 81: Software Engineering

81

Specifikacioni i Nderfaqesit ( Interface Specification)

� Shumica e sistemeve duhet te operojneme sisteme te tjere, specifikacioni i nderfaqesit duhet te jete gjithashtu pjesee kerkesave.

� Nderfaqesit procedural;

� Struktura e te dhenave qe shkembehet;

� Riprezantimi i te dhenave

Page 82: Software Engineering

82

Dokumenti i kerkesave teperdoruesit

Page 83: Software Engineering

83

Struktura e dokumentit teKerkesave

� Hyrje

� Fjalori(Glossary)

� Definimi I kerkesave te perdoruesit

� Arkitektura e sistemit

� Specifikacioni I kerkesave te sistemit

� Modeli I sistemit

� Evoluimi I Sitemit

� Anekset (Appendices)

Shikoni shembullin e SRS ne word.

Page 84: Software Engineering

84

Intentionally left blank

Page 85: Software Engineering

85

Modelimi i Procesit� Ç’ka eshte nje model i procesit softuerik?

� Eshte nej prezantim i thjeshtesuar (apstrakt) i nje procesi softuerik.

� Nje menyre formale prezantimi si operonbiznesi.

� Data flow diagramet perdoren per tetreguar procesetproceset e e biznesitbiznesit dhe tete dhenatdhenat qekalojne ne mes tyre.(proceseve)

� Meqenese data flow diagramet tregojnelevizjen e te dhenave ne mes proceseve, keta diagram quhen zakonisht “Process model”.

Page 86: Software Engineering

86

Physical vs Logical Model

� Modelet logjike te procesevepershkrujne proceset pa treguar se siato kryhen

� Modelete Fizike (physical model) perfshijne edhe informacione siimplementohet nje proces.

Page 87: Software Engineering

87

Data Flow Diagrams

Process

Data Store

Source/Sink or External

Data Flow

De Marco & Yurdon Gain & Sarson

Page 88: Software Engineering

88

Context Diagram

� Nje pamje gjenerale e nje Sistemi.

� Tregon procesin e pergjithshem tebiznesit vetem si nje proces i vetem

� Qellimi i nje sistemi organizativ qetregon kufijte e sistemit, entitetet e jashtme qe nderveprojne me sistemindhe te dhenat kryesore qe shkembejne

Page 89: Software Engineering

89

Context diagramOrder system

Page 90: Software Engineering

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

Page 91: Software Engineering

91

Level 0(zerro) DFD

� Tregon te gjitha proceset kryesoreqe e perbejne sistemin.

� Tregon si rrjedh informacioni(tedhenat) ne mes proceseve.

� Shtohen ne diagram “data stores”

� Kur zgjerohet context diagrami ne DFD level-0, te gjitha lidhjet qe hynedhe dalin duhet te ruhen (Balancimi)

Page 92: Software Engineering

92

Level 1 -DFD

� Tregon te gjitha proceset qe perbejnenje proces te vetem ne diagramin e nivelit 0.

� Sherben per te treguar ne detajepermbajtjen e procesit te nje niveli me te larte.

� Diagrami i nevelit 1, mund te mosduhet per te gjitha proceset e nivelit 0

Page 93: Software Engineering

93

1.0

Fill

Order

2.0

Create

Invoice

3.0

Apply

Payment

SALES

REPBANK ACCOUNTING

CUSTOMER WAREHOUSE

Order

Order

Reject

Notice

Picking List

Accounts

ReceivableD1

Invoice

Invoice

Invoice

DetailPayment

Detail

Payment

Commission Bank Deposit Cash Receipts Entry

Completed

Order

Level-0 DFDOrder system

Page 94: Software Engineering

94

Dekompozimi dhe Balancimi

� Dekompozimi

� Nje process iterativ i ndarjes se pershkrimit tesistemit ne detaje me te vogla.

� Niveli me i ulet quhet DFD primitive.

� Balancimi

� Gjate dekompozimit te DFD nga nje nivel ne tjetrin duhet te ruhen “hyrjet ne” dhe “daljet nga”nje proces

� Sigurohuni qe numri i hyrjeve/daljeve terrjedhes se te dhenave eshte i njejte gjatekalimit nga nje nivel dekompozimi ne tjetrin

Page 95: Software Engineering

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

Page 96: Software Engineering

96

Vini re: Kemi te njejtat hyrje dhe dalje me diagramin e meparshem. Mund te themi se context diagrami dhe DFD niveli-0 jane tebalancuar.

Page 97: Software Engineering

97

Krijimi i Data flow diagrameve

� Hapat gjeneral1. Krijo “context” diagramin preliminar2. Identifiko use cases, p.sh menyrat se si

predoruesit e perdorin sistemin3. Krijo DFD fragmente per cdo Use case4. Krijo Level 0 diagramin nga fragmentet. 5. Dekompozo ne Level 1,2..6. Kthehu ne hapin e pare dhe rishiko per

gabime.7. Valido DFD me perdoruesit

Page 98: Software Engineering

98

DFD- Rregullat

� Te pergjitheshme:� Hyrjet ne nje process duhet te jene te ndryshme nga daljet e atij procesi� Te gjitha Objektet ne DFD duhet te kene emra unik

� Process:� Nje proces nuk mund te kete vetem dalje.� Asnje proces nuk mund te kete vetem hyrje� Proceset duhet te emrohen me folje

� Data store:� Te dhenat nuk mund te rrjedhin nga nje data store ne tjeter� Te dhenat nuk mund te rrjedhin nga nje entitet I jashtem ne data store� Data store emerohen me emra

� External Entities: � Te dhenat nuk mund te rrjedhin me mes dy entiteteve te jashtme� Entitetet e jashtme emerohen me emra

� Data flow:� E njejta Rrjedhe e te dhenave nuk mund te kthehet ne te njejtin proces� Data flow duhet te emerohen me emra.

Page 99: Software Engineering

99

DF-Gabimet e Zakonshme

a b ab

Duhet nje

proces qe te

kete kal im te

dhenash ne

mes dy

enti teteve te

jashtme

a DataStore1 a

Duhet nje

proces per te

updatuar apo

perdorur nje

Data Store

DataStore1

DataStore2 DataStore3

Duhet nje

proces per te

levizur te

dhenat nga

nje Datastore

ne Tjetren

DataStore2 DataStore3

Page 100: Software Engineering

100

Shembull 1:

� Kur klienti ben nje porosi nepermjet website, sistemikontrollon nese artikulli eshte ne stok, njofton klientinme statusin e artikullit dhe gjeneron kerkesen per porosi ne magazine e cila mbush porosine. Kurporosia eshte derguar(nisur) klienti faturohet. Sistemigjithastu prodhon raporte te ndryshme si raporte teinventarit per kontabilitet.

1. VIzato nje context diagram per kete sistem porosienepermjet website

2. Vizato DFD-0 per te njejtin sistem.

Page 101: Software Engineering

101

Context diagrami

Page 102: Software Engineering

102

DFD level 0

Page 103: Software Engineering

103

Ushtrim 2: ATM- Context Diagrami

ATM Screen

ATM Printer

dhensi i parave

Tastiera

Lexuaesi i

Karteles

ATM Sistemi

menu/mesazhe

fatura e klienti t

para ne cash

komandat

nga

kl ienti

Te dhenat e karteles

D.SH. Te ndertohetDFD Niveli 0

Page 104: Software Engineering

104

Ushtrime ne Laborator

1. Ne EA, te vizatohet shembulli 1 i sistemit teporosive.

2. Te ndertohet nje DFD, nepermjet te cilit paraqitetaplikimi per pune ne nje organizate per nje pozite tecaktuar. Sistemi njofton aplikantin mbi pranimin e dokumenteve. Aplikanti i pranuar regjistrohet ne Payroll pas evaluimit te te gjitha aplikanteve. Detajetmbi poziten merren nga menaxheri, te cilit i nevoitetpunetori.

Page 105: Software Engineering

105

Intentionally left blank

Page 106: Software Engineering

106

Procesi Softuerik

� Cilat ishin aktivitetet kryesore te njeprocesi softuerik?

� Specifikacioni i softuare;

�� DizajniDizajni dhedhe implementimiimplementimi;;

� Validimi i software;

� Evoluimi i software (Evolution)

Page 107: Software Engineering

107

DESIGN

� Pas perfundimit te analizes se kerkesave/specifikacionit duhet tepercaktojme si keto kerkesa duhet teimplementohen - Design.

Page 108: Software Engineering

108

Temat qe do te mbulohen

� Software Architecture Design.

� Application architectures.

� Object-Oriented Analysis (OOA)

� Object-Oriented Design (OOD)

� Static OOD

� Dynamic OOD

� User Interface Design

Page 109: Software Engineering

109

Pse na duhet Dizajni

� Tashme i kemi kerkesat/specifikacionin� Kerkesat jane ne forme shume Abstrakte per ndertimin

e kodit…� Na duhen detajet per:

� Menyren si pjeset e nje sistemi bashkohen(“Architecture”)

� Si grupohen funksionet/te dhenat (“System structure”)� Si reprezantohen te dhenat (“data structure”)� Si procesohen te dhenat (“Algorithms”) � Si do te perdoren API (“services”)� Si do ta perdorin perdoruesit sistemin (“user interface”)� Si do te bashkeveproje sistemi me te tjeret(system

interface)

Page 110: Software Engineering

110

Software Architecture � C’ka duhet te konsiderojme:

� Programet dhe proceset te cilat e perbejnesistemin.

� PC/Servers ku programet ekzekutohen(lloji, app. existuese, sistemet operative etj)

� Networking� Ku do te ruhen te dhenat, si do te

aksesohen/transferohen� Arkitekura e centralizuar apo decentralizuar.� Kualiteti i sherbimit, performanca, siguria etj

� Rezultati I procesit te dizajnit eshte:� Pershkrimi i arkitektures se software

� Client Server Architecure eshte arkitektura e software me e perdorur.

Page 111: Software Engineering

111

Arkitektura Client-Server

� Zakonisht ndahet ne 3 nivele (3 tiers)� Interface (nje pjese ne client nje pjese ne

server)� Processing (pak klient, shumica ne server)� Data storage (zakonisht vetem server)

� Menyra te ndryshme per te ndare tedhenat/funkisonet.

� P.sh. E-commerce Website tipik (browser + http server + Database Server).

� Thin & Thick Clients. � Disa modele client-server

� Multiple server, single server, decentralized/centrelized systems etj

Page 112: Software Engineering

112

“Thin” Clients

� Procesimi ne ‘client side’ eshteshume i limituar

� Puna me e madhe kryhet ne server, perfshi ketu edhe njepjese te formatimit te UI (p.shJSP, ASP)

� Ndonjehere ka nevoje per bandwidth me te larte ne rrjet.

� Shembuj: Web browser, telnet

Page 113: Software Engineering

113

“Thick” Client

� UI dhe nje pjese e procesimitbehet ne “Client side”.

� Nje pjese e procesimit kryhetne server.

� I pershtatshme per volum tevogel ne rrjet (bandwidth tevogel)

� Shembuj:java applets, ATM machine, virtual environment client.

Page 114: Software Engineering

114

Dizajni i Arkitektures

� Identifikimi i programeve/proceseve qe nevojiten.

� Identifiko pjesen hardwerike (PC,server, networking etj).

� Percakto cili program exekutohet ne cilenmakine.

� Kontrollo nese arkitektura suporton kerkesatjofunksionale dhe ato funksionale. � Keni kerkese jofunksionale si me poshte:

• koha e regjistrimit transaksioni <=2 sec

• koha e maximale e gjenerimit te nje raporti eshte 10 sec. (si te behet validimi/kontrollimi?)

Page 115: Software Engineering

115

Video Library System UML deployment diagram

Page 116: Software Engineering

116

Application Architecture

� Data processing Application� Applikacione qe procesojne te dhenat ne

grup( in batches), ndonjehere edhe pa nderhyrjen e perdoruesit.

� Transaction processing application� “Data centered application” qe procesojne

kerkesat e perdoruesve dhe update-ojneinformacionin ne DB te sistemit.

� Event processing application� Aplikacione ku aktivitetet e sistemin varen

nga interpretimi i ngjarjeve qe vijne ngamjedisi i sistemit.

Page 117: Software Engineering

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;

Page 118: Software Engineering

118

Input/output Data processing

Page 119: Software Engineering

119

Transaction processing system

Page 120: Software Engineering

120

Object-Oriented

� Object Oriented Analysis OOA

� Object Oriented Design-OOD

� Object Oriented Programming –OOP

� OOA, OOD dhe OOP jane tenderlidhura me njera tjetren porndryshojne.

Page 121: Software Engineering

121

Object Oriented Analysis

� Modelimi i kerkesave ne kuptimin e objekteve dhesherbimeve qe ato ofrojne

� OOA eshte (pretendon te jete) me ‘natyral’� Me evoluimin e sistemit, funksionet (proceset) kane

tendence te ndryshojne ndersa Objektet kanetendence te mbeten te pandryshuar.

� Modeli i strukturuar i analizes (DFD) do te dale jashte perdorimit, ndersa OO model JO

� Ne OOA theksohet rendesia e mire definuar e lidhjes se objekteve (ku ne DFD kemi mungese teketij informacioni)

Page 122: Software Engineering

122

Object Oriented Design

� Objected jane nje forme abstrakte e jetes se perditshme ose entitete te sistemit.(p.shperson,student, karrige etj)

� Objektet jane te pavaruara dhe perfaqesojne njeinstance te prezantimit te informacionit

� Funksionaliteti i sistemit shprehet ne terminsherbimet e objektit (Object services)

� Objektet komunikojne nepermjet te mesazheve

� Objektet mund te jene te distribuara dhe mund teegzekutohen ne menyre sekuenciale apo paralele

Page 123: Software Engineering

123

OO Design

Pse behet dizajn i Software?� Pse dizajnohet projekti i nje ndertese para se ajo te ndertohet?

� Cka eshte OO Design?

� OO design eshte nje nga metodologjite me te perdorura per software dizajn!?! (pretendohet)

� Ne OOD fillohet me analizimin e entiteteve te botes reale qeekzistojne.

� Pastaj shtohen atributet dhe sjellja per cdo entitet.

� Hapat kryesor ne OO Design

� Shpreh entitetet ne Klasa dhe objekte

� Bej lidhjen e klasave

� Analizo te gjitha veprimet qe nje objekt mund te kryeje me njeobjekt tjeter

Page 124: Software Engineering

124

Cka eshte nje Object?

� Nje objekt eshte nje entitet qe ka gjendje(state), atribute dhe funksionalitete(services)

� P.sh Nje person ka emer dhe numer personal

� Atributet ruhen ne variabla

� Funksionaliteti ruhet ne metoda class System

PERSON

# Adressa: char

+ Emri: TEXT

- Nr_perosnal: int

+ han() : boolean

# vrapon() : float

Functionality (method)

Attributes

Page 125: Software Engineering

125

Classes (Klasat)

� Nje pershkrim i nje Objekti quhet Class

� Person eshte nje class e cila mund te kete atributet

� Emri

� Adresa

� Dhe mund te kete funksionalitet

� Vrapon

� Ha (ushqim)

� Ne slide paraprak ne tham qe Person eshteObject?????

� Objekti eshte nje instance e nje klase

class System

PERSON

# Adressa: char

+ Emri: TEXT

- Nr_perosnal: int

+ han() : boolean

# vrapon() : float

Page 126: Software Engineering

126

Identifikimi i Objekteve

� Pjesa me e veshtire gjate dizajnit OO eshte identifikimi i objekteve

� Nuk ka nje “formule magjike” per identifikimin e Objekteve. Ajombeshtetet ne aftesi dhe eksperiencesi dhe ekperiencen e fushes ngadizajneret e sistemit.

� Identifikimi i Objekteve eshte njeproces iterativ.

Page 127: Software Engineering

127

Qasjet ne identifikimin e objekteve

� Perdor metoden gramatikore te gjuhesnatyrale te pershkrimit te problemit. � Emrat � Objekte� Foljet � Metoda

� Bazo identifikimin ne gjerat e prekshme ne “application domain”.

� Perdor qasjen “sjellje” (cka ben) per teidentifikuar objektet bazuar ne sjellje.

� Perdor analizen e bazuar ne skenare. Objektet, atributet dhe metodat ne cdoskenar identifikohen.

Page 128: Software Engineering

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.

Page 129: Software Engineering

129

Weather station-USE Case

Lexo me shume ne liber fq. 324 Pershkrimin e plote dhe skenaret

Page 130: Software Engineering

130

Objektet klasa

Page 131: Software Engineering

131

Per te mbajtur mend…

� Ç’ka eshte nje objekt?

� Ç’ka eshte nje klase?

� Differenca ne mes klases dhe Objektit

� Ç’ka eshte OOA, OOD.

Page 132: Software Engineering

132

Class Diagrams

� Diagrami i Klasave pershkruan tipet e objekteve ne sistem dhe lloje te ndryshme telidhjeve statike (static relationship) ne mestyre.

� Permbledhje

� Perspectives: Conceptual, Specification, Implementation

� Attributes, Operations and Methods.

� Associations, Navigability, Aggregation, Composition, Association Classes.

� Generalization, Interfaces, Abstract Classes

Page 133: Software Engineering

133

Page 134: Software Engineering

134

Nga Use cases ne Class Diagram

uc Us e Ca s e V ie w

P oros ia

K lie nti

poros ia

Ne ke m i kl i e n te q e p o ro si si n p ro d u kte t to n a .

Ne i d a l l o j m e kl i e n te t f i rm a n g a kl i e n te t p ri va t, se p se f i rm a t p a g u a jn e

n je h e re n e m u a j n d e rsa kl i e n te t p ri va t d u h e t te p a ra p a g u a jn e p o ro si te .

Ne d e sh i ro j m e q e p o ro si te te ra d h i te n sip a s p ro d u kte ve

Cd o l i n j e d u h e t te ke te sa si n e d h e cm i m i n p e r cd o p ro d u kt.

Page 135: Software Engineering

135

Shembull: Porosia -Association

class Class M odel

Porosia Klienti

* 1

u c U s e C a s e V ie w

p o r o s ia

• N e k e m i k l ie n te q e p o r o s is in p r o d u k te t to n a .N e i d a l l o j m e kl i e n te t f i rm a n g a kl i e n te t p ri v a t , se p se f i rm a t p a g u a j n e

n j e h e re n e m u a j n d e rsa kl i e n te t p ri v a t d u h e t te p a ra p a g u a j n e p o ro si te .

N e d e sh i ro j m e q e p o ro si te te ra d h i te n si p a s p ro d u kte v e

C d o l i n j e d u h e t te ke te sa si n e d h e c m i m i n p e r c d o p ro d u kt .

Association Multiplicity

Page 136: Software Engineering

136

Shembull:Porosia-Generalization c la s s Cla s s M ode l

P oros ia Klie nti

Klie nt P riv a tKlie nt FIRM

* 1

uc U s e C a s e V ie w

poros ia

Ne ke m i kl i e n te q e p o ro si si n p ro d u kte t to n a .

Ne i da llo j m e k l ie n te t firm a nga k lie n te t p riv a t, s e ps e firm a t pa gua j ne nj e he re ne m ua j nde rs a k lie n te t pr iv a t duhe t te pa ra pa gua j ne poros ite .

Ne d e sh i ro jm e q e p o ro si te te ra d h i te n si p a s p ro d u kte ve

Cd o l i n j e d u h e t te ke te sa si n e d h e cm im in p e r cd o p ro d u kt.

Generalization

Page 137: Software Engineering

137

More association

Porosia Klienti

Klient Priv atKlient FIRMLinja e porosive Produkt

* 1

*

1

* 1

p o ro s ia

N e ke m i kl i e n te q e p o ro si si n p ro d u kte t to n a .

N e i d a l l o j m e kl i e n te t f i rm a n g a kl i e n te t p ri v a t , se p se f i rm a t p a g u a j n e

n j e h e re n e m u a j n d e rsa kl i e n te t p ri v a t d u h e t t e p a ra p a g u a j n e p o ro si te .

N e d e s h ir o j m e q e p o r o s ite te r a d h ite n s ip a s p r o d u k te v eC d o l in j e d u h e t te k e te s a s in e d h e c m im in p e r c d o p ro d u k t.

Page 138: Software Engineering

138

Porosia–Attributes & Operations

Klienti

- Adresa

- Emri

+ Klasifikimi_kredise()

Porosia

- Cmimi: Currency

- Data e pranimit

- EshtePpregaditur

- number: String

+ Close()

+ Dergoj()

Attributes

Operations

porosia

Ne kemi kliente qe porosisin produktet tona.

Ne i dallojme klientet firma nga klientet privat, sepse firmat paguajne

njehere ne muaj ndersa klientet privat duhet te parapaguajne porosite me

credit card

Ne deshirojme qe porosite te radhiten sipas produkteve

Cdo linje duhet te kete sasine dhe cmimin per cdo produkt.

Page 139: Software Engineering

139

Porosia-DIagrami i klases

Porosia

- Cmimi: Currency

- Data e pranimit

- EshteParapaguarr

- number: String

+ Close()

+ Dergoj()

Klienti

- Adresa

- Emri

+ Klasifikimi_kredise()

Klient Privat

- Credit_card: int

Klient FIRM

- Klasifikimi_kredise: int

- Kontak_Person: char

- Limiti_kredise: int

+ Fatura_muajit() : int

Linja e porosive

- Cmimi: float

- Sasia: int

Produkt

«Pre-condition»

{Nese Porosia.klienti.kalsifikimi_kredise eshte i "KEQ" atehehere

Porosia.Eshte_parapaguar duhet te jete "TRUE"}

* 1

*

1

* 1

Page 140: Software Engineering

140

Perspektivat

Jane tre perspektiva qe mund t’i perdorni gjate vizatimit teClass Diagrams;

� Conceptual� Ne menyre konceptuale paraqitet klasa.� Ofron gjuhe indipendente te implementimit

� Specification � Reprezanton interface te software� Implementimi eshte I fshehur

� Implementation � Klasat reale te perdorura ne gjuhe programimi� Lidhet direkt me implementimin

Page 141: Software Engineering

141

Class - Vizibiliteti

+ public, mund te shifet nga cdoklase tjeter

# protected, mund te shifetvetem nga nen-clasat

- private, shifet vetem nga kjoklase

Porosia

- Cmimi: Currency

+ Data e pranimit

+ EshteParapaguarr

- /number: String

# TEST: Boolean

+ Close()

+ Dergoj()

+ test() : Integer

Page 142: Software Engineering

142

Relacionet ne mes Klasave

�Association

�Aggregation

�Composition

�Association Classes

�Generalization

Page 143: Software Engineering

143

Associations

� Associations reprezentojne lidhjen ne mes instancave te klasave.

� C’do Asociacion ka dy role qe mundte emerohen.

� Multipliciteti: 1; *;2..4; 2,4;24

RoliRoli

Personi Kompania

+Punesohet

*

+Puneson

1

Page 144: Software Engineering

144

Associations-Navigability

� Asociacionet binare

� Te dy klasat e njofin njera tjetren

� Asociacionet unare

� Klienti nuk mund te tregoje cfareporosie ka bere

Personi Kompania

+Punesohet

*

+Puneson

1

Porosia Klienti

* 1

Page 145: Software Engineering

145

Aggregation� Agregation eshte PJES E (part of)

Relacionit.

� P.sh. “Regjioni eshte pjese e shtetit”

� A eshte nje kompani aggregation per punetoret e vet apo eshte njeasociacion ne mes punetoreve te tij?

S h te t i R e g j i o n i

A u to m j e t i

D y e r t

D r i ta r e t

Specifikohet me nje diamant te zbrazetnga ana e pjesespermbajtese

Page 146: Software Engineering

146

Composition � Kompozicioni eshte nje version me i

forte i agregacionit

� Klasa perberese varet nga klasapermbajtese. Nese vdes klasapermbajtese vdes edhe klasa perberese.

S hte pia Dhom a

K lie nti LLoga riaSpecifikohet me nje diamant te ZInga ana e pjesespermbajtese

Page 147: Software Engineering

147

Association Classes

� Penetoret punesohen nga kompaniaper nje periudhe te caktuar.

� Pyetje: Atributi Periudhe ne cilenklase vendoset.

� Associtions classes ju lejojne temodeloni asociacionet me klasa.

Personi Kom pania

Puna

+ Pe riud ha: in t

* 1

Page 148: Software Engineering

148

Generalization

� Inheritance/Trashigimia

� Superklasa -Gjerat e perbashketa qe kane disaklasa.

� Sub klasa – diferencatndahen ne nenklasa

Klienti

- Adresa

- Emri

+ Klasifikimi_kredise()

Klient Privat

- Credit_card: int

Klient FIRM

- Klasifikimi_kredise: int

- Kontak_Person: char

- Limiti_kredise: int

+ Fatura_muaji t() : int

Super klasa

Nen Klasat

Page 149: Software Engineering

149

UML Class diagram

DVD Movie VHS Movie Video Game

Rental Item

Rental Invoice

1..*1

Customer

Checkout Screen

0..1

1

Simple

Association

Class

Abstract

Class

Simple

Aggregation

Generalization

Composition

Multiplicity

Source: University of Washington

Page 150: Software Engineering

150

Ushtrime

� Nga ciftet e meposhtme dallo klasen ngaobjekti i nje klase?

1. Superhero, superman klas: superhero, objekt: superman

2. Hashim, Person

3. Gazete, Koha

4. Bajram, Feste

Page 151: Software Engineering

151

Ushtrim 2

� Listo disa atribute dhe operacione tecilat mund te definohen per klasen e quajtur “Takim” qe reprezanton njetakim biznesi?

Atributet: data, koha,lokacioni,qellimi

Operacionet: cakto, cancel, “setters & getters” per cdo atribut{p.sh set_time(), get time() }

Page 152: Software Engineering

152

Ushtrim 3

Nje kompani ka departamente. Departamentetmund te gjenden ne nje ose disa zyra tekompanise(lokacione).

Nje zyre luan rolin e zyres Qendrore.

C’do departament ka menaxherin e vet i cilinjekohesisht eshte edhe punetor.

Detyra juaj eshte te ndertoni nje diagram klasave duke perfshire te gjithe elementet qe juduhen.

Page 153: Software Engineering

153

Kompania

- Emri: char

+ Get_name() : void

+ set_nam e() : void

Departamenti

- Em ri_Dep: string

+ get() : void

+ set() : void

ZYRA

- Adresa: int

Zyra Qendrore

Punetori

- Emri: string

- T itul l i : char

+ get() : void

+ set() : void

+menaxhohet nga 1

+M enaxhon 1 1..*

1

+gjindet ne

*

+i takon

*

Page 154: Software Engineering

154

Ushtrim 4� Movie Shop

Te dizajnohet nje diagram klase per sistemin "movie shop" nepermejt te cilit perdoruesit mund te bejne porosine e filmave ne dyqan, te kerkoje/shfletoje ne katalogun e dyqanit dhe te anetarsohen/regjistrohen. Cdo anetar qeregjistrohet merr edhe karten e tij rimbushese.

Vetem anetaret e regjistruar lejohen te marrin filma me qera me karten e tyre. Vlera ne karte update-ohet gjateqiramarrjes se filmave.

Filmat mund te blihen nga perdoruesit dhe anetaret.

Filmat porositen edhe kur nuk jane ne ne dispozicion.

Page 155: Software Engineering

155

Perdoruesi

- Emri : char

- Mbiemri: char

+ Anetaresohu() : void

Porosia

- Data: int

- Titull i: char

+ Get_credit() : void

+ Set_Credit() : void

SHOP

- Emri_Dyqanit: int

Kataogu

- total_filma: int

Filmi

- Titulli: int

FIlm Qera

- Cmimi: int

- Gjendja: byte

+ I_Kthyer() : void

+ I_marre_me Qera() : void

Blej FILM

- Cmimi: int

+ gjendja: int

+ Blej() : void

+ Porosit() : void

CARD

- number: int

+ get() : void

+ set() : void

Anetari

+ C'antaresohu() : void

1

Ben

1..* *

Behet

1

Shfleton

1

zoteron

1

*

leshohet

1 1

1..*

*

1..

0..1

Merr me qera

0..*

Page 156: Software Engineering

156

Ushtrim 5

Te krijohet nje diagram i klases i thjeshtesuar per regjistrin e klaseve shkollore. (pa atribute dhe metoda) Çdo klas e shkolles perbehet prej jo me shume se 25 studenteve. Ç’do klase ka kujdestarin e klases qe eshte njeri prejmesuesve. Gjithashtu ç’do klase ka nje nxenes kryesor qeperfaqeson klasen- kryetari i klases. E gjithe klasa meson lendet e njejta(brenda kohes se caktuar te javes) perveq gjuheve te huaja(disa mesojnefrengjisht, disa anglisht)Mesuesi mund te mbaje disa lende. Nxenesi gjate semestrit merr note parciale dhe note finale nga cdo lende, per me teper nxenesi notohet edhe per sjelllje.

Page 157: Software Engineering

157

Klasa Nxenes

- Emri: string

- Mbiemri: string

Nota

Mesuesi

Lendet

- lenda: string

- ore_ne_jave: string

Grupet e Gjueve

Gjuet e Huaja

nota per lenden Nota per sjelljen

Nota Parciale Nota Finale

0..*

kryetari i klases

1

1..25

0..*

Kujdestar klase

1 1

1..*

0..*

mesojne

1..*

1

mesojne

0..1

1 Merr note

0..*

1

0..*

Page 158: Software Engineering

158

Detyre Shtepie 6

� Nga Diagrami i Klases ne slide-in Pasues (“Universe of Discourse: UNN Information System (UNN-IS)”) tepershkruhet Problemi i kerkesave duke lexuardiagramin.

Page 159: Software Engineering

159

Class Diagram

Ref: Advanced Database (CM036) –Lecture, Object Oriented Database(I)

Page 160: Software Engineering

160

Intentionally left Blank

Page 161: Software Engineering

161

ERD

Entity relationship Diagram

Page 162: Software Engineering

Entity Relationship Diagram Entity Relationship Diagram

ERDERDIntroduction

�Dizajnimi Konceptual I DB

�Cka eshte ERD?

�Chen and crow’s foot simbolet

�Entity, relationships,attributes

�Identifikuesit, kardinaliteti

�Lidhjet binare 1:M, 1:1,M:N te ilustruara me shembuj

�Modality – Optional Vs Mandatory

�Detyre shtepie

Page 163: Software Engineering

163

Cka eshte dizajnim konceptualbazes se te dhenave?

� Process I pershkrimit te te dhenave, lidhjeve ne mes te dhenave dhe‘konstraints’(kufizimet) qe kane te dhenat.

� Pas analizes- Merr te gjitha informacionet e detajuara dhe mundohu te kuptosh si janete lidhura te dhenat

� Fokusi duhet te jete ne te dhenat dhe jo ne proceset.

� Rezultati i nje dizajnimi konceptual te njeDB eshte ‘Conceptual Data Model’

Page 164: Software Engineering

164

Mbledhja e informacionit per modelim konceptual te tedhenave

� Dy perspektiva

� Top-down (Nga larte-poshte)• Modeli perfitohet nga nje njohje e thelle dhe e

detajuar e biznesit.

� Bottom-up (Nga poshte-larte)• Modeli perftohet duke rishikuar specifikacionet e

biznesit dhe dokumentet.(p.sh duke shikuar Indexinsi dokument modelojme nje entitet INDEX me tegjitha detajet qe ka indexi)

Page 165: Software Engineering

165

Entity-Relationship (ER) Modeling

� ER Modeling eshte nje qasje nga larte-poshte ne dizajnimin e database.

� Entity Relationship (ER) Diagram� Prezantim I detajuar logjik i entiteve, lidhjeve dhe te dhenave te krijuara,

ruajtura dhe te perdoruara nga nje organizate apo biznes. � Entitetet zakonisht pasqyrojne te dhena te ngjajshme te informacionit. P.sh

Entitetit student(ID, emer, mbiemer,ditelindje..)

� Tre konsrtuktet kryesore te nje ERD Diagram� Entitiy� Relationships� Attributes

� Perdoren disa lloje simbolesh per ER modeling� Chen Model � Crow’s Foot Model� Information Enginering(IE)� Etj

Page 166: Software Engineering

166

Emri Entitetit Shprehje foljoreqe tregon lidhjen

Emri Atributit

Emri I Atributit osekarakteristikat e nje entiteti

Lidhja ne mesinstancave te njeapo me shumeentiteteve

Person, vend, objekt, ngjarjeper te cilat te dhenat duhet temirembahen

Pasqyron nje grup objektesh ne boten reale qe ndajnekarakteristikat e njejta

Chen Notation

Page 167: Software Engineering

167

Ndjek/Regjistron

Emri

Entitetit

EntityEntity AttributeAttribute

Emri entitetit

Lista e

atributeve

RelationshipRelationship

Shprehje foljoreqe tregonlidhjen ne mesentiteve

Crow’s Foot Notation

Student

ID

EmerMbiemer

Ditelinja

Fakulteti

dega

Emri fakAdresa

tel

Page 168: Software Engineering

168

Entity

� Person, vend apo ngjarje per te cilat duhette ruhen te dhenat.

� Shembuj entitetesh:� Person: PUNETOR, STUDENT, PACIENT� Vend: DYQAN, MAGAZINE� Objekt: MAKINE, PRODUKT, AUTOMJET� Ngjarje: SHITJE,REGJISTRIM, NDRYSHIM� Koncept: LLOGARI, DREJTIM FAKULTETI

� ‘Must be multiple occurrences’Nese nje firme ka vetem nje magazine a eshte

magazina Entitet? Mjeku duhet te ekziston ne menyre qe te caktohet nje

termin.

Page 169: Software Engineering

169

Attributes

� Informacioni qe ruhet per nje entitet

Shembull i atributeve te nje intiteti:

STUDENT: Student_ID, Student_Name,

Home_Address, Phone_Number

Page 170: Software Engineering

170

Identifiers-Identifikuesit

� Nje ose me shume atribute mund tesherbejne si identifikues te nje Entiteti.

� Shembull: studenti mund teidentifikohet nga student_ID. Gjithashtustudenti mund te identifikohej ngakombinimi i emrit dhe mbiemrit. Candidate key

� Nje Identifikues mund te jete “artificial’, siq eshte krijimi i ID number.

Page 171: Software Engineering

171

Relationships

� Relacioni apo lidhja ne mes entiteteve

� Entiteti i pare ne Lidhje eshte parent entity; entiteti i dyte ne Lidhje quhetchild entity

� Lidhjet duhet te emrohen me emrafoljor(active verb names)

� Lidhja eshte gjithmone e dyanshme

Page 172: Software Engineering

172

Shembull

Autori Libri

Emri Relacionit:

Shkruan/shkruhet

Nje autor Shkruan nje ose me shume libra

Nje liber mund te shkruhet nga nje ose me shume autor

Shenim:

Autor dhe Liber janeEMRA(noun)

Shkruan eshtefolje(verb)

Page 173: Software Engineering

173

Cardinality

� Kardinaliteti

� Numri minimal apo maksimal i instancave te nje entiteti A qe mund telidhet me cdo instance te entitetit B.

• one – to – one (1:1)

• one – to – many(1:M)

• many – to –many(M:N)

Page 174: Software Engineering

174

Modality-Optionality

� Modality Specifikon nese nje instance duhet te egzistoje apo mund temungoje ne nje lidhje te entiteteve

� NOT NULL (mandatory)

� NULL (optional) Optionality

Cardinality

Page 175: Software Engineering

175

Shembull Cardinality(1)

Profesor Lendaligjeron

Profesor Lendaligjeron

Profesori Ligjeron lenden OSELenda Ligjerohet nga Profesori

Sa? Sa lende? Sa profesor?

Sa? Sa lende? Sa profesor?

Page 176: Software Engineering

176

Shembull Cardinality(1)

Profesor Lenda

ligjeron

(1,1) (1,4)

Cardinality

Page 177: Software Engineering

177

Simbolet ne Lidhje

� Chen Model simbolet

� 1 pasqyron one.

� M pasqyron many

� Crow’s Foot simbolet

1

M

many

One

One or many

Mandatory one , nenkupton (1,1)

Zero or many

Page 178: Software Engineering

178

Lidhja Binare(1:M)

� One to many : Piktor Piktur

Pikturon

Relacioni One to many ne mes Piktorit dhe piktures

Page 179: Software Engineering

179

Lidhja Binare(1:1)

� Nje instance e vetme ne nje entiteteshte e lidhur me vetem nje instance te nje entiteti tjeter

� Ka indikacione qe te dy entitetet mundte shkrihen (jo gjithmone)

� Ndodh shume rralle ne nje ER model

Professor DepartmentUdheheq

Lidhja ne mes profesorit dhe departamentit

Page 180: Software Engineering

180

Page 181: Software Engineering

181

Lidhja Binare(M:N)� Kur nje instance e nje entitetit lidhet me shume instanca te entitetit

tjeter dhe anasjelltas.

� Duhet te ‘shmangen’ keto lloj lidhje sepse cojne ne te dhena teteperta (data redundancy )

� M:N lidhja nuk mund te perkthehet ne menyre direkte ne DB relacionale.

� Mund te implementohet duke shkeputur lidhjen M:N ne dy lidhje1:M

� Bridge Entity• Perdoret per te lidhur entitetet(tabelat) qe jane ne lidhje M:N• Struktura Bridge entity perfshin TE PAKTEN identifikuesit (PK) te entiteteve

qe lidhen nepermjet bridge entity.

Page 182: Software Engineering

182

Student Lenda

Ndjek/ndiqet

M:N Lidhja ne mes Studentit dhe lendeve

Hashim

Luan

Soft Engineering

Programim ne WWW

Analize Funksionale

Page 183: Software Engineering

183

Implementim i Gabuar

Kodi LendesStudent ID Klasa Koha Profesoriprog001 999 103 12:00 7653

ing082 888 202 16:00 3294ing082 777 202 13:00 3294

Student ID ST_name Kodi Lendes

999 Hashim prog001

888 Luan ing082

777 prakash ing082

888 Luan prog001

PK(student_id dhe kodi I Lendes)

PK(kodi I Lendes dhe student ID)

Page 184: Software Engineering

184

Bridge Entity

Student Lenda

Student Lenda

Ndjek

Regjistron

Bridge Entity: Nga M:N lidhje ne DY 1:M Lidhje

Page 185: Software Engineering

185

Student ID ST_name999 Hashim

888 Luan777 prakash

888 Luan

K od i L e nd esS tud en t ID No ta

p rog 00 1 9 9 9 7

in g0 82 8 8 8 6in g0 82 7 7 7 10

K od i L e nd esK las a K o h a P ro fe s or ip rog 00 1 1 0 3 12 :00 7 6 53

in g0 82 2 0 2 16 :00 3 2 94

in g0 82 2 0 2 13 :00 3 2 94

PK(kodi lendes student Id)

Page 186: Software Engineering

186

Mandatory VS Optional/ NULL VS Not NULL

Profesori LandaLigjeron

Nje profesor mund te ligjeron 0 ose me shume Lende.

Lenda mund te ligjerohen nga nje dhe vetem nje profesor

OptionalOptionalMandatoryMandatory

(0,N)(1,1)

Profesori Lenda

(0,N) (1,1)

Ligjeron1

M

Page 187: Software Engineering

187

Gabim I zakonshem

Cfare te dhene deshirojme te ruajme ??

Ne jemi te interesuar te modelojme te dhenat

dhe JO proceset apo funksionet qe perdorin apo

gjenerojne keto te dhena.

Modelimi I proceseve apo funksioneve ne vend te modelimit te te dhenave

Page 188: Software Engineering

188

Ushtrim� Jeni punesuar nga nje menaxher I nje dyqani qe shet ski. Detyra juaj eshte qe

te modeloni nje ERD qe sherben per inventarizimin e artikujve, Klienteve dheQerave te produkteve.

� Dyqani i skive jep me qera SKI dhe SAJA klienteve te vet. Cdo artikull ka kodine vet unik inventarit qe e identifikon artikullin. Menaxheri deshiron te dije madhesine e artikullit si dhe cmimin e qerase per cdo artikull. Cdo artikull ne inventar klasifikohet ne baze te modelit. Cdo artikull i takon ekzaktesiht vetem nje modeli. Dyqani i skive mund te kete shume artikuj qe i takojne nje modeli te caktuar.

� Perveq invertarit menaxheri i dyqanit deshiron te ruaje informacione rreth Modeleve si numri I modelit, ngjyren e modelit, vitin e modelit. Cdo model klasifikohet sipas stilit(JUMP, Freestyle).

� Gjithashtu menaxheri deshiron te ruaj edhe te dhenat per klientet si emrin, mbiemrin, adresen, qytetin shtetin dhe e-mail. Klienti mund te marre me qera cdo artikull nese eshte ne inventar(ne dyqan). Nje artikull gjithashtu mund e merret me qera vetem nga nje klient ne te njejten kohe.

� Punetoreve te Dyqanit te skive do te ju duhet nje forme e qerase e cila do tregon emrin e klientit dhe adresen, daten e kthimit te artikullit, cmimin e qerase

Page 189: Software Engineering

189

Intentionally left blank

Page 190: Software Engineering

190

Zhvillimi i Software

� Rapid Software Development –RSD

� Agile methods

� Programimi Ekstrem –XP

� Reuse Development

� Programimi Gjenerik

� COTS (commercial of the shelf)

� Evoluimi i software

Page 191: Software Engineering

191

Rapid software development

� Zhvillimi bazohet ne ate menyre kuspecifikacioni i kerkesave dhe dizajni eshtenje proces Iterativ.

� Zhvillimi behet ne menyre incrementale derisa te arrihet ne nje version stabil.

� Perdoruesit evaluojne cdo zhvillim te ri (cdoincrement) the bejne propozime per ndryshimet te reja.

� Kerkesat jane dinamike, zhvillimi eshtedinamik dhe dorezimi i soft. eshte i shpejtedhe dinamik.

Page 192: Software Engineering

192

Nje proces iterativ zhvillimi

Validate

increment

Build system

increment

Specify system

increment

Design system

architectur e

Define system

deliverables

System

complete?Integrate

increment

Validate

system

Deliver final

systemYES

NO

Page 193: Software Engineering

193

Avantazhed e zhvillimitIterativ(perserites)

� Sherbim i shpejte ndaj klientit.

C’do shvillim i ri (increment) ka ne vetevetefunksionalitetet prioritare te klientit.

� Angazhimi i perdoruesit me sistemin.

Perdoruesit duhet te jene patjeter teinvolvuar gjate tere kohes, qe d.m.th sistemine shumicen e rasteve i ploteson kerkesat e perdoruesit si dhe perdoruesit jane me shume te perkushtuar ndaj sistemit.

Page 194: Software Engineering

194

Disavantazhet e ZhvillimitIterativ

� Problemet e menaxhimit

� Eshte e veshtire te gjykohet Progresi dhe Problemetsepse nuk ka dokumentacion qe demostron se ckaeshte bere.

� Qeshtjet kontraktuale me klient

� Probleme me validimin/testimin

� Pa nje specifikacion, kundrejt cilitspecifikacion/kerkese te validohet sistemi?

� Problemet e Mirembajtjes

� Ndryshimet e vazhdueshme e bejne te veshtiremirembajtjen e software

.

Page 195: Software Engineering

195

Metodat Agile (shkathet)

� Nje qasje e zhvillimit iterativ(RAD) � Pakenaqesite me zhpenzimet e teperta qe

perfshihen gjate fazes se dizajnit çuan ne krijimin e metodave Agile. Keto meda:� Fokusohen me shume ne KOD se ne dizajn.� Bazohen ne qasjen iterative te zhvillimit te

software� Jane te destinuara per nje dorezim te shpejt

te nje software qe punon.

� Metodat Agile ndoshta jane me te mira per biznese te vogla apo te mesme.

Page 196: Software Engineering

196

Programimi Ekstrem -XP� XP - Extreme Programming

� Metoda me e njohur dhe me e perdorur Agile

� Metoda ekstreme ka nje qasje ‘ekstreme’ tezhvillimit iterativ� Versionet e reja mund te zhvillohen disa here

ne dite.

� ‘Increments’ dorezohen tek klienti c’do 1 apo 2 jave;

� Te gjitha testet duhet te behen ne cdo version, dhe nje version pranohet vete nese te gjithatestet kane qene te sukseseshem.

� Klienti duhet te jete i involvuar me orar teplote.

Page 197: Software Engineering

197

Skenaret e kerkesave ne XP

� Ne XP, kerkesat e perdoruesve jane teshprehura si skenare apo tregime teperdoruesve.

� Keta skenare shkruhen ne ‘karta’ dhe grupi i zhvilluesve i ndan ato ne aktivitete(pune) per implementim.

Downloadimi i nje artikulli me pagese

Fillimisht e zgjedh artikullin qe deshiron nga lista e artikujve.Pastaj ju I thoni sistemit se si do te paguani per kete artikull, kjo mund

Te jete nepermjet anetaresimit, llogarise se kompanise apo credit card.

Page 198: Software Engineering

198

Cikli i leshimit ne pune te njesoftware ne XP

Break down

stories to tasks

Select user

stories for this

release

Plan release

Release

software

Evaluate

system

Develop/integrate/

test software

Page 199: Software Engineering

199

RAD- rapid application development

� Edhe pse metodat Agile kane marre shumevemendje vitet e fundit, Sistemet e Biznesitjane zhvilluar ne menyre iterative per shume vite duke perdorur tekniken RAD.

� Keto sisteme biznesi jane dizajnuar qe tezhvillojne “data-intensive” aplikacionebiznesi dhe mbeshteten ne programimindhe paraqitjen e informacionit nga baza e tedhenave.

Page 200: Software Engineering

200

Veglat RAD-rapid application development

� Database programming language

� Interface Generator

� Links to office applications

� Report generators

Page 201: Software Engineering

201

Mjedisi RAD

DB

programming

language

Interface

generator

Office

systems

Report

generator

Database management system

Rapid application

development environment

Page 202: Software Engineering

202

Software ReuseRipordorimi i software

� Ne shumicen e disciplinave inxhinjerike, sistemet dizajnohen duke kompozuarkomponente ekzistuese te cilat jane perdorurne sisteme te tjera.

� Inxhinjerimi i software ka qene me shume i fokusuar ne nje zhvillim origjinal.

� Viteve te fundit eshte vene re se per te arriturnje software me te mire, me shpejte dhe me kosto me te ulet duhet te adaptohen procesedizajni qe jane bazuar ne riperdoriminsistematik te software.

Page 203: Software Engineering

203

Baza e Riperdorimit

� Application system reuse

� Nje applikacion i tere, i plote mund te riperdoret, oseduke e inkorporuar pa asnje ndryshim ne nje sistemtjeter (COTS commercial off-the-shelf reuse) oseduke zhvilluar aplikacion te te njejtes familje.

� Component reuse

� Komponentet e nje aplikacioni nga nen-sistemet deritek nje objekt mund te riperdoren (CBSE*)

� Object and function reuse

� Komponentet softuerike qe implementojne nje objektte definuar mire ose nje funksion mund te riperdoren

*CBSE- component based software engineering

Page 204: Software Engineering

204

Faktoret qe duhet konsideruarpara Riperdorimit te Soft.

� Orari dhe koha e zhvillimit te software

� Jetegjatesia e pritshme e software.

� Njohurite dhe eksperienca e grupit tezhvillimit.

� Rendesia e software dhe kerkesat e tijjofunksionale.

� Platforma e ekzekutimit te software.

� Domain i aplikacionit

Page 205: Software Engineering

205

Koncepti Riperdorim

� Kur riperdoret nje program apo nje komponent juduhet te ndiqni vendimet qe jane marre ngazhvilluesi origjinal.

� Kjo mund te kufizoje mundesine per riperdorim� Megjithate, nje forme me abstrakte e riperdorimit

eshte vete koncepti ‘riperdorim’ ku nje qasje e vecante e nje problemi eshte i pershkruar per njeimplementim te pavarur dhe pastaj behetimplementimi.

� Dy qasjet kryesore te konceptit Riperdorim jane: � Mostra Dizajni (design patterns) � Programimi Gjenerik/prodhues. (Generative

programming)

Page 206: Software Engineering

206

Mostra Dizajni- Design Patterns

� Moster dizajni eshte nje zgjidhje e pergjithshme qe perseritet per njeproblem qe ndodh shpesh ne soft. Dizajn.

� Nuk eshte nje dizajn i perfunduar qemund te transformohet direkt ne kod.

� Eshte nje pershkrim ose template se si te zgjidhet nje problem i cili mund teperdoret ne shume situata.

Page 207: Software Engineering

207

Programimi Gjenerik

� Programi gjenerik perfshine riperdorimin e mostrave standarde dhe algoritmeve.

� Keta jane te perfshire ne Gjenerator the teparametrizuar nga komandat e perdoruesit. Programi pastaj gjenerohet

� Riperdorimi gjenerik eshte i mundur kurdomaini abstrakt dhe lidhja e tyre ne kod teekzekutueshem mund te identifikohen.

� Per krijimin dhe kontrollin e ketijabstraksioni perdoren Gjuhe specifike tedomain.

Page 208: Software Engineering

208

Llojet e Programeve Gjenerik

� Llojet e programeve gjenerik

� Gjenerator aplikacionesh per procesim te tedhenave per biznese.

� Gjeneratoret e kodit ne CASE tools.

� Riperdorimi i programeve gjenerik eshte shume i shpejte dhe me kosto shume te ulet, porzbatueshmeria eshte shume e limituar.

� Bug Free!!??

� Provoni nje shembull programimi gjenerik - Iron Speed (www.ironspeed.com)

Page 209: Software Engineering

209

Riperdorimi gjate Gjenerimitte programit

Page 210: Software Engineering

210

MVC-Model View Controller

� MVC eshte nje moster dizajni(designpattern) shume e perdorur per GUI.

� E njejta e dhene e shfaqur ne forma tendryshme.

� models per mirembajtjen e te dhenave

� views per shfaqjen e te dhenave

� controllers per trajtimin(handling) e ngjarjeve te cilat afektojne modelin apoviews

Page 211: Software Engineering

211

MVC- Si punon

Page 212: Software Engineering

212

COTS- Commercial Off-The-Shelf systems

� Sistemet COTS jane sisteme tekompletuara te cilat ofrojne API per integrim.

(API -Application Programming Interface).

� Ndertimi i sistemeve te medha duke integruar sisteme COTS eshte njestrategji e zbatueshme dhe me benefit per disa sisteme sic jane p.sh E-Comerceapplicionet.

Page 213: Software Engineering

213

E-procurement system

Client

Web browser E-mail system

Server

E-commerce

systemOrdering and

invoicing system

E-mail system

Adaptor

Adaptor

Page 214: Software Engineering

214

Software -Linja Produkti

� Software ne formen e linjave te produktit janeaplikacione me funksionalitet gjenerik te cilatmund te adaptohen dhe konfigurohen per perdorim.

� Adaptimet mund te jene:� Konfigurimi i komponenteve dhe sistemit� Shtimi i nje komponenti ne sistem� Zgjedhja e komponenteve ekzistues nga librarija

e komponenteve� Modifikimi i nje komponenti per te permbushur

kerkesat e reja.

Page 215: Software Engineering

215

Evolucioni I Software

Ndryshimet ne software jane te paevitueshme

� Dalin kerkesa te reja duke u perdorur sistemi

� Mjedisi i biznesit ndryshon

� Gabimet (errors) duhet te rregullohen

� Paisje te reja shtohen ne sistem

� Performanca ose besueshmeria duhet tepermiresohet etj.

� Problemi kryesor i organizatave eshte implementimidhe menaxhimi I ndryshimeve ne softuerat ekzistues.

� Te analizohet procesi I evoluimit te software gjateprocesit te zhvillimit.

Page 216: Software Engineering

216

Kosto zhvillimit/mirembajtjes

0 50 100 150 200 250 300 350 400 450 500

System 1

System 2

Development costs Maintenance costs

$

Page 217: Software Engineering

217

Procesi i evoluimit tesoftware

Release

planning

Change

implementa tion

System

release

Impact

analysis

Change

requests

Platform

adaptation

System

enhancementFault repair