SlideShare a Scribd company logo
1 of 18
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR
SEDE IBARRA
ESCUELA DE INGENIERÍA
Métodos de evaluación de arquitectura de un atributo específico
Evaluación de Software
Autores: Gonzaga Martínez Evelyn Estefanía
Lema Males Leonel Efraín
Ibarra - Mayo 2014
Métodos de Evaluación de Arquitectura de un Atributo Específico
2
Resumen
En el presente documento se realiza un estudio del estado del arte de la evaluación de arquitecturas de
software de un atributo específico. Para ir introduciéndose en el tema se define que es la evaluación de
arquitecturas, sus características, objetivos que persigue. Se hace además un análisis de cuándo y por
qué una determinada arquitectura debe ser evaluada y los beneficios que reporta.
También se realiza un análisis acerca de los métodos de evaluación de arquitectura de software de un
atributo específico, los cuales son: ArchitectureLevelModifiabilityAnalysis (ALMA), Performance
Assessment of Software Architecture (PASA), ScenariobasedArchitectureLevelUsabiliTyAnalysis
(SALUTA) y Survivable Network Analysis (SNA).
Abstract
In thispaper a study of thestate of the art of assessing software architectures of a
specificattributeisperformed. To be introduced in thefieldisdefinedto be theevaluation of architectures,
characteristics, aims. Italsomakesananalysis of when and why a particular architectureshould be
evaluated and thebenefits.
Ananalysis of themethodsforevaluating software architecture of a specificattributeisalsoperformed,
which are: ArchitectureLevelModifiabilityAnalysis (ALMA), Performance Assessment of Software
Architecture (PASA), ScenariobasedArchitectureLevelUsabilityAnalysis (SALUTA) and Survivable
Network Analysis (SNA).
Métodos de Evaluación de Arquitectura de un Atributo Específico
3
Índice de Contenidos
¿QUÉ ES UNA EVALUACIÓN?............................................................................................................. 4
OBJETIVOS DE EVALUAR ARQUITECTURAS.................................................................................... 4
CARACTERÍSTICAS DE UNA EVALUACIÓN DE ARQUITECTURA.................................................. 4
¿POR QUÉ EVALUAR UNA ARQUITECTURA? .................................................................................. 4
¿CUÁNDO UNA ARQUITECTURA PUEDE SER EVALUADA? .......................................................... 5
¿QUIÉNES PARTICIPAN EN UNA EVALUACIÓN? ............................................................................ 5
TÉCNICAS DE EVALUACIÓN............................................................................................................... 6
BENEFICIOS DE REALIZAR UNA EVALUACIÓN ARQUITECTÓNICA ............................................ 6
SALIDAS DE UNA EVALUACIÓN ARQUITECTÓNICA ...................................................................... 7
PASOS BÁSICOS PARA UNA EVALUACIÓN ....................................................................................... 7
ARCHITECTURE LEVEL MODIFIABILITY ANALYSIS (ALMA) ......................................................... 7
PERFORMANCE ASSESSMENT OF SOFTWARE ARCHITECTURE (PASA) ..................................... 9
SCENARIO BASED ARCHITECTURE LEVEL USABILITY ANALYSIS (SALUTA)............................ 12
SURVIVABLE NETWORK ANALYSIS (SNA) ....................................................................................... 14
REFERENCIAS ..................................................................................................................................... 17
Índice de Figuras
FIGURA 1: CLASIFICACIÓN DE LAS TÉCNICAS............................................................................... 6
FIGURA 2: MÉTODO ALMA................................................................................................................. 9
FIGURA 3: MÉTODO PASA ................................................................................................................ 12
FIGURA 4: MÉTODO SALUTA ........................................................................................................... 14
FIGURA 5: MÉTODO SNA .................................................................................................................. 16
Índice de Tablas
TABLA 1: CUADRO COMPARATIVO ENTRE MÉTODOS DE EVALUACIÓN ALMA, PASA,
SALUTA Y SNA ..................................................................................................................................... 17
Métodos de Evaluación de Arquitectura de un Atributo Específico
4
Marco Teórico
¿Qué es una Evaluación?
Es un estudio de factibilidad que pretende detectar posibles riesgos, así como buscar
recomendaciones para contenerlos.
La diferencia entre evaluar y verificar es que la evaluación se realiza antes de la
implementación de la solución. La verificación es con el producto ya construido.(Yoan Arlet
Carrascoso Puebla, 2009)
Objetivos de Evaluar Arquitecturas
El objetivo de evaluar una arquitectura es saber si puede habilitar los requerimientos, atributos
de calidad y restricciones para asegurar que el sistema a ser construido cumple con las
necesidades de los stakeholders1
.
Características de una Evaluación de Arquitectura
Es uno de los principales puntos de evaluación dentro del proyecto, ya que errores en ella,
pueden traer que el proyecto fracase.
Puede ser realizada por gente Interna o Externa al proyecto, aunque lo más interesante es que
sea realizada por gente Externa (Mentores o Arquitectos del Área).
¿Por qué evaluar una Arquitectura?
“El propósito de realizar evaluaciones a la arquitectura, es para analizar e identificar riesgos
potenciales en su estructura y sus propiedades, que puedan afectar al sistema de software
resultante, verificar que los requerimientos no funcionales estén presentes en la arquitectura,
así como determinar en qué grado se satisfacen los atributos de calidad. Cabe señalar que los
requerimientos no funcionales también son llamados atributos de calidad”. Un atributo de
calidad es una característica de calidad que afecta a un elemento. Donde el término
“característica” se refiere a aspectos no funcionales y el término “elemento” a componente.
1
El término agrupa a trabajadores, organizaciones sociales, accionistas y proveedores, entre muchos otros actores clave que
se ven afectados por las decisiones de una empresa.
http://www.guioteca.com/rse/que-son-los-stakeholders/
Métodos de Evaluación de Arquitectura de un Atributo Específico
5
Cuanto más temprano se encuentre un problema en un proyecto de software, mejor.
Realizar una evaluación de la arquitectura es la manera más económica de evitar
desastres.
Analizar y evaluar la calidad exigida por los usuarios.
Decisiones de diseño
o Restricciones de Implementación.
o Fija la estructura organizacional, tanto del desarrollo, construcción y ejecución
del sistema.
o Logra los atributos de calidad.
o Permite el prototipado.
o Permite estimaciones más certeras.
Abstracción transferible entre sistemas
¿Cuándo una Arquitectura puede ser evaluada?
Es posible realizarla en cualquier momento según Kazman, pero propone dos variantes que
agrupan dos etapas distintas: temprano y tarde.
Temprana. No es necesario que la arquitectura esté completamente especificada para efectuar
la evaluación, y esto abarca desde las fases tempranas de diseño y a lo largo del desarrollo.
Tarde. Cuando ésta se encuentra establecida y la implementación se ha completado. Este es el
caso general que se presenta al momento de la adquisición de un sistema ya desarrollado.
¿Quiénes participan en una Evaluación?
Generalmente las evaluaciones a la arquitectura se hacen por miembros del equipo de
desarrollo, arquitecto, diseñador, entre otros. Sin embargo puede haber también situaciones en
las que intervengan personas especialistas en el tema. Otro que también se interesa por los
resultados de una evaluación es el cliente, ya que en dependencia de los resultados puede
tomar decisiones de continuar o no con el proyecto
Métodos de Evaluación de Arquitectura de un Atributo Específico
6
Técnicas de Evaluación
Existen un grupo de técnicas para evaluar que se clasifican en cualitativas y cuantitativas:
Técnicas de cuestionamiento o cualitativas. Utilizan preguntas cualitativas para
preguntarle a la arquitectura
o Cuestionarios. Abiertas. Temprana
o Checklists. Especifico del Dominio de la aplicación.
o Escenarios. Especificas del Sistema. Arquitectura avanzada.
Measuringtechniques. Sugiere hacerle medidas cuantitativas a la arquitectura.
o Utiliza métricas arquitectónicas, como acoplamiento, cohesividad en los
módulos, profundidad en herencias, modificabilidad.
o Simulaciones, Prototipos, y Experimentos.
Figura 1: Clasificación de las Técnicas
Por lo regular, las técnicas de evaluación cualitativas son utilizadas cuando la arquitectura
está en construcción, mientras que las técnicas de evaluación cuantitativas, se usan cuando la
arquitectura ya ha sido implantada.
Beneficios de realizar una evaluación arquitectónica
Financieros.
Reúne a los stakeholders.
Métodos de Evaluación de Arquitectura de un Atributo Específico
7
Fuerza una articulación en las metas específicas de calidad.
Fuerza una mejora a la documentación de la arquitectura.
Mejora la arquitectura.
Detección temprana de problemas.
Valido requerimiento y los priorizo.
Recolecta los fundamentos y las decisiones arquitectónicas tomadas.
Salidas de una evaluación arquitectónica
Lista priorizada de los atributos de calidad requeridos para la arquitectura que está
siendo evaluada.
Riesgos y no riesgos.
Pasos Básicos para una Evaluación
Preparación.
o Contexto.
o Evaluador.
o Alcance.
o Representación de la Arquitectura.
Realización.
o Presentar el problema de negocio a resolver y la arquitectura planteada.
o Evalúa, el costo, la funcionalidad, los atributos de calidad.
o Revisan requerimientos y posibles cambios.
o Discuten problemas y observaciones.
Generar y distribuir los resultados
o Issues y Recomendaciones.
o Análisis de riesgo.
ArchitectureLevelModifiabilityAnalysis (ALMA)
El atributo de calidad que analiza ALMA, es la facilidad de modificación. Esto se refiere a la
capacidad de un sistema para ser ajustado debido a cambios en requerimientos, o en el
Métodos de Evaluación de Arquitectura de un Atributo Específico
8
entorno, así como la adición de nueva funcionalidad. ALMA es el resultado de los trabajos de
investigación realizados por Bengtsson y Lassing. (Bengtsson, 2004)
ALMA es un método de evaluación orientado a metas. Existen tres para las que se puede usar:
Predicción del costo de mantenimiento. Consiste en estimar el esfuerzo requerido para
modificar la arquitectura a cambios requeridos en un futuro.
Evaluación de riesgos. Identifica los tipos de cambios que pueden ser complejos o que
sean inflexibles en la arquitectura de software.
Selección de un conjunto de arquitecturas. Compara dos o más arquitecturas
propuestas y selecciona aquella que proporcione mayor soporte a cambios.
ALMA puede utilizarse una vez que concluye la especificación de la arquitectura (evaluación
clásica), o aun cuando la arquitectura ya ha sido implementada (evaluación tardía). Este
método se apoya en el uso de escenarios de cambio, los cuales describen eventos posibles que
provocarían cambios al sistema, y cómo se llevarían a cabo éstos.
Este método se realiza a través de los siguientes pasos:
1. Definir la meta de evaluación. Dependiendo del objetivo de la evaluación, se
selecciona alguna de las tres metas.
2. Describir la arquitectura de software. Se colecta la información más relevante de la
arquitectura: sus principales componentes, las relaciones entre éstos, así como las
relaciones con el entorno del sistema.
3. Obtener escenarios. Se definen los escenarios de cambio y se agrupan en categorías.
Se eligen aquellos escenarios relacionados con el propósito de evaluación. Por
ejemplo: si la meta es estimar el esfuerzo de mantenimiento, se recomienda
seleccionar aquellos escenarios que corresponden a los cambios que tienen una alta
probabilidad de que ocurran durante la vida operacional del sistema.
Métodos de Evaluación de Arquitectura de un Atributo Específico
9
4. Evaluar escenarios. Se realiza un análisis de impacto, que consiste en identificar los
componentes afectados por los escenarios previamente definidos, determinar el efecto
del cambio sobre los componentes, así como determinar los efectos del cambio en
otros componentes. Los resultados de este análisis se deben expresar ya sea de manera
cuantitativa o cualitativa.
5. Interpretar resultados. Finalmente se interpretan los resultados, así como las
conclusiones del análisis dependiendo de la meta de evaluación seleccionada.
Figura 2: Método ALMA
Performance Assessment of Software Architecture (PASA)
El atributo de calidad que analiza PASA, es el desempeño. Que se interesa por conocer, qué
tanto tiempo le toma al sistema de software responder cuando uno o varios eventos ocurren,
así como determinar el número de eventos procesados en un intervalo de tiempo dado. PASA
es el trabajo resultante de Williams y Smith (Williams, 2002), y utiliza diversas técnicas para la
evaluación, tales como la aplicación de estilos arquitectónicos, anti-patrones, guías de diseño
y modelos.
Métodos de Evaluación de Arquitectura de un Atributo Específico
10
Al igual que ALMA, PASA se basa en escenarios. Asimismo, puede aplicarse una vez que la
arquitectura se ha especificado, o posteriormente, cuando ya ha sido implementada. Los
escenarios generados en este método proveen una medida de razonamiento con respecto al
desempeño del sistema. Si se requieren análisis más detallados, los escenarios sirven como
punto de partida para construir modelos de desempeño.
Para utilizar este método, la arquitectura de software debe estar previamente documentada. En
caso de que se encuentre parcialmente documentada, es necesario extraer la información
faltante de los miembros del equipo, así como de códigos fuente.
Los pasos para llevar acabo este método son:
1. Presentar el método de evaluación. Se comunica al equipo y directivos el objetivo de
la evaluación, y se explica el método PASA.
2. Presentar la arquitectura. El equipo de desarrollo presenta la arquitectura actual de una
manera general y sin entrar en detalles.
3. Identificar casos de uso críticos. Se seleccionan los casos de uso que son importantes
para la operación del sistema, así como aquellos que demandan una respuesta de
tiempo rápida para el usuario, u otros que presentan algún riesgo de desempeño.
Recordemos que un caso de uso puede contener varios escenarios, que describen las
diferentes formas en que se puede realizar el caso de uso. Los escenarios se
especifican en UML como diagramas de secuencia.
4. Seleccionar los escenarios de desempeño principales. Por cada caso de uso crítico, se
debe identificar los escenarios significativos con respecto al desempeño.
5. Identificar objetivos de desempeño. Por cada escenario de desempeño principal, se
debe especificar al menos un objetivo de desempeño. Mismos que pueden ser
expresados de distintas maneras. Por ejemplo: expresarlos en tiempo de respuesta,
capacidad de respuesta, restricciones o utilización de recursos. Para poder medirlo, el
objetivo de desempeño debe ser cuantitativo.
Métodos de Evaluación de Arquitectura de un Atributo Específico
11
6. Clarificar la arquitectura y discutirla. En este paso se estudia más a detalle la
arquitectura, por lo que se tienen reuniones con el arquitecto y equipo de desarrollo
para aclarar dudas. Si existe información acerca del desempeño del sistema, se
colectan métricas.
7. Analizar la arquitectura. En este paso se utilizan diferentes técnicas para analizar el
desempeño de la arquitectura. Por ejemplo:se identifican estilos arquitectónicos, con la
finalidad de detectar efectos negativos en el desempeño, se identifican anti-patrones de
desempeño que documentan problemas comunes. Se elaboran modelos de desempeño
con el objetivo de identificar problemas en la arquitectura.
8. Identificar alternativas. Si se encontraron problemas de desempeño, se identifican
alternativas de solución. Estas pueden incluir el cambio de estilo arquitectónico,
modificar la arquitectura para eliminar anti-patrones de desempeño, o alternativas para
optimizar la interacción entre componentes.
9. Presentar resultados. Finalmente se elabora un documento con los resultados de la
evaluación que incluye los objetivos de la evaluación, hallazgos encontrados, pasos
específicos a seguir y recomendaciones.
Métodos de Evaluación de Arquitectura de un Atributo Específico
12
Figura 3: Método PASA
Las personas involucradas durante la evaluación son: el arquitecto, el equipo de desarrollo y
en algunos momentos, el gerente(s) de proyecto. Si se realiza de forma intensiva, la
evaluación completa se puede llevar acabo en una semana. PASA se considera un método de
evaluación maduro, ya que ha sido probado en varios dominios de aplicación como sistemas
web, aplicaciones financieras y sistemas en tiempo real.
ScenariobasedArchitectureLevelUsabiliTyAnalysis (SALUTA)
SALUTA es el primer método desarrollado para evaluar la arquitectura desde la perspectiva
de la facilidad de uso del sistema. SALUTA es el resultado de los trabajos de investigación
hechos por Folmer y Gurp. (Folmer)
Este método hace uso de un marco de referencia elaborado por los mismos autores en el que
se expresan las relaciones que existen entre la facilidad de uso y la arquitectura de
software.(Eelke Folmer, 2003) Este marco de referencia incluye un conjunto integrado de
soluciones de diseño tales como patrones de diseño y propiedades que tienen un efecto
positivo sobre la facilidad de uso en un sistema de software. SALUTA analiza cuatro
atributos que están directamente relacionados con la facilidad de uso en un sistema de
Métodos de Evaluación de Arquitectura de un Atributo Específico
13
software, estos son: facilidad de aprendizaje, eficiencia de uso, confiabilidad y satisfacción.
Se recomienda efectuar la evaluación una vez que la especificación de la arquitectura ha
finalizado, pero antes de que se implemente.
Este método se basa en escenarios de uso, los cuales se agrupan en uno o más perfiles de uso.
Cada uno representa la facilidad de uso requerida por el sistema de software.
SALUTA está compuesto por los siguientes pasos, que se ilustran en la figura 3.
1. Crear perfiles de uso. Se identifican los usuarios y se organizan en categorías. Luego
se identifican las tareas más significativas del sistema y el contexto donde será usado
el sistema, se determinan los valores para los atributos: facilidad de aprendizaje,
eficiencia de uso, confiabilidad y satisfacción. Para reflejar la diferencia en la
prioridad de los atributos, se asigna a cada uno un valor numérico no repetido entre 1
y 4. Por último, se seleccionan los escenarios más representativos que tienen mayor
prioridad con respecto a sus atributos.
2. Describir la facilidad de uso proporcionada. Se colecta la información de la
arquitectura de software para determinar el nivel de soporte en los escenarios de uso.
Esto se realiza efectuando un análisis basado en patrones, o basado en propiedades. En
ambos análisis se utiliza el marco de referencia para determinar la presencia de
patrones o propiedades de facilidad de uso en la arquitectura a evaluar.
3. Evaluar escenarios. Se evalúa cada uno de los escenarios que forman parte del perfil
de uso. Por cada escenario se analizan los patrones y propiedades previamente
identificados. Se recomienda usar el marco de referencia para analizar cómo un
patrón, o propiedad particular afecta a un atributo específico en un escenario de uso.
Finalmente, se expresan de manera cuantitativa los resultados del análisis, que indican
el grado de soporte de facilidad de uso en cada uno de los escenarios.
4. Interpretar resultados. En este paso se obtienen los resultados de la evaluación, que
contienen el grado de facilidad de uso que soporta la arquitectura evaluada.
Métodos de Evaluación de Arquitectura de un Atributo Específico
14
Figura 4: Método SALUTA
Las personas involucradas durante la evaluación son el arquitecto de software, ingenieros de
requerimientos o ingenieros responsables por la facilidad de uso.
Survivable Network Analysis (SNA)
SNA es un método desarrollado por el CERT (ComputerEmergency Response Team) que
forma parte del SEI. Este método ayuda a identificar la capacidad de supervivencia en un
sistema, analizando su arquitectura. La supervivencia, es la capacidad que tiene un sistema
para completar su misión a tiempo, ante la presencia de ataques, fallas o accidentes. Un
ejemplo de la definición anterior es la siguiente: un cajero automático debe garantizar al
usuario los servicios esenciales aun cuando éste se encuentre en presencia de algún ataque
externo o falla interna.(Mead, 2000)
SNA utiliza tres propiedades clave para evaluar la supervivencia en un sistema:
Resistencia. Es la capacidad del sistema para repeler ataques, fallas o accidentes.
Reconocimiento. Es la capacidad de detectar ataques, fallas o accidentes, y si estos
ocurren, evaluar los daños.
Métodos de Evaluación de Arquitectura de un Atributo Específico
15
Recuperación. Es la capacidad de mantener en operación los servicios esenciales en
presencia de ataques, fallas o accidentes.
Este método puede ser aplicado después de la especificación de una arquitectura, durante la
implementación de ésta, o posteriormente.
SNA se basa en escenarios de uso, e identifica dos tipos de escenarios. El primer tipo son los
escenarios normales, que se componen de una serie de pasos donde los usuarios invocan a
servicios y obtienen acceso a activos, tales como bases de datos. El segundo tipo de
escenarios son los de intrusión, en los que se representan diferentes tipos de ataques al
sistema.
SNA está compuesto por los siguientes pasos:
1. Definición del sistema. En este paso se obtiene la misión del sistema, se discute el
entorno de uso en términos de capacidades y ubicaciones de los usuarios, se analizan
posibles riesgos que el sistema pueda presentar en condiciones adversas, finalmente se
analiza la arquitectura de software.
2. Definición de las capacidades esenciales. A continuación se seleccionan los servicios
esenciales y los activos que usan. Se deben seleccionar aquellos servicios y activos
que sean críticos para garantizar en condiciones adversas, la misión del sistema. Una
vez seleccionados, estos se trazan a través de la arquitectura, para identificar los
componentes que participan en proporcionar los servicios esenciales.
3. Definición de las capacidades que comprometen al sistema. En este paso se
selecciona un conjunto representativo de posibles ataques, basados en el entorno de
operación del sistema. Se definen los escenarios de intrusión y se trazan a través de la
arquitectura, para identificar componentes que comprometan la supervivencia del
sistema, logrando así el acceso y daño a éste.
4. Analizar la supervivencia. Finalmente se identifican los escenarios de intrusión que
contienen los componentes esenciales y que comprometen la supervivencia del
sistema. Por cada componente identificado se procede a analizarlo en términos de las
capacidades de resistencia, reconocimiento y recuperación. Estos análisis se colocan
Métodos de Evaluación de Arquitectura de un Atributo Específico
16
en una tabla llamada: mapa de supervivencia, que contiene por cada escenario de
intrusión, las estrategias de supervivencia actuales y las recomendadas con respecto a
cada una de las capacidades.
Figura 5: Método SNA
El resultado que se obtiene al final de la evaluación, es un documento que incluye
modificaciones recomendadas a la arquitectura, acompañadas del mapa de supervivencia. Las
personas involucradas durante la evaluación son: el arquitecto de software, el diseñador
principal, los propietarios del sistema y usuarios del mismo.
Métodos de Evaluación de Arquitectura de un Atributo Específico
17
Tabla 1: Cuadro comparativo entre métodos de evaluación ALMA, PASA, SALUTA y SNA
Conclusiones
En este documento el método de evaluación ALMA, que se interesa por predecir la facilidad
de modificación en una arquitectura. PASA, que analiza en la arquitectura el desempeño del
sistema. SALUTA, que analizando una serie de atributos de calidad predice la facilidad de
uso; y SNA, que analiza en la arquitectura, la supervivencia de un sistema ante la presencia de
ataques, fallas o accidentes. La Tabla 1 presenta a manera de resumen, un cuadro comparativo
entre estos cuatro métodos de evaluación.
Referencias
Bengtsson, P. N. (2004). The Journal of Systems and Software. En Architecture-Level
Modifiability Analysis (Alma). (págs. 129-147).
Eelke Folmer, J. v. (2003). Investigating the Relationship Between Usability and Software
Architecture, Software process improvement and practice. Wiley.
Métodos de Evaluación de Arquitectura de un Atributo Específico
18
Folmer, E. J. (s.f.). Scenario-Based Assessment of Software Architecture Usability. Portland .
Mead, N. R. (2000). Survivable Network Analysis Method. CMU/SEI.
Williams, L. G. (2002). PASASM: A Method for the Performance Assessment of Software
Architecture. Roma.
Yoan Arlet Carrascoso Puebla, E. C. (07 de 05 de 2009). GestioPolis. Recuperado el 20 de 05
de 2014, de http://www.gestiopolis.com/administracion-estrategia/procedimiento-
para-la-evolucion-de-las-arquitecturas-de-software.htm

More Related Content

What's hot

Manual safe-en-espanol
Manual safe-en-espanolManual safe-en-espanol
Manual safe-en-espanolingedlio
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notesSudarshan Dhondaley
 
Spm life cycle phase
Spm life cycle phaseSpm life cycle phase
Spm life cycle phasegollasaidulu1
 
Calculo de rigidez por el método de wilbur
Calculo de rigidez por el método de wilburCalculo de rigidez por el método de wilbur
Calculo de rigidez por el método de wilburlucasojeda05
 
Evaluacion de arquitecturas
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturasSamis Ambrocio
 
Cap6 requis generalesanalisis
Cap6 requis generalesanalisisCap6 requis generalesanalisis
Cap6 requis generalesanalisisjavierchampi
 
Cuadro comparativo de_modelos_de_procesos_de_software
Cuadro comparativo de_modelos_de_procesos_de_softwareCuadro comparativo de_modelos_de_procesos_de_software
Cuadro comparativo de_modelos_de_procesos_de_softwareShaman King
 
1 4 estandares
1 4 estandares1 4 estandares
1 4 estandareslandeta_p
 
Modelos de proceso evolutivo
Modelos de proceso evolutivoModelos de proceso evolutivo
Modelos de proceso evolutivoUriel Ramos
 
WaterFall Model & Spiral Mode
WaterFall Model & Spiral ModeWaterFall Model & Spiral Mode
WaterFall Model & Spiral ModeShahDhruv21
 
Software architecture unit 4
Software architecture unit 4Software architecture unit 4
Software architecture unit 4yawani05
 
Calidad de Software
Calidad de SoftwareCalidad de Software
Calidad de SoftwareAnaMelba MH
 
Organización y administración de obras
Organización y administración de obrasOrganización y administración de obras
Organización y administración de obrasleana91
 
Diseño estructuras concreto armado HARSEM
Diseño estructuras concreto armado HARSEMDiseño estructuras concreto armado HARSEM
Diseño estructuras concreto armado HARSEMEsmeralda Laura
 
calidad para el producto del software
calidad para el producto del softwarecalidad para el producto del software
calidad para el producto del softwarearidesbetava15
 

What's hot (20)

Manual safe-en-espanol
Manual safe-en-espanolManual safe-en-espanol
Manual safe-en-espanol
 
puentes
puentespuentes
puentes
 
Software architecture Unit 1 notes
Software architecture Unit 1 notesSoftware architecture Unit 1 notes
Software architecture Unit 1 notes
 
Spm life cycle phase
Spm life cycle phaseSpm life cycle phase
Spm life cycle phase
 
Calculo de rigidez por el método de wilbur
Calculo de rigidez por el método de wilburCalculo de rigidez por el método de wilbur
Calculo de rigidez por el método de wilbur
 
Parte I - Curso SAP2000
Parte I - Curso SAP2000Parte I - Curso SAP2000
Parte I - Curso SAP2000
 
Evaluacion de arquitecturas
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturas
 
Cap6 requis generalesanalisis
Cap6 requis generalesanalisisCap6 requis generalesanalisis
Cap6 requis generalesanalisis
 
Cuadro comparativo de_modelos_de_procesos_de_software
Cuadro comparativo de_modelos_de_procesos_de_softwareCuadro comparativo de_modelos_de_procesos_de_software
Cuadro comparativo de_modelos_de_procesos_de_software
 
1 4 estandares
1 4 estandares1 4 estandares
1 4 estandares
 
Modelos de proceso evolutivo
Modelos de proceso evolutivoModelos de proceso evolutivo
Modelos de proceso evolutivo
 
WaterFall Model & Spiral Mode
WaterFall Model & Spiral ModeWaterFall Model & Spiral Mode
WaterFall Model & Spiral Mode
 
VULNERABILIDAD Y REFUERZO DE PUENTES EN ZONAS SÍSMICAS
VULNERABILIDAD Y REFUERZO DE PUENTES EN ZONAS SÍSMICASVULNERABILIDAD Y REFUERZO DE PUENTES EN ZONAS SÍSMICAS
VULNERABILIDAD Y REFUERZO DE PUENTES EN ZONAS SÍSMICAS
 
Software architecture unit 4
Software architecture unit 4Software architecture unit 4
Software architecture unit 4
 
Calidad de Software
Calidad de SoftwareCalidad de Software
Calidad de Software
 
Organización y administración de obras
Organización y administración de obrasOrganización y administración de obras
Organización y administración de obras
 
Documentacion rup
Documentacion rupDocumentacion rup
Documentacion rup
 
Encofrado de columnas
Encofrado de columnasEncofrado de columnas
Encofrado de columnas
 
Diseño estructuras concreto armado HARSEM
Diseño estructuras concreto armado HARSEMDiseño estructuras concreto armado HARSEM
Diseño estructuras concreto armado HARSEM
 
calidad para el producto del software
calidad para el producto del softwarecalidad para el producto del software
calidad para el producto del software
 

Similar to Métodos de evaluación de arquitectura a un atributo específico

Exposicion evaluacion e_arquitecturas_de_softw
Exposicion evaluacion e_arquitecturas_de_softwExposicion evaluacion e_arquitecturas_de_softw
Exposicion evaluacion e_arquitecturas_de_softwDavid Lorett
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno softwareclaudiocaizales
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipoyanezcabrera
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilvaeddysilva18
 
RUP - Fase de Elaboración
RUP - Fase de ElaboraciónRUP - Fase de Elaboración
RUP - Fase de ElaboraciónAdrian González
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareRichard J. Nuñez
 
Fabio lópez cuadro_comparativo_actividad_2.2
Fabio lópez cuadro_comparativo_actividad_2.2Fabio lópez cuadro_comparativo_actividad_2.2
Fabio lópez cuadro_comparativo_actividad_2.2Fabio Lopez
 
Fundamento del Diseño de Software
Fundamento del Diseño de SoftwareFundamento del Diseño de Software
Fundamento del Diseño de SoftwareGlamisleidys Chourio
 
Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1naviwz
 
Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos unrated999
 
Introducción a la Arquitectura de Software
Introducción a la Arquitectura de SoftwareIntroducción a la Arquitectura de Software
Introducción a la Arquitectura de SoftwareGustavo Alzate Sandoval
 
Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1Vanessa Toral Yépez
 
Definición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentaciónDefinición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentaciónOvidio Fernando Hernández Albarran
 

Similar to Métodos de evaluación de arquitectura a un atributo específico (20)

Exposicion evaluacion e_arquitecturas_de_softw
Exposicion evaluacion e_arquitecturas_de_softwExposicion evaluacion e_arquitecturas_de_softw
Exposicion evaluacion e_arquitecturas_de_softw
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno software
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilva
 
Chartprocesounificadoanalisis diseño
Chartprocesounificadoanalisis diseñoChartprocesounificadoanalisis diseño
Chartprocesounificadoanalisis diseño
 
RUP - Fase de Elaboración
RUP - Fase de ElaboraciónRUP - Fase de Elaboración
RUP - Fase de Elaboración
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del Software
 
Fabio lópez cuadro_comparativo_actividad_2.2
Fabio lópez cuadro_comparativo_actividad_2.2Fabio lópez cuadro_comparativo_actividad_2.2
Fabio lópez cuadro_comparativo_actividad_2.2
 
Fundamento del Diseño de Software
Fundamento del Diseño de SoftwareFundamento del Diseño de Software
Fundamento del Diseño de Software
 
Calidad del Software
Calidad del SoftwareCalidad del Software
Calidad del Software
 
titulo de pdf
titulo de pdftitulo de pdf
titulo de pdf
 
Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1Diseã±os de planes_de_pruebas_de_software1
Diseã±os de planes_de_pruebas_de_software1
 
Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos Ingeniería de requisitos y la ingeniería de requerimientos
Ingeniería de requisitos y la ingeniería de requerimientos
 
Métricas de Diseño Software
Métricas de Diseño SoftwareMétricas de Diseño Software
Métricas de Diseño Software
 
Como medir la calidad de software
Como medir la calidad de softwareComo medir la calidad de software
Como medir la calidad de software
 
Introducción a la Arquitectura de Software
Introducción a la Arquitectura de SoftwareIntroducción a la Arquitectura de Software
Introducción a la Arquitectura de Software
 
Iso 9126
Iso 9126Iso 9126
Iso 9126
 
Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1Diseños de planes de pruebas de software1
Diseños de planes de pruebas de software1
 
Definición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentaciónDefinición de planificación de proyectos de software presentación
Definición de planificación de proyectos de software presentación
 
Estimación para proy_soft-caja_b_y_n
Estimación para proy_soft-caja_b_y_nEstimación para proy_soft-caja_b_y_n
Estimación para proy_soft-caja_b_y_n
 

Métodos de evaluación de arquitectura a un atributo específico

  • 1. PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE IBARRA ESCUELA DE INGENIERÍA Métodos de evaluación de arquitectura de un atributo específico Evaluación de Software Autores: Gonzaga Martínez Evelyn Estefanía Lema Males Leonel Efraín Ibarra - Mayo 2014
  • 2. Métodos de Evaluación de Arquitectura de un Atributo Específico 2 Resumen En el presente documento se realiza un estudio del estado del arte de la evaluación de arquitecturas de software de un atributo específico. Para ir introduciéndose en el tema se define que es la evaluación de arquitecturas, sus características, objetivos que persigue. Se hace además un análisis de cuándo y por qué una determinada arquitectura debe ser evaluada y los beneficios que reporta. También se realiza un análisis acerca de los métodos de evaluación de arquitectura de software de un atributo específico, los cuales son: ArchitectureLevelModifiabilityAnalysis (ALMA), Performance Assessment of Software Architecture (PASA), ScenariobasedArchitectureLevelUsabiliTyAnalysis (SALUTA) y Survivable Network Analysis (SNA). Abstract In thispaper a study of thestate of the art of assessing software architectures of a specificattributeisperformed. To be introduced in thefieldisdefinedto be theevaluation of architectures, characteristics, aims. Italsomakesananalysis of when and why a particular architectureshould be evaluated and thebenefits. Ananalysis of themethodsforevaluating software architecture of a specificattributeisalsoperformed, which are: ArchitectureLevelModifiabilityAnalysis (ALMA), Performance Assessment of Software Architecture (PASA), ScenariobasedArchitectureLevelUsabilityAnalysis (SALUTA) and Survivable Network Analysis (SNA).
  • 3. Métodos de Evaluación de Arquitectura de un Atributo Específico 3 Índice de Contenidos ¿QUÉ ES UNA EVALUACIÓN?............................................................................................................. 4 OBJETIVOS DE EVALUAR ARQUITECTURAS.................................................................................... 4 CARACTERÍSTICAS DE UNA EVALUACIÓN DE ARQUITECTURA.................................................. 4 ¿POR QUÉ EVALUAR UNA ARQUITECTURA? .................................................................................. 4 ¿CUÁNDO UNA ARQUITECTURA PUEDE SER EVALUADA? .......................................................... 5 ¿QUIÉNES PARTICIPAN EN UNA EVALUACIÓN? ............................................................................ 5 TÉCNICAS DE EVALUACIÓN............................................................................................................... 6 BENEFICIOS DE REALIZAR UNA EVALUACIÓN ARQUITECTÓNICA ............................................ 6 SALIDAS DE UNA EVALUACIÓN ARQUITECTÓNICA ...................................................................... 7 PASOS BÁSICOS PARA UNA EVALUACIÓN ....................................................................................... 7 ARCHITECTURE LEVEL MODIFIABILITY ANALYSIS (ALMA) ......................................................... 7 PERFORMANCE ASSESSMENT OF SOFTWARE ARCHITECTURE (PASA) ..................................... 9 SCENARIO BASED ARCHITECTURE LEVEL USABILITY ANALYSIS (SALUTA)............................ 12 SURVIVABLE NETWORK ANALYSIS (SNA) ....................................................................................... 14 REFERENCIAS ..................................................................................................................................... 17 Índice de Figuras FIGURA 1: CLASIFICACIÓN DE LAS TÉCNICAS............................................................................... 6 FIGURA 2: MÉTODO ALMA................................................................................................................. 9 FIGURA 3: MÉTODO PASA ................................................................................................................ 12 FIGURA 4: MÉTODO SALUTA ........................................................................................................... 14 FIGURA 5: MÉTODO SNA .................................................................................................................. 16 Índice de Tablas TABLA 1: CUADRO COMPARATIVO ENTRE MÉTODOS DE EVALUACIÓN ALMA, PASA, SALUTA Y SNA ..................................................................................................................................... 17
  • 4. Métodos de Evaluación de Arquitectura de un Atributo Específico 4 Marco Teórico ¿Qué es una Evaluación? Es un estudio de factibilidad que pretende detectar posibles riesgos, así como buscar recomendaciones para contenerlos. La diferencia entre evaluar y verificar es que la evaluación se realiza antes de la implementación de la solución. La verificación es con el producto ya construido.(Yoan Arlet Carrascoso Puebla, 2009) Objetivos de Evaluar Arquitecturas El objetivo de evaluar una arquitectura es saber si puede habilitar los requerimientos, atributos de calidad y restricciones para asegurar que el sistema a ser construido cumple con las necesidades de los stakeholders1 . Características de una Evaluación de Arquitectura Es uno de los principales puntos de evaluación dentro del proyecto, ya que errores en ella, pueden traer que el proyecto fracase. Puede ser realizada por gente Interna o Externa al proyecto, aunque lo más interesante es que sea realizada por gente Externa (Mentores o Arquitectos del Área). ¿Por qué evaluar una Arquitectura? “El propósito de realizar evaluaciones a la arquitectura, es para analizar e identificar riesgos potenciales en su estructura y sus propiedades, que puedan afectar al sistema de software resultante, verificar que los requerimientos no funcionales estén presentes en la arquitectura, así como determinar en qué grado se satisfacen los atributos de calidad. Cabe señalar que los requerimientos no funcionales también son llamados atributos de calidad”. Un atributo de calidad es una característica de calidad que afecta a un elemento. Donde el término “característica” se refiere a aspectos no funcionales y el término “elemento” a componente. 1 El término agrupa a trabajadores, organizaciones sociales, accionistas y proveedores, entre muchos otros actores clave que se ven afectados por las decisiones de una empresa. http://www.guioteca.com/rse/que-son-los-stakeholders/
  • 5. Métodos de Evaluación de Arquitectura de un Atributo Específico 5 Cuanto más temprano se encuentre un problema en un proyecto de software, mejor. Realizar una evaluación de la arquitectura es la manera más económica de evitar desastres. Analizar y evaluar la calidad exigida por los usuarios. Decisiones de diseño o Restricciones de Implementación. o Fija la estructura organizacional, tanto del desarrollo, construcción y ejecución del sistema. o Logra los atributos de calidad. o Permite el prototipado. o Permite estimaciones más certeras. Abstracción transferible entre sistemas ¿Cuándo una Arquitectura puede ser evaluada? Es posible realizarla en cualquier momento según Kazman, pero propone dos variantes que agrupan dos etapas distintas: temprano y tarde. Temprana. No es necesario que la arquitectura esté completamente especificada para efectuar la evaluación, y esto abarca desde las fases tempranas de diseño y a lo largo del desarrollo. Tarde. Cuando ésta se encuentra establecida y la implementación se ha completado. Este es el caso general que se presenta al momento de la adquisición de un sistema ya desarrollado. ¿Quiénes participan en una Evaluación? Generalmente las evaluaciones a la arquitectura se hacen por miembros del equipo de desarrollo, arquitecto, diseñador, entre otros. Sin embargo puede haber también situaciones en las que intervengan personas especialistas en el tema. Otro que también se interesa por los resultados de una evaluación es el cliente, ya que en dependencia de los resultados puede tomar decisiones de continuar o no con el proyecto
  • 6. Métodos de Evaluación de Arquitectura de un Atributo Específico 6 Técnicas de Evaluación Existen un grupo de técnicas para evaluar que se clasifican en cualitativas y cuantitativas: Técnicas de cuestionamiento o cualitativas. Utilizan preguntas cualitativas para preguntarle a la arquitectura o Cuestionarios. Abiertas. Temprana o Checklists. Especifico del Dominio de la aplicación. o Escenarios. Especificas del Sistema. Arquitectura avanzada. Measuringtechniques. Sugiere hacerle medidas cuantitativas a la arquitectura. o Utiliza métricas arquitectónicas, como acoplamiento, cohesividad en los módulos, profundidad en herencias, modificabilidad. o Simulaciones, Prototipos, y Experimentos. Figura 1: Clasificación de las Técnicas Por lo regular, las técnicas de evaluación cualitativas son utilizadas cuando la arquitectura está en construcción, mientras que las técnicas de evaluación cuantitativas, se usan cuando la arquitectura ya ha sido implantada. Beneficios de realizar una evaluación arquitectónica Financieros. Reúne a los stakeholders.
  • 7. Métodos de Evaluación de Arquitectura de un Atributo Específico 7 Fuerza una articulación en las metas específicas de calidad. Fuerza una mejora a la documentación de la arquitectura. Mejora la arquitectura. Detección temprana de problemas. Valido requerimiento y los priorizo. Recolecta los fundamentos y las decisiones arquitectónicas tomadas. Salidas de una evaluación arquitectónica Lista priorizada de los atributos de calidad requeridos para la arquitectura que está siendo evaluada. Riesgos y no riesgos. Pasos Básicos para una Evaluación Preparación. o Contexto. o Evaluador. o Alcance. o Representación de la Arquitectura. Realización. o Presentar el problema de negocio a resolver y la arquitectura planteada. o Evalúa, el costo, la funcionalidad, los atributos de calidad. o Revisan requerimientos y posibles cambios. o Discuten problemas y observaciones. Generar y distribuir los resultados o Issues y Recomendaciones. o Análisis de riesgo. ArchitectureLevelModifiabilityAnalysis (ALMA) El atributo de calidad que analiza ALMA, es la facilidad de modificación. Esto se refiere a la capacidad de un sistema para ser ajustado debido a cambios en requerimientos, o en el
  • 8. Métodos de Evaluación de Arquitectura de un Atributo Específico 8 entorno, así como la adición de nueva funcionalidad. ALMA es el resultado de los trabajos de investigación realizados por Bengtsson y Lassing. (Bengtsson, 2004) ALMA es un método de evaluación orientado a metas. Existen tres para las que se puede usar: Predicción del costo de mantenimiento. Consiste en estimar el esfuerzo requerido para modificar la arquitectura a cambios requeridos en un futuro. Evaluación de riesgos. Identifica los tipos de cambios que pueden ser complejos o que sean inflexibles en la arquitectura de software. Selección de un conjunto de arquitecturas. Compara dos o más arquitecturas propuestas y selecciona aquella que proporcione mayor soporte a cambios. ALMA puede utilizarse una vez que concluye la especificación de la arquitectura (evaluación clásica), o aun cuando la arquitectura ya ha sido implementada (evaluación tardía). Este método se apoya en el uso de escenarios de cambio, los cuales describen eventos posibles que provocarían cambios al sistema, y cómo se llevarían a cabo éstos. Este método se realiza a través de los siguientes pasos: 1. Definir la meta de evaluación. Dependiendo del objetivo de la evaluación, se selecciona alguna de las tres metas. 2. Describir la arquitectura de software. Se colecta la información más relevante de la arquitectura: sus principales componentes, las relaciones entre éstos, así como las relaciones con el entorno del sistema. 3. Obtener escenarios. Se definen los escenarios de cambio y se agrupan en categorías. Se eligen aquellos escenarios relacionados con el propósito de evaluación. Por ejemplo: si la meta es estimar el esfuerzo de mantenimiento, se recomienda seleccionar aquellos escenarios que corresponden a los cambios que tienen una alta probabilidad de que ocurran durante la vida operacional del sistema.
  • 9. Métodos de Evaluación de Arquitectura de un Atributo Específico 9 4. Evaluar escenarios. Se realiza un análisis de impacto, que consiste en identificar los componentes afectados por los escenarios previamente definidos, determinar el efecto del cambio sobre los componentes, así como determinar los efectos del cambio en otros componentes. Los resultados de este análisis se deben expresar ya sea de manera cuantitativa o cualitativa. 5. Interpretar resultados. Finalmente se interpretan los resultados, así como las conclusiones del análisis dependiendo de la meta de evaluación seleccionada. Figura 2: Método ALMA Performance Assessment of Software Architecture (PASA) El atributo de calidad que analiza PASA, es el desempeño. Que se interesa por conocer, qué tanto tiempo le toma al sistema de software responder cuando uno o varios eventos ocurren, así como determinar el número de eventos procesados en un intervalo de tiempo dado. PASA es el trabajo resultante de Williams y Smith (Williams, 2002), y utiliza diversas técnicas para la evaluación, tales como la aplicación de estilos arquitectónicos, anti-patrones, guías de diseño y modelos.
  • 10. Métodos de Evaluación de Arquitectura de un Atributo Específico 10 Al igual que ALMA, PASA se basa en escenarios. Asimismo, puede aplicarse una vez que la arquitectura se ha especificado, o posteriormente, cuando ya ha sido implementada. Los escenarios generados en este método proveen una medida de razonamiento con respecto al desempeño del sistema. Si se requieren análisis más detallados, los escenarios sirven como punto de partida para construir modelos de desempeño. Para utilizar este método, la arquitectura de software debe estar previamente documentada. En caso de que se encuentre parcialmente documentada, es necesario extraer la información faltante de los miembros del equipo, así como de códigos fuente. Los pasos para llevar acabo este método son: 1. Presentar el método de evaluación. Se comunica al equipo y directivos el objetivo de la evaluación, y se explica el método PASA. 2. Presentar la arquitectura. El equipo de desarrollo presenta la arquitectura actual de una manera general y sin entrar en detalles. 3. Identificar casos de uso críticos. Se seleccionan los casos de uso que son importantes para la operación del sistema, así como aquellos que demandan una respuesta de tiempo rápida para el usuario, u otros que presentan algún riesgo de desempeño. Recordemos que un caso de uso puede contener varios escenarios, que describen las diferentes formas en que se puede realizar el caso de uso. Los escenarios se especifican en UML como diagramas de secuencia. 4. Seleccionar los escenarios de desempeño principales. Por cada caso de uso crítico, se debe identificar los escenarios significativos con respecto al desempeño. 5. Identificar objetivos de desempeño. Por cada escenario de desempeño principal, se debe especificar al menos un objetivo de desempeño. Mismos que pueden ser expresados de distintas maneras. Por ejemplo: expresarlos en tiempo de respuesta, capacidad de respuesta, restricciones o utilización de recursos. Para poder medirlo, el objetivo de desempeño debe ser cuantitativo.
  • 11. Métodos de Evaluación de Arquitectura de un Atributo Específico 11 6. Clarificar la arquitectura y discutirla. En este paso se estudia más a detalle la arquitectura, por lo que se tienen reuniones con el arquitecto y equipo de desarrollo para aclarar dudas. Si existe información acerca del desempeño del sistema, se colectan métricas. 7. Analizar la arquitectura. En este paso se utilizan diferentes técnicas para analizar el desempeño de la arquitectura. Por ejemplo:se identifican estilos arquitectónicos, con la finalidad de detectar efectos negativos en el desempeño, se identifican anti-patrones de desempeño que documentan problemas comunes. Se elaboran modelos de desempeño con el objetivo de identificar problemas en la arquitectura. 8. Identificar alternativas. Si se encontraron problemas de desempeño, se identifican alternativas de solución. Estas pueden incluir el cambio de estilo arquitectónico, modificar la arquitectura para eliminar anti-patrones de desempeño, o alternativas para optimizar la interacción entre componentes. 9. Presentar resultados. Finalmente se elabora un documento con los resultados de la evaluación que incluye los objetivos de la evaluación, hallazgos encontrados, pasos específicos a seguir y recomendaciones.
  • 12. Métodos de Evaluación de Arquitectura de un Atributo Específico 12 Figura 3: Método PASA Las personas involucradas durante la evaluación son: el arquitecto, el equipo de desarrollo y en algunos momentos, el gerente(s) de proyecto. Si se realiza de forma intensiva, la evaluación completa se puede llevar acabo en una semana. PASA se considera un método de evaluación maduro, ya que ha sido probado en varios dominios de aplicación como sistemas web, aplicaciones financieras y sistemas en tiempo real. ScenariobasedArchitectureLevelUsabiliTyAnalysis (SALUTA) SALUTA es el primer método desarrollado para evaluar la arquitectura desde la perspectiva de la facilidad de uso del sistema. SALUTA es el resultado de los trabajos de investigación hechos por Folmer y Gurp. (Folmer) Este método hace uso de un marco de referencia elaborado por los mismos autores en el que se expresan las relaciones que existen entre la facilidad de uso y la arquitectura de software.(Eelke Folmer, 2003) Este marco de referencia incluye un conjunto integrado de soluciones de diseño tales como patrones de diseño y propiedades que tienen un efecto positivo sobre la facilidad de uso en un sistema de software. SALUTA analiza cuatro atributos que están directamente relacionados con la facilidad de uso en un sistema de
  • 13. Métodos de Evaluación de Arquitectura de un Atributo Específico 13 software, estos son: facilidad de aprendizaje, eficiencia de uso, confiabilidad y satisfacción. Se recomienda efectuar la evaluación una vez que la especificación de la arquitectura ha finalizado, pero antes de que se implemente. Este método se basa en escenarios de uso, los cuales se agrupan en uno o más perfiles de uso. Cada uno representa la facilidad de uso requerida por el sistema de software. SALUTA está compuesto por los siguientes pasos, que se ilustran en la figura 3. 1. Crear perfiles de uso. Se identifican los usuarios y se organizan en categorías. Luego se identifican las tareas más significativas del sistema y el contexto donde será usado el sistema, se determinan los valores para los atributos: facilidad de aprendizaje, eficiencia de uso, confiabilidad y satisfacción. Para reflejar la diferencia en la prioridad de los atributos, se asigna a cada uno un valor numérico no repetido entre 1 y 4. Por último, se seleccionan los escenarios más representativos que tienen mayor prioridad con respecto a sus atributos. 2. Describir la facilidad de uso proporcionada. Se colecta la información de la arquitectura de software para determinar el nivel de soporte en los escenarios de uso. Esto se realiza efectuando un análisis basado en patrones, o basado en propiedades. En ambos análisis se utiliza el marco de referencia para determinar la presencia de patrones o propiedades de facilidad de uso en la arquitectura a evaluar. 3. Evaluar escenarios. Se evalúa cada uno de los escenarios que forman parte del perfil de uso. Por cada escenario se analizan los patrones y propiedades previamente identificados. Se recomienda usar el marco de referencia para analizar cómo un patrón, o propiedad particular afecta a un atributo específico en un escenario de uso. Finalmente, se expresan de manera cuantitativa los resultados del análisis, que indican el grado de soporte de facilidad de uso en cada uno de los escenarios. 4. Interpretar resultados. En este paso se obtienen los resultados de la evaluación, que contienen el grado de facilidad de uso que soporta la arquitectura evaluada.
  • 14. Métodos de Evaluación de Arquitectura de un Atributo Específico 14 Figura 4: Método SALUTA Las personas involucradas durante la evaluación son el arquitecto de software, ingenieros de requerimientos o ingenieros responsables por la facilidad de uso. Survivable Network Analysis (SNA) SNA es un método desarrollado por el CERT (ComputerEmergency Response Team) que forma parte del SEI. Este método ayuda a identificar la capacidad de supervivencia en un sistema, analizando su arquitectura. La supervivencia, es la capacidad que tiene un sistema para completar su misión a tiempo, ante la presencia de ataques, fallas o accidentes. Un ejemplo de la definición anterior es la siguiente: un cajero automático debe garantizar al usuario los servicios esenciales aun cuando éste se encuentre en presencia de algún ataque externo o falla interna.(Mead, 2000) SNA utiliza tres propiedades clave para evaluar la supervivencia en un sistema: Resistencia. Es la capacidad del sistema para repeler ataques, fallas o accidentes. Reconocimiento. Es la capacidad de detectar ataques, fallas o accidentes, y si estos ocurren, evaluar los daños.
  • 15. Métodos de Evaluación de Arquitectura de un Atributo Específico 15 Recuperación. Es la capacidad de mantener en operación los servicios esenciales en presencia de ataques, fallas o accidentes. Este método puede ser aplicado después de la especificación de una arquitectura, durante la implementación de ésta, o posteriormente. SNA se basa en escenarios de uso, e identifica dos tipos de escenarios. El primer tipo son los escenarios normales, que se componen de una serie de pasos donde los usuarios invocan a servicios y obtienen acceso a activos, tales como bases de datos. El segundo tipo de escenarios son los de intrusión, en los que se representan diferentes tipos de ataques al sistema. SNA está compuesto por los siguientes pasos: 1. Definición del sistema. En este paso se obtiene la misión del sistema, se discute el entorno de uso en términos de capacidades y ubicaciones de los usuarios, se analizan posibles riesgos que el sistema pueda presentar en condiciones adversas, finalmente se analiza la arquitectura de software. 2. Definición de las capacidades esenciales. A continuación se seleccionan los servicios esenciales y los activos que usan. Se deben seleccionar aquellos servicios y activos que sean críticos para garantizar en condiciones adversas, la misión del sistema. Una vez seleccionados, estos se trazan a través de la arquitectura, para identificar los componentes que participan en proporcionar los servicios esenciales. 3. Definición de las capacidades que comprometen al sistema. En este paso se selecciona un conjunto representativo de posibles ataques, basados en el entorno de operación del sistema. Se definen los escenarios de intrusión y se trazan a través de la arquitectura, para identificar componentes que comprometan la supervivencia del sistema, logrando así el acceso y daño a éste. 4. Analizar la supervivencia. Finalmente se identifican los escenarios de intrusión que contienen los componentes esenciales y que comprometen la supervivencia del sistema. Por cada componente identificado se procede a analizarlo en términos de las capacidades de resistencia, reconocimiento y recuperación. Estos análisis se colocan
  • 16. Métodos de Evaluación de Arquitectura de un Atributo Específico 16 en una tabla llamada: mapa de supervivencia, que contiene por cada escenario de intrusión, las estrategias de supervivencia actuales y las recomendadas con respecto a cada una de las capacidades. Figura 5: Método SNA El resultado que se obtiene al final de la evaluación, es un documento que incluye modificaciones recomendadas a la arquitectura, acompañadas del mapa de supervivencia. Las personas involucradas durante la evaluación son: el arquitecto de software, el diseñador principal, los propietarios del sistema y usuarios del mismo.
  • 17. Métodos de Evaluación de Arquitectura de un Atributo Específico 17 Tabla 1: Cuadro comparativo entre métodos de evaluación ALMA, PASA, SALUTA y SNA Conclusiones En este documento el método de evaluación ALMA, que se interesa por predecir la facilidad de modificación en una arquitectura. PASA, que analiza en la arquitectura el desempeño del sistema. SALUTA, que analizando una serie de atributos de calidad predice la facilidad de uso; y SNA, que analiza en la arquitectura, la supervivencia de un sistema ante la presencia de ataques, fallas o accidentes. La Tabla 1 presenta a manera de resumen, un cuadro comparativo entre estos cuatro métodos de evaluación. Referencias Bengtsson, P. N. (2004). The Journal of Systems and Software. En Architecture-Level Modifiability Analysis (Alma). (págs. 129-147). Eelke Folmer, J. v. (2003). Investigating the Relationship Between Usability and Software Architecture, Software process improvement and practice. Wiley.
  • 18. Métodos de Evaluación de Arquitectura de un Atributo Específico 18 Folmer, E. J. (s.f.). Scenario-Based Assessment of Software Architecture Usability. Portland . Mead, N. R. (2000). Survivable Network Analysis Method. CMU/SEI. Williams, L. G. (2002). PASASM: A Method for the Performance Assessment of Software Architecture. Roma. Yoan Arlet Carrascoso Puebla, E. C. (07 de 05 de 2009). GestioPolis. Recuperado el 20 de 05 de 2014, de http://www.gestiopolis.com/administracion-estrategia/procedimiento- para-la-evolucion-de-las-arquitecturas-de-software.htm