La idea básica de la programación orientada a objetos se basa en 8 principios, que se muestran para un mejor entendimiento de la metodología:
- Clases: Una clase es una categoría de objetos similares. Los objetos se agrupan en clases.
- Herencia: Las clases pueden tener hijos, esto es, una clase puede ser creada a partir de otra clase. La clase original, o madre, es llamada “clase base”. La clase hija es llamada “clase derivada”. Una clase derivada puede ser creada en forma tal que herede todos los atributos y comportamientos de la clase base.
- Objetos: Un objeto es una representación en una computadora de alguna cosa o evento del mundo real.
- Encapsulación: Típicamente, la información dentro de un objeto esta encapsulada por su comportamiento. Esto significa que un objeto mantiene datos acerca de cosas del mundo real a las que representa en un sentido verdadero.
- Atributo: dato asociado a un objeto.
- Mensajes: Se puede enviar información de un objeto a otro.
- Método: proceso que realiza un objeto cuando recibe un mensaje.
- Polimorfismo: El término polimorfismo se refiere a comportamientos alternos entre clases derivadas relacionadas. Cuando varias clases heredan atributos y comportamientos, pude haber casos en donde el comportamiento de una clase derivada debe ser diferente del de su clase base o de sus clases derivadas parientes.
Los beneficios de la tecnología orientada a objetos se fortalecen si se usa antes y durante el proceso de desarrollo del software una metodología de análisis y diseño orientada a objetos. Para obtener los mejores resultados se deben considerar el análisis de requisitos orientados a objetos, diseño orientado a objetos, análisis del dominio orientado a objetos, entre otros.
En el análisis orientado a objetos se desarrollan una serie de modelos que describen el software de computadora a trabajar para satisfacer un conjunto requisitos definidos por el cliente. El modelo del análisis orientado a objetos ilustra información, funcionamiento y comportamiento.
El diseño orientado a objetos transforma el modelo del análisis en un modelo de diseño que sirve como anteproyecto para la construcción d software.
Existen diferentes metodologías orientadas al análisis y diseño orientado a objetos, entre estas se encuentran:
- El método de Booch: este método abarca un micro proceso de desarrollo y un macro proceso de desarrollo tanto para el análisis como para el diseño. El nivel micro define un conjunto de tareas de análisis que se reaplican en cada etapa en el macro proceso. El micro proceso identifica clase y objetos, define relaciones entre clases y objetos y realizan una serie de refinamientos para elaborar el modelo del análisis. El macro proceso, en el diseño, engloba una actividad de planificación arquitectónica, que agrupa objetos similares en particiones arquitectónicas separadas, capas de objetos por nivel de abstracción, identifica situaciones relevantes, crea un prototipo de diseño y valida el prototipo aplicándolo a situaciones de uso.
- El método de Rumbaugh: este método mejor conocido como OMT, se utiliza para el análisis, diseño del sistema y diseño a nivel de objetos. La de análisis crea tres modelos: el modelo de objetos, el modelo dinámico y el modelo funcional. El diseño se divide en dos actividades diseño de sistemas y diseño de objetos.
- El método de Jacobson: también llamado OOSE (que en español significa ingeniería del Software Orientada a Objetos), es una versión simplificada de Objectory, un método patentado, también desarrollado por Jacobson. Este método, en el análisis, se diferencia de los otros por la importancia que da al caso de uso. En principio, el modelo idealizado del análisis se adapta para acoplarse al ambiente del mundo real. Después los objetos de diseño primarios, llamados bloques, son creados y catalogados como bloques de interfaz, bloques de entidades y bloques de control. La comunicación entre bloques durante la ejecución se define y los bloques se organizan en subsistemas.
En este blog se abordará el análisis y diseño orientado a objetos empleando la metodología de Coad y Yourdon la cual es sencilla de aprender, en los siguientes post se detalla los pasos que se siguen en esta metodología.
En el siguiente video se explica la relacion entre "clases", "atributos", "eventos" de forma simple y facil de entender.