Dario DI NUCCI | SOFTWARE DEPENDABILITY
Dario DI NUCCI SOFTWARE DEPENDABILITY
cod. NF22500043
SOFTWARE DEPENDABILITY
NF22500043 | |
COMPUTER SCIENCE | |
EQF7 | |
COMPUTER SCIENCE | |
2025/2026 |
OBBLIGATORIO | |
YEAR OF COURSE 1 | |
YEAR OF DIDACTIC SYSTEM 2025 | |
AUTUMN SEMESTER |
SSD | CFU | HOURS | ACTIVITY | |
---|---|---|---|---|
ING-INF/05 | 6 | 30 | LESSONS | |
ING-INF/05 | 3 | 24 | LAB |
Objectives | |
---|---|
THE COURSE AIMS TO PROVIDE METHODS AND TECHNIQUES TO ANALYZE AND VERIFY SOFTWARE RELIABILITY. THESE CONCEPTS ARE ADDRESSED IN THE CONTEXT OF COMPLEX AND CRITICAL SOFTWARE SYSTEMS. KNOWLEDGE AND UNDERSTANDING AFTER COMPLETING THE COURSE, THE STUDENT WILL HAVE KNOWLEDGE AND UNDERSTANDING REGARDING - FUNDAMENTAL PRINCIPLES OF SOFTWARE DEPENDABILITY; - DEPENDABLE SOFTWARE LIFECYCLES AND INFRASTRUCTURES; - SOFTWARE ANALYTICS TO IMPROVE SOFTWARE QUALITY AND INCREASE SOFTWARE SECURITY; - SOFTWARE TESTING OF FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS; - AUTOMATED GENERATION OF TEST CASES TO TEST FUNCTIONAL AND NON-FUNCTIONAL REQUIREMENTS. ABILITY TO APPLY KNOWLEDGE AND UNDERSTANDING AFTER COMPLETING THE COURSE, THE STUDENT WILL BE ABLE TO - USE SOFTWARE ENGINEERING METHODS AND TECHNIQUES FOR MONITORING SOFTWARE QUALITY, PERFORMANCE, AND SECURITY; - DESIGN DISTRIBUTED SYSTEMS ON THE CLOUD, EVALUATING THEIR PERFORMANCE, CONFIGURING THE SPECIFICATIONS, DEVELOPING APPLICATIONS IN A CONCURRENT AND PARALLEL CONTEXT; - USE THE MOST APPROPRIATE SOFTWARE ANALYSIS AND VERIFICATION TECHNIQUES FOR THE SOFTWARE TO BE ANALYZED; - CREATE SECURE SOFTWARE BY AVOIDING VULNERABILITIES; - IDENTIFY THE MAIN VULNERABILITIES OF NETWORKED SYSTEMS AND EVALUATE THE SECURITY OF COMPLEX NETWORKED SYSTEMS; AUTONOMY OF JUDGMENT AFTER COMPLETING THE COURSE, THE STUDENT WILL BE ABLE TO: - COMMUNICATE CLEARLY AND EFFECTIVELY, IN WRITTEN AND ORAL FORM, TO TRANSMIT KNOWLEDGE, IDEAS, PROBLEMS, SOLUTIONS, AND THE RATIONALE UNDERLYING THEM, ADAPTING THE METHODS OF EXPRESSION TO THE CULTURAL AND PROFESSIONAL CHARACTERISTICS OF THE RECIPIENTS OF THE COMMUNICATION); - EFFECTIVELY USE MULTIMEDIA COMMUNICATION TOOLS; - COMMUNICATE IN ENGLISH WITH TECHNICIANS AND EXPERTS WITH GOOD LANGUAGE SKILLS AND SHOW MASTERY OF TECHNICAL TERMINOLOGY; - UNDERSTAND AND PROCESS TECHNICAL TEXTS IN ENGLISH OF MEDIUM DIFFICULTY; - WORK IN A TEAM WITH ADEQUATE RELATIONAL AND DECISION-MAKING SKILLS; - REPORT ON YOUR WORK ACTIVITY. COMMUNICATION SKILLS AFTER COMPLETING THE COURSE, THE STUDENT WILL BE ABLE TO: - THINK CRITICALLY AND QUESTION DESIGN AND IMPLEMENTATION CHOICES; - DEVELOP AUTONOMOUS AND INDEPENDENT REASONING AND REFLECTIONS; - UNDERSTAND THE RELEVANCE OF A PLURALITY OF POINTS OF VIEW AND ALTERNATIVE APPROACHES; - CRITICALLY EVALUATE POSITIVE AND NEGATIVE ASPECTS OF ALTERNATIVE SOLUTIONS, TAKING INTO CONSIDERATION QUALITY AND COST/EFFECTIVENESS; - ESTABLISH AN ORDER OF PRIORITY FOR OFTEN CONFLICTING OBJECTIVES; - WORK WITH A HIGH DEGREE OF AUTONOMY; - PLAN APPROPRIATE DATA COLLECTION FOR THE PROPOSED OBJECTIVES AND CRITICALLY INTERPRET THE COLLECTED DATA TO DERIVE AUTONOMOUS JUDGMENTS SUPPORTED BY OBJECTIVE AND QUANTITATIVE ANALYSES. LEARNING ABILITY AFTER COMPLETING THE COURSE, THE STUDENT WILL BE ABLE TO: - ORGANIZE ONE'S IDEAS CRITICALLY AND SYSTEMATICALLY; - REFLECT ON ONE'S OWN LEARNING EXPERIENCE AND ADAPT IT IN RESPONSE TO EXTERNAL SUGGESTIONS AND STIMULI; - RECOGNIZE THE NEED FOR FURTHER STUDIES AND ADDITIONAL RESEARCH ACTIVITIES. |
Prerequisites | |
---|---|
STUDENTS SHOULD KNOW THE BASIC CONCEPTS OF SOFTWARE ENGINEERING, ESPECIALLY SOFTWARE DEVELOPMENT PATTERNS AND SOFTWARE TESTING. |
Contents | |
---|---|
THE CONTENTS ARE DIVIDED INTO THREE TRAINING MODULES: M1: FUNDAMENTALS OF SOFTWARE AND INFRASTRUCTURE DEPENDABILITY THE FIRST MODULE INTRODUCES THE STUDENT TO THE FUNDAMENTALS OF SOFTWARE DEPENDABILITY, DEPENDABLE PROGRAMMABLE INFRASTRUCTURES, AND SOFTWARE ANALYTICS TO IMPROVE SOFTWARE DEPENDABILITY: - INTRO TO SOFTWARE DEPENDABILITY - 2H OF FRONTAL LECTURES; - DEPENDABILITY REQUIREMENTS, FAULTS, AND TREATMENTS - 3H OF FRONTAL LECTURES; - SOFTWARE FAULT AVOIDANCE IN SPECIFICATION AND IMPLEMENTATION - 2H OF FRONTAL LECTURES AND 3 H OF LAB SESSIONS; - SOFTWARE FAULT TOLERANCE, AND ASSESSMENT – 2H OF FRONTAL LECTURES; - IOT ARCHITECTURES- 2H OF FRONTAL LECTURES; - DEVOPS AND RELIABLE PROGRAMMABLE INFRASTRUCTURE - 2H OF FRONTAL LECTURES AND 3H 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: - INTRODUCTION TO SOFTWARE TESTING AND TEST CASE SELECTION - 2H OF FRONTAL LECTURES AND 3H OF LAB SESSIONS; - TEST CASE ASSESSMENT AND TEST-DRIVEN DEVELOPMENT - 2H OF FRONTAL LECTURES AND 3H OF LAB SESSIONS; - PERFORMANCE TESTING - 2H OF FRONTAL LECTURES AND 3H OF LAB SESSIONS; - TESTING OF CYBER-PHYSICAL SYSTEMS - 2H OF FRONTAL LECTURES; - CASE STUDIES ABOUT SOFTWARE DEPENDABILITY: 3H OF FRONTAL LECTURES. M3: DETECTION AND EXPLOITATION OF SOFTWARE VULNERABILITIES THE THIRD MODULE PRESENTS STATIC AND DYNAMIC TECHNIQUES TO DETECT AND EXPLOIT SOFTWARE VULNERABILITIES: - INTRODUCTION TO SOFTWARE VULNERABILITIES - 2H OF FRONTAL LECTURES; - SOFTWARE VULNERABILITY ATELIER – 2H OF FRONTAL LECTURES; - STATIC AND DYNAMIC TECHNIQUES TO DETECT AND EXPLOIT SOFTWARE VULNERABILITIES - 2H OF FRONTAL LECTURES AND 9H OF LAB SESSIONS. |
Teaching Methods | |
---|---|
THE THEORETICAL PART IS DEVELOPED WITH FRONTAL LECTURES (6 CFU, 30 HOURS) OF A THEORETICAL/METHODOLOGICAL NATURE TO TRANSFER THE REQUIRED KNOWLEDGE AND TOOLS FOR PROJECT ACTIVITIES. THE PRACTICAL PART INVOLVES HANDS-ON SESSIONS WITH THE TECHNIQUES AND CONCEPTS PRESENTED IN THE THEORETICAL PART (3 CFU, 24 HOURS). THE FORMULA FOLLOWED CONSISTS OF SHOWCASING A TOOL AND ALLOWING THE STUDENTS TO EXPERIMENT WITH IT ON A SOFTWARE PROJECT THEY CHOSE. |
Verification of learning | |
---|---|
THE ACHIEVEMENT OF THE TEACHING OBJECTIVES IS CERTIFIED BY PASSING AN EXAM WITH AN EVALUATION OUT OF THIRTY. THE EXAM INVOLVES REALIZING AND DELIVERING AN INDIVIDUAL OR GROUP PROJECT WITH THE RELATED DOCUMENTATION AND AN ORAL TEST. THE DELIVERY OF THE PROJECT DOCUMENTATION IS PREPARATORY TO THE ORAL EXAM. |
Texts | |
---|---|
- KNIGHT, J. (2012). FUNDAMENTALS OF DEPENDABLE COMPUTING FOR SOFTWARE ENGINEERS. CRC PRESS - PEZZÈ, M., & YOUNG, M. (2008). SOFTWARE TESTING AND ANALYSIS: PROCESS, PRINCIPLES, AND TECHNIQUES. JOHN WILEY & SONS - MEAD, N. R., ALLEN, J. H., BARNUM, S., ELLISON, R. J., & MCGRAW, G. R. (2004). SOFTWARE SECURITY ENGINEERING: A GUIDE FOR PROJECT MANAGERS. ADDISON-WESLEY PROFESSIONAL |
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 THE SOFTWARE TOOLS REQUIRED TO DEVELOP DEPENDABLE MODULES. THE TEACHING MATERIAL WILL BE AVAILABLE ON THE DEPARTMENTAL E-LEARNING PLATFORM. |
BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2025-09-16]