Está en la página 1de 18

1

Sistema Inteligente de agrupación aleatoria - SIAA

Raúl Moncada
Diana Marcela Aparicio Gironza
Michael Estiben Amaya
Diego Sebastián Ríos Pérez
Edward Giovanni Amaya Rodríguez Abril2019.

Institución universitaria Politécnico Grancolombiano.


Facultad de ingeniería diseño e innovación.
Ingeniería de software I
2

Tabla de contenido
INTRODUCCIÓN E INFORMACIÓN GENERAL .......................................................... 3
Objetivo general .................................................................................................................. 4
Objetivos específicos .......................................................................................................... 4
ESTADO DEL ARTE ......................................................................................................... 5
MARCO TEORICO ............................................................................................................ 6
MARCO CONCEPTUAL................................................................................................... 7
CASOS DE USO E INTERFAZ GRAFICA ...................................................................... 8
MODELADO UML: DIAGRAMA DE CLASES........................................................... 13
REPRESENTACIÓN GRAFICA DIAGRAMA DE CLASES ........................................ 15
BIBLIOGRAFIA .............................................................................................................. 16
3

Capítulo 1

INTRODUCCIÓN E INFORMACIÓN GENERAL

El sistema inteligente de agrupación – SIAA, es un software desarrollado pensando en el

beneficio de la universidad, pues este podrá facilitar al usuario la conformación de grupos

de trabajo partiendo de una extensa lista de alumnos, la cual se organizará de manera

alfabética teniendo en cuenta datos personales (Código Estudiante, nombres, apellidos,

edad, sexo, carrera, semestre, materia) y de acuerdo a esto se conformarán los grupos

teniendo en cuenta cantidad de integrantes, adicional a esto el sistema contara con una

opción de búsqueda por código de estudiante permitiendo así poder automatizar procesos

y teniendo como beneficio el ahorro de tiempo.


4

Capítulo 2

OBJETIVOS

Objetivo general

Facilitar la gestión y conformación de los grupos de trabajo para los módulos de la

modalidad virtual, permitiendo agilizar la constitución del grupo desde el inicio del

módulo, lo que permitirá dar un poco más de orden a la creación del equipo de trabajo y

facilitará la interacción entre los integrantes con tiempo de anticipación.

Objetivos específicos

• Establecer grupos para designar cantidad igualitaria de personas

• Distinguir capacidades de los estudiantes para la distribución

• Situar estudiantes en grupos, en donde se puedan fortalecer sus debilidades

• Detallar participación unitaria para evaluar al estudiante


5

Capítulo 3

ESTADO DEL ARTE

Dentro del análisis de la información recopilada, se puede encontrar que los algoritmos

de aleatoriedad tienen bastantes años y tiene su base en las teorías de probabilidad a las

cuales es muy difícil seguir el rastro, ya que pueden ser tan antiguas como las

matemáticas mismas y el problema acá planteado se basa en ello, los algoritmos de

aleatoriedad. Desde los casinos, hasta sistemas complejos de cifrado pueden implementar

un algoritmo aleatorio, sin embargo, el nivel de complejidad en este caso no debe ser tan

alto. Se trata, pues, de un sistema que debe ser desarrollado a la medida, ya que, su

objetivo es solucionar una problemática muy específica, para una institución, con un

número reducido de actores.


6

Capítulo 4

MARCO TEORICO

Como ya se ha dicho antes, los algoritmos de aleatoriedad ya han sido investigados y se

ha profundizado en ellos, tanto en la ciencia matemática como en la programación, este

último, será el campo de acción de la investigación, lograr construir un algoritmo que

permita tomar un grupo de estudiantes por módulo, dividirlo y crear grupos de trabajo a

la medida, totalmente equitativos y equilibrados.


7

Capítulo 5

MARCO CONCEPTUAL
8

Capítulo 6

CASOS DE USO E INTERFAZ GRAFICA

El software dispondrá de una interfaz gráfica, en ella el usuario tendrá la opción

tanto de consultar como de ingresar los datos de los estudiantes que se requiere agrupar.

Inicialmente el usuario creara un grupo general, lo más recomendable es que sea el de la

materia requerida.

Caso de uso CU0001


Objetivo de la prueba: Como usuario quiero validar el botón crear nuevo grupo
Descripción de la prueba:
* Dado que me encuentro en la vista para crear un grupo de trabajo
* Cuando no se ha asignado un nombre para el grupo que se va a crear
* Entonces el sistema no permitirá que el usuario pueda continuar con el proceso
Resultado esperado:
Cuando el usuario no asigne un nombre al grupo, el sistema no permitirá continuar con el
proceso y mostrara la siguiente alerta " Debe asignar un nombre al grupo"
Interfaz gráfica:
9

Caso de uso CU0002


Objetivo de la prueba: Como usuario quiero crear un grupo
Descripción de la prueba:
* Dado que me encuentro en la vista para crear un grupo de trabajo
*Cuando ingrese en el campo Nombre un seudónimo para el mismo
* Entonces el usuario podrá hacer clic en el campo crear nuevo grupo
Resultado esperado:
Cuando el usuario asigne un nombre al grupo al hacer clic en el botón crear nuevo grupo, el
sistema mostrara la alerta " Grupo creado exitosamente"
Consideraciones especiales:
Es importante que el nombre que se asigne al grupo se relacione a la materia requerida
Interfaz gráfica:

Luego el usuario deberá ingresar los siguientes datos de los estudiantes. Las casillas

señaladas con un * son de carácter obligatorio.

Caso de uso CU0003


Objetivo de la prueba: Como usuario quiero ingresar los datos de los estudiantes
Descripción de la prueba:
* Dado que me encuentro en la vista para ingresar datos de los estudiantes
* Cuando ingrese información en los campos obligatorios
- Nombres
- Primer apellido
- Genero
- Edad
- Semestre o créditos cursados
* Entonces el usuario podrá hacer clic en el botón agregar otro estudiante
10

Resultado esperado:
Cuando el usuario ingrese información en los diferentes campos, podrá hacer clic en el
botón agregar otro estudiante
Consideraciones especiales:
Es importante crear los grupos de al menos 10 estudiantes
Interfaz gráfica:

Cuando se ha realizado el ingreso de información de al menos diez (10) estudiantes, el

software dará la opción de ingresar el número máximo y mínimo de integrantes por

grupo, así como seleccionar un parámetro a usar para la conformación de los subgrupos,

estos podrán ser:

- Organizar por género: Este parámetro conformará por subgrupos de manera

aleatoria intercalando hombres y mujeres equitativamente

- Organizar por edad: Este parámetro conformara subgrupos de manera

aleatoria teniendo en cuenta los rangos de edad de los estudiantes agrupando

con una diferencia no mayor o menor a tres (3) años


11

- Organizar por nivel: Este parámetro conformara subgrupos de manera

aleatoria teniendo en cuenta la cantidad de créditos cursados por cada

estudiante, agrupando con una diferencia no mayor o menor a 20 créditos.

Caso de uso CU0004


Objetivo de la prueba: Como usuario quiero Organizar un subgrupo de trabajo por
genero
Descripción de la prueba:
* Dado que me encuentro en la vista para organizar subgrupos de trabajo
* Cuando se organiza por genero
* Entonces se conformará subgrupos de manera aleatoria intercalando hombre y
mujeres de manera equitativa
Resultado esperado:
Cuando el usuario organice los subgrupos por género, estos se crearán de manera
equitativa teniendo en cuenta hombre y mujeres

Caso de uso CU0005


Objetivo de la prueba: Como usuario quiero Organizar un subgrupo de trabajo por edad

Descripción de la prueba:
* Dado que me encuentro en la vista para organizar subgrupos de trabajo
* Cuando se organiza por edad
* Entonces se conformará subgrupos de manera aleatoria teniendo en cuenta rangos
de edad agrupándolos por una diferencia de edad no mayor o menos de tres años
Resultado esperado:
Cuando el usuario organice los subgrupos por edad, estos se agruparán con una diferencia
de edad no mayor ni inferior a tres años

Caso de uso CU0006


Objetivo de la prueba: Como usuario quiero Organizar un subgrupo de trabajo por nivel
Descripción de la prueba:
* Dado que me encuentro en la vista para organizar subgrupos de trabajo
* Cuando se organiza por nivel
* Entonces se conformará subgrupos de manera aleatoria teniendo en cuenta la
cantidad de créditos cursados por cada estudiante
Resultado esperado:
12

Cuando el usuario organice los subgrupos por nivel, estos se agruparán por la cantidad de
créditos cursados teniendo en cuenta la diferencia de créditos no mayor ni inferior a 20
créditos

Interfaz gráfica:

Como resultado de la selección anterior, el programa creara los subgrupos estos serán

presentados al usuario en forma de lista y podrá exportarlos para una futura consulta

Caso de uso CU0007


Objetivo de la prueba: Como usuario ver un mensaje cuando se creen los subgrupos
Descripción de la prueba:
* Dado que me encuentro en la vista para organizar subgrupos de trabajo
* Cuando ya se han conformado los subgrupos de acuerdo con la organización
establecida
* Entonces el sistema mostrara un mensaje.
Resultado esperado:
Cuando el usuario cree un subgrupo, el sistema mostrara el mensaje "Subgrupo creado
satisfactoriamente"
Interfaz gráfica:
13

Capítulo 7

MODELADO UML: DIAGRAMA DE CLASES

Grupo
- misGrupos : LinkedList<String>
+ agregarGrupo (grupo : String) : void
+ ultimoGrupo ( ) : String

Integrantes
- integrantes : LinkedList<String>
+ agregarIntegrantes (grupo : String) : void
+ ultimoIntegrante ( ) : String
- botones ( ) : LinkedList<String>
+ agregarBoton (botón : String) : void
+ ultimoBoton ( ) : String

Lista
- contentPane : JPanel
- table : JTable
- modelo : DefaultTableModel
+ col : int = 0
+ datos : Object
- cargarTabla ( ) : void
+ mostrarDatos ( ) : void

NuevoIntegrante
+ nombreIntegrante : String
+ primerApellidoIntegrante : String
+ SegundoApellidoIntegrante : String
+ generoIntegrante : boolean
+ edadIntegrante : int
+ creditosOSemestre : boolean
+ nivelEstudio : int
+ getNombre ( ) : String
+ setNombreI (nombre : String) : void
+ getApellido ( ) : String
+ setPrimerApellidoI (pApellido : String) : void
+ getSApellido ( ) : String
+ setSegundoApellidoI (sApellido : String) : void
+ getGenero ( ) : String
+ setGenero (genero : boolean) : void
+ getEdadIntegrante ( ) : int
14

+ setEdadIntegrante (edadIntegrante : int) : void


+ getCreditosOSemestre ( ) : String
+ setCreditosOSemestre (creditosOSemestre : boolean) : void
+ getNivelEstudio ( ) : int
+ setNivelEstudio (nivelEstudio : int) : void
+ compareTo (nuevoIntegrante t) : int

OrdenarGrupos
- contentPane : JPanel
- table : JTable
- modelo : DefaultTableModel
+ col : int = 0
+ datos : Object
- cargarTabla ( ) : void
+ mostrarDatos ( ) : void

VentanaInicial
- contentPane : JPanel
- textoNuevoGrupo : JTextField
+ casillaVacia ( ) : boolean

VentanaNuevoIntegrante
- contentPane : JPanel
- textNombres : JTextField
- textPApellido : JTextField
- textSApellido : JTextField
- textNivel : JTextField
- textEdad : JTextField
- creditososemestre : boolean
- intCreados : Integer
- btnOrdenar : JButton
+ contenedor : LinkedList<NuevoIntegrante>

VentanaSeleccionOrden
- contentPane : JPanel
- textIntegrantes : JTextField
- nivel : boolean
- nivelFiltro ( ) : String
15

Capítulo 8

REPRESENTACIÓN GRAFICA DIAGRAMA DE CLASES


16

Capítulo 9

BIBLIOGRAFIA

• Foundation, Python Software ;. (2017). Estructuras de datos. Obtenido de

Tutorial de Python (y Django!) en Español:

http://docs.python.org.ar/tutorial/3/datastructures.html

• Mariños , J. C. (s.f.). Listas en Python. Obtenido de Aprende nuevas tecnologías

web y móvil: https://devcode.la/tutoriales/listas-python/

• Wachenchauzer, R., Manterola, M., Curia, M., Medrano, M., & Paez, N. (s.f.).

Ordenar listas. Obtenido de Uniwebsidad:

https://uniwebsidad.com/libros/algoritmos-python/capitulo-7/ordenar-listas
17

JUSTIFICACIÓN

Es dar a conocer el uso de nuevas tecnologías para así ya dejar de lado los registros
hechos a mano, a raíz de dicha necesidad este documento justifica que hay procesos que
deben ser mejorados, donde se opta por la herramienta llamada “Sistema Inteligente de
agrupación aleatoria – SIAA”, esta permite utilizar un método ordenado y sistemático
para el análisis y diseño de grupos de trabajo, donde se podrá dar información de
primera mano a nuestros estudiantes ya registrados en la base de datos de la universidad,
adicional le permitirá a los profesores un rendimiento al momento de realizar las
respectivas calificaciones.

Conclusiones

Como conclusión después de culminado este trabajo podemos concluir lo siguiente:

 La herramienta es muy útil ya que podemos obtener una organización de los


estudiantes al instante sin necesidad de tomar horas y horas de intentos.
 Con este programa se lograría una efectividad del 100% al momento de
realizar las calificaciones de los estudiantes
8