Professional Documents
Culture Documents
Software Engineering
Pr Kursin
Profesor: Astrit Hyseni astrit@ubt-uni.net Qllimi: Msimi dhe aplikimi praktik i t gjitha fazave n implementimin e nj projekti softuerik t mirfillt. Literatura: Libri kryesor: Ian Sommerville, Software Engineering, Addison Wesley; 8 edition (May 25, 2006) Libri 1: B. Boehm, R. Turner, Balancing Agility and Discipline: A Guide for the Perplexed, Addison-Wesley Professional; 1st edition (August 15, 2003) Libri 2 : Jacobson Ivar, Booch Grady, Rumbaugh James: The unified software development process, Addison-Wesley, 1999
Software Engineering
Pr Kursin
Notimi: 2 Kollkofiume (50% + 50%)
Software Engineering
Softuer
ka sht? Kod programues Dokumentacion Te dhenat konfiguruese Software Gjenerik Excel Word MySQl Software specifik (costumized) Programi per numrimin e votave Programe kontabiliteti Cili sht dallimi esencial? Specifikacioni?
Software Engineering
Softuer
ka e cilson nj software t mir? Maintainability (Mirmbajtja) Depandability (Mbshtetshmria Sigurt, ) Efficiency (Efiienca) Usability (Prdorshmria) User Interface, Dokumentacioni
Software Engineering
Inxhinier ???
Kush sht inxhinier n kt list? Hashim Thai Albert Einstein Maradona Karl Benz (zbulues i automobilit me benzin dhe themelues i kompanis Mercedes- Benz) Latinisht : ingenium Menuri Inxhiniert merren me zgjedhjen e problemeve praktike, duke aplikuar metodat matematike dhe shkencore dhe duke i pas parasysh kufizimet teknike (http://en.wikipedia.org/wiki/Engineer)
Software Engineering
Inxhinier i Software-it???
1. Aplikim i metodologjis inxhinierike. Perdori ne menyr sistematike metodat me te pershtatshme duke i pase parasysh kufizimet operacionale, buxhetore. Duhet me funksionu! 2. Prfshin t gjitha aspektet e involvume n zhvillimin e softwareit. Jo vetm me aspektet teknike t zhvillimit t kodit, po edhe me menaxhim t projektit.
Software Engineering
Software Engineering
Procesi Softuerik (Software process)
1. Me proces softuerik kuptojm nj grup te aktiviteteve dhe rezultateve t tyre t cilat si rezultat prfundimtar e kan nj softuer. 2. Varsisht prej projektit ndryshojn edhe procesi softuerik i cili aplikohet. Nuk ka model universal . 1. Cilat jan hapat bazik ne zhvillimin e softuerit? 1. 2. 3. 4. 5. 6. Planifikimi fillestar / analiza fizibilitetit Analiza dhe prcaktimi i krkesave (Requirements) Dizajni Zhvillimi / Implementimi aprovimi dhe dorzimi Prdorimi dhe Mirmbajtja
Software Engineering
Analiza e fizibiletit
1. Sa ka pun n projekt? 2. A mund t implementohet projekti teknikisht? 3. Cili sht profiti? (Material, Social, zbavits, etj...) A e vlen? 4. Cili sht plani kohor? 1. A mund t realizohet? Kur shtrohen kto pyetje? Para se me ja nis projekti? ka ka si prfundim kjo analiz? Po/Jo Startimin e projektit ose refuzimin e ti.
Software Engineering
Analiza dhe prcaktimi i krkesave (Requirements)
ka nnkuptojm me prcaktimin e krkesave? s bashku me klientin/prdoruesin 1. Me i prcaktu detyrat e sistemit. 2. Me i prcaktu kufizimet e sistemit. 3. Me i prcaktu caqet e sistemit. N mnyr konsensuale dhe t kuptueshme pr te 2 palt 1. Analiza e krkesave 2. Prcaktimi / definimi i krkesave 3. Specifikimi i krkesave Kjo faz prcakton funksionimin e sistemit prej perspektivs s klientit
Software Engineering
Dizajni i sistemi dhe softuereit
ka nnkuptojm me dizajn t softuerit? Ndamja e krkesave n sisteme te harduerit dhe t softuerit Dizajn i sistemit Dizajni i softuerit Modelo funksionet e sistemit softuerik n nj form e cila pastaj mund t pasqyrohet n nj apo m shum aplikacione Si p.sh.? UML ? Unified Modeling Language!
Software Engineering
Zhvillimi / Implementimi
Cilat softuer procese involvohen n kt faz? 1. Programimi 2. Testimi
Testimi Kundraj kafit testohen modulet e nj softueri? Modulet testohen kundraj specifikacionit t krkesave
Software Engineering
Aprovimi dhe dorezimi
Aprovimi 1. I gjith sistemi testohet kundraj krkesave t klientit Dorzimi i softuerit
Software Engineering
Prdorimi dhe mirmbajtja
Prdorimi dhe mirmbajtja Cikli jetsor i nj softueri Prdorimi / Operimi Mirmbajtja Gabimet identifikohen dhe korrektohen Zhvillimi i mtutjeshm Sistemi evoluon n koh me ndrrimin e krkesave, Shtohen funksionalitete, adaptohen komponentt Qitja jasht funksionit
Software Engineering
Procesi Softuerik
Cilat ken aktivitetet? 1. Planifikimi fillestar / analiza fizibilitetit 2. Analiza dhe prcaktimi i krkesave (Requirements) 3. Dizajni 4. Zhvillimi / Implementimi 5. aprovimi dhe dorzimi 6. Prdorimi dhe Mirmbajtja
Software Engineering
Modelet e proceseve softuerike
ka ke nj proces softuerik? Nuk ka ndonj rregull universale n aplikimin e aktiviteteve n nj proces softuerik. Nj model softuerik sht nj reprezentim abstrakt i nj procesi softuerik.
Software Engineering
Modelet e proceseve softuerike
A po ju kujtohet naj model i nj procesi softuerik? UML? CASE? Waterfall?
Software Engineering
Modeli #1
Studimi i fizibilitetit Analiza e kerkesave Dizajni i sistemit Dizajni i programit Programimi / Kodimi Testimi Fazat startohen ne mnyr sekuenciale, secila faz e pret tjetrn Si po ju doket? Akceptimi Pranim Dorezimi Perdorimi dhe Mirmbajtja Implementimi
Waterfall
Kerkesat
Dizajni
Software Engineering
Modeli #1
Waterfall
Prparsit 1. Strukturim i qart dhe intuitiv i aktiviteteve 1. Mangsit? 1. Mungesa e fleksibilitetit n ndryshimin e parametrave t ndryshm gjat procesit softuerik. 2. Me zhvillimin e sistemit, sidomos atyre komplekse, me kalimin n seciln faze thellohet kuptimi i sistemit gj si konsekuence mund ta ket rishikimin e krkesave dhe plotsimin e tyre p.sh. 3. Ndryshimet kan si konsekuence hedhjen e procesit n fillim dhe me kt kushtojn shum.
Software Engineering
Modeli #2
asja Evolutive
Sa ma shpejt me zhvillu/prezentu dika e pastaj s bashku me klientin me prpunu deri sa t arrihet nj gjendje e pranueshme...
Software Engineering
Modeli #2 asja Evolutive
Aktivitet paralele
Kerkesat
Verzioni fillestar
Dizajni
Verzionet e paperfundume
Zhvillimi
Verzioni final
Software Engineering
Modeli #2
Vlersimi
asja Evolutive
Krkesat
Prezentimi i par
Prezentimi i dyt Prezentimi i tret
Implementimi
Design
Software Engineering
Modeli #2
asja evolutive
Prparsit? 1. M efektiv n prodhimin e nj sistemi q i plotson krkesat e menjhershme t klientit 2. Zhvillim dhe kuptim hap mbas hapi i krkesave t sistemit 1. Mangsit? N sisteme komplekse, me grupe t ndryshme, dizajnimi dhe mirmbajtja e arkitekturs si sistemit e vshtir.
Software Engineering
www.agilemanifesto.org
Software Engineering
Modeli #3
Ky model parasheh q nj pjes e sistemit tashm ekzistojn. Fokusi n integrimin e komponentave ekzistuese
Software Engineering
Modeli #3 CBSE Component Based SE
Prparsit? 1. Mangsit?
Software Engineering
Analiza e fizibiletit
1. Sa ka pun n projekt? 2. A mund t implementohet projekti teknikisht? 3. Cili sht profiti? (Material, Social, zbavits, etj...) A e vlen? 4. Cili sht plani kohor? 1. A mund t realizohet? Kur shtrohen kto pyetje? Para se me ja nis projekti? ka ka si prfundim kjo analiz? Po/Jo Startimin e projektit ose refuzimin e ti.
Software Engineering
Analiza e fizibiletitv - Sfidat
1. A sht lehte t prgjigjen pyetjet e mparshme n fillim? 1. A ka specifikacion t mirfillt t krkesave 2. A ka njohuri t mirfillt t sistemit 3. A mund t planifikohen leht resurset dhe buxhetet.
Software Engineering
Analiza e fizibiletit
1. Cilat informacione jan esenciale 1. Kush sht klienti 2. Shtrirja e puns (scope of Work) 3. Dobia, benefitet 4. Teknike . A ka minimum nj mnyr teknike me implementu projektin 5. Resorset: sa sht sasia e resurseve t nevojshme (n koh, staf, teknik, etj) 6. Alternativat: Cilat jan opsionet nse projekti nuk startohet
Software Engineering
Analiza e fizibiletit Shtrirja e puns
1. Shtrirja e puns prkufizon projektin 1. Prmban <listn e funksioneve > 2. Prjashton <listn e funksioneve > 3. Varet nga <lista e varshmerise> 4. Zvendson <lista e funksioneve q zvendsohen> Mosprcaktimi i mirfillt i shtrirjs s puns shkas i zakonshm pr mosknaqsi nga ana e klientit
Software Engineering
Analiza e krkesave
Te gjitha modele t e kane aktivitetin e analizes se krkesave
Software Engineering
Prcaktimi i krkesave t softuerit
s bashku me klientin/prdoruesin 1. Me i definu detyrat e sistemit. 2. Me i definu kufizimet e sistemit. 3. Me i definu caqet e sistemit.
N mnyr konsensuale dhe t kuptueshme pr te 2 palt Kjo faz prcakton funksionimin e sistemit prej perspektivs s klientit
Software Engineering
Procesi i percaktimit te kerkesave
Studimi I fizibilitetit
Analiza
e kerkesave
Klasifikimi/sistemimi i krkesave
Raporti I fizibilitetit
Specifikimi Se bashku me klientin identifiko kerkesat I kerkesave Sistemoji kerkesat ne menyre te kuptueshme dhe t rregullt Dokumentimi I kerkesave
Software Engineering
2. Duhet t prcaktoj sakt se ka dshiron klienti 1. Shrbimet q sistemi duhet ti ofroj 2. Prkufizimet ndr t cilat sistemi duhet t funksionoj Shpesh definohen me nj dokument
Vegla Kryesore: 1. Takimet me klientin. 1. Mu pregadite para takimit 2. Me marr shnime 3. Mundsisht n grupe t vogla 4. Nse nuk kuptohet dicka mos e tejkalo
Software Engineering
Analiza e krkesave - Skenaret
Skenari sht nj vegl q prdoret gjat analizs s krkesave pr me prshkru nj interaksion t caktuar me sistemin Shembull: Skenari:Klienti perdor online banking per nj Transakcion Bankar Personi: Filan Fisteku, pronar i nj biznesi. Ambienti:Nga kompanija me notebook personal, permes Mozilla Firefox Skenari: 1. FF starton Firefoxing dhe jep adresen e bankes 2. FF autentikohet prmes loginit dhe kodit 3. Hapet faqja fillestare ku paraqiten t gjitha menyte kryesore 4. FF zgjedh menyne transakcion bankar. 5. Hapet forma pr transakcione bankare me t gjitha fushat e nevojshme 6. FF jep IBAN e prfituesit dhe shumn e caktuar 7. Sistemi kontrollon IBAN, vlern e dhn dhe lajmron prdoruesin pr suksesin apo mos suksesin e transakcionit. 8 FF klikon linkun logoff dhe lajmrohet.
Software Engineering
Modelimi i skenareve permes Use Cases
Aktor shfrytzes i sistemit n nj rrol t caktuar Person Sistem i jashtm (external system)
Klienti
Trheq parat
Use case sht nj pun q duhet ta kryej aktori me ndihmn e sistemit Aktori sht gjithmon prfituesi i use case-it (
Software Engineering
Use case Online Banking System
Transfero t holla
Klienti
Kontrollo kontot
Software Engineering
Use case Online Banking System
Kontrollo kontot
Personi (assistent)
Kontrollo kontot
Personi (menaxher)
Transfero t holla
Software Engineering
Relacionet mes use cases <<include>>
<<includes>> Autentifikimin Klienti Transfero t holla <<includes>>
Kontrollo kontot
Software Engineering
Relacionet mes use cases <<extends>>
<<extends>> KEK e nal rrymen Klienti Transfero t holla <<extends>>
Kontrollo kontot
Software Engineering
Identifikimi dhe prshkrimi i use case
1. Mos u b perfeksionist. Nuk ka nevoj me ja qllu me t parn 2. Identifiko aktort s pari 3. Prcakto se ka duhet t bjn aktort prcakto use cases
Software Engineering
Prcaktimi i use cases
1. Identifiko elementet kryesore t use case-it
use Case Element Numri i use case Aplikacioni Emri i use case Prshkrimi Aktori kryesor Parakushtet Trigger Skenari bazik Skenaret e vecanta Description 1 Cilit modul/sistem i takon Transfero t hollat Prshkrim m i detajshm i use case Cili sht aktori kryesor n kt use case Cilat jan parakushtet pr tu apliku ky rast Cfare ngjarje inicon kete kerkese Rrjedha elementare e use casit, d.m.th. Skenari kur gjithecka shkon si duhet. Pa ngjarje te pazakonshme, ato perpunohen ne skenaret e vecanta. Skenaret e vecanta, sikurse Kek nal rrymen
Software Engineering
Shembull
Pershkruaj procesin e aplikimit pr kredi me use case?
Software Engineering
I bjen pishman
<<extends>>
Aplikon per kredi nnpunsi pranon aplikacionin Proceson t hollat <<includes>> Trheq t hollat <<includes>>
Klienti
analisti
Aprovon krkesn
Software Engineering
Detyr
Prshkruaj me use case nj ueb faqe si e-bay me proceset bazike.
Software Engineering
Klasifikimi i krkesave t softuerit
Sipas menyres se fomulimit Kerkesat e perdoruesve (user requirements) Nivel ma abstrakt dhe me gjeneral Pershkrim jo teknik Kryesisht ne gjuhe natyrale Kerkesat e sistemit (system requirements) Per implementues te sistemit Pershkrim i detajshem teknik
Software Engineering
Klasifikimi i krkesave t softuerit
Sipas natyres Krkesat funksionale Krkesat jo-funksionale
Krkesat funksionale ka duht t bj sistemi Klienti duhet t ket mundsi prmes internetit t procedoj nj transaksion bankar . Dokumentimi i krkesave funksionale duhet me qen Komplet Konsistent
Software Engineering
Klasifikimi i krkesave t softuerit
Krkesat jo-funksionale Nuk kan relacion direkt me krkesat e prdoruesit Adresojn vetit e sistemi n trsi Mbshtetshmria Siguria Performanca Menaxhimi i cilsis Menaxhimi i procesit t puns (p.sh.. Me prdor nj proces softuerik t caktuar) Krkesat e fushs domain requirements Programi i kontabilitetit duhet t funksionoj sipas ligjit t kosovs
Software Engineering
Analiza e krkesave krkesat jo-funksionale
Software Engineering
Klasifikimi i krkesave
Tipet e krkesave jo-funksionale Krkesat n produkt Krkesat jo- funksionale q kan t bjn me produkt P.sh. Pr embeded systems prkufizimi n memorie mund t jet faktor Portabiliteti (ka sht?) Krkesat organizative Krkesat n prcaktimin e procesit softuerik Krkesat n prcaktimin e mnyrs s implementimit (gjuha programuese) Krkesat e jashtme (external) Krkesat ligjore P.sh. Mbrojtja e t dhnave personale n nj sistem medicinial pr pacient Krkesat etike
Software Engineering
Klasifikimi i krkesave
ka jan konsekuencat e mos identifikimit t mir t krkesave funksionale ka jan konsekuencat e mos identifimit t mir t krkesave jo-funksionale Cilat verifikohen/testohen m leht
Software Engineering
Prmbledhje
Krkesat
System requriements
User requirements
Software Engineering
Specifikimi i kerkesave
1. Kerkesat e perdoruesve mund te mirren ne nje rrafsh me gjeneral? 1. Kerkesat e sistemit duhet pershkrim me i detajshem teknik? Specifikacioni i sistemit si set i modeleve. Perspektivat: Kontexti/Perkufizimi I sistemit Sjellja (behavioral) Struktura (structural)
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering