Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
You are currently using guest access
 Log in
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Science
  2. Bachelor Degree
  3. Informatica [E3102Q - E3101Q]
  4. Courses
  5. A.A. 2020-2021
  6. 3rd year
  1. Software Engineering
  2. Summary
Insegnamento Course full name
Software Engineering
Course ID number
2021-3-E3101Q119
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

Obiettivi

Acquisire conoscenze più avanzate di sviluppo del software rispetto a quelle acquisite durante il corso del II anno di analisi e progettazione del software. Conoscere ed applicare i pattern architetturali  durante lo sviluppo del software. Identificare e rimuovere violazioni del codice attraverso l’utilizzo ed il supporto fornito da alcuni tool come SonarQube e SonarCloud   Introduzione al DevOps e alla Continuous Integration: utilizzo di Travis (distributed continuous integration service)

Contenuti sintetici

Principi, tecniche e strumenti per lo sviluppo del software. Pattern architetturali ed esempi della loro applicazione nello sviluppo del software. Best practices in Java. Valutazione della qualità del codice attraverso SonarQube. Esempi di progetti software e discussione sulle  problematiche affrontate.

Programma esteso


1 Presentazione del corso. Obiettivi e contenuti.

 Ingegneria del software: model-driven software engineering, component-based software engineering, aspect-oriented software engineering, distributed software engineering.

2 Architetture software. Progettazione dell’architetture software. Pattern architetturali. Diagramma dei package, dei componenti e di deployment.

3 Applicazione dei design pattern nello sviluppo del software. Modellazione di un framework di persistenza con i design pattern.  Sviluppo di un sistema di gestione di risorse con i design pattern.

4 Best practices in Java. Reflessivitá in Java. Sviluppo di strumenti come plug-in di Eclipse.

5 Sistemi self-managed e self-adaptive: concetti fondamentali, domini applicativi, e case study. Model-driven engineering.

6 Aspect-oriented software engineering: concetti fondamentali. Aspect-oriented design e programmazione.

7 Valutazione della qualita' del software. Metriche per la valutazione del software.  Utilizzo del tool Understand.

8. Identificazione e rimozione di violazioni nel codice attraverso SonarQube.

9. Utilizzo di Git e GitHub, cooperazione in team durante lo sviluppo di un progetto.

10. Gestione dei progetti software: concetti base. Pianificazione dei progetti: diagrammi Gantt e PERT. Gestione dei rischi, gestione della qualitá.

11. Utilizzo di  SonarCloud   

12. Introduzione al DevOps

13. Continuous Integration: utilizzo di Travis (distributed continuous integration service)


Prerequisiti

Analisi e Progettazione orientata agli oggetti.

I corsi di  Prograammazione.

Modalità didattica

Nel periodo di emergenza Covid-19 le lezioni si svolgeranno in modalità mista: parziale presenza e lezioni videoregistrate asincrone/sincrone.
Lezioni ed esercitazioni in aula. Il materiale didattico sarà disponibile nella piattaforma di e-learning.

Attività ed esercizi di sviluppo software in laboratorio. Uso di Git, GitHub e SonaQube in laboratorio.

Il corso è erogato in lingua italiana.

Materiale didattico


Sommerville, Ingegneria del Software, Pearson, 8° ed, 2007.

 C. Larman, Applicare UML e i Pattern – analisi e progettazione orientata agli oggetti, Pearson, 3° ed, 2005.

Slide, articoli , capitoli di libri  e tutorial online di approfondimento sui vari argomenti del corso disponibili su moodle.

La maggior parte del materiale su cui dovrete studiare sarà disponibile on line.



Periodo di erogazione dell'insegnamento

I semestre

Modalità di verifica del profitto e valutazione

La verifica dell'apprendimento comprende  lo sviluppo  di  un progetto software in gruppo o  anche individualmente  ed  una discussione sul progetto e su  alcuni argomenti del corso.  Valutazione nel range 0-20.

Valutazione dell'attività di laboratorio, molto importante in quanto gli studenti potranno imparare  ad usare diversi strumenti e tool. Valutazione nel range 0-5

Task individule in aula. Valutazione nel range 0-2

Orale. Valutazione nel range 0-5


Orario di ricevimento

su appuntamento via email

Export

Aims

Contents

Detailed program

Prerequisites

Teaching form

During the emergency of COVID-19, propbably the lessons will be given in a blended learning way (some lessons in distance learning and some lessons at the Department  building).

Lessons with slides in Italian or in English.

Lab sessions.

The lessons are  in Italian Language.

Textbook and teaching resource

Sommerville, Ingegneria del Software, Pearson, 8° ed, 2007.

 C. Larman, Applicare UML e i Pattern – analisi e progettazione orientata agli oggetti, Pearson, 3° ed, 2005.

Most of the material  to prepare the exam will be available on line.


Semester

I semester

Assessment method

Office hours

Thursday at  13.30-15.30

Enter

Key information

Field of research
INF/01
ECTS
8
Term
First semester
Activity type
Mandatory to be chosen
Course Length (Hours)
76
Degree Course Type
Degree Course

Staff

    Teacher

  • FA
    Francesca Arcelli Fontana
  • IP
    Ilaria Pigazzini
  • CR
    Claudia Raibulet

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

You are currently using guest access (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics