Kapitulli 3 - Proceset Softuerike

50
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1 Proceset Softuerike

description

Proceset sowtverike

Transcript of Kapitulli 3 - Proceset Softuerike

Page 1: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Proceset Softuerike

Page 2: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 2

Objektivat

l Të prezantohen modelet e proceseve softuerikel Të përshkruhen tri modelet e përgjithshme të

proceseve dhe rastet kur ato mund të përdorenl Të përshkruhen modelet e proceseve për

inxhinierinë e kërkesave, zhvillimit të softuerit, testimit dhe evoluimit

l Të shpjegohet modeli i quajtur “Procesi Racional i Unifikuar” (Rational Unified Process)

l Të prezantohet teknologjia e veglave CASE që përkrah aktivitetet e proceseve softuerike

Page 3: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 3

Temat e mbuluara

l Modelet e proceseve softuerikel Përsëritja/Iteracioni e/i procesevel Aktivitetet e procesevel “Procesi Racional i Unifikuar” (Rational

Unified Process) l Inxhinieria softuerike e ndihmuar nga

kompjuteri

Page 4: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 4

Proceset softuerike

l Një grumbull i strukturuar i aktiviteteve të cilat duhet të kalohen për të zhvilluar një sistem softuerik• Specifikimi;• Dizajnimi;• Validimi;• Evoluimi.

l Modeli i një procesi softuerik paraqet reprezentim abstrakt (të përgjithshëm) të një procesi. I njëjti paraqet një përshkrim të një procesi nga një perspektivë e caktuar.

Page 5: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 5

Modelet e përgjithshme të proceseve softuerike

l Modeli “Ujëvara” (waterfall)• Faza të veçanta dhe të dallueshme të specifikimit dhe

zhvillimit.l Zhvillimi evolutiv

• Faza e specifikimit, zhvillimit dhe e validimit janë të kombinuara.

l Inxhinieria softuerike e bazuar në komponente• Sistemi krijohet përmes përdorimit të

komponentëve ekzistuese.l Ekzistojnë shumë variante të këtyre modeleve p.sh.

Zhvillimi formal, ku përdoret procesi softuerik i formës “Ujëvara”, por faza e specifikimit është një proces formal i cili përmirësohet përgjatë disa fazave deri sa të arrihet te një format që është i implementueshëm.

Page 6: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 6

Modeli “Ujëvara” (Waterfall)

Requirementsdefinition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Definimi i kërkesave

Dizajni i sistemit dhe softuerit

Implementimi dhe testimi i njësisë

Integrimi i dhe testimi i sistemit

Vënia në përdorim dhe mirëmbajtja

Page 7: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 7

Fazat e modelit “Ujëvara”

l Analiza dhe definimi i kërkesavel Dizajni i sistemit dhe softueritl Implementimi dhe testimi i njësisël Integrimi i dhe testimi i sistemitl Vënia në përdorim dhe mirëmbajtjal E meta kryesore e modelit “Ujëvara” qëndron

në vështirësinë për trajtuar ndryshimin e kërkesave, të cilat mund të paraqiten pasi faza e specikacionit të ketë përfunduar. Sipas këtij modeli, duhet të përfundohet faza aktuale para se të kalohet në fazën vijuese.

Page 8: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 8

Të metat e modelit “Ujëvara”

l Mungesa e fleksibilitetit për të ndarë projektin në disa etapa, e bënë të vështirë marrjen për bazë kërkesave të ndryshueshme të konsumatorit

l Si rrjedhojë, ky model është i përshtatshëm vetëm në rastet kur kërkesat janë mirë të kuptueshme që në fillim të procesit dhe ndryshimet eventuale të mëvonshme janë mjaftë të kufizuara

l Shumë pak sisteme softuerike kanë kërkesa stabile / të pandryshueshme

l Modeli “Ujëvara” në përgjithësi përdoret për projekte të mëdha të inxhinierisë së sistemeve, me që rast sistemi zhvillohet në disa vende/lokacione të ndryshme

Page 9: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 9

Zhvillimi evolutiv

l Zhvillimi kërkimor / eksplorues• Objektivi është që të punohet në bashkëpunim me

klientët dhe të zhvillohet sistemi përfundimtar duke filluar nga një specifikim bazë fillestare. Procesi fillon me rastin e kuptimit të kërkesave bazë, e më pastaj në vijueshmëri shtohen tipare të reja ashtu siç kërkohet nga ana e konsumatorit.

l Krijimi i prototipit (i cili nuk përdoret)• Objektivi është që të kuptohen kërkesat e

sistemit. Fillohet me kërkesat që në fillim nuk janë mirë të kuptuara, por me rastin e krijimit të prototipit kuptohet saktë se cilat janë kërkesat e vërteta nga sistemi.

Page 10: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 10

Zhvillimi evolutiv

Concurrentactivities

ValidationFinal

version

Development Intermediateversions

SpecificationInitial

version

OutlinedescriptionPërshkrimi i përgjithshëm

Verzioni fillestar

Verzionet e ndërmjetme

Verzioni final

Specifikimi

Zhvillimi

Validimi

Aktivitetetmomentale

Page 11: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 11

Zhvillimi evolutivl Të metat

• Mungesa e ndarjes së proceseve;• Shpesh sistemet nuk janë mirë të strukturuara;• Shkathtësi të veçanta (p.sh. njohja e gjuhëve

programuese për krijim të shpejt të prototipit) mund të jenë të nevojshme. P.sh. Actor-Based Concurrent Language, Agora, Cecil,Cel, ColdC, etj.

l Zbatueshmëria• Për sisteme interaktive të vogla apo të mesme;• Për pjesë të sistemeve të mëdha (p.sh. ndërfaqja e

shfrytëzuesit);• Për sisteme me jetëgjatësi të shkurtër

Page 12: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 12

Inxhinieria softuerike e bazuar në komponente

l Mbështetet në ripërdorimin e pjesëve softuerike, me që rast sistemi zhvillohet duke përdorur komponentët ekzistuese ose komponentët COTS (Commercial-off-the-shelf)

l Etapat e procesit• Analiza e komponentëve;• Modifikimi i kërkesave;• Dizajni i sistemit përmes ripërdorimit;• Zhvillimi dhe integrimi.

l Kjo metodë po përdoret gjithnjë e më shumë përderisa standardet për zhvillim të komponentëve tani më veç janë të shfaqura.

Page 13: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 13

Zhvillimi i orientuar në ri- përdorim

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

Analiza e komponenteve

Specifikimi i kërkesave

Modifikimi i kërkesave

Dizajni i sistemit me ri-përdorim

Zhvillimi dhe integrimi

Validimi i sistemit

Page 14: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 14

Përseritja/Iteracioni e/i proceseve

l Kërkesat e sistemit gjithnjë evulojnë gjatë rrjedhës së projektit. Si rrjedhojë, përsëritja e proceseve të cilat janë kaluar në faza të mëhershme të projektit, ndodhë vazhdimisht gjatë inxhinierisë së sistemeve të mëdha softuerike.

l Përsëritja (Iteracioni) mund të aplikohet te cilido model i përgjithshëm i proceseve softuerike

l Dy metoda të përafërta:• Zhvillimi rritës;• Zhvillimi spiral.

Page 15: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 15

Zhvillimi rritës (Incremental delivery)

l Në vend se të dorëzohet për njëherë në përdorim sistemi si tërësi e përfunduar, procesi i zhvillimit dhe dorëzimit në përdorim ndahet në disa faza, me që rast secila prej tyre shtonë një funksionalitet shtesë në pjesën e sistemit paraprak.

l Bëhet lista prioritare e kërkesave të përdoruesit, me që rast kërkesat me prioritet më të lart përfshihen në fazat e mëhershme të zhvillimit të sistemit.

l Në momentin kur fillon procesi i zhvillimit për një fazë të caktuar, kërkesat “ngrihen” gjerë në fazën e ardhshme, të cilat mund të evoluojnë apo ndryshojnë

Page 16: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 16

Zhvillimi rritës (Incremental development)

Validateincrement

Develop systemincrement

Design systemarchitecture

Integrateincrement

Validatesystem

Define outline requirements

Assign requirements to increments

System incomplete

Finalsystem

Defino kërkesat e përgjithshme

Ndaj kërkesat në faza të ndryshme

Dizajno arkitekturën e sistemit

Zhvillo një pjesë të sistemit

Valido pjesën e zhvilluar

Integor pjesën e zhvilluar

Valido sistemin në tërësi

Sistemi i pakompletuar

Sistemi final

Page 17: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 17

Përparsitë e zhvillimit rritës

l Konsumatori do të filloj të punoj me module të caktuar të sistemit që nga fazat e hershme

l Funksionaliteti i moduleve të hershme shërben si prototip që ndihmon në kuptimin më të mirë të kërkesave për fazat e mëvonshme

l Rrezik më i vogël për dështim të projektit.l Shërbimet prioritare të sistemit do të kenë

testim më të gjatë.

Page 18: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 18

Programimi ekstrem

l Metodë zhvilluese që bazohet në krjimin dhe më pastaj liferimin (futjen në përdorim) e pjesëve të vogla të funksionalitetit për secilën fazë/iteracion të përsëritur

l Mbështetet në përmirësimin e vazhdueshëm të kodit, përfshirjen e shfrytëzuesit të ardhëshëm të sistemit në ekipin e zhvillimit si dhe programimin në çifte

Page 19: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 19

Zhvillimi spiral

l Në vend të sekuencës së aktiviteteve me reaktivitet, në këtë metodë procesi paraqitet në formë të spirales

l Secila unazë në spirale paraqet një fazë në procesin e zhvillimit

l Nuk ka faza fikse sikurse që janë specifikimi apo dizajnimi – unazat në spirale zgjedhën në varësi të asaj se çka kërkohet.

l Në veçanti, rreziqet për projektin vlerësohen dhe mënjanohen gjatë tërë procesit.

Page 20: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 20

Modeli i spirales për procesin softuerik

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2Prototype 3

Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

designCode

Unit testIntegration

testAcceptancetestService Develop, verify

next-level product

Evaluate alternatives,identify, resolve risks

Determine objectives,alternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

Determine objectives, alternatives and constraints

Page 21: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 21

Sektorët e modelit të spirales

l Përcaktimi i objektivave• Bëhet identifikimi i objektivave specifike për fazën

momentalel Vlerësimi dhe zvogëlimi i riskut

• Vlerësohen rreziqet dhe planifikohen aktivitetet për të zvogëluar rreziqet kryesore.

l Zhvillimi dhe validimi• Bëhet zgjidhja e një modeli zhvillimor për sistemin, i cili

mund të jetë cilido nga modelet e përgjithshmel Planifikimi

• Bëhet rishikimi i projektit dhe planifikohet faza tjetër e spirales.

Page 22: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 22

Aktivitetet e proceseve

l Specifikimi i softueritl Dizajni dhe implementimi i softueritl Validimi i softueritl Evoluimi i softuerit

Page 23: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 23

Specifikimi i softuerit

l Procesi i përcaktimit të shërbimeve që kërkohen dhe kushtëzimeve që do të ketë sistemi gjatë përdorimit dhe zhvillimit.

l Procesi i inxhinierisë së kërkesave• Studimi i fizibilitetit;• Përcaktimi dhe analiza e kërkesave;• Specifikimi i kërkesave;• Validimi i kërkesave.

Page 24: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 24

Procesi i inxhinierisë së kërkesave

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

Systemmodels

User and systemrequirements

Requirementsdocument

Studimi i fizibilitetit

Përcaktimi dhe analiza e kërkesave

Specifikimi i kërkesave

Validimi i kërkesave

Raport i fizibilitetit

Modelet e sistemit

Kërkesat e shfrytëzuesit dhe të sistemit

Dokumenti i kërkesave

Page 25: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 25

Dizajni dhe implementimi i softuerit

l Procesi i konvertimit të specifikacioneve të sistemit në një sistem që mund të ekzekutohet.

l Dizajni i softuerit• Dizajnimi i strukturës së softuerit që realizon

specifikacionet;l Implementimi

• Përkthen strukturën e krijuar të softuerit në një program ekzekutiv;

l Aktivitetet e dizajnit dhe implementimit ndërlidhen ngushtë në mes vete dhe ndonjëherë ato mund të kenë bashëkdyzim.

Page 26: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 26

Aktivitetet e procesit të dizajnit

l Dizajni i arkitekturësl Specifikimi në formë abstraktel Dizajni i ndërfaqës /Interfejsitl Dizajni i komponentëvel Dizajni i strukturës së të dhënavel Dizajni i algoritmeve

Page 27: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 27

Procesi i dizajnit të softuerit

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specificationAlgorithm

specification

Requirementsspecification

Design activities

Design products

Specifikimi i kërkesave

Dizajni i arkitekturës

Specifikimi abstraktë

Dizajni i ndërfaqës

Dizajni i komponentëve

Dizajni i strukturës së të dhënave

Dizajni i algoritmeve

Arkitektura e sistemit

Specifikimi i sistemit

Specifikimi i ndërfaqës

Specifikimi i komponentëve

Specifikimi i strukturës së të dhënave

Specifikimi i algoritmëve

Aktivitetet e dizajnit

Produktet e dizajnit

Page 28: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 28

Metodat e strukturuara

l Metodat sistematike për zhvillim të dizajnit të softuerit

l Dizajni zakonisht dokumentohet përmes një numri të caktuar të modeleve grafike.

l Modelet e mundshme• Modeli i objekteve;• Modeli i sekuencës;• Modeli i tranzicionit të gjendjes;• Modeli i strukturuar;• Modeli i rrjedhës së të dhënave.

Page 29: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 29

Programimi dhe debagimi (menjanimi i gabimeve)

l Përkthimi i e një specifikacioni të dizajnit në program, si dhe mënjanimi i gabimeve nga ai program.

l Programimi është një aktivitet personal – nuk ekziston një proces i përgjithshëm i programimit.

l Programuesit bëjnë disa testime në mënyrë që të largojnë mundësitë për dështim të programit duke i mënjanuar gabimet gjatë procesit të debagimit.

Page 30: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 30

Procesi i debagimit

Locateerror

Designerror repair

Repairerror

Re-testprogram

Gjeje gabimin

Dizajno zgjidhjen e gabimit

Korrigjogabimin

Testo sërish programin

Page 31: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 31

Validimi i softuerit

l Verifikimi dhe validimi (V & V) synon të siguroj që sistemi është krijuar konform specifikacioneve dhe plotëson kërkesat e shfrytëzuesve të sistemit.

l Përfshinë kontrollimin dhe rishikimin e proceseve dhe testimin e sistemit.

l Testimi i sistemit bëhet përmes ekzekutimit të sistemit me të dhënat reale duke përdorur skenarët testues që janë përgatitur gjatë fazës specifikimit.

Page 32: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 32

Procesi i testimit

Componenttesting

Systemtesting

Acceptancetesting

Testimi i komponenteve

Testimi i sistemit

Testimi për pranim

Page 33: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 33

Fazat e testimitl Testimi i komponentës apo njësisë

• Komponentët e veçanta testohen në mënyrë të pavarur;

• Komponentët mund të jenë funksionet apo objektet ose grupime me lidhje logjike të këtyre entiteteve.

l Testimi i sistemit• Testimi i sistemit si tërësi. Në veçanti është e

rëndësishme të bëhet testimi i tipareve të zhvilluara të sistemit.

l Testimi për pranim• Testimi me të dhëna të klientëve për t’u siguruar

që sistemi plotëson nevojat e klientëve.

Page 34: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 34

Fazat e testimit

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand test

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

Service Acceptancetest

Systemintegration test

Sub-systemintegration test

Specifikimi i kërkesave

Specifikimi i sistemit

Dizajni i sistemit

Dizajni i detajuar

Plani për testin e pranimit

Plani për testin e integrimit të sistemit

Plani për testin e integrimit të nënsistemeve

Testimi i moduleve dhe njësive të kodit

Testimi i integrimit të nënsistemeve

Testimi i integrimit të sistemitTestimi për

pranimShërbimi

Page 35: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 35

Evoluimi i softuerit

l Softueri për nga natyra është fleksibël dhe mund të ndryshojë.

l Me ndryshimin e kërkesave si rrjedhojë e ndryshimit të kushteve të punës, edhe softueri që përkrah punën duhet të evoluoj dhe ndryshoj.

l Edhe pse gjithnjë ka ekzistuar  një ndarje në mes të fazës së zhvillimit dhe atë të evolucionit (mirëmbajtjes) kjo është gjithnjë më e parëndësishme pasi sistemet gjithnjë e më pak janë krejtësisht të reja 

Page 36: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 36

Evoluimi i softuerit

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

Newsystem

Existingsystems

Defino kërkesat e sistemit

Vlerëso sistemet ekzistuese

Sistemet ekzistuese

Propozo ndryshimet e sistemit

Modifiko sistemet

Sistemi i ri

Page 37: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 37

Procesi Racional i Unifikuar (The Rational Unified Process)

l Një model modern i proceseve i krijuar nga puna e bërë në zhvillimin e UML (Unified Modeling Language) dhe proceseve përkatëse.

l Përshkruhet zakonisht nga 3 perspektiva• Perspektiva dinamike që tregon fazat përgjatë

kalimit të kohës;• Perspektiva statike që tregon aktivitetet e procesit;• Perspektiva praktikë që sugjeron praktikën e mirë.

Page 38: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 38

Modeli i fazave të RUP-së

Phase iteration

Inception Elaboration Construction Transition

Përseritja/Iteracioni i fazave

Fillimi Përpunimi Ndërtimi Tranzicioni

Page 39: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 39

Fazat e RUP-së

l Fillimi / Inception• Analiza nëse krijimi i sistemit është i arsyeshëm.

l Përpunimi / Elaboration• Kuptimi më në detaje i domenit të sistemit si dhe

krijimi i arkitekturës së sistemit.l Ndërtimi / Construction

• Dizajni, programimi dhe testimi i sistemit.l Tranzicioni / Transition

• Vendosja e sistemit në ambientin e tij të operimit

Page 40: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 40

Praktikat e mira të RUP-së

l Zhvillimi i softuerit në mënyrë iterative / të përsëritur

l Menaxhimi i kërkesavel Përdorimi i arkitekturës të mbështetur në

komponentel Modelimi i softuerit në mënyrë vizualel Verifikimi i kualitetit të softueritl Kontrollimi i ndryshimeve të softuerit

Page 41: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 41

Përshkrimi i hapave të ndryshëm të punësHapi i punës Përshkrimi

Modelimi i punës Modelet e punës modelohen përmes përdorimit të skenarëve të shfrytëzimit.

Kërkesat Bëhet identifikimi i aktorëve të cilët ndër-veprojnë me sistemin dhe më pastaj krijohen skenarët e përdorimit në mënyrë që të modelohen kërkesat e sistemit.

Analiza dhe dizajni Bëhet krijimi i modelit të dizajnit, i cili dokumentohet duke përdorur modelin e arkitekturës, modelin e komponentëve, modelin e objekteve dhe modelin e sekuencave.

Implementimi

Komponentët në sistem implementohen dhe organizohen në nënsisteme. Gjenerimi automatik i kodit nga modelet e dizajnit shpejton procesin e implementimit.

Testimi Testimi është një proces i përsëritshëm i cili zhvillohet për gjatë tërë fazës së implementimit. Testim i sistemit bëhet pas përfundimit të fazës së implementimit.

Vënia në përdorim Versioni përfundimtar i sistemit krijohet dhe më pastaj dërgohet te shfrytëzuesit për instalim dhe përdorim..

Konfigurimi dhe menaxhimi i ndryshimeve

Ky hapi i punës menaxhon ndryshimet në sistem.

Menaxhimi i projektit Ky hapi punës menaxhon tërë procesin e zhvillimit të softuerit.

Ambienti Ky hap i punës ka të bëjë me zgjedhjen e veglave të përshtatshme softuerike për ekipin zhvillues.

Page 42: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 42

Inxhinieria softuerike e ndihmuar nga kompjuteri

l Inxhinieria softuerike e ndihmuar nga kompjuteri (Computer-aided software engineering -CASE) bëhet përmes softuerëve përkatëse të cilat përkrahin fazat e ndryshme të ciklit jetësor të softuerit.

l Automatizimi i aktiviteteve• Editorët grafik për zhvillimin e modelit të sistemit;• Fjalorët e të dhënave që menaxhojnë entitetet e

dizajnit;• Ndërtuesit e ndërfaqës grafike (GUI);• Debaguesit që përkrahin gjetjen e gabimeve në

program;• Përkthyesit automatik të cilët mund të gjenerojnë

verzione të reja të një programi.

Page 43: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 43

Teknologjia CASE

l Zhvillimi i teknologjisë CASE ka sjellë përmirësim të theksuar në proceset softuerike. Megjithatë ky zhvillim i teknologjisë CASE nuk është i nivelit që më herët është menduar.• Inxhinieria softuerike kërkon mendim kreativ – gjë

që nuk është e lehtë të automatizohet;• Inxhinieria softuerike është një aktivitet ekipor, për

projekte më të mëdha, kalohet shumë kohë në ndërveprimet në mes të anëtarëve të ekipit. Teknologia CASE nuk e përkrah në nivel të kënaqshëm punën ekipore.

Page 44: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 44

Klasifikimi i veglave CASE

l Klasifikimi mundëson njohjen e llojeve të ndryshme të veglave CASE, si dhe përkrahjen e tyre për aktivitetet e proceseve.

l Perspektiva funksionale• Veglat ndahen në bazë të funksioneve të tyre specifike.

l Perspektiva e proceseve• Veglat ndahen në bazë të aktiviteteve të proceseve që

ato përkrahin.l Perspektiva e integrimit

• Veglat ndahen në bazë të organizimit të tyre në njësitë e integruara

Page 45: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 45

Klasifikimi i veglave sipas funksionalitetit

Lloji i veglës Shembuj

Veglat për planifikim Veglat PERT, veglat e vlerësimit, spreadsheets

Veglat e editimit Editorët e tekstit, editorët e diagrameve, procesorët e fjalëve

Veglat për menaxhim të ndryshimeve

Veglat për formulimin e kërkesave, sistemet për kontroll të ndryshimeve

Veglat për menaxhim të konfigurimeve

Sistemet për menaxhim të versionit, veglat për ndërtim të sistemit

Veglat për krijim të prototipit Gjuhët shumë të larta, gjeneruesit e ndërfaqës së shfrytëzuesit

Veglat për përkrahje të metodave të punës

Editorët e dizajnit, fjalorët e të dhënave, gjeneruesit e kodit

Veglat për procesim të gjuhëve Kompjajlerët, interpreterët

Veglat për analizë të programit Gjeneruesit e referencave kryqëzuese (Cross-reference generators), analizuesit statik, analizuesit dinamik

Veglat për testim Gjeneratorët e të dhënave testuese, krahasuesit e fajllave

Veglat për debagim Sistemet interatkive të debagimit

Veglat për dokumentim Programet për rregullim të përmbajtjës së faqeve, edituesit e imazheve

Veglat për inxhinieri të serishme Sistemet për kryqëzim të referencave (Cross-reference systems), sistemet për ristrukturim të programeve

Page 46: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 46

Klasifikimi i veglave në bazë të aktiviteteve

Specification Design Implementation Verificationand

Validation

Re-engineering tools

Testing tools

Debugging tools

Program analysis tools

Language-processingtools

Method support tools

Prototyping tools

Configurationmanagement tools

Change management tools

Documentation tools

Editing tools

Planning toolsVeglat për planifikim

Veglat për editim

Veglat për për Veglat për menaxhimtë ndryshimeve

Veglat për menaxhimtë konfigurimeve

Veglat për prototip

Veglat për përkrahje të metodës

Veglat për procesimtë gjuhëve

Veglat për dokumentim

Veglat për analizimtë programit

Veglat për debagim

Veglat për testim

Veglat për inxhinieritë sërishme

Specifikimi Dizajni Implementimi Verifikimi dhe validimi

Page 47: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 47

Integrimi i veglave CASE

l Veglat (Tools)• Mbështet detyra të veçanta të proceseve siç janë

kontrollimi i qëndrueshmërisë / konsistencës, editimi i tekstit, etj.

l Grupe pune (Workbenches)• Mbështet fazat e proceseve siç janë specifikimi

apo dizajni. Zakonisht përfshinë një numër të caktuar të veglave të integruara.

l Ambientet (Environments) • Përkrah të gjitha apo pjesën dërmuese të

aktiviteteve të një procesi të plotë softuerik. Zakonisht përfshinë disa ambiente të integruara të grupeve të punës (Workbenches).

Page 48: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 48

Veglat, grupe pune, ambientet

Single-methodworkbenches

General-purposeworkbenches

Multi-methodworkbenches

Language-specificworkbenches

Programming TestingAnalysis anddesign

Integratedenvironments

Process-centredenvironments

FilecomparatorsCompilersEditors

EnvironmentsWorkbenchesTools

CASEtechnologyTeknologjia CASE

Veglat Grupe pune Ambientet

Editorët Kompajlerët Krahasuesit efajllave

Ambientet e integruara

Ambientet e e koncentruara në procese

Analiza dhe dizajni Programimi Testimi

Grupe pune për metoda të shumëfishta

Grupe pune për metoda të veçanta

Grupe pune me destinim të përgjithshëm

Grupe pune për gjuhë të veçanta

Page 49: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 49

Pikat kryesore

l Proceset softuerike janë aktivitetet që kalohen për të krijuar dhe evoluar një sistem softuerik.

l Modelet e proceseve softuerike paraqesin një reprezentim të këtyre proceseve.

l Aktivitetet e përgjithshme janë specifikimi, dizjani dhe implementimi, validimi dhe evoluimi.

l Modeli i përgjithshëm i një procesi përshkruan mënyrën e organizimit të procesit softuerik. P.sh. Modeli “Ujavar” apo inxhinieria softuerike e bazuar në sistemin evoluativ ose në atë të komponentëve.

l Modeli përsëritës/iterativ përshkruan procesin softuerik si një cikël të aktiviteteve.

Page 50: Kapitulli 3 - Proceset Softuerike

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 50

Pikat kryesore

l Inxhinieria e kërkesave paraqet procesin e zhvillimit të specifikacionit të softuerit.

l Proceset e dizajnit dhe implementimit shndërrojnë specifikacionin e shkruar një program të ekzekutueshëm.

l Procesi i validimit merret me kontrollimin nëse sistemi i krijuar është në bazë të specifikacionit dhe plotëson kërkesat e shfrytëzuesit.

l Evoluimi ka të bëjë me procesin e modifikimit të sistemit pasi i njëjti të jetë futur në veprim.

l Rational Unified Process është një proces i përgjithshëm i cili ndanë aktivitetet nga fazat.

l Teknologjia CASE përkrah aktivitet e proceseve softuerike .