Skip to main content
CODE 80154
ACADEMIC YEAR 2021/2022
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

Software Engineering is a discipline that rules every aspect of the software development process. In other word is the application of Engineering to the Software. It is concerned with requirement specification, design, models, writing documentation and also writing unit tests, not just coding. Moreover it also provide metrics to quantify the quality of the product, i.e. the software developed. 
 

AIMS AND CONTENT

LEARNING OUTCOMES

Software Engineering is a discipline that rules every aspect of the software development process. In other word is the application of Engineering to the Software. It is concerned with requirement specification, design, models, writing documentation and also writing unit tests, not just coding. Moreover it also provide metrics to quantify the quality of the product, i.e. the software developed. Software Development Templates, Requirement Analysis, UML Modeling Systems, Design Patterns, Verification and Validation, Time Template Specification Languages, Temporary Property Verification Algorithms, Modeling and Case Resolution using Model Checkers "

AIMS AND LEARNING OUTCOMES

The course aims to provide students

  • with the basics of the software development process
  • with the basics of the process of static and dynamic software verification and validation
  • with in-depth knowledge on Requirements Analysis, starting from the requirement elicitation up to the requirement specification 
  • with the basics of the UML design language
  • with the software guidelines for writing programs
  • with the basics of the software verification through testing 

Teaching should also enable students to acquire skills on how to write development process documentation

At the end of the course the student should be able to:

  • analyze a software and specify its requirements
  • gather requirements by interacting with various stakeholders
  • write a user requirement specification document (URS) using templates
  • write a system requirement specification document (SRS) using templates
  • draw up a software design specification document (SDS) using UML diagrams
  • develop a software from a SDS using software development guidelines
  • design both structural and functional tests for the dynamic verification of the software

SYLLABUS/CONTENT

  • Software Development Process
  • Elicitation, Analysis and Specification of Software Requirements
  • Requirement Analysis in Cyber Physical Systems 
  • Unified Modelling Language (UML)
  • How to structure your code, software guidelines for writing programs, automatic document generation
  • Program Verification and Validation  through testing: Structural Testing, Functional Testing, Coverage Analysis
  • Graphical User Interfaces development
  • Tools and technologies to support the software development process
  • Use of Control Versioning systems, such as git / svn
     

RECOMMENDED READING/BIBLIOGRAPHY

During the course part of the following books are used: Software Engineering – I. Sommerville ‐ Pearson, Writing Effective Use Cases – A. Cockburn – Pearson, UML Distilled – M. Fowler – Pearson, Principles of Model Checking ‐ Cristel Baier, Joost‐Pieter Katoen – MIT Press, Foundations of Software Testing – A.P. Mathur – Pearson.

TEACHERS AND EXAM BOARD

Exam Board

MASSIMO NARIZZANO (President)

ENRICO GIUNCHIGLIA

ARMANDO TACCHELLA (President Substitute)

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

In order to pass the exam the student must develop a software using the most appropriate software development methodology.
The student must delivery five different documents:

  • The user requirement specification document (URS)
  • The Software Requirement Specification Document(SRS)
  • The Design Requirement Specification document (DRS)
  • The software source code. The software must be executable on the virtual machine provided by the teacher.
  • A Functional Test Suite and a Structural Test Suite

Furthermore, each student will be asked to analyze one or more documents written by their colleagues for the purpose of increasing from one side the skills of the student, and on the other the quality of the developed products.
Finally, the student must present the work done in front to a commission that will evaluate its work.
Please also note that the delivery of these documents will take place in itinere with fixed deadlines.

ASSESSMENT METHODS

The evaluation of the project therefore will take into account:

  • How much the project is compliance with its requirements
  • The Customer Satisfaction
  • The project quality, i.e. how the student applied concepts exposed by the teacher, care in the development of the project, quality of the proposed solutions

Please notice that students will not receive grades for the intermediate documents.

Exam schedule

Data appello Orario Luogo Degree type Note
14/01/2022 09:00 GENOVA Scritto
27/01/2022 14:00 GENOVA Scritto
21/06/2022 14:00 GENOVA Scritto
01/09/2022 09:00 GENOVA Scritto