CODE 114661 ACADEMIC YEAR 2026/2027 CREDITS 6 cfu anno 3 INGEGNERIA INFORMATICA 8719 (L-8) - IMPERIA SCIENTIFIC DISCIPLINARY SECTOR INF/01 LANGUAGE English TEACHING LOCATION IMPERIA SEMESTER 1° Semester OVERVIEW The teaching unit provides an introduction to software engineering. Software engineering is a discipline dealing with all aspects of software development - discipline = subject of study - Software engineering = a set of theories, methods, techniques and tools to develop quality software in a professional manner AIMS AND CONTENT LEARNING OUTCOMES The course will provide the students with the basic scientific and professional principles of software engineering in the different phases of code development: planning, design, modeling, implementation, testing, verification and maintenance. AIMS AND LEARNING OUTCOMES The objective of the teaching unit is to provide an overview of Software Engineering necessary for the design and development of large modern software systems, as well as to introduce concepts, notations, methods and tools to follow the entire life cycle of the software. At the end of the teaching unit, the student will be able to: - understand and describe the basic elements of the discipline (development models, requirements, design, testing, maintenance, design patterns); - describe a software system with the UML formalism and understand the documentation of an existing system; - solve simple software design, refactoring and testing tasks (at least at the unit testing level) also by working in a team; - use a CASE UML tool (e.g. Visual Paradigm or VS Code) and an IDE (e.g. Eclipse) to perform simple tasks (e.g. create a UML class diagram or refactor a piece of code). PREREQUISITES To successfully follow this teaching unit, it is important to be familiar with the imperative and object-oriented programming paradigms. The following knowledge is assumed to have already been acquired and constitutes the necessary foundation for understanding the topics covered in this course: Knowledge of the fundamentals of programming Knowledge of an object-oriented programming language Knowledge of OO concepts: inheritance, polymorphism, encapsulation TEACHING METHODS The teaching unit includes both lectures and laboratory activities. Traditional lectures will be delivered using slides. Guided laboratories and supplementary activities will be carried out using AulaWeb. AulaWeb will be used for three purposes: as a repository for course materials; as a channel for administrative communications, explanations, and discussions related to the course; and finally, to facilitate teamwork. Students who hold valid certificates relating to Specific Learning Difficulties (SLD), disabilities or other educational needs are invited to contact the lecturer and the school’s disability liaison officer at the start of the teaching unit to agree on any teaching arrangements which, whilst respecting the teaching unit objectives, take into account individual learning styles. The contact details for the university’s disability liaison officer are available at the following link: https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita SYLLABUS/CONTENT The teaching unit program includes the presentation and discussion of the following topics: - Introduction to the course and to software engineering - Software development process models, agile methods (eg. Extreme programming) - Requirements Engineering. Scenarios and use cases - Software Design principles and design methods, coupling and cohesion, software architecture, design patterns, refactoring - The UML: Concept of Model. Some diagrams: Class diagram, Sequence diagram, State Machine diagram, Activity diagram - Software Testing: Testing functional / structural and coverage. Unit tests, integration, system, acceptance tests and regression tests - Software evolution and Maintenance RECOMMENDED READING/BIBLIOGRAPHY - Martin Fowler UML Distilled 4/Ed. Pearson-Addison Wesley. - Mike O'Docherty. Object-Oriented Analysis and Design: Understanding System Development with UML 2.0. John Wiley & Sons [some portions] - Sommerville I. Software Engineering 8th edition, Addison Wesley [some portions] - Shari Lawrence Pfleeger, Joanne M. Atlee. Software Engineering: Theory and Practice [some portions] TEACHERS AND EXAM BOARD FILIPPO RICCA Ricevimento: Appointment by email Exam Board FILIPPO RICCA (President) LESSONS LESSONS START According to the calendar approved by the Degree Program Board https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam consists of the following activities - Laboratory activities - Written Laboratory activities The teaching unit includes laboratory activities to be carried out in groups. For some of these activities, the delivery of the work performed will be required and evaluated. For others, student participation will simply be monitored. Alternative activities to be delivered via AulaWeb will be proposed to those (e.g. working students) who are unable to attend the laboratory activities. Written The written exam will consist of multiple-choice and open questions. The questions will be both theoretical and practical, covering the topics discussed in class. During the lessons, some examples of possible questions will be discussed so that by the end of the course the type of exam will be clear. ASSESSMENT METHODS The laboratory activity aims to ascertain the collaborative skills in solving problems within the topics covered in the course, in particular the use of UML, refactoring and software testing. The written test has the objective of verifying the knowledge of both theoretical and practical aspects of the discipline. The specific knowledge of the subject and the ability of critical reasoning will be considered. Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/8759/studenti-disabilita-dsa FURTHER INFORMATION For further information, please refer to the course’s AulaWeb module or contact the instructor. Students with valid certifications for Specific Learning Disorders (SLD) may request accommodations for exams at least 7 days prior to the exam date by filling out the “accommodation request form” (available via online services at https://modulionline.unige.it/richiesta-adattamenti# no-back), which will be automatically forwarded by the system to the instructor in charge of the course and to the faculty liaison for students with disabilities and SLDs in their School/Department. The student will receive a copy of their request.