dra perla velasco
TRANSCRIPT
1/14
“Los sistemas de software se construyen para satisfacer
objetivos de negocio”*
*The Software Engineering Institute (SEI).
2/14
Objetivos de Negocio
Ejemplos
• Incursionar a nuevos mercados Vender sus productos en 5 nuevos países en 6 meses.• Aumentar satisfacción de clientes Reducir tiempo de atención de clientes de 10 a 2 min.• Reducir gastos de desarrollo Reutilizar x% de LOC en sistemas que se desarrollan.
• Mejorar la calidad de los sistemasReducir la densidad de defectos de liberación a x defectos/LOC.
3/14
“La arquitectura de software es el puente entre los objetivos de negocio del sistema y el sistema mismo”*
*The Software Engineering Institute (SEI)
4/14
Arquitectura de Software
La Arquitectura de Software tiene que ver con la estructuración de alto nivel de un sistema (complejo) en etapas tempranas de su desarrollo.
Esto no es exclusivo al software, se realiza en todo sistema complejo.
5/14
Arquitectura de Software
Todo sistema de software tiene una arquitectura; el arquitecto de software es el responsable de su creación.
Sin embargo, si dicha arquitectura no ha sido creada de una forma sistemática …
Procesos Arquitectura de Software y su Impacto en la Satisfacción de los Objetivos
de Negocio de las Organizaciones
Perla Velasco Elizondo [email protected]
7/14
Contenido
Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD
Estos procesos, yo … y mis colegas
Conclusión
8/14
Contenido
Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD
Estos procesos, yo … y mis colegas
Conclusión
9/14
Procesos de Arquitectura de Software
La creación de la arquitectura de software es una tarea importante … y complicada.
Si una tarea es importante y complicada, una práctica común en muchas áreas es tratar “formalizar” su proceso para promover su predictibilidad, repetitividad y la calidad de sus salidas.
10/14
Procesos de Arquitectura de Software
Documentación de Arquitecturas
Identificación de Drivers de la Arquitectura
Evaluación de Arquitecturas
Diseño de Arquitecturas
Varias procesos de arquitectura relacionados con:
han sido “formalizados” por el SEI, y otras partes, en varios métodos.
11/14
Procesos de Arquitectura de Software
Documentación de Arquitecturas
Identificación de Drivers de la Arquitectura
Evaluación de Arquitecturas
Diseño de Arquitecturas
Varios procesos de arquitectura relacionados con:
han sido “formalizados” por el SEI, y otras partes, en varios métodos.
12/14
Contenido
Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD
Estos procesos, yo … y mis colegas
Conclusión
13/14
Diseño de Arquitectura
Drivers de la Arquitectura
Arquitecto de SoftwareArquitectura de Software
utiliza
produce
14/14
Drivers de la Arquitectura
Son un sub-conjunto de los requerimientos que se deben tomar en cuenta al momento de establecer la estructuración del sistema.
Existen 3 categorías:1. Atributos de calidad2. Requerimientos funcionales primarios3. Restricciones
15/14
Drivers de la Arquitectura
Son un sub-conjunto de los requerimientos que se deben tomar en cuenta al momento de establecer la estructuración del sistema.
Existen 3 categorías:1. Atributos de calidad2. Requerimientos funcionales primarios3. Restricciones
16/14
Atributos de Calidad
Son características que permitenestablecer un conceptofrecuentemente subjetivo (la calidad), de forma objetiva.
La calidad se debe acordar con el cliente a través de una serie de características medibles.
17/14
Atributos de Calidad
Dos posibles soluciones a un mismo requerimiento
La funcionalidad es la mismaLas características de calidad no
18/14
Atributos de Calidad
Ejemplos
• Desempeño • Seguridad• Confiabilidad• Modificabilidad• Usabilidad• …
19/14
Atributos de Calidad
En teoría, a partir de los objetivos de negocio, podemos preguntarnos qué atributos de calidad serían convenientes para ayudar a lograr dichos objetivos de negocio …
20/14
Atributos de Calidad
Ejemplo:
El objetivo de “internacionalización” de una empresa que vende un producto puede soportarse mediante el desarrollo de un sistema que permita la compra en línea de dicho producto a través de un portal, así como también mediante la facilidad que se tenga para adaptar el sistema a diferentes idiomas, navegadores web y dispositivos móviles (modificabilidad).
21/14
Atributos de Calidad
En la práctica, sin embargo, hay aspectos que complican la identificación, especificación y priorización de atributos de calidad:
- Falta (de claridad) de objetivos de negocio…
- Falta (de claridad) de los atributos de calidad
22/14
Contenido
Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD
Estos procesos, yo … y mis colegas
Conclusión
23/14
PALM
- Pedigreed Attribute eLicitation Method - Identificación y especificación de objetivos
de negocio en términos de atributos de calidad
Categorías de Objetivos de Negocio
Escenarios de Objetivos de Negocio
…
#1
#2
#n
Escenarios de Objetivos de Negocio Priorizados
24/14
PALM
Categorías de Atributos de Calidad
…
DesempeñoSeguridad
Usabildad…
#1
#2
#n
Escenarios de Objetivos de Negocio Priorizados
#1
#n
- Pedigreed Attribute eLicitation Method - Identificación y especificación de objetivos
de negocio en términos de atributos de calidad
Paul Clements and Len Bass. 2010. Using Business Goals to Inform a Software Architecture. In Proceedings of the 2010 18th IEEE
International Requirements Engineering Conference (RE '10). IEEE Computer Society, Washington, DC, USA, 69‐78.
25/14
PALM
Categorías de Atributos de Calidad
…
DesempeñoSeguridad
Usabildad…
#1
#2
#n
Escenarios de Atributos de Calidad Priorizados
#1
#n
- Pedigreed Attribute eLicitation Method - Identificación y especificación de objetivos
de negocio en términos de atributos de calidad
26/14
Atributos de Calidad
El sistema debe tener
alto desempeño
1 secs1 secs
5 secs5 secs3 secs3 secs
27/14
QAW- Quality Attribute Workshop- Especificación y Priorización de Atributos de
Calidad
Categorías de Atributos de Calidad
Escenarios de Atributos de Calidad
…
#1
#2
#n
Escenarios de Atributos de Calidad Priorizados
28/14
QAW
Escenario de Desempeño“Un usuario realiza una consulta al catálogo de productos en un momento normal de operación del sistema. El sistema muestra el resultado de la consulta en un tiempo no mayor a 3 segundos”
http://www.sei.cmu.edu/library/abstracts/reports/03tr016.cfm
29/14
ADD
- Attribute-Driven Design- Método iterativo e imcremental
para el diseño arquitecturabasado centrado en atributos de calidad
30/14
ADD
Drivers de la Arquitectura
Arquitecto de SoftwareArquitectura de Software
Patrones Tácticas
Conceptos de Diseñohttp://www.sei.cmu.edu/library/abstracts/reports/
06tr023.cfm
Varias iteraciones
31/14
Contenido
Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD
Estos procesos, yo … y mis colegas
Conclusión
32/14
Estos procesos, yo… y mis colegas
Diseño de Arquitecturas
Nuestro trabajo reciente es sobre:
33/14
ADD
Drivers de la Arquitectura
Arquitecto de SoftwareArquitectura de Software
Patrones Tácticas
Conceptos de Diseño
Diseño muy “teorico”; el arquitecto no sabe como
mapearlo a las tecnologías que usa en
su trabajo diario
34/14
Estos procesos, yo… y mis colegas
Con Humberto Cervantes (UAM) y Rick Kazman (University of Hawaii-SEI):
“A Principled Approach of Using Frameworks in Architectural Design”
35/14
Estos procesos, yo… y mis colegas
a. Piloteamos el método en la Escuela de Verano en Ingeniería de Software (julio pasado)
b. El método es parte de nuestro Libro de Arquitectura de Software (esperamos salga al mercado en 2013)
36/14
ADD
Drivers de la Arquitectura
Arquitecto de SoftwareArquitectura de Software
PatronesTácticas
Hay cientos de patrones y tácticas actualmente!
La selección es costosa en tiempo.
37/14
Estos procesos, yo… y mis colegas
Con Humberto Cervantes (UAM):
“Tools to support pattern selection during architectural design”
38/14
Contenido
Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD
Estos procesos, yo … y mis colegas
Conclusión
39/14
Conclusión
Si una tarea es importante y complicada, una práctica común en muchas áreas es “formalizar” su proceso para promover su predictibilidad, repetitividad y la calidad de sus salidas.
40/14
Conclusión
Actualmente existen varios métodos que formalizan procesos relacionados con sus tareas relevantes a la creación de arquitecturas de software
Muchos de estos procesos han sido utilizados en la academia e industria y se han observado buenos resultados.
PreguntasComentariosPerla Velasco Elizondo [email protected]