What are you looking for?
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.)
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
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
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
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.
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.
The final grade will be calculated with the grades of the weighted activities as follows:
- INDIVIDUAL EXAMINATION: 50%
- PRACTICE: GROUP PROJECT: 50%
Normative:
Recovery:
To be able to take the recovery test, the student must meet the following three conditions:
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
UML for Java Programmers - Robert C. Martin