SEARCH
You are in browse mode. You must login to use MEMORY

   Log in to start

level: qualita' e processi

Questions and Answers List

level questions: qualita' e processi

QuestionAnswer
quali sono i vari elementi ingegnerirstici di cui si compone un progetto?1) Target: ci si prefigge un obiettivo da raggiungere. 2) Metric: una metrica per misurare la qualità del software (quanto si avvicina al target). 3) Method, Process, Tool: metodi, processi e strumenti provati per avvicinarsi all’obiettivo. 4)) Measurements: vengono valutate le strategie implementate. A seconda dei risultati : - risultati soddisfacenti - accettati come buoni metodi utilizzati. - risultati insoddisfacenti - bisogna modificare il lavoro qualcosa: target o metrica oppure bisogna rivedere i processi e metodi usati.
in ambito di un approccio ingegneristico nella costruzione di un software, che cosa si intende per target , di che tipi può essere?per target generalmente si intende l'obiettivo che ci si propone all'inizio del progetto, questo può essere di due tipi: - la risoluzione dei problemi nella progettazione del software - il raggiungimento di una qualche qualità che il software dovrà avere
che tipi di qualità può avere un progetto? di che tipo possono essere?le qualità definiscono proprietà desiderabili del prodotto, queste possono essere: qualità esterne: vengono colte dal cliente qualità interne: colte dallo sviluppatore (es requisiti o specifiche)
quale è la differenza fra requisiti e specifiche?- I requisiti sono quello che il cliente vuole che il software faccia. Spesso sono cambiati in corso d’opera oppure sono espressi in modo sbagliato, per cui è necessaria un’interazione continua. - Le specifiche sono ciò che è stato formalizzato dal programmatore a partire dai requisiti: si tratta di una definizione più rigorosa di che cosa dovrà fare il software. Si noti però che se i requisiti sono stati espressi in modo non corretto anche le specifiche risulteranno inesatte
quali sono le varie qualità che un software deve avere per "funzionare"?- Correttezza: Un software è corretto se soddisfa la specifica dei suoi requisiti funzionali. proprietà generalmente dimostrabile in modo formale. - Affidabilità: Un software è affidabile quando ci si può aspettare che faccia ciò che gli è stato chiesto. l'affidabilità è relativa: un software può essere affidabile anche quando contiene qualche errore. - Robustezza: Un software è robusto se si comporta in modo accettabile anche in circostanze non previste nella specifica dei requisiti.
quali sono i vari modi in cui un software può "essere bello"?- Usabilità: se i suoi utenti lo ritengono facile da utilizzare. generalmente viene verificato con dei test a campione. - Prestazioni ed Efficienza: -- L'efficienza è una qualità interna e misura come il software utilizza le risorse del computer; -- la performance è una qualità esterna basata sui requisiti dell'utente, ha effetto sull'usabilità e viene verificata alla fine del processo. - Verificabilità: se le proprietà correttezza e performance sono verificabili facilmente. La verifica può essere fatta con metodi formali o informali ed è considerata una qualità interna, ma alcune volte può diventare una qualità esterna: per esempio, in ambiti in cui la sicurezza è critica il cliente può chiedere la verificabilità di certe proprietà.
quali sono i vari modi in cui un software può "farmi diventare ricco"?- Riusabilità: Le componenti del software che costruiamo dovrebbero essere il più riutilizzabili possibile: ciò può essere fatto non legandole troppo allo specifico contesto applicativo del software. - Manutenibilità: Per manutenzione software si intendono tutte le modifiche apportate al software dopo il rilascio iniziale. Questa proprietà può essere vista come due : --> Riparabilità: un software è riparabile se i suoi difetti possono essere corretti con una quantità di lavoro ragionevole. --> Evolvibilità: indica la capacità del software di poter evolvere aggiugendo funzionalità. È importante considerare questo aspetto fin dall'inizio. l'evolvibilità decresce con il passare delle release
che cosa prevede la qualità di robustezza di un progetto?Un processo deve poter resistere agli imprevisti, come la mancanza improvvisa di personale o il cambiamento delle specifiche. Esistono certificazioni (CMM: Capability Maturity Model) che valutano la robustezza di alcuni processi aziendali e che vengono per esempio considerate nei bandi pubblici.
la qualità di produttività di un progetto è misurabile?La produttività di un team è molto meno della somma della produttività individuale dei suoi componenti. È una metrica difficile da misurare: conteggi come il numero di linee codice scritte o la quantità di tempo-uomo richiesta per un lavoro si rivelano spesso un po' fallaci (per esempio, la gravidanza umana non è un'attività parallelizzabile, ma si potrebbe dire che servono 9 mesi-donna per creare un bambino).
che cosa prevede la qualità di tempismo di un progetto?Un processo deve consegnare il prodotto nei tempi stabiliti, in modo da rispettare i tempi del mercato. È spesso conveniente la tecnica dello sviluppo incrementale, ovvero la consegna frequente di parti sempre più grandi del prodotto (es. compilatore ADA): essa permette infatti di conquistare il cliente ancor prima di avere il prodotto finito.
quali sono le varie fasi di sviluppo di un software?1) Studio di fattibilità 2) Analisi e specifica dei requisiti 3) Progettazione (design) 4) Programmazione e test di unità 5) Integrazione e test di sistema 6) Consegna, installazione e manutenzione 7) Attività ausiliarie
che cosa prevede la fase di studio di fattibilità?Questa fase viene svolta prima ancora che il processo di sviluppo inizi. L’obiettivo è quello di produrre un documento in linguaggio naturale presentante diversi scenari di sviluppo con soluzioni alternative, con una discussione sui trade-off in termini di benefici e costi attesi in particolare: > studio dei diversi scenari di realizzazione (architetture e hardware necessari, sviluppare in casa o subappaltare) > stima dei costi, dei tempi e delle risorse necessarie
che cosa prevede la fase di analisi e specifica dei requisiti?fatta dopo la fase di studio di fattibilità, il suo obiettivo è la stesura di un documento di specifica in specifico prevede le fasi di : > comprensione del dominio applicativo del prodotto (dialogazione con il cliente) > identificazione degli stakeholders e dei loro interessi > identificazione delle funzionalità richieste (o specifiche) > stabilire un dizionario comune tra cliente e sviluppatore > definizione di eventuali qualità del prodotto
che cosa prevede la fase di progettazione?prevede la strutturazione del progetto sotto diversi livelli di dettaglio attraverso un documento di specifica del progetto fasi : > scelta di una architettura e software di riferimento > scomposizione in moduli o oggetti per la spartizione dei compiti > identificazione dei pattern: ovvero problemi comuni che hanno spiriti di risoluzione simili nel corso del progetto
che cosa prevede la fase di programmazione e test di unità?vengono realizzati i moduli definiti nella fase di progettazione e vengono scritti tutti i test necessari per dimostrarne la correttezza. i moduli sono testati individualmente e eventuali dipendenze esterne vengono risolte con moduli stub che emulano le funzionalità mancanti i moduli driver hanno il compito di utilizzare il modulo che si sta testando come se fossero esterni
che cosa prevede la fase di integrazione e test del sistema?i moduli singolarmente implementati e testati vengono integrati insieme a formare il software finito (nel modello incrementale questa fase è incorporata nella fase di programmazione) vengono effettuati dei test di integrazione che verificano la buona integrazione dei vari moduli (sostituendo quelli stub) infine si fa l'alpha testing con condizioni realistiche
che cosa prevede la fase di consegna, installazione e manutenzione?> beta testing con un gruppo di utenti con lo scopo di raccogliere feedback > installazione di eventuali componenti aggiuntivi (come periferiche di rete o altre) > la manutenzione può essere definita come l’insieme delle attività finalizzate a modificare il sistema dopo essere stato consegnato al cliente: -- correttiva : correzione di errori -- adattiva : adattare il software a nuovi requisiti -- perfettiva : modificare aspetti ma non le funzionalità
quali sono altre attività aggiuntive alla progettazione?> la documentazione : è una fase trasversale viene spesso tralasciata per il frequente cambio dei requisiti o specifiche > verifica del controllo qualità: nella maggior parte dei casi, la verifica è svolta attraverso review e ispezioni. L’obiettivo è anticipare il prima possibile la scoperta e la sistemazione degli errori in modo da evitare di consegnare sistemi difettosi > Gestione del processo: gestione incentivi (premi di produzione), responsabilità, formazione del personale, perfezionamento del processo con l’esperienza guadagnata... > Gestione delle configurazioni: magari la modifica di componenti già posseduti in house