Course Syllabus
Obiettivi
Lo studente acquisirà le competenze necessarie a sviluppare progetti software in gruppi di piccole/medie dimensioni. In particolare, lo studente sarà in grado di analizzare un problema, produrre una specifica dei requisiti, svolgere le attività di analisi e progettazione della soluzione, produrre una implementazione di un sistema che sia consistente con un progetto, utilizzare ambienti di sviluppo e controllo versione avanzati.
Contenuti sintetici
Introdurre il processo di sviluppo del software, concentrandosi in particolare sulle fasi di analisi e di progettazione. Introduzione e utilizzo di alcuni Design Pattern.
Programma esteso
1 Introduzione all’Ingegneria del Software e al Processo di sviluppo del Software. Processi di sviluppo iterativi ed agili
2 Analisi dei requisti funzionali e non funzionali e specifica dei casi d’uso
3 Analisi e Progettazione orientata agli oggetti ed utilizzo dei pattern GRASP:
4 UML : diagrammi UML per l'analisi e la progettazione del software:
5 Design Patterns.
6 Attività di laboratorio sull’utilizzo di ambienti per lo sviluppo ed il controllo delle versioni-GIT
7 Introduzione all'attività di test.
8 Intrduzione al Refactoring del Codice e ai Code Smell nel codice.
Prerequisiti
Conoscenza di un linguaggio di programmazione orientato agli oggetti come Java.
Modalità didattica
Il corso è tenuto in lingua italiana con alcune slide ed articoli di approfondimento in inglese.
Lezioni, sessioni di laboratorio, esercitazioni in aula, esercitazioni in laboratorio ed esercitazioni assegnate in laboratorio o in aula da terminare a casa.
Le lezioni saranno erogate in presenza e via streaming/registrazione.
Materiale didattico
C. Larman, Applicare UML e i pattern – analisi e progettazione orientata agli oggetti, Pearson, 5° ed, 2020.
https://www.pearson.it/opera/pearson/0-7252-applicare_uml_e_i_pattern?iesError=login_required&iesErrorDescription=Login+required
I. Sommerville, Ingegneria del Software, Pearson, 10° ed, 2017.
M. Fowler, UML
Distilled, Peason, 4° ed, 2018. M. Fowler, Patterns of Enterprise Application
Architecture, Addison-Wesley
Slide, articoli e tutorial di approfondimento su alcuni argomenti del corso.
Periodo di erogazione dell'insegnamento
II semestre
Modalità di verifica del profitto e valutazione
La valutazione dell'apprendimento consiste in una prova scritta online con esercizi, domande su tutto il programma del corso e poi una prova orale obbligatoria.
La valutazione per gli studenti che seguono il corso consiste in un'estensione di un progetto assegnato durante l'attività di laboratorio e una prova orale obbligatoria.
Orario di ricevimento
Francesca Arcelli Fontana: per appuntamento
Oliviero Riganelli: per appuntamento
Aims
The student will achieve the skills necessary to develop software projects of medium/large dimensions. In particular the student will be able to analyze a problem, write a requirement specification, analyze and design a solution, implement a component of the analyzed system exploiting the development environment and versioning system introduced in the course.
Contents
The main aim of this course is to introduce the software development process, concentrating in particular on the object-oriented analysis and design phases. Another aim is to introduce Design Patterns
Detailed program
- Introduction to Software Engineering and the Software Development Process. Agile development processes.
- Analysis of requirements and specification of use cases
- OO-Analysis and Design and use of GRASP patterns
- UML Diagrams
- Design Patterns
- Laboratory activities on the use of environments for the development and control of versions
- Introduction to the testing activity.
- Introdction to Code Refactoring and Code Smell in the Code.
Prerequisites
Knowledge on an object-oriented language like Java.
Teaching form
The lessons of the course are in italian, with some slides and papers to study in English.
Lessons, laboratory sessions, classroom exercises, laboratory exercises and homework
The lessons will be taken in presence and by streaming/audio recorded lessons.
Textbook and teaching resource
C. Larman, Applicare UML e i pattern – analisi e progettazione orientata agli oggetti, Pearson, 5° ed, 2020.
https://www.pearson.it/opera/pearson/0-7252-applicare_uml_e_i_pattern?iesError=login_required&iesErrorDescription=Login+required
I. Sommerville, Software Engineering, Pearson, 10° ed, 2017.
M. Fowler, UML Distilled, Peason, 4° ed, 2018. M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley
Slide, articles and tutorials on some topics of the course.
Semester
Second semester
Assessment method
Learning assessment consists of a written online exam with exercises, questions on all the program of the course and then a mandatory oral exam.
The assessment for the students following the course consists in an extension of a project assigned during the Laboratory activity and a mandatory oral exam.
Office hours
Francesca Arcelli Fontana: by fix an appointment.
Oliviero Riganelli by fix an appointment.
Key information
Staff
-
Francesca Arcelli Fontana
-
Daniela Briola
-
Marco Mobilio
-
Gabriella Nifosì
-
Oliviero Riganelli
-
Diego Clerissi