Cos’è la progettazione software?
La progettazione software è un processo globale di Ingegneria del software che consiste nell'analisi, pianificazione e descrizione di un sistema software con l'obiettivo di organizzare le sue funzionalità, componenti e interazioni. Include sia la progettazione architetturale generale, sia quella in dettaglio (implementazione dei singoli moduli). Tornano utili i design patterns.
Best practices in progettazione software
Possiamo riconoscere 4 attività principali:
- Progettazione dell’architettura (Architectural design): In questa fase si definisce la struttura generale del sistema. Si identificano i componenti principali (sottosistemi o moduli), le loro relazioni e come sono distribuiti.
- Progettazione del database (Database design): Qui si progetta la struttura dei dati del sistema e come questa verrà rappresentata in un database. Questo può includere il riutilizzo di un database esistente o la creazione di uno nuovo.
- Progettazione dell’interfaccia (Interface design): Si definiscono le interfacce tra i vari componenti del sistema. Una specifica chiara e non ambigua dell’interfaccia è cruciale perché permette a un componente di essere utilizzato da altri senza che questi debbano conoscerne l’implementazione interna.
- Selezione e progettazione dei componenti (Component selection and design): In questa attività si cercano componenti riutilizzabili. Se non se ne trovano di adatti, si procede con la progettazione di nuovi componenti software. Il livello di dettaglio può variare da una semplice descrizione a un modello di progettazione dettagliato.