Está en la página 1de 7

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN


UNIVERSITARIA CIENCIA Y TECNOLOGÍA
UNIVERSIDAD TERRITORIAL DELTAICA FRANCISCO TAMAYO
PROGRAMA NACIONAL DE FORMACIÓN EN INFORMATICA
TUCUPITA, ESTADO DELTA AMACURO

POO y UML
Análisis

Tutor: Participantes:

Dolisay Velásquez Gerwin Martinez C.I:28713495

04/2020
1. Programación Orientada a Objetos

Un ejemplo de código fuente que muestra las clases, métodos y herencia.

La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma
de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y
programas informáticos.

Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo,


acoplamiento y encapsulamiento.

Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe


variedad de lenguajes de programación que soportan la orientación a objetos.

Abstracción: denota las características esenciales de un objeto, donde se capturan sus


comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que
puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el
sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o
los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son
requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las
características relevantes dentro de un conjunto e identificar comportamientos comunes para
definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de
análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un
conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

Encapsulamiento: significa reunir todos los elementos que pueden considerarse


pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la
cohesión de los componentes del sistema. Algunos autores confunden este concepto con el
principio de ocultación, principalmente porque se suelen emplear conjuntamente.

Modularidad: se denomina modularidad a la propiedad que permite subdividir una


aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan
independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos
se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la
encapsulación, los lenguajes soportan la modularidad de diversas formas.
Principio de ocultación: cada objeto está aislado del exterior, es un módulo natural,
y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden
interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto
contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios
métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no
puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos
secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un
acceso directo a los datos internos del objeto de una manera controlada y limitando el grado
de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.

Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden


compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento
correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las
colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un
comportamiento en una referencia producirá el comportamiento correcto para el tipo real del
objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica
se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más
estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la
sobrecarga de operadores de C++.

Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una
jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas
las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el
encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados
de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener
que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases
y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto
hereda de más de una clase se dice que hay herencia múltiple.

Recolección de basura: la recolección de basura o garbage collector es la técnica


por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto
desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a
ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de
memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo
esté usando.
En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de
Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la
memoria debe desasignarse expresamente.

2. Diferencias entre la POO y la programación tradicional

. La programación estructurada es muy útil cuando se necesita realizar correcciones o


modificaciones ya que está representada por un diagrama de flujo que es mucho más fácil para
entender la codificación de un determinado programa mientras que la P.O.O se basa en la
forma en que expresaríamos las cosas en la vida real a diferencia de la estructurada.

. Los programas elaborados en programación estructurada son mucho más fácil de entender,
ya que pueden ser leídos en secuencia, de arriba hacia abajo, sin ningún problema y se
detectan fácilmente los problemas y fallas debido a que su lógica es mucho más visible que la
de la P.O.O.

. La P.O.O es mucho más moderna que la estructurada y permite reutilizar códigos


previamente elaborados para continuar con la elaboración de un programa.

. La programación estructural se basa en 3 tipos de técnicas: secuencial, selectiva y repetitiva y


la P.O.O depende de varias técnicas como lo son la herencia, cohesión, abstracción
polimorfismo, acoplamiento, y encapsulamiento.

3. La abstracción y la instanciación

 Las abstracción: son las características especificas de un objeto, aquellas que lo


distinguen de los demás tipos de objetos y que logran definir límites conceptuales
respecto a quien está haciendo dicha abstracción del objeto.
Una abstracción se enfoca en la visión externa de un objeto, separa el
comportamiento específico de un objeto, a esta división que realiza se le conoce como
la barrera de abstracción, la cuál se consigue aplicando el principio de mínimo
compromiso.

 Instanciación: Se llama instancia a todo objeto que derive de algún otro. De esta
forma, todos los objetos son instancias de algún otro, menos la clase Object que es la
madre de todas.
4. Clases

Dentro de la programación orientada a objetos, las clases son un pilar fundamental. Estas nos
van a permitir abstraer los datos y sus operaciones asociadas como si tuviéramos en frente una
caja negra. La mayoría de los lenguajes de programación modernos incluyen la posibilidad de
usar clases y las ventajas que ello nos aporta.

Una clase es la descripción de un conjunto de objetos similares; consta de métodos y de datos


que resumen las características comunes de dicho conjunto. En un lenguaje de programación
orientada a objetos se pueden definir muchos objetos de la misma clase de la misma forma
que, en la vida real, haríamos galletas (objeto) con el mismo molde (clase) solo que, para
entenderlo mejor

5. Objetos
Los objetos son/representan cosas pueden ser simples o complejos y pueden ser reales o
imaginarios

 Mensajes: Los objetos se comunican e interaccionen entre sí por medio de mensajes ,


Si un objeto desea que otro objeto haga algo le envía un mensaje que puede tener
información adicional en forma de parámetros

Cuando un objeto recibe un mensaje ejecutará un método u operación

 Atributos

Valores o características de los objetos y permiten definir el estado del objeto u otras
cualidades.

 Métodos

Acciones que puede realizar un objeto

6. Herencia el la POO
La herencia es la transmisión del código entre unas clases y otras. Para soportar un mecanismo
de herencia tenemos dos clases: la clase padre y la/s clase/s hija/s. La clase padre es la que
transmite su código a las clases hijas. En muchos lenguajes de programación se declara la
herencia con la palabra "extends".

7. Modelado de Sistemas
El modelado de sistemas software es una técnica para tratar con la complejidad inherente a
estos sistemas. El uso de modelos ayuda al ingeniero de software a "visualizar" el sistema a
construir. Además, los modelos de un nivel de abstracción mayor pueden utilizarse para la
comunicación con el cliente.

 La importancia de modelar

De acuerdo al tipo de emprendimiento, tanto en su tamaño como en características se


necesitará de distintas herramientas, procesos, arquitectura, recursos humanos y las
tecnologías. El truco está en crear el software apropiado y en imaginar cómo escribir menos
software. Un proyecto puede ser concebido con respecto a su tamaño en un programa
pequeño, y crecer enormemente, pero si no se han tenido en cuenta, previamente la
arquitectura, el proceso o las herramientas, este colapse.

 Principios de modelado

1. LA ELECCIÓN ACERCA DE QUÉ MODELOS CREAR TIENE UNA PROFUNDA INFLUENCIA SOBRE
CÓMO SE ACOMETE UN PROBLEMA Y CÓMO SE DA FORMA A UNA SOLUCIÓN. De acuerdo con
el paradigma con el que se enfoque el problema a solucionar serán distintas las herramientas,
los procesos, la arquitectura, los recursos humanos y las tecnologías a utilizar.

2. TODO MODELADO PUEDE SER EXPRESADO CON DIFERENTES NIVELES DE PRESICIÓN.

3. LOS MEJORES MODELOS ESTÁN LIGADOS A LA REALIDAD. Los modelos simplifican la


realidad, hay que asegurarse que las simplificaciones no enmascaren ningún detalle
importante. En las técnicas de análisis estructurado el punto débil es que existe una brecha
entre el modelo de análisis y el modelo de diseño del sistema. En los sistemas orientados a
objetos es posible conectar todas las vistas casi independientes de un sistema en un todo
semántico.

4. UN ÚNICO MODELO O VISTA NO ES SUFICIENTE. CUALQUIER SISTEMA NO TRIVIAL SE


ABORDA MEJOS A TRAVÉS DE UN PEQUEÑO CONJUNTO DE MODELOS CASI INDEPENDIENTES
CON MÚLTIPLES PUNTOS DE VISTA. Significa tener modelos que podemos construir y estudiar
separadamente, pero aún así, están interrelacionados.

8. EL LENGUAJE UNIFICADO DE MODELADO (UML)


En todas las disciplinas de la Ingeniería se hace evidente la importancia de los modelos ya que
describen el aspecto y la conducta de "algo". Ese "algo" puede existir, estar en un estado de
desarrollo o estar, todavía, en un estado de planeación. Es en este momento cuando los
diseñadores del modelo deben investigar los requerimientos del producto terminado y dichos
requerimientos pueden incluir áreas tales como funcionalidad, performance y confiabilidad.
Además, a menudo, el modelo es dividido en un número de vistas, cada una de las cuales
describe un aspecto específico del producto o sistema en construcción.

 Los principales beneficios de UML son:


 Mejores tiempos totales de desarrollo (de 50 % o más).

 Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.

 Establecer conceptos y artefactos ejecutables.

 Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.

 Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.

 Mejor soporte a la planeación y al control de proyectos.

 Alta reutilización y minimización de costos.

9. Simbología en la UML

También podría gustarte