Vai al contenuto principale
Oggetto:
Oggetto:

Sviluppo delle Applicazioni Software

Oggetto:

Development of Software Applications

Oggetto:

Anno accademico 2023/2024

Codice dell'attività didattica
MFN0606
Docenti
Matteo Baldoni (Corso A)
Ferruccio Damiani (Corso B)
Mirko Polato (Turno 3)
Robert Birke (Turno 4)
Rossano Schifanella (Corso A Turno 1)
Andrea Bracciali (Corso A Turno 2)
Corso di studi
[008707] Laurea in Informatica
Anno
3° anno
Periodo didattico
Secondo semestre
Tipologia
Caratterizzante
Crediti/Valenza
9 CFU - Numero di ore - Number of hours: 32 (in aula) + 50 (in laboratorio)
SSD dell'attività didattica
INF/01 - informatica
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Orale
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 e Programmazione II. 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 and Programming II. Skills on the second prerequisite are provided by a course on databases such as Databases

  • Oggetto:

    Sommario insegnamento

    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:

    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 un esonero scritto e un progetto da presentare e discutere oralmente. È obbligatorio aver superato l'esonero per poter presentare e discutere il progetto.

    • L'esonero verte sulla parte di teoria e l'esito dell'esonero è un giudizio tra: insufficiente, sufficiente, discreto, buono, distinto e ottimo.
      • È possibile effettuare al massimo 3 tentativi (con correzione, i ritiri non sono conteggiati) nel corso dell'anno accademico.
      • L'esonero superato a giugno/luglio ha validità per la discussione del progetto fino all'appello di settembre incluso. L'esonero superato da settembre in poi ha validità per la discussione del progetto fino all'ultimo appello valido per il corrente anno accademico. 
    • 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 l'esonero); 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à dell'esonero 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.

    Nota: Per l'esonero 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.

    • the written test focuses on course theory. The outcome of this test is ranked as: insufficient, sufficient, fair, good, distinct and excellent.
      • It is possible to sit at most three test attempts (evaluated by the teacher, withdrawals do not count)
      • Those who pass the test in June/July can discuss their project until the September session. Those who pass the test in September or later 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.

    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.

    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.

    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:
    Ultimo aggiornamento: 27/12/2023 14:22
    Location: https://laurea.informatica.unito.it/robots.html
    Non cliccare qui!