Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCIÓN AL
PARADIGMA DE LA POO
PUEDES ELEGIR DEL MENU SUPERIOR
PUEDES ELEGIR DEL MENU LATERAL
1.1
Los lenguajes basados en esta forma de programación ofrecían ventajas al principio, pero
el problema ocurre cuando los sistemas se vuelven complejos. Estos programas escritos al
estilo “espaguetti” no ofrecen flexibilidad y el mantener una gran cantidad de líneas de
código en sólo bloque se vuelve una tarea complicada.
Entonces, vemos que la evolución que se fue dando en la programación se orientaba siempre
a ir descomponiendo más el programa. Este tipo de descomposición conduce directamente
a la programación orientada a objetos.
Pues la creciente tendencia de crear programas cada vez más grandes y complejos llevó a
los desarrolladores a crear una nueva forma de programar que les permita crear sistemas de
niveles empresariales y con reglas de negocios muy complejas.
CLASES
En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo,
nuestro teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en
términos de la programación orientada a objetos, podemos decir que nuestro objeto celular
es una instancia de una clase conocida como "celular".
Esto mismo se aplica a los objetos de software, se puede tener muchos objetos del mismo
tipo y mismas características.
Definición teórica: La clase es un modelo o prototipo que define las variables y métodos
comunes a todos los objetos de cierta clase. También se puede decir que una clase es una
plantilla genérica para un conjunto de objetos de similares características.
Por otro lado, una instancia de una clase es otra forma de llamar a un objeto. En realidad
no existe diferencia entre un objeto y una instancia. Sólo que el objeto es un término más
general, pero los objetos y las instancias son ambas representación de una clase.
Definición Teórica: Una instancia es un objeto de una clase en particular.
OBJETOS
Entender que es un objeto es la clave para entender cualquier lenguaje orientado a objetos.
Analicemos un poco más a un objeto del mundo real, como la computadora. No necesitamos
ser expertos en hardware para saber que una computadora está compuesta internamente por
varios componentes: la tarjeta madre, el chip del procesador, un disco duro, una tarjeta de
video, y otras partes más. El trabajo en conjunto de todos estos componentes hace operar a
una computadora.
Internamente, cada uno de estos componentes puede ser sumamente complicado y puede
ser fabricado por diversas compañías con diversos métodos de diseño. Pero nosotros no
necesitamos saber cómo trabajan cada uno de estos componentes, como saber qué hace cada
uno de los chips de la tarjeta madre, o cómo funciona internamente el procesador.
Cada componente es una unidad autónoma, y todo lo que necesitamos saber de adentro es
cómo interactúan entre sí los componentes, saber por ejemplo si el procesador y las
memorias son compatibles con la tarjeta madre, o conocer donde se coloca la tarjeta de
video. Cuando conocemos como interaccionan los componentes entre sí, podremos armar
fácilmente una computadora.
¿QUÉ TIENE QUE VER ESTO CON LA PROGRAMACIÓN?
La programación orientada a objetos trabaja de esta manera. Todo el programa está
construido en base a diferentes componentes (Objetos), cada uno tiene un rol específico en
el programa y todos los componentes pueden comunicarse entre ellos de formas
predefinidas.
Todo objeto del mundo real tiene 2 componentes: características y comportamiento.
Por ejemplo, los automóviles tienen características (marca, modelo, color, velocidad
máxima, etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible,
cambiar llantas, etc.).
Los Objetos de Software, al igual que los objetos del mundo real, también tienen
características y comportamientos. Un objeto de software mantiene sus características en
una o más "variables", e implementa su comportamiento con "métodos". Un método es una
función o subrutina asociada a un objeto.
Para redondear estas ideas, imaginemos que tenemos estacionado en nuestra cochera un
Ford Focus color azul que corre hasta 260 km/h. Si pasamos ese objeto del mundo real al
mundo del software, tendremos un objeto Automóvil con sus características
predeterminadas:
Marca = Ford
Modelo = Focus
Color = Azul
Velocidad Máxima = 260 km/h
Cuando a las características del objeto le ponemos valores decimos que el objeto tiene
estados. Las variables almacenan los estados de un objeto en un determinado momento.
Definición teórica: Un objeto es una unidad de código compuesto de variables y métodos
relacionados.
ABSTRACCIÓN
La abstracción consiste en captar las características esenciales de un objeto, así como su
comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles, ¿Qué
características podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué
características semejantes tienen todos los automóviles? Todos tendrán una marca, un
modelo, número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su
comportamiento todos los automóviles podrán acelerar, frenar, retroceder, etc.
MODULARIDAD
Mediante la modularidad, se propone al programador dividir su aplicación en varios
módulos diferentes (ya sea en forma de clases, paquetes o bibliotecas), cada uno de ellos
con un sentido propio. Esta fragmentación disminuye el grado de dificultad del problema
al que da respuesta el programa, pues se afronta el problema como un conjunto de
problemas de menor dificultad, además de facilitar la comprensión del programa.
ENCAPSULAMIENTO
El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto
es, las variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes
estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la
abstracción y el ocultamiento que veremos a continuación.
HERENCIA
La herencia es uno de los conceptos más cruciales en la POO (Programación Orientada a
Objetos). La herencia básicamente consiste en que una clase puede heredar sus variables y
métodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto
significa que una subclase, aparte de los atributos y métodos propios, tiene incorporados
los atributos y métodos heredados de la superclase. De esta manera se crea una jerarquía de
herencia. Por ejemplo, imaginemos que estamos haciendo el análisis de un Sistema para
una tienda que vende y repara equipos celulares.
Grafico 2 | HERENCIA
En el gráfico vemos 2 Clases más que posiblemente necesitemos para crear nuestro Sistema.
Esas 2 Clases nuevas se construirán a partir de la Clase Celular existente. De esa forma
utilizamos el comportamiento de la SuperClase.
En general, podemos tener una gran jerarquía de Clases tal y como vemos en el siguiente
gráfico:
POLIMORFISMO
En programación orientada a objetos el polimorfismo se refiere a la posibilidad de enviar
un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea. El único requisito
que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al
mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice,
más allá de las obvias diferencias sintácticas.
La esencia del polimorfismo no atañe a la clase o prototipo de la que provienen los objetos.
Aun así, en los lenguajes basados en clases, es habitual (y en algunos tal vez sea el único
modo) que dichos objetos pertenezcan a subclases pertenecientes a una misma jerarquía.
Entonces, el polimorfismo debe verse como una forma flexible de usar un grupo de objetos
(como si fueran sólo uno). Podría decirse que el polimorfismo en esencia refiere al
comportamiento de los objetos, no a su pertenencia a una jerarquía de clases (o a sus tipos
de datos).
PREGUNTAS
DUDAS Y/O
¿QUÉ APRENDISTE?
Guardar
CLASE
Guardar
1.2
LENGUAJE DE MODELADO
UNIFICADO
Publicado el 22/04/2014
DIAGRAMA DE CLASES (UML)
El Lenguaje UML:UNIFIED
de Modelado Unificado (
El lenguaje de modelado es la notación (principalmente gráfica) que usan los métodos para
expresar un diseño. El proceso indica los pasos que se deben seguir para llegar a un diseño.
Gráfico
1 | UML
Una de las metas principales de UML es avanzar en el estado de la integración
institucional proporcionando herramientas de interoperabilidad para el modelado visual de
objetos. Sin embargo para lograr un intercambio exitoso de modelos de información entre
herramientas, se requirió definir a UML una semántica y una notación.
La notación es la parte gráfica que se ve en los modelos y representa la sintaxis del lenguaje
de modelado. Por ejemplo, la notación del diagrama de clases define como se representan
los elementos y conceptos como son: una clase, una asociación y una multiplicidad. ¿Y qué
significa exactamente una asociación o multiplicidad en una clase? Un metamodelo es la
manera de definir esto (un diagrama, usualmente de clases, que define la notación).
Para que un proveedor diga que cumple con UML debe cubrir con la semántica y con la
notación.
Una herramienta de UML debe mantener la consistencia entre los diagramas en un mismo
modelo. Bajo esta definición una herramienta que solo dibuje, no puede cumplir con la
notación de UML.
Gráfico 2 |
Herramientas UML
4. Los diagramas de clases de UML forman la vista lógica.
5. Los diagramas de interacción de UML constituyen la vista de proceso.
6. La vista de desarrollo captura el software en su entorno de desarrollo.
7. Los diagramas de despliegue integran la vista física .
8. Los escenarios: el modelo de casos de uso.
Los diagramas de clases son una potente herramienta de diseño ayudando a los
desarrolladores a planificar y establecer la arquitectura y estructura del sistema y subsistema
antes de escribir el ningún código esto permite asegurar que el sistema este bien diseñado
desde el principio. Además estos diagramas de clases son usadas prácticamente en la
totalidad de sistema en que se utilizan UML para su modelado.
Los diagramas de clase también muestran los atributos y operaciones de una clase y las
restricciones a que se ven sujetos, según la forma en que se conecten los objetos. En mi
punto de vista los diagramas de clases muestran o ayudan a implementar mejor las ideas en
un programa, dirigido por atributos y aspectos importantes en ello, el diagrama tiene que
estar perfectamente elaborado para evitar errores en la realización del programa.
Gráfico 3
| Diagrama De Procesos De Negocio
Esta área de conocimientos incluye los procesos necesarios para asegurar que el proyecto
incluya todo el trabajo requerido, y sólo el trabajo requerido, para completar el
proyecto satisfactoriamente.
En el subprocesos de definición del alcance se pueden emplear artefactos de UML, tales
como el modelado de procesos, los casos de uso y el modelado de requisitos.
MODELADO DE REQUISITOS
CON CASOS DE USO
Gráfico 4
| Requisitos Del Sistema
Los casos de uso son los artefactos de UML para modelar los requisitos
(o “requerimientos”) funcionales del sistema.