06 Disenio de Implementacion

62
Diseño de Sistemas Clase 6: Diseño de la Implement ación Hugo R. Cordero S.

Transcript of 06 Disenio de Implementacion

Page 1: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 1/62

Diseño de Sistemas

Clase 6:

Diseño de la Implementación

Hugo R. Cordero S.

Page 2: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 2/62

Objetivos

• Comprender el concepto de componentes

• Conocer cómo se realiza el diseño basado en componentes

• Conocer el diseño de implementación a través de los

diagramas de componentes y de despliegue

2

Page 3: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 3/62

Procesos de Desarrollo de Software

ConceptoRequerimientos

  Diseño  Desarrollo/

Construcción

Instalación

del sistema

Integración

y pruebas

Tiempo

Fases del Proyecto

¿Que hacemos aquí?

¿Que hacemos aquí?IMPLEMENTACION

3

Page 4: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 4/62

•   Transformar en código el análisis y diseño realizado en las

actividades previas.

•   Crear la funcionalidad solicitada por el usuario.

•   Realizar las actividades de validación necesarias para

corroborar el correcto funcionamiento del sistema

•   Elaborar la documentación necesaria para que el usuario

pueda instalar y utilizar el sistema.

Papel de la Implementación

4

Page 5: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 5/62

•   Ambiente de desarrollo

•   Código fuente (archivos java, archivos de configuración,

scripts de base de datos, etc.

•   Instaladores

•   Ambiente de pruebas•   Documento de especificación de pruebas

•   Documento de resultado de pruebas (incluye la evidencia de

cada prueba).

  Manual de instalación, de usuario y de programación

Artefactos de la Implementación

5

Page 6: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 6/62

Trabajadores de la Implementación

•   Jefe de proyecto

•   Desarrollador o programador

•   Analista funcional

•   Analista técnico

•   Tester (Equipo de pruebas)•   Documentador

6

Page 7: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 7/62

Reutilización del software•   Idea vieja (reutilización ad hoc)

 –   Cualquier procedimiento que produce o ayuda a producir un

sistema mediante el nuevo uso de algún elemento procedente de

un esfuerzo de desarrollo anterior•   Inicialmente, simple combinación de código almacenados en

una biblioteca

 –   Reutilización del código, sin método

•   Enfoque muy simple

 –   Hoy día, líneas de producto de software:

•   ¿Qué se reutiliza? ¿Cómo?

Componentes

7

Page 8: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 8/62

En resumen•   Los componentes de software son definidos como módulos

de software reutilizables, auto-contenidos, pre-probados,

pre-fabricados que ejecutan funciones específicas y

empaquetan datos y procedimientos•   Es una unidad independiente con interfaces y dependencias

bien definidas, que pueda ser desarrollada y desplegada de

forma independiente

 –

  Principio de Caja Negra.•   Su finalidad es mejorar la reutilización

Componentes

8

Page 9: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 9/62

Características•   Las tres características principales de un componente de

software son:

 –   Aislamiento: Un componente puede ser instalado de forma

independiente en una plataforma. –   Componibilidad: Un componente puede ser compuesto con otros

para formar aplicaciones.

 –  Opacidad: Un componente se maneja siempre de forma opaca,

sin que los diseñadores de aplicaciones que lo manejan ni el

entorno tengan que acceder a sus detalles internos para haceruso de él

Componentes

9

Page 10: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 10/62

Importancia de las Interfaces•   Los servicios que ofrece o requiere un componente se

expresan mediante interfaces

 –   Representan el contrato entre el componente cliente y el

componente servidor•   Concepto base en desarrollo basado en componentes:

Separación entre interfaz e implementación

Componentes

10

Page 11: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 11/62

Puntos de vista•   Se puede definir y usar componentes desde 3 puntos de

vista:

 –  Orientado a Objetos

 –  “Convencional”

 –  Relacionado a procesos

Componentes

11

Page 12: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 12/62

Desde el punto de vista Orientado a Objetos•   Desde este punto de vista, un componente contiene un

conjunto de clases que colaboran entre sí.

•   El diseño de un componente implica añadir a la definición de

clases en el análisis (dominio del problema) informaciónpara su implementación en software

Componentes

12

Page 13: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 13/62

Desde el punto de vista  “convencional”•   Desde este punto de vista, un componente es un elemento

funcional de un programa que incluye lógica de

procesamiento, estructuras de datos internas requeridas

para implementar dicha lógica y una interfaz que permiteque el componente sea invocado y que se le puedan pasar

datos.

•   Aquí puede ser llamado como “módulo”

Componentes

13

Page 14: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 14/62

Roles del componente “convencional”•   Componente de control: Coordina el llamado a otros

componentes del dominio del problema

•   Componente del dominio del problema: implementa una

función completa o parcial que es requerida por el usuario•   Componente de infraestructura: responsable de las

funciones que apoyan el procesamiento requerido en el

dominio del problema

Componentes

14

Page 15: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 15/62

Desde el punto de vista relacionado al proceso•   Reutiliza software

•   Cuando se desarrolla la arquitectura, se escogen

componentes o patrones de diseño de un catálogo, los

cuales fueron creados para ser reutilizados

Componentes

15

Page 16: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 16/62

Ejemplos•   Componente controlador de navegación de páginas

•   Componente receptor de mensajes

•   Componente de impresión

•   Componente de integración con un ERP

•   Componente de seguridad

•   Componente de envío de correos electrónicos

•   Componente conexión con bases de datos

•   Componente control de timeouts

•   Componente de carga de imágenes

•   …

Componentes

16

Page 17: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 17/62

¿Qué es?•   También llamado diseño en el nivel de componentes define

las estructuras de datos, algoritmos, características de la

interfaz y mecanismos de comunicación asignados a cada

componente de software•   El Ingeniero de Software es el encargado de realizar el

diseño a este nivel

•   Para la notación se puede hacer uso de diagramas UML y

formatos complementarios

Diseño basado en Componentes

17

Page 18: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 18/62

Preguntas para la reutilización•   ¿Es posible disponer de componentes comerciales ya

desarrollados (CYD) para implementar el requisito?

•   ¿Se dispone de componentes reutilizables desarrollados

internamente para implementar el requisito?•   ¿Son compatibles las interfaces de los componentes que

están disponibles dentro de la arquitectura del sistema a

construir?

Diseño basado en Componentes

18

Page 19: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 19/62

Dentro del marco del Diseño Arquitectónico

Diseño basado en Componentes

19

Page 20: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 20/62

•   Un componente de software se define como un elemento de

software que realiza un proceso en específico, obteniendo

unos resultados acordes con el proceso realizado.

•   Un componente describe una pieza modular de un sistema

lógico o físico cuyo comportamiento visible externamente

puede describirse de una forma más precisa que su

implementación. El comportamiento se representa como un

conjunto de interfaces.

Diagrama de Componentes

20

Page 21: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 21/62

¿Cuál es la relación entre un componente y una clase?•   Imagine a un componente como la personificación en

software de una clase.

•   La clase representa una abstracción de un conjunto de

atributos y operaciones•   Un componente es generalmente la implementación de más

de una clase

•   Similar a la relación entre una clase y su interfaz, la relación

entre un componente y su interfaz se conoce comorealización

Diagrama de Componentes

21

Page 22: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 22/62

Tipos de componentes•   Según su utilización:

 –   Componentes de distribución, como DLL, ejecutables,

controles, beans, etc.

 –  Componentes para trabajar en el producto, como archivos,elementos de base de datos y de código.

 –  Componentes de ejecución, creados como resultado de un

sistema en ejecución

  Hay estereotipos de componentes ya definidos, como losArtefactos que viene a ser unidades físicas de la

construcción de un sistema.

Diagrama de Componentes

22

Page 23: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 23/62

Diagrama de Componentes

Representación de un componente (UML 1.x)•   Formas de representar componentes con los elementos

que lo componen:

23

Page 24: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 24/62

Diagrama de Componentes

Representación de un componente (UML 1.x)•   Formas de representar las interfaces del componente:

24

Page 25: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 25/62

Diagrama de Componentes

Representación de un componente (UML 1.x)•   Dependencia de un componente de la interfaz de otro

componente:

•   Vemos aquí las relaciones de Realización y Dependencia

25

Page 26: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 26/62

Diagrama de Componentes

•  Ejemplo del diagrama de

componentes de un juego

de dados:

 –  Versión 1.X

 –

 Agrupados loscomponentes dentro de

paquetes

26

Page 27: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 27/62

Diagrama de Componentes

Representación de un componente (UML 2.x)•   Representaciones más recientes de componentes:

27

Page 28: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 28/62

Diagrama de Componentes

Representación de un componente (UML 2.x)•   Componente con la lista de interfaces provistas y

requeridas:

28

Page 29: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 29/62

Diagrama de Componentes

Representación de un componente (UML 2.x)•   Formas de representación los componentes y su relación

con otros componentes:

  El component1 usa la interfaz del component2

29

Page 30: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 30/62

Representación de un componente: Interfaces

•   Las   interfaces   de un componente describen la

funcionalidad que soporta. Puede ser interfacesproporcionadas o interfaces requeridas.

•   Las primeras son aquellas que el componente ofrece a

otros componentes. Mientras que las segundas son

aquellas que necesita utilizar de otros componentes.

Diagrama de Componentes

30

Page 31: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 31/62

Representación de un componente: Puertos

•   Para mayor precisión en la especificación e interconexión,

se pueden ubicar las interfaces en  puertos. Cada puertoagrupa a un conjunto de interfaces proporcionadas y

requeridas.

•   Los mensajes hacia un componente, se dirigen hacia los

puertos específicos.

Diagrama de Componentes

31

Page 32: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 32/62

Diagrama de Componentes

  Representación de un componente complejo –   Se pueden detallar las clases u otros elementos que lo

conforman

 –   Es también llamada vista de caja blanca

32

Page 33: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 33/62

Diagrama de Componentes

  Representación de un puerto complejo –  Aquel que tiene más de una interface. Las interfaces pueden

ser de diferente tipo

33

Page 34: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 34/62

Diagrama de Componentes

  Enlace entre dos componentes mediante conectores –   Son conexiones de implementación entre componentes,

ejemplo con puertos:

34

Page 35: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 35/62

Diagrama de Componentes

  Enlace entre dos componentes mediante conectores –  La conexión puede ser representado también por una línea de

realización :

35

Page 36: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 36/62

Diagrama de Componentes

  Representación de un componente compuesto –   Conformado por subcomponentes comunicados por

conectores de ensamblado

 –   Se comunica mediante puertos provistos por conectores de

delegación

36

Page 37: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 37/62

Diagrama de Componentes

  Ejemplo de un artefacto subsistema   “Web Store”   conconectores y puertos:

37

Page 38: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 38/62

Diagrama de Componentes

  Los componentes como artefactos:

38

Page 39: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 39/62

Diagrama de Componentes

  Notación para componentes:

39

Page 40: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 40/62

Diagrama de Componentes

  Notación para componentes:

40

Page 41: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 41/62

Diagrama de Componentes

  Notación para las relaciones entre componentes:

41

Page 42: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 42/62

  Representa el despliegue de artefactos en tiempo deejecución sobre nodos

•   Un artefacto es una unidad física de implementación,

como un archivo. Puede ser una manifestación

(implementación) de uno o más componentes•   Un nodo es un recurso de tiempo de ejecución, como una

computadora

•   Esta vista permite valorar las consecuencias de la

distribución y de la asignación de recursos•   También llamado diagrama de distribución

Diagrama de Despliegue

42

Page 43: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 43/62

  El elemento principal del diagrama son los Nodos•   Es un objeto físico en tiempo de ejecución que representa

un recurso computacional que generalmente tiene por lo

menos capacidad de proceso y memoria

•  Los nodos representan un recurso físico:

 –  Computadoras

 –   Impresoras

 –   Servidores

 –  Dispositivos

•   Los nodos pueden ser interconectados mediante líneas

para describir una estructura de red.

Diagrama de Despliegue

43

Page 44: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 44/62

Representación de Nodos•  Desde simplificadas hasta compuesta por los artefactos

que contiene:

Diagrama de Despliegue

44

Page 45: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 45/62

  Representación deconexiones entre nodos

•   Puede nombrarse

específicamente el

medio de comunicaciónutilizado

Diagrama de Despliegue

45

Page 46: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 46/62

  Evolución al diagrama de despliegue desde el diagrama decomponentes

Diagrama de Despliegue

46

Page 47: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 47/62

  Ejemplo de diagrama de despliegue con componentes: –   Se tiene nombrado a los nodos

 –   Se ha identificado el medio de comunicación entre nodos

Diagrama de Despliegue

47

Page 48: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 48/62

  Diagrama de despliegue de un servidor de aplicaciones yde base de datos:

 –   Dentro del servidor de aplicaciones se tiene un servidor Java EE

 –   Nodos nombrados e instanciados

Diagrama de Despliegue

48

Page 49: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 49/62

•   Entidades físicas (o software) capaces de ejecutarartefactos:

Diagrama de Despliegue

49

Page 50: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 50/62

•  Un artefacto manifiesta (o implementa) un componente:

•   Diagrama de despliegue con artefactos que son

desplegados dentro:

Diagrama de Despliegue

50

Page 51: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 51/62

  Diagrama de despliegue con componentes (2):

Diagrama de Despliegue

51

Page 52: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 52/62

  Diagrama de despliegue con componentes (3):

Diagrama de Despliegue

52

Page 53: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 53/62

Diagrama de Despliegue

•   Otros diagramas de despliegue, que escapan de la notación

UML:

53

Page 54: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 54/62

  En resumen:

Diagrama de Despliegue

54

Page 55: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 55/62

Diagrama de Despliegue

•   En resumen, los principales elementos:

55

Page 56: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 56/62

  Notación para eldiagrama de

despliegue:

Diagrama de Despliegue

56

Page 57: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 57/62

  Notación para eldiagrama de

despliegue:

Diagrama de Despliegue

57

Page 58: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 58/62

  Notación para eldiagrama de

despliegue:

Diagrama de Despliegue

58

Page 59: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 59/62

  Desarrolle los diagramas de componentes y de desplieguedel sistema de pedido

•   Utilice para cada caso la notación UML y luego una notación

propietaria

Práctica: Componentes y Despliegue

59

Page 60: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 60/62

•   Los componentes de software son definidos como módulos de

software reutilizables, auto-contenidos, pre-probados, pre-fabricados que ejecutan funciones específicas y empaquetan datos

y procedimientos

•   El diseño basado en componentes, también llamado diseño en el

nivel de componentes define las estructuras de datos, algoritmos,

características de la interfaz y mecanismos de comunicación

asignados a cada componente de software

•   Un diagrama de componentes muestra los componentes de un

sistema, es decir las unidades de software con las que se construye

una aplicación, así como la dependencias entre componentes•   El diagrama de despliegue representa la distribución que tendrán

los diferentes elementos del sistema dentro de los recursos físicos

que lo conforman

Resumen

60

Page 61: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 61/62

¿Preguntas?

•   ¿Cómo representa la implementación de un sistema?

61

Page 62: 06 Disenio de Implementacion

7/25/2019 06 Disenio de Implementacion

http://slidepdf.com/reader/full/06-disenio-de-implementacion 62/62

Bibliografía

•   El lenguaje unificado de modelado Manual de referencia, 2da.

Edición, Booch, Jacobson, Rumbaugh

 –   Capítulos 7, 8 y 9

•   El Proceso unificado de desarrollo de software, 1ra. Edición,

Booch, Jacobson, Rumbaugh

 –  Capítulos 9: Diseño

•   Ingeniería del Software, 9na. Edición, Ian Sommerville

 –   Capítulo 7: Diseño e implementación

•   Ingeniería de Software, 1ra. edición, Guillermo Pantaleo y Ludmila

Rinaudo

 –   Capítulo 14, Diseño de software