2020-20
Nombre del curso: | Desarrollo de Software por Equipos |
Créditos: | 3 créditos |
Sección 1: | Sergio Velásquez (sy.velasquez10@uniandes.edu.co) Martes y jueves de 8:00 a 9:15 |
Sección 2: | José Bocanegra(j.bocanegra@uniandes.edu.co) Martes y jueves de 10:00 a 11:15 |
Sección 3: | Rubby Casallas (rcasalla@uniandes.edu.co) Lunes y jueves de 14:30 a 15:45 |
Sección 4: | César Augusto Forero (ca.forero10@uniandes.edu.co) Martes y jueves de 17:30 a 18:45 |
Versión PDF | Click Aquí |
Descripción
Este curso pretende desarrollar en los estudiantes la competencia de trabajar en equipo, en el contexto de la ejecución de un proyecto de desarrollo de software. Por consiguiente, el curso incluye elementos introductorios de Ingeniería de Software relacionados con procesos de gestión de equipos (riesgos, planeación, seguimiento, comunicación, entre otros) y con procesos de diseño y calidad (arquitectura, pruebas, inspecciones, integración continua). Es parte fundamental el uso de herramientas para hacer más efectivos y eficientes estos procesos.
Objetivos
El curso está diseñado con base en 5 grandes ideas. Se espera que al finalizar el curso el estudiante cumpla con una serie de objetivos en cada una de estas.
- Construcción de equipo: Para que un proyecto de desarrollo de software sea exitoso, los integrantes del proyecto deben aprender a trabajar en equipo de manera organizada, efectiva, eficiente y feliz. Los equipos con estas características se construyen de manera gradual siguiendo diversas estrategias.
- Producir Software de Calidad: La calidad del software se planea, se construye y se puede medir objetivamente. Para obtener software de calidad se puede seguir diversas estrategias, algunas de ellas se pondrán en práctica en este curso.
- Respetar la arquitectura y el diseño para facilitar el desarrollo: Cada integrante de un equipo de desarrollo de software debe contribuir con el mejoramiento de la arquitectura y del diseño de la aplicación y, una vez las decisiones están tomadas, debe respetarlas y seguir los lineamientos definidos.
- Utilizar efectivamente Tecnologías y Herramientas de la industria: Las tecnologías (lenguajes de programación, ambientes de desarrollo, librerías, APIs, etc.) que se utilizan en este curso para el desarrollo de las aplicaciones son utilizadas en el desarrollo de aplicaciones en la industria.
- Ética del Ingeniero de Software: Reconocer las actitudes y valores que movilizan la conducta individual y de grupo.
Sobre el proyecto
Este curso gira alrededor de un proyecto de desarrollo de software. Se espera que los estudiantes adquieran conocimientos y desarrollen habilidades mientras avanzas en el proyecto. El proyecto se hace en equipos de entre 5 a 6 estudiantes. El producto que se debe construir en el proyecto está conformado por dos aplicaciones (Front-end y Back-end) que se integran a través de una interfaz de servicios.
Aplicación Back-End
La aplicación back está desarrollada en JEE. La aplicación provee una interfaz de servicios y tiene una capa que se encarga de la lógica y otra de la persistencia de los datos. La interfaz de servicios usa JAX-RS; la capa de lógica EJB y la capa de persistencia JPA.
Aplicación Front-End
La aplicación Front-end es web, de diseño adaptativo (responsive), de una sola página (Single Page Application) y está desarrollada usando el framework Angular. Está compuesta por varios módulos funcionales; un conjunto de servicios HTTP que se conectan a la API provista por el back; y diferentes componentes para listar, detallar, actualizar y borrar los recursos. También cuenta con un módulo de enrutamiento y manejo de errores. Se usan herramientas adicionales como Bootstrap (para un diseño visual atractivo y responsive) y ngtoastr (para el manejo de las notificaciones al usuario).
Retos del equipo
Los retos a los que el grupo se enfrenta son similares a los que deben abordar un grupo de desarrollo en el mundo real.
Los estudiantes tendrán que rendir cuentas tanto por su trabajo individual como por su contribución, colaboración y soporte en el equipo. El éxito de cada estudiante depende de la terminación exitosa del producto y en la evidencia del buen funcionamiento del equipo.
Cada semana el estudiante debe realizar actividades de manera autónoma para las que se dispone de un conjunto de recursos en línea que le permitirán avanzar en ellas. Durante la sesión presencial se aclararán dudas y se trabajará en cómo los conceptos se incorporan en el proyecto. Durante las sesiones de laboratorio el equipo trabajará en el seguimiento/planeación del proyecto y el profesor dará retroalimentación sobre los avances.
Desarrollo en ciclos
El proyecto se desarrolla en tres (3) ciclos. En cada ciclo el equipo debe avanzar en la construcción del producto y reflexionar sobre el trabajo realizado por todos, con el fin de proponer actividades de mejora e incentiven la autogestión. En cada ciclo se construye Producto y se construye Equipo de trabajo.
Evaluación
El curso se calificará en exámenes individuales teórico/prácticos que valen el 40% de la nota del curso y en 60% de la nota de un proyecto distribuida en tres ciclos y dentro de estos en varios entregables. Parte de la nota de los parciales puede corresponder a quices que se anunciarán con antelación.
Políticas de calificaciones
- Las calificaciones de los ciclos del proyecto se dividirán en trabajo individual donde se evalúa la completitud de los entregables acordados*, y en trabajo grupal donde se evalúan la actividades y procedimientos que como grupo deben realizar. La nota grupal no necesariamente es la misma para cada integrante; esta nota dependerá de la contribución de cada uno.
- Todos los miembros del grupo serán evaluados con respecto a la misma carga de trabajo en el proyecto. Por lo tanto, los grupos deben llegar a un acuerdo sobre la distribución de la carga en conjunto con el profesor.
- Solo el profesor organiza y cambia los grupos. Las notas de las entregas del proyecto son individuales y dependerán del trabajo realizado por cada uno de los integrantes. Si hay evidencia que un integrante no trabajó para la entrega, su nota en esa entrega será de 0.0.
- El profesor está en libertad de dar bonos sobre los exámenes o ciclos del proyecto los cuales no deben superar el 5% de la nota máxima del examen o ciclo.
- Para aprobar el curso la nota calculada debe ser al menos de 3.00. Las definitivas se darán en dos decimales. Las notas finales tendrán dos decimales. Las reglas del redondeo que se aplican al segundo decimal son: Si el tercer dígito es menor que 5, el anterior no se modifica. Si es mayor o igual que 5, el anterior se incrementa en una unidad.
* Nota: Se considera que un entregable está completo cuando cumple con el funcionamiento esperado, está probado, documentado y fue entregado a tiempo.
Asistencia a clase
- La asistencia a clase y a la sesión de laboratorio es obligatoria. Cada estudiante debe firmar una hoja de asistencia que el profesor entregará al comienzo de la clase. Es responsabilidad del estudiante firmar la hoja de asistencia al comienzo de la clase y de las sesiones de trabajo en grupo.
- La no asistencia a una sesión de trabajo grupal en clase también afectará la nota de los entregables de esa sesión.
- El estudiante que no asista a por lo menos el 80% de las clases y las sesiones de laboratorio, no podrá aprobar el curso.
Cláusula de ajustes razonables
Los ajustes razonables tienen el objetivo de eliminar las posibles barreras, visibles o invisibles, que impiden el pleno goce del derecho a la educación. En las circunstancias actuales, el protocolo de ajuste razonable se adapta para considerar las dificultades específicas que enfrentan los estudiantes, incluyendo barreras de conectividad, de acceso a recursos tecnológicos apropiados, barreras de salud física y mental de los estudiantes o de sus familiares, que se agudizan en el confinamiento.
Si usted lo considera necesario o importante, siéntase en libertad de informar a su profesor/a lo antes posible si existe alguna barrera o dificultad, dentro de las señaladas anteriormente, y requiere de algún tipo de ajuste razonable para estar en igualdad de condiciones con los y las demás estudiantes.
Política de momentos difíciles
Todas las personas pueden pasar por un momento difícil que de alguna manera pueda afectar nuestra vida en la Universidad. Pueden ser problemas en casa, con la pareja, incluso estrés por esta u otra materia. Si usted siente que está pasando por un momento complicado, sin importar el motivo, siéntase con la tranquilidad de hablar con su profesor para pedir tiempo o apoyo. Ningún trabajo o entrega puede sobrepasar su salud mental y física. Su bienestar es lo más importante.
Recursos
- El detalle de los objetivos, así como, el calendario del curso y los enlaces a talleres y lecturas se encuentran en el sitio web del curso: https://sicuaplus.uniandes.edu.co/
- Las calificaciones del curso, así como material adicional, serán publicados en el espacio del curso en sicua: https://sicuaplus.uniandes.edu.co/ · El repositorio de código para el curso se encuentra en https://github.com/Uniandes-isis2603. Es necesario que todos los estudiantes creen una cuenta en github con su correo electrónico Uniandes. Esto les permitirá tener acceso a repositorios privado y al pack de herramientas para estudiantes https://education.github.com/pack
- La herramienta para la planeación, seguimiento y documentación será TeamWork https://www.teamwork.com/
- Cada estudiante tendrá una máquina virtual con las herramientas necesarias para el desarrollo del proyecto.