Arquitectura de Software PDF
Arquitectura de Software PDF
Arquitectura de Software PDF
CONCEPTOS DE MODELADO
Software
Conocimiento disponible
Sistema
Cmara
Sensores
Host
Sistema de Visin
Controlador
Arquitectura Arquitecto
Motores
Arquitectura y Funcionalidad
!! La funcionalidad es en gran medida ortogonal a los requisitos de calidad:
!! La funcionalidad es la capacidad del sistema de hacer lo que se pretenda que hiciese; !! Los sistemas se descomponen en elementos para lograr variados propsitos, ms all de la funcionalidad: !! Las opciones de arquitectura promueven ciertas cualidades al tiempo que implementan la funcionalidad deseada.
Desafos
!! Qu significan con precisin atributos de calidad tales como modificabilidad, seguridad, performance y confiabilidad? !! Cmo se estructura el sistema de modo que tenga estas cualidades deseadas? !! Se puede analizar el sistema para determinar si tiene estas cualidades? !! Cun temprano puede realizarse este anlisis? !! Cmo se sabe si una arquitectura de software es apropiada para un sistema sin tener que construir el sistema primero?
Modificabilidad
Arquitecto
10
Interesados Involucrados
!! Los objetivos organizacionales y las propiedades del sistema requeridas por el negocio raramente se comprenden y menos an se articulan completamente. !! Los requisitos de calidad del cliente casi nunca se documentan, lo cual resulta en:
!! objetivos que no se alcanzan; !! conflicto inevitable entre los interesados.
!! Los arquitectos deben identificar e involucrar activamente a los interesados de modo de:
!! !! !! !! comprender las restricciones reales del sistema; administrar las expectativas de los interesados; negociar las prioridades del sistema; tomar decisiones de compromiso.
!! Los atributos de calidad rara vez se capturan como parte de la especificacin de requisitos; !! generalmente son slo vagamente comprendidos; !! frecuentemente pobremente articulados
11
12
13
14
Identificar requerimientos
15
Requerimientos no funcionales
!! Describen como el software debe comportarse, es decir como hacer algo, no que debe hacer !! Estn relacionados con los requerimientos funcionales porque describen la forma que se espera se logren dichos requerimientos !! En algunos casos tienen restricciones de cmo hacerlo !! Se clasifican de acuerdo al atributo de calidad esperado del sistema
16
Ejemplo de requerimientos de AS
17
Restricciones (constraints)
!! Las restricciones (constraints) imponen condiciones sobre la arquitectura que normalmente no son negociables. !! Limitan el rango de alternativas de decisin del arquitecto
!! Algunas veces hace la vida ms fcil para el arquitecto, en otras lo complica.
18
Ejemplos de restricciones
19
Priorizacin de requerimientos
!! Alta: La aplicacin debe soportar el requerimiento. Estos requerimientos guan el diseo de la arquitectura !! Media: Requerimientos que necesitan ser soportados en algn momento o etapa del proyecto pero no necesariamente en esta siguiente versin. !! Baja: Se conoce como parte de la wish-list. Se pueden implementar cuando sea posible hacerlo.
20
Reference
22
!! Basarse en Arquitecturas de Referencia reconocidas por tanto por la academia como por la industria
!! Implementaciones conocidas, de amplia difusin y uso !! Buena documentacin
23
24
25
26
2. Asignacin de componentes
!! Su objetivo es definir los componentes principales que comprendern el diseo
!! La arquitectura de referencia define los patrones de comunicacin en general para los componentes
!! Se busca adems:
!! Identificar como los componentes se ajustan a los patrones !! Identificar las interfaces y los servicios que cada componente soporta para as !! Validar la asignacin de responsabilidades de los componentes !! Identificar dependencias entre ellos !! Identificar las partes de la arquitectura candidatas a distribuirse en varios servidores
27
28
29
30
Validacin
!! Durante el proceso de creacin de la arquitectura, el objetivo de la fase de validacin consiste en aumentar la confianza del equipo de diseo con respecto a que la arquitectura es adecuada para cumplir con los requerimientos del sistema. !! Aunque se puede estar actuando sobre un sistema existente o nuevo al final el resultado del modelado es un diseo de AS por lo que el proceso de validacin puede ser el mismo para ambos casos. !! Se puede escoger entre dos tcnicas: Pruebas manuales o Prototipos.
Tcnicas de validacin
!! El objetivo de ambas tcnicas es el de identificar posibles deficiencias y debilidades en el diseo para que puedan ser mejoradas antes de la implementacin.
1.! Prueba manual: Involucra la prueba de la AS usando escenarios 2.! Prototipo: Involucra la construccin de un prototipo que crea un arquetipo de la aplicacin deseada, de esta forma su capacidad para satisfacer las necesidades se pueden evaluar con ms detalle a travs de prototipos.
33
34
36
Prototipos de Arquitectura
!! Los prototipos son versiones reducidas o restringidas de la aplicacin deseada, creadas especficamente para poner a prueba algunos los aspectos del diseo de alto riesgo o que puedan ser mal entendidos. !! Los prototipos se utilizan normalmente con dos objetivos:
!! Prueba de concepto: Puede la arquitectura como esta diseada construirse en una forma que pueda satisfacer los requerimientos? !! Prueba de tecnologa: La tecnologa (middleware, aplicaciones integradas, libreras, etc.) seleccionadas para implementar la aplicacin se comportan como se espera?
37
Crditos
!! Software Architecture in Practice, Second Edition. Len!Bass, Paul!Clements, Rick!Kazman !! Essential Architecture. Ian Gorton. !! Documenting Software Architectures, Views and Beyond. Second Edition. Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. !! Curso de Arquitectura de Software, Universidad de Chile. Cecilia Bastarrica, Daniel Perovich.
39