sábado, 16 de agosto de 2014

APO1 - Nivel 3 en C#: Notas Curso

Índice

0. Introducción
1. Enunaciado
1.1 Vista previa de la aplicación (en Java)
2. Requerimientos
2.1 R1: Registrar o cambiar nota
2.2 R2: Calcular el promedio de las notas de los estudiantes
2.3 R3: Calcular el número de estudiantes del promedio
3. Modelo del Mundo del Problema
4. Modelo de la Interfaz Gráfica de Usuario
5. Modelo de Pruebas Unitarias
6. Exploración de c´doigo
6.1 Modelo
6.2 GUI
7. Recursos
7.1 Java 
7.2 C#
7.2.1 Solución y proyectos
7.2.2 Documentación del código fuente de la aplicación
7.2.3 Aplicación en ejecución
7.2.3.1 Capturas de pantalla
7.2.3.2 Vídeo
8. Cambios
9. Conclusiones
10. Glosario
11. Literatura & Enlaces

0. Introducción

Empezamos con la traducción de los ejercicios del Nivel 3 de Algorítmica y Programación Orientada a Objetos (APO1) del proyecto Cupi2 del Departamento de Ingeniería de Sistemas y Computación de la Universidad de los Andes (Colombia). En esta oportunidad crearemos una aplicación para el manejo de notas de un curso que está compuesto hasta por doce (12) estudiantes. En este nivel se hará ahínco en el uso de contenedores de valores de tamaño fijo como elementos de modelaje de atributos cuyo valor es una secuencia de objetos. A lo anterior, también se suma el uso recurrente de instrucciones de repetición para la modificación, recorrido del contenido de la secuencia de objetos.


[Nota: Se respetará cada uno de los elementos que pertenecen al proyecto de Cupi2 del Departamento de Ingeniería de Sistemas y Computación de la Universidad de los Andes. El uso de este material intelectual es única y expresamente para la difusión de conocimiento de tecnologías de desarrollo y las metodologías inherentes a esta profesión.]

1. Enunciado

Descripción del planteamiento del problema para la aplicación Notas Curso originalmente especificado para su desarrollo en el lenguaje de programación Java. (Versión original en [4].)

Se necesita crear una aplicación para manejar las notas para un curso. El curso es visto por doce (12) estudiantes. Para cada estudiante se deber poder registrar la nota definitiva que sacó en el curso.

Adicionalmente, la aplicación debe permitir calcular el promedio del curso, y el número de estudiantes que tienen una nota por encima del promedio.

1.1 Vista previa de la aplicación (en Java)


En la Figura 1 se muestra la interfaz gráfica de usuario de la aplicación desarrollada en lenguaje de programación Java.
Aplicación Notas Curso en Java
Figura 1. Aplicación Notas Curso en Java.

2. Requerimientos

A continuación el conjunto de requerimientos funcionales identificados en la etapa de análisis del planteamiento del problema (sección 1) de Notas Curso. (Fuente: [6].]

2.1 R1: Registrar o cambiar nota

Código: R1

Descripción: Registrar o cambiar nota

Resumen: Se deben poder agregar/modificar la nota de cualquier estudiante del curso.

Entradas:
  • Identificador del estudiante a modificar
  • Nueva nota para el estudiante
Resultados:
  • El estudiante tiene registrar su nueva nota

2.2 R2: Calcular el promedio de las notas de los estudiantes

Código: R2

Descripción: Calcular el promedio de las notas de los estudiantes.

Resumen: Se deben poder calcular el promedio de todas las notas de los estudiantes del curso.

Entradas: «Ninguna»

Resultados:
  • El promedio de las notas del curso. De ser la suma de todas las notas dividido en el número de estudiantes.

2.3 R3: Calcular el número de estudiantes por encima del promedio

Código: R3

Descripción: Calcular el número de estudiantes por encima del promedio

Resumen: Se quiere saber cuántos estudiantes tienen una nota superior a la nota promedio del curso.

Entradas: «Ninguna»

Resultados:
  • Número de estudiantes con una nota superior a la nota promedio del curso.

3. Modelo del Mundo del Problema


En el diagrama UML de la Figura 2 se esquematiza el modelo del mundo del problema para la aplicación Notas Curso. (En la sección 8 se resaltan los cambios realizados sobre el modelo original hallado en [7].)
Modelo del mundo del problema.
Figura 2. Modelo del mundo del problema.

4. Modelo de la Interfaz Gráfica de Usuario


En la Figura 3 se esquematiza el diagrama UML con los artefactos integrales de la interfaz gráfica de usuario. (Este modelo es una adaptación de la versión original [8].)
Modelo de la intefaz gráfica de usuario.
Figura 3. Modelo de la intefaz gráfica de usuario.

5. Modelo de Pruebas Unitarias


El diagrama UML esquematizado en la Figura 4 presenta el modelo de pruebas unitarias. (Original en [9].)
Modelo de pruebas unitarias
Figura 4. Modelo de pruebas unitarias.

6. Exploración de Código C#

6.1 Modelo
Artefactos del modelo del mundo del problema

6.2 GUI
Artefactos integrales del modelo de interfaz gráfica de usuario.

7.1 Java

Conjunto de recursos del proyecto en su versión original [4]:

7.2.1 Solución y proyectos

Enlaces de descarga de archivo ZIP con la solución y los proyectos integrales de la aplicación:

7.2.2 Documentión de código fuente de la aplicación

Enlace de descarga de la documentación (formato CHM) del código fuente C# de la aplicación.

7.2.3 Aplicación en ejecución

7.2.3.1 Capturas de pantalla
Notas Curso en C#
Figura 5. Notas Curso en C#.
7.2.3.2 Vídeo

8. Cambios

Cambios en el diseño de la clase Curso:
  • El método darNota renombrado a ObtenerNota.

9. Conclusiones

A pesar de que en los ejercicios de los niveles 2 y 3 ya habíamos trabajado con estructuras de datos simples (secuenciales) para la manipulación de grupos de atributos, a partir de este ejercicio se hará especial énfasis en su uso. Aquí, por ejemplo manipulamos grupos de controles -Label y Button- como grupos de atributos; esto facilito en gran medida crear varios controles de los tipos correspondientes de forma más ágil que si lo hubiéramos hecho uno por uno. En el próximo ejercucio crearemos (trudiciremos) una aplicación para la administración de las reservas en un vuelo.

10. Glosario

  • Arreglo
  • Atributo
  • Clase
  • Grupo de atributos
  • Modelo
  • UML
  • Uniandes
  • Universidad de los Andes
  • Vector

11. Literatura & Enlaces

[1]: Universidad de los Andes - http://www.uniandes.edu.co
[2]: Departamento de Ingeniería de Sistemas y Computación - http://sistemas.uniandes.edu.co
[3]: Proyecto Cupi2 - http://cupi2.uniandes.edu.co/sitio
[4]: Notas Curso - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso
[5]: Enunciado - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso
[6]: Requerimientos - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso/requerimientos-1660
[7]: Modelo Conceptual - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso/modeloconceptual-n3notascurso
[8]: Interfaz - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso/interfaz-n3notascurso
[9]: Pruebas - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso/pruebas-n3notascurso
[10]: JavaDoc - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso/javadoc-n3notascurso
[11]: Visualización Código - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/notas-curso/javadoc-n3notascurso


J

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.