Inxhinieri Souftwerike

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/Engineer
  • 7/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