diseno de la arquitectura, principios y...

36
3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MISArquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información Objetivos de la sesión Los objetivos de esta sesión son que el alumno Reconozca el concepto de diseño Identifique dos métodos de diseño de arquitectura Reconozca los pasos del método ADD MISArquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 2

Upload: others

Post on 08-Jun-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

1

Diseno de la arquitectura, principios y métodos

V1.0

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Objetivos de la sesión

• Los objetivos de esta sesión son que el alumno

– Reconozca el concepto de diseño

– Identifique dos métodos de diseño de arquitectura

– Reconozca los pasos del método ADD

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 2

Page 2: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

2

Diseño

• ¿ Qué significa la palabra “diseño” ?

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Diseño

• ¿ Qué significa diseño ?– De acuerdo a [Wand] no existe una definición [ ]

precisa y aceptada de forma general de lo que es el diseño

• Definición propuesta– Diseño como un objeto: “La especificación de un

sujeto con el fin de alcanzar objetivos, en un entorno particular, usando un conjunto de

t i iti ti f

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

componentes primitivos, que satisface un conjunto de requerimientos y que está sujeto a diversas restricciones”

– Diseño como actividad: “La creación de un diseño (con los 6 elementos previos”

Page 3: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

3

Diseño

• Sujeto– Se refiere al artefacto diseñado

• Entorno– El contexto o escenario dentro del cual existe u

opera el sujeto• Objetivos

– Conjunto de propósitos que el sujeto debe lograr, en término de los efectos deseados sobre el entorno

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

entorno• Requerimientos

– Conjunto de propiedades que el sujeto debe tener. Separados en dos categorías: funcionales y no-funcionales

Diseño

• Componentes primitivos– El conjunto de tipos de elementos (componentes) que

l j tcomponen al sujeto• Restricciones

– Conjunto de restricciones de comportamiento y forma sobre el sujeto

• La especificación es la salida de la actividad de diseño– Es una descripción detallada del sujeto en termino de los

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Es una descripción detallada del sujeto en termino de los componentes utilizados (de acuerdo al conjunto de elementos primitivos) y sus conexiones. Puede ser provista usando una representación simbólica (documentos y diagramas), aunque también puede existir unicamente en la mente de alguien, como modelo físico y embebido en el sujeto mismo

Page 4: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

4

Diseño en arquitectura

• En el contexto de la arquitectura de software, el diseño se refiere a tomar decisiones que lleven a la creación de las estructuras que forman a lacreación de las estructuras que forman a la arquitectura (son los componentes primitivos de la definición)– Dinámicas– Lógicas– De asignación

• Se puede hablar de dos objetivos principales del diseño

Técnico: Crear diversas estructuras que permitan

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

– Técnico: Crear diversas estructuras que permitan satisfacer los requerimientos que influyen en la arquitectura (drivers) y principalmente los atributos de calidad

– Administrativo: Definir una estructura que permita guiar el desarrollo

Entradas al diseño

Requerimientosde negocio

Categoría funcional Categoría no-funcional

Documento de visión y alcance

Documento de casos de uso

de negocio

Casos de uso

Reglasde negocio

Atributos decalidad

Negocio

Usuario

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Especificación de requerimientos

Requerimientosfuncionales detalladosRequerimientos

de sistemaRestricciones

Interfacesexternas

Sistema

Fuente: Wiegers

Page 5: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

5

Diseño

• Actividad de diseño como transformación

RUs / RFs

Atributos de calidad

Decisiones

Presen tacion

Dato s

Negocio

Control de Pujas

De spachador de solicitudes de Pujas

«Front Control le r»

Despachador de Peticiones Generale s

IRece ptorPuja s

IDespacha dorPeticionesGenerale s

IAdministradorAcce so

IControlPuj as

Cola Puj as

IColaPuja s

Se sepa ra en Recep tor d e Sol icitudes de Puja y Despacha dor de Peticiones debido a que el primero d ebe usar cola segú n requerimientos y el segund o de be u sar hi l os para

mejo rar el desemp eño (guiado por requ erimientos)

IAdminis tradorCRUDSubastas

Subas tas ::Administrador CRUD Subasta s

«o bserver»Observ ador

Subas tas

IControlNotific acionesServ er

«S trate gy»Control Puj as

Subasta InglesaIControlPuj asEspecifico

« Strate gy»Control Puj as

Subasta Sellada

Notifica ciones::Control Notificac ion Inscritos

+ enviarNoti fica cio n(Noti fi cacion) : void

Notific aciones::Control Notifica cion Participantes

+ enviarNotificacion(Noti fi cacion ) : void

IAdministradorNotificacionInscritos

IAdministradorNotificac ionPa rticipantes

De ntro de este se

imple me nta el BDRS-RNF-13

Notifica ciones::Administra dor de Ac cesos

«DAO»

IPe rsiste ncia Pujas

Pujas::Pe rsiste ncia de Puj as

Pujas ::Realizar Puja

DatosNegocioPresentación

« interface»

:IAdministrarSubastas

«inte rface»

:IDetalleSubastas

:Administrador

«ISeccionDetalleSubast...

:Subasta Inglesa

«in terface»

:IAdministradorCRUDSubastas

«interface»

:IPersistenciaSubastas

«interface»

:ISeccionDetal le

Esta selección se puede hacer:- Con una tabla que asocie Tipo de clase y la interfaz ISeccionDetal leSubasta-Uti li zar el Patrón Chain of Responsibil ity

"Al ta de Subasta"()

despl iegaDetal le(Subasta)

seleccionarComponenteSubastaEspecífico(Subasta) :IDetal leSubasta

«create»

desplegarDetal leSubastas(Subasta)

despl iiegaDetalle(Subasta)

"Datos generales"()

"Datos Especificos"()

"Salvar"()

val idarDatosGenerales()

<<usa>>

<<produce>>

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Restricciones- De este punto en adelan te se maneja el tipo genérico Subasta

val idarDatosEspeci fi cos()

salvar(Subasta)

salvar(Subasta) :Subasta

Serv idor BDServ idor Aplicaciones SIRE

Serv idor Aplicaciones

PC

«BD»Informix

Negocio

«database access layer»Datos

Web Browser

«cliente pesado»Presentacion

En un momento dado existen múltiples PC cliente conectadas al sistema

«JDBC»

«JDBC»«RMI»

«HTTPS»

IPersistencia

INegocio

ArquitectoRequerimientos(drivers)

Diseño

Diseño

• Actividad de diseño como transformación

RUs / RFs

Atributos de calidad

Decisiones

Presen tacion

Dato s

Negocio

Control de Pujas

De spachador de solicitudes de Pujas

«Front Control le r»

Despachador de Peticiones Generale s

IRece ptorPuja s

IDespacha dorPeticionesGenerale s

IAdministradorAcce so

IControlPuj as

Cola Puj as

IColaPuja s

Se sepa ra en Recep tor d e Sol icitudes de Puja y Despacha dor de Peticiones debido a que el primero d ebe usar cola segú n requerimientos y el segund o de be u sar hi l os para

mejo rar el desemp eño (guiado por requ erimientos)

IAdminis tradorCRUDSubastas

Subas tas ::Administrador CRUD Subasta s

«o bserver»Observ ador

Subas tas

IControlNotific acionesServ er

«S trate gy»Control Puj as

Subasta InglesaIControlPuj asEspecifico

« Strate gy»Control Puj as

Subasta Sellada

Notifica ciones::Control Notificac ion Inscritos

+ enviarNoti fica cio n(Noti fi cacion) : void

Notific aciones::Control Notifica cion Participantes

+ enviarNotificacion(Noti fi cacion ) : void

IAdministradorNotificacionInscritos

IAdministradorNotificac ionPa rticipantes

De ntro de este se

imple me nta el BDRS-RNF-13

Notifica ciones::Administra dor de Ac cesos

«DAO»

IPe rsiste ncia Pujas

Pujas::Pe rsiste ncia de Puj as

Pujas ::Realizar Puja

DatosNegocioPresentación

« interface»

:IAdministrarSubastas

«inte rface»

:IDetalleSubastas

:Administrador

«ISeccionDetalleSubast...

:Subasta Inglesa

«in terface»

:IAdministradorCRUDSubastas

«interface»

:IPersistenciaSubastas

«interface»

:ISeccionDetal le

Esta selección se puede hacer:- Con una tabla que asocie Tipo de clase y la interfaz ISeccionDetal leSubasta-Uti li zar el Patrón Chain of Responsibil ity

"Al ta de Subasta"()

despl iegaDetal le(Subasta)

seleccionarComponenteSubastaEspecífico(Subasta) :IDetal leSubasta

«create»

desplegarDetal leSubastas(Subasta)

despl iiegaDetalle(Subasta)

"Datos generales"()

"Datos Especificos"()

"Salvar"()

val idarDatosGenerales()

<<usa>>

<<produce>>

El diseño involucra actividades creativas

pero, ¿puede realizarse de manera

sistemática?

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Restricciones- De este punto en adelan te se maneja el tipo genérico Subasta

val idarDatosEspeci fi cos()

salvar(Subasta)

salvar(Subasta) :Subasta

Serv idor BDServ idor Aplicaciones SIRE

Serv idor Aplicaciones

PC

«BD»Informix

Negocio

«database access layer»Datos

Web Browser

«cliente pesado»Presentacion

En un momento dado existen múltiples PC cliente conectadas al sistema

«JDBC»

«JDBC»«RMI»

«HTTPS»

IPersistencia

INegocio

ArquitectoRequerimientos(drivers)

Diseño

Page 6: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

6

Diseño

• El diseño debería ser realizado de forma sistemática (metódica)

Decisiones de diseño justificadas– Decisiones de diseño justificadas

• El arquitecto debe ser responsable de las decisiones de diseño (accountability)– Decisiones de diseño registradas

• De lo contrario el diseño de la arquitectura es una actividad mística realizada por gurús

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

p g

Métodos de diseño

• Existen métodos que apoyan en la creación sistemática del diseño:sistemática del diseño:

– ACDM: Architecture-Centric Design Method

– ADD: Attribute Driven Design

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 7: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

7

Métodos de diseño: ACDM

• Architecture – Centric Design Methodg– La etapa 3 se enfoca en

el diseño

• A diferencia de ADD,ACDM no detalla tantolas actividades de diseño yel método se enfocamás en cubrir todo el

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

más en cubrir todo elciclo de desarrollo dela arquitectura

Métodos de diseño: ADD

• Diseño guiado por atributos

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 8: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

8

Métodos de diseño: ADD

• Diseño guiado por atributosp

• Este método proporciona pasos muy detallados para hacer el diseño, lo cual facilita realizar

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

facilita realizar diseño de forma sistemática

Métodos de diseño: ADD

• Paso 1: Confirmar que hay suficiente q yinformación de requerimientos

• Dos consideraciones:– Hay información

Requerimientos

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

– Requerimientos priorizados

Page 9: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

9

Priorización de drivers

• Antes de entrar al diseño, se debe asegurar que los atributos de calidad han sido priorizados

N l t d b í t– Normalmente uno no debería entrar con un numero muy elevado de escenarios al diseño

• Si se siguió QAW, los escenarios deberían estar priorizados– Técnica del 30% de votos

Priorización de atributos de calidad se puede

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

• Priorización de atributos de calidad se puede hacer en base a técnica propuesta por ATAM, a lo largo de dos dimensiones (Alta, Media Baja)– Importancia para el negocio– Riesgo técnico

Priorización de Atributos de

Calidad• Ejemplo

ID Escenario Importancia para cliente Dificultad de implementació PrioritarioRNF-AC-001 A A SIRNF-AC-002 A M SIRNF-AC-003 A B posiblementeRNF-AC-004 M A SIRNF-AC-005 M M SIRNF-AC-006 M B NORNF-AC-007 B A NORNF-AC-008 B M NO

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

RNF-AC-009 B B NO

Page 10: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

10

Priorización de Casos de uso

• La manera en que se estructura el sistema normalmente no impacta el hecho de que se p qpuedan satisfacer los requerimientos funcionales del sistema– Ej. Consulta de catálogo

• Sin embargo, al diseñar la arquitectura es necesario asegurarse que la estructura contiene los elementos necesarios para satisfacer los

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

los elementos necesarios para satisfacer los requerimientos funcionales– Para realizar el diseño se toma un sub-conjunto de

requerimientos funcionales del sistema

Priorización de Casos de uso

• Se deben considerar como primarios los casos de uso del sistema que

Sean críticos para el negocio– Sean críticos para el negocio– Estén asociados a algún escenario priortario– Impliquen un grado alto de complejidad o dificultad de

implementación– Requieran de la interacción de un gran número de elementos

de la arquitectura– Ilustren un punto particular– Representan un riesgo que se debe mitigar– Otra opción es identificar “familias” de casos de uso y elegir

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Otra opción es identificar familias de casos de uso y elegir un representante de cada “familia”

• Nota: Sólo unos pocos casos de uso resultan prioritarios (ej. 10 – 20%)

Page 11: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

11

Priorización de Casos de uso

• Se deben considerar como primarios los RU del sistema que

Sean críticos para el negocio– Sean críticos para el negocio– Estén asociados a algún escenario priortario– Impliquen un grado alto de complejidad o dificultad de

implementación– Requieran de la interacción de un gran número de elementos

de la arquitectura– Ilustren un punto particular– Representan un riesgo que se debe mitigar– Otra opción es identificar “familias” de RU y elegir un

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Otra opción es identificar familias de RU y elegir un representante de cada “familia”

• Nota: Sólo unos pocos casos de uso resultan prioritarios (ej. 10 – 20%)

Restricciones

• Las restricciones limitan las decisiones de diseño y en ese sentido es necesario tener claridad al yrespecto

• Antes de iniciar el diseño, se deben identificar las restricciones– Identificar el entorno de uso del sistema– Sistemas legados

Et

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

– Etc…

Page 12: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

12

Ejercicio

• Por equipo, tomar los casos de uso del caso de estudio y elegir aquellos que van a ser prioritarios, y g q q pjustificando la elección.

• Identificar, a partir de la información que se tiene y particularmente el documento de visión, las restricciones que serán impuestas sobre el sistema.

• Tiempo: 30 minutos

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

• Tiempo: 30 minutos

• Nota: El resultado de esto y el ejercicio de QAW nos permite tener los drivers

Métodos de diseño: ADD

• Paso 2: Elegir elemento del sistema a descomponer

• Nota: este es el inicio del proceso iterativo de diseño

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 13: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

13

Elección de un elemento

• En caso de que se tenga algo g gexistente (ej. pre-arquitectura) o que ya se hayan hecho iteraciones previas, se debe elegir un elemento del diseño que hay

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

q yhasta el momento

Criterios de elección

• Algunos criterios para elegir el elemento son:– Conocimiento de la arquitectura actual: Si es el único

elemento que se puede seleccionar, como en el caso de que l últi l t i d l

q p , qsea el último elemento que se quiera descomponer o el número de dependencias que tiene con los demás elementos del sistema.

– Riesgo y dificultad: Qué tan difícil será alcanzar los requerimientos asociados al elemento o cómo se van a alcanzar los requerimientos asociados al él o los riesgos relacionados con alcanzar los requerimientos relacionados con el elemento.

– Criterio de negocio: El papel que tiene el elemento en el desarrollo incremental del sistema y en las liberaciones de funcionalidad o si el elemento se va a construir o se va a comprar o el impacto que tendrá en el mercado etc

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

comprar o el impacto que tendrá en el mercado, etc.– Criterio de la organización: El impacto que tendrá el elemento

en los recursos ya utilizados, el nivel– de habilidad de los desarrolladores o que alguna persona con

autoridad seleccione el elemento.

Page 14: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

14

Elección de un elemento

• En la etapa de diseño de un sistema, se deben considerar dos posibilidades distintas:p– Se está partiendo de cero (“greenfield”)– Se está partiendo de algo existente (“brownfield”)

• En caso de que sea un desarrollo de cero, el primer elemento a descomponer es el sistema visto como un bloque único

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

SISTEMA

Métodos de diseño: ADD

• Paso 3: Identificación de drivers

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 15: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

15

Priorización de Casos de uso

• En ADD, la priorización de drivers hasta este punto sólo involucra la prioridad dada por los involucrados (Alta, Media o Baja)j )

• ADD sugiere complementar esa prioridad asignando una prioridad asociada al impacto sobre la arquitectura o la dificultad de implementacion (Alta, Media o Baja)

• Se privilegían drivers con media / alta importancia para el cliente y medio / alto impacto sobre la arquitectura

ID Escenario Importancia para cliente Dificultad de implementació Prioritario

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

p p pRNF-AC-001 A A SIRNF-AC-002 A M SIRNF-AC-003 A B posiblementeRNF-AC-004 M A SIRNF-AC-005 M M SIRNF-AC-006 M B NORNF-AC-007 B A NORNF-AC-008 B M NORNF-AC-009 B B NO

Métodos de diseño: ADD

• Paso 4: Elección de “conceptos de pdiseño” que satisfagan los drivers

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 16: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

16

Conceptos de diseño

• Esta es una etapa fundamental dentro del proceso de diseño. El elemento elegido se descompone en g psub-elementos, pero la elección de estos elementos no se debe hacer de forma arbitraria.

• Al momento de diseñar, es importante no re-inventar la rueda y utilizar soluciones “probadas”

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

– Patrones– Tácticas– Frameworks VS.

Ejemplo de patrón

• Ejemplo– Cuando se transforma un modelo de dominio (182) en ( )

una arquitectura técnica […] se debe soportar el desarrollo y evolución independiente de las partes

– Por ello:• Definir una o más capas para el sistema que se está

desarrollando, cada capa debe tener una responsabilidad distinta y específica

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 17: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

17

Táctica

• ¿ Qué son las tácticas ?– Son decisiones de diseño que influencian el control de q

la respuesta de un atributo de calidad.– Las tácticas buscan controlar respuestas a estímulos

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Framework

• Los frameworks son soluciones en código a problemas recurrentes de desarrollo. p– Originalmente, los frameworks se usaban haciendo uso

de herencia, sin embargo hoy en día se usan otros enfoques como configuración vía XML o uso de anotacionesProblema Framework Uso

Mapeo OO – Relacional Hibernate XML, anotaciones

Interfaz de usuario local Swing Herencia

C ió d t S i XML A t i

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

– En general un framework engloba patrones y tácticas

Conexión de componentes Spring XML, Anotaciones

Pruebas unitarias JUnit Herencia, Anotaciones

Interfaz de usuario web JSF XML

Page 18: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

18

Paso 4

• ADD sugiere que durante el paso 4 se exploren diversas decisiones que permitan satisfacer los q pdrivers

• Es importante tener la disciplina de documentar la razón por la cual se favorece una decisión sobre la otra– Lo que en inglés se conoce como “rationale”

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Métodos de diseño: ADD

• Paso 5: Instanciar los elementos arquitecturales y asignar responsabilidades

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 19: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

19

Instanciando un patrón

• Ejemplo– La descripción del patrón de capas no nos dice cuántas p p p

capas debe haber en el sistema. Al decidir cuántas capas escogemos, creamos una “instancia” del patrón

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Ejemplo• Un esquema típico es la

separación en 3 capas:– Presentación

Capa de PresentaciónPresentación

– Negocio– Datos

• Puede ser necesario poner otras capas, dependiendo de los requerimientos

• El patrón impone ciertasrestricciones En este caso

SISTEMACapa de Negocio

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

restricciones. En este casola capa de presentaciónno debe comunicarse conla de acceso a datos deforma directa

Capa de acceso a datos

Page 20: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

20

Ejemplo• Una vez que es instanciado

el patrón, se asignanresponsabilidades Capa de Presentaciónp

• Ej.– La capa de presentación

contendrá toda la lógicarelacionada con la interaccióncon el usuario

– La capa de negocio contendrátoda la lógica relacionada conlos procesos y reglas de negocio

– La capa de datos contendrá

SISTEMACapa de Negocio

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

La capa de datos contendrátoda la lógica relacionadacon la persistencia de losobjetos en una base de datosrelacional

Capa de acceso a datos

Métodos de diseño: ADD

• Paso 5: Instanciar los elementos arquitecturales y asignar responsabilidades

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 21: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

21

Paso 5

• Las interfaces son los “contratos” que existen entre los elementos dependientes y que permitirán p y q plograr una interacción exitosa entre los mismos.

• En etapas iniciales del diseño no es necesario definir muy detalladamente las interfaces

• Es fundamental, sin embargo, definir las interfaces

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

, g ,de servicios comunes y también de los componentes que serán sujetos a diseño detallado durante la construcción

Plantilla de documentación de

interfazSección 1. Presentación Primaria

Versión enó

Plantilla para una Interfaz

Sección 2. Catálogo de Elementos2.1 Elementos2.2 Relaciones2.3 Interfaces2.4 Propiedades2.5 Comportamiento

Sección 3. Diagrama de Contexto de la Vista

entexto

ó

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 42

Sección 4. Guía de VariaciónSección 5. Decisiones de Diseño

Page 22: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

22

Detalles de interfaz

• Existen varios aspectos que es importante documentar de una interfaz particular, sin embargo lo más esencial es la “firma” de la interfaz, es decirlo más esencial es la firma de la interfaz, es decir el conjunto de métodos que la componen

• Es conveniente que para cada método se documente– Pré-condiciones– Post-condiciones

Restricciones

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 43

– Restricciones– Parámetros– Valor de Retorno– Excepciones

Detalles de interfaz

• Ejemplo de plantilla

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 44

Page 23: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

23

Métodos de diseño: ADD

• Paso 7: Verificar y refinar requerimientos y hacerlos restricciones para los elementos instanciados

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Paso 7

• En esta etapa se verifica que la descomposición realizada durante ladescomposición realizada durante la iteración cubre los drivers.

• Si no se satisfacen los drivers se puede– Delegar el driver para ser satisfecho por uno

o más sub-elementos

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 46

• Los requerimientos no satisfechos se tienen que tratar en la iteración siguiente

Page 24: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

24

Paso 7

• Tabla de seguimiento– En cada iteración se evalua el grado de– En cada iteración se evalua el grado de

satisfacción de drivers

Driver Iteración 1 Iteración 2 Iteración 3 Iteración 4

CU-010 no

CU-017 no

CU-035 no

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 47

AC-001 no

AC-003 no

AC-005 parcial

RES-001 completo

RES-003 no

Criterios de terminación

• El proceso de diseño continua a lo largo de varias iteraciones

H t h iti d t d l i– Hasta que se han mitigado todos los riesgos más importantes

– Hasta que se han tomado decisiones de diseño relativas a los drivers

– Hasta que se acaba el tiempo planeado• Nota: Dependiendo del ciclo de desarrollo

del sistema los ciclos de desarrollo de la

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 48

del sistema, los ciclos de desarrollo de la arquitectura se realizan todos “en bloque” o bien a lo largo de los ciclos de desarrollo del sistema la arquitectura se refina.

Page 25: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

25

Proceso Unificado:Analisis & Design

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Métodos de diseño: ADD

• Iteraciones subsecuentes

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Page 26: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

26

Iteraciones subsecuentes

• Para las iteraciones subsecuentes, se puede elegir continuar descomponientopuede elegir continuar descomponiento los elementos siguiendo un enfoque “en anchura” (breadth) o “en profundidad” (depth)

1era iteración

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 51

1era iteración

2a iteración

Ejemplo

• Iteración 2: El arquitectose quiere enfocar en Capa de Presentaciónqdespomponer las capaspara soportar lafuncionalidad (paso 2 de ADD). El driver elegidoson los casos de usoprimarios (paso 3). SISTEMA

Capa de Negocio

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

• Paso 4: ¿Qué patrón(es) usar ?

Capa de acceso a datos

Page 27: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

27

Paso 4

• POSA 4 nos ayuda mucho…

Qué elegir?

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 53

Paso 4

• POSA 4 nos ayuda mucho…

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 54

Conviene registrar el por qué de ésta decisión de diseño…

Page 28: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

28

Paso 4

• POSA 4 nos ayuda mucho…

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 55

Conviene registrar el por qué de ésta decisión de diseño…

Ejemplo

• Paso 5: Instanciando Domain Capa de Presentación

Objects, explicit interfacey encapsulatedimplementation para un caso de uso primario– Este ejemplo muestra que se

pueden elegir más de un patrón a la vez.

SISTEMACapa de Negocio

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

• Enfoque en anchura Capa de acceso a datos

Page 29: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

29

Ejemplo

• Paso 5: Asignación de responsabilidades Capa de Presentaciónp

SISTEMACapa de Negocio

El componente “VistaTransferencia” contiene todo el código que soporta la

interacción con el usuario para el caso de uso CU-010

Realizar Transferencia*

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Capa de acceso a datos

* Supongamos que éste es uno de los casos de uso primarios elegido dentro de los drivers

Ejemplo

• Paso 5: Asignación de responsabilidades Capa de Presentaciónp

SISTEMACapa de Negocio

El componente “ServicioTransferencia”

contiene toda la lógica de negocio para soporter el caso

de uso CU-010 Realizar Transferencia*

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Capa de acceso a datos

* Supongamos que éste es uno de los casos de uso primarios elegido dentro de los drivers

Page 30: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

30

Ejemplo

• Paso 5: Asignación de responsabilidades Capa de Presentaciónp

SISTEMACapa de Negocio

El componente “PersistenciaTransferencia”

contiene toda la lógica relacionada con la

persistencia necesaria para llevar a cabo el caso de uso

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Capa de acceso a datos

CU-010 Realizar Transferencia*

* Supongamos que éste es uno de los casos de uso primarios elegido dentro de los drivers

Ejemplo

• Paso 6: Definición de interfaces Capa de Presentación

– En este momento podemos comenzar a identificar los métodos que deben tener las interfaces de los componentes que soportan el caso de uso

• ¿Qué técnica usar?SISTEMA

Capa de Negocio

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Capa de acceso a datos

Page 31: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

31

Paso 6

• Identificación de métodos de interfaces mediante diagramas de secuenciamediante diagramas de secuencia

CapaPresentacion Servicio CapaAccesoADatos MicroServicio Entidad

1 : solicitud()2 : recupera()

3 4 : invoca()

5 : modifica()

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 61

6 : actualiza()

7

Nota: Diagrama con fines ilustrativos, los elementos no corresponden al ejemplo

Paso 7

• Tabla de seguimiento– En cada iteración se evalua el grado de– En cada iteración se evalua el grado de

satisfacción de drivers

Driver Iteración 1 Iteración 2 Iteración 3 Iteración 4

CU-010 no Completo

CU-017 no

CU-035 no

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 62

AC-001 no

AC-003 no

AC-005 parcial

RES-001 completo

RES-003 no

Page 32: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

32

Métodos de diseño: ADD

• Iteraciones subsecuentes

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

Iteraciones subsecuentes

• Ya que se realizó la estructuración general y se asignarongeneral y se asignaron responsabilidades para cubrir funcionalidad podemos enfocarnos en los atributos de calidad (diseño en profundidad). Aquí se usan también

Di ñ fí i

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

– Diseño físico

– Tácticas

– Frameworks

64

Page 33: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

33

Diseño físico

• En etapas iniciales de descomposición, conviene pensar también en laconviene pensar también en la estructuración física y posiblemente aplicar tácticas para soportar aspectos como disponibilidad

Servidor BDServidor aplicativoPC

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 65

Servidor BD

BD

Servidor aplicativoPC

Capa de Presentación Capa de Negocio Capa de acceso a datosNavegador

Frameworks• La elección de frameworks es parte del proceso de diseño.

Problema Framework Uso

• RecomendacionesNo elegir frameworks “porque están de moda”

Mapeo OO – Relacional Hibernate XML, anotaciones

Interfaz de usuario local Swing Herencia

Conexión de componentes Spring XML, Anotaciones

Pruebas unitarias JUnit Herencia, Anotaciones

Interfaz de usuario web JSF XML

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

– No elegir frameworks porque están de moda– Considerar curva de aprendizaje del equipo– Considerar grado de madurez del framework, sobre todo si es

open source

66

Page 34: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

34

Discusión

• ¿Cómo aplicarían alguna táctica en el diseño del sistema?diseño del sistema?

• ¿Cómo aplicarían un framework en el diseño del sistema?

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información 67

Consideraciones finales

• Conviene que el diseño no se quede en algo conceptual sino que durante el g p qdiseño se elaboren prototipos que culminen en una “arquitectura ejecutable”

• Conviene registrar las decisiones de diseño importantes al momento de

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

ptomarlas pues de lo contrario es probable que se olviden después– Estas estarán plasmadas en la vista

68

Page 35: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

35

Consideraciones finales

• El diseño de la arquitectura no es un diseño “de alto nivel”, puede llegar a ser , p gmuy detallado– El arquitecto debe detallar tanto como sea

necesario para mitigar riesgos y satisfacer los atributos de calidad

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

• El diseño es una tarea compleja– Lo ideal en el diseño es combinar teoría y

experiencia

69

Conclusión

• En arquitectura, el diseño se refiere a la ió d t t t lcreación de estructuras para soportar los 

drivers

• Existen diversos métodos de diseño

• ADD es el método que proporciona pasos más detallados para realizar un diseño sistemático

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información

detallados para realizar un diseño sistemático

Page 36: Diseno de la arquitectura, principios y métodosliim.izt.uam.mx/~humberto/cursos/is1/download/09_Diseno...3/9/2012 1 Diseno de la arquitectura, principios y métodos V1.0 MIS‐Arquitectura

3/9/2012

36

¿Preguntas?

• Gracias

MIS‐ Arquitectura de Software / PCyTI Posgrado en Ciencías y Tecnologías de la información