Salta al contenuto principale della pagina

SOFTWARE ENGINEERING

CODICE 80154
ANNO ACCADEMICO 2022/2023
CFU
  • 9 cfu al 1° anno di 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
  • SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
    LINGUA Inglese
    SEDE
  • GENOVA
  • PERIODO 2° Semestre
    MATERIALE DIDATTICO AULAWEB

    PRESENTAZIONE

    L'Ingegneria del Software è una disciplina che regola ogni aspetto del processo di sviluppo software, dall'interazione con il cliente per comprendere le richieste, allo sviluppo software fino alla verifica che il prodotto sviluppato sia conforme alle richieste. In altre parole è l'applicazione dei principi rigorosi
    dell'ingegneria allo sviluppo del software.

    OBIETTIVI E CONTENUTI

    OBIETTIVI FORMATIVI

    Software Engineering is a discipline that rules every aspect of the software development process. In other word is the application of Engineering to the Software. It is concerned with requirement specification, design, models, writing documentation and also writing unit tests, not just coding. Moreover it also provide metrics to quantify the quality of the product, i.e. the software developed. Software Development Templates, Requirement Analysis, UML Modeling Systems, Design Patterns, Verification and Validation, Time Template Specification Languages, Temporary Property Verification Algorithms, Modeling and Case Resolution using Model Checkers "

    OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

    Come obiettivi formativi l'insegnamento si propone di 

    • fornire agli studenti le nozioni di base del processo di sviluppo software
    • introdurre il tema della Verifica formale
    • fornire agli studenti le nozioni approfondite sull'Analisi dei Requisiti, a partire dall'acquisizione fino alla specifica dei requisiti software
    • fornire gli strumenti base del linguaggio di progettazione UML
    • fornire agli studenti le linee guida di scrittura dei programmi
    • fornire agli studenti le nozioni di base della verifica del software tramite testing

    L'insegnamento, inoltre, dovrà permettere agli studenti di acquisire  competenze sulla scrittura dei documenti standard che devono essere compilati durante il processo di sviluppo software.

    Al termine del corso lo studente dovrà essere in grado di:

    • Esaminare un software ed estrarre da esso i suoi requisiti
    • Raccogliere requisiti interagendo con i diversi stakeholders
    • Scrivere un documento dei requisiti a livello utente (User Requirement Specification document)
    • Scrivere un documento dei requisiti a livello di sistema (Software Requirement Specification document)
    • Redigere un documento di progetto dei requisiti utilizzando il linguaggio UMLSoftware Desgin Specification document)
    • Sviluppare un software a partire da un documento di progetto utilizzando le linee guida di sviluppo software
    • Progettare test sia strutturali che funzionali per la verifica dinamica di un software

    PROGRAMMA/CONTENUTO

    I temi che verranno affrontati, non necessariamente in quest'ordine, saranno

    Processi di Sviluppo Software,
    Raccolta, Analisi e Scrittura dei Requisiti Software
    Analisi di Requisiti in Sistemi Cyber-Physical
    Unified Modelling Language (UML)
    Strutturazione del codice, linee guida di scrittura del codice, e generazione automatica della documentazione
    Verifica Tramite Testing, testing strutturale e criteri di copertura, testing funzionale
    Progettazione e Sviluppo di Interfaccie grafiche
    Strumenti e Tecnologie di supporto al processo di sviluppo software
    Utilizzo di sistemi di Control Versioning, come ad esempio git/svn 

    TESTI/BIBLIOGRAFIA

    Le slides che vengono usate a lezione sono in parte ottenute dai seguenti testi:

    • Software Engineering – I. Sommerville ‐ Pearson,
    • Writing Effective Use Cases – A. Cockburn – Pearson,
    • UML Distilled – M. Fowler – Pearson,
    • Foundations of Software Testing – A.P. Mathur – Pearson.

    DOCENTI E COMMISSIONI

    Commissione d'esame

    MASSIMO NARIZZANO (Presidente)

    ENRICO GIUNCHIGLIA

    ARMANDO TACCHELLA (Presidente Supplente)

    LEZIONI

    Orari delle lezioni

    L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.

    ESAMI

    MODALITA' D'ESAME

    Per poter superare l'esame lo studente dovrà sviluppare un software utilizzando la metodologia di sviluppo software più adeguata.  Ad inizio corso verranno presentati dei progetti da alcuni "clienti", ovvero aziende del panorama ligure, da alcuni enti pubblici e da laboratori dell'ateneo. A seconda delle preferenze espresse dallo studente, il docente assegnerà un progetto ad ogni studente. Il progetto dovrà essere portato a termine in completa autonomia. Il progetto prevede cinque diverse consegne inerenti il progetto scelto:

    • un documento in formato office, in cui vengono descritti i requisiti del sistema da implementare (URS). Questo documento tipicamente viene scritto intervistando il cliente.
    • Un documento in formato office in cui viene ampliata la descrizione dei requisiti(SRS)
    • Un documento office dove viene descritto il progetto ad alto livello, che soddisfi tutti i requisiti (SDS,). Laddove possibile il documento dovrebbe essere  scritto usando il linguaggio UML
    • Il codice, ovvero il software funzionante che implementa i requisiti individuati precedentemente
    • Il TestPlan, ovvero i test che "dimostrano" che il sistema implementa i requisiti in modo corretto.
    • Inoltre ad ogni studente verrà richiesto di analizzare uno o più d ocumenti scritti dai loro colleghi con lo scopo di aumentare da un lato le competenze dello studente, e dall'altro la qualità dei prodotti sviluppati.

    Infine lo studente dovrà presentare il lavoro svolto davanti a una commissione che valuterà il suo operato.

    Si ricorda inoltre che la consegna di questi documenti avverrà in itinere con scadenze prefissate.

    MODALITA' DI ACCERTAMENTO

    Alla fine del corso lo studente sara' in grado di analizzare, modellare, verificare e validare un sistema software.
     

    Calendario appelli

    Data Ora Luogo Tipologia Note
    15/09/2023 09:00 GENOVA Esame su appuntamento