Vés al contingut

Introducció a l'Enginyeria del Software

Crèdits
6
Tipus
  • GIA: Optativa
  • GRAU: Obligatòria
Requisits
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

Altres

Hores setmanals

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

Competències

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.
  • 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: CT3.3, CT8.2, CT2.1, CT6.1,
    2. Ser capaços d'entendre els requisits d'un sistema software i relacionar-los amb parts de les especificacions
      Competències relacionades: CT3.3, CT8.3, CT8.5, CT8.6,
    3. Ser capaços d'escriure les especificacions d'un sistema software en UML
      Competències relacionades: G4.2, CT2.3, CT3.3, CT5.5, CT8.1, CT8.3, CT8.5, CT8.7,
    4. Conèixer les propietats desitjables de les especificacions d'un sistema software
      Competències relacionades: CT8.4, CT7.1,
    5. Ser capaços d'analitzar la completitud i la consistència de les especificacions
      Competències relacionades: CT2.3, CT5.5, CT8.1, CT8.3, CT7.1,
    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: CT5.5, G4.2, 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: G4.2, CT2.3, CT8.1, CT8.3, CT2.1,
    10. Conèixer els conceptes bàsics de la prova del software
      Competències relacionades: CT2.1, CT5.5, CT8.3, CT8.4, CT7.1,

    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
    12h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    23h

    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
    10h
    Problemes
    10h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    33h

    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)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    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)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    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)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    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 tres actes avaluatoris: un examen a l'horari de classe (C1) 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 = 40% FHC1 + 15% C1 + 40% FHC2 + 5% participació

    tenint en compte que:
    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àsic

    Complementari

    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.