Skip to main content
CODE 111100
ACADEMIC YEAR 2026/2027
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR IINF-05/A
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

Software engineering is the branch of computer science that creates practical, cost-effective solutions to computing and information processing problems.  This course will study a collection of methods that embody an "engineering" approach to the development of computer software. We will study methods for analysis, design, testing, and implementation of large, complex software systems. The major work of the course is a group project.

AIMS AND CONTENT

LEARNING OUTCOMES

The purpose of the teaching unit is to introduce Software Engineering as a discipline that governs every aspect of the software development process, understood as the application of engineering principles to software, including requirement specification, design, modeling, documentation, and unit testing, not limited to coding, and to provide an understanding of metrics used to quantify software quality, covering topics such as software development templates, requirement analysis, UML modeling systems, design patterns, verification and validation, temporal specification languages, temporal property verification algorithms, and modeling and case resolution using model checkers.

AIMS AND LEARNING OUTCOMES

At the end of the course, students should be able to:

  1. Manage a medium-sized software development project, including scheduling and all supporting documentation
  2. Compile software engineering documents such as user requirements documents or test planning
  3. Use teamwork tools such as git/github
  4. Interact with companies to define requirements

PREREQUISITES

There are no specific requisites. I am assuming that students are familiar with programming languages and Data Structures. This course demands both independent and cooperative work.  The implementation language used during the lessons is Java. Java programming experience is not a prerequisite, because it is assumed that as a software professional, students have the ability to learn new languages and tools quickly. 

The course must be taken together with the Software Engineering course (111102)

TEACHING METHODS

The teaching activities are divided into:

  1. Classroom lessons where the teacher will present some examples
  2. Meeting between teacher and each group to define the progress of the project and possible problems
  3. Meeting between company tutor and work group to define the requirements and to validate the work
  4. Meeting between the working group company tutor and the teacher to validate the progress of the project

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 course to agree on any teaching arrangements which, whilst respecting the course 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

A (tentative) list of topics is:

  1. How to manage a software project via git/github
  2. Task planning for group work
  3. Writing documents for software development
  4. Software design using UML
  5. Software development through guidelines
  6. Code refactoring
  7. Automatic Unit Testing
  8. Functional testing

RECOMMENDED READING/BIBLIOGRAPHY

Possible reading books to go into mode details:

  1. R. MartinAgile Software Development, Principles, Patterns, and Practices, Prentice Hall, 2002 (ISBN: 0-135-97444-5).
  2. C. Atkinson et alComponent-Based Product Line Engineering with UML, Addison-Wesley, 2001, (ISBN 0-201-73791-4).
  3. A. Cockburn, Writing Effective Use Cases, Addison Wesley, 2000 (ISBN: 0-201-70225-8).
  4. M. Fowler and K. ScottUML Distilled: A Brief Guide to the Standard Object Modeling Language2nd Edition, Addison Wesley, 2002 (ISBN: 0-201-65783-X).
  5. I. Jacobson, G. Booch, and J. RumbaughUnified Software Development Process, Addison Wesley, 1999, (ISBN: 0-201-57169-2).
  6. Software Engineering, Ian Sommerville, Pearson Editor

TEACHERS AND EXAM BOARD

Exam Board

MASSIMO NARIZZANO (President)

ENRICO GIUNCHIGLIA

ARMANDO TACCHELLA (President Substitute)

LESSONS

LESSONS START

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

To Each student is assigned a project that will be the same as the Software Engineering course that they will have to carry out in group.

ASSESSMENT METHODS

The grade of the exam will be given by evaluating the project in the following compositions:

50%: of the vote will be assigned by evaluating how well the software satisfies the user's requirements. It is usually assessed by the company/university mentor

50% of the vote will be assigned evaluating the quality of the software produced, from the point of view of software engineering practices. Usually this will be assessed by the Course Instructor.

FURTHER INFORMATION

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. 

 

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Quality education
Quality education
Gender equality
Gender equality
Decent work and economic growth
Decent work and economic growth
Industry, innovation and infrastructure
Industry, innovation and infrastructure