Este curso se enfoca en la aplicación e integración de los conocimientos y habilidades que los estudiantes están aprendiendo en los cursos de Bases de Datos e Ingeniería de Software (los cuales llevan simultáneamente en el tercer año de la carrera de Bachillerato en Computación e Informática). Durante el curso se desarrolla un proyecto siguiendo las buenas prácticas de calidad, cuyo producto es una aplicación web con su correspondiente base de datos.
El objetivo general del curso es que los estudiantes consoliden e integren los conocimientos y habilidades aprendidos en los cursos de Bases de Datos e Ingeniería de Software, mediante su aplicación en el contexto de un proyecto de software con el fin de que construyan una aplicación web que acceda a una base de datos, siguiendo procesos adecuados de planificación, análisis, diseño, implementación y pruebas.
Durante este curso el estudiante desarrollará habilidades para:
- Conceptualizar y planificar un proyecto de software usando métodos, técnicas y herramientas adecuadas al contexto, para elaborar el Plan de proyecto.
- Analizar y extraer los requerimientos de un software usando métodos, técnicas y herramientas adecuadas al contexto, para especificar los requerimientos de la aplicación web y de la base de datos.
- Diseñar una aplicación web utilizando patrones de arquitectura y diseño básicos, modelado de base de datos relacionales, y métodos de Interacción Humano-Computador adecuados al contexto, para generar las interfaces de usuario, la arquitectura de la aplicación, y los esquemas conceptual y lógico de la base de datos.
- Implementar la aplicación web usando métodos, técnicas y herramientas adecuadas al contexto, para producir la aplicación web y su base de datos.
- Validar y verificar la aplicación web y su base de datos usando métodos, técnicas y herramientas adecuadas al contexto, para evaluar si la aplicación web desarrollada satisface los requerimientos originales y cumple con atributos de calidad.
- Reconocer el problema de inyección de código y explicar cómo evitarlo, mediante la ilustración del problema y el uso de técnicas de defensa durante el desarrollo del proyecto, para evitar que la aplicación web exhiba esta vulnerabilidad de seguridad.
Transversales:
- Aplicar marcos de trabajo modernos de desarrollo de software (tales como metodologías ágiles) y utilizados en la industria para desarrollar el proyecto.
- Aplicar principios básicos de administración de proyectos a través del desarrollo del proyecto para realizar una adecuada gestión del mismo.
- Aplicar buenas prácticas de aseguramiento de la calidad del software a lo largo de todo el proyecto para producir una aplicación de calidad.
- Aplicar buenas prácticas de seguridad del software a lo largo de todo el proyecto para producir una aplicación segura.
- Utilizar herramientas de trabajo colaborativo a través del desarrollo del proyecto con el fin de soportar el proceso de construcción de la aplicación web.
- Generar acciones comunicativas efectivas para fomentar la socialización de la información y el conocimiento, mediante la elaboración presentaciones orales y reportes escritos sobre el avance del proyecto.
- Trabajar en equipo de forma cooperativa para fomentar la integración de múltiples visiones y alternativas de solución de problemas, mediante la planificación, distribución y ejecución de las actividades asociadas al proyecto.
Objetivos |
Eje temático |
Contenidos |
|
Ingeniería de Software |
Bases de Datos |
||
1, 8, 9, 12, 13 |
Conceptualización y Planificación de proyectos de software |
Técnicas de extracción de requerimientos
Definición del alcance
Estimación del proyecto
Planificación del proyecto
Herramientas para el desarrollo de la aplicación y trabajo colaborativo: Gestión de proyectos |
Nociones básicas sobre bases de datos relacionales, y relación entre la base de datos e ingeniería de software.
|
2, 8, 9, 10, 11, 12, 13 |
Requerimientos |
Técnicas de extracción de requerimientos
Herramientas para el desarrollo de la aplicación y trabajo colaborativo: Modelado |
Diseño conceptual de bases de datos
Herramientas para el diseño de bases de datos
|
3, 8, 9, 10, 11, 12, 13 |
Análisis y Diseño |
Diseño de la aplicación de web, arquitectura, interfaces y base de datos
Programación de las capas
Herramientas para el desarrollo de la aplicación y trabajo colaborativo: Modelado y Diseño
|
Diseño conceptual y lógico de bases de datos
Herramientas para el diseño de bases de datos
|
4, 6, 7, 8, 9, 10, 11, 12, 13 |
Implementación y Desarrollo |
Herramientas para el desarrollo de la aplicación y trabajo colaborativo: Gestión de versiones, Modelado, Desarrollo web, Diseño de interfaces
Liberación de la aplicación web |
Refinamiento del diseño de la base de datos.
SQL básico: comandos para la definición del esquema de la base de datos con sus restricciones, la manipulación y consulta básica de datos
SQL avanzado: consultas avanzadas, procedimientos almacenados, disparadores, cursores, y vistas
Herramientas para la implementación de bases de datos: Sistema de gestión de bases de datos relacionales |
5, 7, 8, 9, 10, 11, 12, 13 |
Validación y Verificación |
Pruebas Prácticas de calidad
Herramientas para el desarrollo de la aplicación y trabajo colaborativo: Gestión de calidad y pruebas
|
Evaluación de la calidad del diseño mediante guías informales y el proceso de normalización
Inyección SQL y su prevención
Índices
Transacciones y niveles de aislamiento |
- Elmasri R. y Navathe S. “Fundamentos de Sistemas de Bases de Datos”, 6ta ed. Pearson-Addison Wesley, 2010.
- Pressman, R. (2010). Ingeniería de Software: un enfoque práctico. Séptima Edición, México, D. F. McGraw-Hill Interamericana. ISBN: 978-607-15-0314-5.
Recursos estudiantiles
Para información sobre recursos estudiantiles disponibles en la UCR, incluyendo el Sistema de bibliotecas y la normativa universitaria vigente, favor visitar la página: https://www.ecci.ucr.ac.cr/vida-estudiantil/servicios-institucionales-para-estudiantes/guia-de-recursos-estudiantiles-de-la-ucr
Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.