Ingegneria del Software: Modelli e Costi
40 Questions
0 Views

Ingegneria del Software: Modelli e Costi

Created by
@SpellboundAquamarine4620

Podcast Beta

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quali sono le prospettive di processo menzionate?

  • Prospettiva di ruolo/azione, flusso di informazioni (correct)
  • Prospettiva di settore, analisi dei costi
  • Prospettiva del flusso di lavoro, flusso di dati (correct)
  • Prospettiva della competizione, qualità del software
  • Qual è la percentuale dei costi riservata allo sviluppo nell'Ingegneria del Software?

  • 50%
  • 60% (correct)
  • 40%
  • 70%
  • Quale modello di processo non è citato tra i modelli generici?

  • Modello Agile (correct)
  • Modello a cascata
  • Sviluppo iterativo
  • Ingegneria del software basata su componenti
  • Che cosa indica il termine CASE nell'Ingegneria del Software?

    <p>Computer-Aided Software Engineering</p> Signup and view all the answers

    Qual è una caratteristica fondamentale di un buon software?

    <p>Essere manutenibile</p> Signup and view all the answers

    Quale attività non è supportata da strumenti Lower-CASE?

    <p>Progettazione</p> Signup and view all the answers

    Quali sono i costi che spesso superano quelli di sviluppo per i software personalizzati?

    <p>Costi di evoluzione</p> Signup and view all the answers

    Quali pratiche non sono tipicamente incluse nei metodi dell'Ingegneria del Software?

    <p>Analisi di mercato</p> Signup and view all the answers

    Qual è uno dei principali svantaggi del modello a cascata?

    <p>Difficoltà di accogliere cambiamenti durante il processo</p> Signup and view all the answers

    Quando è più appropriato utilizzare il modello a cascata?

    <p>Quando i requisiti sono ben compresi</p> Signup and view all the answers

    Quale fase non fa parte del modello a cascata?

    <p>Prototipazione usa e getta</p> Signup and view all the answers

    Qual è l'obiettivo principale dello sviluppo esplorativo?

    <p>Sviluppare un sistema finale partendo da una specifica iniziale</p> Signup and view all the answers

    Quale affermazione riguarda meglio la prototipazione usa e getta?

    <p>Aiuta a chiarire i requisiti di sistema</p> Signup and view all the answers

    Qual è un problema comune nello sviluppo evolutivo?

    <p>Richiede competenze speciali</p> Signup and view all the answers

    Qual è l'obiettivo principale dell'ingegneria del software basata sui componenti?

    <p>Assemblare un sistema da componenti esistenti</p> Signup and view all the answers

    Per quali tipi di sistemi è più indicato il modello di sviluppo evolutivo?

    <p>Sistemi interattivi di piccole o medie dimensioni</p> Signup and view all the answers

    Qual è il primo passo del processo di sviluppo del sistema?

    <p>Analisi dei componenti</p> Signup and view all the answers

    Qual è una delle caratteristiche principali dello sviluppo a spirale?

    <p>Rischi valutati durante il processo</p> Signup and view all the answers

    Qual è l'obiettivo principale dello sviluppo incrementale?

    <p>Congelare i requisiti dopo il primo incremento</p> Signup and view all the answers

    Quali attività compongono il processo di ingegneria dei requisiti?

    <p>Elicitazione, analisi, specifica e convalida dei requisiti</p> Signup and view all the answers

    In quale fase del processo sono forniti i primi incrementi?

    <p>Sviluppo incrementale</p> Signup and view all the answers

    Quale delle seguenti affermazioni descrive meglio l'approccio della consegna incrementale?

    <p>Permette il congelamento dei requisiti per ogni incremento</p> Signup and view all the answers

    Cosa si intende per 'sviluppo a spirale' nel contesto del processo di sviluppo?

    <p>Un processo in cui si valutano e risolvono i rischi durante ogni fase</p> Signup and view all the answers

    Qual è uno dei vantaggi dello sviluppo incrementale?

    <p>Valore del cliente fornito con ogni incremento</p> Signup and view all the answers

    Quale tra le seguenti affermazioni descrive meglio il concetto di eterogeneità nello sviluppo del software?

    <p>Tecniche per affrontare ambienti di esecuzione diversi.</p> Signup and view all the answers

    Qual è una responsabilità etica importante per gli ingegneri del software?

    <p>Riservatezza riguardo alle informazioni dei clienti.</p> Signup and view all the answers

    Cosa indica il principio di competenza nell'ingegneria del software?

    <p>Non travisare il proprio livello di abilità e non accettare compiti inadatti.</p> Signup and view all the answers

    Quale delle seguenti affermazioni rappresenta un dilemmi etico in ingegneria del software?

    <p>Sviluppare un software senza testare adeguatamente le sue parti critiche.</p> Signup and view all the answers

    Qual è uno dei principi contenuti nel codice etico ACM/IEEE?

    <p>Comportamento etico nelle decisioni e nelle pratiche professionali.</p> Signup and view all the answers

    In cosa consiste un modello di processo software?

    <p>Una rappresentazione astratta di un processo di sviluppo.</p> Signup and view all the answers

    Quale è un uso improprio delle competenze informatiche da parte di un ingegnere?

    <p>Abusare dei computer altrui per trarne vantaggio personale.</p> Signup and view all the answers

    Che cosa implica la responsabilità riguardo ai diritti di proprietà intellettuale?

    <p>Assicurarsi che i diritti di proprietà siano protetti.</p> Signup and view all the answers

    Qual è il principale obiettivo della verifica e convalida del software?

    <p>Garantire che il sistema soddisfi specifiche e requisiti</p> Signup and view all the answers

    In quale fase del processo di sviluppo il software deve evolversi?

    <p>Durante ogni fase, per rispondere ai cambiamenti dei requisiti</p> Signup and view all the answers

    Quale dei seguenti modelli è parte dei metodi strutturati nello sviluppo software?

    <p>Modello a oggetti</p> Signup and view all the answers

    Qual è l'importanza del test di accettazione nel processo di test software?

    <p>Verificare che il sistema soddisfi le esigenze del cliente</p> Signup and view all the answers

    Quale strumento è comunemente utilizzato nei processi di Computer-aided Software Engineering (CASE)?

    <p>Dizionario dati per gestione entità progettuali</p> Signup and view all the answers

    Qual è uno degli obiettivi della progettazione dell'interfaccia?

    <p>Facilitare l'interazione dell'utente con il sistema</p> Signup and view all the answers

    Cosa implica il test del sistema nel processo di sviluppo del software?

    <p>Eseguire il sistema con casi di test reali</p> Signup and view all the answers

    Qual è la caratteristica principale dei metodi strutturati nella progettazione software?

    <p>Progettazione documentata tramite modelli grafici</p> Signup and view all the answers

    Study Notes

    Modelli di Processo

    • Il modello a cascata prevede fasi distinte e separate per la specifica, lo sviluppo e la convalida del software.
    • Nello sviluppo evolutivo, la specifica, lo sviluppo e la convalida sono intervallati.
    • L'ingegneria del software basata sui componenti prevede l'assemblaggio di un sistema da componenti preesistenti.

    Costi dell'Ingegneria del Software

    • I costi di sviluppo rappresentano circa il 60% del costo totale del software.
    • Il 40% restante è dedicato ai test.
    • Per il software personalizzato, i costi di evoluzione spesso superano i costi di sviluppo.

    Metodi dell'Ingegneria del Software

    • L'ingegneria del software prevede l'utilizzo di metodi strutturati per lo sviluppo del software.
    • Questi metodi comprendono modelli grafici, regole, vincoli, raccomandazioni e guide al processo.

    CASE (Computer-Aided Software Engineering)

    • I sistemi CASE forniscono supporto automatizzato per le attività del processo software.
    • Upper-CASE supporta le prime fasi del processo, come l'analisi dei requisiti e la progettazione.
    • Lower-CASE supporta le fasi successive, come la programmazione, il debug e il test.

    Caratteristiche del Buon Software

    • Un buon software deve soddisfare i requisiti funzionali e prestazionali dell'utente.
    • Deve essere manutenibile, affidabile ed efficiente.
    • Deve anche essere accettabile dagli utenti, ovvero comprensibile, utilizzabile e compatibile con altri sistemi.

    Sfide dell'Ingegneria del Software

    • L'eterogeneità delle piattaforme e degli ambienti di esecuzione richiede lo sviluppo di tecniche per la creazione di software adattabile.
    • La rapidità di consegna del software è un altro fattore chiave.
    • Il software deve essere affidabile e sicuro per gli utenti.

    Responsabilità Professionale ed Etica

    • L'ingegneria del software implica comportamenti etici oltre alle competenze tecniche.
    • Gli ingegneri devono agire in modo onesto e responsabile.
    • Tra le responsabilità professionali vi sono la riservatezza, la competenza, il rispetto dei diritti di proprietà intellettuale e l'uso responsabile dei computer.

    Codice Etico ACM/IEEE

    • Società professionali negli Stati Uniti hanno creato un codice di pratica etica che definisce otto principi per il comportamento e le decisioni dei professionisti, educatori, manager, supervisori e responsabili politici.

    Dilemmi Etici

    • Esempi di dilemmi etici includono disaccordi con le politiche del management, situazioni in cui il datore di lavoro agisce in modo non etico e la partecipazione allo sviluppo di sistemi d'arma o sistemi nucleari.

    Processi Software

    • Un processo software è un insieme strutturato di attività per sviluppare un sistema software, comprendendo la specifica, la progettazione, la validazione e l'evoluzione.
    • Un modello di processo software è una rappresentazione astratta di un processo che descrive il processo da una prospettiva particolare.

    Modelli di Processo Generici

    • Il modello a cascata prevede fasi distinte e separate per la specifica, lo sviluppo e la convalida del software.
    • Lo sviluppo evolutivo prevede la sovrapposizione di queste fasi.
    • L'ingegneria del software basata sui componenti prevede l'assemblaggio di un sistema da componenti preesistenti.

    Modello a Cascata

    • Il modello a cascata prevede fasi distinte: analisi e definizione dei requisiti, progettazione di sistemi e software, implementazione e test unitari, integrazione e test di sistema, funzionamento e manutenzione.
    • Il principale svantaggio è la difficoltà di adattarsi ai cambiamenti.

    Sviluppo Evolutivo

    • Lo sviluppo evolutivo prevede la creazione di una specifica iniziale e l'aggiunta di nuove funzionalità in base alle richieste del cliente.
    • La prototipazione usa e getta serve per chiarire i requisiti del sistema.

    Ingegneria del Software Basata sui Componenti

    • Questo approccio prevede il riutilizzo di componenti preesistenti o sistemi COTS (Commercial Off-The-Shelf).
    • Le fasi del processo includono analisi dei componenti, modifiche dei requisiti, progettazione del sistema con riutilizzo, sviluppo e integrazione.

    Iterazione del Processo

    • È possibile applicare l'iterazione a qualsiasi modello di processo generico.
    • Due approcci correlati sono la consegna incrementale e lo sviluppo a spirale.

    Sviluppo a Spirale

    • Il processo è rappresentato come una spirale, con ogni ciclo che rappresenta una fase del processo.
    • I rischi vengono valutati e risolti durante tutto il processo.

    Sviluppo Incrementale

    • Il processo è diviso in incrementi, con ogni incremento che aggiunge nuove funzionalità al sistema.
    • I requisiti con priorità più alta sono inclusi nei primi incrementi.

    Attività di Processo

    • La specifica del software definisce i servizi richiesti e i vincoli al funzionamento e allo sviluppo del sistema.
    • La progettazione e implementazione del software convertono le specifiche del sistema in un sistema eseguibile.
    • La convalida del software verifica la conformità del sistema alle sue specifiche e la soddisfazione dei requisiti del cliente.
    • L'evoluzione del software si riferisce alle modifiche necessarie per adattarsi ai cambiamenti dei requisiti del sistema.

    Metodi Strutturati

    • I metodi strutturati sono approcci sistematici alla progettazione del software che usano modelli grafici come modelli a oggetti, modelli di sequenza, modelli di transizione di stato, modelli strutturali e modelli a flusso di dati.

    Fasi di Test

    • Il test di componenti o unità verifica i singoli componenti in modo indipendente.
    • Il test di sistema verifica il sistema nel suo complesso per individuare le proprietà emergenti.
    • Il test di accettazione verifica la soddisfazione dei requisiti del cliente.

    Computer-Aided Software Engineering (CASE)

    • CASE è un software per supportare i processi di sviluppo ed evoluzione del software.
    • Supporta attività come l'editing grafico di modelli di sistema, la gestione delle entità del progetto, la generazione di interfacce utente, il debug e la traduzione automatica.

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Questo quiz esplora i vari modelli di processo nell'ingegneria del software, compresi il modello a cascata e lo sviluppo evolutivo. Viene anche analizzato il costo dello sviluppo software e l'importanza dei metodi strutturati e dei sistemi CASE. Testa la tua comprensione di questi concetti chiave.

    More Like This

    Software Life Cycle Models Quiz
    10 questions
    Software Development Models
    18 questions
    Project Development Models Overview
    24 questions
    Use Quizgecko on...
    Browser
    Browser