El “por qué” del paradigma de Orientación a Objetos y su importancia en el Diseño de Software

Publicado 9 enero, 2013 por Ramón Gorrín
Categorías: CASE, Ingeniería de Software, UML

Tags: , , , ,

Uno de los propósitos de este año 2013 ha sido retomar este blog que ha sido abandonado por ocupaciones personales entre otras cosas. Inicio con un relato que me hizo volver a algunos conceptos básicos. Lo cierto es que hace poco un alumno del IUT Cumaná de Venezuela (ahora con un nombre largo y horrible) quien estaba comenzando sus estudios de análisis y diseño de sistemas con orientación a objetos me pidió que le explicará las bases conceptuales del paradigma OO, esa explicación me llevó a revisar algunos elementos filosóficos y básicos que quedaron reflejados en un artículo sucinto, aquí les dejo la redacción:

Introducción

Realizar un software que ejecute alguna funcionalidad requiere que se identifique ampliamente el contexto en donde funcionará. Es decir, debe haber una vinculación directa del software y su propósito con el propósito del sistema donde estará inserto. Para cumplir con la relación dominio (contexto del sistema) – funcionalidad del software se debe iniciar con un proceso de abstracción que permita trasladar los conceptos que encierra el dominio según nuestra percepción.

El ser humano identifica su entorno dándole nombre a las cosas e identificando su significado (utilidad y naturaleza). El paradigma de abstracción Orientado a objetos y su correspondiente diagramación en el Lenguaje Unificado de Modelado (UML) permiten realizar parte de la tarea del diseño que conlleva a la realización del código funcional que compone a la aplicación final. Este artículo pretende establecer la importancia del modelado orientado a objetos en el proceso de elaboración del software.

El Paradigma OO

El ser humano da nombre y significado a cada uno de los elementos que lo rodea. De igual manera ocurre cuando el analista inicia la exploración del dominio para saber cuáles son los conceptos asociados con el sistema. Desde el punto de vista de Orientación de Objetos se hace una identificación de todo aquello que juegue un rol en el sistema y cómo interactúa con otros elementos, esa es la definición de objeto. Cuando los objetos identificados encajan en conceptos generales o de clasificación entonces ya se habla de clases. Un ejemplo muy sencillo es el hecho de que existen muchos carros en las calles, de diferentes marcas, colores y modelos, cada uno es un carro en lo particular pero todos vistos en conjunto clasifican como objetos del tipo carro. En definitiva la palabra Carro representa la clase y cada uno de los carros del conjunto es un objeto (instancia) de esa clase.

Cada clase conoce algo (atributos) y se comporta de alguna manera (operaciones). Además, cada clase normalmente establece una relación (colaboración) con otra clase y con ese mecanismo se define el comportamiento general del sistema. En definitiva, las clases representan la arquitectura del software y sus relaciones definen la dinámica del mismo.

El análisis de las colaboraciones entre clases permite inferir la invocación de las operaciones (métodos) que implementan las reglas del negocio. Los algoritmos definidos para las reglas del negocio definen el comportamiento global del sistema que resulta finalmente en la ejecución de sus funcionalidades. Es así como el proceso de abstracción que parte de la observación del dominio termina en un modelo arquitectónico que representa al software.

El UML (Unified Modeling Language) como herramienta de representación del software

El Lenguaje Unificado de Modelado es un instrumento determinante en el modelado de sistemas bajo el enfoque orientado a objetos que permite ver desde diferentes perspectivas al mismo sistema. Las cuatro vistas más uno (4+1 vistas) permiten hacer un enfoque aislado de cada aspecto del sistema que a su vez permite integrar con el resto de las vistas. De esta manera se reduce la complejidad y se propicia la especificación en detalle del sistema.

Dentro de UML, el modelo de clases responde al aspecto estático del sistema (la arquitectura del software), para efectos de la visión dinámica existen diagramas específicos como el de actividad y secuencia que se complementan con el de clases mediante el mecanismo de trazabilidad. El UML también aborda el enfoque de implementación mediante los diagramas de componentes y despliegue.

Existen herramientas CASE (Computer Aided Software Engineering) que permiten expresar todo el modelo del sistema software de manera que haya coherencia y trazabilidad entre los diferentes diagramas (vistas). El elemento importante de las herramientas CASE es que, en muchas de ellas, es posible generar el código junto con la base de datos. En nuestros días no se hace esta tarea con la completitud necesaria pero es posible que en un futuro se llegue a un UML ejecutable o algo muy cercano a eso.

Conclusiones

El paradigma Orientado a Objeto es la visión fundamental para desarrollar sistemas de cualquier tamaño con complejidad reducida que garantice de alguna manera un software de alta calidad. La combinación del paradigma con la visualización que provee el UML y el soporte que aportan las herramientas CASE resultan en una combinación de mucho alcance para los analistas desarrolladores. Este artículo no ha pretendido ser completo ni detallado pero si como un preámbulo para aquellos que recién incursionan en OO.

SCRUM

Publicado 14 noviembre, 2011 por Ramón Gorrín
Categorías: Ingeniería de Software, Procesos de Desarrollo de Software, Scrum

Esta es la presentación que hicimos en el marco del XVII Aniversario de la creación del Programa de Licenciatura en Informática de la Universidad de Oriente Núcleo de Sucre en Venezuela. La charla versó sobre las características principales de SCRUM como proceso de desarrollo de software.

Proyectos con Scrum

 

Bases del PMBOK

Publicado 14 noviembre, 2011 por Ramón Gorrín
Categorías: PMBOK

Esta es la presentación que hicimos en el marco del XVII Aniversario de la creación del Programa de Licenciatura en Informática de la Universidad de Oriente Núcleo de Sucre en Venezuela. Se les hizo una breve descripción de lo más básico sobre PMBOK dirigido a aquellos estudiantes de pre-grado que desconocían del tema.

PMBOK en Proyectos Tecnológicos

Aspectos Gerenciales sobre los Procesos Iterativos de Proyectos de Software

Publicado 7 julio, 2011 por Ramón Gorrín
Categorías: Ingeniería de Software, Procesos de Desarrollo de Software

En este primer post les dejo parte de la presentación que utilizaré para una conferencia el día 07 de julio de 2011 en la III Jornadas de Ingeniería de Sistemas auspiciadas por Instituto Universitario Politécnico Santiago Mariño en la Ciudad de Puerto La Cruz, Anzoátegui, Venezuela.

En esta oportunidad tomé como referencia el trabajo de Kurt Bittner y Ian Spence en su libro “Managing Iterative Software Development Projects” e hice un extracto de los factores clave que un Gerente de proyectos debe tomar en cuenta para saber si su proyecto va bien encaminado, todo eso en el contexto de un proceso iterativo de desarrollo de software.

Hagan clic aqui:

Gestión de Proyectos Iterativos

Sobre los Temas a Tratar en este Blog

Publicado 20 junio, 2011 por Ramón Gorrín
Categorías: General

Cuando me decidí a crear el blog me preguntaba cuáles serían las categorías que incluiría dado que los tópicos de interés son diversos. A continuación la lista:

  1. Ingeniería de Software (generalidades)
  2. Procesos de Desarrollo de Software
    • RUP
    • PUD
    • OpenUp
    • Scrum
    • XP
  3. Lenguajes de Programación
  4. UML
  5. PMBOK
  6. CMMI
  7. Ingeniería de Requisitos
  8. Herramientas CASE
  9. Parques Tecnológicos
    • Incubación
    • Innovación
    •  Transferencia Tecnológica
    • Propiedad Intelectual

Esta estructura podrá variar de diversas maneras pero creo que es una buena guía para orientar el temario del blog.

¡Hola mundo!

Publicado 14 junio, 2011 por Ramón Gorrín
Categorías: General

Después de mucho evitarlo por fin he decidido crear mi blog con información que recojo con mis experiencias como Ingeniero de Software, Director de Proyectos, Docente y Conferencista. Desde hace un par de años me rondaba esa idea y, sin embargo, le daba largas con la excusa de no tener tiempo para las actualizaciones o de carecer de la disciplina necesaria para mantener una página en forma ordenada y atractiva para el lector. Bueno!! ya el paso está dado, ya no más excusas y publico esto con la esperanza de que les guste a mis amigos, colegas, clientes y alumnos. Espero sus opiniones y gracias por leerme!!!


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 418 seguidores