You are on page 1of 61

Software Engineering

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

Dallimi mes shkencave kompjuterike dhe 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!

Kjo faz prcakton funksionimin e sistemit prej perspektivs s zhvilluesit t softuerit.

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.

Ka shum menyra me i strukturu aktivitetet

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

CBSE Component Based SE

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.

nevojiten eksperta me prvoj

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

Analiza e kerkesave (opcionale)

Software Engineering

Analiza / identifikimi i krkesave


1. Prcaktim m gjeneral dhe abstrakt i krkesave 1. Pr klientin, prdoruesin, Menagjmentin

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)

Aktori sht rrol e jo individ.

Kontrollo kontot

Personi (menaxher)

Transfero t holla

Software Engineering
Relacionet mes use cases <<include>>
<<includes>> Autentifikimin Klienti Transfero t holla <<includes>>

Kontrollo kontot

<<includes>> prdoret pr ngjarjet q jan pjes e use case-it burimor

Software Engineering
Relacionet mes use cases <<extends>>
<<extends>> KEK e nal rrymen Klienti Transfero t holla <<extends>>

Kontrollo kontot

<<extends>> prdoret pr ngjarjet e jashtzakonshme q mund t ndodhin n do koh

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

4. Prpilo nj list t use cases


ID 1 2 Emri use casei Transfero t hollat Shiko kontot Aktori primar Klienti Klienti Kompleksiteti Mesatar I ulet prioriteti 1 2

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 funksionale Krkesat jofunksinale

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

Data Flow Modeling


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

Data Flow Modeling


Entitetet jan burimi ose caku i te dhnave. Te dhnat duhet te rrjedhin nga entitetet ne procese.

Te dhnat qe shkojn ne entitete duhet te burojn nga proceset


Proceset dhe bazat e te dhnave duhet te ken hyrje dhe dalje te dhnave Inputet ne bazat e te dhnave burojn vetm prej proceseve Outputet ne baza te dhnave shkojn vetm ne procese.

Software Engineering

Data Flow Modeling


1. Nivelet

Software Engineering

Data Flow Modeling


1. Kontext diagramet

Software Engineering

Data Flow Modeling

Software Engineering

Data Flow Modeling

Software Engineering

Data Flow Modeling

You might also like