Sei sulla pagina 1di 57

Diseo de Sistemas

Clase 4:
Documento de Arquitectura

Hugo R. Cordero S.

Objetivos
Conocer la evaluacin tcnica preliminar y su importancia
para la arquitectura
Conocer los diferentes tipos de estructuras y su presentacin
mediante vistas
Comprender los aspectos de seguridad mnimos a incorporar
dentro de la arquitectura de un sistema
Conocer una plantilla para el documento de arquitectura

Evaluacin tcnica preliminar


Describir en forma general las posibles alternativas de
solucin preliminares derivadas de la evaluacin tcnica
preliminar y seleccionar en base de los siguientes criterios:

Costo
Performance
Complejidad
Crecimiento de la funcionalidad
Limitaciones tecnolgicas
Sensibilidad a los cambios
Riesgo
Descontinuacin del aplicativo
Capacidades y limitaciones de los usuarios finales y operadores

Evaluacin tcnica preliminar

Alternativa 1

Alternativa 2

Lenguaje
Programacin: Java
Motor de Base de
datos: MySQL
Servidor: TOMCAT
Herramientas
Frameworks Struts
Browser: Internet
Explorer

Lenguaje
Programacin: VB
.NET
Motor de Base de
datos: SQL SERVER
Servidor: .NET tiene
su propio servidor.
Herramientas
visuales,
componentes COM
y de web services.
Browser: Internet
Explorer

Vistas y estructuras
Una vista:
Es una representacin coherente de un conjunto de
elementos arquitectnicos y las relaciones entre ellos
Una vista es una representacin de una estructura
Una estructura:
Es el conjunto de elementos en s, tal como existen en el
software o hardware.
Los arquitectos disean la estructura y documentan vistas de
esas estructuras

Tipos de Estructuras
Tipos de Estructuras (segn SEI)
Basado en la representacin de tres tipos de estructuras
del sistema de software
Estructura de mdulos
Estructura de componentes y conectores
Estructura de localizacin

Tipos de Estructuras

Estructuras de mdulos
Nos permite responder preguntas como:
Cul es la principal responsabilidad funcional asignada a
cada mdulo?
Qu otros elementos de software est permitidos de usar
por un mdulo?
Qu otro software es actualmente usado o dependiente?
Qu mdulos estn relacionados con otros mdulos por
relaciones de generalizacin o especializacin?

Estructura de mdulos
Estructuras de Descomposicin

Estructura de mdulos
Estructura de uso de mdulos

10

Estructura de mdulos
Estructura de capas

11

Estructura de componentes y conectores


Implica decisiones en cuanto a cmo el sistema ser
estructurado como un conjunto de elementos que tienen un
comportamiento en tiempo de ejecucin (componentes) y sus
interacciones (conectores)
Los elementos son los componentes en tiempo de ejecucin
(que son las principales unidades de cmputo y podran ser
servicios, clientes, servidores, filtros, etc.) y conectores (que
son los vehculos de comunicacin entre los componentes.

12

Mdulos y componentes
Mdulos
Unidades de diseo
Encierran funcionalidad
o responsabilidad que se
accede a travs de una
interfaz
No se replica
No interesa la ejecucin

Componentes
Unidad de ejecucin
Tiene
una
interfaz
definida y accesible
durante la ejecucin
Puede instalarse en
forma independiente
Puede replicarse

13

Estructura de componentes y conectores


Nos permite responder preguntas como:
Cules son los principales componentes de ejecucin y
cmo interactan en tiempo de ejecucin?
Cules son los principales almacenes de datos compartidos?
Qu partes del sistema son replicados?
De qu manera se procesan los datos a travs del sistema?
Qu partes del sistema pueden ejecutarse en paralelo?

14

Estructura de componentes y conectores


Estructura de servicios, componentes y conectores

15

Estructura de componentes y conectores


Estructura de concurrencia

Sincronizacin

Paralelismo

16

Estructura de localizacin
Incorporar las decisiones en cuanto a cmo el sistema se
relaciona con las estructuras no software en su entorno (por
ejemplo, CPU, sistemas de archivos, redes, equipos de
desarrollo, etc).
Estas estructuras muestran la relacin entre los elementos
de software y elementos en uno o ms entornos externos en
el cual el software es creado y ejecutado

17

Estructura de localizacin
Nos permite responder preguntas como:
Qu procesador tiene cada elemento de software durante su
ejecucin?
En qu directorios o archivos est cada elemento
almacenado durante el desarrollo, las pruebas y la
construccin del sistema?
Cmo se asignarn los elementos de software entre los
equipos de desarrollo?

18

Estructura de localizacin
Estructura de Despliegue (1)

19

Estructura de localizacin
Estructura de Despliegue (2)

20

Notaciones para representar la


arquitectura
Genricos
UML, Unified Modeling Language
ADL, Architecture Description Language
Propietarios
De alguna organizacin
Versin particular

21

Modelos para representar la Arquitectura


Diferentes modelos que agrupan vistas para representar tota
la arquitectura de un sistema
Cada vista representa el detalle de alguna parte del sistema
Principales modelos:
Modelo 4+1
Modelo de Siemens
Modelo propuesto por SEI

22

Modelo de Siemens (o de Nord)


Vista Conceptual
Se describe el sistema en trminos de sus elementos
principales de diseo y las relaciones entre stos, dentro de un
dominio determinado
Esta vista es independiente de las decisiones de
implementacin y enfatiza en los protocolos de interaccin
entre los elementos de diseo

Vista de Mdulos
Se captura la descomposicin funcional y las capas del sistema
El sistema es descompuesto lgicamente en subsistemas, y
mdulos
23

Modelo de Siemens (o de Nord)


Vista de Ejecucin
Se describe la estructura dinmica del sistema en trminos de
sus elementos en tiempo de ejecucin
Algunos de los aspectos que se consideran en esta vista son, el
desempeo y el entorno de ejecucin

Vista de Cdigo
Se organiza el cdigo fuente en directorios, archivos y
bibliotecas
Algunos de los aspectos que se incluyen son, los lenguajes de
programacin a utilizar, herramientas de desarrollo, la
administracin de la configuracin y la estructura del proyecto
24

Modelo de vistas propuesto por SEI


Esta nueva tendencia est respaldada por el Instituto de
Ingeniera del Software (SEI) con su propuesta "Vistas y
ms all de stas, enfoque para la documentacin de
arquitecturas de software
En su propuesta define tres categoras denominadas tipos
de vista en las que prcticamente cualquier vista,
dependiendo del tipo de informacin que contenga puede
pertenecer a una de estas categoras.

25

Modelo de vistas propuesto por SEI


Vista de mdulo
Describe cmo el sistema es estructurado en un conjunto
de unidades funcionales. Por ejemplo capas:

26

Modelo de vistas propuesto por SEI


Vista de conectores y componentes
Describe cmo el sistema es estructurado en un conjunto
de elementos que estn en tiempo de ejecucin as como
la interaccin entre stos.

27

Modelo de vistas propuesto por SEI


Vista de localizacin
Se describe la relacin entre las unidades de software y
los elementos del entorno tales como, hardware o la
organizacin de los equipos de desarrollo de software

28

Modelo de vistas propuesto por SEI


Una vista puede llegar a contener gran cantidad de
elementos, ocasionando en el personal involucrado
dificultad en su interpretacin
La solucin a esto es utilizar paquetes de vista, los cuales
contienen un nmero reducido de elementos, logrando
as una mejor comprensin ya que solo se muestra un
fragmento particular del sistema.

29

Modelo de vistas propuesto por SEI


El SEI recomienda que se cuente con una gua de estilos
que contenga entre otros aspectos, la descripcin
relevante del estilo, elementos, relaciones, propiedades,
situaciones en las que no es recomendable aplicarlo,
circunstancias en las que se recomienda usar el estilo, y
posibles enfoques analticos que el arquitecto puede
utilizar.

30

Documentando la arquitectura
Los arquitectos deben documentar las vistas que sean de
mayor utilidad y no ajustarse a un nmero fijo de vistas,
como es el caso en las propuestas de Kruchten y Nord.
Documentar la arquitectura tomando en cuenta los
intereses y necesidades de las personas involucradas en el
proyecto, estos intereses se traducen como las cualidades
que el sistema resultante debe poseer.

31

Documentando la arquitectura
UML
Es un lenguaje para especificar, construir, visualizar y
documentar los artefactos de un sistema de software
orientado a objetos. Un artefacto es una informacin que
es utilizada o producida mediante un proceso de
desarrollo de software
No define un proceso concreto que determine las fases
de desarrollo de un sistema
No pretende definir un modelo estndar
de desarrollo

32

Vistas
Estructurales (usando UML)
Vista de clases
Vista de paquetes
Vista de componentes
Vista de despliegue

33

Vista de clases

34

Vista de paquetes
Sistema de Venta de Libros OnLine

pe
com
sisvenlib
catalogo

compras

administracion

utilitarios

35

Vista de componentes

36

Vista de despliegue

37

Vistas
De Comportamiento (usando UML)
Vistas de casos de uso
Vistas de actividades
Vistas de comunicacin

38

Vista de casos de uso

39

Vistas de actividades

40

Vista de comunicacin

41

Vistas del modelo 4+1 vs. UML

42

Otras vistas
Vistas de cdigo

43

Otras vistas
Vista de Integracin

44

Otras vistas
Vista de ejecucin

45

Definicin de la Seguridad
Seguridad e integridad de los procesos
Describir los controles de secuencia de los procesos Batch (procesos
transaccionales que corren nocturnamente). Ej: Cuadro de totales
procesados, validaciones y controles de para transmisiones y/o
procedimientos automticos.

Proceso : Bat008.4gi
Parmetros: S 1 1 1
---------------------------------------------------Hora inicio: 21:00:31

Cantidad de registros ledos: 23006


Cantidad de registros procesados : 23006
Cantidad de registros con error: 0
Hora fin: 21:30:58

46

Definicin de la Seguridad
Administracin de Perfiles de Acceso
Definir y describir los mdulos vs. Perfiles de acceso
Descripcin del mdulo de seguridad
Descripcin de perfiles.
Aplicativo
Funcines por Mdulo
Mdulo A
Consulta de informacin de
empresas
Consulta de operadores
autorizados
Consulta de cuentas afiliadas
Consulta de combinaciones
autorizadas
Modificacin de datos bsicos de
empresas
Modificacin de datos extendidos
de la empresa
Modificacin de operadores
autorizados

Perfil 1

Perfil 2

...

Perfil N

x
x

x
x

X
X

x
x

x
x

x
x

X
X

x
x

Mdulo B
Modificacin de cuentas afiliadas
Modificacin de combinaciones
autorizadas

47

Definicin de la Seguridad
Administracin de Perfiles de Acceso
A continuacin podemos observar el tiempo de bsqueda de una clave de
acuerdo a su longitud y tipo de caracteres utilizados. La velocidad de bsqueda
se supone en 100.000 passwords por segundo, aunque este nmero suele ser
mucho mayor dependiendo del programa utilizado.

48

Definicin de la Seguridad
Administracin de Perfiles de Acceso :
Longitud mnima de password
Nmero de intentos de acceso fallidos antes de bloquear el acceso
Nmero de veces que se puede repetir un password
Otras polticas de password implementadas
Confirmacin de password al crear cuentas y resetear
Existencia de opcin deshabilitar cuenta y/o eliminar
Mtodos de encripcin en passwords

49

Definicin de la Seguridad
Controles de Acceso:
Definir y describir los Usuarios genricos (no aplicativo), como
usuarios del dominio, BD, mails, componentes MTS, directorios
compartidos, etc.
Identificacin de usuarios especiales y su necesidad: Ej. DBO, System
Administrador, etc.
Identificacin de programas que manejan elementos confidenciales.
Ej. Rutinas de encriptacin, etc.
Identificacin de conexiones a redes externas: firewall, puertos y
protocolos.

50

Tareas operativas bsicas


Backups, replicacin, procedimientos de recuperacin

Respecto a respaldos de informacin (Backups) La mayora de aplicaciones


cuenta con respaldos de informacin generalmente centrada alrededor de
bases de datos. Se est reforzando la necesidad de disear e implementar
procesos de respaldo debido a que se ha encontrado que muchas
aplicaciones no estn almacenando toda la informacin crtica para su
funcionamiento.

51

Documento de Arquitectura
Descripcin general
Propsito del sistema
Objetivo y alcance del diseo
Definiciones y convenciones
Requerimientos
Funcionales
No funcionales
Arquitectura del sistema
Contexto del sistema
Arquitectura general
Tecnologas seleccionadas
52

Documento de Arquitectura
Vistas del sistema
Vista de mdulos
Vista de casos de uso
Vista de procesos
Vista de componentes
Vista de datos
Vista de despliegue
Vista de integracin
Vista de concurrencia

53

Documento de Arquitectura
Detalles de Implementacin
Plataforma y herramientas
Organizacin del proyecto
Requerimientos de Hardware
Requerimientos de Software
Definiciones de Seguridad
Diseo de archivos y base de datos
Tareas operativas bsicas
Anexos
Glosario de trminos
54

Resumen
La evaluacin tcnica preliminar sienta las bases del sistema
a implementar
Existen tres grupos de estructuras: mdulos, de
componentes y conectores, y de localizacin
Los modelos 4+1, de Siemens y del SEI son formas de
representar un sistema a travs de un conjunto de vistas
Las vistas estructurales son: de clases, de paquetes, de
componentes y de despliegue
Las vistas de comportamiento son: de casos de uso, de
actividades y de comunicacin
Administracin de los perfiles de acceso y los controles de
acceso son definiciones de seguridad importantes.
55

Preguntas?

Por qu es importante la evaluacin tcnica


preliminar?

56

Bibliografa
Ingeniera del Software, 9na. Edicin, Ian Sommerville
Captulo 6: Diseo arquitectnico

Ingeniera de Software: Un enfoque prctico, 7ma. edicin,


Roger S. Pressman
Captulo 8: Conceptos de diseo
Captulo 9: Diseo de la arquitectura

Ingeniera de Software. Un enfoque desde la gua SWEBOK


1ra. edicin, S.Snchez - M.Sicilia - D.Rodriguez
Captulo 5: Diseo

Ingeniera de Software, 1ra. edicin, Guillermo Pantaleo y


Ludmila Rinaudo
Captulo 13, Arquitectura de software
Captulo 14, Diseo de software
57

Potrebbero piacerti anche