Software Architecture Description
Daniel Perovich Auxiliar 3
dperovic@dcc.uchile.cl 03/04
Fuente:
Contenido basado en el curso Arquitectura de Software,
Daniel Perovich y Andrés Vignaga,
Centro de Postgrado y Actualización Profesional,
Instituto de Computación, Facultad de Ingeniería,
Universidad de la República, Uruguay, 2005.
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 2
Agenda
 Vista de la Arquitectura
 Representación de la Arquitectura
 SAD
 Estructura y contenido
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 3
Vista de la Arquitectura
 La vista de la arquitectura comprende
diferentes intereses (que determinan su
contenido!)
 Al igual que el modelo del sistema
 Se organiza en vistas más específicas
 Cada vista ataca cada uno de esos intereses
 Creación de la vista
 Se utilizan varios de los modelos del sistema
 No todos los modelos contienen elementos de
interés
 Correspondencia intuitiva de vistas hacia
modelos
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 4
Vista de la Arquitectura
Modelo 4+1
 Propuesto por Kruchten – Rational, 1995
 Tiene como objetivo organizar la vista de
la arquitectura
 Propone cuatro vistas diferentes para
organizar los diferentes elementos
 Éstas se ilustran mediante un
subconjunto de casos de uso o
escenarios clave
 Éstos se convierten en la “quinta vista”
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 5
Vista de la Arquitectura
Modelo 4+1
Logical
View
Implementation
View
Process
View
Deployment
View
Use-Case
View
vocabulario
funcionalidad
comportamiento
performance
escalabilidad
ensamblado del sistema
gestión de configuración
topología
distribución
instalación
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 6
Vista de la Arquitectura
Use-Case View
 Presenta un subconjunto del Use-Case Model
 Describe los escenarios o casos de uso que
representan una funcionalidad central o que
abarca gran parte de la arquitectura
 Inicialmente estos casos de uso son utilizados
para descubrir y diseñar la arquitectura
 Después serán usadas para validar otras vistas
 Estos pocos escenarios ilustran en la arquitectura
de software como trabajan las otras vistas
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 7
Vista de la Arquitectura
Logical View
 Ataca los requerimientos del sistema
desde un punto de vista lógico
 Identifica los packages, subsistemas y
clases de mayor relevancia del diseño
 Describe la estructura lógica
 En un nivel alto de abstracción: del sistema
completo
 En un nivel bajo de abstracción: de la
realización de los casos de uso en la Use-
Case View
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 8
Vista de la Arquitectura
Process View
 Se enfoca en las construcciones básicas de
concurrencia (thread, process) y sus interacciones
 Abarca los elementos incluidos en la Logical View
 Permite comprender el tratamiento general dado a
aspectos tales como
 Concurrencia y paralelismo
 Inicialización y terminación
 Tolerancia a fallas
 Distribución de objetos
 Representa un mecanismo para razonar acerca de
deadlocks, tiempos de respuesta, aislamiento de
funcionalidades, y fallas
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 9
Vista de la Arquitectura
Implementation View
 Tiene como propósito capturar las decisiones
arquitectónicas de implementación
 Describe la organización estática de los
componentes de deployment implementados a
partir de los elementos de diseño en la Logical
View
 Esta organización es realizada en términos de
subsistemas de implementación, y en términos
del manejo de configuraciones
 Los componentes implementan los Processes y
Threads del Process View
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 10
Vista de la Arquitectura
Deployment View
 Es el mecanismo para comprender la
distribución física (topología) del conjunto de
nodos del sistema
 También ilustra la distribución de procesamiento
a lo largo de dichos nodos, en correspondencia
con los elementos del Process View
 Muestra además la ubicación física de las
instancias de componentes del Implementation
View en la infraestructura concreta de
producción
 Comúnmente abarca la infraestructura
informática completa de la organización
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 11
Representación
 La arquitectura se representa mediante el
Software Architecture Document (SAD)
 Es un artefacto que provee una vista
global de la arquitectura de un sistema
 Sirve como medio de comunicación entre
el arquitecto y el resto del equipo de
desarrollo
 Utiliza diferentes vistas para ilustrar
diferentes aspectos de la arquitectura
 Estas vistas están basadas en el modelo
4+1
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 12
Software Architecture Document
 La estructura y contenido del SAD debe
adaptarse a la naturaleza del proyecto en
el cual se usa
 Cada sistema tiene una vista que mejor lo
describe por lo que dicha vista será la más
completa
 Algunas vistas pueden ser irrelevantes
 La Deployment View no es necesaria en sistemas
para un solo procesador
 La Process View no es necesaria en sistemas con
un único hilo de control (sin clases activas)
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 13
SAD (2)
 Algunas vistas particulares pueden
ser necesarias
 La Data View puede ser necesaria en
sistemas en que la persistencia es un
aspecto importante o cuado el
mecanismo de persistencia requiere
un mapeo entre datos persistentes y
no persistentes
 La Service View cuando la
arquitectura está principalmente
orientada a servicios
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 14
SAD (3)
 Algunos aspectos del software pueden
requerir su propia sección
 Administración de los datos, usabilidad
 Puede incluirse apéndices adicionales
para explicar ciertos aspectos
 Decisiones críticas tomadas
 Soluciones descartadas
 Principios generales de diseño
 El orden de las secciones puede variar
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 15
Estructura y Contenido
Introducción
 Contextualiza al sistema
 Provee un overview del documento
completo
 Sub-secciones
 Propósito
 Describe el propósito en el contexto del conjunto
de la documentación del proyecto
 Describe brevemente la estructura
 Debe identificar la audiencia esperada e indicar
como se espera que éstos lo utilicen
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 16
Estructura y Contenido
Introducción (2)
 Sub-secciones (cont.)
 Alcance
 Una breve descripción sobre qué aplica este
documento, qué esta influenciado o afectado por
este documento
 Definiciones, acrónimos y abreviaciones
 Provee la definición de todos los términos,
acrónimos y abreviaciones requeridos para
interpretar correctamente el documento
 Puede incluir simplemente una referencia al
glosario del proyecto
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 17
Estructura y Contenido
Introducción (3)
 Sub-secciones (cont.)
 Referencias
 Provee una lista completa de todos los
documentos referenciados
 Cada documento debe estar identificado
por su título, fecha y la organización que
lo publica
 Especifica las fuentes de donde pueden
obtenerse las referencias
 Esta información puede proveerse
haciendo referencia a un apéndice o a
otro documento
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 18
Estructura y Contenido
Introducción (4)
 Sub-secciones (cont.)
 Overview
 Describe que contiene el resto del
documento
 Explica cómo está organizado
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 19
Estructura y Contenido
Representación de la Arquitectura
 Describe como está representada la
arquitectura del sistema
 Enumera qué vistas son necesarias para
representarla
 Para cada vista, indica qué tipos de
Model Elements se incluyen en su
contenido
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 20
Estructura y Contenido
Objetivos y Restricciones
 Describe los objetivos y los
requerimientos del software que tienen
impacto significativo en la arquitectura
 Seguridad, privacidad, productos off-the-
shelf, portabilidad, distribución, reuso
 Captura restricciones especiales
 Estrategias de diseño e implementación,
herramientas, estructura del equipo, código
legado, tiempos, etc.
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 21
Estructura y Contenido
Use-Case View
 Describe los escenarios o casos de uso
que representan una funcionalidad
central o que abarca gran parte de la
arquitectura
 Utiliza la misma organización en Use-
Case-packages que el Use-Case Model
 Los casos de uso aquí incluidos serán
utilizados para ilustrar el resto de las
vistas
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 22
Estructura y Contenido
Use-Case View (2)
 Para cada caso de uso incluye
 Nombre, descripción y actores
 Flujo de eventos del caso de uso
 Puede ser todos los escenarios, algunos,
o incluso partes de algunos escenarios
 Descripción de requerimientos
especiales
 Por ej. requerimientos no-funcionales
asociados al caso de uso
Arquitectura de Software | Software Architecture Description Otoño 2007 | DCC - UdeChile | 23
Estructura y Contenido
Use-Case View (3)
 Para cada caso de uso incluye (cont.)
 Descripción de las relaciones del caso de
uso con otros casos de uso
 Imágenes de la interfaz de usuario que
ayuden a clarificar el caso de uso
 La realizaciones de los caso de uso
 Las relaciones entre casos de uso, entre
éstos y los actores y la organización en
packages puede mostrarse con un
diagrama

A02 sad

  • 1.
    Software Architecture Description DanielPerovich Auxiliar 3 dperovic@dcc.uchile.cl 03/04 Fuente: Contenido basado en el curso Arquitectura de Software, Daniel Perovich y Andrés Vignaga, Centro de Postgrado y Actualización Profesional, Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay, 2005.
  • 2.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 2 Agenda  Vista de la Arquitectura  Representación de la Arquitectura  SAD  Estructura y contenido
  • 3.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 3 Vista de la Arquitectura  La vista de la arquitectura comprende diferentes intereses (que determinan su contenido!)  Al igual que el modelo del sistema  Se organiza en vistas más específicas  Cada vista ataca cada uno de esos intereses  Creación de la vista  Se utilizan varios de los modelos del sistema  No todos los modelos contienen elementos de interés  Correspondencia intuitiva de vistas hacia modelos
  • 4.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 4 Vista de la Arquitectura Modelo 4+1  Propuesto por Kruchten – Rational, 1995  Tiene como objetivo organizar la vista de la arquitectura  Propone cuatro vistas diferentes para organizar los diferentes elementos  Éstas se ilustran mediante un subconjunto de casos de uso o escenarios clave  Éstos se convierten en la “quinta vista”
  • 5.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 5 Vista de la Arquitectura Modelo 4+1 Logical View Implementation View Process View Deployment View Use-Case View vocabulario funcionalidad comportamiento performance escalabilidad ensamblado del sistema gestión de configuración topología distribución instalación
  • 6.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 6 Vista de la Arquitectura Use-Case View  Presenta un subconjunto del Use-Case Model  Describe los escenarios o casos de uso que representan una funcionalidad central o que abarca gran parte de la arquitectura  Inicialmente estos casos de uso son utilizados para descubrir y diseñar la arquitectura  Después serán usadas para validar otras vistas  Estos pocos escenarios ilustran en la arquitectura de software como trabajan las otras vistas
  • 7.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 7 Vista de la Arquitectura Logical View  Ataca los requerimientos del sistema desde un punto de vista lógico  Identifica los packages, subsistemas y clases de mayor relevancia del diseño  Describe la estructura lógica  En un nivel alto de abstracción: del sistema completo  En un nivel bajo de abstracción: de la realización de los casos de uso en la Use- Case View
  • 8.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 8 Vista de la Arquitectura Process View  Se enfoca en las construcciones básicas de concurrencia (thread, process) y sus interacciones  Abarca los elementos incluidos en la Logical View  Permite comprender el tratamiento general dado a aspectos tales como  Concurrencia y paralelismo  Inicialización y terminación  Tolerancia a fallas  Distribución de objetos  Representa un mecanismo para razonar acerca de deadlocks, tiempos de respuesta, aislamiento de funcionalidades, y fallas
  • 9.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 9 Vista de la Arquitectura Implementation View  Tiene como propósito capturar las decisiones arquitectónicas de implementación  Describe la organización estática de los componentes de deployment implementados a partir de los elementos de diseño en la Logical View  Esta organización es realizada en términos de subsistemas de implementación, y en términos del manejo de configuraciones  Los componentes implementan los Processes y Threads del Process View
  • 10.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 10 Vista de la Arquitectura Deployment View  Es el mecanismo para comprender la distribución física (topología) del conjunto de nodos del sistema  También ilustra la distribución de procesamiento a lo largo de dichos nodos, en correspondencia con los elementos del Process View  Muestra además la ubicación física de las instancias de componentes del Implementation View en la infraestructura concreta de producción  Comúnmente abarca la infraestructura informática completa de la organización
  • 11.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 11 Representación  La arquitectura se representa mediante el Software Architecture Document (SAD)  Es un artefacto que provee una vista global de la arquitectura de un sistema  Sirve como medio de comunicación entre el arquitecto y el resto del equipo de desarrollo  Utiliza diferentes vistas para ilustrar diferentes aspectos de la arquitectura  Estas vistas están basadas en el modelo 4+1
  • 12.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 12 Software Architecture Document  La estructura y contenido del SAD debe adaptarse a la naturaleza del proyecto en el cual se usa  Cada sistema tiene una vista que mejor lo describe por lo que dicha vista será la más completa  Algunas vistas pueden ser irrelevantes  La Deployment View no es necesaria en sistemas para un solo procesador  La Process View no es necesaria en sistemas con un único hilo de control (sin clases activas)
  • 13.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 13 SAD (2)  Algunas vistas particulares pueden ser necesarias  La Data View puede ser necesaria en sistemas en que la persistencia es un aspecto importante o cuado el mecanismo de persistencia requiere un mapeo entre datos persistentes y no persistentes  La Service View cuando la arquitectura está principalmente orientada a servicios
  • 14.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 14 SAD (3)  Algunos aspectos del software pueden requerir su propia sección  Administración de los datos, usabilidad  Puede incluirse apéndices adicionales para explicar ciertos aspectos  Decisiones críticas tomadas  Soluciones descartadas  Principios generales de diseño  El orden de las secciones puede variar
  • 15.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 15 Estructura y Contenido Introducción  Contextualiza al sistema  Provee un overview del documento completo  Sub-secciones  Propósito  Describe el propósito en el contexto del conjunto de la documentación del proyecto  Describe brevemente la estructura  Debe identificar la audiencia esperada e indicar como se espera que éstos lo utilicen
  • 16.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 16 Estructura y Contenido Introducción (2)  Sub-secciones (cont.)  Alcance  Una breve descripción sobre qué aplica este documento, qué esta influenciado o afectado por este documento  Definiciones, acrónimos y abreviaciones  Provee la definición de todos los términos, acrónimos y abreviaciones requeridos para interpretar correctamente el documento  Puede incluir simplemente una referencia al glosario del proyecto
  • 17.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 17 Estructura y Contenido Introducción (3)  Sub-secciones (cont.)  Referencias  Provee una lista completa de todos los documentos referenciados  Cada documento debe estar identificado por su título, fecha y la organización que lo publica  Especifica las fuentes de donde pueden obtenerse las referencias  Esta información puede proveerse haciendo referencia a un apéndice o a otro documento
  • 18.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 18 Estructura y Contenido Introducción (4)  Sub-secciones (cont.)  Overview  Describe que contiene el resto del documento  Explica cómo está organizado
  • 19.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 19 Estructura y Contenido Representación de la Arquitectura  Describe como está representada la arquitectura del sistema  Enumera qué vistas son necesarias para representarla  Para cada vista, indica qué tipos de Model Elements se incluyen en su contenido
  • 20.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 20 Estructura y Contenido Objetivos y Restricciones  Describe los objetivos y los requerimientos del software que tienen impacto significativo en la arquitectura  Seguridad, privacidad, productos off-the- shelf, portabilidad, distribución, reuso  Captura restricciones especiales  Estrategias de diseño e implementación, herramientas, estructura del equipo, código legado, tiempos, etc.
  • 21.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 21 Estructura y Contenido Use-Case View  Describe los escenarios o casos de uso que representan una funcionalidad central o que abarca gran parte de la arquitectura  Utiliza la misma organización en Use- Case-packages que el Use-Case Model  Los casos de uso aquí incluidos serán utilizados para ilustrar el resto de las vistas
  • 22.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 22 Estructura y Contenido Use-Case View (2)  Para cada caso de uso incluye  Nombre, descripción y actores  Flujo de eventos del caso de uso  Puede ser todos los escenarios, algunos, o incluso partes de algunos escenarios  Descripción de requerimientos especiales  Por ej. requerimientos no-funcionales asociados al caso de uso
  • 23.
    Arquitectura de Software| Software Architecture Description Otoño 2007 | DCC - UdeChile | 23 Estructura y Contenido Use-Case View (3)  Para cada caso de uso incluye (cont.)  Descripción de las relaciones del caso de uso con otros casos de uso  Imágenes de la interfaz de usuario que ayuden a clarificar el caso de uso  La realizaciones de los caso de uso  Las relaciones entre casos de uso, entre éstos y los actores y la organización en packages puede mostrarse con un diagrama