sábado, 10 de julio de 2010

PHP Orientado a objetos II

Continuando… aunque algo demorado por compromisos laborales

De la larga lista de términos que se emplean o aparecen cuando se habla de OPP se detallan los siguientes:

AOO - DOO
La Programación Orientada a Objetos debe estar soportada de antemano por un adecuado Análisis Orientado a Objetos(AOO) y un Diseño Orientado a Objetos(DOO) . El no tener en cuenta estos aspectos nuestros desarrollos serán inestables, inseguros y su costo de mantenimiento será excesivo. Por tal motivo es básico definir estos dos conceptos y pretender aclarar el panorama.
Aunque dentro del Desarrollo de Software Orientado a Objetos existe una gran cantidad de opiniones y métodos sobre AOO y DOO, donde cada uno posee su proceso de análisis, diseño y notación o esquema para brindar un mejor acercamiento a un modelo eficaz, se ha tratado de unificar algunos conceptos pretendiendo fortalecer el Desarrollo de SW.
Explicación general AOO y DOO
El  AOO investiga y construye un modelo del dominio del problema, identificando las clases y objetos del sistema, cómo se relacionan estos objetos y como se comportan dentro del dominio, este modelo busca dar una solución lógica desde el punto de vista de los objetos.
El DOO es el paso siguiente del AOO donde transforma el análisis realizado en una especie de borrador o anteproyecto de la solución del dominio del problema. Desde aquí las clases identificadas serán creadas desde cero o reutilizadas según el contexto del problema.
Dentro del DOO el diseño de los objetos es más especifico hacia el interior de las clases, se definen sus atributos o propiedades, sus operaciones o métodos y cómo responder a mensajes o estímulos.

En el DOO aparecen los llamados Patrones de Diseño, estos dan solución a problemas de diseño que se repiten una y otra vez. Históricamente proceden de modelos de arquitectura donde se pretendían reutilizar modelos de diseño ya aplicados, posteriormente W. Cunningham y Kent Beck vinculan esta idea  a la OPP. Para estudiarlos y manejarlos es básico tener conceptos de UML. En la Siguiente URL se encuentra una grafica con los patrones utilizados, describiendo su nombre y utilización.

“Los patrones de diseño proponen una forma reutilizar la experiencia de los desarrolladores, para ello clasifica y describe formas de solucionar problemas que ocurren de forma frecuente en el desarrollo. Por tanto está basado en la recopilación del conocimiento de los expertos en desarrollo de software.
No debe verse los Patrones de Diseño como una teoría o una corriente. No trata de tomar partido por una u otra alternativa. Es una experiencia real, probada y que funciona. Es Historia y nos ayuda a no cometer los mismos errores. ”

UML
de Wikipedia
“Lenguaje Unificado de Modelado (LUM) o (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.”

UML mediante sus diagramas  facilita el aprendizaje de OPP, es más fácil ubicarse dentro del “plano” del sistema a realizar.

ORM (Object Relational Mapping), es una técnica en la OPP que permite convertir  nuestros datos de una  Base de Datos Relacional en una Base de Datos Orientada a Objetos Virtual. Facilitando la persistencia.

De estos temas en mención recomiendo grandes autores o ‘gurus’ como Martin Fowler, Kent Beck,  Ivar Jacobson , James Rumbaugh ,Grady Booch , Craig Larman, Coad/Yourdon, ellos con conceptos han liderado bases solidas para mejorar la calidad del Software. En la actualidad hay nuevas tendencias de metodologías llamadas agiles (Scrum, XP) que pretenden dar un giro en cuanto a la rapidez en el desarrollo de Software. De mi parte y apoyándome en mucha información encontrada en Internet me he dedicado a profundizar sobre metodologias agiles y abordando "la programación extrema o XP()". aquí entra en cuestionamiento el uso de UML, según los eruditos en la materia el hecho de realizar proyectos con XP exime el uso de UML como ayuda para el análisis y el diseño orientado a objetos. Kent Beck el gran ‘guru’ sobre este tema difícilmente hace graficas de sus estructuras, otros como Martin Fowler sostiene que el diseño desde UML debería hacerse según las circunstancias, cada programador debe apoyarse o ayudarse según el contexto de la situación a resolver.

No hay comentarios:

Publicar un comentario

Gracias por sus comentarios!