- Analisi e Progettazione del Software
- Introduzione
Syllabus del corso
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 parziale implementazione di un sistema che sia consistente con un progetto, utilizzare ambienti di sviluppo e controllo versione avanzati.
Contenuti sintetici
Introduzione all’ingegneria del software e ai processi di sviluppo del software, concentrandosi sulle attività di analisi e progettazione. Applicazione di UML per la modellazione e dei pattern per la progettazione.
Programma esteso
- Introduzione all’ingegneria del software e ai processi software
- Applicare UML per la modellazione
- Analisi dei Requisiti
- Analisi orientata agli oggetti
- Progettazione orientata agli oggetti
- Progettazione di oggetti con responsabilità con i pattern GRASP
- Applicare i desgin pattern
- Sviluppo guidato dai test
- Refactoring
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.
6 lezioni di 2 ore in presenza in modalità erogativa.
10 lezioni di 2 ore in presenza in modalità erogativa ed interattiva
10 attività di esercitazione di 2 ore in presenza in modalità erogativa ed interattiva
8 attività di laboratorio di 3 ore in modalità erogativa ed interattiva
Materiale didattico
Larman, Applicare UML e i pattern – analisi e progettazione orientata agli oggetti, Pearson, utlima edizione.
I. Sommerville, Ingegneria del Software, Pearson, 10° ed, 2017. (solo due capitoli).
M. Fowler, UML Distilled, Peason, utlima edizione.
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
Appello tradizionale:
La valutazione dell'apprendimento consiste in una prova scritta con esercizi e alcune domande su tutto il programma del corso e poi una prova orale obbligatoria. Le due prove saranno valutate in trentesimi facendo una media pesata fra le due prove (tendenzialmente: orale 40% e scrittto 60%).
Pre-Appello
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. Le due prove saranno valutate in trentesimi facendo una media pesata fra le due prove (tendenzialmente: orale 40% e scrittto 60%).
Affinché il voto sia attribuito, è inoltre STRETTAMENTE NECESSARIO che ENTRAMBE le prove (Progettuale/scritto e Orale) siano valutate SUFFICIENTI dal docente. La sufficienza è stabilita da soglie di voto per le due parti (almeno 18 nella prova orale e almeno 16 nella prova progettuale).
Esercizi asseganti durante i Laboratori, valuati in un range 0-4.
L'attività complessiva dei Laboratori sarà valutata e consentirà di ottenere fra 0-4 punti che saranno sommati alla valutazione finale se nell’esame tradizionale o in pre-appello è stata ottenuta la sufficienza (almeno 18 nella prova orale e almeno 16 nella prova scritta)..
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
Introduction to software engineering and software development processes, focusing on analysis and design activities. Application of UML for modeling and patterns for design.
Detailed program
- Introduction to software engineering and software processes
- Applying UML for modeling
- Requirements Analysis
- Object-oriented analysis
- Object-oriented design
- Designing objects with responsibility using GRASP patterns
- Applying desgin patterns
- Test-driven development
- Refactoring
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.
6 lessons of 2 hours in presence
10 lessons of 2 hours in presence with students interactions
10 activities of 2 hours with exercises and students interactions.
8 laboratory activities of 3 hours in presence with students interactions
Textbook and teaching resource
Larman, Applicare UML e i pattern – analisi e progettazione orientata agli oggetti, Pearson, 5° ed, 2020.
I. Sommerville, Ingegneria del Software, Pearson, 10° ed, 2017. (solo due capitoli).
M. Fowler, UML Distilled, Peason, last edition.
Slide, articles and tutorials on some topics of the course.
Semester
Second semester
Assessment method
Traditional Examination:
Assessment of learning consists of a written test with exercises and some questions on the entire course syllabus and then a compulsory oral test. The two tests will be graded in thirtieths by making a weighted average between the two tests (tends to be: oral 40% and written 60%).
Pre-examination (just at the end of the lessons):
The assessment for students taking the course consists of an extension of a project assigned during the lab activity and a compulsory oral test. The two tests will be graded in thirtieths by taking a weighted average between the two tests (tends to be: oral 40% and written 60%).
For the grade to be awarded, it is also STRICTLY REQUIRED that BOTH tests (Project/Written and Oral) be rated SUFFICIENT by the teacher. Sufficiency is established by grade thresholds for the two parts (at least 18 in the oral part and at least 16 in the project part).
Assigned exercises during the Labs, graded in a range of 0-4.
The overall activity of the Labs will be evaluated and will allow between 0-4 points that will be added to the final grade if a sufficiency has been obtained in the traditional or pre- examination (at least 18 in the oral test and at least 16 in the written test).
Office hours
Francesca Arcelli Fontana: by appointment.
Oliviero Riganelli by appointment.
Scheda del corso
Staff
-
Francesca Arcelli Fontana
-
Gabriella Nifosì
-
Claudia Raibulet
-
Oliviero Riganelli