1/23/2004

Ingeniería del Software II: fundamentos del temario (I)

LS4118: Introducción a la asignatura

La asignatura de Ingeniería del Software II se centra sobre todo en la utilización de mejores prácticas en el diseño de sistemas orientados a objetos. Sin ser éste el único objetivo de una asignatura de este tipo, sí es verdad que ahora mismo es la única asignatura obligatoria donde los alumnos salen con conocimientos de las diferentes arquitecturas existentes, de lenguajes de modelado, patrones, etc. Otras asignaturas, como Sistemas Distribuidos, Sistemas en Internet o, de alguna manera, Gestión de Red, abarcan parte de esta problemática, pero de manera insuficiente.

Vicente Orjales y yo estamos trabajando en la definición de un temario que aporte a los alumnos una máxima ganancia, aunque, sin duda alguna, con un esfuerzo por su parte bastante mayor que el realizado en el primer cuatrimestre.

1. Presentación (1 sesión)
2. Repaso a técnicas de orientación a objetos y metodologias de procesos.
En este capítulo se repasa el Proceso Unificado, y sobre todo, los conceptos de OO más importantes en cuanto a patrones: dicotomía interfaz-implementación y la guerra herencia vs. delegación (1 sesión)
3. Introducción a patrones (1 sesión)
4. Patrones estructurales: Composite. Utilizándolo como ejemplo inicial, dedicar un par de clases a explicarlo con sumo detalle, y con ejemplos en Java -¿y C#?-. Nos llevaría al menos dos sesiones, posiblemente tres. (3 sesiones)
5. Patrones estructurales: Proxy. (2 sesiones)
6. Patrones estructurales: Adapter. (1 sesión)
7. Patrones creacionales: Abstract Factory & Factory Method.(1 sesión)
8. Patrones creacionales: Builder.(1 sesión)
9. Patrones de comportamiento: State & Strategy.(1 sesión)
10. Patrones de comportamiento: Observer.(1 sesión)
11. Patrones de comportamiento: Command.(1 sesión)

Algunos de los patrones restantes se mandarán como trabajo para casa, p.e.: Prototype (C), Flyweight (S), Facade (S), Iterator (B), Visitor (B), Template Method (B), Chain of Responsibility (B).

Tras estos patrones se realizará un ejemplo que conjugue gran cantidad de ellos. El ejemplo habrá sido publicado con anterioridad para no perder el tiempo ese día, y centrarse en realizar el trabajo.
(3 sesiones)

14. Patrones Arquitectónicos: sin meternos en tanto detalle como en Sistemas en Internet, el conocimiento de los patrones de alto nivel es fundamental para futuros ingenieros sw:
14.1.: Layers (2 sesiones)
15. PA: MVC (1 sesión)
16. PA: Pipes&Filters, o Broker. (1 sesión)


Según mis cálculos, ahora mismo llevaríamos 21 sesiones + parcial.

17. Pruebas: fundamental que aprendan a hacer pruebas. Habría que utilizar JUnit y mirar Nunit a ver qué tal. Repaso a lo que dice el PU sobre pruebas, y algún patrón de Pruebas (2 sesiones).
18. Gestíón de Calidad de Software: ISO 9000, CMM (2 sesiones)

Y con esto hemos llegado a las 26 sesiones. Aunque no da tiempo a ver la parte de Orientación a Componentes y Frameworks, lo puedo dar como "culturilla general" o enlazar artículos de interés.



No hay comentarios: