View syllabus
SOFTWARE ENGINEERING
MARIO GIOVANNI COSIMO ANTONIO CIMINO
Academic year2022/23
CourseCOMPUTER ENGINEERING
Code374II
Credits6
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
INGEGNERIA DEL SOFTWAREING-INF/05LEZIONI60
MARIO GIOVANNI COSIMO ANTONIO CIMINO unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

L'insegnamento ha l'obiettivo di fornire le conoscenze su UML e lo Unified Process

Knowledge

The student who successfully completes the course will have the ability to (1) understand the basic concepts of Software Engineering; (2) design simple software systems; (3) take part in software development projects.

 

Modalità di verifica delle conoscenze

Esame orale basato sulla discussione di un progetto.

Assessment criteria of knowledge

During the oral exam the student must be able to demonstrate his/her knowledge of the course material.

Methods:

  • Final oral discussion of a written questionnaire.

 

Capacità

 L'insegnamento ha l'obiettivo di sviluppare le capacità di analisi e progetto del software.

Skills

The student who successfully completes the course will have the ability to (1) understand the basic concepts of Software Engineering; (2) design simple software systems; (3) take part in software development projects.

Modalità di verifica delle capacità

Esame orale basato sulla discussione di un progetto.

Assessment criteria of skills

Final oral discussion of a written questionnaire.

Comportamenti

L'insegnamento ha l'obiettivo di sensibilizzare gli studenti ad un approccio rigoroso all'ingegneria del software.

Behaviors

The course aims at making students aware of the importance of a rigorous aproach to software engineering.

Modalità di verifica dei comportamenti

Discussione di un progetto alla prova di esame.

Assessment criteria of behaviors

Final oral discussion of a written questionnaire.

Prerequisites

Basic computer science notions, object-oriented programming.

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • individual study
  • Laboratory work

Attendance: Not mandatory

Teaching methods:

  • Lectures
  • laboratory

 

Programma (contenuti dell'insegnamento)

Metodi di sviluppo del software: differenze tra il classico modello a cascata ed i modelli iterativi ed incrementali. Introduzione al metodo Unified Process (UP). Workflow e fasi in UP. Workflow Requisiti: modello dei requisiti e modello dei casi d'uso. Metodi di individuazione dei requisiti funzionali e non funzionali. Metodi di individuazione degli attori e dei casi d'uso. Diagramma dei casi d'uso e specifica dei casi d'uso. Modello dei casi d'uso: relazioni di inclusione e di estensione, gerarchia tra i casi d'uso e tra gli attori. Introduzione al workflow Analisi. Individuazione delle classi e degli oggetti di analisi. Metodi di individuazione delle classi di analisi. Relazioni tra classi di analisi: associazione, dipendenza, ereditarieta'. Definizione di package. Package annidati. Dipendenze tra package. Generalizzazione tra package. Introduzione alla realizzazione dei casi d'uso. Diagrammi di interazione: linee di vita e messaggi. Diagrammi di sequenza: frammenti combinati ed operatori, occorrenze di interazione e continuazioni. Diagrammi di attivita': nodi azione, nodi controllo e nodi oggetto. Semantica dell'attivita', connettori, regioni di attivita' interrompibili, nodi di espansione. Diagramma Interaction overview. Esempio di applicazione del workflow Analisi. Diagrammi delle classi e realizzazioni dei casi d'uso. Alcune realizzazioni di casi d'uso. Introduzione al workflow Progetto. Classi di progetto. Relazioni di aggregazione e composizione. Trasformazione delle relazioni di associazione in relazioni di aggregazione e composizione. Realizzazione delle relazioni di associazione. Classi strutturate. Interfacce e componenti. Sottosistemi. Realizzazione dei casi d'uso nel workflow progetto. Classi attive. Diagrammi temporali. Macchine a stati. Stati composti. Stati di una sottomacchina. Workflow Implementazione. Modello di dislocazione. Svolgimento di un progetto didattico in architettura web multilivello.

Syllabus

Software development process models: waterfall, iterative, Unified Process. Specification methods and formalisms: Finite State Automata, Logic, UML. Concepts of software design: modularity, polymorphism, components, concurrency. Elements of testing: structural and functional testing, unit, integration, and system testing.

Bibliografia e materiale didattico

J. Arlow, I. Neustadt, UML 2 and the Unified Process, Pearson Education, 2005 [excerpt];

Bibliography

C. Ghezzi, M. Jazayeri, D. Mandrioli "Ingegneria del software -- Fondamenti e principi" Pearson - Prentice Hall.

Course handouts.

Suggested readings:

 E. Gamma, R. Helm, R. Johnson, J. Vlissides, "Design Patterns", Addison-Wesley.

Any text on the UML language.

Non-attending students info

See Bibliography and Class web page. Contact the teacher for student reception.

Modalità d'esame

Presentazione e discussione di un progetto software.

 

Assessment methods

Written questionnaire with multiple-choice questions and exercises involving coding and/or diagramming.  The questionnaire and its individual discussion constitute the exam and they are not separate parts.

Updated: 28/09/2022 00:15