Arquitectura software v1

41
1/14 “Los sistemas de software se construyen para satisfacer objetivos de negocio” * *The Software Engineering Institute (SEI).

description

 

Transcript of Arquitectura software v1

Page 1: Arquitectura software v1

1/14

“Los sistemas de software se construyen para satisfacer

objetivos de negocio”*

*The Software Engineering Institute (SEI).

Page 2: Arquitectura software v1

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.

Page 3: Arquitectura software v1

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)

Page 4: Arquitectura software v1

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.

Page 5: Arquitectura software v1

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 …

Page 6: Arquitectura software v1

Procesos Arquitectura de Software y su Impacto en la Satisfacción de los Objetivos

de Negocio de las Organizaciones

Perla Velasco Elizondo [email protected]

Page 7: Arquitectura software v1

7/14

Contenido

Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD

Estos procesos, yo … y mis colegas

Conclusión

Page 8: Arquitectura software v1

8/14

Contenido

Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD

Estos procesos, yo … y mis colegas

Conclusión

Page 9: Arquitectura software v1

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.

Page 10: Arquitectura software v1

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.

Page 11: Arquitectura software v1

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.

Page 12: Arquitectura software v1

12/14

Contenido

Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD

Estos procesos, yo … y mis colegas

Conclusión

Page 13: Arquitectura software v1

13/14

Diseño de Arquitectura

Drivers de la Arquitectura

Arquitecto de SoftwareArquitectura de Software

utiliza

produce

Page 14: Arquitectura software v1

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

Page 15: Arquitectura software v1

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

Page 16: Arquitectura software v1

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.

Page 17: Arquitectura software v1

17/14

Atributos de Calidad

Dos posibles soluciones a un mismo requerimiento

La funcionalidad es la mismaLas características de calidad no

Page 18: Arquitectura software v1

18/14

Atributos de Calidad

Ejemplos

• Desempeño • Seguridad• Confiabilidad• Modificabilidad• Usabilidad• …

Page 19: Arquitectura software v1

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 …

Page 20: Arquitectura software v1

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).

Page 21: Arquitectura software v1

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

Page 22: Arquitectura software v1

22/14

Contenido

Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD

Estos procesos, yo … y mis colegas

Conclusión

Page 23: Arquitectura software v1

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

Page 24: Arquitectura software v1

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. 

Page 25: Arquitectura software v1

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

Page 26: Arquitectura software v1

26/14

Atributos de Calidad

El sistema debe tener

alto desempeño

1 secs1 secs

5 secs5 secs3 secs3 secs

Page 27: Arquitectura software v1

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

Page 28: Arquitectura software v1

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

Page 29: Arquitectura software v1

29/14

ADD

- Attribute-Driven Design- Método iterativo e imcremental

para el diseño arquitecturabasado centrado en atributos de calidad

Page 30: Arquitectura software v1

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

Page 31: Arquitectura software v1

31/14

Contenido

Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD

Estos procesos, yo … y mis colegas

Conclusión

Page 32: Arquitectura software v1

32/14

Estos procesos, yo… y mis colegas

Diseño de Arquitecturas

Nuestro trabajo reciente es sobre:

Page 33: Arquitectura software v1

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

Page 34: Arquitectura software v1

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”

Page 35: Arquitectura software v1

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)

Page 36: Arquitectura software v1

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.

Page 37: Arquitectura software v1

37/14

Estos procesos, yo… y mis colegas

Con Humberto Cervantes (UAM):

“Tools to support pattern selection during architectural design”

Page 38: Arquitectura software v1

38/14

Contenido

Procesos de Arquitectura de SoftwareDrivers de la Arquitectura –Atributos de CalidadPALM, QAW, ADD

Estos procesos, yo … y mis colegas

Conclusión

Page 39: Arquitectura software v1

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.

Page 40: Arquitectura software v1

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.

Page 41: Arquitectura software v1

PreguntasComentariosPerla Velasco Elizondo [email protected]