SOFTWARE ENGINEERING

SOFTWARE ENGINEERING

_
iten
Code
80154
ACADEMIC YEAR
2020/2021
CREDITS
9 credits during the 1st year of 11160 COMPUTER ENGINEERING (LM-32) GENOVA
SCIENTIFIC DISCIPLINARY SECTOR
ING-INF/05
LANGUAGE
English
TEACHING LOCATION
GENOVA (COMPUTER ENGINEERING )
semester
2° Semester
Teaching materials

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

Ricevimento: Friday Morning From 10:00 till 12:00 o su appuntamento.

Exam Board

MASSIMO NARIZZANO (President)

ENRICO GIUNCHIGLIA

ARMANDO TACCHELLA

ALESSANDRO ARMANDO

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.