lunes, 11 de agosto de 2014

APO1 - Nivel 2 en C#: Estudiante

Tabla de Contenido

0. Introducción
1. Enunciado
1.1 Vista previa de la aplicación (en Java)
2. Requerimientos
2.1 R1: Registrar Estudiante
2.2 R2: Registrar Curso
2.3 R3: Asignar Nota Curso
2.4 R4: Calcular Promedio
2.5 R5: Informar si el estudiante está en prueba académica
2.6 R6: Informar si un curso está en el pénsum del estudiante
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ódigo C#
7. Recursos
7.1 Java
7.2 C#
7.2.1 Solución y proyectos
7.2.2 Documento 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

En esta nueva ocasión dedicaremos tiempo y recursos en traducir una aplicación creada en lenguaje de programación Java a C# de .NET, la cual está destinada a la gestión de los cursos que toma un estudiante durante un semestre académico. Entre las operaciones esenciales para la gestión en cuestión implementaremos estas: registro del estudiante, visualización de la información del estudiante, manejo de las notas por cada materia (curso) matriculada. Continuaremos con el uso recurrente de Visual Studio 2013 como entorno de construcción de los artefactos integrales (i.e., modelo e interfaz gráfica de usuario) de la solución.


[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 texto en cursiva indica un extracto literal de la fuente; en caso contrario, se dicta explícitamente.]

1. Enunciado

A continuación se describe el planteamiento original de la aplicación de gestión de estudiantes publicado en [4].

Se quiere construir una aplicación para el manejo de cursos de un estudiante. Los datos personales del estudiante son nombre, apellido, y código. El estudiante toma sólo 5 cursos en el semestre. Cada uno de los cursos tiene un nombre, un código y un número de créditos. Al finalizar el curso, al estudiante se le asigna una nota que está entre 1.5 y 5.0.

El estudiante entre en prueba académica si su promedio es inferior a 3.25. Dicho promedio se calcula con las notas de las materias que ha concluido, según los créditos de las mismas: suma de las multiplicaciones de los créditos de la materia por la nota obtenida, dividida entre el total de créditos.

Por ejemplo: el estudiante ha terminado dos materias:
  • Cálculo 1, y 
  • Física 1, 
la primera de 4 créditos y la segunda de 3. Las notas del estudiante son:
  • Cálculo 1: 4.5
  • Física 1: 3.5

Por lo tanto, el promedio del estudiante se calcula con:
Cálculo prueba académica
Figura 1. Cálculo prueba académica.
La aplicación debe permitir:
  • Registrar al estudiante, 
  • Registrarle los 5 cursos al estudiante, decir si un curso está en el pénsum del estudiante, 
  • Asignar las notas de los cursos del estudiante, 
  • Calcular el promedio con aquellas materias que tienen nota e indicar si está en prueba académica.

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


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

2. Requerimientos

A continuación el conjunto de requerimientos funcionales definidos para la aplicación Estudiante. (Fuente: [5].)

2.1 R1: Registrar estudiante

Código: R1

Descripción: Registrar estudiante

Resumen: Se registra un estudiante.

Entradas:
  • Código del estudiante
  • Nombre del estudiante
  • Apellidos del estudiante
Resultados:
  • El nuevo estudiante queda registrado.

2.2 R2: Registrar curso

Código: R2

Descripción: Registrar curso

Resumen: Se agrega un nuevo curso al estudiante, hasta un máximo de 5 cursos.

Entradas:
  • Nombre del curso a adicionar
  • Código del curso a adicionar
  • Número de créditos del curso, este no puede ser menor a cero.
Resultados:
  • El nuevo curso se adicionó al pénsum del estudiante.

2.3 R3: Asignar nota curso

Código: R3

Descripción: Asignar nota curso

Resumen: Se asigna una nota al curso, únicamente si no se le ha asignado previamente.

Entradas:
  • Código del curso al cual se le adicionará la nota.
  • Nueva calificación del curso. La calificación debe estar entre 1.5 y 5.0.
Resultados:
  • El curso queda con su calificación registrada.

2.4 R4: Calcular promedio

Código: R4

Descripción: Calcula el promedio del estudiante

Resumen: Calcula el promedio del estudiante.

Entradas:
  • Materias vistas por el estudiante que tienen nota asignada.
Resultados:
  • Promedio calculado con las materias vistas en prueba académica.
  • Se informa si el estudiante está en prueba académica (promedio < 3.25) o no.

2.5 R5: Informar si el estudiante está en prueba académica

Código: R5

Descripción: Informar si el estudiante está en prueba académica.

Resumen: Si el estudiante tiene promedio menor a 3.25 lo está.

Entradas:
  • Promedio calculado con las materias vistas por el estudiante.
Resultados:
  • Se informa si el estudiante está en prueba (promedio < 3.25) o no.

2.6 R6: Informar si un curso está en el pénsum del estudiante

Código: R6

Descripción: Informar si un curso está en el pénsum del estudiante.

Resumen: Informa si un curso dado está registrado en el pénsum del estudiante.

Entradas:
  • Código del curso para buscar en el pénsum del estudiante.
Resultados:
  • Se informa si el curso está incluido o no.

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 Estudiante. (En la sección 8 se resaltan los cambios realizados sobre el modelo original hallado en [6].)
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 que componen la interfaz gráfica de usuario. (Este modelo es una adaptación de la versión original [7].)
Modelo interfaz gráfica de usuario
Figura 3. Modelo interfaz gráfica de usuario.



5. Modelo de Pruebas Unitarias


El diagrama UML esquematizado en la Figura 4 presenta el modelo de pruebas unitarias de la aplicación Estudiante.
Modelo interfaz gráfica de usuario
Figura 4. Modelo interfaz gráfica de usuario.

6. Exploración de Código C#

6.1 Modelo
Artefactos del modelo del mundo del problema

6.2 GUI
Artefactos de la interfaz gráfica de usuario

7.1 Java

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

7.2 C#

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 Documentació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
El Estudiante en C#
Figura 5. El Estudiante en C#.
El Estudiante en C# y Java
Figura 6. El Estudiante en C# y Java.
7.2.3.2 Vídeo

8. Cambios

Lista de cambios realizados a la clase Estudiante:
  • Propiedades para los campos codigo, nombre, y apellido.
  • Agregación del arreglo para representar los 5 cursos.
  • Remoción de los métodos:
    • darCodigo
    • carApellido
    • darCurso1…5
    • darNombre
Cambios realizados a la clase Curso:
  • Propiedades para los campos codigoCurso, nombreCurso, creditos, y nota.
  • Remoción de los métodos:
    • darCodigoCurso
    • darNombreCurso
    • darCreditos
    • darNota

9. Conclusiones

Esta aplicación puso en prueba nuestras habilidades básicas para la construcción de interfaces gráficas de usuario a través del diseñador de Visual Studio 2013. Se introdujeron varios cambios en el modelo del mundo del problema de la aplicación original para realizar la adaptación correspondiente a los elementos de programa de C# (e.g., propiedades). Para la próxima ocasión ascenderemos al nivel tres (3) para conocer otras construcciones de contención de elementos variables. Empezaremos con un programa para la administración de las notas del curso (muy similar a este aplicación que acabamos de traducir).

10. Glosario

  • Artefacto
  • Componente
  • Estudiante
  • Interfaz gráfica de Usuario
  • Modelo del mundo del problema
  • UML
  • Uniandes
  • Universidad

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]: Enunciado - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-2/estudiante
[5]: Requerimientos - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-2/estudiante/requerimientos-2063
[6]: Modelo Conceptual - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-2/estudiante/modeloconceptual-n2estudiante
[7]: Interfaz - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-2/estudiante/interfaz-n2estudiante
[8]: Pruebas - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-2/estudiante/pruebas-n2estudiante
[9]: Estudiante - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-2/estudiante
[10]: Bachelor, Student, User icon | Icon Search Engine | Iconfinder - https://www.iconfinder.com/icons/49394/bachelor_student_user_icon#size=48
[11]: JavaDoc - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-2/estudiante/javadoc-n2estudiante


J

No hay comentarios:

Publicar un comentario

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