1 eap ingenieria de sistemas curso ingeniería de software ing. sanchez castillo eddye arturo...

33
1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Sesión 09 ARQUITECTURA DE HARDWARE Y SOFTWARE Ing. Sanchez Castillo Eddye Arturo [email protected] www.ceneinnova/eddyesanchez INGENIERIA DE SOFTWARE

Upload: maria-isabel-crespo-molina

Post on 24-Jan-2016

223 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Sesión 09

ARQUITECTURA DE HARDWARE Y SOFTWARE

Ing. Sanchez Castillo Eddye [email protected]/eddyesanchez

INGENIERIA DE SOFTWARE

Page 2: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

2 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Temario ... Arquitectura Lógica Arquitectura Física Diagrama de Componentes Diagrama de Despliegue

CONTENIDO

Page 3: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

3 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de SoftwareMg. Ing. WILFREDO CARRANZA

La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema.Arquitectura de Software(Arquitectura lógica):consiste en un conjunto de patrones y abstracciones coherentes que proporcionan el marco de referencia necesario para guiar la construcción del software para un sistema de información.La Arquitectura de Software establece los fundamentos para que analistas, diseñadores, programadores, etc. Trabajen en una línea común que permita alcanzar los objetivos del sistema de información, cubriendo todas las necesidades.

ARQUITECTURA LOGICA

Page 4: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

4 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

La arquitectura de un sistema puede dividirse en dos áreas:Diseño de alto nivelAquí se describen los componentes principales y el modo en que interactúan entre sí para satisfacer cada uno de los requisitos. Si el sistema es grande, cada componente puede tener su propio diseño de alto nivel, donde se muestra su composición a partir de componentes más pequeños.Modelos de diseñoconvenciones que se usan a lo largo del proceso de diseño de los componentes. Un modelo describe un determinado enfoque para lograr un objetivo de programación. Si se usan los mismos modelos a lo largo de un diseño completo, el equipo puede reducir el costo que suponen los cambios y el desarrollo de nuevo software.

ARQUITECTURA LOGICA

Page 5: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

5 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Un diagrama de componentes contiene, obviamente Componentes Interfaces, y relaciones.

También pueden aparecer otros tipos de símbolos que ya haya visto.

El símbolo principal de un diagrama de componentes es un rectángulo que tiene otros dos sobrepuestos en su lado izquierdo. Debe colocar el nombre del componente dentro del símbolo. El nombre es una cadena.

DIAGRAMA DE COMPONENTES

Page 6: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

6 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Si el componente es miembro de un paquete, puede utilizar el nombre del paquete como prefijo para el nombre del componente. También puede agregar información que muestre algún detalle del componente.

DIAGRAMA DE COMPONENTES

Page 7: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

7 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Existen dos formas para representar a un componente y sus interfaces:

1. Muestra la interfaz como un rectángulo que contiene la información que se le relaciona, se conecta al componente por la línea discontinua y una punta de flecha representada por un triángulo sin rellenar que visualiza la realización.

DIAGRAMA DE COMPONENTES

Puede representar a una interfaz como un rectángulo con información, conec-tado al componente por una flecha de realización.

Page 8: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

8 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

2. Se muestra la segunda forma de representar a un componente y sus interfaces; esta forma es representativa, ya que representará la interfaz como un pequeño Círculo que se conecta al componente por una línea continua.

DIAGRAMA DE COMPONENTES

Puede representar a una interfaz como un pequeño círculo, conectado al componente por una línea continua que, en este contexto, se interpreta como realización.

Page 9: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

9 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Además de la realización, puede representar a la dependencia, que es la relación entre un componente y una interfaz de importación. Como recordará, la dependencia se vislumbra como una línea discontinua con una punta de flecha.Puede mostrar la realización y la dependencia en el mismo diagrama.

DIAGRAMA DE COMPONENTES

Una interfaz que realiza un componente y otra de la que depende.

Page 10: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

10 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Además de la realización, puede representar a la dependencia, que es la relación entre un componente y una interfaz de importación. Como recordará, la dependencia se vislumbra como una línea discontinua con una punta de flecha.Puede mostrar la realización y la dependencia en el mismo diagrama.

DIAGRAMA DE COMPONENTES

Una interfaz que realiza un componente y otra de la que depende.

Page 11: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

11 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Aplicación de los diagramas de componentes

• El primero es un modelo de una página Web que representa a un componente Java.

• El siguiente también es un modelo de una página Web pero éste utiliza controles ActiveX.

• Finalizará con un modelo de un paquete de Microsoft conocido como PowerToys. Este paquete, que puede obtener del sitio de Microsoft, le permite modificar aspectos de Win32.

DIAGRAMA DE COMPONENTES

Page 12: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

12 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de SoftwareMg. Ing. WILFREDO CARRANZA

Modelado ArquitectónicoNos referimos a la arquitectura física del sistemaNo a la OTRA arquitectura.

Mundo RealEn la construcción de un edificio, los planos son muy importantes … pero finalmente, lo más importante es dar lugar a una construcción REAL

UML nos ofrece dos clases de elementos para modelar la arquitectura física de un sistema: �Componentes Nodos

ARQUITECTURA FISICA

Page 13: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

13 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

La arquitectura abarca el conjunto del sistema:

• La arquitectura contempla las funciones a gran escala del sistema y cómo estas funciones trabajan como un todo.

• El arquitecto agrupa las clases en paquetes, modela el sistema como un conjunto de componentes que interactúan y considera las plataformas para desplegar dichos componentes a fin de conseguir las cualidades requeridas para el sistema.

Definiciones de algunos términos fundamentales, según standard IEEE- 1471- 2000 (IEEE-2000): • Sistema es un conjunto de componentes que cumplen una función o un

conjunto de funciones específicas.• Arquitectura es la organización fundamental de un sistema

incorporada en sus componentes, en sus relaciones mutuas y en el entorno, y los principios que guían su diseño y evolución.

• Perspectiva de la arquitectura es una representación desde una perspectiva específica, de un determinado sistema o de una parte del mismo.

… ¿Qué se entiende por Arquitectura?

Page 14: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

14 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

La arquitectura de software, es la organización de un sistema en términos de sus componentes de software, incluyendo los subsistemas y las relaciones e interacciones entre ellos, y los principios que guían el diseño de ese sistema de software.

El mismo sistema puede contemplarse desde distintas perspectivas, que hacen énfasis en los distintos aspectos del sistema.Ejemplos:Soni et al. (1995) identifican 4 aspectos distintos:

conceptual, modular, código y ejecución.

Page 15: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

15 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

El proceso racional unificado (RUP), usa 5 perspectivas del sistema, conocidas como las “4 + 1 perspectivas” (Kruchten, 2004):La perspectiva lógica, de implementación, de proceso y de despliegue. Y, la perspectiva de casos de uso, que une a las anteriores.

“Las 4 + 1 perspectivas del sistema”

Page 16: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

16 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Arquitectura: estructura organizativa de un sistema que incluye su descomposición en partes, conectividad, mecanismos de interacción y principios de guía que proporcionan información sobre el diseño del mismo.

La arquitectura es el conjunto de decisiones significativas sobre la organización de un sistema software.

Por ejm. La decisión de construir un sistema en dos capas, cada una de las cuales contiene un pequeño número de subsistemas que se comunican de una forma particular es una decisión arquitectónica.

La arquitectura de un software no está relacionada sólo con la estructura y el comportamiento, sino también con el uso, la funcionalidad, el rendimiento, la flexibilidad, la reutilización, la facilidad de comprensión, las restricciones y compromisos económicos y tecnológicos y con la estética.

Arquitectura .- definición UML

Page 17: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

17 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

El UML 1.0 especifica 9 clases de diagramas correspondientes a 8 vistas

Vistas y diagramas de UML

Page 18: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

18 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

La estrategia de arquitectura de Microsoft define , 4 vistas, llamadas arquitecturas:Arquitectura de Negocios, de Aplicación, de Información y Arquitectura de Tecnología

La Arquitectura de Aplicación, incluye las descripciones de:- Los servicios sistematizados que dan soporte a los procesos de negocios- Las interacciones e interfaces de los sistemas empresariales- Los planes para el desarrollo de nuevas aplicaciones y la revisión de las antiguas, basados en los objetivos de la empresa y la evolución de las plataformas tecnológicas.

Cada una de las arquitecturas, se articula en las vistas siguientes: Vista conceptual: relacionada con la semántica de negocios (usuarios no técnicos) Vista lógica: define los componentes funcionales y su relación en el sistema. Vista física: describe los componentes específicos de una implementación y relaciones

Arquitectura de Microsoft

Page 19: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

19 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Un lenguaje de descripción de la arquitectura (architecture description language-ADL), es el conjunto de convenciones para dibujar los modelos de arquitectura.

Es recomendable usar el UML como un ADL.

El UML 2.0 tiene características específicas que se han añadido y adaptado para adecuarlo para las arquitecturas de modelado así como para generar modelos de análisis y diseño.

El UML 2.0 –Request for proposals (OMG, 2000) tiene como objetivo específico:Permitir el modelado de patrones estructurales, tales como el desarrollo basado en componentes y la especificación de arquitecturas de tiempo de ejecución.

Lenguaje de descripción de la arquitectura (ADL)

Page 20: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

20 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

UML 2.0 - Diagramas

Page 21: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

21 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

En arquitectura de sistemas, el término estilos arquitectónicos se utiliza para esas formas de diseñar sistemas que se adaptan a la moda actual.Cada estilo tiene características que lo convierten en más o menosadecuado para ciertas aplicaciones.

Subsistemas

Un subsistema agrupa elementos del sistema que comparten propiedades Comunes. Un subsistema OO encapsula un conjunto coherente de responsabilidades para garantizar que tiene integridad y que puede mantenerse.

Ventajas de la subdivisión de un SI en subsistemas :

Genera unidades de desarrollo manejables. Posibilita maximizar la reutilización de componentes Alternativa de solución frente al problema de la complejidad Facilita la portabilidad Mejora el servicio de mantenimiento

6.2 Estilos de Arquitectura

Page 22: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

22 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

….. Subsistemas

Hay 2 estilos diferentes de comunicación para que un subsistema proporcione servicios a otros subsistemas: Comunicación cliente-servidor (client-server): el cliente debe conocer la interfaz

del subsistema servidor; siendo la comunicación en una sola dirección. El subsistema servidor no depende del subsistema cliente y no es afectado por cambios en la interfaz del cliente. Comunicación igual a igual (peer-to-peer): cada uno de los subsistemas puede

solicitar servicios del otro (comunicación bidireccional) y puede ser afectado por cambios en la interfaz del otro.

<<cliente>>

Subsistema A

<<servidor>>

Subsistema B

<<peer>>

Subsistema D

<<peer>>

Subsistema C

Estilos de comunicación entre subsistemas

Page 23: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

23 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

CapasSubsistemas en capas Las arquitecturas en capas están entre las estructuras de alto nivel de uso frecuente. Cada capa puede tener uno o más subsistemas. Las capas se diferencian entre si por los distintos niveles de abstracción o por un enfoque distinto de su funcionalidad.

- Arquitectura en capas cerrada: una capa sólo puede utilizar los servicios de la capa inmediata debajo de ella.

Ventajas: . minimiza la dependencia entre las capas y . reduce el impacto de cambio en la interfaz de cualquier capa.

Capa N

Capa N -1

Capa 2

Capa 1

Los mensajes sólo pueden enviarse a la capa inferior adyacente

… Estilos de Arquitectura

Page 24: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

24 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

…. Subsistemas en capas

-Arquitectura en capas abierta: una capa puede utilizar los servicios de

cualquiera que se encuentra debajo de ella. Ventajas: . Genera un código más compacto, al no necesitar código extra para pasar

los mensajes a través de cada capa intermedia. Desventajas: . Rompe el encapsulado de las capas, . Aumenta las dependencias entre capas y , . Mayores dificultades cuando hay que cambiar alguna capa.

Capa 1

Capa 2

Los mensajes pueden enviarse a cualquier capa inferior

Capa N

Capa N -1

Page 25: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

25 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

…..Subsistemas en capas

Ejm. de arquitectura en capas: protocolos de red

Un protocolo de red define la forma en que un programa se ejecuta

en los distintos PCs comunicados entre sí.

• Los protocolos pueden definirse con distintos niveles de

abstracción y cada nivel puede estar distribuido en una capa.

La organización ISO definió el modelo de 7 capas OSI (Open

Systems Interconnection) como un modelo de arquitectura estándar

para protocolos de red.

Ejemplos

Page 26: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

26 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Modelo de 7 capas de OSI (Open Systems Interconnection)

Ejemplos

Page 27: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

27 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Ejemplos

Presentación

Lógica de empresa

Base de datos

Presentación

Lógica de la aplicación

Base de datos

Dominio

Arquitectura de 3 capas Arquitectura de 4 capas

… Estilos de Arquitectura

Page 28: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

28 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Modelo-Vista-Controlador (MVC)

La arquitectura MVC es utilizado por muchos modelos interactivos, por la capacidad de soportar requisitos de usuario que se presentan mediante distintos estilos de interfaz y, por mejorar el mantenimiento y la portabilidad.La misma interfaz está dividida en 2 elementos: la presentación de salida (vista) y el controlador de entrada (controlador)

La arquitectura MVC divide una aplicación en 3 tipos de componentes: Modelo: comprende la funcionalidad principal Vista: presenta la interfaz de usuario. La vista recupera datos del modelo y actualiza sus presentaciones cuando se han cambiado los datos en una de las otras vistas. La vista crea su controlador asociado. Controlador: gestiona las actualizaciones de las vistas.

Y, posee un componente de propagación de las actualizaciones: Mecanismo de propagación: permite al modelo informar a cada vista que

se han cambiado los datos del modelo y, en respuesta, la vista tiene que actualizarse.

… Estilos de Arquitectura

Page 29: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

29 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Modelo

Vista A Vista B

Controlador BControlador A

<<acceso>

<<acceso><<acceso> <<acceso>

<<acceso> <<acceso>

<<propagar>>

<<propagar>>

Estructura general del MVC

El mecanismo de propagación

Modelo-Vista-Controlador (MVC)

Page 30: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

30 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Interacciones entre el Modelo, la Vista y el Controlador (MVC)

Page 31: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

31 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

ARQUITECTURA TECNOLOGICA EN APEC 2008

ALCANCE DEL SERVICIO DE ALOJAMIENTO. Infraestructura de tecnología informática y comunicaciones apropiadas para ofrecer y suministrar los servicios que permitan la instalación, puesta en operación y administración de los siguientes servicios:  Servicios de Data Center

• Servicios de Correo Electrónico• Servidor de Control de Acceso mediante servicio de directorios.• Servidor de Archivos.• Servidor de Páginas Web.• Servidor de Base de datos.• Servidor de aplicaciones.• Capacidad de servidores para las reuniones de los Grupos de Trabajo.

SERVICIOS:1.Un servicio de alojamiento, en un Data Center, proporcionando capacidad de procesamiento de datos para el funcionamiento de APEC 2008. Este servicio incluye la conexión del Data Center con la oficina principal de la CEAN. Así como la conectividad de sus oficinas: Además, debe incluir la provisión de un conjunto de Servidores en los locales de las sedes de las reuniones. 2. Un servicio de Acceso a Internet, cuya salida al backbone de Internet será por el Data Center.

Page 32: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

32 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

ARQUITECTURA TECNOLOGICA EN APEC 2008

Page 33: 1 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software Ing. Sanchez Castillo Eddye Arturo eddiesanchez0710@gmail.com  INGENIERIA

33 EAP INGENIERIA DE SISTEMAS Curso Ingeniería de Software

Fin de la Presentación

GRACIAS

033