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