Atributos
Sigla: 
CI-0128
Créditos: 
3
Horas: 
3
Clasificación: 
Curso propio
Énfasis y ciclo: 
Tronco común 3.II
Descripción: 

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.

Objetivo general: 

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.  

Objetivos específicos: 

Durante este curso el estudiante desarrollará habilidades para:

  1. Conceptualizar y planificar un proyecto de software usando métodos, técnicas y herramientas adecuadas al contexto, para elaborar el Plan de proyecto.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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:

  1. Aplicar marcos de trabajo modernos de desarrollo de software (tales como metodologías ágiles) y utilizados en la industria para desarrollar el proyecto.
  2. Aplicar principios básicos de administración de proyectos a través del desarrollo del proyecto para realizar una adecuada gestión del mismo.
  3. 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.
  4. Aplicar buenas prácticas de seguridad del software a lo largo de todo el proyecto para producir una aplicación segura.
  5. 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.
  6. 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.
  7. 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.
Contenidos: 

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

Bibliografía: 
  1. Elmasri R. y Navathe S. “Fundamentos de Sistemas de Bases de Datos”, 6ta ed. Pearson-Addison Wesley, 2010.
  2. 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

LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.