Skip to main content
CODE 114661
ACADEMIC YEAR 2026/2027
CREDITS
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

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.