Logo UAB

Foundations of Software Engineering

Code: 102708 ECTS Credits: 3
2024/2025
Degree Type Year
2500895 Electronic Engineering for Telecommunication OB 1
2500898 Telecommunication Systems Engineering OB 1

Contact

Name:
Daniel Ponsa Mussarra
Email:
daniel.ponsa@uab.cat

Teaching groups languages

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


Prerequisites

The subject has no prerequisites.
The subject is based on basic knowledge in C programming. Hence, it is recommended to review the C programming lessons given in the subject 'Fonaments d'Informàtica'.


Objectives and Contextualisation

The subject provides an introduction to the foundations of software engineering, to object-oriented analysis and design, and to object-oriented programming.

The basic training objectives of the subject are:

  • Introducind the student in the key concepts of software engineering, seeing the singularities and differences with regard to civil engineering.
  • Introducing the key concepts regarding the analysis and design of object-oriented software.
  • Learning an object-oriented programming language. Specifically C ++.

Competences

    Electronic Engineering for Telecommunication
  • Develop personal work habits.
  • Develop thinking habits.
  • Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.
  • Work in a team.
    Telecommunication Systems Engineering
  • Develop personal work habits.
  • Develop thinking habits.
  • Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.
  • Work in a team.

Learning Outcomes

  1. Apply the basics of software engineering to the development of software applications.
  2. Critically evaluate the work done.
  3. Develop independent learning strategies.
  4. Develop scientific thinking.
  5. Develop the capacity for analysis and synthesis.
  6. Know and use the basics of programming in telecommunication networks, systems and services.
  7. Manage available time and resources.
  8. Manage available time and resources. Work in an organised manner.
  9. Use the basics of the architecture and methodology of design, verification and validation of software.
  10. Work autonomously.
  11. Work cooperatively.

Content

A. INTRODUCTION TO SOFTWARE ENGINEERING
A1. Introduction: Is software engineering required? Basic Concepts

  • Subject presentation.
  • Software engineering vs. Civil Engineering.
  • Software development cycle stages.
  • Software development processes.
  • Software Project planning.

A2. Analysis and Design oriented to objects

  • Effective modularization of a software.
  • Object-oriented design.
  • UML: Class Diagram.

B. OBJECT ORIENTED PROGRAMMING IN C++
B1. Classes, Attributes, and Methods

  • Declaration and definition of the basic elements.
  • Class vs. Object.
  • Accessibility: attributes and methods public and private.
  • Function overloading

B2. Enumerates. Function call mechanism. Dynamic Memory

  • Enumerates
  • Function call mechanism.
  • Inline features
  • Passing arguments by reference / constant reference.
  • Allocation /dealocation of memory.
  • Pointers arithmetic.

B3. Constructors and Destructors. Operators

  • Types of constructors.
  • Destructors.
  • Binary operators.
  • The assignment operator.
  • Objects and the this pointer.
  • The friend concept.
  • Streams. Operators >> and <<.

B4. Inheritance, Polymorphism and Genericity

  • Hierarchy. Generalization vs. Specification.
  • Accessibility to 'protected' attributes and methods.
  • Static and dynamic binding (Virtual functions).
  • Template functions.
  • Template classes.

Activities and Methodology

Title Hours ECTS Learning Outcomes
Type: Directed      
Exams 3 0.12 4, 5, 6, 8, 9
Exercise-based classes 6 0.24 1, 2, 4, 5, 9, 10
Practical work sessions 6 0.24 1, 2, 3, 5, 8, 9, 10, 11
Theoretical classes / lectures 12 0.48 4, 5, 6, 9
Type: Supervised      
Preparing practical assignments 15 0.6 1, 4, 7, 8, 10, 11
Resolution of problems out of the classroom 8 0.32 1, 3, 5, 6, 7, 10
Type: Autonomous      
Study 23 0.92 3, 6, 10
Tutoring and consultations 2 0.08 3, 10

The different activities that will be carried out in the subject are organized as follows:

Theory Sessions:
Part A of the curriculum (Introduction to Software Engineering) is taught in the traditional way. The basic concepts of the subject are exposed and indications are given on how to complete and deepen in this content. Part B of the curriculum (object-oriented programming in C ++) uses a methodology based on "learning by doing", developing programs where aspects of programming previously introduced with the support of videos and associated activities are put into practice.


Problem Sessions:
In these classes, the subjects worked on in the theory classes are deepened, thus reinforcing their assimilation. Problems are solved and case studies are discussed. The proposed activities promote the capacity for analysis and synthesis, critical reasoning, and train the student in problem solving through the development of programs.

Practical work Sessions:
During the course a practice is carried out throughout different sessions. Whenever possible, students will work in groups of two people.
The practice will consist in the development of a C++ program that implements a requested application.
To develop the program, the groups will work autonomously. The practice sessions will be devoted mainly to solve doubts with the teacher, and deliver milestones of the program to be developed, for further evaluation. The groups should explain the work done to the teacher, and this will raise issues to the group members to assess the contribution of each one.

General considerations
The 'Campus virtual' platform will be used to disseminate information to students. The dates of continuous evaluation and delivery of works will be published through this medium, and may be subject to possible programming changes for reasons of adaptation to possible incidents. 'Campus virtual' will be used to inform about these possible changes, since this is the platform for the exchange of information between the teaching staff and the students.

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
Evaluation test ExP1 18% 0 0 2, 3, 4, 5, 6, 7, 8, 9, 10
Evaluation test ExP2 42% 0 0 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Practical work 30% 0 0 1, 3, 6, 7, 8, 9, 10, 11
Resolution of Proposed Problems and Activities 10% 0 0 1, 2, 3, 4, 5, 9, 10

a) Processes and scheduled evaluation activities

The evaluation of the subject will be carried out continuously based on the learning evidences collected in the following processes:

  •  [E1]. Carrying out individual written tests (exams).
  •  [E2]. Resolution and delivery of questionnaires and exercises proposed in the sessions of theory and problems, individually.
  •  [E3]. Completion of a practical work, evaluated from different activities and deliveries, in groups.

The subject consists of the following assessment activities, each evaluated with a score between 0 and 10 (inclusive):

  •  [E1]-ExP1, partial exam 1, 18% on the final grade.
  •  [E1]-ExP2, partial exam 2, 42% on the final grade.
  •  [E2]-Prob, exercises to be solved in the sessions of theory and problems, 10% on the final grade.
  •  [E3]-Prac, programming practice in C++, 30% of the final grade.

In order to be able to pass the subject through continuous evaluation, a grade equal of bigger than 5 must be drawn in the following expression:

  •  (0.3 * Grade [E1]-ExP1) + (0.7 * Grade [E1]-ExP2) + (0.1 * Grade [E2]-Prob)

In the case of passing the condition to pass, the final mark of the subject will be calculated from the weighted average of the grades, using the expression:

  •  (0.18 * Grade [E1] -ExP1) + (0.42 * Grade [E1]-ExP2) + (0.1 * Grade [E2] -Prob) + (0.3 * Grade [E3]-Prac)

In the case of NOT passing the condition to pass, the student's final grade will be the lower value between 4.5 and the weighted average of the grades, using the expression:

  •  min(4.5, ((0.18 * Grade [E1] -ExP1) + (0.42 * Grade [E1]-ExP2) + (0.1 * Grade [E2] -Prob) + (0.3 * Grade [E3]-Prac)))

Keep in mind that:

  • Exercises in [E2]-Prob must be delivered within an established period, and will be evaluated with ascore between 0 and 10 (both inclusive). Exercises not delivered within their term will be evaluated with a score of 0, and can not be recovered.
  • Activity [E3]-Prac will be evaluated based on different subactivities proposed, with a delivery deadline fixed. Each sub-activity will be evaluated with a score between 0 and 10 (both inclusive). Subactivities notmade or delivered out of their termwill be evaluated with a note of 0, and can not be recovered.

In case of irregularities in the evaluation activities, the one detailed in section f) will be applied.

It is important to bear in mind that evaluation activities will not be carried out on a date or time different from the established one, except for justified causes, duly informed in advance to the teaching staff.

b) Programming of evaluation activities

The scheduling of the different assessment activities will be detailed in the Virtual Campus, in the Moodle classroom of the subject. The dates of the written tests (activities [E1]-ExP1 and [E1]-ExP2) will also be made public on the website of the School of Engineering, in the section of exams.

c) Recovery process

The only recoverable evaluation activities are the written tests [E1]-ExP1 and [E1]-ExP2.

The student has the option to improve the grades of these tests (one of them, or both) through a written test,  provided he/she has been evaluated in a set of activities that represent a minimum of two thirds of the total grade of the subject.

In order to compute the final grade of the subject, the mark obtained in the recovery exam will replace the one of the corresponding exam carried out in the continuous assessment.

In accordance with the coordination of the Degree and the direction of the School of Engineering the following activities can not be recovered:

  • [E2]-Prob, 10% on the final grade.
  • [E3]-Prac, 30% on the final grade.

d) Procedure for the review of qualifications

For assessment activities based on written tests ([E1]-ExP1 and [E1]-ExP2), a procedure for booking a revision date and time will be established in which the student will be able to review the activity with the teaching staff. In this context, claims can be made about the activity grade, which will be evaluated by the teachers responsible for the subject. Likewise,itis possible to arrange with the teaching staff the review of the rest of the assessment activities up to one week before the recovery exam.

e) Special qualifications
If the student has not performed any of the tests [E1] -ExP1 and [E1] -ExP2 the "Non-assessable" grade will be assigned. It must be remarked that according to current regulations "Non-assessable" qualifications also exhaust convocation.

In order to pass the course with honours, the final grade must be a 9.0 or higher. Because the number of students with this distinction cannot exceed 5% of the number of students enrolled in the course, this distinction will be awarded to whoever has the highest final grade. In case of a tie, partial-test results will be taken into consideration.


f) Irregularities by the student, copy and plagiarism.

Notwithstanding other disciplinary measures deemed appropriate, assessment activities will receive a zero whenever a student commits academic irregularities that may alter such assessment. Therefore, copying, plagiarizing, cheating, unauthorized use of AI (eg Copilot, ChatGPT or equivalent),  ... in any of the assessment activities will imply suspending it with a zero.

g) Evaluation of repeater students

From the second enrollment, repeater students may request to validate the evaluation of the activities in [E3]-Prac, taking the grade obtained in a previous course as long as the grade is equal to or greater than 5. In order to be able to opt for this differentiated evaluation, repeater studentsmust ask the faculty through an email.

h) Single evaluation

This subject does not provide for the single assessment system.


Bibliography

  • R.S. Pressman, Ingeniería del software, un enfoque práctico. Mc Grah-Hill, 9a. edició , 2021.
  • A. Álvarez García, R. de las Heras del Dedo, C. Lasa Gómez, Métodos Ágiles y Scrum. Anaya Multimedia, 2011.
  • T.A. Pender, UML Weekeng Crash Course, Wiley Publishing, Inc. 2002.
  • P. Bustamante, I. Aguinaga, M. Aybar, L. Olaizola, I. Lazacano, Aprenda C++ Básico como si estuviera en primero, Universidad de Navarra, 2004.
  • P. Bustamante, I. Aguinaga, M. Aybar, L. Olaizola, I. Lazacano, Aprenda C++ Avanzado como si estuviera en primero, Universidad de Navarra, 2004.

Software

To develop the programs to be carried out throughout the course, the integrated development environment 'Visual Studio Code' will be used. However, students can use other environments as long as they are responsible for their training in how they are installed and used.


Language list

Name Group Language Semester Turn
(PAUL) Classroom practices 311 Catalan second semester morning-mixed
(PAUL) Classroom practices 312 Catalan second semester morning-mixed
(PAUL) Classroom practices 331 Catalan second semester morning-mixed
(PAUL) Classroom practices 332 Catalan second semester morning-mixed
(PLAB) Practical laboratories 310 Catalan second semester morning-mixed
(PLAB) Practical laboratories 311 Catalan second semester morning-mixed
(PLAB) Practical laboratories 312 Catalan second semester morning-mixed
(PLAB) Practical laboratories 313 Catalan second semester morning-mixed
(PLAB) Practical laboratories 314 Catalan second semester morning-mixed
(PLAB) Practical laboratories 315 Catalan second semester morning-mixed
(PLAB) Practical laboratories 316 Catalan second semester morning-mixed
(PLAB) Practical laboratories 317 Catalan second semester morning-mixed
(PLAB) Practical laboratories 318 Catalan second semester morning-mixed
(TE) Theory 31 Catalan second semester morning-mixed
(TE) Theory 33 Catalan second semester morning-mixed