Section outline

  • Nella seconda settimana di lezione completiamo la prima presa di conoscenza con la nozione di ciclo di vita del software, e dei processi che alimentano le transizioni tra gli stati del ciclo di vita. Su quella base, esploriamo i principali modelli organizzativi delle attività di processo comprese nel segmento tra concezione (stadio iniziale) e sviluppo (stadio immediatamente precedente al primo rilascio pubblico), che sono chiamati appunto "modelli di sviluppo".

    Nella parte pratica dell'insegnamento, con il docente Cardin, ragioniamo sul ruolo essenziale della progettazione (design) software come premessa, giustificazione, e guida alla codifica e facciamo conoscenza con il formalismo che useremo nel progetto didattico per rappresentare i prodotti dell'analisi dei requisiti e della progettazione.

    • L'argomento T2 illustra come la "vita" del software si dipani tra un momento iniziale, in cui l'attenzione è tutta incentrata sui bisogni che motivano la sua realizzazione, e la sua vita operativa, fino all'eventuale ritiro definitivo, in cui il suo ulteriore utilizzo è deprecato o non più possibile tecnologicamente, attraverso tutte le attività che chiamiamo "sviluppo". Il tema centrale di questo argomento è prendere consapevolezza che le attività che "spingono" il software più avanti nel proprio ciclo di vita sono molte e articolate, al punto da richiedere un sistema strutturato di classificazione e di organizzazione, per stabilire in modo uniforme "chi fa cosa" tra esse. Nella discussione di questo argomento vediamo anche come il segmento di vita più lungo, idealmente e praticamente, per un prodotto software è la manutenzione, dove l'esperienza d'uso mette in rilievo mancanze, difetti e nuove esigenze, e l'evoluzione tecnologica richiede adattamenti o crea opportunità di evoluzione. L'ovvia necessità che la manutenzione non sia una "giungla selvaggia" richiede accorgimenti di concezione, organizzazione, e scrittura del software di cui tratteremo nelle prossime settimane.

    • La parte del ciclo di vita del software più vicina ai temi "vivi" di questo insegnamento è il segmento da "concezione" a sviluppo. Vi sono diversi modi per organizzare le attività che servono per percorrere quel tratto. Questi modi sono teorizzati in "modelli": in questa lezione illustriamo e discutiamo alcuni di essi.

    • Parte della difficoltà di scrivere software è proprio dover comunicare idee e concetti riguardanti il software. Il linguaggio UML ci viene in aiuto, definendo un linguaggio formale attorno alle diverse sfacettature del mondo dell'ingegneria del software.

      Introduciamo per primi i diagrammi delle classi.