06 Disenio de Implementacion
-
Upload
jose-cordova -
Category
Documents
-
view
215 -
download
0
Transcript of 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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
7/25/2019 06 Disenio de Implementacion
http://slidepdf.com/reader/full/06-disenio-de-implementacion 54/62
•
En resumen:
Diagrama de Despliegue
54
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
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
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
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
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
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
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
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