CODICE 111100 ANNO ACCADEMICO 2023/2024 CFU 3 cfu anno 1 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05 LINGUA Inglese SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE L'ingegneria del software è la branca dell'informatica che crea soluzioni pratiche ed economiche ai problemi di calcolo e di elaborazione delle informazioni. Questo corso presenta una raccolta di metodi con un approccio "ingegneristico" allo sviluppo di software. Verranno presentate metodologie per l'analisi, la progettazione, il test e l'implementazione di sistemi software grandi e complessi. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI In questo corso si vogliono applicare i concetti visti a lezione di Software Engineering (111102), in particolare approfondendo tutti gli aspetti dello sviluppo software. Alla fine del corso lo studente dovrebbe essere in grado di sviluppare un intero software, dall'analisi dei requisiti fino alla verifica e validazione del software stesso. Il progetto verra' sviluppando seguendo uno dei modelli di sviluppo software visti a lezione di Software Engineering(111102) OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Al termine del corso gli studenti dovrebbero essere in grado di: Gestire un progetto di sviluppo software di medie dimensioni, inclusa la pianificazione e tutta la documentazione di supporto Compilare documenti di ingegneria del software come ad esempio documenti sui requisiti utente o il test planning Utilizzare strumenti per lavorare in gruppo come ad esempio git/github Interagire con Aziende per la definizione dei requisiti PREREQUISITI Non ci sono requisiti di competenza specifici. Il docente assume che gli studenti abbiano familiarità con i linguaggi di programmazione e le strutture dati, anche complesse. Questo corso propone metodologie di lavoro sia indipendente che cooperativo. Il linguaggio di implementazione utilizzato durante le lezioni è Java. L'esperienza di programmazione Java non è un prerequisito, perché si presume che, in qualità di professionisti del software, gli studenti abbiano la capacità di apprendere rapidamente nuovi linguaggi e strumenti. Il corso deve essere svolto insieme al corso di Software Engineering (111102) MODALITA' DIDATTICHE Le attivita' didattiche sono divise in: Lezioni in aula dove il Docente presentera' alcuni esempi Meeting tra docente e ogni gruppo per definire lo stato di avanzamento del progetto e possibili problematiche Meeting tra tutor aziendale e gruppo di lavoro per definire i requisiti e per validare il lavoro Meeting tra tutor aziendale gruppo di lavoro e Docente per validare lo stato di avanzamento del progetto PROGRAMMA/CONTENUTO Come gestire un progetto software tramite gir/github Pianificazione dei Task per il lavoro in gruppo Scrittura di documenti per lo sviluppo del software Progettazione del software tramite UML Sviluppo del Software tramite linee guida Refactoring del codice Unit Testing Automatico Functional Testing TESTI/BIBLIOGRAFIA Libri per approfondire i concetti visti in aula R. Martin, Agile Software Development, Principles, Patterns, and Practices, Prentice Hall, 2002 (ISBN: 0-135-97444-5). C. Atkinson et al, Component-Based Product Line Engineering with UML, Addison-Wesley, 2001, (ISBN 0-201-73791-4). A. Cockburn, Writing Effective Use Cases, Addison Wesley, 2000 (ISBN: 0-201-70225-8). M. Fowler and K. Scott, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 2nd Edition, Addison Wesley, 2002 (ISBN: 0-201-65783-X). I. Jacobson, G. Booch, and J. Rumbaugh, Unified Software Development Process, Addison Wesley, 1999, (ISBN: 0-201-57169-2). Software Engineering, Ian Sommerville, Pearson Editor DOCENTI E COMMISSIONI MASSIMO NARIZZANO Ricevimento: Il Docente riceve su appuntamento, sia di persona che in via telematica (Teams. Commissione d'esame MASSIMO NARIZZANO (Presidente) ENRICO GIUNCHIGLIA ARMANDO TACCHELLA (Presidente Supplente) LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Ad ogni studente viene assegnato un progetto che sara' lo stesso del corso di Software Engineering che dovra' svolgere in gruppo. MODALITA' DI ACCERTAMENTO Il voto dell'esame sara' dato valutando il progetto nelle seguenti composizioni: 50%: del voto sara' assegnato valutando quanto il software soddisfa i requisiti dell'utente. Di solito viene valutato dal tutor aziendale/universitario 50% del voto sara' assegnato valutando la qualità del software prodotto, dal punto di vista delle pratiche di ingegneria del software. Di solito questo sarà valutato dal Docente del Corso. Calendario appelli Data appello Orario Luogo Tipologia Note 16/02/2024 08:00 GENOVA Esame su appuntamento 13/09/2024 08:00 GENOVA Esame su appuntamento