Doble Grau en Enginyeria Telecomunicació i Organització de les TIC de La Salle Campus Barcelona

Doble Grau en Enginyeria de Sistemes de Telecomunicació i Enginyeria en Organització de les TIC

La Salle Campus Barcelona t'ofereix 5 dobles titulacions en l'àmbit de les Enginyeries TIC. Amb els dobles graus podràs finalitzar els estudis universitaris en 5 anys acadèmics amb dues titulacions oficials de grau.

Disseny i programació orientats a objectes

Descripció: 

El paradigma de programació orientat a objectes és, actualment, un dels paradigmes més importants en el món de la programació. Partint d’aquesta idea, l’assignatura té com a objectiu que els alumnes aprenguin a dissenyar i programar en aquest paradigma, tot utilitzant un llenguatge actual utilitzat en entorns reals.

L’assignatura farà èmfasi en la fase de disseny de programari, i dona per suposat, que els alumnes presenten uns coneixements i domini suficient del paradigma imperatiu i procedimental, per entendre el funcionament imperatiu d’un nou llenguatge de programació.

Donat que la majoria dels projectes de programari es desenvolupen per equips de programadors, l’assignatura també vol dotar als alumnes de les competències necessàries per a afrontar aquests entorns de treball.

Tipus assignatura
Tercer - Obligatoria
Semestre
Anual
Curs
2
Crèdits
6.00

Professors Titulars

Coneixements previs: 

Coneixements de programació imperativa i algorítmica bàsica.

Es recomana haver cursat: Metodologia i tecnologia de la programació.

Objectius: 

  1. L'estudiant coneix el paradigma orientat a objectes i totes les seves característiques.
  2. L'estudiant coneix un llenguatge orientat a objectes real i actual.
  3. L'estudiant desenvolupa projectes de programació mitjançant els instruments i pràctiques pròpies d'un entorn de desenvolupament real.
  4. L'estudiant dissenya software a partir d'unes especificacions concretes.
  5. L'estudiant utilitza correctament patrons GRASP de disseny software.
  6. L'estudiant treballa en equip.

Continguts: 

Els continguts detallats de l'assignatura són (*):

  • Coneixement del paradigma orientat a objectes.
    • Classe o Prototip
    • Objecte o Instància
    • Missatge, Mètode o Operació
    • Encapsulació i Abstracció
    • Herència
    • Polimorfisme
    • Interfície
  • Coneixement d'un llenguatge orientat a objectes real.
    • Introducció a Java.
    • Característiques principals de Java
    • Introducció al llenguatge
      • Variables d'instància / classe / locals / paràmetres
      • Tipus de dades primitius vs referències
      • Arrays
      • Operadors
      • Manegament d'Excepcions
    • Introducció a l'OO
    • Declaració d'una classe
    • Visibilitat (private / protected / package / public)
    • Declaració de mètodes, Constructors i Pas de paràmetres
    • La referència "this"
    • Instanciació i ús d'objectes
    • Static i Final
    • Enumeracions
    • Herència en Java
      • Interfícies
      • Jerarquia de classes en Java
      • La classe Object
      • Herència múltiple
      • Sobreescriptura de mètodes
      • Polimorfisme
      • La referència "super"
      • Constructors de subclasses
      • Mètodes i classes abstractes
    • Números, Caràcters i Strings
    • Introducció a Genèrics
    • Packages
    • Basic I/O
    • Collections
    • AWT / Swing
    • Concurrència
  • Ús d'un entorn de desenvolupament real.
    • Eina de modelatge de diagrames
    • IntelliJ IDEA com a entorn de desenvolupament
    • Git com a Sistema de Control de Versions
    • Jira com a gestor de projectes
  • Capacitat de dissenyar software a partir d'unes especificacions.
    • UML
    • Classe / Objecte / Missatge
    • Encapsulament i Abstracció
    • Encapsulament vs Visibilitat
    • Relacions entre classes
    • Herència
    • Polimorfisme
    • Ús de patrons de disseny software.
    • GRASP guidelines
    • Layered Architecture
    • Patró Model-Vista-Controlador
    • Responsibility-driven design
    • Object-Orientation and Databases
    • DAO design pattern
  • Treball en equip en un projecte de desenvolupament de software.
    • Eines de comunicació
    • Sistemes de Control de versions
    • Eines de gestió de projectes

Els continguts de l'assignatura es veuen distribuïts durant tot el curs, l'ordre d'impartició no es correspon amb l'ordre del temari anterior. Durant el curs es van presentant els conceptes i es van reforçant a mesura que s'avança. Els temes d'anàlisi, disseny i implementació i patrons es veuran de forma iterativa durant tot el curs introduint les diferents estructures de dades.

Metodologia: 

L'assignatura s'orienta per tal que l'alumne prengui part activa en el seu propi aprenentatge. La metodologia docent està pensada per tal que l'assignatura sigui dinàmica i participativa. Les classes magistrals es combinen amb classes d'exercicis i activitats a classe, així com pràctiques guiades pel professorat de l'assignatura. 

Els continguts de l'assignatura es troben planificats que ser impartits en tres nivells. En primer lloc, es realitzarà una introducció teòrica del concepte. Seguidament, s'introduiran els conceptes de disseny de software relacionats amb aquest concepte. Finalment, s'explicarà la implementació d'aquests conceptes en un llenguatge de programació.

La metodologia docent de l'assignatura està clarament diferenciada en dos semestres.

En el primer, s'assoleixen els fonaments del paradigma de l'orientació a objectes i de la programació en Java. L'orientació docent d'aquest semestre és amb classes magistrals on el professorat introdueix els conceptes, treballa exercicis d'exemple i guia l'alumnat en l'anàlisi i disseny de solucions per als problemes proposats. L'aprenentatge de l'alumnat es complementa amb avaluació formativa a través d'exercicis d'avaluació contínua.

En el segon semestre, l'assignatura s'enfoca amb la metodologia d'aprenentatge basada en projectes. Els coneixements assolits durant el primer semestre es consoliden mitjançant la realització d'un projecte quasi real de desenvolupament de software. 

Avaluació: 

L’assignatura s’organitza en dos semestres independents, tots dos obligatoris per aprovar l'assignatura. L'avaluació combina exercicis individuals amb un projecte de gran pes en cada semestre. El primer semestre inclou exercicis formatius i un projecte dividit en fases que s’han de superar individualment perquè el projecte sigui considerat apte, amb la possibilitat que la nota dels exercicis només compti si és favorable a l’estudiant. El segon semestre incorpora també exercicis individuals i un projecte en grup que es qualifica a partir del treball realitzat, la valoració del mentor i l’avaluació entre iguals.

Criteris avaluació: 
Bibliografia bàsica: 

[1] C.S.Horstman and G.Cornell, Core Java 2, Vol I. Fundamentos, Septima edición, Prentice Hall, 2006.

[2] K.Arnold, JGosling and D.Holmes, The Java programming language, Boston : Addison-Wesley, 2000

[3] M.Fowler, UML Distilled Third Edition. A brief guide to the standard object modeling language, Addison-Wesley, 2003.

[4] R.Miles and K.Hamilton, Learning UML 2.0, O'Reilly Media Inc, 2006.

[5] C.Larman, Applying UML and patterns : an introduction to object-oriented analysis and design, Prentice Hall PTR, 1998

[6] E.Gamma, R.Helm, R.Johnson and J.Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley Longman Publishing Co., 1995

[7] J.Cooper, Java Design Patterns, Addison Wesley, 2000

[8] D.Lea, Concurrent programming in Java: design principles and patterns, Addison-Wesley, 2000

Material complementari: 

[9] M.Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 2018

[10] R.Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008

[11] K.Sierra and B.Bates, Head First Java, O'Reilly Media, 2005

[12] E.Freeman, B.Bates, K.Sierra and E.Robson, Head First Design Patterns: A Brain-Friendly Guide, O'Reilly Media, 2004