Sei sulla pagina 1di 4

1.

Descrivere limportanza dei modelli di processo nellattuazione e


gestione del progetto software.
2. Effettuare unanalisi comparativa dei principali modelli di
processo caratterizzandone vantaggi e svantaggi in relazione
alle diverse tipologie applicative.
Nel 1969 si abbandona il modello casuale(code-fix), e si passa ad un modello
waterfall che prevede rigide fasi da seguire in ordine senza possibilit di
tornare indietro. I vantaggi sono: definizione di concetti utili, punto di partenza,
facilmente applicabile, molto rigoroso mentre svantaggi: interazione con
cliente solo allinizio e alla fine, requisiti imprecisi e a volte errati scoperti solo
alla fine e il software risulta installabile solo alla conclusione. Per questo si
proposero due varianti: cascata con prototipazione realizzazione di un
prototipo iniziale funzionante e cascata con ritorni aggiunta possibilit di
tornare indietro nelle fasi per poter apportare delle modifiche.
Un altro modello quello incrementale nel quale abbiamo pi versioni
mostrate periodicamente al cliente per poterlo arricchire o correggere. I
vantaggi sono: riduzione spese per funzionalit, prova software e utilizzo in
caso di urgenza mentre svantaggi sono: documentazione non redatta ex-novo
per ogni fase e possibilit di avere una struttura generale degradata.
Ancora i modelli evolutivi dove abbiamo un prototipo; i vantaggi sono:
valutazione requisiti di sistema, GUI coinvolgendo cliente e formazione cliente
mentre svantaggi sono: mancata documentazione opportuna, possibilit di
perdita di interesse da parte del cliente a futuri aggiornamenti e non rispetto
della QoS.
Modello a spirale e fa parte degli evolutivi; i vantaggi sono: esplicitazione della
gestione rischi, maggior possibilit di individuazione errori ella fase iniziali,
considerazione sulla qualit e integrazione sviluppo e manutenzione.
Svantaggi: personale in grado di valutare i rischi, problemi nella definizione del
contratto e difficolt nelladattamento alla realt aziendale.
Infine processo unificato: iterativo organizzato in una serie di processi brevi di
lunghezza fissa.. I vantaggi sono: gestione dei requisiti, utilizzo UML, impegno
costante dei clienti per ottenere feedback e affronto di problematiche maggiori
nelle iterazioni iniziali.
3. Tecniche di analisi dinamica per la verifica del software
Le tecniche di analisi dinamica sono quelli che ci permettono di capire se il
programma fa quello che si proposto di voler eseguire. Si dividono in Black
Box Testing ( testing funzionale) che fondato sullanalisi di output generati
dal sistema in risposta ad una serie di input. In questo caso si sa gi a priori
quali dovrebbero essere gli input dato che si conoscono i requisiti specificati
dal sistema. Laltro il White Box Testing o Testing strutturale che testa il
programma per esaminare come e si fonda sulla definizione dei casi di test,
degli input associati alloracolo e sulla base della conoscenza della struttura del
software ma pi in particolare sulla conoscenza ( e visione) del codice. Sembra
non essere dinamico ma in realt ci che prende il nome di debugging.
4. Livelli di test

-Test di sviluppo: si testano le singoli componenti del programma dalla pi


semplice alla pi complessa. Si possono scegliere due approcci per individuare
i casi di test, uno che segue lesperienza e uno che segue la scelta delle
partizioni valutando il sistema prima come black box e poi come white box (
unit). Si cercano gli errori relative allutilizzo di interfacce che a volte hanno
comportamenti anomali ( integrazione) e infine si testano le funzioni offerte da
pi componenti integrati ( sistema)
-Test di regressione: nellapproccio incrementale bisogna testare
periodicamente che tutto ci che stato gi implementato sia privo di errori. E
costoso e alle volte impraticabile
-Test di rilascio: si basa sulle funzionalit e serve a mostrare la bont del
software al cliente
-Test sui requisiti: dimostrazione dellimplementazione dei requisiti stabiliti
-Test prestazione: a sistema ultimato e verifica che sia affidabile e performante
5. Caratteristiche fondamentali del test white box
Euntestingstrutturale,poichutilizzalastrutturainternadelprogrammaperricavareidatidi
test.TramiteiltestingWhiteBoxsipossonoformularecriteridicoperturapiprecisidiquelli
formulabilicontestingBlackBox.TestWhiteBoxchehannosuccessopossonoforniremaggiori
indicazionialdebuggersullaposizionedellerrore.Bisognatestarelefunzionalitesterneche
sarebberoquellevisibiliallutenteedefinitedairequisitimaanchelefunzionalitinternechesono
quellenonvisibiliallutenteiltuttopartendodalladefinizionedellefunzionalitchesonolinsieme
deidatiiningresso,uscita,precondizioniepostcondizioni.Enecessariodefinireunoracoloche
conosceilcomportamentoattesoperognicasoditestepuesserevario(umano,automatico,ecc)
einpiognifunzionalitdeveessereeseguitaalmenounavoltaperpoipotergiungerealla
produzionediquellacheprendeilnomedichecklist.
6. QualityFactorseVariationFactorsinfogliometrico
DIT(profonditdellalberodiereditariet),NOA(numerooperazioniaggiunteaduna
sottoclasse),MIF(fattorediereditarietdeimetodi),RFC(risposteperclasse),LCOM
(mancanzadicoesioneneimetodi),CS(dimensionedellaclasse),WMC(metodipesatiperclasse)
eVG(complessitciclomatica).Dallaltraparteabbiamo:coesioneinterna,profonditdella
gerarchiadiclasse,complessitegeneralizzazionediclasseeinfinecomplessitdirisposta.
7. ModelloFURPS+
F(unzionalit)caratteristichefunzionali,capacitesicurezza;
U(sabilit)fattoriumaniedocumentazione;
R(reliability)gestioneerroriecrashinclusiprecisioneeaccuratezza;
P(restazioni)tempodirisposta,usdellerisorse,throughput;
S(upportability)assistenza,maintenimentoeconfigurabilit;

+(requisitidiprogettazionegestionedelsistema,implementazionelimitazionesurisorsee
linguaggi,interfacciasistemiesterni,fisiciedimensionihwlegalilicenze)utilizzatoper
semplificareilprocessodiidentificazionedellemisurepiidoneeperlediversefasidelciclodi
vitadiunsoftware.Lecaratteristichediqualitsonodivisein27sottocaratteristicaacui
associataunaopimisure.

8. UP
UPunprocessoiterativomoltodiffusoperlosviluppodelsoftwareperlacostruzionedisistemi
orientatiaglioggetti.Datochealgiornodoggineiprogettisoftwarevisonocostanticambiamenti
sistaaffermandosemprepilosviluppoiterativodoveilrisultatodiciascunaiterazioneun
sistemaeseguibile,testato,integratomaparziale.IlmotivopercuiUPparticolarmente
apprezzatoproprioperilfattocheiterativo,evolutivoeadattivoespecialmentequestultimo
puntovaadinfluire,nelcasodisceltanonadatta,aridurrelaqualitolutilitdelprodottoins.
AttraversoUPpossibileaffrontareallinizioleproblematichemaggioriesipuavereuncostante
feedbackdalclienteconcuisiincontatto.LusomoltoampiodiUMLnepermettedigestirepi
facilmenteirequisitieleeventualirichiestedicambiamentoe/oconfigurazioni.Qualisonolefasi
diUP?IDEAZIONE(visioneapprossimativa,studioeconomico,stimetempi/costi),
ELABORAZIONE(visioneraffinata,implementazioneiterativanucleoerisoluzionerischi
maggiori,stimepiaccurate),COSTRUZIONE(implementazioneiterativadeglielementi
rimanentiearischiominore)eTRANSIZIONE(betatestconrilascioagliutenti).
9.

COCOMOII

Lastimadeicostiedellatempisticadelprogettosonodueattivitchesolitamentevengono
eseguiteallunisono.Icostidisvilupposonoicostidellosforzorichiestoelestimeinizialisono
importantialfinedideterminareunbudgetperilprogettoestabilireilprezzoperilcliente.Non
semplicefareunastimaaccuratadellosforzorichiestoapartiredaiprimistadidelprogetto,alle
voltequasiimpossibileperquestomotivosidecide,spesso,diusareilCOCOMOcheunmodello
bendocumentato,pubblicamenteaccessibileesupportatodastrumentipubbliciecommercialicon
unsolidobackground.Tuttaviaessorappresentaunmodelloempiricodatochestatorealizzato
partendodaunagrandequantitdidatietrovandodellerelazioni.Larelazionequellaclassica:
B x M
conprecisiindiciperdeterminareiparametri:A
Effort= A x
fissataa2,94inmodoempiricoSize
espressainKSLOC(migliaiadirighedicodice)stimateattraversoipuntifunzioneedipendenti
dallinguaggiodiprogrammazione;B
rappresentalaumentodelcostoallaumentaredelladimensionedelprogetto(tra1.1e1.24)
Milprodottodisetteindicibasatisullaffidabilitecomplessitdelprodotto,sulriusorichiesto
sulladifficoltdellapiattaformaesullacapacitdelpersonale:
PERSxRCPXxRUSExPDIFxPREXxFCILxSCED
10. Tecnicheformali

Sesupponiamodivolercreareunsoftwarechecontrollailtrafficoaereoelosivuoletestarenon
avrebbesensofarlipartireeaccorgersisolamentedopocheviqualcheerrore.Perquestomotivo
siricorreametodipiaffidabiliequindinonbasarsiunicamentesultestmaprocederecon
simulazionioconmetodipirigorosicheassicuranolassenzadierrori.Questimetodisonodetti
formaliesonoutilizzatidailinguaggiformalichesonoqueilinguaggilacuisintassievocabolario
sonolimitatieutilizzadelleregolemoltorigoroseeprecise.Spessovengonoutilizzatetecniche
matematicheperlanalisidiappositialgoritmi.Nelcasodiutilizzoditeoriematematichela
verificaavvieneattraversolapplicazionediunatecnicamanualeoautomatica(nonsempre
facileautomatizzareilprocesso)chepossaaiutareastabilireseunsistemasoddisfaunadata
proprietosicomportainaccordoaunaspecificadata.

11. Modelchecking
Usaisistemiatransizioni(LTS)permodellareisistemimafaancheusodellalogicatemporale
perverificarelepropriet.Ilproblemadellaverificavienespessoridottoaproblemidiricercasu
grafiinpipresentaungrandevantaggiocheconsistenelpoteresserecompletamente
automatizzatoeabbiamovistocheinalcunicasi,comeadesempioneimetodiformali,
lautomatizzazioneimpossibileanchealivelloteorico.Selaproprietnonverificataviene
generatouncontroesempioeinfine,esoprattuttocihapermessounsuosviluppo,relativamente
faciledausare.