Fondamenti di Informatica e Sviluppo del Software
Classificato in Informatica
Scritto il in
italiano con una dimensione di 4,93 KB
Concetti Fondamentali dell'Elaborazione Dati
I dati sono gli elementi considerati come unità di elaborazione all'interno di un sistema di elaborazione dati. Si distinguono principalmente in:
- Input: dati inseriti per essere trattati.
- Dati in uscita (Output): il risultato dell'elaborazione.
Istruzioni (Comandi): Tutti gli ordini vengono trasmessi al computer per svolgere compiti specifici.
Software/Programmi: Un insieme di programmi correlati tra loro.
Sistema: Un insieme di elementi interdipendenti finalizzati a uno scopo particolare.
Sistema Informatico: Un insieme di elementi in grado di elaborare le informazioni.
Linguaggi di Programmazione
Linguaggio Assembly
Il Linguaggio Assembly è un linguaggio simbolico che emerge come sostituto del linguaggio macchina ed è basato su mnemonici. Richiede una conoscenza approfondita della struttura e del funzionamento interno di un computer, oltre a un'abile manipolazione dei codici di numerazione (generalmente binario ed esadecimale).
Vantaggi:
- Un programma in assembler corre più velocemente rispetto a uno realizzato in un linguaggio di alto livello.
- Occupa meno spazio in memoria.
- È più facile lavorare direttamente con i driver delle periferiche.
- Il codice sorgente viene tradotto direttamente in codice macchina.
Contro:
- Genera programmi molto più lunghi di quelli realizzati in linguaggi di alto livello.
- Non sono portatili: il codice è specifico per un particolare processore.
- È più difficile da scrivere e da sottoporre a debug, rendendo complicate le correzioni e le modifiche.
Linguaggi di Alto Livello
I linguaggi di alto livello sono più vicini al linguaggio umano e a quello del programmatore.
Vantaggi:
- Sono indipendenti dalla struttura del processore che esegue l'applicazione.
- Il programmatore non ha bisogno di conoscere a fondo il funzionamento interno del computer.
- Facilitano lo sviluppo, il debug e la manutenzione delle applicazioni personalizzate.
Svantaggi:
I programmi realizzati in linguaggi di livello superiore devono essere tradotti nel linguaggio macchina comprensibile dalla CPU. Pertanto, è necessario disporre di un traduttore per ogni specifica macchina. I traduttori possono essere di tre tipi: compilatori, assemblatori o interpreti.
Il Ciclo di Vita del Software
Le prestazioni di qualsiasi applicazione si basano sul concetto di ciclo di vita. Esso espone una serie di stadi o fasi da seguire in sequenza e con ordine:
1. Analisi
In questa fase è necessario specificare i processi e le strutture dati da elaborare. Deve esserci una grande comunicazione tra l'analista e il committente per conoscere tutte le esigenze e le difficoltà nello sviluppo della domanda. In caso di ambiguità, è possibile creare prototipi o richiedere la riqualificazione degli utenti. L'analista o consulente può progettare un'applicazione da zero o parametrizzare una già esistente.
2. Design (Progettazione)
Si definisce una soluzione ottimale, dettagliata e precisa, tenendo conto di due fattori:
- Risorse fisiche del sistema: tipo di computer, periferiche, comunicazione, ecc.
- Risorse logiche: sistemi operativi, compilatori, database, ecc.
Per progettare le soluzioni si utilizzano algoritmi, diagrammi di flusso e pseudocodice. La fase di progettazione si conclude con il quaderno di carico, ovvero la documentazione tecnica completa della soluzione.
3. Consolidamento (Codifica)
È la fase in cui si traduce la soluzione fornita nel design in un particolare linguaggio di programmazione, basandosi sul libro di carico. In questa fase viene eseguita anche la decodifica per verificare gli errori ed eseguire il debug del programma.
4. Funzionamento e Attuazione (Implementazione)
Si effettua l'installazione del software e del sistema fisico per l'avvio operativo. Le fasi includono:
- Installazione e impostazioni.
- Test di accettazione del programma.
- Conversione dei dati dal vecchio al nuovo sistema.
- Eliminazione del sistema precedente.
- Formazione degli utenti finali sull'utilizzo della nuova applicazione.
5. Manutenzione
Rappresenta il completamento del ciclo di vita e serve ad apportare le modifiche necessarie per superare errori o carenze del prodotto. Queste azioni possono portare alla ripresa del ciclo di vita. Il tempo speso per la manutenzione sarà minore se lo sviluppo è stato corretto e ben documentato.