Está en la página 1de 35

Arquitectura de Software

octubre de 2007

Seis mejores Prcticas

Desarrollo Iterativo
Administrar Requerimientos

Usar Arquitecturas basadas en


Componentes

Modelado Visual (UML)


Verificar Continuamente la Calidad
Administrar el Cambio

Proyeccin
de la organizacin y
Centrado en
la
Arquitectura
estructura de un sistema enfocndose
en aspectos particulares

Qu es la Arquitectura de un Sistema?
La descripcin del Sistema a travs de vistas
utilizando diagramas y modelos
Con qu notacin?

Centrado en la Arquitectura
Por qu es importante?

Permite una comunicacin efectiva entre las


personas involucradas
(diseador, desarrollador).
Promueve el reuso del software.
Permite la prueba individual e integracin
gradual de los componentes.
Permite crear sistemas flexibles y tolerantes
a cambios.

Arquitectura : Vistas
Proceso Unificado
1999

Vista de Modelo de Casos de Uso


Vista de Modelo de Anlisis
Vista de Modelo de Diseo
Vista de Modelo de Despliegue
Vista de Modelo de Implementacin

Arquitectura : Vistas
(RUP)
Krutchen 2000
Vista de los Casos de Uso
Vista Lgica
Vista de Procesos
Vista de Implementacin
Vista de Entrega.

Arquitectura de Software: Modelo de las 4+1 Vistas

Vista Lgica

Analistas/Diseadores
Estructura

Vista de
Implementacin
Programadores
Administradores
de Software

Usuario Final
Funcionalidad

Vista de Casos de Uso

Vista de Procesos
Integradores del Sistema
Rendimiento
Escalabilidad
Throughput

Vista de Despliegue
Ingeniera del Sistema
Topologa del Sistema
Entrega, Instalacin

Arquitectura: Vistas
Para modelar un sistema desde diferentes
vistas se debe responder:
Qu vistas se requiere?
Para cada vista:
Qu artefactos producir?

Arquitectura: Vistas
Vista de los Casos de Uso:
Esta vista contiene los escenarios o casos de
uso claves, para cada uno de los cuales se
describen las secuencias de interaccin entre
objetos y procesos.
Diagramas de Casos de Uso
Se complementa con vistas del rea Dinmica

Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.

Review: Analysis and Design is Use-Case Driven


Los Casos de Uso definidos para un
sistema son la base para el proceso
entero de desarrollo.
Beneficio de los Casos de Uso:
Concisos, simples y comprensibles para la gran
variedad de involucrados.
Ayudan a sincronizar el contenido de los diferentes
modelos.
Verificar Balance
Cliente

Depositar

Concepto: Realizacin de Casos de Uso


Modelo de Casos de Uso

Modelo de Diseo

Caso de Uso

Realizacin de Caso de Uso

Diagramas de
Secuencia

Diagramas de
Colaboracin

Caso de Uso
Diagramas de Clase

Arquitectura: Vistas
Vista Lgica o de Diseo:
Es una abstraccin del modelo de diseo e
identificacin a gran escala del diseo de
paquetes, subsistemas y clases
Diagramas de Clases y Objetos
Diagramas ER
Se complementa con vistas del rea Dinmica
Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.

Arquitectura: Vista Lgica


Diagrama
de Clases

Arquitectura: Vista Lgica

Arquitectura: Vistas
Vista de Procesos:
Toma en cuenta algunos requerimientos
no-funcionales: Rendimiento,
disponibilidad, integridad del sistema,
tolerancia a fallas.
Captura aspectos de Sincronizacin y
Concurrencia del diseo.
Control de los procesos concurrentes.

Arquitectura: Vista de Procesos

Arquitectura: Vistas
Vista de Implementacin o Desarrollo:
La vista de Implementacin se enfoca en la
organizacin de los mdulos del software actual
en el ambiente de desarrollo de software.
Diagramas de Componentes
Se complementa con vistas del rea Dinmica
Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.

Arquitectura: Vistas de
Implementacin
Diagrama de componentes

Arquitectura: Vistas
Vista Fsica o de Despliegue:
Describe mapping del SW al HW y refleja
su aspecto distribuido.
Diagramas de Despliegue
Se complementa con vistas del rea Dinmica
Diagramas de Actividad,
Diagramas de Interaccin,
Diagramas de Estado.

Arquitectura: Vista de
Despliegue
Diagrama de Despliegue

Arquitectura de Software
Es la organizacin o estructura de los
componentes significativos dentro del
sistema, lo cuales interactan,
an a travs de
interfaces. Los componentes pueden ser
usados para formar componentes ms
grandes
Cules son las partes principales?
Cmo colaboran?
Se tiene un marco en el cual el resto de los
componentes puede ser agregado?.

Arquitectura de Software
La Arquitectura del Software es la
organizacin fundamental de un sistema
formada por sus componentes, las
relaciones entre ellos y el contexto en el
que se implantarn, y los principios que
orientan su diseo y evolucin. IEEE
Std 1471-2000

Arquitectura de Software
Cmo disearla?
9 A partir de los escenarios significativos del proyecto
9 Considerando la plataforma sobre la cual se construir
el sistema:
Una secuencia
9 sistema operativo,
especfica de
9 manejador de bases de datos,
acciones que
9 sistemas existentes,
Una solucin
ilustra a
los
9 etc
uncomportamientos
problema
9 Utilizando la experiencia
comn en un
9 arquitecturas previas
contexto dado
9 patrones de diseo.

Arquitectura de Software
Cmo especificarla?
En dos etapas:
Nivel General: se especifican los aspectos generales del
sistema a construir (middleware, sistemas existentes, etc.)
Nivel Especfico: a travs de diferentes vistas de los
modelos:

casos de uso
clases y componentes
subsistemas
colaboraciones
interfaces
nodos

Arquitectura de Software
conjunto de
Nivel general (arquitectura por niveles)

subsistemas
que comparten
el mismo grado
de generalidad

9 El sistema es descrito en trminos de varios niveles,


niveles
donde los subsistemas pertenecientes a un nivel
dado, slo pueden referenciar a los componentes del
nivel inmediatamente inferior
9 Los subsistemas de los niveles superiores son
construidos a partir de los subsistemas de los niveles
inferiores.

Evolucin de Arquitecturas
Aplicaciones
Monolticas

Arquitectura ClienteServidor

Interfaces grficas de usuario


(GUI).
Servicios de presentacin,
negocios y persistencia en la
misma mquina.
No hay concurrencia de usuarios.
Alto acoplamiento entre tiers.

Clientes pesados, no estndar


Conexiones dedicadas a BD
Protocolos pesados
Ejecucin remota de SQLs
Alta administracin
Bajo rendimiento
Alto trfico de red
Baja accesibilidad

Evolucin de Arquitecturas
Arquitectura C/S
Mejorada

Arquitectura de 3 niveles

Lgica de negocios en BD
Clientes pesados, no estndar.
Conexiones dedicadas a la BD.
Mejora en rendimiento

Alta administracin
Baja escalabilidad
Baja flexibilidad
Baja portabilidad

Reutilizacin de lgica de negocio


para diferentes clientes o sistemas.
Mejora la escalabilidad.
Mejora la flexibilidad.
Independencia de la base de datos.

Arquitecto de Software
Arquitecto es un rol en un proyecto de
desarrollo de software el cual es
responsable de:
Liderar el proceso de arquitectura.
Producir los artefactos necesarios:
Documento de descripcin de arquitectura
Modelos y prototipos de arquitectura.

La Arquitectura de Software abarca las


decisiones ms significativas acerca de la
organizacin de un sistema de software
La seleccin de los elementos estructurales
que componen un sistema y sus interfaces
El comportamiento expresado en trminos de
colaboracin entre estos elementos
La composicin de estos elementos en

subsistemas
El estilo arquitectnico que gua su
organizacin, sus elementos e interfaces y su
composicin
Grady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner; Rational Software
(derived from Mary Shaw)

Arquitectura Vs. Diseo


La arquitectura y el diseo difieren en tres reas:
Arquitectura

Diseo

Nivel de
Abstraccin

Alto nivel

Bajo nivel. Enfoque


especfico en detalles

Entregables

Planear subsistemas, interfaces


con sistemas externos,
servicios horizontales,
frameworks, componentes
reutilizables, prototipo
arquitectnico

Diseo detallado
componentes.

Seleccin de tecnologas,
Requerimientos no funcionales
(QoS),
Manejo de riesgos

Requerimientos
funcionales

reas de
Enfoque

Especificaciones de
codificacin

Arquitectura Vs. Diseo


La arquitectura envuelve un conjunto de decisiones
estratgicas de diseo, lineamientos, reglas y
patrones que restringen el diseo y la
implementacin de un software.

Cdigo
Implementacin
Diseo

Arquitectura

Las decisiones
de arquitectura
causan un alto
impacto en los
proyectos de IT

Definicin de Arquitectura en
RUP
Fase de Inicio
Con respecto a la
arquitectura, en la fase de
inicio de los proyectos se
establece:
Requerimientos nofuncionales
Lista de riesgos y
restricciones
Arquitectura inicial

Definicin de Arquitectura en
RUP
Fase de Elaboracin
Con respecto a la arquitectura,
en la fase de elaboracin se
establece:
Arquitectura lnea base.
Entregables:
Documento de Definicin de
Arquitectura.
Prototipo evolutivo de arquitectura.
Guas y Estndares de Diseo.

RUP en 10 Pasos
Rushton Prince. Implementing RUP in 10
steps . (2005):
9 Definir un Caso de Desarrollo para el proyecto.
9 Identificar los casos de uso o funcionalidades para
el proyecto.
9 Clasificar los casos de uso segn los niveles de
riesgo.
9 Clasificar los artefactos por disciplinas.
9 Iterar a travs de las disciplinas de RUP para crear
los artefactos necesarios para recopilar la
informacin necesaria para el desarrollo del proyecto.

RUP en 10 Pasos
Rushton Prince. Implementing RUP in 10
steps . (2005):
9 Iterar a travs de las disciplinas de RUP para
detallar cada uno de estos artefactos.
9 Cumplir el objetivo de la Fase de Inicio: Alcance del
proyecto.
9 Cumplir el objetivo de la Fase de Elaboracin: Lnea
Base de la Arquitectura.
9 Cumplir el objetivo de la Fase de Construccin:
Primer release del Producto.
9 Cumplir el objetivo de la Fase de Transicin: Integrar
el producto a la realidad del negocio.

También podría gustarte