Upload
granit-zhubi
View
336
Download
2
Embed Size (px)
Citation preview
7/30/2019 Inxhinieri Souftwerike
1/61
Software Engineering
7/30/2019 Inxhinieri Souftwerike
2/61
Pr KursinProfesor: Astrit [email protected]
Qllimi:
Msimi dhe aplikimi praktik i t gjitha fazave n implementimin e njprojekti softuerik t mirfillt.
Literatura:Libri kryesor: Ian Sommerville, Software Engineering, AddisonWesley; 8 edition (May 25, 2006)Libri 1: B. Boehm, R. Turner, Balancing Agility and Discipline: A Guidefor the Perplexed, Addison-Wesley Professional; 1st edition (August 15,2003)Libri 2 : Jacobson Ivar, Booch Grady, Rumbaugh James: The unifiedsoftware development process, Addison-Wesley, 1999
Software Engineering
mailto:[email protected]:[email protected]:[email protected]:[email protected]7/30/2019 Inxhinieri Souftwerike
3/61
Pr Kursin
Notimi:2 Kollkofiume (50% + 50%)
Software Engineering
7/30/2019 Inxhinieri Souftwerike
4/61
7/30/2019 Inxhinieri Souftwerike
5/61
Softuerka e cilson nj software t mir?
Maintainability (Mirmbajtja)Depandability (Mbshtetshmria Sigurt, )Efficiency (Efiienca)
Usability (Prdorshmria) User Interface, Dokumentacioni
Software Engineering
7/30/2019 Inxhinieri Souftwerike
6/61
Inxhinier ???Kush sht inxhinier n kt list?
Hashim ThaiAlbert EinsteinMaradona
Karl Benz (zbulues i automobilit me benzin dhe themelues ikompanis Mercedes- Benz)
Latinisht : ingenium Menuri
Inxhiniert merren me zgjedhjen e problemeve praktike, duke aplikuar
metodat matematike dhe shkencore dhe duke i pas parasysh kufizimetteknike (http://en.wikipedia.org/wiki/Engineer)
Software Engineering
http://en.wikipedia.org/wiki/Engineerhttp://en.wikipedia.org/wiki/Engineer7/30/2019 Inxhinieri Souftwerike
7/61
Inxhinier i Software-it???1. Aplikim i metodologjis inxhinierike.
Perdori ne menyr sistematike metodat me te pershtatshme dukei pase parasysh kufizimet operacionale, buxhetore.
Duhet me funksionu!
2. Prfshin t gjitha aspektet e involvume n zhvillimin e softwareit. Jovetm me aspektet teknike t zhvillimit t kodit, po edhe me menaxhimt projektit.
Software Engineering
7/30/2019 Inxhinieri Souftwerike
8/61
Dallimi mes shkencave kompjuterike dhe software engineering?
Software Engineering
7/30/2019 Inxhinieri Souftwerike
9/61
Procesi Softuerik (Software process)
1. Me proces softuerik kuptojm nj grup te aktiviteteve dherezultateve t tyre t cilat si rezultat prfundimtar e kan njsoftuer.
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. Planifikimi fillestar / analiza fizibilitetit2. Analiza dhe prcaktimi i krkesave (Requirements)
3. Dizajni4. Zhvillimi / Implementimi5. aprovimi dhe dorzimi6. Prdorimi dhe Mirmbajtja
Software Engineering
7/30/2019 Inxhinieri Souftwerike
10/61
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
7/30/2019 Inxhinieri Souftwerike
11/61
Analiza dhe prcaktimi i krkesave (Requirements)
ka nnkuptojm me prcaktimin e krkesave?
s bashku me klientin/prdoruesin1. 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 krkesave2. Prcaktimi / definimi i krkesave
3. Specifikimi i krkesave
Kjo faz prcakton funksionimin e sistemitprej perspektivs sklientit
Software Engineering
7/30/2019 Inxhinieri Souftwerike
12/61
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 softueritModelo 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!
Kjo faz prcakton funksionimin e sistemitprej perspektivs s zhvilluesitt softuerit.
Software Engineering
7/30/2019 Inxhinieri Souftwerike
13/61
Zhvillimi / Implementimi
Cilat softuer procese involvohen n kt faz?1. Programimi2. Testimi
TestimiKundraj kafit testohen modulet e nj softueri? Modulet testohen kundraj specifikacionit t krkesave
Software Engineering
7/30/2019 Inxhinieri Souftwerike
14/61
Aprovimi dhe dorezimi
Aprovimi1. I gjith sistemi testohet kundraj krkesave t klientit
Dorzimi i softuerit
Software Engineering
7/30/2019 Inxhinieri Souftwerike
15/61
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
7/30/2019 Inxhinieri Souftwerike
16/61
Procesi Softuerik
Cilat ken aktivitetet?1. Planifikimi fillestar / analiza fizibilitetit2. Analiza dhe prcaktimi i krkesave (Requirements)3. Dizajni
4. Zhvillimi / Implementimi5. aprovimi dhe dorzimi6. Prdorimi dhe Mirmbajtja
Software Engineering
f
7/30/2019 Inxhinieri Souftwerike
17/61
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
Ka shum menyrame i strukturuaktivitetet
f i i
7/30/2019 Inxhinieri Souftwerike
18/61
Modelet e proceseve softuerike
A po ju kujtohet naj model i nj procesi softuerik?
UML? CASE? Waterfall?
Software Engineering
S f i i
7/30/2019 Inxhinieri Souftwerike
19/61
Modeli #1 Waterfall
Software Engineering
Analiza e kerkesave
Dizajni i sistemit
Testimi
Perdorimi dhe Mirmbajtja
Dizajni i programit
Programimi / Kodimi
Akceptimi Pranim Dorezimi
Kerkesat
Dizajni
Implementimi
Studimi i fizibilitetit
Fazat startohen ne mnyr sekuenciale,secila faz e pret tjetrn
Si po ju doket?
S f E i i
7/30/2019 Inxhinieri Souftwerike
20/61
Modeli #1 Waterfall
Prparsit1. 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 nseciln faze thellohet kuptimi i sistemit gj si konsekuence mund ta ketrishikimin e krkesave dhe plotsimin e tyre p.sh.
3. Ndryshimet kan si konsekuence hedhjen e procesit n fillim dhe mekt kushtojn shum.
Software Engineering
S f E i i
7/30/2019 Inxhinieri Souftwerike
21/61
Modeli #2 asja Evolutive
Sa ma shpejt me zhvillu/prezentu dika e pastaj s bashku me klientin meprpunu deri sa t arrihet nj gjendje e pranueshme...
Software Engineering
S f E i i
7/30/2019 Inxhinieri Souftwerike
22/61
Modeli #2 asja Evolutive
Software Engineering
Aktivitet paralele
Kerkesat
Dizajni
Zhvillimi
Verzioni fillestar
Verzionet e
paperfundume
Verzioni final
S ft E i i
7/30/2019 Inxhinieri Souftwerike
23/61
Modeli #2 asja Evolutive
Software Engineering
DesignImplementimi
VlersimiKrkesat
Prezentimi i par
Prezentimi i dyt
Prezentimi i tret
S ft E i i
7/30/2019 Inxhinieri Souftwerike
24/61
Modeli #2 asja evolutive
Prparsit?1. M efektiv n prodhimin e nj sistemi q i plotson krkesat e
menjhershme t klientit2. Zhvillim dhe kuptim hap mbas hapi i krkesave t sistemit
1. Mangsit?
N sisteme komplekse, me grupe t ndryshme, dizajnimi dhemirmbajtja e arkitekturs si sistemit e vshtir.
Software Engineering
S ft E i i
7/30/2019 Inxhinieri Souftwerike
25/61
Software Engineering
www.agilemanifesto.org
S ft E i i
7/30/2019 Inxhinieri Souftwerike
26/61
Modeli #3 CBSE Component Based SE
Ky model parasheh q nj pjes e sistemit tashm ekzistojn. Fokusi n integrimin e komponentave ekzistuese
Software Engineering
S ft E i i
7/30/2019 Inxhinieri Souftwerike
27/61
Modeli #3 CBSE Component Based SE
Prparsit?
1. Mangsit?
Software Engineering
Soft are Engineering
7/30/2019 Inxhinieri Souftwerike
28/61
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
Software Engineering
7/30/2019 Inxhinieri Souftwerike
29/61
Analiza e fizibiletitv - Sfidat
1. A sht lehte t prgjigjen pyetjet e mparshme n fillim?1. A ka specifikacion t mirfillt t krkesave2. A ka njohuri t mirfillt t sistemit3. A mund t planifikohen leht resurset dhe buxhetet.
nevojiten eksperta me prvoj
Software Engineering
Software Engineering
7/30/2019 Inxhinieri Souftwerike
30/61
Analiza e fizibiletit
1. Cilat informacione jan esenciale1. Kush sht klienti2. Shtrirja e puns (scope of Work)3. Dobia, benefitet4. Teknike . A ka minimum nj mnyr teknike me implementu
projektin5. Resorset: sa sht sasia e resurseve t nevojshme (n koh,staf, teknik, etj)
6. Alternativat: Cilat jan opsionet nse projekti nuk startohet
Software Engineering
Software Engineering
7/30/2019 Inxhinieri Souftwerike
31/61
Analiza e fizibiletit Shtrirja e puns
1. Shtrirja e puns prkufizon projektin1. Prmban 2. Prjashton 3. Varet nga 4. Zvendson
Mosprcaktimi i mirfillt i shtrirjs s puns shkas i zakonshmpr mosknaqsi nga ana e klientit
Software Engineering
Software Engineering
7/30/2019 Inxhinieri Souftwerike
32/61
Analiza e krkesave
Software Engineering
Te gjitha modele t e kane aktivitetin e analizes sekrkesave
Software Engineering
7/30/2019 Inxhinieri Souftwerike
33/61
Prcaktimi i krkesave t softuerit
s bashku me klientin/prdoruesin1. 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 sistemitprej perspektivs sklientit
Software Engineering
Software Engineering
7/30/2019 Inxhinieri Souftwerike
34/61
Procesi i percaktimit te kerkesave
Software Engineering
Studimi I
fizibilitetit
Analiza
e kerkesave
Klasifikimi/sistemimi
i krkesave
Specifikimi
I kerkesave
Raporti Ifizibilitetit
Dokumentimi I
kerkesave
Se bashku me
klientin
identifiko
kerkesat
Sistemoji kerkesat
ne menyre te
kuptueshme dhe t
rregullt
Analiza e kerkesave
(opcionale)
Software Engineering
7/30/2019 Inxhinieri Souftwerike
35/61
Analiza / identifikimi i krkesave
1. Prcaktim m gjeneral dhe abstrakt i krkesave1. Pr klientin, prdoruesin, Menagjmentin
2. Duhet t prcaktoj sakt se ka dshiron klienti1. Shrbimet q sistemi duhet ti ofroj2. Prkufizimet ndr t cilat sistemi duhet t funksionoj Shpesh definohen me nj dokument
Vegla Kryesore:
1. Takimet me klientin.1. Mu pregadite para takimit2. Me marr shnime3. Mundsisht n grupe t vogla4. Nse nuk kuptohet dicka mos e tejkalo
Software Engineering
Software Engineering
7/30/2019 Inxhinieri Souftwerike
36/61
Analiza e krkesave - Skenaret
Software Engineering
Shembull:Skenari:Klienti perdor online banking per nj Transakcion BankarPersoni: Filan Fisteku, pronar i nj biznesi.
Ambienti:Nga kompanija me notebook personal, permes Mozilla FirefoxSkenari:1. FF starton Firefoxing dhe jep adresen e bankes2. FF autentikohet prmes loginit dhe kodit3. Hapet faqja fillestare ku paraqiten t gjitha menyte kryesore4. FF zgjedh menyne transakcion bankar.
5. Hapet forma pr transakcione bankare me t gjitha fushat e nevojshme6. FF jep IBAN e prfituesit dhe shumn e caktuar7. Sistemi kontrollon IBAN, vlern e dhn dhe lajmron prdoruesin prsuksesin apo mos suksesin e transakcionit.8 FF klikon linkun logoff dhe lajmrohet.
Skenari sht nj vegl q prdoret gjat analizs s krkesave pr meprshkru nj interaksion t caktuar me sistemin
Software Engineering
7/30/2019 Inxhinieri Souftwerike
37/61
Modelimi i skenareve permes Use Cases
Software Engineering
Aktor shfrytzes i sistemit n nj rrolt caktuar PersonSistem i jashtm (external system)
Trheq parat
Klienti
Use case sht nj pun q duhet ta kryej aktori mendihmn e sistemit
Aktori sht gjithmon prfituesi i use case-it (
Software Engineering
7/30/2019 Inxhinieri Souftwerike
38/61
Use case Online Banking System
Software Engineering
Klienti
Transfero t holla
Kontrollo kontot
Software Engineering
7/30/2019 Inxhinieri Souftwerike
39/61
Use case Online Banking System
Software Engineering
Personi (assistent)
Kontrollo kontot
Aktori shtrrol e jo individ.
Personi(menaxher)
Kontrollo kontot
Transfero t holla
Software Engineering
7/30/2019 Inxhinieri Souftwerike
40/61
Relacionet mes use cases
Software Engineering
Klienti
Kontrollo kontot
Transfero t holla
Autentifikimin
prdoret pr ngjarjet q jan pjes e use case-it burimor
Software Engineering
7/30/2019 Inxhinieri Souftwerike
41/61
Relacionet mes use cases
Software Engineering
Klienti
Kontrollo kontot
Transfero t holla
KEK e nal rrymen
prdoret pr ngjarjet e jashtzakonshme q mund t ndodhin n
do koh
Software Engineering
7/30/2019 Inxhinieri Souftwerike
42/61
Identifikimi dhe prshkrimi i use case
Software Engineering
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
4. Prpilo nj list t use casesID Emri use casei Aktori primar Kompleksiteti prioriteti
1 Transfero t hollat Klienti Mesatar 1
2 Shiko kontot Klienti I ulet 2
Software Engineering
7/30/2019 Inxhinieri Souftwerike
43/61
Prcaktimi i use cases
Software Engineering
1. Identifiko elementet kryesore t use case-it
use Case Element Description
Numri i use case 1
Aplikacioni Cilit modul/sistem i takon
Emri i use case Transfero t hollatPrshkrimi Prshkrim m i detajshm i use case
Aktori kryesor Cili sht aktori kryesor n kt use case
Parakushtet Cilat jan parakushtet pr tu apliku ky rast
Trigger Cfare ngjarje inicon kete kerkese
Skenari bazik
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 Skenaret e vecanta, sikurse Kek nal rrymen
Software Engineering
7/30/2019 Inxhinieri Souftwerike
44/61
Shembull
Software Engineering
Pershkruaj procesin e aplikimit pr kredi me use case?
Software Engineering
7/30/2019 Inxhinieri Souftwerike
45/61
Software Engineering
Klienti
Trheq t hollat
pranonaplikacionin
nnpunsi
Proceson t hollat Aprovon krkesn
Aplikon per kredi
analisti
I bjen pishman
Software Engineering
7/30/2019 Inxhinieri Souftwerike
46/61
Detyr
Software Engineering
Prshkruaj me use case nj ueb faqe si e-bay me proceset bazike.
Software Engineering
7/30/2019 Inxhinieri Souftwerike
47/61
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
Software Engineering
7/30/2019 Inxhinieri Souftwerike
48/61
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
So t a e g ee g
Software Engineering
7/30/2019 Inxhinieri Souftwerike
49/61
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
g g
Software Engineering
7/30/2019 Inxhinieri Souftwerike
50/61
Analiza e krkesave krkesat jo-funksionale
g g
Software Engineering
7/30/2019 Inxhinieri Souftwerike
51/61
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 medicinialpr pacient
Krkesat etike
g g
Software Engineering
7/30/2019 Inxhinieri Souftwerike
52/61
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
g g
Software Engineering
7/30/2019 Inxhinieri Souftwerike
53/61
Prmbledhje
g g
Krkesat jo-funksinale
Krkesatfunksionale
Krkesat
User requirements
System requriements
Software Engineering
7/30/2019 Inxhinieri Souftwerike
54/61
Specifikimi i kerkesave1. 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)
g g
Software Engineering
7/30/2019 Inxhinieri Souftwerike
55/61
Data Flow Modeling
g g
Pjese e modelimit te proceseve/ngjarjeve(event)
Fokusi ne te dhenat dhe procesimin e tyre.
2 Menyra te modelimit
1 Gane dhe Sarson
Yourdon & Coad
Software Engineering
7/30/2019 Inxhinieri Souftwerike
56/61
Data Flow ModelingEntitetet jan burimi ose caku i tedhnave.Te dhnat duhette rrjedhin ngaentitetet ne procese.
Te dhnat qe shkojn ne entitete
duhette burojn nga proceset
Proceset dhe bazat e te dhnaveduhet te ken hyrje dhe dalje tedhnave
Inputet ne bazat e te dhnave burojnvetm prej proceseve
Outputet ne baza te dhnave shkojnvetm ne procese.
g g
Software Engineering
7/30/2019 Inxhinieri Souftwerike
57/61
Data Flow Modeling
1. Nivelet
Software Engineering
7/30/2019 Inxhinieri Souftwerike
58/61
Data Flow Modeling1. Kontext diagramet
Software Engineering
7/30/2019 Inxhinieri Souftwerike
59/61
Data Flow Modeling
Software Engineering
7/30/2019 Inxhinieri Souftwerike
60/61
Data Flow Modeling
Software Engineering
7/30/2019 Inxhinieri Souftwerike
61/61
Data Flow Modeling