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.