CODE 80154 ACADEMIC YEAR 2021/2022 CREDITS 9 cfu anno 1 COMPUTER ENGINEERING 11160 (LM-32) - GENOVA 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 MASSIMO NARIZZANO Ricevimento: Friday Morning From 10:00 till 12:00 o su appuntamento. Exam Board MASSIMO NARIZZANO (President) ENRICO GIUNCHIGLIA ARMANDO TACCHELLA (President Substitute) LESSONS LESSONS START https://courses.unige.it/11160/p/students-timetable 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