Guida degli insegnamenti

Syllabus

Partially translatedTradotto parzialmente
[3I273] - INGEGNERIA DEL SOFTWARESOFTWARE ENGINEERING
Luca SPALAZZI
Lingua di erogazione: ITALIANOLessons taught in: ITALIAN
Laurea Magistrale - [IM12] INGEGNERIA INFORMATICA E DELL'AUTOMAZIONE Master Degree (2 years) - [IM12] COMPUTER AND AUTOMATION ENGINEERING
Dipartimento: [040040] Dipartimento Ingegneria dell'InformazioneDepartment: [040040] Dipartimento Ingegneria dell'Informazione
Anno di corsoDegree programme year : 1 - Primo Semestre
Anno offertaAcademic year: 2018-2019
Anno regolamentoAnno regolamento: 2018-2019
Obbligatorio
Crediti: 9
Ore di lezioneTeaching hours: 72
TipologiaType: B - Caratterizzante
Settore disciplinareAcademic discipline: ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

LINGUA INSEGNAMENTO LANGUAGE

ITALIANO

ITALIAN


PREREQUISITI PREREQUISITES

Programmazione ad oggetti

Object oriented programming


MODALITÀ DI SVOLGIMENTO DEL CORSO DEVELOPMENT OF THE COURSE

Lezioni di teoria: 52 ore
Esercizi: 20 ore

Theory: 52 hours
Exercises: 20 hours


RISULTATI DI APPRENDIMENTO ATTESI LEARNING OUTCOMES
Conoscenze e comprensione.

L'insegnamento permette agli studenti di acquisire conoscenze e competenze sui principi e metodi dell'Ingegneria del Software, in particolare per quanto riguarda l'analisi dei requisiti, la progettazione ed il collaudo di un sistema software. Tali conoscenze dovranno permettere allo studente di acquisire una chiara consapevolezza del più ampio contesto multidisciplinare dell'ingegneria informatica e dell'automazione, e in particolare degli aspetti propriamente connessi alla progettazione e produzione di sistemi software.


Capacità di applicare conoscenze e comprensione.

Al fine di affrontare tematiche progettuali avanzate, anche di notevole complessità, e curare l'innovazione e lo sviluppo di nuovi prodotti software attraverso l'applicazione delle conoscenze, lo studente dovrà saper applicare correttamente modelli e metodologie per la ingegnerizzazione del software. Tale capacità si estrinsecherà attraverso una serie di abilità professionalizzanti, quali: 1. la capacità di analizzare correttamente i requisiti funzionali e non funzionali di un sistema; 2. la capacità di progettare un software usabile e manutenibile; 3. la capacità di collaudare un software.


Competenze trasversali.

La progettazione di un software, compito che verrà svolto in gruppi e che porterà alla stesura di una relazione e alla sua discussione, contribuirà a migliorare sia il grado di autonomia di giudizio in generale, sia la capacità comunicativa, sia la capacità di inserirsi proficuamente in un team, sia la capacità di apprendimento in autonomia e di trarre conclusioni, dello studente.


Knowledge and Understanding.

The course enables students to acquire knowledge and skills about software engineering principles and methods, especially requirement analysis, design and testing of a software system. This knowledge will allow the student to gain a clear understanding of the broader multidisciplinary context represented by the computing and automation engineering, in particular of the aspects specifically related to design and development of software systems.


Capacity to apply Knowledge and Understanding.

In order to deal with advanced and complex design issues and with innovation and development of new software systems, the student must be able to properly apply software engineering models and methodologies. This ability will be expressed through a number of professional skills, such as: 1. analyzing functional and non-functional system requirements; 2. designing usable and maintainable softwares; 3. testing a software.


Transversal Skills.

Working in team to software develpment and writing the related report will improve the independence of judgment in general, the communication ability (also stemming from teamwork), and the ability to autonomously learn and draw conclusions of the student.



PROGRAMMA PROGRAM

Lezioni di teoria
- Modelli di processo: Agile, Tropos
- Elicitazione dei Requisiti,
- Analisi dei requisiti (orientata agli scenari, orientata alle interfacce utente, orientata ai dati, orientata ai comportamenti),
- Progettazione (delle architetture, dei componenti)
- Strategie e tecniche di Collaudo,
- Linguaggi di specifica: i*, UML
Esercizi
- Elicitazione dei Requisiti,
- Analisi dei requisiti (orientata agli scenari, orientata alle interfacce utente, orientata ai dati, orientata ai comportamenti),
- Progettazione (delle architetture, dei componenti)
- Strategie e tecniche di Collaudo,

Theory
- Process framework: Agile, Tropos
- Requirement Elicitation,
- Requirement Analysis (Scenario-oriented, user interface-oriented, data-oriented, behavior-oriented analysis)
- Design (Architectural Design, Component-Level Design)
- Testing Strategies, Testing Techniques
- Specification languages: i*, UML
Exercises
- Requirement Elicitation,
- Requirement Analysis (Scenario-oriented, user interface-oriented, data-oriented, behavior-oriented analysis)
- Design (Architectural Design, Component-Level Design)
- Testing Strategies, Testing Techniques


MODALITÀ DI SVOLGIMENTO DELL'ESAME DEVELOPMENT OF THE EXAMINATION
Modalità di valutazione dell'apprendimento.

La valutazione dell'apprendimento è suddivisa in due parti: 1) prova orale individuale - discussione su due argomenti trattati nel corso. 2) progetto di gruppo - un gruppo di quattro o cinque studenti deve progettare un software concordato con il docente e fare una presentazione del lavoro svolto. Il gruppo può scegliere un progetto che sia valido anche per il corso di Sicurezza Informatica.


Criteri di valutazione dell'apprendimento.

1) Prova orale individuale - lo studente deve dimostrare di aver ben compreso i metodi e le tecniche da usare nell'ingegneria del software. 2) Progetto di gruppo: il gruppo deve dimostrare di essere in grado di applicare tali metodi e tecniche alla realizzazione di un sistema software e di saper redigere una relazione tecnica.


Criteri di misurazione dell'apprendimento.

1) Prova orale - per ogni argomento viene assegnato un punteggio compreso tra zero e dieci. Il voto finale della parte orale è dato dalla media.
2) Progetto di gruppo - viene valutata la completezza e correttezza della relazione (fino a 20 punti), la qualità del software prodotto (fino a 20 punti), e della presentazione (fino a 20 punti). Il voto finale assegnato al progetto è dato dalla media. Inoltre può essere assegnato un ulteriore punto in base all'autonomia dimostrata dal gruppo.


Criteri di attribuzione del voto finale.

Prova orale individuale: fino a 10 punti Progetto di gruppo: fino a 21 punti Voto finale: somma dei due voti. 31 punti danno diritto al "30 e lode".


Learning Evaluation Methods.

The learning evaluation consists of two parts: 1) individual oral exam - a discussion about two topics from the syllabus; 2) group project - a group of 4 or 5 students must design a software agreed with the teacher and present the results. The group can choose a project that is also valid for the course: "Cyber Security"


Learning Evaluation Criteria.

1) Individual oral exam - students must know what are methods and techniques to be used in software engineering. 2) Group project - the group must be able to apply such methods and techniques to the development of a software and to produce a final project report.


Learning Measurement Criteria.

1) Individual oral exam: each one of the topics assigns a score up to 10. The final mark for the oral exam is the average score.
2) Group project - the review process takes into account the completeness and correctness of the final report (up to 20 marks), the software quality (up to 20 marks), and the presentation (up to 20 marks). The final mark for the group project is the average score. Up to 1 bonus mark is assigned according to group autonomy.


Final Mark Allocation Criteria.

Individual oral exam: up to 10 marks Group project: up to 21 marks Final mark: the sum of the previous two marks. 31 marks is equivalent to "30 e lode" (full mark with distinction)



TESTI CONSIGLIATI RECOMMENDED READING

- J. Arlow, I. Neustadt, "UML 2 e Unified Process (2^ ed.)", McGraw-Hill Italia.
- I. Sommerville, "Ingegneria del software" 8/Ed., Pearson Italia.
- sito del corso https://learn.univpm.it/course/view.php?id=7848

- J. Arlow, I. Neustadt, "UML 2 e Unified Process (2^ ed.)", McGraw-Hill Italia.
- I. Sommerville, "Ingegneria del software" 8/Ed., Pearson Italia.
- course website https://learn.univpm.it/course/view.php?id=7848


E-LEARNING E-LEARNING

NO

NO


Scheda insegnamento erogato nell’A.A. 2018-2019
Le informazioni contenute nella presente scheda assumono carattere definitivo solo a partire dall'A.A. di effettiva erogazione dell'insegnamento.
Academic year 2018-2019

 


Università Politecnica delle Marche
P.zza Roma 22, 60121 Ancona
Tel (+39) 071.220.1, Fax (+39) 071.220.2324
P.I. 00382520427