Objectius
|
Programa provisional
|
|
Partint de la idea que a Metodologia i Tecnologia de la Programació s'han après les tècniques bàsiques per a la programació a petita escala, l'objectiu d'aquesta assignatura és inculcar que la modularitat és la clau per escriure bons programes a més gran escala. L'assignatura pretén:
- capacitar l'alumne per a la resolució de problemes de mitjana envergadura mitjançant tècniques de disseny modular, i
- augmentar la seva capacitat de raonar amb rigor respecte a la correcció dels programes dissenyats.
A partir d'aquestes dues vessants l'alumne haurà de ser capaç de produir programes de qualitat, fiables i fàcils de mantenir, en el context de la programació imperativa orientada a objectes.
|
|
|
Prerrequisits
|
|
|
obligatoris: cap
recomanats: Metodologia i Tecnologia de la Programació |
|
|
Contingut (Programa)
|
|
|
1. Disseny modular orientat a objectes
Conceptes bàsics
- Descomposició i abstracció
- Tipus d'abstracció
- Indepèndencia de la representació
- Mòduls vs. Classes
Disseny d'aplicacions
- Mòduls. Definició, implementació i utilització.
- Descomposició i abstracció funcional
- Descomposició i abstracció de dades
- Construcció de tipus
- Herència
- Herència vs. Subtipatge
- Bons i mals usos de l'herència
- Composició vs. Construcció
- Herència múltiple
- Exemples de disseny d'aplicacions
- Patrons de disseny
2.Especificació i raonament formal
- Especificació equacional de mòduls
- Lògica de primer ordre
- Invariant de la representació i funció d'abstracció
- Especificació formal d'operacions. Precondicions i postcondicions
- Derivació/verificació formal d'algorismes
- Semàntica axiomàtica
- Principi d'inducció
- Disseny recursiu
- Construcció de programes per generalització
- Composició iterativa i invariants
- Disseny iteratiu
- Transformació recursiu-iteratiu
|
|
|
Bibliografia
|
|
|
1.Barbara Liskov and John Guttag:
Program development in Java: Abstraction, Specification, and Object-Oriented Design.
Addison-Wesley, 2000.
2
J.L. Balcázar:
Programación Metódica.
McGraw-Hill, 1993.
3
R. Peña:
Diseño de Programas: Formalismo y Abstracción.
Prentice-Hall, 1993.
|
|
|
Mètodes docents
|
|
|
Classes de teoria (2h/setmana) Classes de laboratori (2h/setmana) |
|
|
Tipus d'exàmens i avaluacions
|
|
|
L'avaluació consta de les següents parts (entre parèntesi s'indica el percentatge de cada part sobre la nota final):
1. Treballs pràctics
(a) Problemes i pràctiques de laboratori individuals (15%)
(b) Pràctica en equip (15%)
2. Exàmens
(a)
Examen de la pràctica en equip (10%)
(b)
Examen de teoria/problemes (60%)
Observacions:
Els treballs pràctics són obligatòris: han d'estar presentats i acceptats per tal d'aprovar l'assignatura, independentment de la resta de notes.
Si la nota x de l'examen de la pràctica en equip és inferior a 5, aleshores es dividirà la nota de la pràctica en equip per 5/x.
Cal un 3.5 com a mínim de l'examen de teoria/problemes per aprovar l'assignatura.
Es guarden notes d'examen i de treballs pràctics per a la 2a convocatòria. Es poden tornar a entregar treballs pràctics en 2a convocatòria de cara a millorar la nota.
|
|
|
Informació addicional
|
|
|
Disseny, implementació i (re-)utilització de software sota la perspectiva del disseny modular orientat a objectes. S'utilitzarà el llenguatge Java per a la construcció dels programes.
|
|
|
|