Logo UAB

Fonaments d'Enginyeria del Software

Codi: 102708 Crèdits: 3
2024/2025
Titulació Tipus Curs
2500895 Enginyeria Electrònica de Telecomunicació OB 1
2500898 Enginyeria de Sistemes de Telecomunicació OB 1

Professor/a de contacte

Nom:
Daniel Ponsa Mussarra
Correu electrònic:
daniel.ponsa@uab.cat

Idiomes dels grups

Podeu consultar aquesta informació al final del document.


Prerequisits

L'assignatura no té prerequisits.

L'assignatura es sustenta en coneixements bàsics de programació en C. Cal portar al dia doncs el temari sobre programació en C donat a l'assignatura Fonaments d'Informàtica.


Objectius

L'assignatura correspon a una matèria bàsica d'introducció als fonaments de l'enginyeria del software, a l'anàlisi i disseny orientat a objecte, i a la programació orientada a objecte.

Els objectius formatius bàsics de l'assignatura són:

  • Introduir l'alumne en els conceptes clau de l'enginyeria del software, veient-ne les singularitats i diferències respecte l'enginyeria civil.
  • Introduir els conceptes clau respecte l'anàlisi i disseny de software orientat a objecte.
  • Aprendre un llenguatge de programació orientat a objecte. Específicament el C++.

Competències

    Enginyeria Electrònica de Telecomunicació
  • Aprendre nous mètodes i tecnologies a partir dels coneixements bàsics i dels tecnològics, i tenir versatilitat per adaptar-se a noves situacions
  • Hàbits de pensament
  • Hàbits de treball personal
  • Treball en equip
    Enginyeria de Sistemes de Telecomunicació
  • Aprendre nous mètodes i tecnologies a partir dels coneixements bàsics i dels tecnològics, i tenir versatilitat per adaptar-se a noves situacions
  • Aprendre nous mètodes i tecnologies a partir dels coneixements bàsics i dels tecnològics, i tenir versatilitat per adaptar-se a noves situacions.
  • Hàbits de pensament.
  • Hàbits de treball personal
  • Treball en equip

Resultats d'aprenentatge

  1. Aplicar els fonaments de l'enginyeria del programari al desenvolupament d'aplicacions de programari.
  2. Avaluar de manera crítica el treball dut a terme.
  3. Conèixer i utilitzar els fonaments de la programació en xarxes, sistemes i serveis de telecomunicació.
  4. Desenvolupar el pensament científic.
  5. Desenvolupar estratègies d'aprenentatge autònom.
  6. Desenvolupar la capacitat d'anàlisi i de síntesi.
  7. Gestionar el temps i els recursos disponibles.
  8. Gestionar el temps i els recursos disponibles. Treballar de forma organitzada.
  9. Treballar cooperativament.
  10. Treballar de manera autònoma.
  11. Utilitzar els fonaments de l'arquitectura i la metodologia de disseny, verificació i validació del programari.

Continguts

A. INTRODUCCIÓ A L'ENGINYERIA DEL SOFTWARE
A1. Introducció: Cal una enginyeria del software ? Conceptes Bàsics

  • Presentació de l'assignatura.
  • Enginyeria del software vs Enginyeria Civil.
  • Etapes del cicle de desenvolupament del software.
  • Processos de desenvolupament del software.
  • Planificació de projectes Software.

A3. Anàlisi i Disseny orientat a objectes

  • Modularització efectiva d'un software.
  • Disseny orientat a objecte.
  • UML: Diagrama de Classes.

B. PROGRAMACIÓ ORIENTADA A OBJECTES EN C++
B1. Classes, Atributs i Mètodes

  • Declaració i definició dels elements bàsics.
  • Classe vs Objecte.
  • Accessibilitat: atributs i mètodes públics i privats.
  • Sobrecàrrega de funcions

B2. Enumerats. Mecanisme de crides a funció. Memòria Dinàmica

  • Enumerats.
  • Mecanisme de crides a funció.
  • Funcions inline
  • Pas per referència / Pas per referència constant.
  • Reserva/Alliberament de memòria.
  • Aritmètica d'apuntadorss

B3. Constructors i Destructors. Operadors

  • Tipus de constructors.
  • Destructors.
  • Operadors binaris.
  • L'operador d'assignació.
  • Objectes i l'apuntador this.
  • El concepte friend.
  • Streams. Operadors >> i <<.

B4. Herència, Polimorfisme i Genericitat

  • Jerarquia. Generalització vs Especificació.
  • Accesibilitat a atributs i mètodes 'protegits'.
  • Lligam estàtic i dinàmic (Funcions virtuals).
  • Funcions template.
  • Classes template.

Activitats formatives i Metodologia

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes de Problemes 6 0,24 1, 2, 4, 6, 11, 10
Classes de Teoria 12 0,48 4, 6, 3, 11
Proves d'Avaluació 3 0,12 4, 6, 3, 8, 11
Pràctiques 6 0,24 1, 2, 5, 6, 8, 11, 10, 9
Tipus: Supervisades      
Preparació de les Sessions de Pràctiques 15 0,6 1, 4, 7, 8, 10, 9
Ressolució de Problemes Fora de l'Aula 8 0,32 1, 5, 6, 3, 7, 10
Tipus: Autònomes      
Estudi 23 0,92 5, 3, 10
Tutories 2 0,08 5, 10

Les diferents activitats que es duran a terme en l'assignatura s'organitzen de la següent manera:

Classes de teoria:

En la part A del temari (Introducció a l’Enginyeria del Software) s’imparteix docència de manera tradicional. S'exposen els conceptes bàsics de l'assignatura i es donen indicacions de com completar i aprofundir en aquest continguts. En la part B del temari (Programació orientada a objectes en C++) s’utilitza una metodologia basada en “aprendre fent” (learning by doing), desenvolupant programes on es posen en pràctica aspectes de programació introduïts prèviament amb el suport de vídeos i activitats associades.

Classes de problemes:

En aquestes classes s’aprofundeix  en el temari treballat a les classes de teoria, reforçant així la seva assimilació. Es resolen problemes i es discuteixen casos pràctics. Amb les activitats plantejades es promou la capacitat d'anàlisi i síntesi, el raonament crític, i s'entrena l'estudiant en la resolució de problemes mitjançant el desenvolupament de programes.

Pràctiques:

Durant el curs es realitza una pràctica al llarg de diferents sessions. Sempre que sigui possible els alumnes treballaran en grups de dues persones.
La pràctica consistirà en el desenvolupament d'un programa en C++ que implementi una aplicació demanada.
Per desenvolupar el programa els grups treballaran de forma autònoma. Les sessions de pràctiques es dedicaran principalment a resoldre dubtes amb el professor, i a lliurar fites del programa a desenvolupar, per la seva posterior avaluació. Els grups hauran d'explicar la feina feta al professor, i aquest plantejarà qüestions als membres del grup per valorar la contribució de cadascú.

Consideracions generals

Per disseminar informació a l'estudiantat s'utilitzarà la plataforma Campus Virtual. Les dates d'avaluació continuada i lliurament de treballs es publicaran a través d'aquest mitjà, i poden estar subjectes a possibles canvis de programació per motius d'adaptació a possibles incidències.  Sempre s'informarà mitjançant el Campus Virtual sobre aquests possibles canvis ja que aquesta és la plataforma d'intercanvi d'informació entre el professorat i l'estudiantat.

Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, per a la complementació per part de l'alumnat de les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura/mòdul.


Avaluació

Activitats d'avaluació continuada

Títol Pes Hores ECTS Resultats d'aprenentatge
Prova d'Avaluació ExP1 18% 0 0 2, 5, 4, 6, 3, 7, 8, 11, 10
Prova d'Avaluació ExP2 42% 0 0 1, 2, 5, 4, 6, 3, 7, 8, 11, 10
Pràctica 30% 0 0 1, 5, 3, 7, 8, 11, 10, 9
Resolució de Problemes i Activitats Proposades 10% 0 0 1, 2, 5, 4, 6, 11, 10

a) Procés i activitats d'avaluació programades

L'avaluació de l'assignatura es durà a terme de manera contínua a partir de les evidències d'aprenentatge recollides en els següents processos:

  • [E1]. Realització de proves escrites individuals (exàmens).
  • [E2]. Resolució i entrega de qüestionaris i exercicis plantejats a les sessions de teoria i problemes, de forma individual.
  • [E3]. Realització d'una pràctica, avaluada a partir de diferents activitats i lliuraments, en grup.

L'assignatura consta de les activitats d'avaluació següents, cadascuna avaluada amb una nota entre 0 i 10 (ambdós inclosos):

  • [E1]-ExP1, examen parcial 1, 18% sobre la qualificació final.
  • [E1]-ExP2, examen parcial 2, 42% sobre la qualificació final.
  • [E2]-Prob, resolució d'exercicis plantejats a les sessions de teoria i problemes, 10% sobre la qualificació final.
  • [E3]-Prac, pràctica de programació en C++, 30% sobre la qualificació final.

Per poder optar a aprovar l'assignatura mitjançant l'avaluació continuada, caldrà treure una nota igual o superior a 5 a la següent expressió:

  • (0,3*Nota[E1]-ExP1) + (0,7*Nota[E1]-ExP2) + (0,1*Nota[E2]-Prob)

En el cas de superar la condició per aprovar, la qualificació final de l'assignatura es calcularà a partir de la mitjana ponderada de les notes, emprant l'expressió:

  • (0,18*Nota[E1]-ExP1) + (0,42*Nota[E1]-ExP2) + (0,1*Nota[E2]-Prob) + (0,3*Nota[E3]-Prac)

En el cas de NO superar la condició per aprovar, la qualificació final de l'assignaturà serà el valor menor entre 4.5 i la mitjana ponderada de les notes, emprant l'expressió:

  • min(4.5, ((0,18*Nota[E1]-ExP1) + (0,42*Nota[E1]-ExP2) + (0,1*Nota[E2]-Prob) + (0,3*Nota[E3]-Prac)))

Cal tenir en compte que:

  • Els exercicis que integren l'activitat [E2]-Prob s'hauran de lliurar dins un termini establert, i s'avaluaran amb una nota entre 0 i 10 (ambdós inclosos). Els exercicis no lliurats dins el seu termini s'avaluaran amb una nota de 0, i no es podran recuperar.
  • L'activitat [E3]-Prac s'avaluarà en base a diferents subactivitats plantejades, que tindran un termini de lliurament establert. Cada subactivitat s'avaluarà amb una nota entre 0 i 10 (ambdós inclosos). Les subactivitats no realitzades o lliurades fora del seu termini s'avaluaran amb una nota de 0, i no es podran recuperar.

En cas d'irregularitats en les activitats avaluatives, s'aplicarà el que es detalla a l'apartat f).

És important tenir en compte que no es realitzaran activitats d’avaluació en una data o moment diferent a l'establert, llevat de causes justificades, degudament informades amb antelació al professorat.

b) Programació d'activitats d'avaluació

El calendari de les diferents activitats d'avaluació es detallarà al Campus virtual, a l’aula Moodle de l’assignatura. Les dates de realització de les proves escrites (activitats [E1]-ExP1 i [E1]-ExP2) també es faran públiques a la web de l'Escola d'Enginyeria, a l'apartat d'exàmens.

c) Procés de recuperació

Les úniques activitats d'avaluació recuperables són les proves escrites [E1]-ExP1 i [E1]-ExP2.

L'estudiant es pot presentar a recuperar o millorar les notes d'aquestes proves (una d'elles, o totes dues)  mitjançant una prova escrita, sempre que s'hagi presentat a un conjunt d'activitats que representin un mínim de dues terceres parts de la qualificació total de l'assignatura.

De cara ala qualificació final de l'assignatura,la nota que s'obtingui a la recuperació substituirà la nota de la prova corresponent realitzada dins l'avaluació continua.

D'acord amb la coordinació del Grau i la direcció de l'Escola d'Enginyeria les activitats següents no es podran recuperar:

  • [E2]-Prob, 10% sobre la qualificació final.
  • [E3]-Prac, 30% sobre la qualificaciófinal.

d) Procediment de revisió de les qualificacions

Per les activitats d'avaluació basades en proves escrites ([E1]-ExP1 i [E1]-ExP2) s'establirà un mecanisme de reserva de data i hora de revisió, en la que l'estudiant podrà revisar l'activitat amb el professorat. En aquest context, es podran fer reclamacions sobre la nota de l'activitat, que seran avaluades pel professorat responsable de l'assignatura. Així mateix, es podrà concertar amb el professorat responsable de l'assignatura la revisió de la resta d'activitats d'avaluació fins a una setmana abans de la prova de recuperació.

e) Qualificacions especials

Si l'alumne no ha realitzat cap de les proves [E1]-ExP1 i [E1]-ExP2 se li assignarà la nota de "No Avaluable". Cal recordar però que, segons normativa vigent, les qualificacions de "No Avaluable" exhaureixen també convocatòria.

Només podran obtenir una MH els estudiants que tinguin una nota igual o superior als 9 punts. Com que el nombre de MH no pot superar el 5% dels estudiants matriculats, es concediran als estudiants que tinguin les notes finals més altes.En cas d’empat, es tindran en compte els resultats de les proves parcials.


f) Irregularitats per part de l'estudiant, còpia i plagi.

Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, es qualificaran amb un zero les irregularitats comeses per l'estudiant que puguin conduir a una variació de la qualificació d'un acte d'avaluació. Per tant, la còpia, el plagi, l'engany, deixar copiar, l’ús no autoritzat de la IA (p. ex, Copilot, ChatGPT o equivalents), etc. en qualsevol de les activitats d'avaluació implicarà suspendre-la amb un zero.

g) Avaluació dels estudiants repetidors

A partir de la segona matrícula, l'estudiant repetidor pot sol·licitar convalidar l'avaluació de les activitats a [E3]-Prac, prenent la nota obtinguda en un curs previ sempre que la nota sigui igual o superior a 5. Per poder optar a aquesta avaluació diferenciada, l'estudiant repetidor ho ha de demanar al professorat mitjançant un correu electrònic.

h) Avaluació única

Aquesta assignatura no preveu el sistema d’avaluació única.


Bibliografia

  • 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.

 


Programari

Per desenvolupar els programes a realitzar al llarg del curs s'utilitzarà l'entorn de desenvolupament integrat 'Visual Studio Code'.  Això no obstant, l'alumnat pot fer servir altres entorns sempre que es facin responsables de la seva formació en com s'instal·len i usen.


Llista d'idiomes

Nom Grup Idioma Semestre Torn
(PAUL) Pràctiques d'aula 311 Català segon quadrimestre matí-mixt
(PAUL) Pràctiques d'aula 312 Català segon quadrimestre matí-mixt
(PAUL) Pràctiques d'aula 331 Català segon quadrimestre matí-mixt
(PAUL) Pràctiques d'aula 332 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 310 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 311 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 312 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 313 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 314 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 315 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 316 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 317 Català segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 318 Català segon quadrimestre matí-mixt
(TE) Teoria 31 Català segon quadrimestre matí-mixt
(TE) Teoria 33 Català segon quadrimestre matí-mixt