INGEGNERIA DEL SOFTWARE | Università degli studi di Bergamo - Didattica e Rubrica

INGEGNERIA DEL SOFTWARE

Attività formativa monodisciplinare
Codice dell'attività formativa: 
21034

Scheda dell'insegnamento

Per studenti immatricolati al 1° anno a.a.: 
2018/2019
Insegnamento (nome in italiano): 
INGEGNERIA DEL SOFTWARE
Insegnamento (nome in inglese): 
SOFTWARE ENGINEERING
Tipo di attività formativa: 
Attività formativa Caratterizzante
Tipo di insegnamento: 
Obbligatoria
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno di corso: 
3
Anno accademico di offerta: 
2020/2021
Crediti: 
9
Responsabile della didattica: 
Paolo SALVANESCHI
Mutuazioni

Altre informazioni sull'insegnamento

Modalità di erogazione: 
Didattica Convenzionale
Lingua: 
Italiano
Ciclo: 
Primo Semestre
Obbligo di frequenza: 
No
Ore di attività frontale: 
72
Ambito: 
Ingegneria informatica
Prerequisiti

Conoscenze di base di programmazione.

Obiettivi formativi

Scopi del corso:
- Fornire gli elementi di base della disciplina
- Comunicare le problematiche reali attraverso un approccio pratico orientato alla professione
- Definire il panorama dello stato dell’arte ed i riferimenti per muoversi nello stesso

Contenuti dell'insegnamento

----Struttura
Il corso è costituito da due parti:
Parte 1: Le basi dell’Ingegneria del Software
Parte 2: Approfondimenti di progettazione
Il corso completo (9 crediti) è seguito dagli studenti del corso di Laurea in Ingegneria Informatica.
La parte 1 può essere seguita come corso autonomo (6 crediti) da studenti di Laurea Magistrale in Ingegneria Gestionale.
Il corso include sia lezioni frontali che attività di laboratorio.
Tutto il materiale relativo alle lezioni frontali è disponibile sul sito web (pagina del docente).
Durante le attività di laboratorio è distribuito materiale aggiuntivo.

----Programma (Parte 1)
A1 Ingegneria del software
A2 Processi
A3 Analisi e specifica dei requisiti
A4 Progettazione
A5 Controllo di qualità
A6 Gestione
B1 Linguaggi di modellazione: Reti di Petri
B2 Sistemi Qualità e Normativa
B3 Strumenti CASE

----Programma (Parte 2)
C1 Componenti e connettori
C2 Pattern di progettazione
D1 Linguaggi di modellazione: FSM, Reti di Petri (versione più formale), UML

Metodi didattici

Il corso include sia lezioni frontali che attività di laboratorio.
----Supporto alla progettazione
Come per la programmazione, la progettazione del software si apprende non solo studiando ma realizzando progetti.
Gli studenti interessati possono utilizzare i temi d’esame pubblicati sul sito, sviluppare le progettazioni e contattarmi via mail in modo da trovarci e discutere assieme le soluzioni progettuali.
----Studenti non frequentanti
Suggerisco agli studenti non frequentanti di contattarmi per avere il materiale aggiuntivo ed eventuale supporto.

Modalità verifica profitto e valutazione

L’esame sarà costituito da una prova scritta finale – 3 ore (progetto architetturale a partire da una specifica, sviluppo di un modello e un insieme di domande) ed un colloquio opzionale.
Regole:
Se 18<= voto prova scritta <=25 si può registrare il voto con il solo scritto.
Se voto prova scritta >25 è necessario sostenere anche l’orale. Alternativamente si può registrare il voto con il solo scritto, ma si ottiene come voto 25.

Altre informazioni

Le modalità di esame tra frequentanti e non frequentanti sono identiche.

Prerequisites

Basic programming knowledge.

Educational goals

Aims of the course:
- Provide the foundations of the discipline
- Discuss real-world problems, through a profession-oriented approach
- Overview the state of the art of the discipline

Course content

---- Structure
The course consists of two parts:
Part 1: The Basics of Software Engineering
Part 2: Insights on software design
The complete course (9 credits) can be attended by Bachelor students in Computer Engineering.
Master students in Engineering Management can follow part 1 as a stand-alone course (6 credits).
The course includes both lectures and lab sessions.
All material related to lectures is available on the UNIBG Web page of the teacher.
Additional material is distributed during the lab sessions.

---- Program (Part 1)
A1 Software Engineering
A2 Processes
A3 Analysis and specification of requirements
A4 Design
A5 Quality Control
A6 Management
B1 Modeling languages: Petri Nets
B2 Quality Systems, Standards and Guidelines
B3 CASE tools

---- Program (Part 2)
C1 Components and Connectors
C2 Design Patterns
D1 Modeling languages: FSM, Petri Nets (more formal version), UML

Teaching methods

The course includes both lectures and lab sessions.
---- Support to learn architectural software design.
Similar to programming courses, students learn software design not only though theory but also with practical project development.
Interested students can access the exams available on the website, develop their own design solutions and contact the teacher via email to discuss them.
---- Students not attending
Students that cannot attend the lectures are encouraged to contact the teacher for further support and additional material.

Assessment and Evaluation

The examination consists of a written test – 3 hours (architectural design from a given specification, model development and a set of questions) and an optional oral examination.
Rules:
If “18 <= vote of the written test <= 25” the vote is registered.
If “written test vote> 25” the oral test is mandatory. The student can decline attending the oral test. In this case, the registered vote is 25.

Further information

Attending and non-attending students are evaluated according to the same criteria.