sesion 5 2 del análisis al diseño
TRANSCRIPT
Diseño:Del Análisis Al Diseño
Lic. César Alcántara Loayza
2CAL/Fundamentos
Del Análisis Al Diseño Para manejar el proceso de desarrollo se
debe comprender como se relacionan las fases de desarrollo una con otra y con el proceso general.
Comprender las relaciones entre los productos de trabajo facilita el mejoramiento y refinamiento de los modelos. Así como en el análisis, los modelos se deben reconciliar para probar su integridad y exactitud. Los procesos de prueba del proceso continuarán a través del diseño.
3CAL/Fundamentos
Comprender como estos mismos productos del trabajo evolucionan desde una fase hacia la siguiente facilitan el manejo del proceso general. Cada fase entrega los productos de trabajo a un nivel que les permita usarse como recursos en la siguiente fase.
Del Análisis Al Diseño
4CAL/Fundamentos
Revisión Del Ciclo De Vida En las lecciones anteriores aprendimos
acerca de las dos primeras fases, Inicio del proyecto y análisis del problema. Al final de estas dos fases, ha creado y probado un modelo completo del dominio del problema. Se ha definido todos los objetivos y recursos que el sistema final deberá soportar. Estos productos del trabajo representan su objetivo
5CAL/Fundamentos
El diseño es cuando Ud. toma el objetivo como el blanco. Es importante que no dispare hasta que que tenga el blanco. En otras palabras, diseñar trata acerca del planear como conseguir los objetivos definidos en los productos de trabajo del análisis. El proceso de planeamiento identifica la solución deseada, no la solución completa.
Revisión Del Ciclo De Vida
6CAL/Fundamentos
El diseño trata la funcionalidad asi como el rendimiento, la flexibilidad y la capacidad de mantenimiento.
Revisión Del Ciclo De Vida
7CAL/Fundamentos
Diseño vs. Implementación Probablemente preguntará, ¿pero el lenguaje y
el ambiente de implementación no dictan el diseño?, En parte es así. Habrá un esfuerzo convenido durante la implementación para reconciliar el diseño deseado y lo que la tecnología soportará. El valor de separar estos dos pasos viene del hecho de que el diseño retiene la imagen del resultado deseado, mientras que la implementación se debe conformar con las limitaciones de la tecnología y entornos actuales.
8CAL/Fundamentos
Las tecnologías y los entornos cambian rápidamente, presentando nuevas oportunidades para mejorar la implementación. El diseño proporciona un marco a através del cual medir estas nuevas oportunidades y planear su introducción en la implementación.
Diseño vs. Implementación
9CAL/Fundamentos
El Proceso De Desarrollo Inicio del Proyecto Documenta las espectativas del usuario.
10CAL/Fundamentos
Análisis del problema Define los recursos del dominio del problema.
11CAL/Fundamentos
Análisis arquitectural Selecciona la aproximación arquitectónica
para la solución.
12CAL/Fundamentos
Diseño de Objetos Selecciona y define la implementación para la
solución de software.
13CAL/Fundamentos
Construcción Construye, compra, integra el código para
satisfacer el diseño.
14CAL/Fundamentos
Instalación Coloca la aplicación en producción
15CAL/Fundamentos
Mantenimiento Revisa / mejora la aplicación en producción.
16CAL/Fundamentos
Transición Análisis - Diseño La transición desde el análisis hacia el
diseño requiere que se comprenda la diferencia entre lo que se modeló en el análisis y lo que se modelará en el diseño. Durante el inicio del proyecto y del análisis del problema se procedió bajo el supuesto de que el “sistema” que estaba modelando no tenía nada que hacer en absoluto con el software y hardware.
17CAL/Fundamentos
La funcionalidad (modelo de casos de uso), los recursos (modelo de objetos) y la interacción de los recursos para soportar la funcionalidad (Diagramas de secuencia y colaboración) podrían existir se proporcione o no automatización. p.e en el sistema de venta de boletos, se identificó la necesidad de fijar asiento, fijar presentaciones, los precios por asiento en las presentaciones y la venta de boletos. No hay nada tecnológico en estas funciones. De hecho ellas han sido realizadas manualmente durante centurias.
Transición Análisis - Diseño
18CAL/Fundamentos
Todo lo que definió en el análisis debe permanecer intacto a medida que se mueve hacia el diseño. De hecho, el modelo de objetos a nivel de análisis será la base para su diseño de base de datos. Pocos objetos nuevos, si hay alguno, que se adicionan en el diseño formarán parte de la base de datos. Aquellos que se agregan durante el diseño de objetos serán para mejorar el rendimiento no la funcionalidad.
Transición Análisis - Diseño
19CAL/Fundamentos
Diseño: el diseño añade una “capa” de funcionalidad mas arriba del modelo de análisis. Esta capa es el software que facilita el uso de los recursos del dominio del problema usando interfaces, bases de datos, control de transacciones y comunicación que conforma al modelo de casos de uso.
Transición Análisis - Diseño
20CAL/Fundamentos
Esta capa de tecnología probablemente cambie a menudo, pero el dominio del problema subyacente permanecerá relativamente estable.
Transición Análisis - Diseño
21CAL/Fundamentos
Transición Análisis - Diseño
Capa de diseño
Capa de análisis
22CAL/Fundamentos
Revisión Productos del Análisis Diccionario de datos:
Define el vocabulario del dominio del problema. Este vocabulario forma la base para todos los modelos.
Modelo de casos de uso: Incluye los diagramas de casos de uso,
como también la descripción narrativa y los escenarios de cada caso de uso.
23CAL/Fundamentos
Modelo de casos de uso El propósito del modelo de casos de uso es
establecer lo que el usuario espera ver cuando interactúe con el sistema. La vista es de alguien de fuera del sistema. Los escenario proporcionan los casos de prueba para cada caso de uso y así son recursos críticos para el resto del proyecto. Estos casos de prueba pueden y deben ser aplicados en cada iteración del proceso de análisis y diseño.
Revisión Productos del Análisis
24CAL/Fundamentos
Modelo de objetos: Proporciona dos recursos: el diagrama de
clases y el diagrama de objetos. Los dos diagramas representan los recursos del dominio del problema que los usuarios podrían requerir aún si el sistema no fuera automatizado. El diagrama de clases (frecuentemente llamado modelo de objetos) es el modelo principal.
Revisión Productos del Análisis
25CAL/Fundamentos
Modelo de objetos: El diagrama de clases genera el código y
proporciona la mejor definición para los objetos persistentes del sistema –los objetos que deberán manejarse en la base de datos. El diagrama de objetos es una herramienta para prueba y compresión de los objetos que son representados por clases en el diagrama de clases.
Revisión Productos del Análisis
26CAL/Fundamentos
Diagramas de interacción: Los diagramas de secuencia y
colaboración representan las interacciones entre objetos. Como tal son herramientas valiosas para identificar interfaces de objetos. Las interfaces a su vez ayudan a identificar los atributos que debe soportar el diagrama de clases. Los atributos contienen valores de datos.
Revisión Productos del Análisis
27CAL/Fundamentos
... Los valores de datos son pasados como argumentos y valores de retorno en las interfaces. Un valor no se puede pasar como argumento si no está contenido en un atributo en algún objeto o creado por alguna operación que pertenece a un objeto (atributo derivado).
Revisión Productos del Análisis
28CAL/Fundamentos
Revisión Productos del Análisis
Modelo de Casos de Uso
Diagrama deSecuencia ó
Diagramas deActividad
Diagrama deEstados
Modelo de Objetos
Mas útil para describir el
negocio
29CAL/Fundamentos
Diseño En Dos Pasos El diseño está dividido en dos pasos:
Análisis arquitectural y Diseño de objetos.
Por ejemplo la diferencia entre aplicaciones locales y distribuidas son significativas. Los retos de latencia, acceso a memoria, fallas parciales y concurrencia, requieren diseños significativamente diferentes para soluciones locales que para distribuidas.
30CAL/Fundamentos
Arquitecturas diferentes dictan diferentes diseños de bajo nivel. Consecuentemente, las decisiones arquitecturales proporcionan el contexto para el diseño de bajo nivel.
Diseño En Dos Pasos
31CAL/Fundamentos
El análisis arquitectural evalúa los requerimientos del sistema contra las tecnologías que ofrecen los mas promisorios marcos para una solución. El problema se particiona para soportar tanto los requerimientos tecnológicos como los funcionales.
Análisis Arquitectural
32CAL/Fundamentos
Los casos de uso con utilizado como fuente para la división funcional. Los diagramas de clases proporcionan los recursos de cada área funcional. Los diagramas de interacción proporcionan la visión de las dependencias entre las particiones funcionales. Las particiones resultantes se modelan en un diagrama de paquetes.
Análisis Arquitectural
33CAL/Fundamentos
Cada paquete (partición funcional) está dividido para representar las capas de tecnología que se usarán para implementar la solución.
Análisis Arquitectural
34CAL/Fundamentos
Análisis ArquitecturalModelo de Casos de Uso modelo de objetos Diagramas de Interacción (Funcionalidad) (Recursos) (Comunicación)
Diagrama de PaquetesRepresentación de las particiones del Sistema
A B
C D
35CAL/Fundamentos
Diseño De Objetos Durante el diseño de objetos cada
partición representa un tipo diferente de reto de diseño. Por ejemplo, la partición de interface del usuario trata un conjunto muy diferente de problemas que la partición de acceso a datos. Una partición de Servidor de Transacciones es muy diferente de una partición de Aplicación del Cliente.
36CAL/Fundamentos
El diseño de objetos utilizará el diagrama de estados adicionalmente a otras herramientas de análisis. Juntas estas herramientas proporcionan modelos activos de todos los aspectos del diseño de software.
Diseño De Objetos
37CAL/Fundamentos
Resúmen Las fases del proceso de desarrollo se
asignan para soportan la evolución de los modelos desde la definición del problema hasta la definición de la solución. Las mismas herramientas se usan a través del proceso. Sin embargo el nivel de detalle y la clase de objetos agregados a cada fase sucesiva son diferentes. La clave para manejar y aplicar el proceso con éxito está en comprender las relaciones entre las fases y los productos de trabajo que ellos afectan.