Fondamenti di Ingegneria del Software: Requisiti, Architettura e Modellazione

Classificato in Informatica

Scritto il in italiano con una dimensione di 4,04 KB

1. Concetto di Analisi

L'analisi consiste nel comprendere le regole di business e i requisiti software per fornire una soluzione ottimale a un problema, definendo obiettivi chiari, la portata del progetto e i requisiti funzionali e non funzionali. Si articola in diverse fasi:

  • Riconoscimento del problema: identificazione degli elementi di base del problema così come percepiti dagli utenti finali.
  • Valutazione e sintesi: valutazione del contenuto informativo, definizione e sviluppo delle funzioni del software e del suo comportamento nel contesto degli eventi che colpiscono il sistema.
  • Modellazione: creazione di modelli di sistema per comprendere meglio gli obiettivi e il comportamento.
  • Specifica: definizione formale del software.
  • Revisione: controllo finale dell'intero processo.

2. Modello e Metodologia

Il modello serve a spiegare e presentare una soluzione a un problema in modo statico. La metodologia, invece, è un insieme dinamico di procedure, tecniche e strumenti che aiutano a raggiungere l'obiettivo. In termini generali, la metodologia viene utilizzata in combinazione con i modelli.

3. Concetto Architettonico

Il design rappresenta il livello più alto della struttura di un sistema, definito in termini di componenti e interazioni. Illustra la corrispondenza tra i requisiti di sistema e gli elementi costruiti, evidenziando proprietà globali come scalabilità, prestazioni, coerenza e compatibilità.

3.1. Stile Architettonico

Descrive i tipi di componenti e il modello di controllo dell'esecuzione o di trasferimento dati. Uno stile definisce una famiglia di sistemi attraverso:

  • Vocabolario: componenti e connettori.
  • Restrizioni: regole di combinazione.
  • Modelli semantici: determinano come impostare le proprietà globali a partire dalle proprietà delle parti.

Alcuni esempi includono: pipes and filters, oggetti, architetture a strati, client-server, ecc.

3.2. Concetto di Componente

Corrisponde a un'unità software responsabile dell'incapsulamento di un insieme di funzioni che operano su una parte del modello di dati. Si integra con altri componenti per formare il sistema.

4. Requisiti Software

I requisiti sono descrizioni dei desideri o delle necessità dell'utente rispetto a un prodotto. Si dividono in:

  • Requisiti funzionali: indicano cosa deve fare il sistema per risolvere un problema o raggiungere un obiettivo.
  • Requisiti di sistema: definiscono i prerequisiti tecnici necessari per implementare la soluzione.

5. Use Case

Il caso d'uso è una tecnica utilizzata per indicare la funzionalità e il comportamento di un sistema attraverso l'interazione con utenti o altri sistemi. Il diagramma dei casi d'uso è composto da attori, relazioni e scenari.

6. Requisiti Non Funzionali

Specificano le aspettative del sistema in termini di qualità, come velocità, facilità d'uso, robustezza, affidabilità, flessibilità e portabilità. Non sono direttamente "programmabili", ma influenzano la struttura del software che si intende costruire.

7. Schema dei Componenti

I diagrammi dei componenti rappresentano le parti fisiche del software (file, pacchetti, librerie, ecc.). Si compongono di:

  • Componente: unità fisica di implementazione con interfacce ben definite, progettata per essere sostituibile.
  • Interfaccia: lista di operazioni che un componente software o hardware è in grado di eseguire.

7.1. Confronto tra Schema dei Componenti e Diagramma delle Classi

Un diagramma dei componenti ha un livello di astrazione superiore rispetto a un diagramma delle classi; solitamente, un componente è implementato da una o più classi (o oggetti) a runtime.

Voci correlate: