Informació general


Idiomes d'impartició


  • Català

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.

 

 

 

 

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.

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àsica

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

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.


Complementària

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