SE Leksion03 b

66
SOFTWARE ENGINEERING 3. 3. Procesi Procesi Modele te Procesit te software

description

sadasdsasasa

Transcript of SE Leksion03 b

  • SOFTWARE ENGINEERING

    3. Procesi

    Modele te Procesit te software

  • Modele te Procesit te Software

  • Modele te Procesit te SoftwareModele strategji qe perfshijne procesin, metodat, mjetet dhe hapat kryesoreCikli - nga status quo, ne percaktim te ri problemi, ne zhvillim te ri teknik, ne integrim zgjidhjeje

  • Modeli i Procesit: PershtatshmeriaAktivitetet baze te procesit do te aplikohen gjithmone ne cdo projekt, POR

    Punet per cdo aktivitet do te variojne duke u bazuar ne

    Tipi i projektit

    Karakteristika te projektit

    Konkurrenca e ekipit te projektit

  • Modeli Build-and-Fix

  • Modeli Build-and-Fix (Nderto-dhe-Rregullo)Produkti ndertohet pa specifikime ose design!!Funksionon per programe me 100 rreshta ose me pak.Shpenzimi total me shume sesa pritet.

    Ne vend te ketij modeli, nje plan i pergjithshem duhet te zgjidhet, duke vene ne jete nje lifecycle model (model cikli-jetesor) - faza, milestones, dokumentim, Modele cikli-jetesor reale pershkruhen

  • Modeli Build-and-Fix

  • Procesi: shkruaj kod, rregullo gabime, thekso funksionalitetinShume ndryshime strukturat e kodit behen me ngaterresa, te veshtira per tu rregulluarJo i pershtatshem per zhvillim sistemesh te medhenj per shkak te:Ndryshim personeliVeshtire te rregullosh kodKerkesa te perdoruesit mund te mos perputhen lehtesishtZhvillimi beheti paparashikueshemi pakontrollueshemJashte afatit kohor, mbi buxhet, cilesi e ulet nje zhvillim procesi software me rigoroz nevojitet!Modeli Build-and-Fix

  • Modeli Linear

  • Modeli Linear Hapat: System engineering - software eshte zakonisht vetem nje pjese e nje sistemi te madh ne fillim vendosen kerkesat per gjithe elementet e sistemit Analize Kerkesash fokusim ne cfare software duhet te beje Design - design nje strukture sistemi te bazuar ne analize Gjenerim Kodi Testim Mirembajtje

  • Modeli LinearSfida:E veshtire per klientin te deklaroje te gjitha kerkesat sic duhet, qartesisht, ne fillim te zhvillimit. Modeli nuk e lejon kete!Klienti duhet te kete durim nuk ka model(version) qe punon deri ne faze te mevonshme te projektit.Zhvilluesit shpesh here vonohen pa nevoje- ata bllokohen duke pritur per anetare te tjere te ekipit per te perfunduar punet e varura.

  • Modeli Waterfall

  • Modeli Waterfall

    Zgjerim i Modelit Linear - lejon feedback ne fazat e para, p.sh. Problemet e identifikuara ne fazat e mevonshme mund te kthehen ne fazat e meparshme per rregullim.

    Kemi perseri faza te ndara dhe te dallueshme te specifikimit dhe zhvillimit.

    Cdo faze ushqehet me info dhe dokumentim nga faza paraardhese.Per shkak te lejimit te feedback, procesi eshte sekuence perseritjesh te aktiviteteve te zhvillimit.

    Modeli Lifecycle Tradicional

  • Feedbackose ndryshimeInformacioni rrjedh nga nje faze ne tjetrenModeli Waterfall

  • Plus: kontrolle (korrektesi, standarde), shperndarje (dokumentim, kod), materiale trajnimi, . . .Modeli Waterfall

  • Probleme te Modelit Waterfall:

    Problemi i waterfall model eshte veshtiresia te pershtasesh ndryshim pasi procesi eshte ne perpunim.

    Ndarje JoFleksible e projektit ne faza te dallueshme- Kjo e ben te veshtire tu pergjigjesh ndryshimieve te kerkesave nga perdoruesi- Ndaj, ky model eshte I pershtatshem vetem kur kerkesat jane te kuptuara mire

    Tradicionalisht procedohet sepse modeli lejon ndarje te puneve ne njerez te ndryshem (analist, dizenjues, programues, testues)

  • Modeli Waterfall Real Denime financiare nqs probleme zbulohen vone ne lifecycle

  • Modelet me perseritje (Iterative Models)

  • Iterative ModelsPrototypingMock-up: nje model strukturor I plote I ndertuar me saktesiKeto dy modele jane perseritese(iterative) perserit deri ne sistemin final.

  • RAD

  • Modeli Prototyping

  • Modeli PrototypingHapa: Degjo kerkesat e klientitnderto prototype (prototip) - modelim i shpejteKlienti teston (Test drives) prototipin dhe jep sugjerime (feedback) tek zhvilluesitSfida:Fenomeni Hidh-Tutje (throw-away):prototipi duhet te hidhet poshte, dhe nje version tjeter duhet inxhinieruar ne menyre me robuste.Prototipet mund te cojne ne pretendime jorealiste per klientet

  • PrototypingI modeluar per te ndihmuar klientin dhe zhvilluesinte kuptoje kerkesat.

  • Aktivitete te Prototyping

  • Prototyping

  • Prototyping ne procesin e softwareThrow-away Prototyping (Prototipi hidh-tutje)Nje prototype, i cili eshte zakonisht nje implementim praktik i sistemit, eshte prodhuar per te ndihmuar zbulimin e problemeve ne kerkesa. Me pas ai hidhet. Sistemi me pas ndertohet duke perdorur te tjera procese zhvillimi. Objektivi i throw-away prototyping eshte te verifikoje apo formuloje kerkesat e sistemit. Procesi i prototyping filon me ato kerkesa qe jane te ndertuara me varfer.Evolutionary prototyping (prototip evolues)Nje menyre e zhvillimit te sistemit ku nje prototip fillestar prodhohet dhe riperpunohet mes nje numer fazash deri ne sistemin finalObjektivi i evolutionary prototyping (prototip evolues) eshte te japi nje sistem qe punon tek perdoruesit ne faza jo te vonshme. Zhvillimi fillon me ato kerkesa qe jane kuptuar me mire.

  • Modeli RAD

  • RAD ModelRapid Application Development-Zhvillim Aplikimi I ShpejtePershtatje me shpejtesi-te-larte sekuencave lineare, me cikel te shkurter (60-90 dite) duke perdorur ndertim te bazuar-ne-komponent.Hapat:Modelim BiznesiModelim te DhenashModelim ProcesiGjenerim AplikimiTestimPer te arritur kohe kaq te shkurter zhvillimi, cdo funksion paresor i software mund te adresohet vecas nga nje ekip RAD i ndare, dhe me pas integrohen per te formuar nje te tere.

  • RAD

  • Modeli RADSfidat

    Per projekte te medhenj, nevojiten burime njerezore te mjaftueshme per zhvillim te shpejte cikliPerkushtim i forte nga zhvilluesit dhe klientet per te perfunduar zhvillimin ne kohe te shkurter. Perfshin zgjidhje modulare perdorim komponentesh (components)Reusability(riperdorimi) disa here perfshin humbje ne performance

  • Tipare te orientimit me perseritje (Iterative Approach)

    Integrim i vazhdueshem

    - jo i bere ne nje faze para dates se shperndarjes

    Leshime (shperndarje) te ekzekutueshme te shpeshta

    Rreziqe nepermjet progresit te demostrueshem:- Progresi matet ne produkte, dhe jo dokumentim, apo vleresime inxhinierike

  • Profil Rreziku gjate Zhvillimit

  • Modele Evoluese (Evolutionary Models)

  • Modele Evoluese (Evolutionary Models)

    Software, si sisteme te tjera komplekse, evoluon me kohen.

    Modelet ne vazhdim perpiqen te kapin nevojen per tu perfshire me kete natyre evoluese (evolutionary nature)

    - modelet me perseritje (iterative models) qe lejojne zhvilluesin te prodhoje versione me te kompletuara te software.

  • Zhvillim Evolues(cdo version inkorporon kerkesa te reja)

  • Modeli Inkrementues-ne rritje (Incremental Model)

  • Modeli Inkrementues-ne rritje (Incremental Model)Modeli Linear (sequential) (i aplikuar me perseritje) , por I kombinuar me filozofi perseritese te prototypingSekuence lineare e aplikuar ne nje model perserites ne kohe.Produkti Baze (inkrementi I pare perfshin kerkesat baze) me theksime gjate kohes.Cdo inkrement eshte me funksionalitete extraPerdoruesi jep feedback(opinion) per cdo inkrementI perdorshem kur burimet njerezore/makinerike jane te kufizuara

  • Model Inkrementues

  • Modeli Spiral

  • Modeli Spiral (Spiral Model)Prototip perserites(iterative prototyping), me bashkesi aktivitetesh/rajone baze midis secilit cikel te spiralesCdo cikel rreth spirales adreson nje aktivitet te caktuar te ciklit-jetesorCikli i pare rreth spirales: specifikimeCikli i dyte: prototipCikli i Trete: leshim produktiPerfshin zhvillim dhe mirembajtjeSpiral with 4 rajone/aktivitete

  • Nje Model Evolues (Spiral)Spiral me 6 rajone

  • Nje model spiral I thjeshtezuar- 3 rajone me aktivitete te ciklit-jetesorper cdo cikel

  • Model spiral kompleks

  • Zhvillimi SpiralProcesi I zhvillimit te software prezantohet si nje spirale me shume sesa nje sekuence aktivitetesh.

    Cdo cikle ne spirale perfaqeson nje faze ne proces.

    Rreziqet jane adresuar qartesisht dhe zgjidhur pergjate gjithe procesit

  • Modeli SpiralSfidat:Veshtire per te treguar aftesi kontrolluese (masen dhe kohen e cdo cikli)Vleresimi I Rrezikut eshte thelbesorModel relativisht I ri (me pak eksperience)Pike Ky ne Modelin SpiralNqs te gjitha rreziqet nuk mund te zgjidhen, projekti nderpritet menjehere

  • Modeli Spiral i PloteParaprocedo cdo faze permesAlternativatAnaliza e Rrezikut (risk analysis)

    Ndiq cdo faze permesVleresimit Planifikimit te fazes tjeter

    Permasa rrezore (Radial dimension): shpenzim I pergjithshem ne kohe

    Permasa Kendi (Angular dimension): progresi ne proces

  • Sektoret e Modelit Spiral1.Vendosje ObjektivashObjektiva specifik per fazen identifikohen2.Vleresim Rreziku dhe uljeRreziqet vleresohen dhe aktivitetet vihen ne vendet e duhura per te ulur rreziqet kyc. Dallim baze i ketij modeli konsiderate e qarte e rrezikut.3.Zhvillim dhe validimZgjidhet nje model zhvillimi per sistemin, 4.PlanifikimProjekti rikontrollohet dhe faza tjeter e spirales planifikohet

  • Variacione - WINWIN SpiralNje variacion i standartit Model Spiral

    Identifiko njerezit stakeholders kyc, p.sh. klient, perdoruesPercakto kushtet fitueseFaza e negocimit(marreveshjes) ne fillim te cdo cikli percakton cfare do te permbushi kerkesa e njeres pale duke u balancuar me kerkest e zhvilluese per te mbajtur projektin brenda kohes dhe buxhetit.Rivleresim i kushteve fituese (win) ne nje bashkesi kushtesh win-win per gjithe projektinWin(fitore) per stakeholders dhe win(fitore) per zhvilluesit

  • Modeli Spiral WINWIN

  • Variacion Model Bashkim Komponentesh (Component Assembly)Modeli Spiral, plus riperdorimin e objekt-orientuar object-oriented reusability (bazuar ne komponente)

    Sfida:Reusability(riperdorimi) kerkon planifikim te kujdesshemShume programe ekzistuese nuk jane te riperdorshemMe I pershtatshem per fusha aplikimesh te vecanta (me modele riperdorimi- patterns of reuse te rendesishem)

  • Programim ExtremExtreme programming - XP

  • Extreme programming - XP

    Drejtim i ri per zhvillimin e bazuar ne ndertim dhe shperndarje te disa inkrementeve me funksionalitete te pakta.

    Mbeshtetet ne permiresim konstant kodi, perfshirje perdoruesi ne ekipin zhvillues, dhe programim ne cift/grup njeheresh (pairwise programming)

    Dy cilesi themelore te modelit

    - kurre mos dupliko kod- perdor modelin/design me te thjeshte te mundshem Testim i vazhdueshem- shkruaj testet para se te modelesh kodin

  • Extreme ProgrammingDrejtim i ri bazuar ne modelin inkrementHistori - tipare qe klienti do ne software.Vlereso zgjatjen dhe shpenzimin e cdo historieKlienti zgjedh histori per ndertimin(build) tjeterCdo ndertim (build) eshte I ndare ne pune me te voglaTeste per nje pune vizatohen ne fillimProgramim cift/grup njeheresh me nje/disa pune ne paralel.Integrim i vazhdueshem i puneve me versionin aktual te produktit.Pjese e asaj qe qeuhetZhvillim I shpejte/lirshem

  • Tipare te pazakonshme te XPKompjuterat vendosen ne qender te nje dhome te madhe te rreshtuar mjedis I perbashket Nje perfaqesues klienti eshte gjithmone prezentAsnje individ nuk lejohet tepunojne mbikohe per 2 jave te njepasnjeshmeSka specializim punesh cdo njeri ben cdo gjeModeli modifikohet nderkohe qe produkti ndertohet - quhet refactoring http://www.extremeprogramming.org/rules.html

    Ka shpjegime te thjeshta, te shkurtra.

  • Dokumentim

    XP nuk suporton dokumentim per te gjitha fazat!

    Ne jemi Extrem, jo te ceket! Ne dokumentojme cfare ka nevoje te dokumentohet, ne formen me efektive qe mund te gjejme.

    http://c2.com/cgi/wiki?ExtremeDocuments

    http://c2.com/cgi/wiki?XpHasWrittenDocuments

  • Proces Zhvillimi Software I unifikuar Unified Software Development Process (UP)Zgjedh nga praktikat me te mira :Modeli eshte me perseritje (iterative) dhe inkrementuesSiguron nje skelet procesi gjenerik specializim per fusha aplikimi specifike, organizime, masen e projektit, etj.Percakton nje bashkesi aktivitetesh (workflows-rrjedhe pune) transformon kerkesat e perdoruesit ne nje sistem softwarePercakton nje bashkesi modelesh nga abstrakte (nivel-perdoruesi) ne konkret (kod)Lejon zhvillim te bazuar ne komponent perberes software te nderlidhur me nderfaqe te percaktuara mire (well-defined)

  • Procesi Unifikuar (Unified Process) - MilestonesMilestone(pika me rendesi): nje pike vendimi qe percakton nese duhet autorizuar levizje per ne fazen tjeterFaza e fillimit marreveshje mes klienteve/zhvilluesve ne objektivat e ciklit jetesor te sistemitFaza e perpunimit/elaborimit marreveshje per arkitekturen e ciklit-jetesor, ceshtjet e biznesit, dhe planifikim projektiFaza e ndertimit - marreveshje per pranimin e produktit software nga ana e funksionaliteteve dhe nga ana e shpenzimit Faza Tranzit - marreveshje finale per pranimin e produktit software

  • Modeli Sinkronizo dhe Stabilizo

  • Modeli Sinkronizo dhe Stabilizo (Synchronize and Stabilize Model)Modeli I ciklit-jetesor te MicrosoftAnalize kerkesash intervisto kliente potencialVizato/nderto specifikimeNda projektin ne 3 ose 4 builds(pjese ndertimi)Cdo build (pjese ndertimi) behet nga ekpie te vogla qe punojne paralelisht.Ne fund te dites - sinkronizo (test dhe debug/hiq gabime)Ne fund te build - stabilizo (ndalo punen me build)Perberesit e build(pjese ndertimi) gjithmone punojne bashke

  • Modeli Microsoft i suksesshem per projekte shume te medha- Me shume se 3000 zhvillues dhe testues punuan ne Windows 2000

    Ekipe te vogla paralele me 3-8 zhvillues dhe 3-8 testues

    Individed lejoheshin per temodeluar dhe ndertuar specifikimin por:

    - Kodi duhet te integrohet cdo dite- Nqs kodi nuk kompilohet, atehere duhet rregulluar menjehere

    Por Microsoft eshte me shume se Sinkronizo dhe Stabilizo Suksesi I tyre bazohet ne nje kulture te forte korporate

  • Waterfall IterativeXP

  • Pyetje?