Progettazione Sistemi Informatici: Concetti Chiave di Design Logico e Fisico, Accoppiamento e Coesione Software

Classificato in Informatica

Scritto il in italiano con una dimensione di 7,92 KB

Progettazione Sistemi Informatici: Concetti Chiave di Design Logico e Fisico

La Progettazione Fisica dei Sistemi è il modo in cui vengono svolti i compiti del sistema, ovvero come vengono combinati i componenti e le funzioni che ciascuno di essi esegue.

Caratteristiche della Progettazione Fisica

  • Progettazione Hardware: Richiede la specificazione di tutte le attrezzature informatiche, inclusi i dispositivi di input, elaborazione e output, con le relative caratteristiche prestazionali.
  • Progettazione Software: Richiede la specificazione di tutte le caratteristiche del software (SW).

Ad esempio, se la progettazione logica definisce la necessità per gli utenti di aggiornare il database, la progettazione fisica deve specificare il sistema di erogazione che lo permette.

  • Progettazione del Database (DB): Dettaglia la struttura e le funzioni del database. Le relazioni tra gli elementi di dati definite nella progettazione logica devono trovare riscontro anche nella progettazione fisica.
  • Progettazione delle Telecomunicazioni: Deve specificare le caratteristiche necessarie del software, dei media e dei dispositivi di telecomunicazione.
  • Procedure di Progettazione e Controlli: Dettagliano come ogni applicazione viene eseguita e le misure per ridurre al minimo il rischio di criminalità e frode (inclusa la metodologia di audit, il supporto e la distribuzione degli output).

Progettazione Logica

La Progettazione Logica è una descrizione dei requisiti funzionali di un sistema. Include la pianificazione dello scopo di ogni elemento del sistema, indipendentemente dalle considerazioni hardware e software.

Specifiche della Progettazione Software

  • Dettaglio Output:

    Una descrizione di tutti gli output del sistema, inclusi tipo, formato, contenuto e frequenza.
  • Dettaglio Input:

    Specifica il tipo, formato e contenuto. Ad esempio, il sistema può catturare i numeri di telefono dei clienti quando chiamano e utilizzare questi dati per la ricerca automatica delle informazioni del loro account.
  • Dettaglio Elaborazione:

    Questa fase determina i tipi di calcoli, confronti e, in generale, la manipolazione dei dati richiesti dal sistema.
  • Dettaglio Archivi e Database (DB):

    Le caratteristiche di questi sottosistemi sono specificate anche nella fase di progettazione logica. I Data Flow Diagrams e i diagrammi ER sono solitamente utilizzati per la progettazione di file e DB.
  • Dettaglio Telecomunicazioni:

    Durante la progettazione logica, è necessario specificare i sistemi di networking e delle telecomunicazioni. Programmi di grafica e strumenti CASE sono utili per facilitare la progettazione di reti logiche.
  • Dettaglio Procedure Operative:

    I sistemi informativi richiedono procedure per l'esecuzione delle applicazioni e per la risoluzione dei problemi che si presentano. Una volta concepite, le procedure possono essere descritte con programmi di elaborazione testi.
  • Dettaglio Controlli e Sicurezza:

    È una parte importante della progettazione logica, in quanto determina la frequenza e le caratteristiche dei sistemi di supporto necessari.

Progettazione del Sistema

La Progettazione del Sistema è l'arte di definire la struttura del software, dei moduli hardware e dei componenti di dati di un sistema informatico per soddisfare determinati requisiti.

Accoppiamento e Coesione

Accoppiamento e Coesione sono concetti strettamente correlati nella progettazione software, per cui difficilmente si può modificare uno senza influenzare l'altro.

Accoppiamento (Coupling)

L'Accoppiamento è il grado di interdipendenza tra i vari moduli di un programma.

Livelli di Accoppiamento

Ordinati dal più desiderabile (minore accoppiamento) al meno desiderabile (maggiore accoppiamento):

  1. Accoppiamento Dati (Data Coupling): Un modulo chiama un altro a un livello inferiore e scambia solo dati (parametri di input/output). I moduli comunicano attraverso parametri.
  2. Accoppiamento Timbro (Stamp Coupling): I moduli passano record o strutture di dati complete. È altamente desiderabile che il modulo richieda solo una parte dei dati passati.
  3. Accoppiamento di Controllo (Control Coupling): I dati scambiati tra i moduli includono elementi di controllo. Non è una buona pratica e impedisce ai moduli di essere totalmente indipendenti.
  4. Accoppiamento Comune (Common Coupling): Due moduli accedono alla stessa risorsa condivisa, tipicamente memoria condivisa, una variabile globale o un file.
  5. Accoppiamento Esterno (External Coupling): I moduli sono collegati a componenti esterni. Esempio: dispositivi I/O, protocolli di comunicazione, ecc.
  6. Accoppiamento di Contenuto (Content Coupling): Si verifica quando un modulo deve accedere a una parte interna di un altro modulo.

Coesione (Cohesion)

La Coesione è definita come la misura della forza o del rapporto funzionale tra gli elementi o le istruzioni all'interno dello stesso modulo.

Tipologie di Coesione nella Progettazione Strutturata

Possono essere identificate 7 tipologie:

  • Coesione Funzionale: Gli elementi del modulo sono tutti correlati allo sviluppo di una singola funzione.
  • Coesione Sequenziale: Un modulo svolge compiti diversi in sequenza, in modo che gli output di un'attività siano gli input della successiva.
  • Coesione di Comunicazione: Il modulo opera utilizzando gli stessi dati di input/output in parallelo.
  • Coesione Procedurale: Il modulo contiene una serie di funzioni correlate da una procedura eseguita dal codice (come una libreria). È simile alla coesione sequenziale, ma può includere il passaggio dei controlli.
  • Coesione Temporale: Gli elementi del modulo sono coinvolti in attività correlate temporalmente.
  • Coesione Logica: Le attività del modulo appartengono alla stessa categoria (come se fossero parti separate all'interno dello stesso modulo).
  • Coesione Casuale o di Coincidenza: Gli elementi del modulo di attività non contribuiscono in modo significativo l'uno all'altro. Questo tipo di coesione viola il principio di indipendenza e dei moduli a scatola nera.

Architettura Software

L'Architettura Software è il livello più alto di progettazione della struttura di un sistema.

Architettura e Progettazione Software: Obiettivi e Restrizioni

L'architettura e la progettazione software vengono selezionate in base a obiettivi e restrizioni:

  • Obiettivi: Sono i requisiti predisposti per il sistema informativo, che non devono essere solo funzionali, ma includere anche aspetti come la manutenibilità, la verificabilità, la flessibilità e l'interazione con altri sistemi informativi.
  • Restrizioni: Sono le limitazioni derivanti dalle tecnologie disponibili per implementare i sistemi informativi.

Euristiche di Progettazione

Le Euristiche di Progettazione rappresentano la capacità di un sistema di favorire uno sviluppo positivo e immediato per i propri scopi.

Euristiche

Una gamma di caratteristiche umane, dal cui punto di vista possono essere descritte come l'arte e la scienza della scoperta e dell'invenzione, o della risoluzione dei problemi con creatività e pensiero laterale (o 'pensare diversamente').

Etimologia di 'Euristica'

Il termine deriva dal greco e significa 'trovare', 'inventare'.

Voci correlate: