Logo UAB

Software Architecture and Technologies

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

Contact

Name:
Helena Bolta Torrell
Email:
helena.bolta@uab.cat

Teachers

Helena Bolta Torrell
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 second year and "Gestió i administració de base de Dades" from third year.
 
While the vehicular language is Catalan, part of 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

Objectives and Contextualisation

This subject is divided into separate parts. Each part with an specific, actually 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 depeen by themselfs. 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 aims to be very interactive, the contents could be tailored (lengthen or shorten), 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 fields can be another.

 Topic 1. Introduction to Big-Data

The concept of BigData is the name given to sets of data, procedures and applications which, by its volume, its diverse nature and the speed at which they are to be processed exceed capacity on 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:

    • Basic concepts.
    • Structures and plataforms
      • Hadoop, Spark
    • BigData's software engineering
      • Algorithms and patters
      • Models and Data structures
      • Introduction to  IoT in the BigData
    • Data mining / Machine Learning / Deep Learning / Predictive analytics
      • Data Scientists

 

Topic 2. Introduction to the Non Relational Data Bases(NoSQL) and its implementation in MongoDB.

The databases non relational (NoSQL) are the new perspective in the databases. With the exponential growth of the Internet, the volume of data stored has also grown exponentially. These data should be saved, and in certain cases, the relational databases are not the optimal response time. NoSQL databases fits to these cases.
 
MongoDB is one of these NoSQL databases, which is ideal for storing large volumes of data, metadata documents and unstructured information.
 
Contents:
    • Introduction to the No-SQL databses: defintion, characteristics and types
    • MongoDB:
      • Basic concepts
      • Characteristics
      • Introduction to JSON inside MongoDB
      • Operations: insert, import, export, find, updates, deletes, aggregations
      • Implementation in java, python
      • Database design
      • Replica and sharding

Topic 3. 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:

    • Introduction to DevOps
      • Basic concepts
      • Characteristics
      • DevOps inside the Agile metodologies
    • Structures and platforms
    • Cloud computing
    • Infrastructures management
    • Acceptance tests
    • docker, vagrant technologies.

 


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

Classes of theory and problems in conference format, maybe the problems can be interactive. The teacher introduces the theoretical contents and gives materials (books, articles, web pages) that the student must to read, as well as references so that he can then continue his or her learning. To facilitate the exposition of the subjects, the classes of problems and theory are managed in a uniform way.

Practical sessions. At the beginning of the course students will do small groups (2 or 3 members per group, if possible by the capacity of the laboratories). Each topic of the subject has two sessions of laboratory practices. In them, the students will follow a tutorial / statement, as an example of programming on that topic or a work on software tools related to the current topic. Each group of students has to do, prior to the session behind closed doors, a preliminary work on the preparation of laboratory practice or a separate work in line with the topic. The session is used to evaluate the previous work done and complete it or perform a second part with the teacher's face-to-face support. The work is delivered at the end of the day of the practice session or later.

The virtual platform for communication is email and Microsoft Teams if required.

This subject, among other objectives, has to briefly introduce the student into modern concepts and technologies in part from a personal work not only of 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 course.

Within this, and to cover certain transversal competences (T02.05-Take own decisions, T06.03 Generate innovative and competitive proposals in the professional activity and T06.04 Manage information by incorporating critically the innovations of the professional field itself , and analyze the trends of the future), the practices of the subject will deal with the exposed topics, where based on a statement, the students will have to demonstrate their capacity to carry out the explained concepts generating a proposal of solution using the Technologyanalyzed in each case, and generating a report apart from the deliverables requested in each case. The report must contain, among others, 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 practices will be used to develop the knowledge acquired in each subject and to perform a work based on the competencies exposed.

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 50% 0 0 2, 1, 3, 5, 4
Individual assessment 50% 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:

  • 50% individual assessment through a written test of that part,
  • 50% 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.

 

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

In the case of failing any of the written tests, there is a recovery test at end of the semester. In case of failing any of the practical, you should do an individual practicum that should be delivered the day of the recovery test. If the validation part of the test is failed, you should also do this individual practicum. You should be aware that there could be little time from the final test to the recovery test.

The dates of continuous evaluation and delivery of works will be published on the virtual campus and may be subject to scheduling changes for reasons of adaptation to possible incidents.

In the case of failing only one of the three topics, and with a minimum of 3 in theory and 5 in practices in the failed subject, this failed topic could be convalidable with a fixed final grade of 4. To be able to validate the subject, the rest of the two topics must have a minimum mark  of 6.


Bibliography

  • NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Pramod J. Sadalage , Martin Fowler. Addison-wesley, 2013.
  • MongoDB: The Definitive Guide.  Kristina Chodorow . O'Really , 2013.
  • 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 o MongoDB Atlas


Language list

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 second semester morning-mixed
(PLAB) Practical laboratories 422 Catalan second semester morning-mixed
(PLAB) Practical laboratories 423 Catalan second semester morning-mixed
(PLAB) Practical laboratories 424 Catalan second semester morning-mixed
(TE) Theory 420 Catalan second semester morning-mixed