Está en la página 1de 52

Jos Sulla Torres

Conceptos de evaluacin.
Evaluacin de arquitecturas.
Principios de la evaluacin.
Caractersticas de los mtodos de evaluacin
de arquitecturas.
Mtodos de evaluacin de arquitecturas.

Una vez que la


arquitectura est
especificada,
diseada y
documentada, se
puede iniciar la
construccin, pero
es muy importante
asegurarse de que
sea la correcta y
satisfaga los drivers

arquitectnicos.

La evaluacin de arquitecturas permite la


deteccin de incumplimientos y riesgos
asociados, que pueden ser causas de
retrasos o problemas muy serios en los
proyectos a materializar.

La evaluacin es una tcnica con la que


los desarrolladores cuentan para evitar
que las fallas lleguen a los usuarios
finales o se presenten en momentos en
los que corregirlas es complicado y
costoso.

En la evaluacin se examina un producto o


subproducto para ver si cumple con criterios
de calidad y qu tanto se desva de ellos.
Las desviaciones se clasifican en dos tipos:
Desviaciones de las necesidades reales de los
usuarios (validaciones)
Desviaciones a la construccin correcta del
producto (verificaciones)

Es importante asegurarse de que no se desva


de manera significativa de los drivers
arquitectnicos (requerimientos funcionales,
atributos de calidad y de restricciones).
La
evaluacin
consiste
en
revisar,
inspeccionar o recorrer los artefactos de la
arquitectura
de
software
buscando
inconsistencias, errores o desviaciones
respecto de los drivers.

Ser procedimientos que detecten lo antes


posible los errores para que no afecten fases
posteriores o el uso del producto.
Buscar
que
los
requerimientos
sean
satisfechos, sealando los riesgos a efecto de
realizar acciones de mitigacin.

Es cualquier elemento en un artefacto


(documentacin o cdigo) que provoque una
falla en el sistema una vez que est en
operacin o bien, se refiere a que el sistema
no cumpla con un criterio de calidad.

El desarrollo de software tiene una naturaleza


incremental, de tal forma que si un producto
intermedio contiene defectos, las siguientes
actividades que lo usen como entrada, se
llevarn a cabo con una entrada incorrecta,
generando productos intermedios errneos y,
por lo mismo, incrementando el nmero de
defectos.

Las evaluaciones deben siempre enfocarse en


la satisfaccin de los drivers arquitectnicos
pues son las base de la calidad del producto.
Producto intermedio usuario (diseador)
Producto terminado usuario (quien usa el
sistema)

Un riesgo es un evento posible en el futuro,


que en caso de ocurrir tendr un efecto sobre
las metas del proyecto.
Se caracteriza por la probabilidad de que
ocurra y por el impacto que tendr en las
metas del proyecto.

Categora

Descripcin

Requerimientos funcionales

Las funciones construidas en el producto no


satisfacen lo que los usuarios necesitan.

Requerimientos no
funcionales

El sistema es incapaz de satisfacer los


atributos de calidad que espera el usuario.

Desconocimiento tcnico

El personal no cuenta con el conocimiento


necesario para plantear una solucin tcnica
que satisfaga los requerimientos de los
usuarios.

1.

2.

Por el momento en el que se realiza la


evaluacin: Mientras se define ya se

termin de definir ya se desarroll el


sistema.
Por el personal que la realiza: Personas que
estn desarrollando o las que no
participaron en su desarrollo.

1. Requerimientos

2. Requerimientos de la arquitectura
3. Diseo de la arquitectura
4. Documentacin de la arquitectura
5. Evaluacin de la arquitectura

6. Diseo del software


7. Implementacin del software
8. Pruebas del software
9. Evaluacin del software

Revisiones e inspecciones
Recorridos informales de diseo
ATAM
ACDM
ARID
Desarrollo de prototipos o experimentos

Una vista se conforma por:


1. Un diagrama donde se representan los elementos
de la estructura
2. Informacin textual que ayuda a comprender este.

Vistas lgicas.
Vistas de comportamiento.
Vistas fsicas.

Estas vistas describen las estructuras


arquitectnicas en trminos de elementos
que toman la forma de unidades de
implementacin considerando tanto las
propiedades como las relaciones u
organizacin de cada una de estas.
Unidades de implementacin:

Clases, paquetes, mdulos o subsistemas.

<<capa>>
Presentacin

VistaConsultaCorridaImpl

<<usa>>
<<capa>>
Negocio

ConsultaCorridaImpl

<<usa>>
<<capa>>
Datos

DAOCorridaImpl

Estas vistas describen las estructuras cuyos


elementos denotan entidades visibles en
tiempo de ejecucin.
Unidades de implementacin:

Instancias, procesos, objetos, clientes, servidores o


almacenes de datos.

Estas vistas describen las estructuras cuyos


elementos son fsicos que mantienen algn
tipo de relacin con los de las estructuras
documentadas en otras vistas
Unidades de implementacin:
Despliegue.

Servidor aplicativo

Dispositivo
mvil

PC usuario

<<internet>>

<<internet>>

<<capa>>
Presentacin

<<intranet>>

<<capa>>
Negocio

<<internet>>

Sistema
externo

<<capa>>
Datos

Servidor de
base de datos

Un aspecto fundamental para que la


documentacin cumpla el objetivo de
comunicar de manera eficiente informacin
sobre las estructuras es el uso de notaciones
con una sintaxis y semntica que minimice la
ambigedad.

System Readme = {
...
Component VistaConsultaCorridas = {
Port p_envia;
Property codigoFuente: externalFile = "consulta.jsp";
};
Component ConsultaCorridasImpl = {
Port p_recibe;
Property conexionesMax: integer=100;
Property latenciaMax: integer=2;
Property codigoFuente: externalFile ="consulta.java";
};
Connector rmi = {
Role r_cliente;
Role r_cliente
};
Attachments{
cliente.envia to rmi.r_cliente;
servidor.recibe to rmi.r_cliente;
}
...

Cmo decidir de manera ms sistemtica


cules vistas y de qu modo elaborarlas?
Mtodos: Describen las entradas, secuencias y las
salidas generadas.
Marcos: Proveen un conjunto de conceptos que
deben considerarse al documentar la arquitectura.

Vistas y mas all (Views and Beyond)


4+1 Vistas
Mtodo de diseo centrado en la arquitectura
(ACDM)
Puntos de vista y perspectivas
ISO/IEC/IEEE 42010:2011
Modelo 4 Vistas de Siemens (Hofmeister,
1999)
Rational ADS

Considera tres categoras:

Mdulos (Lgica)
Componentes y conectores(C&C) (Comportamiento)
Localizacin (Fsica)

Etapas:

Generar una lista de vistas candidatas.


Combinar las vistas
Priorizar las vistas

Vistas de mdulos

Vista 1: Capas, Descomposicin y Uso (muy detallada)


Vista 2: Modelo de datos (muy detallada)

Vistas de comportamiento y localizacin

Vista 3: Cliente-Servidor (muy detallada)


Vista 4: Implantacin e instalacin (muy detallada)

Prioridad
1

Nombre de vistas
Vista 1: Capas, Descomposicin y Uso
Vista 2: Modelo de datos

Vista 3: Cliente-Serv idor


Vista 4: Implantacin e Instalacin

1. Representacin primaria.
2. Catlogo de elementos
2.1.
2.2.
2.3.
2.4.

Elementos y sus propiedades


Relaciones y sus propiedades
Interfaces
Comportamiento

3. Diagrama de contexto
4. Gua de variabilidad
5. Antecedentes de la arquitectura

5.1. Justificacin de las decisiones de diseo


5.2. Anlisis de resultados
5.3. Suposiciones

6. Otra informacin

Elemento

Responsabilidad

Propiedades

Navegador

Accede a la pgina
generada por
VistaConsultaCorridas

VistaConsultaCorridas

Genera las pginas


relacionadas con la
consulta de corridas

Lenguaje=Java
Framework=JSF
Sesin=Stateless
Tipo=Singleton

ConsultaCorridasImpl

Implementa los
mtodos de la interfaz
ServConsultaCorridas

Lenguaje=Java
Framework=JSF
Sesin=Stateless
Tipo=Singleton

DAOCorridaImpl

Implementa los
mtodos CRUD
declarados en la
interfaz DAOCorridas

Lenguaje=Java
Framework=por definir
Sesin=por definir
Tipo=Lazy

Base de datos

Base de datos

Nombre

Responsabilidad

Propiedades

Request/Response (L)

Permite la comunicacin
entre una instancia que
proporciona un servicio
y otra que lo requiere

Comunicacin=
Sncrona
Protocolo=MI (Method
Invocation)
Modo=Local(L)

Request/Response (R)

Permite la comunicacin
entre una instancia que
proporciona un servicio
y otra que lo requiere

Comunicacin=
Sncrona
Protocolo=HTTP,
HTTPS, RMI (Remote
Method Invocation)
Modo=Remoto(R)

ServVistaConsultaCorridas

Nombre de mtodo

consultarCorridas

Precondiciones

La cadena provista con los criterios de bsqueda es


correcta y no vaca

Poscondiciones

Ninguna
Parmetros y retorno

Nombre

Tipo

Descripcin

criterio

String

Cadena con los criterios de bsqueda de


la corrida. Incluye ciudades de salida y
destino, as como fechas de salida y
regreso

Valor de retorno

void
Excepciones

IllegalArgumentException

Indica que a un mtodo se le ha pasado un


argumento inapropiado

BusinessComponentException

Seala que la instancia del componente de la capa


de negocios solicitado ha regresado un error o
advertencia

Escenario de Atributos de calidad (EAC) del CU-01: Consultar Corrida


Decisin

Justificacin

Comentarios

EAC-01

Uso del patrn

El patrn Lazy Acquisition


puede promover el
desempeo al no cargar
un objeto, y sus
propiedades y
dependencias, hasta que
no es absolutamente
necesario

Este patrn se emplea en


el nivel de capa de
datos.
Su implementacin
requiere modificar un
archivo de configuracin
(Hibernate)

EAC-01

Uso del patrn

El patrn Eager
Acquisition puede
promover el desempeo
pues evita la ejecucin de
varias clausulas SELECT
cuando se carga de forma
simultnea un objeto.

Este patrn se emplea en


el nivel de capa de
datos.
Su implementacin
requiere modificar un
archivo de configuracin
(Hibernate)

EAC-01

Tctica: Mantener
copias mltiples
mediante cachs

El uso de cachs
promueve el desempeo,
almacenando datos.

Este patrn se emplea en


el nivel de capa de
datos.

Lazy Acquisition
(507)

Eager Acquisition

Estructura del documento de arquitectura:


Ttulo
Tabla de contenido
ndice de figuras

1. Alcance
2. Referencias
3. Arquitectura de software
4. Objetivos de la arquitectura y restricciones
5. Arquitectura lgica
6. Arquitectura de proceso
7. Arquitectura de desarrollo
8. Arquitectura fsica
9. Escenarios
10. Tamao y desempeo
Apndices

Puntos de vista:
1.
2.
3.
4.
5.
6.
7.

Funcional.
Informacin.
Concurrencia.
Desarrollo.
Implantacin.
Operacional.
Contexto.

1.
2.
3.
4.
5.
6.
7.
8.

Portada
Descripcin del documento
Descripcin de proyecto
Drivers arquitectnicos
Contexto del sistema
Nivel n de descomposicin del sistema
Mapeo entre perspectivas
ndices por palabras, glosarios y acrnimos

Escribir la documentacin desde la


perspectiva de la persona que la va a utilizar.
En caso de usar notaciones propietarias o
informales, incluir un cuadro de notacin en
cada diagrama para evitar ambigedad en su
interpretacin.
Usar el nivel adecuado de abstraccin o
detalle considerando el tipo de usuario de la
documentacin

Qu significa documentar en el contexto de


arquitectura de software?
Cules son las razones para documentar la
arquitectura?
Cules son las clases de vistas que debe
documentar un arquitecto de software?

También podría gustarte