94442 - Design of Web Applications T

Course Unit Page


This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.

Quality education

Academic Year 2021/2022

Learning outcomes

At the end of the course, the student masters the principles of the design and development of Web applications, with particular attention to data-intensive applications.

Course contents

Models for Designing Web Applications

  • Data model: E/R e UML
  • Hypertext model (WebML)
  • Content management model (WebML)

Design of Web Applications

  • Overview of the development process
  • Requirements specifications and data design
  • Hypertext design in WebML

Implementation of Web Applications

  • Architecture design and multilayer organisation: Services, Business Logic, and Application
  • Data implementation
  • Hypertext implementation
  • Tools for model-based development of Web applications: Web Ratio and IFML

Services: Models and technologies for the effective and efficient management of the impedance mismatch

  • Direct access to databases: Interfaces and abstractions
  • Object-based architectures vs. relational databases: The impedance mismatch
  • Methodologies for persistence designing and developing: The "brute force" approach (JDBC), pattern DAO, and Object-Relational Mapping (ORM) - Entity Beans - Hibernate library

Services: Transactional models

  • Isolation levels
  • Transactional models: JDBC, JTA e Hibernate

Data description and XML

  • Descrizione delle informazioni: XML e XHTML
  • Tipizzazione di XML: DTD vs. XML Schema
  • Accenni a XSL e XSLT
  • XML e Java: Parser XML (modelli DOM e SAX)

N.B. Significant part of the course is dedicated to carrying out guided laboratory exercises. A good knowledge of Java language and its application framework is required, as well as the fundamentals of Web Technologies and Databases.


All the lectures slides are available for download at the course Web site. For further information the student can refer the following books and links:

XML In a Nutshell, Second Edition, by Elliotte Rusty Harold and W. Scott Means. O'Reilly.

Design Web Applications
Progettazione di dati e applicazioni per il web, by Stefano Ceri et al. McGraw-Hill
Designing data-intensive web applications, by Stefano Ceri et al. Morgan Kaufmann
Interaction Flow Modeling Language: Model-Driven UI Engineering of Web and Mobile Apps with IFML, by Marco Brambilla at al. Morgan Kaufmann

Java persistence with Hibernate - Bauer - Manning

Teaching methods

Most course lectures are in "traditional" classrooms and exploit the slides available at the Course Web site. A non-negligible part of the course (around 30% of the hours) is composed by lab exercises, with proposed tasks and supervised by teachers and tutors. Each lab exercise addresses a topic presented and discussed in the previous classroom lectures, within a practical and operational perspective (also usage of state-of-the-art development and programming tools).

Fluent spoken and written italian is a necessary pre-requisite: all lectures and tutorials, and all study material will be in italian.

Assessment methods

Achievements will be assessed by means of a final exam. This is based on an analytical assessment of the "expected learning outcomes" described above. In order to properly assess such achievement the examination is composed of a practical programming session, including also some questions covering the whole course program.

To participate to the lab programming exam, interested students have to register themselves by exploiting the usual UniBO Web application, called AlmaEsami.

In order to pass the practical programming exam, a minimum grade of 18 points is needed (over a total of 33 points): a sufficient score is needed in all provided exercises.

The maximum grade will be awarded to students who demonstrate an organic understanding of the subject, a high ability for critical application, and a clear and concise presentation of the contents. The minimum grade will be awarded if the student shows knowledge gaps in key-concepts of the subject, inappropriate use of language, and/or logic failures in the analysis of the subject.

Teaching tools

In traditional classrooms, the course lectures will make extensive usage of slides (available at the course Web site). In lab, the course will use state-of-the-art development, IDE, and runtime support tools (e.g., Eclipse). Students must learn how to practically and effectively use these tools (or other alternative tools), as an additional, practical, and relevant outcome of the course.

Links to further information


Office hours

See the website of Ilaria Bartolini