L'insegnamento prevede 2.0 CFU erogati con Didattica Innovativa come segue:
Cotutela con mondo esterno
Blended Learning & Flipped Classroom
Corso di Studi
Codice Piano di Studio preventivamente approvato
Da (compreso)
A (escluso)
Insegnamento
Ing - Civ (Mag.)(ord. 270) - MI (495) GEOINFORMATICS ENGINEERING - INGEGNERIA GEOINFORMATICA
*
A
ZZZZ
052532 - SOFTWARE ENGINEERING 2
089184 - SOFTWARE ENGINEERING 2
054443 - SOFTWARE ENGINEERING 2
Ing Ind - Inf (Mag.)(ord. 270) - CR (263) MUSIC AND ACOUSTIC ENGINEERING
*
A
M
054443 - SOFTWARE ENGINEERING 2
Ing Ind - Inf (Mag.)(ord. 270) - MI (474) TELECOMMUNICATION ENGINEERING - INGEGNERIA DELLE TELECOMUNICAZIONI
*
A
M
054443 - SOFTWARE ENGINEERING 2
Ing Ind - Inf (Mag.)(ord. 270) - MI (481) COMPUTER SCIENCE AND ENGINEERING - INGEGNERIA INFORMATICA
*
A
M
054443 - SOFTWARE ENGINEERING 2
Obiettivi dell'insegnamento
The goal of the course is to enable students to master the engineering methods and processes that are necessary to produce complex software with industrial strength quality. The course covers the software process and its organization, requirements, design methods and tools, specification, verification and validation. Each topic is treated both theoretically and practically. Through the course, the flipped class teaching method will be exploited to allow students to acquire a good level of autonomy in learning new topics.
Risultati di apprendimento attesi
Dublin Descriptors
Expected learning outcomes
Knowledge and understanding
Students will learn how to:
- Identify the phases of software development and the specific activities associated with each phase
- Understand an Alloy specification
- Analyze software code written by others
- Identify architectural styles and patterns
Applying knowledge and understanding
Given specific project cases, students will be able to:
- Detail the corresponding requirements
- Identify, analyze and comment on specific architectural choices
- Apply the theory to assess the availability of a software architecture
- Test code fulfilling the corresponding specification documents
- Write software components in JEE
Making judgements
Given a relatively complex problem, students will be able to:
- Analyze and understand the goals, assumptions and requirements associated with that problem and model them
- Define the architecture of the corresponding software system using proper styles and patterns
- Identify and define the needed verification and validation activities
- Estimate the size of the system and the resources needed for its development, identify risks and define mitigation actions
Communication
Students will learn to:
- Write a requirement specification document
- Write a design specification document
- Discuss with the other colleagues during project labs
Lifelong learning skills
- learning how to develop a realistic project
- Students choosing to focus on the research project will learn how to conduct a research activity on some specific aspect of software engineering, developing some innovative solution or some empirical experiment.
Argomenti trattati
The software process
Software lifecycle
Project management and cost estimation
Notations and specification methods: Alloy
Problem definition: requirements engineering
Importance of requirements
The Jackson-Zave approach (requirements, specification, domain)
Usage of Alloy and UML to support requirement modeling activities
Methods and technologies for product development
Software architectures and architectural styles
Middleware and software components: J2EE
Verification and validation
The verification and validation process
Analysis, reviews and walkthroughs techniques
The various facets of testing
The flipped class method will be exploited to help students in learning part of the topics related to requirement engineering and how to apply them in practical contexts.
Project laboratory activities can be optionally taken by interested students. These concern the requirement analysis and design of a realistic project, possibly followed by the development and testing of a running implementation of the assigned project, or the development of innovative research (new tools, formal specifications or empirical experiments) concerning some aspects of software engineering that will be agreed with the instructor.
Prerequisiti
Students are required to know the principles and methods of object-oriented design, the basic notions of UML, testing, and configuration management.
Modalità di valutazione
The assessment will be based on a written exam to be taken in the exam sessions defined by the school and covering all aspects in the syllabus. The exam is open book. It will assign up to 32 points. 30 cum laude will be assigned when the total score is equal to or higher than 31.
Optionally, the written exam can be -- partially or totally -- replaced by a project. The objective of the project is to help students in applying the approaches and principles that are taught in class. Projects will be assigned at the beginning of the semester. The release of the Requirement Analysis and Specification Document as well as the Design Document for the project will replace half of the written exam; it will assign up to 16 points and it will be considered sufficient when the score will be equal of higher than 9. Additionally, students willing to provide a complete implementation and testing for their project or willing to participate to some research projects that will be proposed during the course will replace the written exam entirely.
The following table provides a detailed overview of the elements that will be considered in the various assessment activities.
Type of assessment
Description
Dublin descriptor
Written test
Solution of numerical problems:
- Computation of availability estimates for - a software architecture
- Cost and effort estimation
- Software testing and analysis exercises
Exercises focusing on design aspects:
- Definition of the Alloy model for a given problem
- Definition of the high level architecture for a software system
- Definition of code fragments in JEE to fulfill specific requirements
- Definition of a test plan and/or of a project plan for a specific software
1,2
1, 2, 3, 4, 5
Assessment of laboratorial artefacts
Assessment of the design and experimental work developed by students, either individually or in groups, as part of the project
2, 3, 4, 5
Oral presentation
Assessment of the project presentation
2, 3, 4, 5
Bibliografia
Hans van Vliet, Software Engineering: Principles and Practice, 3rd Edition, Editore: Wiley, Anno edizione: 2008, ISBN: 978-0-470-03146-9 Note:
If for any reason you are not included in the official list of course students, you may not been able to access the course material. In this case, I can grant you access provided that you request it through the site.
Carlo Ghezzi, Mehdi Jarayeri, Dino Mandrioli, Fundamentals of Software Engineering, Editore: Prentice-Hall, Anno edizione: 2002, ISBN: 0133056996
Software utilizzato
Nessun software richiesto
Forme didattiche
Tipo Forma Didattica
Ore di attività svolte in aula
(hh:mm)
Ore di studio autonome
(hh:mm)
Lezione
30:00
40:00
Esercitazione
20:00
20:00
Laboratorio Informatico
0:00
15:00
Laboratorio Sperimentale
0:00
0:00
Laboratorio Di Progetto
0:00
0:00
Totale
50:00
75:00
Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua
Inglese
Disponibilità di materiale didattico/slides in lingua inglese
Disponibilità di libri di testo/bibliografia in lingua inglese
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese