Introducció a l'Enginyeria del Software

Esteu aquí

Crèdits
6
Tipus
Obligatòria
Requisits
  • Prerequisit: BD
  • Precorequisit: EDA
Departament
ESSI
L'objectiu principal de l'assignatura és el de proporcionar una visió general de l'enginyeria del software, amb un èmfasi especial a les etapes d'especificació i de disseny. Es pretén que a l'acabar l'assignatura l'alumne sigui capaç d'especificar un sistema senzill mitjançant la notació UML i de dissenyar-lo fent servir la mateixa notació i aplicant el patró arquitectònic domain model i algun dels patrons de disseny més coneguts.

Professorat

Responsable

  • Ernest Teniente Lopez ( )

Altres

  • Claudia Patricia Ayala Martinez ( )
  • Dolors Costal Costa ( )
  • Jordi Casanovas Muñoz ( )
  • José Francisco Crespo Sanjusto ( )
  • Manuel Rello Saltor ( )
  • Montserrat Estañol Lamarca ( )
  • Sergio Morales Garcia ( )
  • Xavier Oriol Hilari ( )

Hores setmanals

Teoria
2
Problemes
2
Laboratori
0
Aprenentatge dirigit
0
Aprenentatge autònom
6

Competències

Competències Tècniques

Competències tècniques comunes

  • CT2 - Utilitzar d'una manera apropiada teories, procediments i eines en el desenvolupament professional de l'enginyeria informàtica en tots els seus àmbits (especificació, disseny, implementació, desplegament -implantació- i avaluació de productes) de manera que es demostri la comprensió dels compromisos adoptats a les decisions de disseny.
    • CT2.1 - Demostrar coneixement i capacitat d'aplicació dels principis, metodologies i cicles de vida d'enginyeria del software.
    • CT2.3 - Dissenyar, desenvolupar, seleccionar i avaluar aplicacions, sistemes i serveis informàtics i, al mateix temps, assegurar-ne la fiabilitat, la seguretat i la qualitat en funció de principis ètics i de la legislació i la normativa vigents.
    • CT2.4 - Demostrar coneixement i capacitat per a aplicar les eines necessàries a l'emmagatzematge, el processament i l'accés als sistemes d'informació, fins i tot els que es basen en la web.
  • CT3 - Demostrar coneixement i comprensió del context organitzatiu, econòmic i legal en el qual es desenvolupa la seva feina (coneixement adequat del concepte d'empresa, del marc institucional i jurídic de l'empresa, d'organització i gestió de les empreses).
    • CT3.3 - Saber trobar i interpretar la informació bàsica que permet avaluar l'entorn econòmic de l'organització.
  • CT5 - Analitzar, dissenyar, construir i mantenir aplicacions de forma robusta, segura i eficient, triant el paradigma i els llenguatges de programació més adequats.
    • CT5.5 - Usar les eines d'un entorn de desenvolupament de software per a crear i desenvolupar aplicacions.
  • CT6 - Demostrar coneixement i comprensió del funcionament intern d'un computador i del funcionament de les comunicacions entre ordinadors.
    • CT6.1 - Demostrar coneixement i tenir capacitat per a administrar i mantenir sistemes, serveis i aplicacions informàtiques.
  • CT7 - Avaluar i seleccionar plataformes de producció hardware i software per a l'execució d'aplicacions i de serveis informàtics.
    • CT7.1 - Demostrar coneixement de les mètriques de qualitat i saber-les utilitzar.
  • CT8 - Planificar, concebre, desplegar i dirigir projectes, serveis i sistemes informàtics en tots els àmbits, liderar-ne la posada en marxa, la millora contínua i valorar-ne l'impacte econòmic i social.
    • CT8.1 - Identificar tecnologies actuals i emergents i avaluar si són aplicables, i en quina mesura, per a satisfer les necessitats dels usuaris.
    • CT8.2 - Assumir els rols i les funcions del cap del projecte i aplicar, en l'àmbit de les organitzacions, les tècniques de gestió i programació del temps, dels costos i dels aspectes financers, dels recursos humans i del risc.
    • CT8.3 - Demostrar coneixement i saber aplicar les tècniques apropiades per a modelar i analitzar els diferents tipus de decisions.
    • CT8.4 - Elaborar el plec de condicions tècniques d'una instal·lació informàtica que compleixi els estàndards i la normativa vigent.
    • CT8.5 - Gestionar i resoldre els problemes i conflictes gràcies a la capacitat de generar alternatives o escenaris de futur convenientment analitzats, integrant els aspectes d'incertesa i els múltiples objectius a considerar.
    • CT8.6 - Demostrar comprensió de la importància de la negociació, dels hàbits de treball efectius, del lideratge i de les habilitats de comunicació en tots els entorns de desenvolupament de software.
    • CT8.7 - Controlar versions i configuracions del projecte.

Competències Transversals

Comunicació eficaç oral i escrita

  • G4 [Avaluable] - Comunicar de forma oral i escrita amb altres persones coneixements, procediments, resultats i idees. Participar en debats sobre temes propis de l'activitat de l'enginyer tècnic en informàtica.
    • G4.2 - Utilitzar estratègies per a preparar i dur a terme les presentacions orals i redactar textos i documents amb un contingut coherent, una estructura i un estil adequats i un bon nivell ortogràfic i gramatical. Fer una presentació oral davant d'un auditori restringit. Triar adequadament els continguts, l'estil, la temporització i el format de la presentació. Ser capaç de comunicar-se d'una manera efectiva amb l'usuari en un llenguatge no tècnic, i de comprendre les seves necessitats.

Objectius

  1. Tenir una visió general del procés de l'enginyeria del software
    Competències relacionades: CT2.1, CT6.1, CT8.2, CT3.3,
  2. Ser capaços d'entendre els requisits d'un sistema software i relacionar-los amb parts de les especificacions
    Competències relacionades: CT8.3, CT8.6, CT8.5, CT3.3,
  3. Ser capaços d'escriure les especificacions d'un sistema software en UML
    Competències relacionades: CT8.1, CT8.3, G4.2, CT8.5, CT8.7, CT3.3, CT5.5, CT2.3,
  4. Conèixer les propietats desitjables de les especificacions d'un sistema software
    Competències relacionades: CT7.1, CT8.4,
  5. Ser capaços d'analitzar la completitud i la consistència de les especificacions
    Competències relacionades: CT8.1, CT8.3, CT7.1, CT5.5, CT2.3,
  6. Conèixer els principis generals de l'arquitectura del software i del model de disseny orientat a objectes en UML
    Competències relacionades: CT8.1, CT8.5,
  7. Entendre l'estructura lògica en capes d'un sistema d'informació: capa de presentació, de domini i de gestió de dades
    Competències relacionades: CT8.1, CT8.3, CT2.4,
  8. Saber transformar un model d'especificació UML en un de disseny
    Competències relacionades: G4.2, CT5.5, CT2.4,
  9. Conèixer el concepte de patró de disseny i dominar l'ús d'alguns dels patrons més coneguts
    Competències relacionades: CT2.1, CT8.1, CT8.3, G4.2, CT2.3,
  10. Conèixer els conceptes bàsics de la prova del software
    Competències relacionades: CT2.1, CT8.3, CT7.1, CT8.4, CT5.5,

Continguts

  1. Introducció a l'enginyeria del software
  2. Requisits d'un sistema software i la seva especificació
  3. El Model de Casos d'Ús en UML
  4. Especificació de sistemes software en UML
    - L'esquema estructural de les dades
    - L'esquema del comportament
    - Els diagrames d'estats
  5. Introducció al disseny de software
  6. Disseny orientat a objectes amb UML

Activitats

Activitat Acte avaluatiu


Estudi de la introducció a l'enginyeria del software


Objectius: 1
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Estudi dels requisits del software i de la seva relació amb l'especificació de sistemes software


Objectius: 1 2
Continguts:
Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Estudi del Model de Casos d'Ús en UML


Objectius: 2 3
Continguts:
Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

Estudi de l'esquema estructural de les dades en UML


Objectius: 2 3 4 5
Continguts:
Teoria
4h
Problemes
10h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
20h

Estudi de l'esquema del comportament en UML


Objectius: 2 3 4 5
Continguts:
Teoria
4h
Problemes
8h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
16h

Estudi de la introducció al disseny de software


Objectius: 6 7
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Estudi del disseny de software en UML


Objectius: 6 8 9
Continguts:
Teoria
8h
Problemes
10h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
30h

Control del model estructural en UML

S''hi avaluaran part dels objectius 3 a 5
Objectius: 3 4 5
Setmana: 4
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

FHC del model estructural en UML

S''hi avaluaran part dels objectius 1 a 5
Objectius: 1 2 3 4 5
Setmana: 6 (Fora d'horari lectiu)
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

FHC del model del comportament en UML

S''hi avaluaran part dels objectius 1 a 5
Objectius: 2 3 4 5
Setmana: 9 (Fora d'horari lectiu)
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

Control de disseny de software

S''hi avaluaran part dels objectius 8 i 9
Objectius: 8 9
Setmana: 14
Tipus: examen de problemes
Teoria
0h
Problemes
2h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

FHC del disseny de software

S''hi avaluaran part dels objectius 6 a 10
Objectius: 6 7 8 9 10
Setmana: 15 (Fora d'horari lectiu)
Tipus: examen de teoria
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

Metodologia docent

La docència de l'assignatura està estructurada en classes de teoria i classes de problemes.

A les classes de teoria els professors presenten els continguts essencials de l'assignatura. Normalment els professors usen transparències que els estudiants poden obtenir, i ho haurien de fer, abans de les classes.

A les classes de problemes es practiquen els continguts de l'assignatura (els presentats a classe i els adquirits autònomament) mitjançant la realització de problemes. A vegades es requereix que els problemes s'hagin resolt (o almenys intentat resoldre) abans de la classe, i llavors la classe es destina a analitzar i discutir col·lectivament les millors solucions. Altres vegades, el problema es planteja i s'ha de resoldre en la mateixa classe.

Mètode d'avaluació

Durant el curs es faran cinc actes avaluatoris: tres controls a l'horari de classe (C1, C2 i C3) i dues proves fora de l'horari de classe (FHC1 i FHC2). Per al càlcul de la nota final també es tindrà en compte la participació activa a classe. La distribució seqüèncial d'aquests actes avaluatoris i la manera com contribueixen a la nota final de l'assignatura vénen definits per la fórmula següent:

Nota Final = 10% C1 + 30% FHC1 + 15% C2 + 10% C3 + 30% FHC3 + 5% participació

tenint en compte que:
El control C3 és opcional. Si un alumne no realitza el control C3, aleshores automàticament el pes de la prova FHC2 passa a ser del 40%.
La nota de participació s'aconsegueix entregant un mínim del 75% dels exercicis proposats i participant activament a classe.
Nota Final = NP si l'alumne no es presenta a la FHC2 i la seva nota final acumulada és <4.

No hi ha examen final.

A més de la nota de l'assignatura, hi haurà una nota a part de la competència genèrica assignada a l'assignatura, amb valors A, B, C, D, NO on:
o A indica que la competència s'ha superat amb un nivell d'execel.lència
o B indica que la competència s'ha superat amb el nivell desitjat
o C indica que la competència s'ha superat amb un nivell suficient
o D indica que la competència no s'ha superat
o NA indica que la competència no s'ha avaluat

Bibliografia

Bàsica:

Complementaria:

Web links

Capacitats prèvies

Els alumnes haurien de tenir coneixements suficients d'estructures de dades i algorismes i de programació quan comencen enginyeria del software.