Università degli Studi di Urbino Carlo Bo / Portale Web di Ateneo


A.Y. Credits
2018/2019 12
Lecturer Email Office hours for students
Edoardo Bontà
Teaching in foreign languages
Course with optional materials in a foreign language English
This course is entirely taught in Italian. Study materials can be provided in the foreign language and the final exam can be taken in the foreign language.

Assigned to the Degree Course

Applied Informatics (L-31)
Date Time Classroom / Location
Date Time Classroom / Location

Learning Objectives

The objective of this course is to illustrate the main methodologies, techniques, and tools for complex software systems development process management, with particular emphasis on object oriented design and programming paradigm.


01. Software engineering fundamentals
  01.01 Basic concepts of Software Engineering
  01.02 Software quality
  01.03 Software development process

02. Object-oriented analysis and design
  02.01 The object oriented paradigm
  02.02 Introduction to software modeling
  02.03 Unified Process

03. Unified modeling language (UML)
  03.01 Introduction to UML
  03.02 Structure diagrams: classes, objects, and packages
  03.03 Behavior diagrams: use case
  03.04 Robustness analysis and interactions among entities
  03.05 Interaction diagrams: communication, sequence
  03.06 State machine, activity, and other diagrams

04. Object-oriented programming
  04.01 Introduction: data types, statements, methods
  04.02 Classes and objects
  04.03 Inheritance
  04.04 Polymorphism, abstract classes and interfaces
  04.05 Exception handling
  04.06 Generics

05. Design patterns
  05.01 Introduction to design patterns
  05.02 Creational patterns: Singleton, Factory
  05.03 Structural patterns: Proxy
  05.04 Behavioral patterns: Observer, Visitor

06. Methods for software engineering
  06.01 Requirements analysis
  06.02 Principles of software design
  06.03 Software testing techniques
  06.04 Software metrics

07. Software project management
  07.01 Software project planning
  07.02 Project estimation
  07.03 Risk analysis and management
  07.04 Project scheduling
  07.05 Software configuration management
  07.06 Project documentation
  07.07 CASE tools

08. Advanced topics
  08.01 Formal methods
  08.02 Cleanroom software engineering
  08.03 Reengineering

Note: during the first semester, topics will be covered up to "04. Object Oriented Programming". In the second semester, the subsequent topics will be covered.

Bridging Courses

Although there are no mandatory prerequisites for this exam, students are strongly recommended to take it after Procedural and Logic Programming and Algorithms and Data Structures.

Learning Achievements (Dublin Descriptors)

  • Knowledge and understanding

Students will acquire the fundamental knowledge necessary to the building of complex software systems, with special attention to the object-oriented design and programming paradigm, exemplified through the C# language.

They will become familiar with different development processes for the management of complex software systems, together with the visual notation UML for software modeling and the ‘design patterns’ as logical models for solving recurring problems in the software design and development phases

  • Applying knowledge and understanding

Students will be able to apply the most widespread practices in agile and prescriptive process models for designing, implementing and testing complex software systems. They will also be able to estimate the costs of the software development, using empirical estimation models, as well as to plan the realization of a software project, monitoring the advancement and the cost of all the related activities.

  • Making judgements

Students will be able to evaluate the goodness of a software not simply on the basis of their own experience and/or of subjective criteria, but on the basis of specific quality standards for the evaluation of processes and products.

  • Communication skills

Students will be able to use the specific metalanguage of object-oriented programming languages, design patterns and agile and prescriptive process models.

  • Learning skills

Students will acquire the ability to learn the syntactic and semantic peculiarities underpinning any object-oriented programming language.

Teaching Material

The teaching material prepared by the lecturer in addition to recommended textbooks (such as for instance slides, lecture notes, exercises, bibliography) and communications from the lecturer specific to the course can be found inside the Moodle platform › blended.uniurb.it

Supporting Activities

The teaching material and specific communications from the lecturer can be found, together with other supporting activities, inside the Moodle platform › blended.uniurb.it

Didactics, Attendance, Course Books and Assessment


Theory lectures and laboratory exercises.


Although recommended, course attendance is not mandatory.

Course books

Pressman, "Software Engineering: A Practitioner.s Approach", McGraw-Hill, 2010.
(Pressman, "Principi di Ingegneria del Software", McGraw-Hill, 2008).

Fowler, "UML Distilled", Addison-Wesley, 2003.
(Fowler, "UML Distilled", Pearson Italia (Addison-Wesley), 2010).

Bochicchio et al., "C# 6 e Visual Studio 2015 - Guida completa per lo sviluppatore", Hoepli, 2016.

Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Software", Addison-Wesley, 1995.
(Gamma, Helm, Johnson, Vlissides, "Design Patterns: Elementi per il riuso di software ad oggetti", Pearson Italia (Addison-Wesley), 2002).


Project (to be developed individually or by groups of two students), written and oral exam.

The project work, whose topic is freely chosen by the student, must be handed in at least 7 days before the written exam. It is approved if the mark is at least 18/30. The mark is valid for every exam session subsequent to the submission of the project. In case of late submission, the project will not be accepted. Should the project be resubmitted in a subsequent exam call, the mark is cancelled and a 5/30 penalty is applied to the mark of the newly submitted project.

The written exam, that can be taken only after passing the project work, consists of 6 questions and 1 exercise, split into two parts, and must be completed in 60 minutes. It is passed with a mark of 18/30, the mark is only valid for the exam call in which the written exam is taken.

The oral exam, that can be taken only after the approval of the project work and the passing of the written exam, consists of a discussion of the project work and of the written exam, plus further questions. If passed, it concurs to an adjustment comprised between -3/30 and 3/30 on the average of the two previous marks, thus giving the final mark. For further information on project works and written exams>http://www.sti.uniurb.it/bonta/didattica/ingsw/inge_soft.html


The course offers additional e-learning facilities on the Moodle platform > elearning.uniurb.it

« back Last update: 20/04/2020


Questo contenuto ha risposto alla tua domanda?

Il tuo feedback è importante

Raccontaci la tua esperienza e aiutaci a migliorare questa pagina.

Se sei vittima di violenza o stalking chiama il 1522

Il 1522 è un servizio pubblico promosso dalla Presidenza del Consiglio dei Ministri – Dipartimento per le Pari Opportunità. Il numero, gratuito è attivo 24 h su 24, accoglie con operatrici specializzate le richieste di aiuto e sostegno delle vittime di violenza e stalking.

Posta elettronica certificata



Performance della pagina

Università degli Studi di Urbino Carlo Bo
Via Aurelio Saffi, 2 – 61029 Urbino PU – IT
Partita IVA 00448830414 – Codice Fiscale 82002850418
2021 © Tutti i diritti sono riservati