Programación orientada a objetos.
La programación Orientada a objetos
(POO) es una forma especial de programar, más cercana a como expresaríamos las
cosas en la vida real que otros tipos de programación.
Con la POO tenemos que aprender a
pensar las cosas de una manera distinta, para escribir nuestros programas en
términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente
para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con
este tipo de programación.
Cómo se piensa en objetos
Pensar en términos de objetos es muy
parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un
coche para tratar de modelizarlo en un esquema de POO. Diríamos que el coche es
el elemento principal que tiene una serie de características, como podrían ser
el color, el modelo o la marca. Además tiene una serie de funcionalidades
asociadas, como pueden ser ponerse en marcha, parar o aparcar.
Pues en un esquema POO el coche sería
el objeto, las propiedades serían las características como el color o el modelo
y los métodos serían las funcionalidades asociadas como ponerse en marcha o
parar.
Por poner otro ejemplo vamos a ver
cómo modelizaríamos en un esquema POO una fracción, es decir, esa estructura
matemática que tiene un numerador y un denominador que divide al numerador, por
ejemplo 3/2.
La fracción será el objeto y tendrá
dos propiedades, el numerador y el denominador. Luego podría tener varios
métodos como simplificarse, sumarse con otra fracción o número, restarse con
otra fracción, etc.
Estos objetos se podrán utilizar en
los programas, por ejemplo en un programa de matemáticas harás uso de objetos
fracción y en un programa que gestione un taller de coches utilizarás objetos
coche. Los programas Orientados a objetos utilizan muchos objetos para realizar
las acciones que se desean realizar y ellos mismos también son objetos. Es
decir, el taller de coches será un objeto que utilizará objetos coche,
herramienta, mecánico, recambios, etc.
Clases en POO
Las clases son declaraciones de
objetos, también se podrían definir como abstracciones de objetos. Esto quiere
decir que la definición de un objeto es la clase. Cuando programamos un objeto
y definimos sus características y funcionalidades en realidad lo que estamos
haciendo es programar una clase. En los ejemplos anteriores en realidad
hablábamos de las clases coche o fracción porque sólo estuvimos definiendo,
aunque por encima, sus formas.
Propiedades en clases
Las propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.
Las propiedades o atributos son las características de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Nos podemos hacer a la idea de que las propiedades son algo así como variables donde almacenamos datos relacionados con los objetos.
Métodos en las clases
Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.
Son las funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.
Objetos en POO
Los objetos son ejemplares de una clase
cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a
partir de la cual se creará. Esta acción de crear un objeto a partir de una
clase se llama instanciar (que viene de una mala traducción de la palabra
instace que en inglés significa ejemplar). Por ejemplo, un objeto de la clase
fracción es por ejemplo 3/5. El concepto o definición de fracción sería la
clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000
o cualquier otra, la llamamos objeto.
Para crear un objeto se tiene que
escribir una instrucción especial que puede ser distinta dependiendo el
lenguaje de programación que se emplee, pero será algo parecido a esto.
miCoche
= new Coche()
Con la palabra new especificamos que
se tiene que crear una instancia de la clase que sigue a continuación. Dentro
de los paréntesis podríamos colocar parámetros con los que inicializar el
objeto de la clase coche.
Estados en objetos
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche la propiedad color tomará un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto se llama estado.
Cuando tenemos un objeto sus propiedades toman valores. Por ejemplo, cuando tenemos un coche la propiedad color tomará un valor en concreto, como por ejemplo rojo o gris metalizado. El valor concreto de una propiedad de un objeto se llama estado.
Para acceder a un estado de un objeto
para ver su valor o cambiarlo se utiliza el operador punto.
miCoche.color
= rojo
El objeto es miCoche, luego colocamos
el operador punto y por último el nombre e la propiedad a la que deseamos
acceder. En este ejemplo estamos cambiando el valor del estado de la propiedad
del objeto a rojo con una simple asignación.
Mensajes en objetos
Un mensaje en un objeto es la acción de efectuar una llamada a un método. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasándole el mensaje ponte en marcha.
Un mensaje en un objeto es la acción de efectuar una llamada a un método. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasándole el mensaje ponte en marcha.
Para mandar mensajes a los objetos
utilizamos el operador punto, seguido del método que deseamos invocar.
miCoche.ponerseEnMarcha()
En este ejemplo pasamos el mensaje
ponerseEnMarcha(). Hay que colocar paréntesis igual que cualquier llamada a una
función, dentro irían los parámetros.
Tambien.
La herencia sirve para crear objetos
que incorporen propiedades y métodos de otros objetos. Así podremos construir
unos objetos a partir de otros sin tener que reescribirlo todo. Puedes
encontrar en DesarrolloWeb.com un artículo completo dedicado a la
Herencia.
El polimorfismo sirve para que no
tengamos que preocuparnos sobre lo que estamos trabajando, y abstraernos para
definir un código que sea compatible con objetos de varios tipos. Puedes
acceder a otro artículo para saber más sobre
Polimorfismo.
Metodologías Eme
Metodologías
Emergentes
Metodología emergente
La programación extrema
o eXtreme Programming (XP) es una metodología formulada por Kent Beck y Ian Sommerville.
Características
• Se diferencia porque pone más énfasis
en la adaptabilidad.
• Software que funcione es más
importante que documentación exhaustiva.
• La respuesta ante el cambio es más
importante que el seguimiento de un plan.
Los
4 valores de la metodología XP
• Simplicidad.
Se simplifica el diseño
para agilizar el desarrollo y facilitar el mantenimiento.
• Comunicación.
Para los programadores el
código comunica mejor cuanto más simple sea.
• Retroalimentación (feedback).
Al estar el cliente
integrado en el proyecto, su opinión sobre el estado del proyecto se conoce en
tiempo real.
• Coraje o valentía.
Una de ellas es siempre
diseñar y programar para hoy y no para mañana.
Fases de la metodología XP
Fase I: Exploración.
Fase II: Planificación de la Entrega.
Fase III: Iteraciones.
Fase IV: Producción.
Fase V: Mantenimiento.
Fase VI: Muerte del Proyecto.
Ventajas y desventajas de la metodología XP
VENTAJAS:
• Programación organizada.
• Menor taza de errores.
DESVENTAJAS:
• Es recomendable emplearlo solo en proyectos a corto plazo.
Roles xp
1. Programador
Debe existir una comunicación y coordinación adecuada
entre los programadores y otros miembros del equipo.
2. Cliente
El cliente escribe las historias de usuario y las pruebas
funcionales para validar su implementación.
3. Encargado de pruebas (Tester)
El encargado de pruebas ayuda al cliente a escribir las
pruebas funcionales.
4. Encargado de seguimiento (Tracker)
El encargado de seguimiento proporciona realimentación al
equipo en el proceso XP. Su responsabilidad es verificar el grado de acierto
entre las estimaciones realizadas y el tiempo real dedicado, comunicando los
resultados para mejorar futuras estimaciones.
5. Entrenador (Coach)
Es responsable del proceso global. Es necesario que
conozca a fondo el proceso XP para proveer guías a los miembros del equipo de
forma que se apliquen las prácticas XP y se siga el proceso correctamente.
6. Consultor
Es un miembro externo del equipo con un conocimiento
específico en algún tema necesario para el proyecto. Guía al equipo para
resolver un problema específico.
7. Gestor (Big boss)
Es el vínculo entre clientes y programadores, ayuda a que el equipo
trabaje efectivamente creando las condiciones adecuadas. Su labor esencial es
de coordinación.
No hay comentarios:
Publicar un comentario