Informació general


Tipus d'assignatura: Obligatòria

Coordinador:

Trimestre: Primer trimestre

Crèdits: 4

Professorat: 

Eugeni Fernández González
Josep Roure Alcobé 
Eduard De Bru De Sala Castells 
Josep Roure Alcobé 

Competències


Competències bàsiques
  • B2_Que els estudiants sàpiguen aplicar els seus coneixements a la seva feina o vocació d'una forma professional i tinguin les comptències que demostren mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi

  • B5_Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia

Competències específiques
  • EFB4_Coneixements bàsics sobre l'ús i programació dels ordinadors, sistemes operatius, bases de dades i programes informàtics amb aplicació a l'enginyeria

  • EIS1_Capacitat per a desenvolupar, mantenir i avaluar serveis i sistemes software que satisfacin tots els requisits de l'usuari i que es comportin de forma fiable i eficient, siguin assequibles de desenvolupar i mantenir i compleixin normes de qualitat, aplicant les teories, principis, mètodes i pràctiques de l'enginyeria del software

  • EIS4_Capacitat d'identificar i analitzar problemes i dissenyar, desenvolupar, implementar, verificar i documentar solucions software sobre la base d'un coneixement adequat de les teories, models i tècniques actuals

Competències transversals
  • T1_Que els estudiants coneixin un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit, d'acord amb les necessitats que tindran les graduades i els graduats a cada titulació

  • T2_Que els estudiants tinguin capacitat per a treballar com a membres d'un equip interidisciplinar ja sigui com un membres més, o realitzant tasques de direcció amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos tenint en compte els recursos disponibles

Descripció


L'assignatura d'Enginyeria del Software 1 del primer trimestre de segon curs, és la primera de les tres assignatures anomenades Enginyeria del Software. La seva impartició està pensada en dedicar 3 ECTS a la part de teoria i 1 ECTS a practicar els conceptes exposats a teoria.

Aquesta assignatura serà la que introduirà el concepte d'Enginyeria del Software, fent èmfasi en la capacitat dels enginyers per :

1.- Entendre els requeriments que la realitat ens presenta.

2.-"Dividir la complexitat" que expressen els requeriments captats.

3.- Analitzar i modelar correctament el sistema objctiu

4.- Començar amb le primeres nocions de disseny per implantar codi font.

Aquesta assignatura disposa de recursos metodològics i digitals per fer possible la seva continuïtat en modalitat no presencial en el cas de ser necessari per motius relacionats amb la Covid-19. D'aquesta forma s'assegurarà l'assoliment dels mateixos coneixements i competències que s'especifiquen en aquest pla docent.

 

 

 

Resultats d'aprenentatge


  • Utilitzar de forma apropiada teories, procediments i eines en el desenvolupament professional de l'enginyeria informàtica en tots els seus àmbits (especificació, disseny, implementació, desplegament -implantación- i avaluació de productes) de manera que es demostri la comprensió dels compromisos adoptats en les decisions de disseny.
  • Demostrar coneixement de la dimensió ètica a l'empresa: la responsabilitat social i corporativa en general i, en particular, les responsabilitats civils i professionals de l'enginyer en informàtica.
  • Usar les eines d'un entorn de desenvolupament de programari per a crear i desenvolupar aplicacions.
  • Demostrar coneixement i saber aplicar les tècniques apropiades per a modelar i analitzar els diferents tipus de decisions.
  • Controlar la qualitat i dissenyar proves en la producció de programari.
  • Definir i gestionar els requisits d'un sistema software.

      A un nivell mes concret, en acabar l'assignatura els estudiants han de ser capaços de:

  • RA1 - Entendre les etapes que requereix la construcció de software partint de l'observació de la realitat (inclós lo que demana l'usuari)
  • RA2 - Entendre perfectament perquè es necessari dividir la complexitat per aboradar qualsevol projecte d'Enginyeria de Software.
  • RA3 - Entendre els requisits d'un sistema de software.
  • RA4 - Reconèixer les propietats desitjables de les especificacions.
  • RA5 - Fer l'anàlisi del sistema de forma correcta.
  • RA6 - Modelar el sistema amb la notació UML.
  • RA7 - Crear el model del comportament d'un sistema en notació UML.
  • RA8 - Transformar el model d'anàlisi en un model de disseny en notació UML.
  • RA9 - Aplicar patrons de disseny bàsics (GRASP).

Metodologia de treball


Tots els conceptes teòrics de la matèria es tractaran en les classes de teoria (grups grans) de l’assignatura. En aquestes classes s'introdueixen els conceptes bàsics de l’anàlisi i disseny del software mostrant la seva aplicació amb exercicis resolts pel docent. Es recomana que abans de cada sessió els estudiants es  llegeixin el  material publicat a  la  plataforma virtual. A  les  classes es  demanarà la participació dels  estudiants de  manera  individual o  en  grup, per  resoldre  diferents  problemes proposats amb o sense anticipació.  Aquestes activitats, que per la seva naturalesa d'optativitat i brevetat  no  apareixen  reflectides  en  aquest  document, serviran  a  l'estudiant  com  a  instrument d'autoavaluació del assoliment dels continguts de la matèria i podran ser utilitzades per part del docent per a prendre decisions sobre la qualificació final de l'estudiant però, mai  en detriment de la qualificació numèrica calculada segons el sistema de qualificació abans indicat.

Els conceptes de caire més pràctic seran treballats en grups petits (de laboratori) on es presenten treballs de complexitat mitjana, que requereixen l'aplicació dels coneixements adquirits en les classes més teòriques. En aquestes sessions es donaran les eines escaients per a resoldre les activitats programades però s'espera que aquestes s'allarguin des del punt de vista temporal, més enllà de les hores de laboratori i que, en conseqüència, els estudiants les hagin de finalitzar durant el temps d'aprenentatge autònom.

 

Normes de realització de les activitats

Per a cada activitat, els docents informaran de les normes i condicions particulars que les regeixin.

Les  activitats unipersonals pressuposen el  compromís de  l'estudiant de  realitzar-les de  manera individual. Es consideraran suspeses totes aquelles activitats en què l'estudiant no s'ajusti a aquest compromís, independentment del seu paper (origen o destí).

Igualment, les activitats que s'hagin de realitzar en grups pressuposen el compromís per part dels estudiants que l'integren de realitzar-les en el si del grup. Es consideraran suspeses totes aquelles activitat en que el grup no hagi respectat aquest compromís amb independència del seu paper (origen o destí).

En  les  activitats  realitzades  en  grup  el  docent  pot,  en  base  a  la  informació  de  què  disposi, personalitzar la qualificació per a cada integrant del grup.

Qualsevol activitat no lliurada es considerarà puntuada amb zero punts.

És potestatiu dels docents acceptar o no lliuraments fora dels terminis que s'indiquin. En el cas que aquests lliuraments fora de  termini s'acceptin, és  potestatiu del  docent decidir si  aplica  alguna penalització i la quantia d'aquesta.

 

Aquest curs, a causa de la situació generada per la COVID, algunes de les sessions de grup gran es faran en format híbrid: presencial i en línia (via streaming). Això permetrà que els estudiants puguin anar rotativament a les classes presencials, respectant el màxim d'estudiants per aula que imposen les mesures de distanciament. Quan no els toqui sessió presencial podran seguir la classe en línia des de casa.

Pel que fa a les sessions de pràctiques a espais més reduïts (com laboratoris, estudis o plató), si s'escau es treballarà simultàniament en diversos espais per tal de garantir que es compleixen les condicions establertes pels protocols de seguretat.

Continguts


1. Introducció a l'Enginyeria del Software

1.1 Què és l'enginyeria del software.

1.2 Característiques particulars del software.

1.3 Perquè cal fer models,

1.4 Diferents processos de software

1.5 Procés Software Iteratiu.

1.6 Enginyeria del Software basada en UML

1.7 Eines de modelatge UML

2. Especificació i requeriments del software

2.1 Especificació i abast de l'aplicació.

2.2 Definició, qualitats i tipus de requeriments.

2.3 Divissió de la complexitat.

2.4 Un mètode per captar requeriments.

2.5 Els Casos d’ús com a eina d’anàlisi

2.6 Estudi dels Casos d'ús.

3. Model del domini

3.1 El model del domini

3.2 Casos d'ús com a part del model del domini.

3.3 Diagrama d’estructures conceptuals.

3.4 Classes, associacions i atributs.

3.5 Agregació i composició.

3.6 Classe associativa.

3.7 Jerarquia de classes.

3.8 Guies de modelat.

 4. Model de disseny

4.1 Del model del domini al model de disseny.

4.2 Model de comportament: diagrames d'interacció.

4.3 Model de comportament: diagrames de seqüència

4.4 Diagrames de classes de disseny.

4.5 Patrons d'assignació de responsabilitats (GRASP)

 

5. Model d'Implementació

5.1 Del disseny a la implementació.

5.2 Codificació de les classes a partir del diagrama de classes de disseny.

5.3 Messures de qualitat del codi font (complexitat ciclomàtica )

5.4 Deducció de mètodes a partir dels diagrames d'interacció.

5.5 Classes contenidores

5.6 Ordre d'implementació.

Activitats d'aprenentatge


CRITERI GENERAL D'AVALUACIÓ

Per tal de superar les activitats avaluatives que es oproposen a cintinuació , els estudiants hauran de demostrar

  • Que han adquirit els coneixements teòrics relatius als continguts de l’assignatura i que la seva comprensió els permet de portar-los a la pràctica  [MECES-2 punt a, punt c] 
  • Que tenen la capacitat de recopilar i interpretar els requeriments de un sistema sobre les que desenvolupar els models necessaris [MECES-2 punt c]
  • Que poden desenvolupar solucions a problemes que, si bé són semblants a d’altres vistos anteriorment, presenten aspectes que són nous [MECES-2 punt f]

PONDERACIÓ

El conjunt de les pràctiques representen un 40 % de la nota final, però la evaluació de les mateixes es fa en funció del nivel final asolit per l'alumne.

PRÀCTIQUES

Pràctica 1

  • Cada grup te assignat un vídeo on s'expliquen un conjunt de requeriments molt bàsics.
  • Els alumnes han de se capaços de entendre els “límits” de lo que se està demanant i el “context” que envolta lo que se li esta demanant.

Objectius específics: En finalitzar l'activitat els estudiants han de ser capaços de redactar un document que expliqui

  • Que es demana.
  • Que ha de "estar funcionant" per tal de poder fer el que es demana.
  • Una estimació de temps en hores del que portarà la feina ( sense tenir cap idea de com estimar).

La pràctica 1 donarà evidència dels resultats d'aprenentatge: RA1, RA3,RA4

Pràctica 2   

Es tracte d’analitzar el mateix enunciat de la pràctica 1 però aquesta vegada el resultat del anàlisi ha de ser mes acurat..

Objectius específics: En finalitzar l'activitat els estudiants han de ser capaços de:

  • Especifica quin es l'abast de l'aplicació.
  • Enunciar "tots" els requeriments que caldrà implementar.
  • Enunciar "tots" els requeriments que tot i que no s'hagin de implementar, son necessaris. 
  • Dibuixar el cas d'ús que demana el document de la pràctica 1.

La pràctica 2 donarà evidència dels resultats d'aprenentatge: RA2, RA3,RA4, RA5

Pràctica 3   

Es tracte d’evolucionar el projecte que s'ha començat amb la pràctica 2 per porta-lo fins al model de disseny del que s'ha de programar.

Objectius específics: En finalitzar l'activitat els estudiants han de ser capaços de:

  • Entregar un diagrama amb les estructures conceptuals principals del sistema.
  • Enumerar quines seràn les classes principals que s'han de implementar al sistema.
  • Fer el diagrama de classes bàsiques del sistema.
  • Fer un dels diagrama d'interacció necessaris.
  • Fer un dels diagrames de seQüencia necessaris.

La pràctica 3 donarà evidència dels resultats d'aprenentatge: RA6, RA7,RA8

Pràctica 4   

Es tracte d’evolucionar el projecte que s'ha començat amb la pràctica 2 per porta-lo fins al punt de la codificació.

Objectius específics: En finalitzar l'activitat els estudiants han de ser capaços de:

  • Diagrama de classes que reflecteixi els patrons GRASP que s'aplicaràn al disseny creat per la pràctica 3.
  • Implementació de les classes presentades al diagrama del punt previ.
  • Càlcul de la complexitat ciclomàtica del mètode mes llarg de tots els que s'hagin implentat.

La pràctica 4 donarà evidència dels resultats d'aprenentatge: RA6, RA7,RA8,RA9

Les pràctiques 1,2,3 i 4 1 i 2 tenen a veure amb les següents competències comunes i específiques (entre parèntesis els aspectes més rellevants de cada competència als quals l’assignatura contribueix)

  • T2 (tinguin capacitat per treballar com a membre d'un equip)
  • B5 (Desenvolupar el seu grau d'autonomía )
  • CIN3 ( Comprendre la importància dels habits de treball efectius )
  • B2 (Aplicar coneixements al seu treball )
  • CIN13 (Coneixement i aplicació d'eines )

PROVES

Prova 1  Blocs 1, 2 i 3

Prova individual dels conceptes teòrics i procediments pràctics dels tres primers blocs de l'assignatura.

Aquesta prova representa el 30% de la qualificació final de l'assignatura.

Objectius específics: L'objectiu d'aquesta activitat és avaluar si l’estudiant:

  • Entén els conceptes de l'Engenyeria de Software.
  • Pot explicar "que es" un  proces de software
  • Entén perfectament perquè s'ha de modelar com a base de l'Engenyeria de Software.
  • Sap dividir la complexitat d'un problema petit que se li plantegi.
  • Entén que es el model de domini.
  • Entén les rel·lacions bàsiques entre classes.

La prova 1 donarà evidència dels resultats d'aprenentatge: RA1, RA2,RA3,RA4, RA5
 

Prova 2 dels blocs 4 i 5                                                                                    

Prova   individual   dels   conceptes   teòrics   i   procediments   pràctics   dels blocs 4 i 5 de l’assignatura.

Aquesta prova representa el 30% de la qualificació final de l'assignatura.

Objectius específics: L'objectiu d'aquesta activitat és avaluar si l’estudiant:

  • Sap transformar un model d'especificació en UML a un model de disseny.
  • Sap crear un diagrama de classes.
  • Sap crear un diagrama d'interacció de classes.
  • Sap crear un diagrama de seqüencia de classes.
  • Sap aplicar els patrons GRASP bàsics.
  • Sap codificar una classe en base a un diagrama de classes.

La prova 2 donarà evidència dels resultats d'aprenentatge: RA5, RA6,RA7,RA8, RA9

Les proves 1 i 2 tenen a veure amb les següents competències comunes i específiques (entre parèntesis els aspectes més rellevants de cada competència als quals l’assignatura contribueix)

  • CIN2 (Planificar i concebre projectes)
  • CIN4 (Elaborar un plec de condicions tècniques)
  • CIN5 ( Coneixement d'aplicacions informàtiques)
  • CIN8 ( Capacitat per analitzar i dissenyar aplicacions de forma robusta )
  • CIN16 ( Coneixement i aplicació de metodologies)
  • ¿¿¿¿¿¿¿EIS1 ( Desenvolupar sistemes software que satisfacin els requisits de l'usuari )
  • EIS4
    • ( PART1: Identificar i analitzar problemes )
    • ( PART2: dissenyar , desenvolupar, implementar i verificar solucions de software )
  • EFB4 (Coneixements bàsics sobre l'ús i la programació dels ordinadors )
  • C1N (Dissenya i desenvolupar aplicacions)
  • EFB4 (Coneixements bàsics sobre l'ús i la programació dels ordinadors )
  • T1( coneguin una tercera llengua )


Lectura i Comprensió (aprenentatge autònom)

Lectura i comprensió de capítols escollits pel professor dels llibres de la bibliografia i material de classe.

Material de suport: Llibres (disponibles a la biblioteca) i material del curs.

Caldrà respondre als qüestionari sobre la lectura.

Objectius específics: Entendre i aplicar conceptes complexos d'enginyeria del software a partir de la lectura i estudi del material proposat pel professor.

Sistema d'avaluació


La nota final es calcularà amb les qualificacions de les activitats ponderades de la forma següent:

· Prova 1: 30%

· Prova 2: 30%

· Pràctiques de la 1 a la 4: 40% ( La nota final s'evaluarà en funció del nivell assolit al final del proces d'aprenentatge.)

Amb les ponderacions anteriors, les pràctiques de laboratori  tenen un pes del 40% i les proves un 60%.

Només podran recuperar-se les proves 1 i 2 en una única prova de tota l’assignatura (les pràctiques no es podran recuperar). El 60% de la nota final de l’assignatura serà la més gran entre la prova de recuperació i  l’obtinguda en les proves 1 i 2.

Per poder realitzar la prova de recuperació l’estudiant haurà de complir les tres condicions següents:

. La nota de l’assignatura és inferior a cinc.

. Com a mínim té un tres de les proves.

. Com a mínim té un tres de pràctiques.

Per tal d'aprovar la assignatura, la nota de les pràctiques ha de ser de 5 o superior, la nota de cadascún dels examens ha de ser 5 o superior. No serveix tenir un 10 en una part de l'assignatura i un 0 en l'altra perquè no es fa promig si no s'ha assolit el mínim en totes les parts de l'assignatura.

Bibliografia


Bàsic

Coad, Peter/ Yourdon Edward. Object Oriented Analysis. 2nd. Yourdon Press, 1991. ISBN0-13-629981-4

Larman, Craig. UML and patterns: an introduction to analysis and object oriented design and the unified process. 2nd. Prentice Hall, 2003. ISBN9788420534381.

Pressman, Roger S.. Software Engineering: a practical approach. 7. McGraw-Hill, 2010. ISBN 9786071503145.

Booch, Grady. Análisi y Diseño Orientado a Objetos: con aplicaciones. 2da. Addison Wesley/Diaz de Santos, 1996. ISBN0-201-60122-2.

Complementary

Pressman, Roger S.. Software Engineering: a practical approach. 7. McGraw-Hill, 2010. ISBN 9786071503145.