General information


Subject type: Mandatory

Coordinator: Ana Beatriz Pérez Zapata

Trimester: First term

Credits: 6

Teaching staff: 

Rosa Herrero Antón

Teaching languages


  • Catalan

The main language of instruction in class is Catalan.

However:

- all the material of the subject available is in English,
- the tools used and their documentation are in English,
- All work and deliveries must be in English.
  (this includes code, comments, documentation, interfaces, etc.)

Skills


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

     

  • EIS3_Ability to solve integration problems based on available strategies, standards and technology

     

  • 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

     

  • ESI2_Ability to determine the requirements of the information and communication systems of an organization, taking into account security aspects and compliance with current regulations and legislation

     

  • 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

     

Description


The subject of Software Laboratory 2 of the first term of the fourth year is the last of the two subjects called Software Laboratory. Its teaching is intended to dedicate 1 ECTS to the theory part and 5 ECTS to practice the concepts exposed to theory and those acquired in the other subjects.

This subject will consist of the creation of a client-server application through a group while respecting the SCRUM methodology and continuous delivery.

The student, in addition to implementing the application and creating the software tests, will capture requirements for new features, specify them, and perform the roles of Scrum Master and Release Manager.

All development will be done on github, and team contributions will be regulated through pull requests.

The code will be developed with Java Spring + JPA on the server side, Javascript React + Redux on the client, and will communicate with REST protocol.

Contents


1. Client / Server architecture design

Use of distributed architectures in client / server architecture. The server establishes an interface that the client will use to communicate with the user. The server and client communicated primarily with REST.

2. Automatic Dependency Injection Architecture + JPA

Use of Spring automatic dependency injection technologies.
Use the JPA API in the back-end that automatically connects to a data source and structures tables and relationships automatically.

3. MVC client architecture

Use of an MVC architecture on the client capable of properly managing data and communication with the server.

4. Project Management

Use of the SCRUM system in teams where students will have to present the results frequently in the PO. The teacher will play the role of PO. Within each group and in rotation one of the students will be a Scrumm Master.
Students will also capture requirements, present features, and implement design.

5. Continuous Delivery

Use of a continuous delivery system. Software testing is used to trace and ensure that the specification is implemented correctly. In each iteration, with a rotation system, each of the students will act as Release Manager, creating and validating the version to be deployed, and making the deployment to a real production environment.

6. Quality and Safety

The implemented system must pass high standards of quality and safety. All the code will go through several code reviews and will have to apply the patterns learned in previous subjects. Also all the code will have to have pots with a coverage of almost 100%, and these will have to contemplate all the exceptions that can compromise the server.

Evaluation system


The final grade will be calculated with the grades of the weighted activities as follows:

- INDIVIDUAL EXAMINATION: 50%

- PRACTICE: GROUP PROJECT: 50%

Normative:

  • The group project, despite being done in a group, the participation and the grade will be individual. This will be the weighting of the various notes of the various tasks carried out by the student. The grade for each task must be 3 or higher, otherwise the grade for the whole group project will be the minimum grade for each task.
  • If the grade of the individual exam is lower than 3, or the grade of the practice is lower than 3, the final grade of the subject will be the lowest of them, therefore, the subject will be suspended.
  • Only the individual exam can be recovered (the group project cannot be recovered). 50% of the final mark of the subject will be the greater between the recovery test and the one obtained in the exam.

Recovery:

To be able to take the recovery test, the student must meet the following three conditions:

  • The grade for the subject is less than five.
  • Having appeared in the individual exam.
  • The grade obtained in each of the practice tasks must be 3 or more.

REFERENCES


Basic

Spring Documentation - https://spring.io

Agile Software Development: Principles, Patterns, and Practices - Robert C. Martin,

Guide: Writing Testable Code http://misko.hevery.com/code-reviewers-guide/ — Miško Hevery

Complementary

UML for Java Programmers - Robert C. Martin