Este documento describe las cuatro vistas principales para describir la arquitectura de una aplicación: vista lógica, vista de componentes, vista de procesos y vista de despliegue. Explica brevemente cada una de las vistas y sus elementos clave como paquetes, componentes y nodos.
Una metodología de Desarrollo es como una receta de cocina, hay se visualizan los requerimientos, las herramientas y técnicas a utilizar para crear el platillo (software). De su buen eso depende el éxito del proyecto.
Introducción a la Arquitectura de Software.
Géneros Arquitectónicas
Estilos Arquitectónicos.
Diseño Arquitectónico.
Evaluación de los diseños alternativos para la Arquitectura.
Una metodología de Desarrollo es como una receta de cocina, hay se visualizan los requerimientos, las herramientas y técnicas a utilizar para crear el platillo (software). De su buen eso depende el éxito del proyecto.
Introducción a la Arquitectura de Software.
Géneros Arquitectónicas
Estilos Arquitectónicos.
Diseño Arquitectónico.
Evaluación de los diseños alternativos para la Arquitectura.
El análisis de sistemas orientado a objetos es un enfoque de la ingeniería de software que plantea una nueva forma de pensar para entender el problema basado en modelos funcionales compuestos por verbos y sustantivos.
• El SqlDataAdapter, actúa como puente entre un DataSet y SQL Server para recuperar y guardar datos y proporciona este puente mediante la asignación de Fill, que cambia los datos en el DataSet coincidan con los datos del origen de datos, y Update, que cambia los datos del origen de datos coincidan con los datos en el DataSet, mediante las instrucciones de Transact-SQL adecuadas en el origen de datos.
Plantilla para realizar un manual de usuario de software Yaskelly Yedra
La siguiente presentación es la plantilla que se utiliza en el Departamento de Computación para realizar los manuales de usuario de los sistemas desarrollados tanto para ingeniería de software, sistemas de información y trabajos especiales de grado.
El análisis de sistemas orientado a objetos es un enfoque de la ingeniería de software que plantea una nueva forma de pensar para entender el problema basado en modelos funcionales compuestos por verbos y sustantivos.
• El SqlDataAdapter, actúa como puente entre un DataSet y SQL Server para recuperar y guardar datos y proporciona este puente mediante la asignación de Fill, que cambia los datos en el DataSet coincidan con los datos del origen de datos, y Update, que cambia los datos del origen de datos coincidan con los datos en el DataSet, mediante las instrucciones de Transact-SQL adecuadas en el origen de datos.
Plantilla para realizar un manual de usuario de software Yaskelly Yedra
La siguiente presentación es la plantilla que se utiliza en el Departamento de Computación para realizar los manuales de usuario de los sistemas desarrollados tanto para ingeniería de software, sistemas de información y trabajos especiales de grado.
Descripción general de los 13 diagramas UML así como sus componentes y principales funciones, es útil para exponer o dar una clase introductoria de este tema.
2. Una Arquitectura requiere de
Múltiples Vistas
Para describir una arquitectura se
requiere de 4 vistas:
La Vista Lógica: que proporciona una
figura estática de las clases principales y
sus relaciones.
La Vista de Componentes: para mostrar
como el código es organizado en
paquetes, librerías,etc
3. Una Arquitectura requiere de
Múltiples Vistas
La Vista del Proceso: que muestra los
procesos y tareas.
La Vista de la Distribución: que muestra
los procesadores, dispositivos y enlaces
en el ambiente operativo.
Y finalmente un escenario que explique
como pueden funcionar juntas.
4. La Vista “4+1” del Modelo
Vista Lógica Vista de
Componentes
Funcionalidad Admin. de Software,
Reuso y Portabilidad
Vista de Ingenieros
Usuarios
Finales Casos de Uso de Software
Comprensión y Uso
Vista del Proceso Vista de la
Rendimiento,
Distribución
=VP + Escalabilidad,
Disponibilidad,
Entrega e Instalación
Tolerancia a Fallas
Integradores Ingenieros
de Sistemas
5. Vista Lógica
La Vista Lógica (logical view) de la arquitectura
dirige los requerimientos funcionales del
sistema.
Estos es, lo que el sistema debe proporcionar en
términos de servicios para sus usuarios.
Proporciona una figura estática de las clases
principales y de sus relaciones.
Se captura en un diagrama de clases que
contiene paquetes, clases y relaciones que
representan las abstracciones clave del sistema.
6. Uso de Paquetes Lógicos
Globales
Algunos paquetes son usados por
todos los demás:
Clases de Seguridad
Clases de soporte a errores (Error
handling classes)
7. Uso de Paquetes Lógicos
Globales
Estos paquetes son señalados como
globales.
Security
Classes
global
8. Implicaciones de la
Dependencia
Algunas de las implicancias de la dependencia
entre paquetes son:
Cada vez que se hace un cambio en el paquete del
proveedor, el paquete del cliente debe ser
recompilado y vuelto a probar.
El paquete del cliente no puede ser reusado
independientemente porque depende del paquete del
proveedor.
ClientPackage SupplierPackage
9. Evitando las Dependencias
Circulares
Es deseable que la jerarquía de paquetes sea acíclica.
Esto significa que la siguiente situación debe ser evitada (en
lo posible)
El paquete A usa el B que a su vez usa al paquete A.
Tal dependencia circular implica que el paquete A y el B
deben ser tratados como un paquete único.
Círculos mas amplios deben ser igualmente evitados.
Estas dependencias se pueden romper dividiendo uno de los
paquetes en dos mas pequeños.
10. Ejemplo de Dependencia
Circular
Interfaces Business
Rules
Incoming
Interfaces Business
Cambiado por: Rules
Outgoing
Interfaced
11. Paquetes y sus Relaciones
<<subsystem>>
Ordering
InterfazUsuario Administrador
GU
Procesamiento Dependencia
de Pedidos
Calculador Administracion
de
de Precios
Almacenami Almacenamiento
entoExterno
Generalizacion
de paquete
Almacenamie
ntoAleatorio Deposito
Almacenamiento
Almacenamiento EnArchivo
Dependencia de un
paquete Externo
12. Visibilidad
Es la capacidad de un elemento para hacer
referencia a otro elemento que se encuentra en un
contenedor diferente al primero.
El contenedor puede ser un paquete, clase, etc.
Existen tres tipos de visibilidad
--Publica(+); todo elemento que vea el contenedor
--Protegida(#);puede ser visto por elementos del mismo contenedor o descendiente
del contenedor
--Privada(-);solo por los elementos del mismo contenedor
Se aplica a nivel de Clases, Paquetes
14. ¿Qué es un componente?
Un componente es una unidad de código
fuente que sirve como un bloque de
construcción para la estructura física del
sistema.
Los estereotipos sirven para especificar a
las diferentes clases de componentes.
Ejemplos: exe, dll, main programs, headers,
modules, forms
16. .....¿Qué es un componente?
Hay que agrupar clases en componentes
si tienen una función cooperativa o si
necesitan estar muy próximas para que la
implementación sea eficiente.
Notación de un Componente:
Nombre del
Componente
17. Diagrama de Componentes
Los diagramas de componentes
describen los elementos físicos del
sistema y sus relaciones
Muestran las opciones de realización
incluyendo código fuente, binario y
ejecutable
18. Diagrama de Componentes
Un diagrama de componentes muestra la asignación de
clases y objetos a componentes de implementación y
también sus dependencias de compilación.
Name 1 Name 2
Name 1
Name 2
Name 3
19. Diagrama de Componentes
Se requiere un nombre para cada
componente; este nombre típicamente
denota un nombre simple para el
correspondiente archivo físico en el espacio
de trabajo de desarrollo.
Muestran el mapeo de las clases con los
componentes implementados
Son utilizados por el responsable de compilar
el sistema
Describen en qué orden han de ser
compilados los componentes.
20. Diagrama de Componentes
La única relación es de dependencia de
compilación, representada por una línea punteada
que apunta al módulo sobre el cual existe la
dependencia.
Muestran qué componentes run-time serán
creados como resultado de la compilación
En C++, una dependencia de compilación se
indica por las directivas #include
No debe existir ciclos dentro de dependencias de
compilación.
21. ...Diagramas de Componentes
Los componentes representan todos los tipos
de elementos software que entran en la
fabricación de aplicaciones informáticas.
Pueden ser simples archivos, paquetes de
Ada, bibliotecas cargadas dinámicamente,
etc.
Cada clase del modelo lógico se realiza en
dos componentes: la especificación y el
cuerpo
22. … Diagramas de
Componentes
La representación gráfica es la siguiente:
Especificación Cuerpo Genérico
Package Package Generic
specification body package
24. Dependencias entre
Componentes
Las relaciones de dependencia se
utilizan en los diagramas de
componentes para indicar que un
componente utiliza los servicios
ofrecidos por otro componente
25. Subsistemas
Los distintos componentes pueden agruparse
en paquetes según un criterio lógico y con
vistas a simplificar la implementación
Son paquetes estereotipados en
<<subsistemas>>
<<subsistema>>
NewPackage4
26. … Subsistemas
Los subsistemas organizan la vista de
realización de un sistema
Cada subsistema puede contener
componentes y otros subsistemas
La descomposición en subsistemas no es
necesariamente una descomposición
funcional
Paquetes (Categorias) y clases en el nivel
lógico. Paquetes (Subsistemas) y
componentes en el nivel físico
27. Vista de Componentes
Los diagramas de componentes se
diseñan para mostrar los paquetes y
componentes que conforman el
sistema en desarrollo.
Muestra la asignación de clases a
componentes.
Muestra la asignación de componentes a
paquetes.
28. Vista de Componentes
Los paquetes se organizan en
capas jerárquicas donde cada
capa tiene una interfaz bien
definida.
29. Physical application architecture
Thinner client, thicker server
Client A Client B Client C
Application Application WWW Browser
Business Object DCOM
CORBA Beans
Services ADO/R
Business Object
Engine Web
HTML
Business COM Beans Server CGI ASP Java
Object Server MTS ETS
Business Object Business Object
Services Services
Business Object Business Object
Engine Engine
Relational Database Server(s)
30. Paquetes en la Vista de
Componentes
En la vista de componente un paquete es
una colección de componentes, donde
algunos son visibles u ocultos a otros.
Un paquete agrupa componentes que
están lógicamente relacionados.
31. Paquetes en la Vista de
Componentes
Cada componente del sistema debe
vivir en un paquete único o en el nivel
mas alto del sistema.
Notación:
PackageName
32. Diagrama de Componentes
Principal
Un diagrama de componentes principal es una
familia de paquetes conectados por enlaces
directos que representan dependencias.
Ejemplo:
MFC Interfaz
Usuario de
Matrícula
Sistema de
Matrícula
33. Correspondencia entre Paquetes
de diferentes Vistas
En general, un paquete de la vista lógica
corresponde directamente con un paquete de la
vista de componentes.
No obstante las estructuras lógica y física pueden
variar de acuerdo a las siguientes razones:
Los paquetes de la vista lógica se fusionan para conservar
a los objetos con una comunicación estrecha para la
implementación.
Los paquetes de la vista de componentes son adicionados
para implementar funcionalidad de bajo nivel (no
representada en el análisis).
34. Correspondencia entre Paquetes
de diferentes Vistas
GuiWidgets RegistrationUser MFC RegistrationUser
Interface Interface
Registration Registration
System System
Logical View Top-Level Diagram Component View Top-Level Diagram
37. Procesos
Un proceso es la ejecución de un hilo de
control en un programa OO o sistema.
Un sistema debe descomponerse en múltiples
procesos o hilos de control.
Los objetos son asignados a procesos (esta
asignación puede ser dinámica).
38. Hilos de Control
El Diagrama de Secuencia refleja de
manera indirecta las opciones de control
(sincronizacion del sistema)
m1
m1
m2
m2 m3
m3 m4
m5
39. Vista del Proceso
La Vista del proceso se concentra en la
descomposición del proceso.
Muestra la asignación de componentes a
procesos.
El Diagrama de componentes se actualiza
para mostrar la asignación de componentes a
procesos.
La vista de procesos agrupa la disponibilidad,
fiabilidad, rendimiento, administración y
sincronización del sistema.
40. Componentes del Proceso
Los ejecutables y sus librerías asociadas
son representadas como componentes.
Package specification (DLL)
Task specification (EXE)
Package specification (DLL) Task Specification (EXE)
41. Tipos de Iconos para
componentes
De Especificacion
Componente Generico
Package Specification
Especificacion Es el archivo cabecera que
SubPrograma contiene informacion de las
funciones.
Es una especificacion
de rutinas. No En C++ : .h files
contienen
informacion de clases En Java : .java files
Main Program
Package Body
Contiene el codigo para las
Representa al
operaciones de una clase
programa principal
En C++ : .cpp files
42. Tipos de Iconos para
componentes
De Ejecucion
Package specification Database
Representa a la BD
que puede contener
varios squemas
Estos iconos representan
paquetes que tienen hilos de
control independientes
Ejem de Package specification :
Package Body .Exe files
Interfase
43. Diagrama de componentes para
representar un proceso
Cada componente puede depender de
otros.
MyProcess.exe Name1 Name2
Name1 Name2
44. Ejemplos de Procesos
Ventas.exe Matricula.exe
Proceso para la creación y Proceso para la selección de
mantenimiento de la Venta cursos por estudiantes
de Articulos
45. Diagrama del Proceso
Matricula
Conta.exe Matricula.exe
Sistema
Contabilidad
Agentes.dll
Usuarios
Cursos.dll
Cursos
Alumnos Profesores
Curso Oferta de
Cursos
Vista de los componentes ejecutables
47. Vista del Despliegue
La vista del despliegue vincula
componentes a nodos de procesamiento.
Requerimientos como rendimiento y
tolerancia a las fallas son tomados en
cuenta.
Los diagramas de despliegue son creados
para mostrar los diferentes nodos
(procesadores y dispositivos) en el
sistema.
48. El diagrama de despliegue
Un diagrama de despliegue muestra la
asignación de componentes a nodos.
Procesadores y dispositivos son estereotipos
comunes para un nodo.
Los nodos se conectan reflejando la
comunicación que existe entre ellos.
Los elementos esenciales del diagrama de
despliegue son los nodos y sus conexiones.
49. El diagrama de despliegue
Muestra la distribución física de los
componentes en nodos locales y
remotos de la red
Presenta los distintos componentes de
una arquitectura en tres capas (3Tier)
Servidor de datos
Servidor de aplicaciones
Cliente
50. Notaciones del diagrama de
despliegue
Un nodo es un objeto físico en tiempo de
ejecución que representa recursos de
computacionales.
Un conexión indica comunicación,
usualmente significa enlaces de hardware.
etiqueta
nombre
nodo conexión
51. Diagrama de despliegue
Este diagrama muestra dos nodos y
dispositivos que se comunican con el
Sistema de Matricula.
Matricula Database
System
Dorm Library
<<device>>
Main <<device>>
Building
<<device>>
52. … Diagramas de Despliegue
Ejemplo de conexión entre nodos:
<<Procesador> <<dispositivo>>
Nodo <<<<TCP/IP>>>> nodo2
conexión1
conexión7
<<RDSI>>
En Rational Rose podemos
dispositiv
distinguir entre el dispositivo por
o
estereotipado y el dispositivo con
su propio símbolo
53. Procesos
Los procesos son asignados a procesadores (el
conjunto de procesos puede ser dinámico)
Notación:
Nombre
del
Procesador
proceso 1, proceso 2, ... proceso n
56. Physical application architecture
Thinner client, thicker server
Client A Client B Client C
Application Application WWW Browser
Business Object DCOM
CORBA Beans
Services ADO/R
Business Object
Engine Web
HTML
Business COM Beans Server CGI ASP Java
Object Server MTS ETS
Business Object Business Object
Services Services
Business Object Business Object
Engine Engine
Relational Database Server(s)
57. Vinculando Procesos
Ejecutables al Hardware
Hay que tomar en cuenta aspectos como:
Tiempo de respuesta y de puesta en marcha del
sistema.
Ancho de banda de comunicación y sus capacidad.
Medio ambiente del hardware requerido.
Necesidades de procesamiento distribuido.
Sobrecarga o balance del procesador en un sistema
distribuido.
Tolerancia a fallas.
...
Notas del editor
8 Core Message: VM promotes reuse. Key Point 1:On previous slide, we talked about reusing a model. Key Point 2:There is a higher leverage of reuse. Reusing parts of the system or an application. For example, a component is an application in a binary format, whether the component is made of objects or not. VM can be used as a component browser and it can also be used to model component assembly. Conclusion: VM promotes reuse.