UNT INGENIERIA INDUSTRIAL - INGSW...
Transcript of UNT INGENIERIA INDUSTRIAL - INGSW...
INGENIERIA DE SOFTWARE
Ing. Francisco Rodríguez Novoa
UNT – INGENIERIA INDUSTRIAL
Ing. Francisco Rodríguez
Tema 8
Modelo de Diseño
3
Rational Unified Process (RUP)
AGENDA
• Diseño
• Diseño Orientado a Objetos
• Artefactos de Diseño
• Trabajadores
• Actividades del Diseño Orientado a Objetos
VISION GENERAL
Diseño – Diagramas UML
Flujo de trabajo del DOO
• El objetivo del diseño es entender la solución refinando
el modelo de análisis con la intención de desarrollar un
modelo de diseño que permita una transición sin
problemas a la fase de construcción. En el diseño, nos
adaptamos al entorno de implementación y despliegue.
VISION GENERAL
Acercar el modelo de análisis al modelo de implementación
“Los milagros más comunes de la ingeniería del software son las
transiciones desde el análisis hasta el diseño y desde el diseño al código”
(Richard Due).
Identificar requisitos no funcionales y restricciones en relación a:
lenguajes de programación, reutilización de componentes, sistemas
operativos, tecnologías de: distribución, concurrencia, bases de datos,
interfaces de usuario, gestión de transacciones, etc.
Descomponer el modelo de análisis en subsistemas que
puedan desarrollarse en paralelo. Definir la interfaz de
cada subsistema.
Derivar una representación arquitectónica del sistema
Actividades del Diseño
Actividades del Análisis y diseño
Artefactos del Diseño
Modelo de Diseño.
Elementos del modelo de diseño: capas, subsistemas con
clases de diseño (como servlets, beans y otras) e interfaces,
librerías con clases utilitarias, y realizaciones de diseño de
casos de uso.
Diagramas de realizaciones de diseño de casos de uso:
diagrama de clases y diagramas de secuencia.
Diagrama de componentes, cuyos elementos son los
componentes de la aplicación.
Modelo de Despliegue.
Diagrama de despliegue, cuyos elementos son artefactos y
nodos
Artefactos del Diseño
Artefactos del Diseño
ARQUITECTO
MODELO DE
DISEÑO
MODELO DE
DESARROLLO
DESCRIPCION
DE LA
ARQUITECTURA
INGENIERO DE
CASOS DE USO
REALIZACION DE
CASOS DE USO - ANALISIS
INGENIERO DE
COMPONENTES
SUBSISTEMA
DE DISEÑO
INTERFAZCLASES
DE DISEÑO
Responsable de
Responsable de
Responsable de
ARTEFACTOS Y TRABAJADORES
Arquitecto
ARQUITECTO
MODELO DE
DISEÑO MODELO DE
DESPLIEGUE
DESCRIPCION
DE LA
ARQUITECTURA
RESPONSABLE DE
VISTA DE LA ARQUITECTURA
Ingeniero de Casos de Uso
Realización de caso
de Uso - diseño
INGENIERO DE
CASOS DE USO
RESPONSABLE DE
Ingeniero de Componentes
INGENIERO DE
COMPONENTES
Clase de Diseño
SUBSISTEMA
DE DISEÑO
Interfaz
RESPONSABLE DE
Workers - Diseño
Arquitecto: responsable de la integridad del modelo de
Análisis y de crear una vista arquitectónica que permita
avanzar en el desarrollo.
Ingeniero de Casos de Uso: responsable de la integridad de
las realizaciones de casos de uso.
Ingeniero de Componentes: responsable de la integridad de
clases de análisis y sus relaciones, y la integridad de paquetes
de análisis
21
Realizar los Diagramas de Interacción de los casosde uso del sistema.
Mantener cliente
Especificación del Caso de Uso del NegocioSolicitar Servicio
1.Actores1.1Artista
2.PropósitoSolicitar los servicios de la galería para realizar una exposición de arte.3.Breve DescripciónEl caso de uso comienza cuando el Artista se dirige a la galería para solicitar los servicios para una exposición de arte. Se entrevista con el Anfitrión quien le pide los datos necesarios y llena la solicitud de servicio de la galería. El caso de uso termina cuando el Artista recibe una copia de la Solicitud de Servicio o del Documento de Rechazo de Pedido.4.Flujo Básico de EventosAcción del Actor Respuesta del Proceso del Negocio1.El Artista solicita el servicio de para una exposición2.El Anfitrión solicita los datos personales del Artista3.El Artista entrega sus datos personales al Anfitrión4.El Anfitrión busca si los datos del Artista están registrados previamente en la galería5.El Anfitrión solicita información de las obras de arte al Artista.6.El Artista entrega la información de las obras al Anfitrión7.El Anfitrión registra la información de las obras de arte.8.El Anfitrión busca la información sobre las técnicas que maneja la galería en el sistema LogiSis9.El sistema LogiSis entrega la información sobre las técnicas que maneja la galería.10.El Anfitrión recibe la información sobre las técnicas y determina si la galería maneja las técnicas de las obras de arte.11.El Anfitrión llena la solicitud de servicio.12.El Anfitrión archiva la Solicitud de Servicio y entrega una copia al Artista13.El artista recibe la copia de la Solicitud de Servicio
: Profesor: GestorTutorias asignatura :
TutoriaAsignatura
nuevoPeriodoTutoria :
Periodo
setAsignaturaEnTutoria( )
setEnTutoria( )
enTutoria := estaEnTutoria( )
[enTutoria]
create( )
setInicioPerido( )
setPeridoActual(PeriodoTutoria)
: Profesor
: GestorTutorias
asignatura :
TutoriaAsignatura
nuevoPeriodoTutoria
: Periodo
1: setAsignaturaEnTutoria( )
3: enTutoria := estaEnTutoria( )
5: create( )6: setInicioPerido( )
7: setPeridoActual(PeriodoTutoria)
2: setEnTutoria( )
4: [enTutoria]
22
Realizar los Diagramas de Interacción de los casos de uso del sistema.
– Los Diagramas de Interacción describen la interacción
o intercambio de mensajes entre los objetos que
participan en cada caso de uso.
– Existen dos tipos de Diagramas de Interacción.
Diagrama de
Secuencia
Diagrama de
Colaboración
23
Diagrama de
Secuencia
Diagrama de
Colaboración
Describe el
intercambio de
mensajes ordenado
en el tiempo.
Describe el
intercambio de
mensajes
organizado por los
objetos
participantes.
24
• Ejemplo de Diagrama de Secuencia.
: Profesor : GestorTutorias asignatura :
TutoriaAsignatura
nuevoPeriodoTutoria :
Periodo
setAsignaturaEnTutoria( )
setEnTutoria( )
enTutoria := estaEnTutoria( )
[enTutoria]
create( )
setInicioPerido( )
setPeridoActual(PeriodoTutoria)
25
Diagrama de
Secuencia
Describe el
intercambio de
mensajes ordenado
en el tiempo.
• Muestra la interacción de
mensajes entre los objetos que
participan en un caso de uso.
• Ordenados según la secuencia de
ocurrencia en el tiempo.
• Vista gráfica de la mecánica de
interacción de los objetos a través
del intercambio de mensajes de las
clases a que pertenecen en un
determinado escenario.
23/04/2017 26
• Está formado por.
• Objetos.
• Líneas de vida.
• Barra de tiempo.
• Mensaje.
Diagrama de
Secuencia
Describe el
intercambio de
mensajes ordenado
en el tiempo.
27
A1:Clase1
Mensaje()
B1:Clase2
Objeto
Barra de
tiempo
Mensaje
Línea de
vida
28
• Objeto.
– Se muestra en la parte superior sobre la
línea punteada vertical (línea de vida).
– Representa a los objetos que participan
en el caso de uso.
– Se coloca una columna por cada clase
que participa en el caso de uso.
Clase1
29
• Línea de vida.
– Representa la vida del objeto
durante la interacción.
– Da idea del tiempo de vida de los
objetos de la clase en el caso de
uso.
– El tiempo se lee de arriba hacia
abajo.
– Se modela utilizando una línea
discontinua que se desplaza hacia
abajo.
Clase1
23/04/2017 30
• Barra de tiempo.– Representa el conjunto de mensajes que
mantienen relación consecutiva.
– Se modela utilizando una barra blanca
encima de la línea de vida y la longitud
de la barra se interpreta como la
duración de la secuencia.
Clase1
31
• Mensaje.– Se modela utilizando una línea
continua con punta de flecha entre las líneas de vida de los objetos de las clase.
– Encima se coloca el nombre del mensaje.
– El nombre significa el propósito de la operación.
A1:Clase1
Mensaje()
B1:Clase2
Diseño de las clases
• Identificar las responsabilidades de las clases de diseño
(papeles en los casos de uso)
– Identificar:
– Operaciones
– Atributos
– relaciones en las que participa
– estados (diagramas de estados)
– métodos que soportan sus operaciones
– Requisitos nuevos…
Diseño de las clases
• Identificar operaciones
En el lenguaje de implementación
Mirar responsabilidades que tiene en los casos de uso
• Identificar atributos
Describirlos en el lenguaje de programación
Considerar los atributos de las clases de análisis de las que
se derivan
Diseño de las clases
Identificar asociaciones y agregaciones
• Las interacciones en los diagramas de secuencia precisan de
asociaciones entre las clases que interactúan.
• Minimizar el número de relaciones entre clases (disminuir el
acoplamiento).
• Refinar multiplicidad, papeles, etc.
• Refinar la navegabilidad (dirección) de las asociaciones en base
a los diagramas de secuencia.
• Identificar generalizaciones-especializaciones
Diseño de las clases
Describir métodos
• Algoritmos para implementar alguna operación (lenguaje
natural).
• Esqueletos de métodos generado por la herramienta.
• En general, esto se suele hacer en implementación.
Describir estados
• Algunos objetos reaccionan en función de su estado actual.
Utilizar diagramas de transición de estados
Factura
noFactura : Integer
fecha : Date = DATE()
igv : Double = 18.00
descuento : Currency = 0
Cliente
codCliente : Integer
direccion : String
telefono : Long
Producto
codProducto : Integer
descripcion : String
um : String
pu : Currency = 0.00
presentacion : String
DetalleFactura
noItem : Integer
cantidad : Integer = 0
descuento : Double
Pais
codPais : Integer
Descripcion : String
PersonaNatural
nombre : String
dni : String
PersonaJuridica
razonSocial : String
ruc : String
1..n1..n
realiza
1 0..n 1
reside
1..n
1
está compuesta
10..n
está asociada
DIAGRAMA DE CLASES
39
Importancia del diseño
Porque no se va directo a la implementación?
• Modelo de análisis no es suficientemente formal así nosotros
necesitamos para:
- Refinar el análisis de clases
- Determinar operaciones
- Determinar como las clases deben de comunicarse
• El sistema debe estar adaptado a la implementación del entorno.
• Nosotros queremos validar los resultados del análisis
Cuán bien el modelo de análisis y el modelo de
requerimientos dsecriben el sistema?
FIN