Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
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
14
15
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
21
22
Vista de Mdulos
Se captura la descomposicin funcional y las capas del sistema
El sistema es descompuesto lgicamente en subsistemas, y
mdulos
23
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
25
26
27
28
29
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
39
Vistas de actividades
40
Vista de comunicacin
41
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
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
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?
56
Bibliografa
Ingeniera del Software, 9na. Edicin, Ian Sommerville
Captulo 6: Diseo arquitectnico