Ingegneria del Software: Modelli e Costi
40 Questions
0 Views

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

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 (A)</p> Signup and view all the answers

Qual è una caratteristica fondamentale di un buon software?

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

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

<p>Progettazione (B)</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 (B)</p> Signup and view all the answers

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

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

Qual è uno dei principali svantaggi del modello a cascata?

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

Quando è più appropriato utilizzare il modello a cascata?

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

Quale fase non fa parte del modello a cascata?

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

Qual è l'obiettivo principale dello sviluppo esplorativo?

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

Quale affermazione riguarda meglio la prototipazione usa e getta?

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

Qual è un problema comune nello sviluppo evolutivo?

<p>Richiede competenze speciali (B)</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 (C)</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 (B)</p> Signup and view all the answers

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

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

Qual è una delle caratteristiche principali dello sviluppo a spirale?

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

Qual è l'obiettivo principale dello sviluppo incrementale?

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

Quali attività compongono il processo di ingegneria dei requisiti?

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

In quale fase del processo sono forniti i primi incrementi?

<p>Sviluppo incrementale (D)</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 (A)</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 (B)</p> Signup and view all the answers

Qual è uno dei vantaggi dello sviluppo incrementale?

<p>Valore del cliente fornito con ogni incremento (D)</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. (C)</p> Signup and view all the answers

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

<p>Riservatezza riguardo alle informazioni dei clienti. (D)</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. (D)</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. (B)</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. (A)</p> Signup and view all the answers

In cosa consiste un modello di processo software?

<p>Una rappresentazione astratta di un processo di sviluppo. (C)</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. (D)</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. (D)</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 (A)</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 (C)</p> Signup and view all the answers

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

<p>Modello a oggetti (B)</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 (B)</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 (A)</p> Signup and view all the answers

Qual è uno degli obiettivi della progettazione dell'interfaccia?

<p>Facilitare l'interazione dell'utente con il sistema (A)</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 (C)</p> Signup and view all the answers

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

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

Flashcards

Waterfall model

A sequential software development model with distinct phases for specification, development, and validation.

Evolutionary development

A software development approach where specification, development, and validation are iterative and overlap.

Component-based software engineering

Building a system from pre-existing components.

Development costs

Approximately 60% of total software costs.

Signup and view all the flashcards

Testing costs

About 40% of total software costs.

Signup and view all the flashcards

Evolution costs

Often surpass development costs in custom software.

Signup and view all the flashcards

Structured methods

Systematic ways to design software using graphical models like object models, sequence diagrams, state transition diagrams, structural models, and data flow models.

Signup and view all the flashcards

CASE tools

Automated support for software process activities.

Signup and view all the flashcards

Upper-CASE

CASE tools supporting early process phases like requirement analysis and design.

Signup and view all the flashcards

Lower-CASE

CASE tools supporting later phases like programming, debugging, and testing.

Signup and view all the flashcards

Good software characteristics

Meets user functional and performance requirements, is maintainable, reliable, efficient, acceptable (understandable, usable, compatible).

Signup and view all the flashcards

Software process

Structured activities used for developing a software system(including specification, design, validation, and evolution).

Signup and view all the flashcards

Software process model

Abstract representations of a software process used to describe the process from a specific perspective.

Signup and view all the flashcards

Generic process models

Common models for software development, including waterfall, evolutionary, and component-based.

Signup and view all the flashcards

Spiral model

A software development process model represented as a spiral, where each loop signifies a phase.

Signup and view all the flashcards

Incremental development

Developing software in increments, adding new features in each.

Signup and view all the flashcards

Software process activities

Specifying requirements, designing, implementing, and validating software systems.

Signup and view all the flashcards

Process activities

The actions involved in a software development process, including Requirements, Design, Implementation and Validation.

Signup and view all the flashcards

Component testing

Testing individual components in isolation.

Signup and view all the flashcards

System testing

Testing the entire system as a whole to reveal emergent properties.

Signup and view all the flashcards

Acceptance testing

Verifying that the system meets customer requirements.

Signup and view all the flashcards

Software maintenance

Changes needed to adapt to evolving system requirements.

Signup and view all the flashcards

Professional/Ethical responsibilities

Implies ethical conduct and technical skills, prioritizing honesty, responsibility, and respecting intellectual property.

Signup and view all the flashcards

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 Development Models
18 questions
Software Development Models and Practices
40 questions
Software Engineering Course Overview
48 questions
Software Engineering Overview
10 questions
Use Quizgecko on...
Browser
Browser