SlideShare una empresa de Scribd logo
1 de 31
Modelado de clases y objetos
Jesús Alejandro Flores Hernández
jflorespampano@gmail.com
1
Razón
2
valió
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.
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
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
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
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
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
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
Modelo de clase
Clase Persona con
atributos:
Nombre
Edad
Calificación
Fin clase
10
Modelo de clase en VB
11
class clsPersona
‘atributos
private _nombre
private _edad
private _calificacion
end class
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
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
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
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
Modelo clase alumno
Clase alumno
‘Atributos
nombre
edad
califEx1
califEx2
‘operaciones
guardarNombre
guardarEdad
devolverNombre
devolverEdad
guardarCalifEx1
guardarCalifEx2
calcularPromedio
Fin clase
16
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
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.
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.
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
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
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
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.
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
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
Clase almacén
26
class clsAlmacen
‘operaciones
sub agregaAuto(a as clsAuto)
end sub
sub traeListaAutos
end sub
function verificaExistencia as integer
‘devolver la existencia
end function
End class
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).
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
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
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
Fin
31
MI Jesús Alejandro Flores Hernández
Academia de programación

Más contenido relacionado

Destacado

Ann chapter-3-single layerperceptron20021031
Ann chapter-3-single layerperceptron20021031Ann chapter-3-single layerperceptron20021031
Ann chapter-3-single layerperceptron20021031frdos
 
Artificial Neural Networks Lect8: Neural networks for constrained optimization
Artificial Neural Networks Lect8: Neural networks for constrained optimizationArtificial Neural Networks Lect8: Neural networks for constrained optimization
Artificial Neural Networks Lect8: Neural networks for constrained optimizationMohammed Bennamoun
 
Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...
Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...
Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...Mohammed Bennamoun
 
Artificial Neural Networks Lect3: Neural Network Learning rules
Artificial Neural Networks Lect3: Neural Network Learning rulesArtificial Neural Networks Lect3: Neural Network Learning rules
Artificial Neural Networks Lect3: Neural Network Learning rulesMohammed Bennamoun
 
Artificial Neural Networks Lect5: Multi-Layer Perceptron & Backpropagation
Artificial Neural Networks Lect5: Multi-Layer Perceptron & BackpropagationArtificial Neural Networks Lect5: Multi-Layer Perceptron & Backpropagation
Artificial Neural Networks Lect5: Multi-Layer Perceptron & BackpropagationMohammed Bennamoun
 
Artificial Neural Network Lect4 : Single Layer Perceptron Classifiers
Artificial Neural Network Lect4 : Single Layer Perceptron ClassifiersArtificial Neural Network Lect4 : Single Layer Perceptron Classifiers
Artificial Neural Network Lect4 : Single Layer Perceptron ClassifiersMohammed Bennamoun
 

Destacado (8)

Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertos
 
Perceptron
PerceptronPerceptron
Perceptron
 
Ann chapter-3-single layerperceptron20021031
Ann chapter-3-single layerperceptron20021031Ann chapter-3-single layerperceptron20021031
Ann chapter-3-single layerperceptron20021031
 
Artificial Neural Networks Lect8: Neural networks for constrained optimization
Artificial Neural Networks Lect8: Neural networks for constrained optimizationArtificial Neural Networks Lect8: Neural networks for constrained optimization
Artificial Neural Networks Lect8: Neural networks for constrained optimization
 
Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...
Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...
Artificial Neural Network Lecture 6- Associative Memories & Discrete Hopfield...
 
Artificial Neural Networks Lect3: Neural Network Learning rules
Artificial Neural Networks Lect3: Neural Network Learning rulesArtificial Neural Networks Lect3: Neural Network Learning rules
Artificial Neural Networks Lect3: Neural Network Learning rules
 
Artificial Neural Networks Lect5: Multi-Layer Perceptron & Backpropagation
Artificial Neural Networks Lect5: Multi-Layer Perceptron & BackpropagationArtificial Neural Networks Lect5: Multi-Layer Perceptron & Backpropagation
Artificial Neural Networks Lect5: Multi-Layer Perceptron & Backpropagation
 
Artificial Neural Network Lect4 : Single Layer Perceptron Classifiers
Artificial Neural Network Lect4 : Single Layer Perceptron ClassifiersArtificial Neural Network Lect4 : Single Layer Perceptron Classifiers
Artificial Neural Network Lect4 : Single Layer Perceptron Classifiers
 

Similar a Modelado clases

Similar a Modelado clases (20)

Poo 1 concepto_basico
Poo 1 concepto_basicoPoo 1 concepto_basico
Poo 1 concepto_basico
 
UT05-POO.pdf
UT05-POO.pdfUT05-POO.pdf
UT05-POO.pdf
 
modularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptxmodularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptx
 
Nvo objects powerbuilder
Nvo objects powerbuilderNvo objects powerbuilder
Nvo objects powerbuilder
 
Jon Cartier
Jon CartierJon Cartier
Jon Cartier
 
Unidad introduccion a la poo
Unidad introduccion a la pooUnidad introduccion a la poo
Unidad introduccion a la poo
 
Diogenes
DiogenesDiogenes
Diogenes
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
1 clases y_objetos (2)
1 clases y_objetos (2)1 clases y_objetos (2)
1 clases y_objetos (2)
 
Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)
 
Oo basico
Oo basicoOo basico
Oo basico
 
Ces03
Ces03Ces03
Ces03
 
02401 04-509376nomivkzutz
02401 04-509376nomivkzutz02401 04-509376nomivkzutz
02401 04-509376nomivkzutz
 
Introducción a la progrogramación orientada a objetos
Introducción a la progrogramación orientada a objetosIntroducción a la progrogramación orientada a objetos
Introducción a la progrogramación orientada a objetos
 
1 clases y objetos
1 clases y objetos1 clases y objetos
1 clases y objetos
 
1 2 5 Modelando Clases
1 2 5 Modelando Clases1 2 5 Modelando Clases
1 2 5 Modelando Clases
 
Clases y objetos de java
Clases y objetos de javaClases y objetos de java
Clases y objetos de java
 
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptxResumen Programación Orientada a Objetos 20_06_2023 (1).pptx
Resumen Programación Orientada a Objetos 20_06_2023 (1).pptx
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 

Último

TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 

Último (20)

TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 

Modelado clases

  • 1. Modelado de clases y objetos Jesús Alejandro Flores Hernández jflorespampano@gmail.com 1
  • 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
  • 10. Modelo de clase Clase Persona con atributos: Nombre Edad Calificación Fin clase 10
  • 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
  • 16. Modelo clase alumno Clase alumno ‘Atributos nombre edad califEx1 califEx2 ‘operaciones guardarNombre guardarEdad devolverNombre devolverEdad guardarCalifEx1 guardarCalifEx2 calcularPromedio Fin clase 16
  • 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
  • 26. Clase almacén 26 class clsAlmacen ‘operaciones sub agregaAuto(a as clsAuto) end sub sub traeListaAutos end sub function verificaExistencia as integer ‘devolver la existencia end function 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
  • 31. Fin 31 MI Jesús Alejandro Flores Hernández Academia de programación