General information

Subject type: Mandatory

Coordinator: Rosa Herrero Antón

Trimester: First term

Credits: 6

Teaching staff: 

Josep Roure Alcobé
Alfredo Rueda Unsain 

Teaching languages

  • English


Basic skills
  • B2_That students know how to apply their knowledge to their job or vocation in a professional way and have the skills they demonstrate by developing and defending arguments and solving problems within their area of ​​study

  • B4_That students can convey information, ideas, problems and solutions to both specialized and non-specialized audiences

  • B5_That students have developed those learning skills necessary to undertake further studies with a high degree of autonomy

Specific skills
  • EIS1_Ability to develop, maintain and evaluate software services and systems that meet all user requirements and that behave reliably and efficiently, are affordable to develop and maintain and comply with quality standards, applying theories, principles, methods and software engineering practices

  • EIS2_Ability to assess customer needs and specify software requirements to meet those needs, reconciling conflicting goals, by seeking acceptable compromises, within the limitations of cost, time, the existence of already developed systems and of the organizations themselves

  • EIS4_Ability to identify and analyze problems and design, develop, implement, verify and document software solutions based on adequate knowledge of current theories, models and techniques

  • EIS5_Ability to identify, assess and manage potential associated risks that may arise

  • EIS6_Ability to design appropriate solutions in one or more application domains, using software engineering methods that integrate ethical, social, legal and economic aspects

  • ESI3_Ability to actively participate in the specification, design, implementation and maintenance of information and communication systems

Transversal competences
  • T1_That students know a third language, which will be preferably English, with an adequate level of oral and written form, according to the needs of the graduates in each degree

  • T2_That students have the ability to work as members of an interdisciplinary team either as one more member, or performing management tasks in order to contribute to developing projects with pragmatism and a sense of responsibility, making commitments taking into account the available resources


This is a laboratory subject and is therefore eminently practical. The ultimate goal is to build a complete web application so we will implement a minimum viable product that we will decide during the first days of the course. The features that the application must have will be the following:

  • The domain model must have a minimum of four classes
  • Must be connected to a remote database
  • Implement security: must validate users
  • Follow the software patterns seen in the programming and software engineering subjects
  • Separates the presentation layer from the domain layer with the view-controller pattern
  • Connects to an external service using the HTTP protocol

We will study the basic technologies and protocols on which web applications are built and then introduce the framework called Spring. We chose Spring for many reasons: it's opensource, it's in Java, it's widely used in the professional world, it follows and encourages good programming practices, there's a very large and active community behind it. 

The subject will give a lot of importance to the application development process. It will have to be developed in groups of three students and the work will have to be distributed in such a way that all the members fully develop some function, that is to say, that they work with the BBDD, the application itself and the web/REST service . 


Topic 1. Internet applications

  1. Client and server communication: HTTP protocol
  2. JEE, Servlets and JSP
  3. Session and application context
  4. Transfer of serialized objects with XML and JSON

Topic 2. Server: The Spring framework

  1. Spring components
  2. Injection of dependencies
  3. Aspect Oriented Programming (AOP)
  4. The Model View Controller (MVC) pattern
  5. REST services
  6. Forms and passage of information
  7. Exceptions and error checking
  8. Security
  9. DB connection with JDBC
  10. Connection to external services

Topic 3. Cloud: 

  1. Cloud services
  2. "Deployment" of applications in the cloud
  3. Cloud and containers

Evaluation system


  • PRJ: project. Weighting of the final grade 70% if the PR_P grade >= 4
  • PR_P: practice test. Weighting of the final grade 30% (minimum grade to apply weights 4)

Final grade calculation (NF):

  • If PR_P> = 4 : NF = PON = PR_P 0,30 + PRJ 0,70
  • If PR_P <4 : NF = min (PR_P, PON)


  • Only the PR_P practical test can be retaken. The final grade will be calculated as set out above with the test recovery grades.


  • Following UPF regulations, if it is detected that a practice or test has been copied, the mark for that test will be 0 (zero) regardless of its role (receiver or sender) and without this excluding the possible application of other sanctions in accordance with the current Disciplinary Regime.
  • In order for the student to be entitled to recovery, he / she must have presented himself / herself to PR_R



Walls, Craig (2022), 'Spring in Action'. (6th edition) Manning Publications. 

Spring main plane.

Spring framework documentation:


Deinum, Marten; Rubio, Daniel; Long, Josh and Mak, Gary (2014) "Spring Recipes, A problem-solution approach", Third Edition. Apress

 Stephen Ludin, Javier Garza, "Learning HTTP / 2: A Practical Guide for Beginners" 1st Edition. O'Reilly June 2017. ISBN-10: 1491962445