Fundamentos de la Programación Orientada a Objetos y el Proceso Unificado

Clasificado en Informática

Escrito el en español con un tamaño de 4,82 KB

Introducción a la Tecnología de Objetos

La tecnología de objetos permite la reutilización, lo que conduce a un desarrollo de software más rápido e incremental y a la obtención de programas de mejor calidad.

El software orientado a objetos es más fácil de mantener y más fácilmente escalable. Otra de las ventajas de la tecnología de objetos es que permite acelerar el desarrollo de sistemas de manera iterativa e incremental.

Conceptos de la Orientación a Objetos (OO)

La OO trata de organizar los sistemas en torno a los objetos que intervienen en él, y no en torno a los procesos o datos (enfoque estructurado). El software se organiza como un conjunto de objetos que se comunican entre sí mediante mensajes.

  • Clase: Describe el contenido y comportamiento de alguna entidad del mundo real. Agrupa objetos que comparten estructura y comportamiento comunes.
  • Objeto: Instancia de clase que encapsula datos y operaciones para manejar esos datos.

Ejercicio: Piensa en ejemplos de clases y objetos.

Elementos de los Objetos

  • Atributos: Describen la clase o el objeto de alguna forma. Son las características de los objetos físicos.
  • Operaciones, métodos o servicios: Algoritmos que procesan los datos correspondientes a los objetos.
  • Mensajes: Medio a través del cual interactúan los objetos.

Ejercicio: Completa el ejercicio anterior con atributos y métodos para las clases y objetos desarrollados.

Principios Fundamentales de la Orientación a Objetos

Abstracción

Consiste en considerar solo aquellos aspectos de un problema que son relevantes desde un cierto punto de vista e ignorar el resto. Se centra en qué es y qué hace un objeto, antes de decidir cómo debe implementarse.

Ejemplo de abstracción: En el análisis de un sistema, nos interesa qué hace el sistema, no cómo lo hace (por ejemplo, la lectura de datos de la persona mediante tarjeta, código de barras o teclado). Es un principio fundamental, ya que nos permite la reutilización de componentes.

Encapsulamiento

Consiste en reunir, dotando de una cierta estructura, todos aquellos elementos que cooperan y que, a un cierto nivel de abstracción, se pueden considerar componentes de una misma entidad.

Ocultación de Datos

Permite separar los aspectos externos del objeto (a los que pueden acceder otros objetos) de los detalles internos de implementación del mismo, que quedan ocultos para los demás.

Los usuarios de un objeto permanecen ajenos a los aspectos de implementación del mismo. El objeto ofrece una interfaz externa mediante la cual se puede interactuar con él.

Generalización

Permite definir nuevas clases a partir de otras ya establecidas, de manera que las clases obtenidas presenten las características de estas más, posiblemente, otras nuevas. Incluye conceptos como herencia simple y herencia múltiple.

Polimorfismo

Propiedad que permite a una operación tener distintos comportamientos en diferentes clases. La misma operación puede tener distintas implementaciones para cada clase, dependiendo del comportamiento asignado en cada una.

El Proceso Unificado de Desarrollo de Software

Es un proceso orientado a objetos que se caracteriza por ser:

  • Guiado por casos de uso
  • Centrado en la arquitectura
  • Con un ciclo de vida iterativo e incremental

Guiado por Casos de Uso

Los sistemas se crean para dar servicio a los usuarios, determinando qué requisitos se necesitan. Un caso de uso es una pieza de funcionalidad de un sistema que le proporciona a algún usuario un resultado o valor.

Centrado en la Arquitectura

La arquitectura de un sistema software es un extracto de los modelos del sistema (una vista de cada modelo). Nos da una idea sobre qué forma tiene el sistema completo.

Ciclo de Vida Iterativo e Incremental

  • Iterativo: Se repiten varios miniproyectos.
  • Incremental: Cada miniproyecto amplía el producto.

Entradas relacionadas: