Antecedentes Generales
Resumen
Esta asignatura presenta principios de diseño, herramientas y técnicas utilizadas en el desarrollo de software orientado a objetos, en el diseño de bases de datos y en la implementación de aplicaciones sobre servidores Web. Los conocimientos son integrados y practicados mediante la realización de un proyecto grupal de desarrollo de software.
Objetivos de Aprendizaje
Al cursar esta asignatura el alumno será capaz de:
- Interpretar modelos de diseño expresados como diagramas de clases, diagramas de objetos y diagramas de interacción de UML (Unified Modelling Language).
- Aplicar principios de diseño orientado a objetos en el diseño de arquitecturas de software.
- Aplicar patrones de diseño para lenguajes orientados a objetos en la resolución de problemas de desarrollo de software.
- Implementar en un lenguaje de programación orientado a objetos estructuras de datos dinámicas más comunes empleadas para la manipulación de datos en memoria principal.
- Diseñar e implementar bases de datos relacionales y manipularlas mediante SQL (Structured Query Language).
- Desarrollar aplicaciones simples de tres capas, para operar en Web.
- Practicar el desarrollo de software como trabajo en equipo.
Contenidos de la Asignatura
Unidad 1 : Introducción a las arquitecturas de software (3 sesiones)
- Descripción de arquitectura de software
- Software monolítico, arquitectura cliente/servidor, arquitectura de tres capas.
- Ingeniería de software: presentación.
Unidad 2 : Diseño orientado a objetos (9 sesiones)
- El Lenguaje Unificado de Modelamiento (UML): Diagramas de Clases, Diagramas e Objetos, Diagramas de Interacción.
- Principios de diseño orientado a objetos: Principio de Sustitución de LIskov, Principio Abierto-Cerrado, Principio de Inversión de Dependencia, Principio de encapsulación (encapsulación de datos, de operaciones, de tipo, y de detalles arquitecturales).
- Patrones de diseño: definiciones, ejemplos de patrones GoF, patrón Modelo-Vista-Controlador.
Unidad 3 : Estructuras de datos en memoria principal (6 sesiones)
- Estructuras dinámicas elementales: lista simplemente enlazada, doblemente enlazada, lista circular.
- Colecciones tradicionales (lista, pila, cola): implementación mediante estructuras dinámicas y estáticas; ventajas y desventajas.
- Árboles: definiciones; Árbol Binario de Búsqueda (ABB); operaciones y recorrido sobre un ABB.
Unidad 4 : Sistemas de Bases de datos (6 sesiones)
- Definiciones: sistema de base de datos, sistema de administración de base de datos.
- El modelo de bases de datos relacional: fundamentos.
- Álgebra relacional
- Modelo Entidad-Relación
- Normalización de bases de datos relacionales
- Diseño de bases de datos relacionales
- Lenguaje de consulta estructurado (SQL); SQL inserto en aplicaciones.
- Bases de datos orientadas a objetos: presentación, características.
Unidad 5 : Aplicaciones sobre Internet (9 sesiones)
- Protocolos de red en Internet
- Lenguajes para desarrollo de aplicaciones en Web
- XML como lenguaje de intercambio de datos entre aplicaciones.
- Tecnologías para la integración de sistemas distribuidos (ej. Webservices)