08 Sep

El Proceso de Diseño Orientado a Objetos

El proceso del diseño orientado a objetos no puede describirse mediante recetas, aunque está lo bastante bien definido como para ofrecer un proceso predecible y repetible para la organización de desarrollo de software madura.

Rasgos de los Proyectos con Éxito

Un proyecto de software con éxito es aquel en el que lo que se entrega satisface y posiblemente excede las expectativas del cliente.

Rasgos Comunes en Sistemas Orientados a Objetos Exitosos

Hay dos rasgos comunes a prácticamente todos los sistemas con éxito orientados a objetos, y que brillan por su ausencia en los sistemas fracasados:

  • La existencia de una fuerte visión arquitectónica.
  • La aplicación de un ciclo de vida del desarrollo bien dirigido, iterativo e incremental.

La Arquitectura de un Sistema Orientado a Objetos

La arquitectura de un sistema orientado a objetos abarca su estructura de clases y objetos, organizada en términos de diferentes capas y particiones. La arquitectura de un sistema es en gran medida irrelevante para los usuarios finales.

Las arquitecturas buenas tienden a ser orientadas a objetos. La aplicación de los principios subyacentes a la descomposición orientada a objetos tiende a producir arquitecturas que exhiben las propiedades deseables de la complejidad organizada.

Atributos de las Buenas Arquitecturas de Software

Las buenas arquitecturas de software tienden a tener varios atributos en común:

  • Están construidas en capas de abstracción bien definidas.
  • Existe una clara separación de intereses entre el interfaz y la implantación de cada capa.
  • La arquitectura es simple.

Decisión Estratégica

Es aquella que tiene varias aplicaciones arquitectónicas. Mecanismos para la detección de errores, paradigmas de interfaces de usuario, políticas de manejo de memoria.

Decisión Táctica

Tiene solo implicaciones arquitectónicas locales y normalmente solo involucra los detalles del interfaz e implantación de una abstracción. El protocolo de una clase.

Proceso Iterativo e Incremental

El proceso es iterativo en el sentido de que conlleva el refinamiento sucesivo de una arquitectura orientada a objetos, por lo cual se aplica la experiencia y resultados de cada versión a la siguiente iteración del análisis y el diseño.

El proceso es incremental en el sentido de que cada pasada por un ciclo (análisis/diseño/evolución) lleva a refinar gradualmente las decisiones estratégicas y tácticas.

El Diseño Global Circular

Es el fundamento del proceso del diseño orientado a objetos.

Niveles de Madurez de un Proceso

Existen cinco niveles distintos de madurez de un proceso:

  • Inicial: El proceso de desarrollo es a menudo caótico.
  • Repetible: La organización tiene control razonable sobre sus planes y compromisos.
  • Definido: El proceso de desarrollo está razonablemente bien definido, comprendido y practicado.
  • Dirigido: La organización tiene medidas cuantitativas de un proceso.
  • Óptimo: La organización tiene establecido un proceso bien sintonizado que brinda consistentemente productos de alta calidad.

El Microprocesador

El microprocesador representa las actividades diarias del desarrollador individual o de un equipo pequeño de ellos.

Actividades del Microprocesador

Tiende a seguir las siguientes actividades:

  • Identificar las clases y objetos a un nivel dado de abstracción.
  • Identificar la semántica de estas clases y objetos.
  • Identificar las relaciones entre estas clases y objetos.
  • Especificar el interfaz y después la implementación de estas clases.

Identificación de las Relaciones entre Clases y Objetos

Propósito

Es consolidar las fronteras y reconocer los colaboradores de cada abstracción.

Análisis

Para especificar las asociaciones entre clases y objetos.

Diseño

Para especificar las colaboraciones que forman los mecanismos de la arquitectura, así como el agrupamiento de las clases en categorías y de los módulos en subsistemas.

Productos

Los diagramas de clase, diagramas de objetos y diagramas de módulos.

Actividades

Existen tres actividades asociadas:

  • La especificación de asociaciones.
  • La identificación de varias colaboraciones.
  • El refinamiento de las asociaciones.

La Identificación de Asociaciones

Es principalmente una actividad de análisis y de diseño inicial, las asociaciones son semánticamente débiles, solo representan alguna suerte de dependencia semántica, el papel y cardinalidad de cada participante en la relación y posiblemente una declaración de navegabilidad.

La Identificación de Colaboraciones

Es una actividad de diseño, y es un problema de clasificación, esta etapa requiere creatividad y perspicacia.

El Refinamiento de las Asociaciones

Es una actividad de análisis y diseño. Durante el análisis se pueden desplegar ciertas asociaciones en otras relaciones más precisas semánticamente para reflejar la comprensión reciente que se tiene del dominio del problema.

Hitos y Medidas

Se completa con éxito esta fase cuando se ha especificado la semántica y las relaciones entre ciertas abstracciones interesantes de forma suficiente como para servir como planos para su implantación.

Implementación de Clase y Objetos

Propósito

Durante el análisis, el propósito de implantar clase y objeto es proporcionar un refinamiento de las abstracciones existentes suficiente para descubrir nuevas clases y objetos del nivel siguiente de abstracción, que se introducen en la siguiente iteración del microproceso.

Productos

Las decisiones sobre la representación de cada abstracción y la correspondencia entre representaciones y el modelo físico dirigen los productos. En momento inicial del proceso de desarrollo se pueden capturar estas decisiones tácticas de representaciones de clase refinadas.

Actividades

Existe una actividad primordial asociada a esta etapa: la selección de las estructuras y algoritmos que suministran la semántica de las abstracciones que se identificaron previamente en el microproceso.

Hitos y Medidas

Durante el análisis se completa esta fase con éxito una vez que se han identificado todas las abstracciones interesantes necesarias para satisfacer las responsabilidades de abstracciones de nivel superior identificadas durante esta pasada del microproceso.

Macroproceso del Desarrollo – Visión General

El macroproceso sirve como marco de referencia para controlar el microproceso. El macroproceso es principalmente del interés de la dirección técnica del equipo de desarrollo cuya preocupación principal es sutilmente diferente de la del desarrollador individual.

Conceptualización

Propósito

La conceptualización persigue establecer los requisitos esenciales para el sistema.

Productos

Los prototipos son los productos primarios de la conceptualización.

Actividades

Es importante para la organización de desarrollo habilitar una estructura que proporcione suficientes recursos para explorar nuevas ideas.

Análisis

Propósitos

Se busca modelar las clases y los objetos que forman el vocabulario del dominio problema y se inventan los artefactos que proporcionan el comportamiento que requiere el modelo del análisis.

Productos

Se dice que la salida de un análisis es una descripción de la función del sistema, junto con declaraciones sobre: eficiencia y recursos requeridos.

Actividades

  • Análisis del Dominio: Busca identificar las clases y objetos que son comunes en un dominio de problema en particular.
  • Planificación del Escenario: Es la actividad central del análisis.

Hitos y Medidas

Se completa con éxito esta fase cuando se han desarrollado y rubricado escenarios para todos los comportamientos fundamentales del sistema.

Diseño

Propósito

El propósito del diseño es crear una arquitectura para la implantación que va a desplegarse, y establecer las políticas tácticas comunes que deben utilizarse por parte de elementos dispares del sistema.

Productos

Hay dos productos principales del diseño: una descripción de la arquitectura y descripciones de políticas tácticas comunes. Se puede describir una arquitectura mediante diagramas, así como mediante versiones arquitectónicas del sistema. Las políticas tácticas comunes incluyen a los mecanismos localizados que aparecen por todo el sistema.

Actividades

  • La planificación arquitectónica: Conlleva el proyectar las capas y particiones del sistema completo.
  • El diseño táctico: Conlleva la toma de decisiones sobre la gran cantidad de políticas comunes.
  • La planificación de versiones: Fija el teatro en el que se desenvuelve la evolución arquitectónica.

Hitos y Medidas

Se completa esta fase con éxito cuando se ha validado la arquitectura mediante un prototipo y mediante revisión formal.

Evolución

Propósito

El propósito de la fase evolutiva es aumentar y cambiar la implantación mediante refino sucesivo, lo que conduce en última instancia al sistema en producción.

Productos

El producto principal de la evolución es una corriente de versiones ejecutables que representan sucesivos refinamientos a la versión inicial de la arquitectura. Los productos secundarios incluyen prototipos de comportamiento que se usan para explorar diseños alternativos o para analizar mejor los rincones oscuros de la funcionalidad del sistema.

Deja un comentario