This version of the course guide is provisional until the period for editing the new course guides ends.

Logo UAB

Software Architecture and Technologies

Code: 102790 ECTS Credits: 6
2025/2026
Degree Type Year
Computer Engineering OB 3
Computer Engineering OT 4

Contact

Name:
Lluis Echeverria Rovira
Email:
lluis.echeverria@uab.cat

Teachers

Albert Gil Lopez
Lluis Echeverria Rovira

Teaching groups languages

You can view this information at the end of this document.


Prerequisites

There are no official prerequisites, but it is advisable that the student has completed the subject "Enginyeria del Software" from the second year and "Gestió i administració de base de Dades" from the third year.
 
While the vehicular language is Catalan, part of the complementary notes and documentation are in English, so it is needed a minimum knowledge of this language.
 
One of the topics to be addressed in this subject (NO-SQL Database) is complemented in the subject Gestió i Administració de Bases de Dades
 
Finally, it is advisable to have basic programming knowledge with the Java and Python languages.

Objectives and Contextualisation

This subject is divided into three parts. Each part with a specific, actual and advanced topic of concepts about engineering software.
 
The aim is to introduce the students to these topics for three or four weeks, giving them a basic knowledge in order to then be able to deepen by themselves. The selected topics revolve around databases, programming, software architectures, modeling and software development. Each year three or four topics are selected.

Competences

    Computer Engineering
  • Acquire personal work habits.
  • Capacity to design, develop, evaluate and ensure the accessibility, ergonomics, usability and security of computer systems, services and applications, as well as of the information that they manage.
  • Have the capacity to identify, evaluate and manage potential risks.
  • Have the right personal attitude.

Learning Outcomes

  1. Design an architecture that can best solve a specific problem, taking into account the associated risks.
  2. Design the architecture of a component based computer system.
  3. Generate proposals that are innovative and competitive.
  4. Make one's own decisions.
  5. Manage information by critically incorporating the innovations of one's professional field, and analysing future trends.

Content

The subject consists of 3 different topics but related to the new and modern software engineering environments.
 
The contents are ambitious, however, as the dynamics of the course aim to be very interactive, the contents could be tailored (lengthened or shortened), depending on the course of the sessions. On the other hand, the proposed topics are in themselves very broad and dense, which makes it impossible to delve into the course of a subject. Nor is it the goal; you want to give an initial outline and basic knowledge.
 
On the other hand, although all the concepts covered will be duly referenced in the materials delivered or with external reference for consultation, many of them will be developed during the classes, therefore, their assistance is highly recommended, if not indispensable, to acquire all the proposed knowledge.
 
The order of the topics can be another.
 

Topic 1. Introduction to DevOps

DevOps (Development and Operations) is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other Information-Technology (IT)  professionals. DevOps is a response to the interdependence of software development and IT operations. Its goal is to help an organization produce software products and services quickly.

Contents:

  • Cloud computing:
    • Cloud service models
    • Cloud service access models
    • Cloud types
  • DevOps:
    • Basic concepts
    • Characteristics
    • DevOps within Agile methodologies
    • Continuous integration, Continuous delivery, Continuous deployment
  • Infrastructure as code
  • Infrastructure provisioning and orchestration
  • Vagrant
  • Docker

 Topic 2. Introduction to Big-Data

The concept of BigData is the name given to sets of data, procedures and applications which, by their volume, their diverse nature and the speed at which they are to be processed exceed the capacity of common computer systems. This data processing is used to detect patterns within them, may well make valid predictions for decision making. This new world of data processing needs new paradigms and strategies of software. The topic will be studied from 2 different angles: from the position of Data Engineer and from that of Data Scientist

Contents:

  • Introduction to IoT and Industry 4.0 in the BigData world
  • Data architectures and platforms
  • BigData structures and platforms
    • Apache Hadoop
    • Apache Spark
  • Software engineering in BigData
    • Algorithms and Patterns
    • Data Models and Structures
  • Data science/ Data mining / Machine Learning 

Topic 3Introduction to NoSQL databases (MongoDB) and integration with generative AI

NoSQL (Not Only SQL) databases represent a modern alternative to traditional relational databases, especially useful for scenarios with large volumes of data, changing structures or highly distributed scalability requirements. Within this paradigm, MongoDB has consolidated itself as a key tool for storing documentary and semi-structured data.

In addition, with the rise of generative artificial intelligence (Generative AI), MongoDB has incorporated vector search functionalities, which allow the use of embeddings to integrate the database within Retrieval-Augmented Generation (RAG) systems, thus improving semantic search and intelligent response capabilities.

Specific objectives of the topic:

  • To train the student in the design and manipulation of a documentary database.
  • To understand and implement advanced operations in MongoDB.
  • Introduce the concept of embeddings and its application to enrich searches.
  • Develop a mini-application that integrates MongoDB and a generative model via API.
  • Reflect on the limits, risks and potential of the use of generative AI in industrial environments.


Contents:

  • Introduction to No-SQL databases: Definition, characteristics and types (document, key-value, column, graph).
  • MongoDB:
    • Basic concepts and architecture.
    • JSON / BSON format.
    • Basic operations: insert, query, modify and delete (CRUD).
    • Aggregations, database design, embedding vs references.
    • Replication and sharding for scalability and fault tolerance.
  • Vector Search and Embeddings in MongoDB Atlas:
    • What are embeddings and how are they generated.
    • Vector search: an approach to nearest neighbor search.
    • Creating vector indexes and semantic query.
    • Practical application: building a RAG (Retrieval-Augmented Generation) system with MongoDB, Python and OpenAI.
  • Generative AI and RAG architecture:
    • Conceptual introduction to RAG systems.
    • How MongoDB can act as a vector DB in generative systems.
    • Generating reports, responses and recommendations based on internal documents.

 


Activities and Methodology

Title Hours ECTS Learning Outcomes
Type: Directed      
Practicum Sessions 12 0.48 2, 1, 3, 5, 4
Problems 12 0.48 2, 1
Theory 26 1.04 2, 1
Type: Autonomous      
Individual Study 44 1.76 2, 1
Practices preparation 52 2.08 2, 1

Theory and problem classes are in lecture format, although the problem session can be interactive. The professor introduces the theoretical content and provides materials (books, articles, websites) that the student will have to read, as well as references so that he/she can continue his/her learning later. To facilitate the presentation of the topics, the problem and theory classes are merged and are contiguous.

Practical sessions. At the beginning of the course, students will have formed small groups (2 or 3 members per group, if possible due to the capacity of the laboratories). Each of the subjects of the subject has two practical sessions in the laboratory. In them, students follow a tutorial/statement, such as a programming example on that topic or a work on software tools related to the current topic. Each group of students must do, before the closed-door session, a previous work to prepare for the laboratory practice or a separate work in line with the topic. The session serves to evaluate the previous work done and complete it or do a second part with the face-to-face support of the teacher. The work is submitted at the end of the day of the practical session or later.

The virtual platform to communicate with students (official) is email and Microsoft Teams if applicable. Discord (optional)

This subject, among other objectives, has to briefly introduce the student to modern concepts and technologies partly from a personal work not so much as a student but also as a pre-engineer who will apply the knowledge acquired in this and other subjects to solve certain activities proposed throughout the subject.

Within this, and to cover certain transversal competencies (T02.05-Making own decisions, T06.03 Generating innovative and competitive proposals in professional activity and T06.04 Managing information by critically incorporating innovations in one's own professional field, and analyzing future trends), the practicals of the subject will deal with the topics presented, where based on astatement, students will have to demonstrate their ability to carry out the concepts explained by generating a solution proposal using the technology analyzed in each case, and generating a report apart from the actual deliveries requested in each case. The report must contain, among other things, the argumentation of why the student has opted for that solution, pros and cons and a projection (future lines) of possible improvements to it. In summary, the practicals will serve to develop the knowledge acquired in each topic and to carry out work based on the competencies presented.

In this subject, the use of Artificial Intelligence (AI) technologies is allowed as an integral part of the development of the work, provided that the final result reflects a significant contribution by the student in the analysis and personal reflection. The student must clearly identify which parts have been generated with this technology, specify the tools used and include a critical reflection on how these have influenced the process and the final result of the activity. The lack of transparency in the use of AI will be considered a lack of academic honesty and may lead to a penalty in the grade of the activity, or greater sanctions in serious cases.

Each practice must be submitted following the specific format indicated in its statement. This format will include the sections necessary to demonstrate the knowledge acquired, the justification of the decisions made and, where appropriate, the responsible use of artificial intelligence tools.

Failure to follow the required format may result in a penalty in the grade, or even suspension of the activity, without the option of recovery.

In some activities, a self-assessment system assisted by AI tools will be used in an explainable manner, with the aim of providing personalized feedback to each student. This methodology is based on the previous experience of the 2024/25 academic year with the automated correction of the MongoDB exam and practice and the total transparency of the process will be guaranteed. The final grade, however, will always be validated by the teaching staff.

Annotation: Within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.


Assessment

Continous Assessment Activities

Title Weighting Hours ECTS Learning Outcomes
Group assessment 45% 0 0 2, 1, 3, 5, 4
Group assessment - Problems 10% 0 0 2, 1, 3, 5, 4
Individual assessment 45% 4 0.16 2, 1

This subject doesn't allow evaluation not continous

The subject consists of 3 different subjects that will be assessed independently. To pass the whole subject, the 3 subjects must be passed with a minimum of 5 over 10. The mark of each topic is computed as:

  • 45% individual assessment through a written test of that part,
  • 45% group assessment based on the result of the practice (previous work and laboratory session). It will be necessary to validate this note through a practice test that will be done the same days as the individual theory tests. If the validation is not exceeded, the note of the practice will be 0.
  • 10% one or various problem submission 

Both the theoretical and practical parts of each topic must be approved separately with a minimum of 5 out of 10 each.

In the event of failing any of the written tests, there is a recovery exam for the topic that was failed at the end of the semester.

In the event of failing any of the practices, an individual practice recovery exam must be taken on the day of the recovery exam at the end of the semester. If the validation of the practice in the written test is suspended, this recovery practice must also be taken. It should be taken into account that there may be little time between the final exam of the subject, where the validation of the practices of topics 2 and 3 is carried out, and the day of the recovery exam.

The student may take the recovery tests provided that he/she has taken a set of activities that represent at least two-thirds of the total grade for the subject. Problems cannot be recovered.

The dates of continuous assessment and submission of work will be published on the virtual campus and may be subject to changes in programming for reasons of adaptation to possible incidents.

In the event of failing only one of the three subjects, and with a minimum of 3 in theory and 5 in practical in the failed subject, this failure will bevalidated with a fixed final grade of 4. To be eligible to validate the subject, the remaining two subjects must have a minimum of 6.

Grades for completed subjects (theory + practicals) from one course to another can be saved as long as the subject grade is at least 6, and the grade applied to the following course will be a 5.

Awarding an honours grade (MH) is the decision of the professor responsible for the subject. UAB regulations indicate that MHs can only be granted to students who have obtained a final grade equal to or greater than 9.00. Up to 5% of MHs can be awarded to the total number of students enrolled. They will be awarded according to the grade.

The student will receive a "Not Assessable" if they do not present any exam, any practical or any of the problems.

For each assessment activity, a place (can be online), date and time of review will be indicated where the student can review the activity with the professor. In this context, complaints about the activity grade may be made, which will be evaluated by the professor responsible for the subject. If the student does not attend this review, this activity will not be reviewed later.

Without prejudice to other disciplinary measures that may be deemed appropriate, and in accordance with current academic regulations, irregularities committed by a student that may lead to a variation in the grade in an assessable activity will be graded with a zero (0). Assessment activities graded in this way and by this procedure will not be recoverable. If it is necessary to pass any of these assessment activities to pass the subject, this subject will be directly suspended, with no opportunity to recover it in the same course. These irregularities include, among others:

  • total or partial copying of a practice, report, or any other assessment activity;
  • allowing copying;
  • presenting a group work not done in its entirety by the members of the group (applied to all members, not just those who have not worked);
  • unauthorized use of AI (e.g., Copilot, ChatGPT or equivalent) to solve exercises, practices and/or any other assessable activity;
  • presenting as one's own materials prepared by a third party, even if they are translations or adaptations, and in general works with non-original and exclusive elements of the student;
  • having communication devices (such as mobile phones, smart watches, camera pens, etc.) accessible during individual theoretical-practical evaluation tests (exams);
  • talking to classmates during individual theoretical-practical evaluation tests (exams);
  • copying or attempting to copy other students during theoretical-practical evaluation tests (exams);
  • using or attempting to use writings related to the subject during the theoretical-practical evaluation tests (exams), when these have not been explicitly permitted.
In the event of not passing the subject due to any of the assessment activities not reaching the minimum required grade, the numerical grade of the transcript will be the lower value between 4.5 and the weighted average of the grades. With the exceptions that the qualification of "Not Assessable" will be awarded to students who do not participate in any of the assessment activities, and that the numerical grade of the transcript will be the lower value between 3.0 and the weighted average of the grades in the event that the student has committed irregularities in an assessment act (and therefore passing by compensation will not be possible).
 
In future editions of this subject, students who have committed irregularities in an assessment act will not have any of the assessment activities carried out validated.
 
In summary: copying, allowing copying or plagiarism (or attempting to) in any of the assessment activities is equivalent to a FAIL, non-compensable and without validation of parts of the subject in subsequent courses.

Bibliography

  • Documentación MongoDB https://www.mongodb.com/docs/
  • Big Data for Dummies . Judith Hurwitz, Alan Nugent, Fern Halper, Marcia Kaufman. Wiley, 2013
  • Big Data Analytics with Spark and Hadoop, Venkat Ankam, 2016
  • Big-Data Analytics and Cloud Computing: Theory, Algorithms and Applications, Springer, 2016
  • DevOps: A Software Architect's Perpective, Financial Times/Practice Hall, 2015
  • Learning Puppet 4: A Guide to Configuration Management and , O'Reilly Media, 2016
  • Docker Cookbook,  Sebastien Goasguen, O'Reilly Media,  2015
  • Creating Development Environments with Vagrant , packt publishing
  • Scalable Internet Architectures, Theo Schlossnagle, Paperback, 2006
  • The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise Paperback, Jun 2015

Software

MongoDB Atlas

Vagrant

Docker

Java and Python

It is necessary to bring a laptop.


Groups and Languages

Please note that this information is provisional until 30 November 2025. You can check it through this link. To consult the language you will need to enter the CODE of the subject.

Name Group Language Semester Turn
(PAUL) Classroom practices 421 Catalan second semester morning-mixed
(PAUL) Classroom practices 422 Catalan second semester morning-mixed
(PLAB) Practical laboratories 421 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 422 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 423 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 424 Catalan/Spanish second semester morning-mixed
(TE) Theory 420 Catalan second semester morning-mixed