Ingegneria del Software: Rischi e Obiettivi

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale dei seguenti modelli genera alti rischi nello sviluppo di applicazioni non familiari?

  • Modello a cascata (correct)
  • Modello a prototipazione
  • Modello trasformazionale
  • Modello Agile

Qual è una delle regole fondamentali dell'extreme programming?

  • Utilizzare sempre tecniche di programmazione a lungo termine
  • Evitare il refactoring per sicurezza
  • Il cliente deve essere presente e disponibile a verificare (correct)
  • Implementare solo una fase di test finale

Qual è uno degli obiettivi principali dell'ingegneria del software?

  • Limitare le opzioni di portabilità
  • Aumentare i costi operativi
  • Migliorare la qualità del prodotto e del processo software (correct)
  • Semplificare i sistemi legacy

Chi è responsabile per la pianificazione e l'organizzazione dello sviluppo in un progetto software?

<p>Project manager (C)</p> Signup and view all the answers

Nel modello a prototipazione, quali rischi sono elevati?

<p>Rischi a causa di mancanza di un processo definito (B)</p> Signup and view all the answers

Quale principio non è incluso nelle dodici regole dell'extreme programming?

<p>Integrazione annuale dei cambiamenti (D)</p> Signup and view all the answers

Quale figura è responsabile della definizione dei termini economici di un progetto?

<p>Business manager (A)</p> Signup and view all the answers

Quale delle seguenti affermazioni riguarda le proprietà del codice collettiva nell'extreme programming?

<p>Ogni membro può contribuire alla stesura del codice. (B)</p> Signup and view all the answers

Come si rappresenta la distruzione di un oggetto in un diagramma?

<p>Con una X alla fine della life-line (A)</p> Signup and view all the answers

Quale costrutto viene utilizzato per rappresentare un ciclo in un diagramma?

<p>Loop (D)</p> Signup and view all the answers

Quale delle seguenti affermazioni è vera riguardo alla descrizione di una auto-chiamata?

<p>Indica l'invio di un messaggio a se stesso (B)</p> Signup and view all the answers

Quale condizione è condivisa da tutti i messaggi in un diagramma?

<p>Possono essere preceduti da condizioni (A)</p> Signup and view all the answers

In un diagramma a stati, cosa rappresenta una transizione?

<p>Un cambiamento di stato causato da un'azione (A)</p> Signup and view all the answers

Quale tra queste è una possibile azione corrispondente a un messaggio?

<p>Create (A)</p> Signup and view all the answers

Come si rappresenta un'iterazione nel diagramma?

<p>Con un blocco di messaggi raggruppati (D)</p> Signup and view all the answers

In un costrutto 'Alt', dove si trova la condizione?

<p>In cima (C)</p> Signup and view all the answers

Quali sono i tre aspetti principali su cui si basa il modello di qualità di McCall?

<p>Revisione, Transizione, Operatività (D)</p> Signup and view all the answers

Quale delle seguenti affermazioni non riguarda le fasi principali del ciclo di vita del software?

<p>Progettazione di interfacce utente (D)</p> Signup and view all the answers

Quale caratteristica è fondamentale per i modelli CVS?

<p>Descrizione dell’organizzazione del lavoro (D)</p> Signup and view all the answers

Quale tra le seguenti affermazioni meglio descrive la fase di sviluppo nel ciclo di vita del software?

<p>Realizzazione del progetto e della sua architettura (C)</p> Signup and view all the answers

Quale attività non rientra nella fase di manutenzione del ciclo di vita del software?

<p>Validazione dei requisiti (B)</p> Signup and view all the answers

Quale tra le seguenti affermazioni descrive meglio la manutenibilità come fattore di qualità del software?

<p>Facilità di aggiornare il sistema senza errori (A)</p> Signup and view all the answers

Qual è la caratteristica principale della portabilità in un sistema software?

<p>Capacità di adattamento a vari ambienti operativi (C)</p> Signup and view all the answers

Qual è la principale funzione della verifica nel processo di sviluppo del prodotto?

<p>Assicurarsi che il prodotto sia costruito nel modo corretto secondo le specifiche. (A)</p> Signup and view all the answers

Quale affermazione meglio descrive l'efficienza in contesto di qualità del software?

<p>Velocità di risposta del sistema alle richieste (B)</p> Signup and view all the answers

Nella modellazione a V, cosa è necessario per convalidare i requisiti durante il testing di accettazione?

<p>L'analisi e specifica dei requisiti. (D)</p> Signup and view all the answers

Qual è uno dei principali svantaggi del modello trasformazionale?

<p>Rende difficile specificare formalmente le interfacce. (B)</p> Signup and view all the answers

Cosa caratterizza il modello di sviluppo basato sul riuso?

<p>Utilizza un repository di componenti per il riuso durante il ciclo di vita. (C)</p> Signup and view all the answers

Qual è uno degli scopi del modello Full Reuse?

<p>Popolare il repository con nuove componenti durante lo sviluppo. (D)</p> Signup and view all the answers

Quale affermazione è falsa riguardo al modello a V?

<p>Non prevede il test per la convalida dei requisiti. (B)</p> Signup and view all the answers

Qual è un aspetto cruciale nella selezione delle tecniche per un modello trasformazionale?

<p>La necessità di un'analisi approfondita delle tecniche. (B)</p> Signup and view all the answers

Perché è difficile applicare il modello trasformazionale a sistemi complessi?

<p>Ha pochi esempi pratici di applicazione. (A)</p> Signup and view all the answers

Qual è lo scopo principale della specifica dei requisiti?

<p>Favorire la comunicazione tra clienti e sviluppatori (B)</p> Signup and view all the answers

Cosa descrivono i requisiti funzionali?

<p>Interazioni tra il sistema e utenti e sistemi esterni (B)</p> Signup and view all the answers

Quali sono gli elementi da includere nella scrittura corretta di un requisito funzionale?

<p>Condizione, soggetto, azione, oggetto, vincolo (A)</p> Signup and view all the answers

Quali tipi di requisiti vengono classificati come non funzionali?

<p>Standard di qualità come il FURPS (D)</p> Signup and view all the answers

Qual è un obiettivo della raccolta dei requisiti?

<p>Definire i confini del sistema da sviluppare (B)</p> Signup and view all the answers

Perché è importante prototipare le parti del sistema ad alto rischio?

<p>Per garantire la corretta funzionalità attraverso simulazioni (C)</p> Signup and view all the answers

Quale di queste affermazioni è vera riguardo gli errori nella fase di specifica dei requisiti?

<p>Possono causare problemi in fase di consegna (A)</p> Signup and view all the answers

In cosa consiste la fase di analisi dei requisiti?

<p>Formalizzazione della specifica dei requisiti (B)</p> Signup and view all the answers

Quale delle seguenti informazioni non è tipicamente inclusa in un caso d’uso?

<p>Budget stimato per l'implementazione (A)</p> Signup and view all the answers

Qual è la differenza principale tra un evento iniziato dall’attore e uno iniziato dal sistema?

<p>La loro rappresentazione visiva nel flusso eventi (B)</p> Signup and view all the answers

Che tipo di relazione tra attori e casi d’uso viene utilizzata per indicare che un attore può ottenere informazioni senza avviare un caso d’uso?

<p>Comunicazione (B)</p> Signup and view all the answers

Quale descrizione si riferisce all'uso del termine 'Extend' nei casi d’uso?

<p>Si riferisce a un caso d’uso eccezionale che avviene durante un altro caso d’uso (C)</p> Signup and view all the answers

Cosa deve essere dettagliato durante il processo di raffinamento di un caso d’uso?

<p>I dettagli specifici di chi può fare cosa (D)</p> Signup and view all the answers

Qual è un esempio di requisito speciale che può essere incluso in un caso d’uso?

<p>Prestazioni richieste dal sistema (B)</p> Signup and view all the answers

Quale affermazione descrive meglio la funzione di un caso d’uso?

<p>Definire scenari di interazione per specifiche funzionalità (B)</p> Signup and view all the answers

Cosa indica la relazione 'Include' nei casi d’uso?

<p>Un’azione che deve essere eseguita per completare il caso d’uso (A)</p> Signup and view all the answers

Flashcards

Qualità del software

Riguarda sia il prodotto (software) che il processo di sviluppo. Un modello come quello di McCall considera aspetti come la manutenibilità, flessibilità, correttezza, affidabilità e usabilità.

Ciclo di vita del software (CVS)

Un insieme strutturato di attività per lo sviluppo di un software da parte di un team. Seguendo uno schema descrittivo di come viene sviluppato il sistema.

Fasi di un CVS

Le fasi principali di qualsiasi processo di sviluppo software sono: Definizione, Sviluppo e Manutenzione.

FASE Definizione (CVS)

Concentrata sul 'cosa' del software: identificazione dei requisiti, dati, comportamento del sistema, criteri di validazione e vincoli del progetto.

Signup and view all the flashcards

FASE Sviluppo (CVS)

Si concentra sul 'come': progettazione dell'architettura, il passaggio al linguaggio di programmazione, i collaudi del software.

Signup and view all the flashcards

Fase Manutenzione (CVS)

Miglioramenti, correzioni, prevenzione da errori e adattamenti.

Signup and view all the flashcards

Strumenti Upper-CASE

Strumenti utilizzati nelle prime fasi di sviluppo, per la modellazione del sistema e la gestione dei dati (modelli di sistema e dizionari di dati).

Signup and view all the flashcards

Strumenti Lower-CASE

Strumenti usati nelle fasi finali: programmazione, testing e debugging (costruzione interfacce grafiche, debuggers, traduttori).

Signup and view all the flashcards

Modello a cascata con ricicli (V&V)

Un modello di sviluppo software che prevede una verifica (V) e una validazione (V) in ogni fase. Se la verifica non soddisfa le aspettative, si torna alla fase precedente per modifiche.

Signup and view all the flashcards

Modello a V

Un modello di sviluppo dove le fasi di testing sono collegate alle fasi di progettazione. Gli errori in una fase di testing possono richiedere la correzione in una fase precedente.

Signup and view all the flashcards

Modello di sviluppo basato sul riuso

Un approccio che prevede un repository di componenti reusabili. Le componenti vengono prese da questo repository per sviluppare nuovi sistemi.

Signup and view all the flashcards

Full Reuse Model

Un modello di sviluppo che si basa sul riuso completo di componenti a diversi livelli di astrazione, come specifiche, progetti e codice, dal repository.

Signup and view all the flashcards

Modello trasformazionale

Un modello basato su trasformazioni matematiche. Richiede personale con conoscenze specialistiche e può essere usato per sistemi critici.

Signup and view all the flashcards

Verification

Verifica che il prodotto sia costruito correttamente rispetto alle specifiche.

Signup and view all the flashcards

Validation

Garantire che il prodotto sia il giusto prodotto per il cliente.

Signup and view all the flashcards

Modello di sviluppo

Un insieme di processi e tecniche per sviluppare un sistema software.

Signup and view all the flashcards

Modello a cascata

Un modello di sviluppo software che procede in modo sequenziale, da una fase all'altra, con un focus su una documentazione completa e rigida.

Signup and view all the flashcards

Modello a prototipazione

Un modello di sviluppo che prevede la creazione di un prototipo funzionante del software per avere un feedback precoce dal cliente e validare le idee.

Signup and view all the flashcards

Refactoring

La ristrutturazione del codice sorgente del software senza alterarne il comportamento esterno, migliorandone la leggibilità e la manutenibilità.

Signup and view all the flashcards

Pair Programming

Una tecnica di programmazione in cui due sviluppatori lavorano insieme, condividendo un computer per scrivere e rivedere il codice in tempo reale.

Signup and view all the flashcards

Project manager

La figura responsabile della pianificazione, organizzazione, motivazione e controllo del progetto software.

Signup and view all the flashcards

Buiness manager

La figura responsabile degli aspetti economici e finanziari del progetto software.

Signup and view all the flashcards

Practitioners

Gli sviluppatori tecnici responsabili della realizzazione del software.

Signup and view all the flashcards

Distruzione di un oggetto

La distruzione di un oggetto in un diagramma di sequenza è rappresentata da una X alla fine della sua life-line.

Signup and view all the flashcards

Iterazioni (ricorrenze)

Rappresentano l'esecuzione ciclica di più messaggi. Si raggruppano i messaggi da iterare in un blocco. Si può aggiungere una condizione all'angolo in alto a sinistra del blocco.

Signup and view all the flashcards

Ciclo while-do o do-while

La condizione è indicata tra parentesi quadre all'inizio o alla fine del blocco. I messaggi all'interno vengono eseguiti finché la condizione è vera.

Signup and view all the flashcards

Ciclo if-then-else

La condizione è indicata in cima al blocco. Una linea tratteggiata separa la zona then dalla zona else, eventualmente con altre condizioni.

Signup and view all the flashcards

Ciclo if-then

Raccoglie una sottosequenza di messaggi che viene eseguita solo se la condizione in cima è vera.

Signup and view all the flashcards

Auto-chiamata

Un oggetto che invoca uno dei suoi propri metodi.

Signup and view all the flashcards

Messaggi e azioni

I messaggi hanno diverse azioni: Call (invoca una operazione), Return (restituisce un valore), Send (invia un segnale), Create (crea un oggetto), Destroy (distrugge un oggetto).

Signup and view all the flashcards

Transizione in un diagramma a stati

Modellerà un cambio di stato in un oggetto e si indica con: Evento [Condizione] / Azione.

Signup and view all the flashcards

Specifica dei requisiti

Un documento che descrive le funzionalità, le interazioni utente e le condizioni di funzionamento del sistema in fase di sviluppo. È un contratto tra cliente e sviluppatori.

Signup and view all the flashcards

Requisiti funzionali

Descrivono come il sistema interagisce con l'ambiente esterno (utenti e sistemi esterni) indipendentemente dalla sua implementazione.

Signup and view all the flashcards

Requisiti non funzionali

Descrivono aspetti del sistema non direttamente legati alle funzionalità, come prestazioni, sicurezza, usabilità e affidabilità.

Signup and view all the flashcards

FURPS

Un acronimo che indica cinque tipi di requisiti non funzionali: Funzionalità, Usabilità, Affidabilità, Prestazioni e Sicurezza.

Signup and view all the flashcards

Prototipazione

Creazione di una versione semplificata del sistema per avere un feedback precoce dal cliente e validare le idee.

Signup and view all the flashcards

Analisi dei requisiti

Fase di sviluppo che si focalizza sul punto di vista dell'utente e definisce i confini del sistema.

Signup and view all the flashcards

Modello di analisi

Rappresentazione formale dei requisiti del sistema, usualmente realizzata usando diagrammi UML.

Signup and view all the flashcards

Modello di sviluppo a cascata

Un modello di sviluppo sequenziale in cui ogni fase viene completata prima di iniziare la successiva.

Signup and view all the flashcards

Caso d'uso

Un caso d'uso descrive la sequenza di interazioni tra un attore e un sistema per una specifica funzionalità, comprendendo tutti i possibili scenari.

Signup and view all the flashcards

Attore

Un'entità esterna al sistema che interagisce con esso. Può essere un utente, un altro sistema o un dispositivo.

Signup and view all the flashcards

Flusso di eventi

Il passo dopo passo di interazioni tra attore e sistema in un caso d'uso, che descrive i cambiamenti di stato del sistema.

Signup and view all the flashcards

Relazione di comunicazione

Descrive come un attore può interagire con un caso d'uso. Può essere di tipo 'Inizia' o 'Comunica'.

Signup and view all the flashcards

Relazione 'Extend'

Un caso d'uso eccezionale che si attiva durante l'esecuzione di un altro caso d'uso.

Signup and view all the flashcards

Relazione 'Include'

Un caso d'uso che scompone un caso d'uso più complesso in casi d'uso più semplici.

Signup and view all the flashcards

Eccezioni

Situazioni anomale che possono verificarsi durante un caso d'uso, descrivendo cosa succede quando qualcosa va male.

Signup and view all the flashcards

Requisiti speciali

Vincoli e requisiti non funzionali che influenzano un caso d'uso, come sicurezza, performance e usabilità.

Signup and view all the flashcards

Study Notes

Disclaimer

  • Il materiale presente nel drive è stato raccolto con l'autorizzazione degli studenti del corso di Informatica dell'Università di Salerno.
  • Gli appunti e gli esercizi sono il risultato dell'utilizzo e del consumo da parte degli autori.
  • Non si assume la responsabilità di eventuali errori o difetti nel materiale.
  • Il materiale sarà modificato aggiungendo il logo dell'associazione, ma se ciò crea problemi agli autori, è possibile contattare l'associazione per modifiche o rimozione del materiale.
  • Si ringraziano le segnalazioni di errori per migliorare ulteriormente il materiale.

Ingegneria del Software (Indice)

  • L'introduzione definisce il software, i prodotti generici e specifici, i programmi e i prodotti, i costi e la manutenzione.
  • I fondamenti dell'ingegneria del software includono principi, metodi, metodologie e strumenti.
  • I cicli di vita del software includono modelli come Waterfall e V-Model.
  • La gestione dei progetti include la formazione del team, la stesura del piano del progetto (comprese attività come la gestione del rischio), e il Grafo delle attività (PERT).
  • L'UML (Unified Modeling Language)include diagrammi casi d'uso, diagrammi di classi, diagrammi sequenziali e altri.
  • La raccolta dei requisiti include classificazione, validazione e attività della raccolta.
  • L'analisi dei requisiti include concetti e attività di analisi.
  • I system design, gli scopi e le architetture, l'identificazione degli obiettivi del design, e la decomposizione di sistemi in sottosistemi (layer e partizioni)
  • L'Object Design tratta oggetti e l'implementazione
  • Test include le analisi di qualità, i casi d'uso e altro.
  • SCRUM è un framework agile per il ciclo di sviluppo di software.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Agile Software Engineering Overview
24 questions
Extreme Programming (XP) Framework
21 questions

Extreme Programming (XP) Framework

CostEffectiveThorium1709 avatar
CostEffectiveThorium1709
Use Quizgecko on...
Browser
Browser