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.
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 "
Al termine del corso gli studenti dovrebbero essere in grado di:
Non ci sono requisiti 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.
Durante il corso si alternano lezioni frontali a dimostrazioni pratiche dei concetti didattici appresi. Per ogni argomento sono disponibili sul sito principale del corso (aulaweb) un set di slides. Inoltre anche una serie di esempi pratici vengono utilizzati durante le lezioni e disponibili su github.
Infine docente e studenti insieme durante il corso collaboreranno per risolvere un esempio pratico.
Una (possibile) lista di argomenti trattati a lezione e':
Libri per approfondire i concetti visti in aula
Ricevimento: Il Docente riceve su appuntamento, sia di persona che in via telematica (Teams.
MASSIMO NARIZZANO (Presidente)
ENRICO GIUNCHIGLIA
ARMANDO TACCHELLA (Presidente Supplente)
Lo studente per poter superare il corso dovra' portare a termine un progetto in gruppo seguendo le regole:
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.