SOFTWARE DEPENDABILITY (ENGLISH)

Dario DI NUCCI SOFTWARE DEPENDABILITY (ENGLISH)

0522500119
COMPUTER SCIENCE
EQF7
COMPUTER SCIENCE
2022/2023



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2016
SPRING SEMESTER
CFUHOURSACTIVITY
972LAB
Objectives
THE GOAL OF THE COURSE IS TO PROVIDE THE METHODOLOGIES AND TECHNIQUES FOR ANALYZING, DESIGNING, AND VERIFYING THE RELIABILITY OF THE SOFTWARE. IN PARTICULAR, THESE CONCEPTS ARE ADDRESSED IN THE CONTEXT OF COMPLEX AND CRITICAL SOFTWARE SYSTEMS.

KNOWLEDGE AND UNDERSTANDING
STUDENTS WILL ACQUIRE KNOWLEDGE RELATED TO SOFTWARE ANALYSIS, DESIGN, AND RELIABILITY VERIFICATION METHODOLOGIES AND TECHNIQUES. STUDENTS WILL ACQUIRE THE ABILITY TO UNDERSTAND THE STATE OF THE ART, SCIENTIFIC LITERATURE, AND INTERNATIONAL STANDARDS OF THE SECTOR.

APPLYING KNOWLEDGE AND UNDERSTANDING
STUDENTS WILL BE ABLE TO APPLY KNOWLEDGE RELATED TO ANALYSIS METHODOLOGIES AND TECHNIQUES TO DESIGN AND VERIFY SOFTWARE RELIABILITY, PARTICULARLY IN COMPLEX AND CRITICAL SOFTWARE SYSTEMS.
Prerequisites
STUDENTS SHOULD KNOW BASIC SOFTWARE ENGINEERING CONCEPTS, PARTICULARLY SOFTWARE DEVELOPMENT MODELS AND SOFTWARE TESTING.
Contents
THE CONTENTS ARE DIVIDED INTO THREE TRAINING MODULES:

M1: FUNDAMENTALS OF SOFTWARE DEPENDABILITY
THE FIRST MODULE INTRODUCES THE STUDENT TO THE FUNDAMENTALS OF SOFTWARE RELIABILITY, RELIABLE ARCHITECTURES, AND IOT ARCHITECTURES:
- SOFTWARE DEPENDABILITY ENGINEERING REQUIREMENTS - 4H OF FRONTAL LECTURES;
- INTRODUCTION TO AGILE METHODOLOGIES AND DEVOPS - 4H OF FRONTAL LECTURES;
- IOT ARCHITECTURES, CONTAINERIZATION AND ORCHESTRATION - 4H OF FRONTAL LECTURES AND 4H OF LAB SESSIONS;
- SOFTWARE ANALYTICS - 2H OF FRONTAL LECTURES AND 4H OF LAB SESSIONS.

M2: SOFTWARE TESTING
THE SECOND MODULE DEEPENS AND INTEGRATES THE KNOWLEDGE RELATED TO SOFTWARE VERIFICATION AND VALIDATION ALREADY ACQUIRED IN A BASIC SOFTWARE ENGINEERING COURSE OF THE BACHELOR'S DEGREE, INCLUDING:
- INTRODUCTION TO SOFTWARE TESTING - 2H OF FRONTAL LECTURES;
- TEST-DRIVEN DEVELOPMENT IN DEVOPS - 2H OF FRONTAL LECTURES;
- METHODS OF SELECTION AND DESIGN OF TEST CASES - 6H OF FRONTAL LECTURES AND 2H OF LAB SESSIONS;
- TESTING OF NON-FUNCTIONAL REQUIREMENTS (I.E., PERFORMANCE TESTING, ENERGY TESTING) - 6H OF FRONTAL LECTURES AND 4H OF LAB SESSIONS;
- AUTOMATIC GENERATION OF TEST CASES USING SEARCH ALGORITHMS - 4H OF FRONTAL LECTURES AND 2H OF LAB SESSIONS;
- TESTING OF EMBEDDED AND CYBER-PHYSICAL SYSTEMS - 2H OF FRONTAL LECTURES.

M3: PREDICTION OF SOFTWARE DEFECTS AND VULNERABILITIES
THE THIRD MODULE PRESENTS TECHNIQUES BASED ON MACHINE LEARNING AND SEARCH-BASED ALGORITHMS FOR THE PREDICTION AND EXPLOITATION OF SOFTWARE DEFECTS AND VULNERABILITIES, INCLUDING:
- INTRODUCTION TO ERRORS, DEFECTS, AND VULNERABILITIES - 2H OF FRONTAL LECTURES;
- TECHNIQUES FOR PREDICTING SOFTWARE DEFECTS AND VULNERABILITIES THROUGH MACHINE LEARNING - 4H OF FRONTAL LECTURES AND 4H OF LAB SESSIONS;
- STATIC AND DYNAMIC TECHNIQUES TO EXPLOIT SOFTWARE VULNERABILITIES - 4H OF FRONTAL LECTURES AND 2H OF LAB SESSIONS
- AUTOMATIC GENERATION OF TEST CASES USING SEARCH ALGORITHMS TO EXPLOIT SECURITY PROBLEMS - 2H OF FRONTAL LECTURES AND 2H OF LAB SESSIONS.
Teaching Methods
THE THEORETICAL PART IS DEVELOPED WITH FRONTAL LECTURES (6 CFU, 48 HOURS) OF A THEORETICAL/METHODOLOGICAL NATURE TO TRANSFER THE REQUIRED KNOWLEDGE AND THE NECESSARY TOOLS FOR PROJECT ACTIVITIES.

THE PRACTICAL PART IS CARRIED OUT IN THE LABORATORY WITH EXPERIMENTATION OF THE TECHNIQUES AND CONCEPTS PRESENTED IN THE THEORETICAL PART (3 CFU, 24 HOURS). THE FORMULA FOLLOWED CONSISTS OF ASSIGNING AN EXERCISE, ANALYZING THE TRACK TOGETHER, LEAVING A SHORT PERIOD TO THINK OF A SOLUTION INDIVIDUALLY, DISCUSSING THE SOLUTIONS IDENTIFIED COLLECTIVELY, AND THEN MOVING TO THE INDIVIDUAL IMPLEMENTATION OF THE SOLUTION. DURING THE COURSE, SOFTWARE DEVELOPMENT PROJECTS CAN BE ASSIGNED TO BE CARRIED OUT IN THE LABORATORY.
Verification of learning
THE ACHIEVEMENT OF THE TEACHING OBJECTIVES IS CERTIFIED BY PASSING AN EXAM WITH AN EVALUATION OUT OF THIRTY. THE EXAM INCLUDES REALIZING AN INDIVIDUAL OR GROUP PROJECT AND DELIVERING THE RELATED DOCUMENTATION AND AN ORAL TEST.
Texts
- I. SOMMERVILLE, “SOFTWARE ENGINEERING”, ADDISON WESLEY;
- J. KNIGHT, "FUNDAMENTALS OF DEPENDABLE COMPUTING FOR SOFTWARE ENGINEERS", CHAPMAN AND HALL/CRC;
- M. PEZZÈ, M. YOUNG, "SOFTWARE TESTING AND ANALYSIS: PROCESSES PRINCIPLES AND TECHNIQUES", JOHN WILEY & SONS;
- LECTURE NOTES BY THE TEACHER.
More Information
ATTENDING THE COURSE IS NOT COMPULSORY BUT STRONGLY RECOMMENDED. STUDENTS MUST BE PREPARED TO BE ACTIVELY ENGAGED IN THE COURSE THROUGH INTERACTION WITH THE TEACHER IN THE CLASSROOM AND INDIVIDUAL TRAINING. ADEQUATE PREPARATION, LEADING TO PASSING THE EXAM, WILL CONSIST OF TWO HOURS OF INDIVIDUAL STUDY FOR EACH HOUR SPENT IN THE CLASSROOM AND ONE HOUR DEDICATED TO THE ASSOCIATED PROJECT ACTIVITY. THE COURSE EXPECTS A SOLID PREDISPOSITION TO LEARN SOFTWARE TOOLS REQUIRED TO DEVELOP RELIABILITY MODULES.

THE TEACHING MATERIAL WILL BE AVAILABLE ON THE DEPARTMENTAL E-LEARNING PLATFORM.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2024-08-21]