Logo UAB
2020/2021

Disseny de Software

Codi: 102759 Crèdits: 6
Titulació Tipus Curs Semestre
2502441 Enginyeria Informàtica OB 3 1
2502441 Enginyeria Informàtica OT 4 1
La metodologia docent i l'avaluació proposades a la guia poden experimentar alguna modificació en funció de les restriccions a la presencialitat que imposin les autoritats sanitàries.

Professor/a de contacte

Nom:
Joan Serrat Gual
Correu electrònic:
Joan.Serrat@uab.cat

Utilització d'idiomes a l'assignatura

Llengua vehicular majoritària:
català (cat)
Grup íntegre en anglès:
No
Grup íntegre en català:
Grup íntegre en espanyol:
No

Equip docent

David Fernández Mota
Idoia Ruiz López
Lluis Gomez Bigorda

Prerequisits

No hi ha prerequisits oficials, però cal que l'estudiant domini la notació de diagrames de classe UML, els conceptes d'orientació a objecte i la seva programació en algun llenguatge, preferiblement Java.

Objectius

Un cop el propòsit d'un software s'ha determinat mitjançant l'anàlisi de requeriments, els desenvolupadors de software dissenyen una solució. Aquesta va des de l'arquitectura dels seus components (classes, mòduls...) fins a la implementació en algun llenguatge de programació. Aquesta assignatura cobreix principalment dos aspectes claus del disseny: els patrons de disseny orientat a objecte i el disseny de la interfície d'usuari. A més d'aquests, tracta altres temes com són el disseny per contracte de classes i mètodes i l'estil de codificació.

El mètode d'aprenentatge és basat en un projecte (la pràctica) o dit d'una altra manera, 'apendre per fer': tots els conceptes tractats a teoria són necessàris per tal de dissenyar i implementar una aplicació de software, a partir d'un enunciat que fa el paper de document de requeriments. Es tracta de fer el disseny i la implementació (però no l'anàlisi de requeriments, la prova, el control de versions o el garantiment de la qualitat, que pertanyen a altres assignatures de la menció) d'una aplicació.

Competències

    Enginyeria Informàtica
  • Capacitat d'identificar i analitzar problemes i dissenyar, desenvolupar, implementar, verificar i documentar solucions de software sobre la base d'un coneixement adequat de les teories, models i tècniques actuals.
  • Capacitat per concebre sistemes, aplicacions i serveis basats en tecnologies de xarxa, incloent Internet, Web, comerç electrònic, multimèdia, serveis interactius i computació mòbil.
  • Capacitat per concebre, desenvolupar i mantenir sistemes, serveis i aplicacions informàtiques emprant els mètodes de l'enginyeria del software com a instrument per a assegurar-ne la qualitat.
  • Capacitat per dissenyar, desenvolupar, avaluar i assegurar l'accessibilitat, l'ergonomia, la usabilitat i la seguretat dels sistemes, serveis i aplicacions informàtiques, així com de la informació que gestionen.
  • Tenir una actitud personal adequada.
  • Treballar en equip.

Resultats d'aprenentatge

  1. Assumir i respectar el rol dels diversos membres de l'equip, així com els diferents nivells de dependència de l'equip.
  2. Concebre sistemes de software basats en tecnologies de xarxa, incloent Internet, Web, comerç electrònic, multimèdia, serveis interactius i computació mòbil.
  3. Conèixer i aplicar els components de software específics en problemes computacionals basats en comunicacions.
  4. Desenvolupar la curiositat i la creativitat.
  5. Dissenyar i documentar solucions de software.
  6. Dissenyar una interface d'usuari partint de les especificacions del client.
  7. Especificar les necessitats del client en un document d'especificació de software.
  8. Identificar el paradigma que millor s'adapta al problema de disseny d'un sistema informàtic software específic tenint en compte els requeriments d'accessibilitat, ergonomia, usabilitat i seguretat.
  9. Identificar, gestionar i resoldre conflictes.
  10. Mantenir una actitud proactiva i dinàmica respecte al desenvolupament de la pròpia carrera professional, el creixement personal i la formació continuada. Tenir esperit de superació.
  11. Treballar cooperativament.

Continguts

    1. Principis d'orientació a objecte
    2. Patrons de disseny : creacionals, estructurals, de comportament
    3. Disseny per contracte
    4. Estil de codificació i comentaris. Logging
    5. Disseny de la interfície d'usuari
        - usabilitat
        - user research
        - procés: prototipat, user testing
    6. Programació d'interfícies.

Metodologia

Tal com hem dit als objectius, l'assignatura segueix una metodologia d'aprenentatge basat en el desenvolupament d'un projecte. La seva implementació concreta pel que fa a l'ús de les hores de classe és la següent:

Classes de teoria. En elles el professor introdueix els continguts teòrics i dóna referències útils (llibres, articles, pàgines web) per que l'estudiant després en pugui continuar el seu aprenentatge, així com desenvolupar l'aplicació software proposada. Les transparències utilitzades en aquestes classes doncs no s'han de prendre com a font d'estudi, sinó que serveixen per que el professor pugui exposar de manera més àgil. En canvi, cal estudiar els llibres recomanats, i els articles, capítols de llibres d'accés obert i altre material que indicarem.

Classes de problemes. En elles els estudiants presenten les respostes a una llista de qüestions, que hauran resolt prèviament. Seran tant problemes de disseny (diagrames de classe, codi, prototips d'interfase d'usuari etc.) com preguntes sobre articles que caldrà, és clar, haver llegit i analitzat, i que complementen els continguts de les classes de teoria o obliguen al seu estudi.

Sessions de pràctiques. Els estudiants hauran format a principi de curs grups petits (3 per grup). A les classes de pràctiques els estudiants venen a 1) 'passar comptes' amb el professor de la feina feta cada setmana i resoldre dubtes, i 2) donat que la pràctica estarà dividida en fites, les setmanes que corresponen a una fita s'avalua la part corresponent in situ, segons un barem que figurarà a l'enunciat de la pràctica. Per tant, les sessions de pràctiques *no* són per fer la pràctica.

Tots els materials de l'assignatura juntament amb la planificació detallada es troben al campus virtual. Lamajoria d'aquests materials  són en anglès.

D'acord amb les darreres instruccions de l'Escola d'Enginyeria, la docencia de teoria, problemes i pràctiques seran "online".

Competències transversals:

Competència transversal Activitats on es treballaran Com s'avaluarà
T03.01, T03.02, T03.03 preparació i classes de pràctiques a les avaluacions de pràctiques (fites)
T06.01, T06.02 preparació de pràctiques i resolució de problemes a les avaluacions de pràctiques (fites) i als exàmens de teoria

Activitats formatives

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
classes de problemes 12 0,48 2, 3, 5, 6
classes de pràctiques 12 0,48 1, 2, 3, 5, 6, 9, 11
classes de teoria 26 1,04 2, 3, 5, 6, 8
Tipus: Autònomes      
estudi individual 29 1,16 3, 5, 6, 7, 8
preparacio practiques 52 2,08 1, 2, 3, 5, 6, 8, 9, 11
resolució de problemes 12 0,48 2, 3, 5, 6, 7, 8

Avaluació

La forma d'avaluació és continuada. Aquesta consta d'una part d'avaluació de grup i una altra d'individual. La nota de la primera (PR) s'obté fent promig de les notes de les fites de pràctiques (M1, M2, M3). La segona (EX) del promig de dues proves escrites durant el trimestre (EXP1, EXP2), o bé d'un examen final de recuperació (EXR1, EXR2). Els sufixes 1 i 2 es refereixen a les 2 parts que té l'assignatura, abans i després del primer examen EXP1.

L'algoritme pel càlcul de la nota final (FM) és el següent :

        // EXP1, EXP2 examens parcials
        // EXR1, EXR2 examen de recuperació
        // M1, M2, M3 notes de les 3 fites de pràctiques
        // FM nota final
         
        EX = ( max(EXP1, EXR1) + max(EXP2, EXR2) ) / 2.
         
        if (M1>0) and (M2>0) and (M3>0) {
           PR = (M1 + M2 + M3) / 3.
        } else {
           PR = 0.
        }
         
        if (EX >=5.) and (PR >=5.) {
           FM =(EX + PR) / 2.
        } else { // EX<5. o PR<5.
           FM = min(EX, PR)
        }

Les fites de pràctiques són avaluacions equivalents al examens escrits. Si un estudiant no s'hi presenta, la nota és zero.

La nota final serà 'no avaluable' si no s'ha entregat cap examen ni cap fita de pràctiques.

No hi ha recuperació de pràctiques. Depenent de l'any, podem arribar a proposar exercicis i problemes que sumin punts als examens EXP1, EXP2. Aquests punts es mantenen pels corresponents examens de recuperació.

Una cosa que volem assegurar mitjançant les diferents avaluacions és que cada membre del grup realment hagi contribuït a la pràctica en la mateixa mesura que els altres. Així doncs, si de resultes de les preguntes que el professor fa durant la fita o per les notes de proves escrites sobre la pràctica, tenim indicis que això no passa, llavors la nota de fita passarà de ser de grup a individual: esbrinarem quina part de la fita actual ha fet cada membre i l'avaluarem individualment. A més, podem arribar a dividir el grup a partir de llavors.

Les dates d'avaluació continuada i lliurament de treballs es publicaran al campus virtual de l'assignatura i poden estar subjectes a canvis de programació per motius d'adaptació a possibles incidències; sempre s'informarà mitjançant el campus virtual, que serà el mecanisme habitual d'intercanvi d'informació entre docents i estudiants.

Per a les activitats d’avaluació de tipus examen escrit, s’indicarà un lloc, data i hora de revisió en la que l'estudiant podrà revisar l’activitat amb el professor. Si l'estudiant no es presenta a aquesta revisió, no es revisarà posteriorment aquesta activitat.

No convalidem pràctiques, exercicis ni exàmens de cursos anteriors. Els estudiants repetidors no reben cap tractament diferenciat.

Les notes MH les concedirem de manera discrecional als estudiants amb nota final superior 9.0 i tenint en compte tota mena de treballs fets (exàmens, pràctica i exercicis).

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, etc. en qualsevol de les activitats d’avaluació implicarà suspendre-la amb un zero. Les activitats d’avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de recuperar-la en el mateix curs, amb nota zero.

 

 

Activitats d'avaluació

Títol Pes Hores ECTS Resultats d'aprenentatge
avaluació de grup 50% 3 0,12 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
avaluació individual 50% 4 0,16 2, 3, 4, 5, 6, 7, 8, 10

Bibliografia

Part 1

  • Design patterns: elements of reusable object oriented  software. E. Gamma, R. Helm, R. Johnson, J. Vlissides. Addison Wesley, 1994. Versió en castellà de Pearson Educación, 2003.
  • Design patterns explained simply.  Alexander Shvets. https://sourcemaking.com/design-patterns-ebook.
  • Head first design patterns. E. Freeman, E. Freeman, K. Sierra, B. Bates. O'Reilly, 2004.
  • The elements of Java style. Al Vermeulen, Scott W. Ambler, Greg Bumgardner et al. Cambridge University Press, 2000.
  • Clean code: a handbook of agile software craftmanship. R.C. Martin. Prentice Hall, 2008. O be l'edició en castellà Codigo limpio, d'Anaya Multimedia 2012.

Part 2

  • The user experience team of one. A research and design survival guide. Leah Buley. Rosenfeld, 2013.
  • Understanding your users. A practical guide to user research methods. Kathy Baxter, Catherine Courage, Kelly Caine. Morgan Kaufmann, segona edició 2015.
  • Killer UX design. Jodie Moule. Sitepoint, 2012.
  • Validating product ideas. Tomer Sharon. Rosenfeld, 2016.
  • Rocket surgery made easy: the do-it-yourself guide to finding and fixing usability problems. S. Krug. New Riders, 2010. Versió en castellà Haz facil lo imposible, d'Anaya Multimedia 2010.