Sistemi Operativi e Sviluppo Software: Concetti Chiave e Processi

Classified in Informatica

Written at on italiano with a size of 10,5 KB.

Che cos'è un Sistema Operativo?

Un Sistema Operativo (OS) è il software di base di un computer. Funge da interfaccia tra i programmi, le periferiche hardware e l'utente.

Classificazione dei Sistemi Operativi

  • Multi-utente: Permette a più utenti di utilizzare i loro programmi contemporaneamente. Alcuni sistemi operativi gestiscono centinaia o migliaia di utenti simultaneamente.
  • Multiprocessore: Supporta l'esecuzione dello stesso programma su più CPU.
  • Multitasking: Consente l'esecuzione di più programmi contemporaneamente.
  • Multi-thread (Multi-segmento): Permette a diverse parti di un unico programma di essere eseguite contemporaneamente.
  • Tempo Reale (Real-time): Risponde agli input istantaneamente.

Linguaggi di Programmazione

Un linguaggio di programmazione è una tecnica standard di comunicazione che permette di esprimere le istruzioni da eseguire su un computer.

Scelta del Linguaggio di Programmazione

La scelta del linguaggio dipende da:

  • Tipo di programmi da sviluppare.
  • Piattaforma di destinazione.
  • Preferenze personali o aziendali.

Il paradigma di programmazione più diffuso è la Programmazione Orientata agli Oggetti (OOP), supportata da linguaggi come Java e C#. Attualmente, i linguaggi più popolari includono Java, C#, Python, PHP e ASP (per il web).

Fasi di Sviluppo di un Programma

  1. Specifica del Programma

    • Definizione degli obiettivi del programma.
    • Determinazione dell'output desiderato.
    • Identificazione dei dati di input.
    • Definizione dei requisiti di elaborazione.
    • Documentazione delle specifiche.
  2. Progettazione del Programma (Design)

    Progettazione del sistema o dell'applicazione per soddisfare le esigenze. Include:

    • Input/Output.
    • Calcoli.
    • Logica/Confronti.
    • Archiviazione/Consultazione.
  3. Codifica del Programma

    Generazione del programma utilizzando un linguaggio di programmazione, implementando la logica definita nella fase di progettazione. È fondamentale selezionare il linguaggio appropriato.

  4. Testing e Debugging del Programma

    Identificazione e correzione degli errori. Tipi di errori:

    • Errori di Sintassi o Compilazione: Violazioni delle regole del linguaggio. Rilevati dal compilatore.
    • Errori di Esecuzione: Operazioni non consentite (divisione per zero, input non numerico, ecc.). Causano l'arresto anomalo del programma.
    • Errori di Logica: Risultati non corretti. Rilevabili solo tramite test approfonditi.
    • Errori di Specifica: I più difficili da correggere, spesso richiedono una revisione delle specifiche.

    Metodi di Test:

    • Controllo Manuale (Desk Check): Revisione del codice da parte del programmatore.
    • Test Manuale con Dati di Prova: Esecuzione manuale del programma con dati corretti e non.
    • Tentativo di Traduzione: Compilazione del programma.
    • Test con Dati di Prova sul Computer: Ricerca di errori logici dopo la correzione degli errori di sintassi.
    • Test Beta: Test con un gruppo selezionato di utenti potenziali.
  5. Documentazione del Programma

    Descrizione tecnica del programma e del suo utilizzo. Include:

    • Documentazione per utenti (manuali).
    • Documentazione per operatori.
    • Documentazione per sviluppatori.
    • Documentazione per analisti.
  6. Manutenzione del Programma

    Fase finale del ciclo di vita del software. Include la correzione di errori, miglioramenti delle prestazioni e aggiornamenti. La manutenzione può rappresentare fino al 75% del costo totale del ciclo di vita.

Implementazione del Software

L'implementazione del software richiede un processo di configurazione e adattamento alle esigenze del cliente.

Metriche per la Valutazione del Software

  • Metriche del Software: Associate a funzionalità, complessità ed efficienza.
  • Metriche Tecniche: Focalizzate su aspetti come la complessità logica e la modularità.
  • Metriche di Qualità: Indicano l'aderenza del software ai requisiti del cliente.
  • Metriche di Produttività: Misurano le prestazioni del processo di sviluppo.
  • Metriche Orientate alla Dimensione: Stime di tempo e risorse necessarie.
  • Metriche Orientate alla Funzione: Basate sui punti funzione (Function Points) di Albrecht, che considerano la complessità del software.

Piano di Sistemi Informativi (PSI)

  1. Avvio del Piano: Determinazione dell'inizio formale.
  2. Definizione e Organizzazione: Descrizione dettagliata del PSI, assegnazione di tempi e risorse.
  3. Studio delle Informazioni Rilevanti: Analisi delle informazioni.
  4. Identificazione dei Requisiti: Specifica dei requisiti del sistema.
  5. Studio della Situazione Attuale: Valutazione della situazione esistente.
  6. Progettazione del Modello: Definizione del Sistema Informativo.
  7. Architettura Tecnologica: Proposta dell'architettura tecnologica di supporto.
  8. Definizione del Piano Dettagliato: Definizione di progetti, attività, tempi e risorse.
  9. Revisione e Approvazione: Presentazione del piano per l'approvazione finale.
  10. Documentazione: Elenco delle specifiche.

Testing del Software

I test del software (in inglese, *testing*) sono processi che verificano e divulgano la qualità del software. Identificano errori di esecuzione, problemi di qualità o usabilità.

Si distingue tra:

  • Difetti (Defects): Il programma fa ciò che l'utente si aspetta.
  • Errori di Programmazione (Bugs): Problemi nella semantica del programma.

La fase di test prima del rilascio finale è chiamata test beta.

Tipi di Test:

  • Unit Testing
  • Functional Testing
  • Test di Integrazione
  • Test di Convalida
  • System Testing
  • White Box Testing
  • Black Box Testing
  • Test di Accettazione
  • Test di Regressione
  • Load Testing
  • Performance Testing
  • Stress Testing
  • Mutation Testing

Implementazione: Parametrizzazione e Configurazione

L'implementazione richiede tempo e adattamento da parte degli utenti a nuovi ruoli, processi e compiti. La collaborazione, la disponibilità e la flessibilità sono fondamentali.

Passi per un'Implementazione di Successo

  1. Installazione: Eseguire il setup.
  2. Visualizzazione di Video Tutorial: Acquisire familiarità con le schermate.
  3. Lettura del Manuale: Consultare l'indice del manuale.
  4. Pratica: Inserire dati di esempio.
  5. Pianificazione: Definire le aree da gestire e le priorità.
  6. Divisione in Moduli (se necessario):
    • Clienti
    • Fornitori
    • Listini Prezzi
    • Fatturazione Acquisti/Vendite
    • Controllo Cassa/Magazzino/Commissioni/Assegni/Conti
    • Statistiche
  7. Utilizzo di Email e Internet: Annotare le domande.
  8. Backup Giornalieri: Proteggere i dati.

Documentazione

Per facilitare la manutenzione, è essenziale disporre di tutta la documentazione generata durante le fasi precedenti (specifiche, algoritmi, codice sorgente, manuali, ecc.).

Preparazione del Manuale

  • Manuale Utente

    Descrive in dettaglio le opzioni disponibili per l'utente, con schermate esplicative. Destinato agli utenti finali.

  • Manuale di Procedura

    1. Home: Identificazione del documento e dell'autore.
    2. Introduzione: Descrizione dello scopo del documento.
    3. Analisi dei Requisiti e del Sistema: Requisiti di installazione e utilizzo.
    4. Spiegazione del Funzionamento: Istruzioni passo-passo.
    5. Glossario.

    Caratteristiche:

    • Scritto in modo chiaro e comprensibile.
    • Dettagliare tutti i passaggi.
    • Specificare l'ambito e i limiti del programma.
    • Assumere che il lettore non abbia conoscenze informatiche pregresse.
  • Manuale di Amministrazione

    Serve come punto di partenza per la gestione del sistema. Destinato al management.

Preparazione del Manuale Tecnico

Contiene informazioni dettagliate sulle risorse utilizzate, comprese le caratteristiche tecniche dell'hardware (processore, velocità, dimensioni, garanzie, fornitori, ecc.).

Struttura del Manuale Tecnico

  1. Indice: Elenco dei capitoli e delle pagine.
  2. Introduzione: Descrizione del sistema, della sua funzione principale e dei suoi componenti.
  3. Obiettivo Generale del Sistema.
  4. Obiettivi Specifici.
  5. Contenuti Tecnici:
    • Definizione delle regole di business.
    • Diagrammi di flusso dei dati e dizionario dati.
    • Controlli di audit.
    • Descrizione dei campi obbligatori.
    • Diagramma di navigazione del sistema.
    • Requisiti di interfaccia.
    • Modello logico dei dati (diagramma entità-relazione).
    • Modello fisico dei dati e dizionario dati.
    • Matrice processi/organizzazioni.
    • Matrice programmi/entità.
    • Piattaforma utente (requisiti hardware e software).
    • Ambito di applicazione delle procedure.
  6. Responsabile: Designazione di un coordinatore e di un team tecnico.
  7. Mappa di Navigazione:
    • Rappresentazione grafica dell'interconnessione tra le schermate.
    • Descrizione grafica della mappa di navigazione (schermate).
    • Descrizione dei passaggi, pulsanti, caselle di testo e codice.

Entradas relacionadas: