Oggetto:
Oggetto:

Sviluppo delle Applicazioni Software

Oggetto:

Development of Software Applications

Oggetto:

Anno accademico 2025/2026

Codice attività didattica
MFN0606
Docenti
Matteo Baldoni (Corso A)
Ferruccio Damiani (Corso B)
Robert Birke (Turno 4)
Rossano Schifanella (Corso A Turno 1)
Andrea Bracciali (Corso A Turno 2)
Da Assegnare (Turno 3)
Corso di studio
[008707] Laurea in Informatica
Anno
3° anno
Periodo
Secondo semestre
Tipologia
Caratterizzante
Crediti/Valenza
9 CFU - Numero di ore - Number of hours: 32 (in aula) + 50 (in laboratorio)
Crediti percorso 24 CFU
3
SSD attività didattica
INF/01 - informatica
Erogazione
Tradizionale
Lingua
Italiano
Frequenza
Facoltativa
Tipologia esame
Orale
Tipologia unità didattica
corso
Prerequisiti

L'insegnamento assume le seguenti conoscenze:
  • familiarità con le tecniche di programmazione in linguaggi di alto livello come Java;
  • conoscenza dei concetti di base di progettazione e interrogazione di basi di dati.
    Insegnamenti propedeutici (forniscono le competenze attese in ingresso): Le competenze del primo punto sono fornite dai corsi di programmazione della laurea triennale, come i corsi di Programmazione I, Programmazione II e Principi di Programmazione Orientata agli Oggetti. Le competenze del secondo punto da un corso di introduzione alle basi di dati, come il corso di Basi di Dati.
The course assumes the following knowledge:
  • an understanding of the principles of programming in high-level languages such as Java;
  • familiarity with the basic concepts of database queries and design.
    Preparatory Courses (providing the expected entry skills): Skills on the first prerequisite are provided by programming courses such as Programming I, Programming II and Principles of Object-Oriented Programming. Skills on the second prerequisite are provided by a course on databases such as Databases.

  • Oggetto:

    Sommario insegnamento

    Oggetto:

    Avvisi

    Regole di comportamento durante gli esami Informazioni per studenti con DSA o Disabilità: servizi di Ateneo e supporto per sostenere gli esami
    Oggetto:

    Obiettivi formativi

     L'insegnamento concorre al raggiungimento degli obiettivi formativi del Corso di Laurea in Informatica (L31) ed è parte dell’area Informatica caratterizzante, che comprende la tematica di progettazione di applicazioni software. L’insegnamento fornisce i concetti di base dell’ingegneria del software e allo sviluppo di applicazioni software, utilizzando la metodologia Agile Unified Process (UP), che sfrutta il linguaggio di modellazione UML. Si propone perciò di fornire le competenze teoriche e pratiche necessarie per sviluppare un'applicazione significativa individuando con chiarezza la logica applicativa, l'interazione con le basi di dati e le interfacce richieste dai requisiti. Sarà inoltre richiesto di imparare a pianificare il lavoro secondo i canoni dello sviluppo dei progetti, considerando il lavoro di gruppo, la definizione degli obiettivi e le diverse fasi di sviluppo.

    The course contributes to the goals of the degree in Computer Science (Corso di Laurea in Informatica (L31)) and it is part of the area “Informatica caratterizzante” that includes software application design. The course supplies the concepts of Software Engineering and software development, based on the Unified Process (UP) Agile methodology, which adopts UML as its main modeling language. The course supplies the theoretical and practical competences to develop a non-trivial application by clearly identifying its business logic, data base interactions and other interfaces needed to fulfill the requirements. It will be moreover required to learn how to build and manage a project plan taking into account the development team, the goals and the development phases.

    Oggetto:

    Risultati dell'apprendimento attesi

    Conoscenza e capacità di comprensione. Al termine dell'insegnamento è previsto che si conoscano:

    • i concetti di base dell’ingegneria del software;
    • la metodologia UP e le modalità di utilizzo del linguaggio UML in tale ambito;
    • i design pattern di progettazione e architetturali.

    Capacità di applicare conoscenza e comprensione. Al termine dell'insegnamento è previsto che si sia in grado di:

    • applicare UP alla progettazione di un applicativo;
    • individuare l'utilità e l'applicabilità dei design pattern al progetto di un software.

    Autonomia di giudizio. L'insegnamento permette di sviluppare le seguenti competenze:

    • affrontare lo sviluppo di un'applicazione sapendo scegliere come e quando applicare opportunamente le tecniche apprese;
    • pianificare il lavoro secondo i canoni dello sviluppo dei progetti: lavoro di gruppo, definizione degli obiettivi e delle fasi di sviluppo.

    Abilità comunicative. L'insegnamento prevede che si impari a:

    • utilizzare i diagrammi e i documenti presentati per comunicare decisioni e scelte progettuali con il proprio team di lavoro
    • esporre, in forma scritta e orale, una relazione tecnica che spieghi e motivi le scelte progettuali nel caso di studio proposto.

    Capacità di apprendimento. Chi supera con profitto l'insegnamento dovrà dimostrare di essere in grado di:

    • relazionarsi con un dominio di business apprendendone processi e concetti significativi;
    • di tenere in dovuto conto la realtà di business osservata nella propria progettazione;
    • di realizzare il proprio progetto nel rispetto delle necessità dei futuri utenti dell'applicativo.

     Knowledge and understanding. At the end of the course the student is expected to know:

    • the basic concepts of software engineering;
    • the UP methodology and the use of the UML language in this area;
    • the planning and architectural design patterns.

    Ability to apply the knowledge and understanding. At the end of the course the student should be able to:

    • apply UP to the design of an application;
    • identify the utility and applicability of design patterns to a software project.

    Making judgments. The course will teach the following skills:

    • undertake the development of an application choosing how and when to apply the different techniques that have been taught;
    • interact with databases and interfaces required by the requirements;
    • plan project work according to the standards of project development: teamwork, definition of objectives and stages of development.

    Communication skills. At the end of the course the student must be able to:

    • communicate, in written and oral form, a technical report that explains and motivates the design choices of the proposed use case.

    Learning skills. In order to complete the course, students will need to showcase their ability to:

    • interact with a business domain, learning its processes and its key concepts;
    • to take into account such business domain in their design activities;
    • to implement their project complying with the needs of prospective application users.
    Oggetto:

    Programma

    1. Elementi di ingegneria del software: modelli Waterfall, Spirale, V-shaped, Componend-based Development, metodologie Agili.
    2. Introduzione all'UML: use case diagram, class diagram, object diagram, sequence diagram, communication diagram, state chart, activity diagram.
    3. Una metodologia Agile: Unified Process (UP). Fasi di sviluppo (ideazione, elaborazione, costruzione). Casi d'uso, modello di dominio, diagrammi di Sequenza di Sistema, Contratti, Architettura logica e organizzazione in layer, Progettazione (DSD e DCD), GRASP, GoF.
    4. Cenni al testing.

    1. Elements of software engineering: Waterfall, Spiral, V-shaped, Componend-based Development, Agile methodologies.
    2. Introduction to UML: use case diagram, class diagram, object diagram, sequence diagram, communication diagram, state chart, activity diagram.
    3. An Agile methodology: Unified Process (UP). Developing phases (inception, elaboration, construction). Use cases, Domain Model, Sequence System Diagrams, Contracts, Logic Architecture and layer organization, Design (DSD and DCD), GRASP, GoF.
    4. References to testing.
    Oggetto:

    Modalità di insegnamento

    L’insegnamento è diviso in una parte di teoria e una di laboratorio. Per la parte di teoria, le lezioni si svolgono con il supporto di slide e lavagna. La parte di laboratorio, consiste nello sviluppo guidato di un progetto, realizzato in gruppi utilizzando la metodologia UP. Le modalità di svolgimento dell’attività didattica potranno subire variazioni in base alle limitazioni imposte dalla crisi sanitaria in corso.

    The teaching is divided into theory and laboratory. For the theory, lessons take place with the support of slides and blackboard. The laboratory encompasses the guided development of a project, carried out in groups using the UP methodology. The methods of carrying out the teaching activity may vary according to the limitations imposed by the current health crisis.

    Oggetto:

    Modalità di verifica dell'apprendimento

    L’esame di Sviluppo Applicazioni Software prevede uno scritto e un progetto da presentare e discutere oralmente. È obbligatorio aver superato lo scritto (voto >= 18) per poter presentare e discutere il progetto.

    • Lo scritto verte sulla parte di teoria e il voto è un numero E da 0 a 31.
      • È possibile effettuare al massimo 3 tentativi (con correzione, i ritiri non sono conteggiati) nel corso dell'anno accademico.
      • L'esito dello scritto ha validità fino alla sessione di febbraio dell'anno successivo in cui si è tenuto l'insegnamento (ovvero l'ultimo appello dell'a.a.). 
    • Il progetto viene in parte portato avanti nel corso delle lezioni di laboratorio e in parte sviluppato autonomamente; è possibile svilupparlo in due (soluzione consigliata) o da soli.
      • il progetto dovrà essere consegnato tramite apposito link sulla piattaforma Moodle indicativamente una settimana prima dell'inizio delle discussioni orali.
      • in caso di progetto a due, entrambe/i le/i componenti del gruppo dovranno discutere insieme (dunque aver superato entrambe/i lo scritto); si derogherà a questa regola solo in caso ci sia necessità da parte di un/a componente del gruppo di completare l'esame per non perdere la validità dello scritto o per adempiere a scadenze amministrative.
      • le prove orali hanno luogo su più giorni a partire dalla data pubblicata dell'appello; sarà data la possibilità di scegliere data e fascia oraria della propria discussione fra le diverse giornate disponibili.
      • Il voto dela discussione del progetto è un numero P da 0 a 31.
    • Il voto finale dell'esame sarà ceil((E*4 + P*5) / 9), dove E è il voto dello scritto, P è il voto della discussione del progetto, e ceil è l'arrotondamento all'intero superiore (31 diventa 30 e lode).

    Nota: Per lo scritto e per la discussione orali sono fornite iscrizioni separate sul portale di ateneo. È obbligatorio essere iscritti alla parte d'esame che si desidera sostenere.

    The final exam includes a written test, a project, and an oral examination focused on such project. In order to be admitted to the oral discussion, students need to pass the written test (grade >= 18).

    • the written test focuses on course theory and the grade is a number from 0 to 31.
      • It is possible to sit at most three test attempts (evaluated by the teacher, withdrawals do not count)
      • Who pass the test can discuss their project until the end of the Academic Year (February).
    • The project is developed partly during the course labs and partly autonomously. It is possible to work at the project in pairs (recommended option) or alone. 
      • The project will need to be submitted on the Moodle platform a week before the beginning of the oral examinations; a submission link will be provided in due time.
      • If the project has been carried out by a pair, both team members must discuss it at the same time (having both passed the written test); this rule will be amended in case one of the two team members needs to complete the exam in order not to lose the validity of the written test, or in order to meet administrative deadlines. 
      • Oral discussions take place over several days, starting from the official session date; participants will have the chance to choose a date and time among those available.
      • The project discussion grade is a number from 0 to 31.
    • The final exam grade will be ceil((W*4 + P*5) / 9), where W is the writtren test grade, P is the project discussion grade, and ceil is rounded to the nearest whole number (31 becomes 30 with honors).

    Note: The written test and the oral discussion have separate registrations on the university website. It is mandatory to register for the part(s) of exam that one wishes to undergo.

    Testi consigliati e bibliografia



    Oggetto:
    Libro
    Titolo:  
    Applicare UML e i Pattern. Analisi e progettazione orientata agli oggetti. Quinta edizione.
    Anno pubblicazione:  
    2020
    Editore:  
    Pearson
    Autore:  
    Craig Larman
    Obbligatorio:  
    No


    Oggetto:
    Libro
    Titolo:  
    UML Distilled – Guida rapida al linguaggio di modellazione standard. Quarta edizione.
    Anno pubblicazione:  
    2018
    Editore:  
    Pearson
    Autore:  
    Martin Fowler
    Obbligatorio:  
    No


    Oggetto:

    Insegnamenti che mutuano questo insegnamento

    Oggetto:
    Ultimo aggiornamento: 05/06/2025 17:03
    Location: https://laurea.informatica.unito.it/robots.html
    Non cliccare qui!