General information


Subject type: Mandatory

Coordinator: Vladimir Bellavista Parent

Trimester: First term

Credits: 6

Teaching staff: 

Josep Roure Alcobé
Alfredo Rueda Unsain 

Academic year: 2025

Teaching course: 3

Languages ​​of instruction


  • English

Competencies / Learning Outcomes


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

Presentation of the subject


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

  • The domain model must have a minimum of zero classes.
  • Must be connected to a remote database
  • Implement security: it must authenticate and authorize users
  • Follow the software patterns seen in the programming and software engineering subjects
  • Use layered architecture: presentation, application, domain and persistence
  • Connects to an external service using the HTTP protocol
  • Implement unit and integration tests

We will study the base technologies and protocols on which web/REST applications are built and then introduce the framework called Spring. We chose Spring for many reasons: it is open source, it is in Java, it is widely used in the professional world, it follows and promotes good programming practices, and it has a very large and active community behind it. 

The subject will place great importance on the application development process. It will be developed in groups of three students and the work will be divided so that all members develop a function in its entirety, that is, they work with the database, the application itself and the web/REST service. 

Use of Generative AI in the subject

In this subject, the use of the artificial generative intelligence (AIG) for the development of the project and the exam. The code that is delivered must comply with the software architecture and established programming practices. Therefore, it is essential that the student knows how to discern the appropriate time to use the IAG, as well as maintain a critical sense given the results it offers. Likewise, it will be essential for the student to acquire the competence of design effective prompts in order to obtain the highest quality code. It is important to emphasize that the student is the only responsible for all delivered code, regardless of whether it was generated by an IAG or developed by itself.

Tanmateix, NOT recommended the use of the IAG to solve exercises that aim to practice the use of new libraries or frameworks.

The classroom (physical or virtual) is a safe space, free from sexist, racist, homophobic, transphobic and discriminatory attitudes, whether towards students or teachers. We trust that together we can create a safe space where we can make mistakes and learn without having to suffer prejudice from others. 

Contents


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. Data validation
  7. Exceptions and error checking
  8. Security
  9. Connection to DB with Spring data + JPA
  10. Connection to external services

Topic 3. Cloud: 

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

Activities and evaluation system


Assessment

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

Final grade calculation (NF):

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

Recovery:

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

Normative:

  • 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 have the right to recovery, they must have presented to PR_P

Bibliography


Basic

Spring main plane. https://spring.io/

Spring framework documentation: https://docs.spring.io/spring/docs/current/spring-framework-reference/index.html

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

Complementary

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

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