unt ingenieria industrial - ingsw unt - home · 2020. 2. 24. · discoduro ram unidadcd...
TRANSCRIPT
INGENIERIA DE SOFTWARE
Ing. Francisco Rodríguez Novoa
UNT – INGENIERIA INDUSTRIAL
Ing. Francisco Rodríguez
Tema 7
Modelo de Análisis y Diseño
3
Rational Unified Process (RUP)
4
Análisis y Diseño. Objetivos
• Transformar los requerimientos en las especificaciones
del análisis del sistema.
• Definir la arquitectura del sistema.
• Transformar las especificaciones del análisis en las
especificaciones del diseño del sistema.
• Adaptar el diseño a los requerimientos no funcionales.
5
Análisis y Diseño. ObjetivosA
ná
lisis
y D
ise
ño
Análisis
Diseño
• Transformar los requerimientos en las especificaciones
del análisis del sistema.
• Definir la arquitectura del sistema.
• Transformar las especificaciones del análisis en lasespecificaciones del diseño del sistema.
• Adaptar el diseño a los requerimientos no funcionales.
6
Análisis y Diseño. Workflow
24/02/2020 7
Análisis y Diseño. Artefactos
8
Análisis y Diseño. Actividades
1. Construcción del Modelo de Análisis.
2. Detallar los casos de uso del sistema.
3. Refinar los casos de uso del sistema.
4. Construcción del Modelo de Diseño.
5. Construcción del Modelo de Datos.
6. Construcción del Modelo de Almacenamiento.
9
1. Construcción del Modelo de Análisis
1. Identificar los conceptos de información del sistema.
– Se identifican los conceptos de información que maneja
cada caso de uso del sistema.
– Los conceptos se convertirán en un futuro en las clases
entidad del sistema para manejar los datos.
Cliente
10
1. Construcción del Modelo de Análisis
2. Identificar las asociaciones entre los conceptos.
– Se incluyen las asociaciones simples entre cada
concepto.
– Se representa a través de una línea continua entre dos
conceptos.
– Por cada asociación se especifica.
• Nombre.
• Navegabilidad.
• Multiplicidad.
11
1. Construcción del Modelo de Análisis
3. Construir el Diagrama del Modelo Conceptual.
– Se colocan los conceptos identificados.
– Se adicionan las asociaciones encontradas.
realiza
0..n 1reside
1..n
1
está compuesta
está asociada
Factura Cliente Pais
DetalleFactura Producto
1..n 1
0..n 1
12
1. Construcción del Modelo de Análisis
4. Identificar los atributos de las clases.
– Por cada atributo debe definirse:
• Nombre.
• Tipo de dato.
• Valor inicial.
• Visibilidad.
– Sintaxis.
• visibilidad nombre: tipodato = valorInicial
13
1. Construcción del Modelo de Análisis
4. Identificar los atributos de las clases.
– Visibilidad.
• Privado.
– El atributo es visible solo para el interior de la clase.
– Solo sus métodos pueden accederlo.
• Protegido.
– El atributo es visible para el interior y las subclases respectivas.
• Público.
– El atributo es visible para el interior y exterior de la clase.
• Implementación.
– El atributo es visible solo para el interior de la clase.
14
1. Construcción del Modelo de Análisis
4. Identificar los atributos de las clases.
15
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.– Una asociación entre dos clases significa:
• Algún vínculo o conexión significativa entre dos clases.
• Los objetos de ambas necesitan comunicarse durante la
ejecución del caso de uso del sistema.
– Se identifica una asociación unidireccional entre cada clase
de análisis del sistema.
– Se representa a través de una línea continua
Cliente Orden de Compra
0..n1
emite
16
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Los elementos que definen la asociación son:
• Nombre.
• Multiplicidad.
• Navegabilidad.
• Tipo.
Cliente Orden de Compra
0..n1
emite
24/02/2020 17
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Tipos de multiplicidad o cardinalidad.
• 1
– Un objeto de una clase se asocia a únicamente a un objeto de la
otra clase.
• 1..n
– Un objeto de una clase se asocia a uno como mínimo o más de un
objeto ilimitadamente de la otra clase.
• 1..x
– Un objeto de una clase se asocia a uno como mínimo o hasta un
máximo de x objetos de la otra clase.
• x
– Un objeto de una clase se asocia a x exactos objetos de la otra
clase.
24/02/2020 18
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Navegabilidad
• Define el sentido u orientación de la comunicación o
intercambio entre las clases.
• Las asociaciones son unidireccionales o bidireccionales.
– La mayoría de las asociaciones entre dos clases son
bidireccionales.
• Define el sentido u orientación de la comunicación o
intercambio entre las clases.
• Se representa a través de una línea continua con una
flecha en el extremo que indique la dirección deseada
solo cuando es unidireccional.
24/02/2020 19
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Navegabilidad
• ¿Qué significa en este ejemplo?
• Significa que:
– La orden de compra conoce a qué cliente pertenece y
viceversa.
– Para acceder a una orden de compra hay que hacerlo a
través del cliente y viceversa.
Cliente Orden de Compra
0..n1
emite
24/02/2020 20
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Tipo.
• Define la manera en que ocurre el intercambio entre las
clases que intervienen en la asociación.
• Existen 5 tipos de asociaciones.
– Asociación simple.
» Auto asociación.
– Asociación de clases.
– Generalización.
– Agregación (Agregación por Referencia).
» Auto agregación.
– Composición (Agregación por Valor).
24/02/2020 21
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Asociación Simple.
• Representa una relación o conexión semántica simple entre
dos clases.
• Se representa a través de una flecha a la línea continua de la
asociación en el extremo que indique la dirección solo si la
navegabilidad es unidireccional.
Cliente Orden de Compra
0..n1
emite
22
1. Construcción del Modelo de Análisis
• Asociación Simple.
Factura
noFactura : Integerfecha : Date = DATE()igv : Double = 18.00descuento : Currency = 0
Producto
codProducto : Integerdescripcion : Stringum : Stringpu : Currency = 0.00presentacion : String
DetalleFactura
noItem : Integercantidad : Integer = 0descuento : Double
Pais
codPais : IntegerDescripcion : String
1..n1..n
realiza
1 0..n 1
reside
1..n
1
rstá compuesta
10..n
rstá asociada
Cliente
codCliente : Integernombre : Stringdni : StringrazonSocial : Stringdireccion : Stringtelefono : Long
23
1. Construcción del Modelo de Análisis
• Asociación de clases.
Libro
isbn : Stringftitulo :Stringfecha : Dateprecio : Currency
Autor
dni : Integernombre :Stringsexo : Charemail : string
Libro-Autor
%participacion : Doubletema :String
1..n
escribe
0..n
24
1. Construcción del Modelo de Análisis
• Generalización.
Factura
noFactura : Integerfecha : Date = DATE()
igv : Double = 18.00
descuento : Currency = 0
Cliente
codCliente : Integerdireccion : 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 : Stringruc : String
1..n1..n
realiza
1 0..n 1
reside
1..n
1
está compuesta
10..n
está asociada
24/02/2020 25
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Agregación (Agregación por Referencia).
• Es una relación que implica en su significado que una clase“contiene a” otras clases independientes.
• Es una asociación de “todo / parte”.
• Cuando se destruye la clase agregada no tiene por quédestruirse la clase parte.
• El tiempo de vida de la clase agregada no define el tiempo devida del resto de las clases.
• Se representa a través de un rombo transparente en el extremode la clase agregada.
24/02/2020 26
1. Construcción del Modelo de Análisis
• Agregación (Agregación por Referencia).
Computadora
Monitor CPU Teclado RatónParlante
DiscoDuro RAM UnidadCD TarjetaVideo TarjetaSonido Botón Bola
24/02/2020 27
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Agregación (Auto Agregación).
• Representa una relación o conexión semántica de agregación
(todo/parte).
• Significa que un objeto de una clase se forma de otros
objetos de la misma clase.
Producto 0..n
1 está formado por
24/02/2020 28
1. Construcción del Modelo de Análisis
5. Refinar el Modelo Conceptual.
– Composición (Agregación por Valor).
• Es una agregación fuerte.
• Es una relación que implica en su significado que una clase “contiene a” otras clases independientes.
• La destrucción de la clase compuesta implica la
destrucción de la clase parte.
• Se representa a través de un rombo relleno en el extremo
de la clase compuesta.
24/02/2020 29
1. Construcción del Modelo de
Análisis• Composición (Agregación por Valor).
Persona
Brazo Pierna Cabeza Cuerpo
Ojo Boca Nariz Oreja Pelo
1
2 2 1 1
1
2 1 1 2 0..n
24/02/2020 30
1. Construcción del Modelo de Análisis
• Composición (Agregación por Valor).
Persona
Brazo Pierna Cabeza Cuerpo
Ojo Boca Nariz Oreja Pelo
1
2 2 1 1
1
2 1 1 2 0..n
24/02/2020 31
1. Construcción del Modelo de Análisis
• Agregación y composición solo deben ser usadas en lugar de una asociación simple cuando.
– Existe una relación de todo/parte entre las clases.
– Una clase está formada por otras.
– La clase agregada o compuesta está incompleta fuera delcontexto de las partes.
Agregación
Composición
Asociación
simpleVS
24/02/2020 32
1. Construcción del Modelo de Análisis
• Composición (Agregación por Valor).
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
33
6. Identificar las clases de análisis del sistema. – Se definen tres tipos (estereotipos) de clases.
• Clase entidad (entity class).
• Clase interfase o frontera (boundary class).
• Clase controladora (control class).
1. Construcción del Modelo de Análisis
Cliente
CI Clientes
CC Cliente
34
1. Construcción del Modelo de Análisis
6. Identificar las clases de análisis del sistema.– Clase interfase o frontera (boundary class)
• Es usada para modelar la interacción entre el actor y el sistema.
• Funciona de diálogo entre el actor y el sistema.
• Las interacción con el actor se traduce en eventos y cambios en la presentación.
• Describen la lógica de presentación del sistema.
• Ejemplos:
– Formulario.
– Reporte.
– Interfaz con dispositivo.
– Sensor.
CI ListaClientes
35
1. Construcción del Modelo de Análisis
6. Identificar las clases de análisis del sistema.
– Clase controladora. (control class)
• Modelar la coordinación y el comportamiento de un caso de
uso del sistema.
• Representa la dinámica del sistema en un caso de uso.
• Describe la lógica del negocio.
• Es la responsable de “ejecutar” el caso de uso del sistema.
– Cuando comienza la ejecución de un caso
de uso del sistema se crea un objeto
(una instancia) de una clase controladora.
– Cuando termina la ejecución de un caso
de uso del sistema el objeto de la clase
controladora “muere”. CC ActualizarCliente
24/02/2020 36
1. Construcción del Modelo de Análisis
6. Identificar las clases de análisis del sistema.
– Clase controladora. (control class)
• Encapsula la lógica de ejecución que no tiene que ve con
el dialogo con los actores o el almacenamiento de la
información.
• Coordina las acciones entre:
– La lógica de interfase (clases interfase).
– La lógica de datos (clases entidad).
CC ActualizarCliente
37
1. Construcción del Modelo de Análisis
6. Identificar las clases de análisis del sistema.
– Clase entidad (entity class).
• Es usada para modelar la información (datos y
comportamiento asociado) a almacenar por el
sistema.
• Representa conceptos claves en el sistema.
• Usualmente son persistentes durante todo el
sistema.
• Los objetos de las clases entidad pueden ser usados
por más de un caso de uso.
• La fuente fundamental para identificar las
clases entidad son los conceptos
modelados en el Modelo Conceptual.
Cliente
38
1. Construcción del Modelo de Análisis
• Colaboración entre clases de análisis en un caso de uso.
VendedorCI ListaClientes CC Clientes Cliente
Mantener clientes
39
CI ListaClientes CC ActualizarClientes ClienteVendedor
1. Construcción del Modelo de Análisis
• Capas de la arquitectura del sistema.
Capa de datos
Contiene:
• Atributos
información.
• Operaciones para
manipular atributos
Capa de presentación
Contiene:
• Operaciones para
captar y devolver
información del/al
actor.
Capa de negocio
Contiene:
• Operaciones para
realizar la lógica
del negocio
40
1. Construcción del Modelo de Análisis
7. Construir el Diagrama de Clases de Análisis.
– Es una herramienta de UML.
– Muestra la estructura estática del sistema.
– Se colocan todas las clases identificadas junto a sus
atributos y asociaciones.
– En diagramas muy complejos se aconseja dividirlo en
subpartes para hacer más fácil su comprensión.
• Construirá un Diagrama de Clases de Análisis por cada
paquete identificado.
• Construirá un Diagrama de Clases de Análisis por caso de
uso, si la división anterior hace muy compleja la
comprensión del Diagrama.
41
1. Construcción del Modelo de Análisis
Anfitrion
CI Mantener artista
CI Mantener obra
CC Mantener artista Artista
dni : Long
nombre : Stringdireccion : String
sexo : Boolean
telefonos : String
eMail : String
Solicitud
codSolicitud : Integer
fecha : Date
hora : Double
1
1..n
1
1..nsolicita
CC Mantener obra
CI Mantener solicitud servicio
CC Elaborar Documento
de Rechazo de Pedido
CC Mantener
solicitud servicioTecnica
codTencica : Integer
descripcion : String
Obra
codObra : Integer
titulo : String
fecha : Date
dimension : Double
1
1..n
1
1..ncontiene
0..n
1
0..n
1
es realizada en
Obra aprobada
precio : Currency
ganancia : Double
Obra rechazada
motivo : String
24/02/2020 42
2. Detallar los casos de uso del sistema
2. Detallar el flujo de ejecución del caso de uso del
sistema.
– Se utiliza la información recolectada en el paso anterior
y se describe en los artefactos siguientes.
• Documento de Especificación del Caso de Uso del
sistema.
• Diagrama de Secuencias.
• Diagrama de Colaboración.
– Seguir la prioridad de casos de uso del sistemaespecificada en la etapa de Requerimientos.
• Clasificación de los casos de uso del sistema.
• Ciclos o iteraciones de desarrollo.
24/02/2020 43
2. Detallar los casos de uso del sistema
4. Realizar los Diagramas de Interacción de los casos de 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]
24/02/2020 44
2. Detallar los casos de uso del sistema
4. 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
45
2. Detallar los casos de uso del sistema
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.
46
2. Detallar los casos de uso del sistema
• ¿Manejan la misma información los Diagramas de
Secuencia y los Diagrama de Colaboración?
– Existe equivalencia semántica entre ambos diagramas.
– Ambos muestran el mismo tipo de información de dos
maneras diferentes.
– Los Diagramas de Interacción se construyen por cada
caso de uso del sistema.
47
2. Detallar los casos de uso del sistema
• Ejemplo de Diagrama de Colaboración.
48
2. Detallar los casos de uso del sistema
• Ejemplo de Diagrama de Secuencia.
24/02/2020 49
2. Detallar los casos de uso del sistema
Diagrama de
Colaboración
Describe el
intercambio de
mensajes organizado
por los objetos
participantes.
• Muestra la interacción de
mensajes entre los objetos que
participan en un caso de uso.
• Ordenados por los objetos
participantes.
• 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.
50
• Está formado por.
• Objetos.
• Líneas de vida.
• Barra de tiempo.
• Mensaje.
2. Detallar los casos de uso del sistema
Diagrama de
Colaboración
Describe el intercambio de
mensajes organizado por
los objetos participantes.
51
2. Detallar los casos de uso del sistema
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.
52
• Está formado por.
• Objetos.
• Líneas de vida.
• Barra de tiempo.
• Mensaje.
2. Detallar los casos de uso del sistema
Diagrama de
Secuencia
Describe el intercambio
de mensajes ordenado en
el tiempo.
53
2. Detallar los casos de uso del sistema
A1:Clase1
Mensaje()
B1:Clase2
Objeto
Barra de
tiempo
Mensaje
Línea de
vida
54
4. Construcción del Modelo de Diseño
1. Definir la capa de persistencia.
– Constituye una subcapa dentro de la capa de datos.
– Identificar la clase MultiObjeto o Maestro.
• Administrar transacciones sobre los objetos.
• Asume las responsabilidades sobre un grupo de
objetos.
• Deriva las responsabilidades sobre un solo objeto.
• Controlar el acceso concurrente a los datos.
MO Cliente
55
4. Construcción del Modelo de Diseño
2. Definir la visibilidad de las clases.
– La visibilidad se define con relación al módulo o
paquete al que pertenece la clase.
• Pública.
– La clase puede ser referenciada fuera del módulo o
paquete a que pertenece.
• Privada.
– La clase puede ser referenciada solo por las clases del
paquete a que pertenece.
56
4. Construcción del Modelo de Diseño
3. Identificar las operaciones de las clases.
– Representan las acciones que desarrollará cada objeto
de la clase.
– Son responsabilidades que poseen los objetos de la
clase.
– Forma la parte dinámica de la clase.
– La forma en que cada objeto realiza las operaciones
define su comportamiento.
57
4. Construcción del Modelo de Diseño
3. Identificar las operaciones de las clases.
– Los mensajes en el Diagrama de secuencia ayudan a
identificar las operaciones de las clases.
– De un mensaje entre dos clases se obtiene una
operación para la clase destino.
: Objeto1
Variable := operacion( par1, par2)
: Objeto2
58
4. Construcción del Modelo de Diseño
3. Identificar las operaciones de las clases.
– Por cada operación debe definirse:
• Nombre.
• Valor de retorno.
• Parámetros.
• Visibilidad
– Sintaxis.
• visibilidad nombre (parámetros): valor de retorno.
59
Conclusiones
• La etapa de Análisis y Diseño proporciona las
actividades necesarias para definir la
arquitectura del sistema.
• La especificación expandida de los casos de
uso en el Diseño brindan una visión más
completa y detallada de los elementos de la
arquitectura del sistema.
• Los diagramas de interacción son uno
de los artefactos más importantes de la
fase de Diseño.
FIN