Domande e risposte ingegneria del software
Concetti fondamentali
L'ingegneria del software riguarda teorie, metodi e tecniche nello sviluppo industriale del software.
Per definizione, copre i seguenti aspetti: progetto, implementazione, collaudo e documentazione del software.
Un aspetto fondamentale è la sistematicità.
Origini e storia
La nascita dell'ingegneria del software è dovuta alla "crisi del software".
Nel periodo 1950-1965, il software era sviluppato principalmente per singoli clienti, di tipo batch, e doveva risolvere problemi spesso molto complessi.
Innovazioni e metodologie
Le innovazioni principali nel periodo 1970-1990 sono: manutenzione, analisi difettosità e object oriented programming.
Dal 1990 ad oggi, prendono piede le nuove metodologie di sviluppo del software definite agili.
Prospettive del management e del cliente
L'ingegneria del software asserisce che, dal punto di vista del management, se il progetto è in ritardo, per recuperare non basta aumentare il numero di programmatori.
Dal punto di vista del cliente, i mutamenti dei requisiti del software si gestiscono agevolmente grazie alla flessibilità del software.
Prospettiva del programmatore e prodotto software
Dal punto di vista del programmatore, il prodotto di un progetto consiste nel programma funzionante, la documentazione e la guida alla manutenzione.
Un prodotto software in genere viene usato da persone diverse da quelle che lo hanno sviluppato e include prodotti generici e prodotti specifici.
Disciplina e principi
L'ingegneria del software è una disciplina che definisce le regole per il processo di produzione del software e differisce dall'informatica poiché ha a che fare con concetti ed aspetti più pratici.
Il principio di rigore dell'ingegneria del software riguarda precisione e accuratezza.
I principi possono essere definiti come rigore e formalità, modularità, astrazione, anticipazione al cambiamento, generalità, e incrementabilità.
Attività e qualità
Quale di queste non è una attività richiesta nel processo di sviluppo software: ristrutturazione.
Qual è il significato dell'acronimo C.A.S.E.: Computer Aided Software Engineering.
La qualità di un prodotto software si misura in termini di conformità ai requisiti.
Modelli e ciclo di vita
Un sistema software è affidabile se non si manifestano malfunzionamenti.
Tra le fasi del ciclo di vita del software non sempre troviamo: ritiro.
Il ciclo di sviluppo del software include: analisi, progettazione, implementazione, test, installazione e collaudo.
Per modello del ciclo di vita del software si intende una caratterizzazione descrittiva o prescrittiva di come un sistema dovrebbe essere sviluppato.
Modelli di sviluppo
Il modello Waterfall è un modello sequenziale e prevede che la prima fase sia quella di studio di fattibilità.
La progettazione, quale fase del modello a cascata, è la fase in cui sono accuratamente definiti tutti i moduli e le componenti.
Quali di questi non è una variante del modello waterfall: modello sequenziale.
Modello V&V e prototipazione
Il modello V&V indica un modello che prevede una fase di verifica e di convalida.
Nel modello a V, la fase centrale è rappresentata dalla codifica.
Le tipologie di prototipi usa e getta si definiscono: mock-ups e breadboards.
La prototipazione "throw-away" rende più comprensibili i requisiti e facilita la realizzazione del software.
Sviluppo incrementale e iterativo
La fase iniziale dello sviluppo incrementale è l'individuazione preliminare dei requisiti.
Le fasi dello sviluppo incrementale che devono o possono essere ripetute sono: sviluppo dell'incremento, convalida dell'incremento, integrazione dell'incremento, convalida.
Nello sviluppo iterativo, il software viene realizzato attraverso una serie di mini progetti brevi chiamati iterazioni.
Lo sviluppo incrementale prevede lo sviluppo di nuove funzionalità durante ogni incremento.
Modello a spirale
I settori del modello a spirale sono: determinazione degli obiettivi, valutazione del rischio, sviluppo e convalida, e pianificazione.
Il settore più importante del modello a spirale è: sono tutti equamente importanti.
La pianificazione, quale settore del modello a spirale, prevede la revisione e la pianificazione del prossimo giro della spirale.
Risk management e project management
La figura di risk manager ha il compito di individuare e minimizzare i rischi.
Le principali componenti di un progetto sono: work products, work packages, schedule, participant e task.
La componente detta anche "deliverable" è: work package.
Metodologie di interazione e comunicazione
Il "reporting" è un meccanismo di interazione utilizzato per scambiarsi informazioni circa lo stato del progetto.
Le principali metodologie di interazione in un progetto software sono: reporting, decisione e comunicazione.
Gli eventi di comunicazione possono essere di due tipi: pianificati e straordinari.
Gli eventi di comunicazione pianificati sono: 9.
Ispezione e comunicazione straordinaria
L'ispezione è una procedura che ha l'obiettivo di verificare la conformità dei requisiti.
Per tipologia di evento di comunicazione straordinaria "issue resolution" si intende: selezione di una singola soluzione ad un problema per il quale sono state proposte più soluzioni.
Tecniche di comunicazione
Tra le tecniche di comunicazione sincrona non troviamo: email.
Nei meetings il ruolo del segretario spetta al Minute Taker.
Modellazione e UML
Un modello è definito come un'astrazione che descrive un sistema o un sottosistema.
Un concetto descrive le proprietà comuni dei fenomeni.
Una classe nel contesto della modellazione è composta da attributi che ne indicano lo stato e metodi che ne indicano il comportamento.
Per tipo di una variabile si intende: la rappresentazione di tutte le possibili istanze di una variabile.
La modellazione orientata agli oggetti è un approccio alla modellazione di un sistema software utilizzato all'inizio del ciclo di vita del software.
UML vuol dire: Unified Modeling Language e definisce 5 principali tipologie di diagrammi.
I rettangoli nelle convenzioni UML rappresentano: classi e istanze.
Diagrammi UML
Per Activity Diagram si intende: una rappresentazione del comportamento dinamico del sistema.
Per Statechart Diagram si intende: una rappresentazione del comportamento dinamico di un singolo oggetto come una macchina a stati finiti.
Casi d'uso
Cosa rappresenta il diagramma di caso d'uso: la descrizione completa di un comportamento di un sistema osservato dall'esterno.
Cosa rappresenta un caso d'uso: una specifica modalità di utilizzo del sistema da parte di uno o più utenti.
A cosa corrisponde un attore: un ruolo interpretato da un utente sul sistema.
Un attore primario rappresenta: un sistema esterno con partecipazione attiva ad un caso d'uso esprimendo un interesse diretto nella sua buona riuscita.
Un attore secondario rappresenta: un'entità esterna che interagisce con il sistema nell'ambito del caso d'uso senza perseguire un suo interesse diretto.
Cosa rappresenta un'associazione in un diagramma di caso d'uso: un collegamento tra gli attori e i casi d'uso nel quale sono coinvolti.
-
Matematica tutte le formule
-
Tutte le domande Analisi matematica
-
Appunti di Progettazione del Software, tutte le lezioni
-
Risposte a tutte le domande del secondo parziale di Diritto privato