Este documento describe el proceso de modelado de clases y objetos. Explica que primero se debe identificar los elementos que interactúan en un problema, como alumnos, secretarias y materias. Luego se clasifican estos elementos en clases con atributos comunes, como la clase Alumno con atributos de matrícula y nombre. Finalmente, se definen las operaciones que pueden realizar los objetos, como calcular el promedio para los alumnos.
Ponencia en I SEMINARIO SOBRE LA APLICABILIDAD DE LA INTELIGENCIA ARTIFICIAL EN LA EDUCACIÓN SUPERIOR UNIVERSITARIA. 3 de junio de 2024. Facultad de Estudios Sociales y Trabajo, Universidad de Málaga.
Presentación de la conferencia sobre la basílica de San Pedro en el Vaticano realizada en el Ateneo Cultural y Mercantil de Onda el jueves 2 de mayo de 2024.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
3. Datos
3
Materia: Optativa Programación NET, Programación
orientada a objetos.
Objetivo: Comprender la forma de organizar las clases
y objetos en a capa de negocio.
4. Modelado
Un modelo se define como una abstracción del mundo
real. Primeramente debemos identificar que vamos a
modelar y en nuestro caso son los elementos que
interactúan en un problema a los que normalmente
llamaremos objetos
4
5. Ejemplo
Problema: Reinscripción de alumnos.
"Juan llega con la secretaria académica de la FCI para
realizar su reinscripción, solicita ser atendido, espera
su turno, da su matrícula y entrega la lista de materias
que tomara en el próximo ciclo…".
Análisis
En este problema encontramos a "Juan" a la
"secretaria académica" y las "materias" estos
elementos interactúan en el problema y son llamados
objetos.
5
6. Clasificación
De la misma forma que Juan se reinscribe, también lo
hace María, Rosa, y n alumnos mas, todos los
alumnos son diferentes, de la misma manera que hay
otros secretarios académicos en otras facultades y
hay muchas materias, sin embargo tienen
características comunes.
Por ejemplo cada alumno tiene:
Matricula
Nombre
Carrera
6
7. Clasificación y ámbito
Extraer las características comunes de un conjunto de
objetos es el proceso de clasificación.
El conjunto de objetos son clasificados y sus clases
forman parte del modelo del problema.
Todos los objetos del mismo tipo son asociados a una
clase, por ejemplo Juan, María, y los demás alumnos
son asociados a la clase alumno pues tienen
características comunes.
Una vez identificada la clase de objetos a modelar
debemos analizar el ámbito en que queremos aplicar
el modelo.7
8. Ejemplo ámbito del problema
Un objeto de la clase persona la puedo ver desde el
punto de vista de un empleado o de un alumno o de
un esposo o esposa, etcétera.
Por tanto el ámbito será: Empresa, Escuela, Hogar, ....
En dependencia del ámbito identificamos un conjunto
de características (también llamadas atributos) del
objeto.
Notemos que una entidad puede tener miles de
características pero la mayoría no serían pertinentes
en un ámbito en particular.
8
9. Ejemplo extracción de características
Si estoy modelando una clase alumno en el ámbito de
una escuela, serian importantes características como:
Nombre,
Edad,
Calificación,
Pero serian irrelevantes otras como:
Estatura,
Peso,
Estado Civil
9
11. Modelo de clase en VB
11
class clsPersona
‘atributos
private _nombre
private _edad
private _calificacion
end class
12. Modelo de clase: identificar operaciones
Este es un modelo por qué no incluye todas las
características de la persona, sino solo algunas de
ellas, el resto se perdieron como parte del proceso de
abstracción, notemos además que este modelo
incluye solo la abstracción de los atributos de la
entidad, pero no incluye aun las operaciones que la
persona puede realizar tales como: Estudiar, Leer,
Caminar y otras.
Las operaciones modeladas también dependerán del
ámbito del problema
12
13. Operaciones
Una vez que encontramos los atributos del objeto
debemos buscar sus operaciones, estas son las
acciones que puede realizar un objeto o que puedo
realizar sobre el.
Por ejemplo un alumno puede almacenar (en su
memoria) su nombre esta operación en un alumno
real se realiza en su más tierna infancia (registro civil)
pero para el alumno que estamos modelando se debe
realizar al iniciar el programa.
13
14. Nombres de operaciones
Por tanto una operación que permita almacenar el
nombre del alumno en el atributo correspondiente,
esta operación puede llamarse "guardarNombre",
"bautizar", "setNombre" etc. lo importante es que
entendamos que esta operación implica actualizar la
información en el atributo "nombre" del alumno.
En general las operaciones se ven reflejadas por un
cambio en los valores de los atributos (es decir
cambia su estado)
14
15. Mas operaciones
Los objetos son los elementos que “actúan” en el
problema o sobre los que se “actúa”,.
Por ejemplo El alumno Juan Pérez calcula el promedio
de sus calificaciones en los exámenes de la materia
POO, Al Alumno Juan Pérez le asigno una calificación
en la experiencia 1, en este ejemplo Juan Pérez es un
objeto y el cálculo de promedio es una operación que
realiza el alumno y asignar calificación es una
transformación (en sus datos) a la que se ve sujeto el
alumno.
15
17. Modelo alumno en VB
class clsAlumno
private _nombre as string
private _edad as integer
private _califEx1 as integer
private _califEx2 as integer
‘operaciones
property nombre as string
set
_nombre=value
end set
get
return _nombre
end get
end property
…
public function calcularPromedio as integer
return (_califEx1+_califEx2)/2
end function
End class
17
18. Aplicaciones
18
Cuando se modela una aplicación se definen las
clases, la funcionalidad del sistema se definirá por un
conjunto de operaciones que se implementarán como
subrutinas y funciones en el programa.
Estas operaciones deben ser asignadas a una
clase en dependencia de su análisis.
A continuación veremos algunos errores comunes.
19. Extracto de una narrativa
19
… se desea controlar un almacén donde se agregan
partes que provienen de los pedidos que se solicitan
a un proveedor de una lista de proveedores, se desea
controlar también las salidas de las partes de un
almacén, las salidas de almacén se solicitan por
medio del mostrador de ventas.
Los atributos del proveedor son: clave, nombre,
teléfono.
Los atributos de la parte son: nombre, existencia,
ubicación.
20. A partir de esa narrativa se crean las Clases
20
Almacen
Operaciones
Fin almaccen
Parte
Operaciones
Fin Parte
Mostrador
Operaciones
Fin
Mostrador
ListaProveedores
Operaciones
Fin ListaProveedores
La funcionalidad
encontrada es:
AgregarParte()
HacerPedido()
SalidaParte()
Proveedor
Operaciones
Fin
Proveedor
21. Asignación incorrecta
21
Almacen
Operaciones
Fin almaccen
Parte
Operaciones
AgregarParte()
HacerPedido()
SalidaParte()
Fin parte
Mostrador
Operaciones
Fin
Mostrador
ListaProveedores
Operaciones
Fin ListaProveedores
Esta asociación de
funcionalidad es
incorrecta, aunque es
común que el alumno la
realice.
Una parte se agrega a la
clase que contendrá el
conjunto de partes, esta
clase es almacén.
Vemos también que los
pedidos se realizan a un
proveedor y no le solicito
el pedido a una parte.
Proveedor
Operaciones
Fin
Proveedor
22. Asignación correcta
22
Almacen
Operaciones
sub AgregarParte(p:Parte, cantidad)
function SalidaParte():Parte
Fin almaccen
Parte
Operaciones
Fin parte
Mostrador
Operaciones
Fin
Mostrador
ListaProveedores
Operaciones
Fin ListaProveedores
Esta es una asociación
correcta.
Le estamos agregando
parámetros por que al
hacer pedido debemos
indicar que tipo de parte se
solicita y cantidad.
Proveedor
Operaciones
sub HacerPedido(p:Parte, cantidad)
Fin Proveedor
23. Ejemplo Agencia autos
23
Clases: auto, cliente, venta, almacén (de autos), lista
de clientes, registro de ventas, etcétera.
Es importante encontrar las clases que contienen la
información y además las clases que contienen a
estas clases.
Por ejemplo cliente es el objeto que almacena la
información del cliente, pero debemos preguntarnos
¿Dónde guardamos los clientes?, de esta manera
aparece la clase lista de clientes.
24. Así
24
Tendremos las clases:
Auto
Cliente
Venta
Y las clases que las contienen
Almacén (de autos)
Almacén (de refacciones)
Lista de clientes
Registro de ventas
25. Clase auto
25
class clsAuto
private _id as string
private _marca as integer
private _precio as integer
private _tipo as integer
‘operaciones
property id as string
set
_id=value
end set
get
return _id
end get
end property
…
End class
27. Base de datos
27
Este conjunto de clases componen la capa de
negocio, la comunicación con la base de datos se
hará en las clase que almacenan la información (ver
diapositiva 21).
28. Clase almacén
28
class clsAlmacen
‘operaciones
sub agregaAuto(a as clsAuto)
‘construye consulta insert a partir de los datos
‘recibidos en el objeto a
dim sql As String="insert into autos values('" & a.id & "','" & _
a.marca & "','" & _
a.precio & "'," & _
a.tipo & ")"
‘abre una conexión con la base de datos
conn = New MySqlConnection(“…")
conn.Open()
‘crea un comando
Dim comando As new MySqlCommand(sql,conn)
‘ejecuta la consula
comando.executenonquery()
Conn.close()
end sub
…
End class
29. Otra operación
29
class clsAlmacen
function traeListaAutos as data.datatable
Dim t As New Data.DataTable("miTabla")
‘construye consuta select
dim sql As String=“select * from autos"
‘abre una conexión con la base de datos
conn = New MySqlConnection(“…")
conn.Open()
‘crea un data adapter
da = New MySqlDataAdapter(sql, conn)
‘ejecuta la consula
da.Fill(t)
conn.Close()
return t
end sub
End class
30. Desde la interfaz
30
Public partial class frmMostrarAutos
…
Private Sub mostrarTodos
Dim o As New clsAlmacen
Dim t As New Data.DataTable
t=o. traeListaAutos()
Me.dgvDatos.DataSource=t
End sub
Sub frmMostrarAutosLoad(sender As Object, e As EventArgs)
Me.mostrarTodos()
End Sub
…
End class