Vai al contenuto principale
Se prosegui nella navigazione del sito, ne accetti le politiche:
  • Condizioni di utilizzo e trattamento dei dati
Prosegui
x
e-Learning - UNIMIB
  • Home
  • My Media
  • Altro
Ascolta questa pagina con ReadSpeaker
Italiano ‎(it)‎
English ‎(en)‎ Italiano ‎(it)‎
 Login
e-Learning - UNIMIB
Home My Media
Percorso della pagina
  1. Area di Scienze
  2. Corso di Laurea Triennale
  3. Informatica [E3102Q - E3101Q]
  4. Insegnamenti
  5. A.A. 2025-2026
  6. 2° anno
  1. Analisi e Progettazione del Software
  2. Introduzione
Insegnamento Titolo del corso
Analisi e Progettazione del Software
Codice identificativo del corso
2526-2-E3101Q109
Descrizione del corso SYLLABUS

Syllabus del corso

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

Obiettivi

Il corso introduce gli studenti ai fondamenti dell’analisi e progettazione orientata agli oggetti, con l’obiettivo di sviluppare competenze pratiche e teoriche nella costruzione di software robusto, ben progettato e manutenibile, attraverso l’applicazione di metodologie, tecniche e strumenti come UML, design pattern e il processo unificato, per favorire un approccio strutturato, modulare e riutilizzabile nello sviluppo software.

Il percorso formativo include esercitazioni pratiche e attività di laboratorio in gruppo, con l’obiettivo di simulare un contesto di sviluppo realistico e collaborativo.

Conoscenza e capacità di comprensione
Al termine del corso, lo studente avrà acquisito una solida conoscenza dei principi, delle tecniche e delle metodologie di ingegneria del software, con particolare enfasi sulla modellazione UML, i pattern di progettazione, le metodologie iterative e agili, e l'analisi dei requisiti.

Conoscenza e capacità di comprensione applicata
Lo studente sarà in grado di seguire una serie di attività comuni di analisi e progettazione, ispirate al Processo Unificato, per sviluppare sistemi software. Potrà utilizzare pattern di progettazione per risolvere problemi ricorrenti, produrre una parziale implementazione coerente con le specifiche progettuali e impiegare ambienti di sviluppo integrati e strumenti di controllo versione. Inoltre, sarà in grado di collaborare efficacemente in attività di lavoro di gruppo. Attraverso queste competenze, potrà applicare le conoscenze acquisite nell’analisi e modellazione dei requisiti, nella scrittura di casi d’uso, e nella progettazione di sistemi software efficienti, adattabili e di alta qualità, utilizzando tecniche e strumenti appropriati.

Autonomia di giudizio
Il corso promuove lo sviluppo del pensiero critico attraverso la valutazione comparativa di soluzioni progettuali e metodologiche, l’uso consapevole di pattern e principi di progettazione, l’analisi di casi studio e la revisione di modelli, che favoriscono l’autonomia nella scelta delle soluzioni più adeguate.

Abilità comunicative
Lo studente sarà in grado di comunicare efficacemente analisi, specifiche e soluzioni progettuali tramite diagrammi UML, relazioni tecniche scritte, presentazioni orali e collaborazione all’interno di gruppi di lavoro.

Capacità di apprendere
Il corso promuove lo sviluppo dell’autonomia nello studio attraverso un approccio didattico attivo. Al termine del percorso, lo studente sarà in grado di approfondire in modo indipendente tematiche avanzate di ingegneria del software, consolidando le basi per un apprendimento continuo anche oltre il contesto curriculare.

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

  1. Introduzione all’ingegneria del software e ai processi software
  2. Applicare UML per la modellazione agile
  3. Analisi dei Requisiti
  4. Analisi e progettazione orientata agli oggetti
  5. Progettazione guidata dalle responsabilità
  6. Applicare i desgin pattern
  7. Sviluppo guidato dai test
  8. 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.

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

Esporta

Aims

The course introduces students to the fundamentals of object-oriented analysis and design, with the goal of developing practical and theoretical skills in building robust, well-designed and maintainable software through the application of methodologies, techniques and tools such as UML, design patterns and the unified process to foster a structured, modular and reusable approach to software development.

The learning path includes practical exercises and group lab activities, aiming to simulate a realistic and collaborative development environment.

Knowledge and Understanding
By the end of the course, students will have acquired a solid understanding of the principles, techniques, and methodologies of software engineering, with particular emphasis on UML modeling, design patterns, iterative and agile methodologies, and requirements analysis.

Applied Knowledge and Understanding
Students will be able to carry out common analysis and design activities inspired by the Unified Process to develop software systems. They will be able to use design patterns to solve recurring problems, produce a partial implementation consistent with design specifications, and employ integrated development environments and version control tools. Furthermore, they will be able to collaborate effectively in group work activities. Through these skills, they will be able to apply the acquired knowledge in requirements analysis and modeling, writing use cases, and designing efficient, adaptable, and high-quality software systems using appropriate techniques and tools.

Independent Judgment
The course fosters the development of critical thinking through the comparative evaluation of design and methodological solutions, the conscious use of design patterns and principles, the analysis of case studies, and model reviews, promoting autonomy in choosing the most appropriate solutions.

Communication Skills
Students will be able to effectively communicate analyses, specifications, and design solutions through UML diagrams, written technical reports, oral presentations, and collaboration within workgroups.

Learning Skills
The course promotes the development of independent learning through an active teaching approach. By the end of the course, students will be able to independently explore advanced topics in software engineering, laying the foundation for continuous learning beyond the academic context.

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

  1. Introduction to software engineering and software processes
  2. Applying UML for agile modeling
  3. Requirements Analysis
  4. Object-oriented analysis and design
  5. Responsibility-Driven Design
  6. Applying desgin patterns
  7. Test-driven development
  8. 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, Applying UML & Patterns: Introduction to Object-Oriented Analysis & Design, & Iterative Development, Pearson.

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.

Entra

Scheda del corso

Settore disciplinare
ING-INF/05
CFU
8
Periodo
Secondo Semestre
Tipo di attività
Obbligatorio
Ore
76
Tipologia CdS
Laurea Triennale
Lingua
Italiano

Staff

    Docente

  • FA
    Francesca Arcelli Fontana
  • Davide Chicco
    Davide Chicco
  • CR
    Claudia Raibulet
  • Oliviero Riganelli
    Oliviero Riganelli

Opinione studenti

Vedi valutazione del precedente anno accademico

Bibliografia

Trova i libri per questo corso nella Biblioteca di Ateneo

Metodi di iscrizione

Iscrizione manuale

Non sei collegato. (Login)
Politiche
Ottieni l'app mobile
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy
  • Accessibilità
  • Statistiche