Offerta Didattica

 

INFORMATICA

SOFTWARE ENGINEERING

Classe di corso: L-31 - Scienze e tecnologie informatiche
AA: 2022/2023
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
ING-INF/05CaratterizzanteLiberaLiberaNo
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
64024824024
Legenda
CFU: n. crediti dell’insegnamento
CFU LEZ: n. cfu di lezione in aula
CFU LAB: n. cfu di laboratorio
CFU ESE: n. cfu di esercitazione
FREQUENZA:Libera/Obbligatoria
MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli
ORE: n. ore programmate
ORE LEZ: n. ore programmate di lezione in aula
ORE LAB: n. ore programmate di laboratorio
ORE ESE: n. ore programmate di esercitazione
SSD:sigla del settore scientifico disciplinare dell’insegnamento
TAF:sigla della tipologia di attività formativa
TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio

Obiettivi Formativi

Il corso si propone di fornire gli strumenti concettuali fondamentali per acquisire conoscenze e competenze sui principi e metodi dell'Ingegneria del Software, in particolare per quanto riguarda i processi di sviluppo del software, l'analisi dei requisiti, la progettazione, il testing e la verifica formale di un sistema software.

Learning Goals

The course on software engineering aims at providing the basic concepts, methodologies, and techniques of software architectures and systems, with specific regards to software development processes, requirement engineering, design, test, and formal verification.

Metodi didattici

Lezioni frontali, Sessioni Hands-on, Seminari Elaborato finale

Teaching Methods

Lectures Hands-on Sessions, Seminars and Guest lectures, Project

Prerequisiti

I prerequisiti e le conoscenze preliminari richieste per il corso di Ingegneria del Software sono prevalentemente relativi la programmazione, preferibilmente ad oggetti.

Prerequisites

Basic notions of programming, better if on object oriented programming paradigms.

Verifiche dell'apprendimento

L’esame consiste in una prova orale, per accedere alla quale è obbligatorio implementare un elaborato o progetto di Ingegneria del Software. Il progetto dovrà sviluppare un sistema software di complessità adeguata, tale da richiedere le metodologie ed i processi di Ingegneria del Software per il suo sviluppo. L’ideazione, l’analisi del problema, la progettazione, lo sviluppo, la verifica e validazione ed eventuali fasi successive devono essere tutte implementate dallo studente. Sono dunque gli studenti che solitamente propongono l’idea da sviluppare e ne curano tutte le fasi di cui sopra. Il progetto deve essere svolto in gruppi di almeno 2 studenti, con complessità proporzionale al numero di studenti coinvolti. Il progetto deve essere corredato da adeguata relazione scritta che descriva tutte le fasi del processo di sviluppo, la metodologia ed il metodo di sviluppo selezionato, e tutti gli artifacts di progetto, adeguatamente documentati attraverso diagrammi UML. L’esame orale verterà sulla discussione del progetto, approfondendo gli aspetti pratici con i relativi concetti teorici. E’ necessario fornire la relazione del progetto almeno una settimana prima della data d’esame. La valutazione dell’esame sarà in trentesimi, valutando il progetto al 70% e l’orale per il 30% del voto complessivo.

Assessment

The SE assessment is based on an oral exam, for which it is mandatory to implement a software engineering project. The project has to develop a proper and complete software system, thus requiring Software Engineering methodologies and processes for its development. The idea, problem analysis, design, development, verification and validation and any subsequent phases must all be implemented by the student. The students usually propose the idea to be developed and take care of all the above phases. The project must be carried out in groups of at least 2 students, with complexity proportional to the number of the students involved in the project. The project must be documented by a report describing all the phases of the development process, the selected methodology, techniques and development process, and all the project artifacts, properly documented also by UML diagrams. The oral exam will focus on the discussion of the project, deepening practical aspects with the related theoretical concepts. It is necessary to provide the project source code and report at least one week before the examination date. The exam will be assessed out of thirty, 70% for the project and 30% for the oral.

Programma del Corso

INTRODUZIONE ALL’INGEGNERIA DEL SOFTWARE: definizioni, concetti base, ruoli e compiti dell’ing del sw, qualità dei software, principi, approcci, metodologie, metodi tecniche e tools. PROCESSI SOFTWARE: Modelli dei processi software; Cicli di processo; Attività di processo. Modello a cascata, modelli di prototipizzazione, modello incrementale, modello a spirale, modello a V, RUP e varianti. METODOLOGIE DI SVILUPPO DEL SW: Plan Driven, Agile, DevOps e loro implementazioni (XP, Scrum, Spotify) GESTIONE DEI PROGETTI: Attività di gestione; Pianificare il progetto; Tempistica del progetto; Gestione del rischio. REQUISITI DEL SOFTWARE: Requisiti funzionali e non funzionali; Requisiti utente; Requisiti di sistema; Specifica delle interfacce; Documento dei requisiti. PROCESSI DI INGEGNERIA DEI REQUISITI: Studi di fattibilità; Deduzione ed analisi dei requisiti; Convalida dei requisiti; Gestione dei requisiti. PANORAMICA SU UML: Introduzione a UML; Diagrammi dei casi d’uso; Diagrammi delle classi e degli oggetti; Diagrammi delle interazioni; Diagrammi di stato e Diagrammi delle attività; diagrammi deployment e component, Organizzazione dei diagrammi. PROGETTAZIONE DEL SOFTWARE: Progettazione architetturale. - Progettazione orientata agli oggetti. SVILUPPO: Sviluppo rapido del software. - Riutilizzo del software. VERIFICA E CONVALIDA DEL SOFTWARE: Test del software. La qualità del software. MAINTENANCE ED EVOLUZIONE DEL SOFTWARE: Manutenzione, evoluzione, re-engineering, reverse engineering, refactoring, reflection, riuso e CBSE INGEGNERIA DEI SERVIZI: Servizi, Service oriented computing, SOA, SOI.

Course Syllabus

INTRODUCTION TO SOFTWARE ENGINEERING: definitions, basic concepts, roles and tasks of software engineers, software qualities, principles, approaches, methodologies, techniques, methods and tools. SOFTWARE PROCESS: Models of software processes; Process cycles; Process Activities. Waterfall model, Prototyping models, Incremental models, Spiral model, V model, RUP and other models SW DEVELOPMENT METHODOLOGIES: Plan Driven, Agile, DevOps and implementations (XP, Scrum, Spotify) PROJECT MANAGEMENT: Management activities; Project Planning; Project Timing; Risk management. SOFTWARE REQUIREMENTS: functional and non-functional requirements; User requirements; System Requirements; Interfaces Specification; Requirements Document. REQUIREMENTS ENGINEERING: Feasibility Studies; Elicitation and analysis of requirements; Validation of requirements; Requirements management. UML OVERVIEW: Introduction to UML; Use Case Diagram; Class and Object Diagrams; Interaction Diagrams; State and activity diagrams; Deployment and component diagrams, diagram organization. SOFTWARE DESIGN: Architectural Design. - Object-oriented design. DEVELOPMENT: Rapid development of the software. - Re-use of the software. VERIFICATION AND VALIDATION OF SOFTWARE: Software quality, Testing, and Inspection MAINTENANCE AND EVOLUTION: Maintenance, evolution, re-engineering, reverse engineering, refactoring, reflection, reuse and CBSE SERVICE ENGINEERING: Services, Service oriented computing, SOA, SOI.

Testi di riferimento: Ian Sommerville, Ingegneria del software, Pearson Education Consigliato: Ghezzi Jazayeri Mandrioli - Ingegneria del Software - Prentice Hall Lucidi del docente proiettati a lezione Dispense e tutorial

Elenco delle unità didattiche costituenti l'insegnamento

Docente: SALVATORE DISTEFANO

Orario di Ricevimento - SALVATORE DISTEFANO

GiornoOra inizioOra fineLuogo
Lunedì 11:00 12:00Ingegneria, Piano 7, Blocco B
Note: Il ricevimento è previa appuntamento, si prega di contattare il docente e concordare la data e l'ora di ricevimento, non necessariamente il lunedi'.
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti