SlideShare una empresa de Scribd logo
1 de 83
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 1
13/05/2021
g q
Análisis y especificación de
requerimientos
Unidad 3
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo
para uso de los cursos de Ingeniería de Requerimientos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 2
13/05/2021
g
g q
q
Objetivo general de la Unidad 3
Especificar las características operativas del
software sobre los requerimientos básicos
establecidos durante las tareas de
concepción, indagación y negociación.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 3
13/05/2021
g
g q
q
Contenido
• Importancia
• Modelos de análisis
• Casos de uso
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 4
13/05/2021
g
g q
q
Proceso de Requisitos
Artefactos
Análisis Especificación Validación
Actividades
Especificación
de Requisitos
Documento
de
Requisitos
Modelo del
Sistema
Planificación Obtención Verificación
Documento
de
Visión
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 5
13/05/2021
g
g q
q
Análisis de Requisitos
“El análisis de requerimientos es una
actividad intensiva de comunicación.”
(Pressman, 1992)
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 6
13/05/2021
g
g q
q
Análisis de Requisitos
• El análisis es “descomponer” un problema
o cosa para ver como trabaja.
• El planteamiento del problema lleva al:
– Análisis del negocio (contexto de la
aplicación)
– Ingeniería de Requerimientos
– Construcción de la solución propuesta
(diseño) X Diseño y arquitectura de Software
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 7
13/05/2021
g
g q
q
Proceso de análisis de requisitos
1. Identificar al cliente.
2. Entrevistar al cliente.
– Identificar deseos y necesidades.
– Utilizar las herramientas de expresión de requisitos (las
ofrecidas por UML).
– Bosquejar las interfaces de usuario (protocolos y GUIs)
– Identificar las plataformas hardware que debe soportar el
software.
3. Elaborar un documento de los requisitos de usuario
(Debe validarse con el cliente)
4. Inspeccionar los requisitos de usuario.
5. Elaborar los requisitos detallados mediante
documentos gráficos y textuales.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 8
13/05/2021
g
g q
q
Recursos para la especificación del
sistema
• Para la especificación del sistema se usan tres
tipos de recursos:
– Descripción del proyecto: Documento textual que
describe de forma concisa el objetivo del sistema, su
oportunidad de mercado y el análisis de riesgos.
– Análisis del contexto: Modelo de objetos que identifica
las interacciones externas y los mecanismos de
interacción física entre los actores que constituyen el
entorno y el propio sistema.
– Casos de uso: Recursos UML para describir la
funcionalidad del sistema. Identifican los límites del
sistema a través de la captura de los tipos de usuario, de
los elementos básicos de funcionalidad a través de casos
de uso, y de los protocolos de interacción a través de
diagramas de secuencia o de interacción.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 9
13/05/2021
g
g q
q
Análisis de Requisitos
• Analizar stakeholders / clientes / usuarios
• Crear vistas
• Detallar
• Negociar prioridades
• Buscar reqs. que faltan
• Evaluar factibilidad técnica - Prototipos
• Evaluar riesgos de requerimientos – En el
Plan
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 10
13/05/2021
g
g q
q
Stakeholders / Clientes / Usuarios
• Clientes:
– Definir responsable de:
• resolución de conflictos
• validación
– Planificar reuniones de
revisión de avance con el
responsable.
– Definir proceso de resolución
de conflictos pe. en alcance.
• Usuarios:
ƒ dividirlos en clases
ƒ definir representantes
ƒ definir prototipos
ƒ acordar responsabilidades y
estrategias de colaboración
con representantes
Stakeholders
Clientes
Usuarios
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 11
13/05/2021
g
g q
q
Ejemplo: perfiles de stakeholders para un
sistema de trámites
Stakeholder Rol Responsa-
bilidad
Intereses Criterios de
éxito Preocupación
Competencia
s técnicas/
Relación de
ambiente de
trabajo
Rector -Sponsor
-Usuario
indirecto
Aprobar
(proyecto)
Construya un
sistema de
acuerdo a las
normas de la
universidad
Satisfacer las
necesidades
de los
estudiantes
Tiempo de
construcción de la
aplicación
N/A
Coordinación
Académica
-Usuario
directo
-Product
champion
Aprobar
proceso
Perfeccionar y
validar los
procesos
-Trámites
registrados en
cada centro.
-Cada actor
realiza las
actividades.
-Satisfacción
de los
estudiantes
-Involucramien-to
de los actores que
intervienen en el
proceso.
-No se registre de
forma apropiada
la información
Liberación del
producto.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 12
13/05/2021
g
g q
q
Análisis de Requisitos
• Analizar stakeholders / clientes / usuarios
• Crear vistas
• Detallar
• Negociar prioridades
• Buscar reqs. que faltan
• Evaluar factibilidad técnica - Prototipos
• Evaluar riesgos de requerimientos – En el
Plan
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 13
13/05/2021
g
g q
q
Negociación
Evaluar
Propuestas
Analizar
Conflictos Resolver
Conflictos
Decidir
Propuestas
Establecer
Prioridades
Conciliar Requisitos
REQUISITOS ACORDADOS
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 14
13/05/2021
g
g q
q
La negociación.
• Esta bien, espíritu comercial, peligrosa si:
– Se comienza a negociar sin tener claras las
especificaciones del cliente.
– El usuario con ligeras nociones de las técnicas de
desarrollo actuales.
– El usuario tiene la necesidad de disponer de la
aplicación lo antes posible.
– El director o jefe de proyecto tiene que negociar con
un usuario de mayor nivel jerárquico.
– El trabajo usual de muchos usuarios es el de
contratar servicios a empresas externas y saben
que siempre hay un margen que se puede
disminuir.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 15
13/05/2021
g
g q
q
La negociación de los plazos, lleva a:
• Fuertes niveles de compromiso personal del jefe
del proyecto,
• Escasa participación en la fijación de plazos de los
que van a desarrollar la aplicación.
• El marco es el ideal para el fracaso:
• El desconocimiento de las necesidades del
usuario suele hacer que se subestimen
• El compromiso unilateral del jefe, en estas
condiciones, difícilmente será respaldado por sus
subordinados.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 16
13/05/2021
g
g q
q
Selección de una alternativa.
• Quiero pasar una
tarde divertida...
• … Cada persona
tiene sus gustos ...
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 17
13/05/2021
g
g q
q
Podemos ofrecer:
• Distintos Diseños…
• Distintas planificaciones para un diseño
dado.
• Distintos enfoques al desarrollo:
– Desarrollo propio,
– Outsourcing o subcontratación,
– Compra de paquetes
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 18
13/05/2021
g
g q
q
Análisis de Requisitos
• Analizar stakeholders / clientes / usuarios
• Crear vistas
• Detallar
• Negociar prioridades
• Buscar reqs. que faltan
• Evaluar factibilidad técnica - Prototipos
• Evaluar riesgos de requerimientos – En el
Plan
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 19
13/05/2021
g
g q
q
Algunos riesgos y estrategias que comúnmente ocurren
en los proyectos de desarrollo
Riesgos comunes en los
requerimientos
Estrategias de mitigación
Falta de participación del usuario
• Identificar a los interesados del producto.
• Crear un plan de participación de interesados.
• Usar técnicas de elicitación que atraigan a los usuarios en el
proceso
Expectativaspocorealistas de los
clientes.
• Crear la visión del producto.
• Desarrollar modelos de alcance del proyecto.
• Validar requerimientos con prototipos operacionales.
Desarrolladores agregan
funcionalidades innecesarias .
• Crear la visión del producto.
• Priorizar requerimientos.
Constante cambio de
requerimientos.
• Desarrollarmodelos dealcance.
• Crear una línea base para requerimientos y establecer
mecanismos de control de cambios.
Pobre análisis del impacto cuando las
necesidadescambiany evolucionan.
• Crear una línea base y seguimiento de requerimientos.
• Formalizar documentos de requerimientos.
Uso de nuevas técnicas o herramientas de
requerimientos.
• Adaptar los procesos de requerimientos para el
proyecto.
• Conducir una retrospectiva de los requerimientos.
Requisitospococlaros,ambiguos.
• Desarrollar la visión del producto.
• Desarrollar múltiples modelos de requerimientos.
• Validar los requerimientos.
Requisitos contradictorios
(conflictivos).
• Formalizar el documento de visión.
• Validar los requerimientos con el modelo de validación.
Falta de requisitos
• Desarrollar múltiples modelos de requerimientos.
• Verificar la falta de requerimientos con el modelo de
validación.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 20
13/05/2021
g
g q
q
Contenido
• Importancia
• Modelos de análisis
• Casos de uso
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 21
13/05/2021
g
g q
q
Proceso de Requisitos
Artefactos
Análisis Especificación Validación
Actividades
Especificación
de Requisitos
Documento
de
Requisitos
Modelo del
Sistema
Planificación Obtención Verificación
Documento
de
Visión
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 22
13/05/2021
g
g q
q
¿Qué es un modelo?
• Un modelo es una abstracción que se construye
para entender y resolver problemas.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 23
13/05/2021
g
g q
q
¿Por qué se construyen modelos?
• Reducir la complejidad
del sistema.
• Comunicar las ideas a
otros.
• Visualización.
• Nos permite probar la
entidad física antes de
construirla.
• Los modelos documentan
las decisiones que
tomamos.
Nadie construye una
casa sin un plano.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 24
13/05/2021
g
g q
q
Modelamiento Orientado a Objetos
• En este enfoque, el principal bloque de
construcción de todos los sistemas software es
el objeto.
• Para realizar modelos de sistemas orientados a
objetos se usa el Lenguaje Unificado de
Modelamiento (UML).
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 25
13/05/2021
g
g q
q
UML
• Unified Modeling Language
• Objetivo: Proveer un lenguaje común que puede ser usado
para el desarrollo de software
• Lenguaje que permite:
– Visualizar: La comunicación es a través de gráficos
– Especificar: construyendo modelos para el análisis, diseño,
implementación
– Construir: Permite la generación de código a partir de un modelo
UML, y la construcción de un modelo a partir del código (ingeniería
reversa)
– Documentar: Permite la documentación completa de todo el
sistema
• Aprobado como estándar por la OMG en 1997
• Actualmente se encuentra en la versión 2.4.1 (nov 2012)
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 26
13/05/2021
g
g q
q
Unified Modeling Language
• Diagramas: Disponen un conjunto de elementos,
que representan el modelo desde distintas
perspectivas.
– Ingeniería directa: Es posible generar código a partir de
un modelo UML.
– Ingeniería inversa: Es posible generar un modelo UML a
partir de la implementación.
• En ambos casos se requiere mayor o menor
supervisión, en función de lo buenas que sean las
herramientas usadas.
• UML tiene nueve diagramas fundamentales,
clasificados en dos grupos, uno para modelar la
estructura estática del sistema y otro para modelar
el comportamiento dinámico.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 27
13/05/2021
g
g q
q
Diagramas en UML
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 28
13/05/2021
g
g q
q
Tipos de Diagramas
• Modelo Estático
– Construye y documenta los aspectos estáticos de un sistema.
– Refleja la estructura básica y estable de un sistema software.
– Crea una representación de los principales elementos del
dominio del problema
– Diagramas: Clases, Objetos, componentes y despliegue.
• Modelo Dinámico
– Crea los diagramas que muestran el comportamiento de un
sistema
– Diagramas: Casos de Uso, secuencia, colaboración, estados y
actividades
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 29
13/05/2021
g
g q
q
Elección de una Técnica para
Modelar Requisitos
• Para modelar los requisitos se utilizan los
siguientes diagramas:
– Diagrama de Casos de Uso
– Diagrama de Clases (Modelo Conceptual)
– Diagrama de Actividad
– Diagramas de Estados
• No existe un único enfoque aplicable a todos
los sistemas, depende de cada proyecto
• Puede ser necesario combinar varios
enfoques
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 30
13/05/2021
g
g q
q
Análisis y Diseño OO
Las herramientas usadas en la etapa de análisis (investigación del problema) se
pueden resumir en la siguiente table:
Herramienta de análisis Preguntas que contesta
Modelo conceptual
¿Cuáles son los conceptos, los términos del
dominio?
Diagramas de Actividades
¿Cómo se lleva a cabo cada proceso del
dominio?
Casos de uso ¿Cuáles son las tareas del dominio?
Diagramas de interacción
¿Cuáles son los eventos y las operac. del
sistema?
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 31
13/05/2021
g
g q
q
Captura y Modelado de Requisitos
• El Análisis de Requisitos tiene por misión convertir el
problema, expresado en términos del dominio del negocio, a
soluciones descritas en el lenguaje del dominio de la
Tecnología de Información.
• El problema y su planteamiento pertenecen al Espacio del
Problema:
– Descripción concreta del negocio.
– Dominio de los Objetos de Negocio (DON).
• Las soluciones pertenecen al Espacio de la Solución:
– Descripción concreta del sistema de información.
– Dominio de los Objetos de Negocio.
– Dominio de los Objetos de Infraestructura (DOI):
• Subdominio de Objetos de Bases de Datos (SDOBD).
• Subdominio de Objetos de Interfaz (SDOIZ).
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 32
13/05/2021
g
g q
q
Captura y Modelado de Requisitos
Espacio del
Problema
Espacio de la
Solución de Usuario
Análisis de
Requisitos
Espacio de la
Solución Técnica
Análisis OO
Diseño OO
Espacio de la
Solución de
Implementación
Diseño
1
2
3
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 33
13/05/2021
g
g q
q
Análisis del problema: Análisis de Requisitos
(Espacio del problema)
• En esta fase se identifica, define y
descompone el problema a tratar.
• Se debe indicar cuales son las principales
antecedentes, causales y efectos del
problema.
• Se deberá referenciar a fuentes que
respalden las afirmaciones hechas.
• Se debe establecer cuales son las
justificaciones por las cuales este problema
es escogido.
1
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 34
13/05/2021
g
g q
q
Análisis del problema: Análisis de Requisitos
(Espacio del problema)
• Se debe investigar si ya existen
soluciones al problema propuesto en otros
ámbitos o utilizando otras tecnologías.
• De existir otras soluciones, se debe dar
una BREVE descripción de cada una,
haciendo énfasis en sus ventajas y
desventajas, con una referencia que
brinde mayor información.
1
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 35
13/05/2021
g
g q
q
Análisis del problema: Análisis de Requisitos
(Espacio del problema)
• El Análisis de Requisitos se realiza por medio
de los flujos de trabajo:
– Modelado del negocio.
– Requisitos.
• El resultado del Análisis de Requisitos es el
siguiente:
– Modelo del Negocio.
– Modelo del Dominio.
– Documento de Especificaciones Técnicas del
Sistema (según norma IEEE-830/1998).
1
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 36
13/05/2021
g
g q
q
Análisis del problema: Análisis de Requisitos
(Espacio del problema)
Flujos de trabajo
del proceso
Gestión del proyecto
Flujos de trabajo
de soporte
Iniciación Elaboración Construcción Transición
Iteraciones
preliminares
Iter
#m+1
Modelado del
negocio
Pruebas
Despliegue
Gestión del cambio
y configuraciones
Entorno
Implementación
Requisitos
Análisis y diseño
Iter
#2
Iter
#n
Iter
#n+1
Iter
#n+2
Iter
#1
Iter
#m
Requisitos
1
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 37
13/05/2021
g
g q
q
Análisis de la solución: Análisis OO
(Espacio de la Solución de Usuario)
• En esta fase se deber responder la pregunta:
¿Qué se va a hacer para resolver el problema?
• Se podrá utilizar cualquier metodología de
análisis que se prefiera: Casos de Uso,
Historias de Usuario, etc.
• El reporte deberá incluir los diagramas o
productos más importantes.
• El resultado debe ser un texto fluido, más
que un conjunto de diagramas o tablas.
2
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 38
13/05/2021
g
g q
q
Análisis de la solución: Análisis OO
(Espacio de la Solución de Usuario)
• En esta fase también se presentará de manera
estructurada, las diferentes herramientas/conocimientos
que se pueden utilizar para la solución del problema.
• Lo más importante de esta sub-fase no es solo conocer
la existencia y descripción de las
herramientas/conocimiento, sino
organizarlas/clasificarlas lógicamente y comparar sus
principales ventajas/desventajas en lo que concierne al
problema a resolver.
• Se debe incluir una BREVE descripción de cada
herramienta/conocimiento, una referencia que provea
más información y una sección donde se contraste su
utilidad para diseñar/implementar la solución problema.
2
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 39
13/05/2021
g
g q
q
Análisis de la solución: Análisis OO
(Espacio de la Solución de Usuario)
• Al final de este paso se procede a
establecer cuál será el alcance de la
solución que se elaborará.
• El alcance significa que va ha hacer y que
no va a hacer la solución.
• Al final del proyecto se establecerá hasta
que punto se cumplió este alcance.
2
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 40
13/05/2021
g
g q
q
Diseño de la solución: Diseño OO
(Espacio de la Solución Técnica)
• Esta fase se deber responder la pregunta: ¿Cómo se va a
resolver el problema?
• Se deberá explicar la forma en que resolverá el problema.
• Se puede utilizar cualquier metodología de soporte al diseño
(OO, Modular, etc.)
• Se deberá reportar, en forma de narrativa, el diseño
propuesto. Se podrá utilizar diagramas, tablas o figuras,
solamente cuando ayuden a esclarecer un pasaje del texto.
• Cuando no estén vinculados a una sección del texto, los
productos de la metodología de soporte al diseño (tablas,
diagramas o figuras) podrán incluirse como anexos.
3
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 41
13/05/2021
g
g q
q
Diseño de la solución: Diseño OO
(Espacio de la Solución Técnica)
• En esta fase se debe evitar, en lo posible,
cualquier referencia a detalles de implementación
como lenguaje a utilizar, sistema de base de
datos, especificaciones de hardware, entre otros.
• El resultado del diseño debería, en principio,
independiente de la plataforma sobre la cual se
implemente.
• Dada la importancia de la interfaz, esta se debe
diseñar en esta fase.
• Deben realizarse bosquejos de lo que será la
interfaz final, así como de la interacción prevista
con el usuario.
3
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 42
13/05/2021
g
g q
q
Contenido
• Importancia
• Modelos de análisis
– Modelo de dominio
– Modelo de negocio
• Casos de uso
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 43
13/05/2021
g
g q
q
Análisis y Diseño OO
Las herramientas usadas en la etapa de análisis (investigación del problema) se
pueden resumir en la siguiente table:
Herramienta de análisis Preguntas que contesta
Modelo conceptual
¿Cuáles son los conceptos, los términos del
dominio?
Diagramas de Actividades
¿Cómo se lleva a cabo cada proceso del
dominio?
Casos de uso ¿Cuáles son las tareas del dominio?
Diagramas de interacción
¿Cuáles son los eventos y las operac. del
sistema?
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 44
13/05/2021
g
g q
q
Modelo de dominio
• Particiona y presenta los conceptos
importantes relacionados con el dominio.
• Una actividad clásica del análisis orientado a
objetos.
• ¿Cuáles son los objetos de interés en el
dominio?
– ¿Sus atributos?
– ¿Sus relaciones?
• ATENCIÓN: no son objetos software, sino un
“diccionario visual” de conceptos del dominio.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 45
13/05/2021
g
g q
q
Modelo de dominio
• Un modelo de dominio es un modelo
conceptual de todos los temas
relacionados con un problema específico.
• En él se describen las distintas entidades,
sus atributos, papeles y relaciones,
además de las restricciones que rigen el
dominio del problema.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 46
13/05/2021
g
g q
q
Modelo del Dominio (Conceptual)
• Permite describir las entidades (conceptos) que
conforman el dominio, sus relaciones y atributos
• Se representan los conceptos del dominio
• Muestra aspectos estáticos
kli P l 13/05/2021
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 47
13/05/2021
g
g q
q
Modelo de dominio
• Un Modelo de Dominio es un artefacto de
la disciplina de análisis ,
– construido con las reglas de UML durante la
fase de concepción, en la tarea construcción
del modelo de dominio,
– presentado como uno o más diagramas de
clases y
– que contiene, no conceptos propios de un
sistema de software sino de la propia realidad
física.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 48
13/05/2021
g
g q
q
Modelo de dominio
• Un modelo de dominio que encapsula los
métodos dentro de las entidades/conceptos
se asocia más bien con modelos orientados
a objetos.
• El modelo de dominio proporciona una
visión estructural del dominio que puede
ser complementado con otros puntos de
vista dinámicos, como el modelo de casos
de uso.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 49
13/05/2021
g
g q
q
Un modelo del dominio
no representa objetos software
• Un modelo de conceptos del dominio, no de
objetos software:
– Un “diccionario visual” de términos importantes en el
dominio.
• Utiliza la notación UML de diagrama de estructura
estática:
Cliente
dirección
nombre
teléfono
Videoclub
dirección
nombre
teléfono
Vídeo
ID
Alquila-de f Almacena f
Alquila f
1
1..*
* 1 *
1
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 51
13/05/2021
g
g q
q
Modelo de dominio
• Diagrama de clases
• Clases
• Atributos
• Métodos
• Relaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 52
13/05/2021
g
g q
q
Diagrama de Clases
• Que es?
– Presenta las clases del sistema con sus
relaciones estructurales y de herencia.
– En el caso del modelo conceptual, las clases se
corresponderán con conceptos del dominio.
• Objetivos
– Representar los aspectos estáticos del sistema
• Que no hace?
– No representa la dinámica de los objetos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 53
13/05/2021
g
g q
q
Diagrama de Clases
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 54
13/05/2021
g
g q
q
UML – Diagrama de Clases
• Parte central del diseño
• Relación muy cercana con el código final
– Herramientas que generan el esqueleto del
código de forma automática
• Se evitan defectos propios de la conversión manual
• Se describen
– Clases/Conceptos (nombre, atributos, métodos)
– Asociaciones entre clases
– Relaciones de herencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 55
13/05/2021
g
g q
q
Diagrama de Clases
• Muestra las clases e interfaces que componen el
sistema y las relaciones que existen entre ellas
• Muestra aspectos estáticos
• Clase: conjunto de objetos que comparten:
– Atributos
– Operaciones
– Relaciones
– Semántica
• Modelo de Dominio (Conceptual): ayudan a entender los
conceptos del dominio del problema y el vocabulario del mismo. Se
excluyen detalles referentes a la implementación o al lenguaje de
programación.
• Diagramas de clases de implementación: muestran todos los
métodos y atributos necesarios para implementar cada clase. Es un
diagrama dependiente de la implementación y del lenguaje.
Nombre Clase
Atributos
Operaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 56
13/05/2021
g
g q
q
Elementos de un Diagrama de Clases
• Clases. Describen un conjunto de objetos
con propiedades y comportamientos
comunes.
• Relaciones. Enlaces entre los distintos
elementos de los diagramas.
• Interfases. Conjunto de operaciones de
una clase o paquete visibles desde otras
clases o paquetes.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 57
13/05/2021
g
g q
q
UML: diagramas de clases
1
2
push()
release()
1
1
blinkIdx
blinkSeconds()
blinkMinutes()
blinkHours()
stopBlinking()
referesh()
LCDDisplay Battery
load
1
2
1
Time
now
1
Watch
Clase
Asociación
Multiplicidad
Atributo
Operaciones
Los diagramas de clases representan la estructura del sistema
state
PushButton
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 58
13/05/2021
g
g q
q
Modelo de dominio
• Diagrama de clases
• Clases
• Atributos
• Métodos
• Relaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 59
13/05/2021
g
g q
q
Clases
• Una clase es la descripción de un conjunto
de objetos con los mismos comportamientos
y propiedades.
• La estructura de una clase esta compuesta
de:
– Los atributos:
• Datos asociados a los elementos y que toman valor al
instanciar objetos de una clase.
– Las operaciones (métodos):
• Funciones o procesos propios de los objetos de una
clase.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 60
13/05/2021
g
g q
q
™ ƒ clase ‡• —ƒ †‡•…”‹’…‹× †‡ — …‘Œ—–‘ †‡ ‘„Œ‡–‘• “—‡
…‘’ƒ”–‡ǣ ƒ–”‹„—–‘•ǡ ‘’‡”ƒ…‹‘‡•ǡ ”‡Žƒ…‹‘‡• › •‡ž–‹…ƒdzǤ
™ ƒ …Žƒ•‡ †‡ˆ‹‡ Ž‘• conceptos “—‡ ˆ‘”ƒ ’ƒ”–‡ †‡Ž †‘‹‹‘ †‡Ž
’”‘„Ž‡ƒ ‘ †‡ Žƒ •‘Ž—…‹×Ǥ
‘‹‹‘ †‡Ž’”‘„Ž‡ƒǣ
Conceptos
‘‹‹‘†‡Žƒ•‘Ž—…‹×ǣ
Clases
Clases
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 61
13/05/2021
g
g q
q
Clases
(1,3)
(2,2)
(2,1)
(5,2.5)
Vehículo
Punto
Figura
Animal
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 62
13/05/2021
g
g q
q
Notación UML para clases
Identificador de la clase,
si es abstracta va en cursiva
atributos
métodos
Rectángulo
longitud
ancho
crearRectangulo
obtenerArea
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 63
13/05/2021
g
g q
q
Clase Instancia 1 Instancia 2
Perro unPerro
Fido
Sultán
unPerro
nombre
Clases
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 64
13/05/2021
g
g q
q
Modelo de dominio
• Diagrama de clases
• Clases
• Atributos
• Métodos
• Relaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 65
13/05/2021
g
g q
q
Atributos
• Un atributo representa una propiedad de una clase.
– Ejemplo: Un persona tiene nombre, edad, etc.
• Los nombres de atributos son únicos dentro de una
misma clase.
• Cada atributo tiene un valor para cada instancia
• En UML:
– La primera letra de un atributo se escribe con minúscula.
– La sintaxis para los atributos en un diagrama UML de
clases es la siguiente:
• visibilidad nombre : tipo de dato
• Ejemplo: + nombre : String
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 66
13/05/2021
g
g q
q
Clase Instancia 1 Instancia 2
atributo X valor x1 valor x2
Perro unPerro
nombre
peso
Sultán
19 libras
unPerro
Fido
9 libras
Atributos de Clases
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 67
13/05/2021
g
g q
q
Perro
nombre
piel
peso
edad
estátus
Nombrar o identificar objetos
Describir características
Describir estados
Atributos de Clases
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 68
13/05/2021
g
g q
q
Atributos
• Una entidad con estructura, comportamiento
o identidad debe ser modelado como una
clase, no como atributo de otra clase.
• Sólo considere atributos que directamente
estén relacionados a una aplicación
particular.
– Obtenga los atributos más importantes primero,
se adicionarán detalles después.
• Asegúrese de dar a cada atributo un nombre
significativo.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 69
13/05/2021
g
g q
q
Atributos
• Mostrar sólo tipos primitivos relativamente
“simples” como atributos.
• Las conexiones a otros conceptos se
representarán como asociaciones, no como
atributos.
Atributos
Pago
fecha : Fecha
hora : Hora
cantidad : Dinero
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 70
13/05/2021
g
g q
q
No utilizar atributos para relacionar conceptos
• ¿Por qué?
Peor
Mejor
Cliente
…
Video
…
Alquila f
1 1.. *
Cliente
Vídeos alquilados: Lista de Vídeos
Vídeo
alquilador : Cliente
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 71
13/05/2021
g
g q
q
¿Cómo encontrar atributos?
• Para encontrar atributos de una clase
preguntarse:
– Qué información necesitamos conocer sobre ese
objeto?
– Qué características necesitamos recordar en el
tiempo?
– Qué dato es importante para soportar las
responsabilidades de la clase en el sistema?
– Algunos atributos podrían ser extraídos del
análisis de los sustantivos y añadidos a la clase
apropiada.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 72
13/05/2021
g
g q
q
Modelo de dominio
• Diagrama de clases
• Clases
• Atributos
• Métodos
• Relaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 73
13/05/2021
g
g q
q
Métodos
• Los métodos, son los procesos que una clase
sabe cómo llevar a cabo. Ejemplo: cambiar-
dirección.
• Un objeto se caracteriza por el comportamiento
que es capaz de mostrar, no solo por sus
atributos.
– En el modelo estático, únicamente se muestra los
nombres de los métodos.
– La información de las operaciones se muestra en el
modelo dinámico.
• Sinónimo de método: operación, responsabilidad,
servicio, función
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 74
13/05/2021
g
g q
q
Clase Instancia 1 Instancia 2
Perro unPerro
atributo X valor x1 valor x2
nombre
peso
Sultán
19 libras
unPerro
Fido
9 libras
operación OPT OPT OPT
sentarse
girar
operaciones de
la clase
operaciones de
la clase
Métodos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 75
13/05/2021
g
g q
q
Métodos
• Puede ocurrir que una clase no tenga métodos.
• En UML:
– La primera letra de los nombres de los métodos se
escribe con minúscula.
– Los métodos pueden tener parámetros, y también
pueden retornar valores. La sintaxis para los
métodos en un diagrama UML de clases, es la
siguiente:
• visibilidad nombre (lista-de-parámetros): tipo-dato-a-retornar.
• Ejemplo: #addMessage (m : Message, len : Integer): Status
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 76
13/05/2021
g
g q
q
Modelo de dominio
• Diagrama de clases
• Clases
• Atributos
• Métodos
• Relaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 77
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 78
13/05/2021
g
g q
q
Modelamiento de Relaciones
• Un objeto por si solo no presenta
funcionalidad. Los objetos contribuyen al
comportamiento de un sistema
colaborando con otros.
• Son necesarias las relaciones para dar
significado y propósito a los objetos.
• Las relaciones entre objetos pueden ser
estáticas o dinámicas
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 79
13/05/2021
g
g q
q
Centrarse en las asociaciones importantes
Vídeo
...
1
1..*
1 Política de préstamos
...
Cliente
...
Asociación importante
Necesito recordar
Asociación de poco valor
Es posible, pero ¿y qué?
Alquila f
Influido-por f
1..*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 80
13/05/2021
g
g q
q
Un
ejemplo
Catálogo
Descripción del vídeo
título
Categoría artículo
Alquiler de vídeo
Hora límite
1..* Fecha de devolución
Hora de devolución
Pago en efectivo
cantidad : Dinero
Vídeo
ID
1
Carnet de socio
ID
Fecha inicio
1
1
1
1..*
1
*
1
1
1
*
1
*
Transacción de alquiler
fecha
Política de préstamos
Cargo alquiler por día
Cargo alquiler por día extra
1
1..*
*
1..*
1
1
Videoclub
dirección
nombre
teléfono
Cliente
dirección
nombre
teléfono
1
0..1
1
*
1
1
Pagos-por-retrasos f
Pago-por f
Inicia f
Alquila f
Alquila-de f Almacena f
Posee-un f
Mantiene T
Define W
Descrito-por T
Determina-cargo-alquiler f
Registra-alquiler-de T
*
Tiene T
1
1
1..*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 81
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 82
13/05/2021
g
g q
q
Relaciones Dinámicas
• Los objetos están relacionados por sus
interacciones.
• Pertenecen a los modelos dinámicos.
• También conocidas como:
colaboraciones, interacciones.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 83
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 84
13/05/2021
g
g q
q
Relaciones Estáticas
• Las relaciones estáticas representan relaciones
estructurales entre objetos de diferentes clases.
• Las relaciones estáticas también se las conoce
como asociaciones o enlaces.
• Las asociaciones representan relaciones entre
clases. Ejemplo: Persona trabaja en compañía.
Persona Empresa
trabaja en
Asociación
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 85
13/05/2021
g
g q
q
Relaciones Estáticas
ƒ Abstracciones que actúan de unión entre los elementos.
ƒ Formas de relación entre clases:
– Asociación y Agregación (vista como un caso particular de
asociación)
– Generalización/Especialización
– Dependencia y realización
Dependencia
Asociación
Generalización
Realización
Es una relación entre dos elementos, tal que un cambio en uno
puede afectar al otro.
Es una relación estructural que resume un conjunto de enlaces
que son conexiones entre objetos.
Es una relación en la que el elemento generalizado puede ser
substituido por cualquiera de los elementos hijos, ya que
comparten su estructura y comportamiento.
Es una relación que implica que la parte realizante cumple con
una serie de especificaciones propuestas por la clase realizada
(interfaces).
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 86
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 87
13/05/2021
g
g q
q
Enlaces y Asociaciones
• Los enlaces y las asociaciones son lo más
significativo para establecer relaciones entre
objetos y clases.
• Las relaciones son usualmente llamadas
asociaciones cuando se aplican a clases, y
enlaces cuando son aplicadas a objetos.
• Un enlace es una conexión física o
conceptual entre instancias de objetos. Un
enlace es una instancia de una asociación.
Un objeto colabora con otros objetos a través
de sus enlaces con éstos.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 88
13/05/2021
g
g q
q
Enlaces y Asociaciones
• Una asociación describe un grupo de
enlaces con estructura común y semántica
común. Todos los enlaces en una
asociación conectan objetos de la misma
clase.
• Las asociaciones son intrínsecamente
bidireccionales. Por ejemplo: Una
persona trabaja para una compañía, una
compañía emplea a una persona.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 89
13/05/2021
g
g q
q
Asociación
asociación
Clase
Atributos
Métodos
Clase
Atributos
Métodos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 90
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 91
13/05/2021
g
g q
q
Asociaciones
• Las asociaciones tienen los siguientes
componentes:
– Nombre
– Rol
– Multiplicidad
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 92
13/05/2021
g
g q
q
Asociaciones (Nombre)
Trabaja para f
Persona Compañía
Persona Compañía
Es empleado Es empleador
nombre
roles
Una asociación tiene una etiqueta (nombre) que describe su
significado.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 93
13/05/2021
g
g q
q
Asociaciones (Roles)
• Algunas veces se establecen roles en cada
lado de la asociación. El uso de nombres de
roles es opcional, pero es más fácil y menos
confuso asignar nombres de roles en lugar
de nombres de asociaciones. Por ejemplo:
empleado y empleador.
• Los nombres de roles son necesarios para
asociaciones entre dos objetos de la misma
clase. Por ejemplo: jefe y trabajador
distinguen a los empleados participantes en
la asociación administra.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 94
13/05/2021
g
g q
q
Asociaciones (Multiplicidad)
• La multiplicidad indica la cantidad de
objetos que participarán en una relación
dada.
• Una asociación puede ser caracterizada
por la multiplicidad en uno o en ambos
lados de la relación.
• La multiplicidad restringe el número de
objetos relacionados.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 95
13/05/2021
g
g q
q
Asociaciones (Multiplicidad)
• Los tipos de multiplicidad son:
– (1): Cada instancia de una clase está relacionada con
exactamente una instancia de la otra clase.
– (*): Cada instancia de una clase está relacionada con
cero, una o con más instancias de la otra clase.
– (0..1): Cada instancia de una clase está relacionada
con 0 ó 1 instancia de la otra clase.
– (1..*): Cada instancia de una clase está relacionada
con una o más instancias de la otra clase.
– Lista: 0..1, 3..4, 6..*: Cada instancia de una clase
está relacionada con cualquier número de instancias
de clase menos con 2 ó 5.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 96
13/05/2021
g
g q
q
A B
1
Una A siempre se asocia con una B
País Ciudad Capital
1
Vuelo Capitán
Cheque Beneficiario
1
1
Ejemplo de Asociaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 97
13/05/2021
g
g q
q
A B
1..*
Una A siempre se asocia con una o más B
Continente País
1..*
Compañía Persona
País Ciudad
1..*
1..*
Ejemplo de Asociaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 98
13/05/2021
g
g q
q
A B
0..1
Una A siempre se asocia con ninguna o con una B
Escritor Agente
0..1
Ejemplo de Asociaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 99
13/05/2021
g
g q
q
A B
*
Una A siempre se asocia con ninguna, con una o con más B
Persona Compañía
*
Ejemplo de Asociaciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 100
13/05/2021
g
g q
q
Asociación como una Clase
• Las clases de asociación permiten añadir
atributos, operaciones y otras
características a las asociaciones.
Persona Compañía
Empleo
salario, cargo
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 101
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 102
13/05/2021
g
g q
q
Clase de Asociación
• Algunas veces una clase está relacionada
más cercanamente a la asociación entre
otras dos clases que con cualquier otra
clase.
• Ejm: Una cuenta está relacionada a la
asociación entre una persona y un banco.
• Es ventajoso modelar una asociación como
una clase cuando los enlaces pueden
participar en asociaciones con otros objetos
o cuando los enlaces están sujetos a
operaciones.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 103
13/05/2021
g
g q
q
Persona Banco
Cuenta
número de cuenta
estatus
balance
calcular balance
depósito
retiro
cliente de f
Ejemplo de Clase de Asociación
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 104
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 105
13/05/2021
g
g q
q
Asociaciones circulares
• Una asociación podría ser circular si:
– Una instancia de la clase esta relacionada
con otra instancia(s) de la misma clase.
• Esta asociación se modela como una asociación
que apunta de regreso a la misma clase.
• Nombre de roles son muy útiles para clarificar esta
asociación.
A
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 106
13/05/2021
g
g q
q
Ejemplo de Asociación circular
Persona
*
1
trabajador
supervisor
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 107
13/05/2021
g
g q
q
Asociaciones múltiples
• Asociaciones múltiples (diferentes) podrían ser
modeladas entre las mismas dos clases.
• Cada asociación tiene su propio nombre, rol y
multiplicidad.
• Los roles son muy útiles para clarificar las
asociaciones.
– Ejm: Entre un cliente de un club de vídeo y un vídeo.
pueden existir dos asociaciones: rentado y reservado.
– Ejm: Entre la clase usuario y directorio, cada
directorio tiene exactamente un usuario que es un
propietario, y muchos usuarios quienes están
autorizados a usar el directorio.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 108
13/05/2021
g
g q
q
r1 *
A B
a3
a1
a2
a5
a4
b1
b2
b3
b4
b5
r2
r1
r1
r1
r1
r2
r2
0..1
Ejemplo de Asociación múltiple
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 109
13/05/2021
g
g q
q
Vic Jones
Tom Lee
Dora Mesa
Liz Taylor
tiene rentado
Joe Fernández
María Nato
The Wizard of OZ
Guerra de las Galaxias
Casa Blanca
Gone with the wind
Police Academy
The Sound of Music
Ben Hur
tiene rentado
tiene rentado
tiene rentado
tiene reservado
Cliente
club de vídeo Video
tiene rentadof
tiene reservadof
0..1
*
*
*
Ejemplo de Asociación múltiple
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 110
13/05/2021
g
g q
q
Ejemplo de asociaciones múltiples
Estudiante Seminario
tomaf *
1..*
ayudaf
*
0..1
ayudante
estudiante
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 111
13/05/2021
g
g q
q
Ejemplo: Entre la clase usuario y directorio, cada directorio tiene
exactamente un usuario que es un propietario, y muchos usuarios
quienes están autorizados a usar el directorio.
Usuario Directorio
propietario
usuario autorizado
Luis Rossi
José Mieles
Fabián Aguirre
Letty Medina
C:TRABAJOS
C:PRUEBASDIA1
*
*
*
Ejemplo de asociaciones múltiples
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 112
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 113
13/05/2021
g
g q
q
Restricciones en las asociaciones
• Las restricciones son condiciones que
especifican limitaciones en las asociaciones,
es decir, limita la participación de los objetos,
a aquellos que cumplen con la condición.
• Con las restricciones se provee mayor
precisión en la información del modelo.
• Una restricción en una asociación entre la
clase A y la clase B quiere decir que: Para
cada enlace entre las instancias de A y B, la
condición señalada por la restricción es
verdadera.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 114
13/05/2021
g
g q
q
Restricciones en las asociaciones
• Las restricciones pueden ser implícitas o explícitas:
• Implícitas: Las características de la notación en el
modelo implican la restricción. La multiplicidad
restringe una asociación. Esta restringe el número de
objetos relacionados a un objeto dado.
– Ejm: Los iconos que muestran multiplicidad en las
asociaciones, especifican restricciones en el número de
enlaces que podrían existir para las instancias de las
clases relacionadas.
– 0..1: cero o una instancia
• Explícitas: Las restricciones explícitas en el modelo,
generalmente se las especifican con llaves “{ }”.
– Ejm: Restricción entre persona y licencia de conducir.
– {edad del conductor no menor de 18}
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 115
13/05/2021
g
g q
q
Restricción Implícita
Por cada instancia de A, existen: 0, una, o muchas
instancias de B y
Por cada instancia de B, existen: una o más instancias de
A
A B
r
1..*
*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 116
13/05/2021
g
g q
q
Restricción Explícita
Por cada enlace que exista entre una instancia de A y una
instancia de B, la condición en la restricción es
verdadera
A B
relación
{restricción}
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 117
13/05/2021
g
g q
q
Ejemplo de Restricciones Explícitas
LicenciaConducir
Persona
nombre
dirección
edad
edad mínima
numero de licencia
fecha de caducidad
estatus
{edad de persona no es menor
que la edad mínima de la
licencia de conducir}
tiene f
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 118
13/05/2021
g
g q
q
Restricciones en las Asociaciones
• {or}: Una clase tiene múltiples asociaciones
con otra clase (o con otras dos clases), pero
cada una de las instancias de la clase,
participan en una cualquiera de las
asociaciones, pero no en las dos
• {subconjunto}: se dan cuando una clase
tiene dos asociaciones con otra clase y los
enlaces de una asociación son un
subconjunto de los enlaces de la otra.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 119
13/05/2021
g
g q
q
A B
r1
r2
C
{or}
Ejemplo de Restricción OR
{or}
Cliente
club de vídeo Video
tiene rentadof
tiene reservadof
0..1
*
*
*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 120
13/05/2021
g
g q
q
Restricción Subconjunto
a3
a1
a2
a5
a4
b1
b2
b3
b4
b5
r1
r1
r1
r1
r2
r2
A B
{subset}
r1
r2
r1
*
*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 121
13/05/2021
g
g q
q
es miembro def
es director def
Persona Comité
{subset}
1..*
Ejemplo de Restricción Subconjunto
A B
r1
r2
{subconjunto}
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 122
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 123
13/05/2021
g
g q
q
Agregación de Relaciones
• Las agregaciones son un tipo especial de asociación,
que describen una abstracción lógica de la relación
“parte-todo” o “una-parte-de” en la cual los objetos
que representan los componentes de algo son
asociados con un objeto que representa el ensamblaje
completo. Los componentes son parte del agregado
• Se indican con frases como “tiene”, “contiene” o “es
parte de”.
– Una mano tiene 5 dedos
– Un archivador contiene cajones
– Un teclado es parte de una computadora
• Pueden tener multiplicidad / condicionamiento en el
lado de la parte.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 124
13/05/2021
g
g q
q
A B
agregado parte
Agregación de Relaciones
• La agregación puede o no denotar contención física.
– La relación entre un aeroplano se compone de alas,
motores, tren de aterrizaje, etc. denota contención física
– La relación entre un accionista y sus acciones; no requiere
contención física.
• Puede tener un número arbitrario de niveles, esto es,
una agregación con componentes (partes) y
subcomponentes (subpartes).
• La agregación es dibujada igual que la asociación,
excepto por un pequeño diamante que indica el
agregado al final de la relación.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 125
13/05/2021
g
g q
q
Agregación de Relaciones
• La agregación tiene algunas consideraciones:
– La parte sólo puede existir si el agregado (el todo)
existe. Cuando el todo es eliminado, son eliminadas
también todas las partes.
– Los clientes deben acceder o comunicarse con las
partes a través del agregado.
– El agregado debe proveer la interfase para permitir a
un objeto cliente acceder o comunicarse con las
partes.
– Los clientes pueden tener relación con las partes.
Sin embargo, estas relaciones deben ser
establecidas y removidas a través del agregado.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 126
13/05/2021
g
g q
q
Agregación de Relaciones
• Para decidir entre asociación o agregación,
responder las siguientes preguntas:
– Usaría usted la frase parte de o está compuesto
de?
– Son algunas operaciones en el todo
automáticamente aplicadas a sus partes?
– Son algunos valores de atributos propagados
desde el todo a todos o algunas partes?
– El estado del todo cambia con el estado de su
parte?
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 127
13/05/2021
g
g q
q
B es parte de A
o
A tiene una B
Modelamiento de Agregaciones
A
B
C contiene cero
o
más instancias de D
C
D
*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 128
13/05/2021
g
g q
q
Ejemplos de Agregación
Mesa
Pata
Partes
Agregado (el todo)
1..*
Compañía
Departamento
*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 129
13/05/2021
g
g q
q
Ejemplos de Agregación
Documento Párrafo Sentencia
Computador
Caja del Sist. Mouse Teclado
Monitor
Chasis CPU RAM
1..* 1..*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 130
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 131
13/05/2021
g
g q
q
Composición
• Es un tipo especial de agregación donde el
todo es dueño de la parte, por todo el ciclo
de vida de esta.
• En una composición un objeto parte
solamente puede pertenecer a un todo al
mismo tiempo.
• El todo es responsable de la creación y
destrucción de sus partes.
• La integridad del todo se ve afectada, cuando
se elimina una de las partes.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 132
13/05/2021
g
g q
q
Ejemplo de Composición
Ventana
Frame
*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 133
13/05/2021
g
g q
q
Ejemplo de Agregación y Composición
Polígono
Punto
Estilo
color
Círculo
radio
3..*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 134
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 135
13/05/2021
g
g q
q
Navegabilidad
• La navegación dentro de una asociación
es bidireccional a menos que se
especifique lo contrario.
• A veces es necesario limitar la navegación
a una sola dirección.
Usuario Clave
dueño
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 136
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 137
13/05/2021
g
g q
q
Generalización y Herencia
• La generalización es un tipo de relación entre
una clase general (superclase) y una clase
más específica (subclase).
• Este tipo de relación es jerárquica
• Las clases más específicas (subclases)
heredan los atributos y los métodos de las
clases más generales.
• Las subclases pueden añadir nuevas
operaciones y nuevas variables de instancia.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 138
13/05/2021
g
g q
q
Generalización y Herencia
• La herencia define una relación entre clases, en la
que una clase comparte la estructura de
comportamiento definida en una o más clases.
• Una misma operación de una superclase puede
comportarse de forma distinta en las subclases.
(Polimorfismo).
• Una clase puede tener cero, uno o más padres.
• Cuando una clase no tiene padres y tiene uno o
más hijos, se la llama clase base.
• Cuando una clase no tiene ningún hijo, se la llama
clase hoja.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 139
13/05/2021
g
g q
q
Generalización y Herencia
• Semánticamente, la herencia denota una relación “es
un o una” o “es un tipo de”. Por ejemplo: un oso “es
un tipo de” mamífero, una casa “es un” tipo de bien
mueble, una rosa “es una” flor, una motocicleta “es un
tipo de” vehículo.
• Se ha considerado a la herencia como sinónimo de
rehúso de código. Sin embargo el más importante
uso de herencia, es la simplificación conceptual que
viene de reducir el número de características
independientes en un sistema.
• Cuando una clase tiene un solo padre, se dice que
usa herencia simple.
• Cuando una clase tiene varios padres se dice que usa
herencia múltiple.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 140
13/05/2021
g
g q
q
Notación UML para la Generalización
A
B
Generalización
Especialización
B es un tipo de A
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 141
13/05/2021
g
g q
q
Ejemplo de Generalización
Rectángulo
dibujar
mover
longitud
ancho
Circulo
dibujar
mover
radio
Figura Geométrica
dibujar
mover
color
posición
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 142
13/05/2021
g
g q
q
Ejemplo de Generalización
Camión
Conductor
Auto Motocicleta
Vehículo registrado a nombre de f
*
Pickup Trailer . . .
18 llantas
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 143
13/05/2021
g
g q
q
unaCuentaBancaria
calcularBalance
deposito
retiro
unaCuentaDeAhorros
unaCuentaCorriente
emitirEstadoDeCuenta
Banco
calcularBalance
calcularBalance
Generalización y Herencia
• Restricciones:
– Desde el punto de vista del cliente de A, no hay
diferencia entre utilizar una instancia de A o de B.
– Sin embargo, instancias de la clase A no pueden ser
sustituidas por instancias de la clase B.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 144
13/05/2021
g
g q
q
unaCuentaBancaria
calcularBalance
deposito
retiro
unaCuentaDeAhorros
unaCuentaCorriente
emitirEstadoDeCuenta
Banco
emitirEstadoDeCuenta
emitirEstadoDeCuenta
Generalización y Herencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 145
13/05/2021
g
g q
q
Herencia Múltiple
• Se da cuando una clase tiene más de una
clase padre.
• Una subclase hereda los atributos y
métodos de todas las clases padres.
• Smalltalk y C++ soportan herencia
múltiple, mientras que Java no.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 146
13/05/2021
g
g q
q
Ejemplo de Herencia Múltiple
RelojDigital RelojAnalógico
RelojDisplayDoble
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 147
13/05/2021
g
g q
q
Clases Abstractas
• Una clase abstracta es una generalización
que no tiene instancias directas, pero si sus
especializaciones.
• Una clase concreta es una clase que es
instanciable; esto es, esta puede tener
instancias directas.
• Las clases abstractas organizan
características comunes a algunas clases.
• El uso de clases abstractas puede simplificar
el modelamiento de las clases que participan
en la misma relación con otras clases.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 148
13/05/2021
g
g q
q
Notación de Clases Abstractas
Ventana
{abstracto}
minimizar()
maximizar()
Ventana de Windows Ventana de Mac
minimizar()
maximizar()
minimizar()
maximizar()
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 149
13/05/2021
g
g q
q
Jerarquías de Relaciones
Avión militar Avión comercial
Avión de carga Avión de pasajeros
Motor Vendedor de billetes
Avión
1..4
1
Piloto
Reserva
n
1
Línea aérea
Vuelo
n
1
1..2
n
n
1
1
n
n
ƒ Las relaciones de Agregación y Generalización forman
jerarquías de clases
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 150
13/05/2021
g
g q
q
Relaciones
• Modelamiento de Relaciones
– Dinámicas
– Estáticas
• Asociaciones
– Nombre, Rol y Multiplicidad
– Clase de Asociación
– Asociaciones Circulares y Múltiples
– Restricciones en las Asociaciones
• Agregación de Relaciones
• Composición
• Navegabilidad
• Generalización y herencia
• Realización y dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 151
13/05/2021
g
g q
q
Realización
• Relación semántica entre clasificadores, donde un clasificador
especifica un contrato que otro clasificador garantiza que cumplirá.
• Se pueden encontrar en dos casos:
• Clases o componentes que realizan interfaces. Es decir, implementan
cada uno de los métodos especificados en dicha interfaz.
• Colaboraciones que realizan casos de uso.
Ventana
+abrir()
+cerrar()
+mover()
+dibujar()
Interface
IVentana
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 152
13/05/2021
g
g q
q
Dependencia
➢ ƒ Dependencia ‘†‡Žƒ —ƒ ”‡Žƒ…‹× †‡ —•‘Ǥ
➢  —ƒ †‡’‡†‡…‹ƒ ‘ ‡• ‡…‡•ƒ”‹‘ ‡•’‡…‹ˆ‹…ƒ” — ‘„”‡Ǥ
A
Dependencia
B
bb1(a1:A)
A
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 153
13/05/2021
g
g q
q
Realización y dependencia
™ ƒ Realización •‡ †ƒ ‡–”‡ †‘• ‡Ž‡‡–‘• …—ƒ†‘ —‘ †‡ ‡ŽŽ‘•
‡•’‡…‹ˆ‹…ƒ — …‘–”ƒ–‘ › ‡Ž ‘–”‘ ‰ƒ”ƒ–‹œƒ “—‡ •‡ …—’Ž‡Ǥ ‘”
‡Œ‡’Ž‘ǣ ƒ ‹–‡”ˆƒœ ’”‡•‡–ƒ —ƒ relación de realización …‘
ŽƒȀ• …Žƒ•‡Ȁ• “—‡ Žƒ ‹’Ž‡‡–ƒȀǤ
™ ƒ Dependencia ‘†‡Žƒ —ƒ ”‡Žƒ…‹× †‡ —•‘Ǥ  —ƒ
†‡’‡†‡…‹ƒ ‘ ‡• ‡…‡•ƒ”‹‘ ‡•’‡…‹ˆ‹…ƒ” — ‘„”‡Ǥ
Collections
Interface
Collection
.add()
addAll()
...
LinkedList
Realización
Dependencia
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 154
13/05/2021
g
g q
q
Contenido
• Importancia
• Modelos de análisis
– Modelo de dominio
– Modelo de negocio
• Casos de uso
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 155
13/05/2021
g
g q
q
Proceso de Requisitos
Artefactos
Análisis Especificación Validación
Actividades
Especificación
de Requisitos
Documento
de
Requisitos
Modelo del
Sistema
Planificación Obtención Verificación
Documento
de
Visión
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 156
13/05/2021
g
g q
q
Modelo de negocio
• El Modelado del Negocio consiste en expresar el
conocimiento preciso de los procesos que lleva la
organización y que pueden relacionarse con el
sistema que se va a desarrollar.
• El modelo de Negocios contempla:
– Tener una visión general de la organización donde se
desarrolla el sistema.
– Identificación de…
• los problemas actuales de la organización relacionados con
el sistema a automatizar
• las ventajas, desventajas y posibles mejoras que los
usuarios responsables ven en los procesos actuales.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 157
13/05/2021
g
g q
q
¿Que se debe tener en cuenta para
construir los modelos?
1. Objetivos del Negocio: Describe el valor
deseado de una medida particular a
futuro y se utiliza para planear y
administrar las actividades asociadas al
negocio.
2. Actores del negocio: son aquellos
entes que interactúan con el entorno del
sistema en relación al negocio. Las
categorías de actores
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 158
13/05/2021
g
g q
q
Modelo de negocio
• Con la información obtenida, el equipo del
proyecto informático de la empresa,
consultores externos contratados por la
empresa, elaborarán el Modelo de Negocio
• Este modelo consiste en realizar un
documento entregable que contiene:
– Modelo de Actividades del Negocio
– Modelo de subsistemas del Negocio
– Modelo de casos de usos del Negocio
– Modelo del Dominio
– Modelo de Objetos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 159
13/05/2021
g
g q
q
Análisis y Diseño OO
Las herramientas usadas en la etapa de análisis (investigación del problema) se
pueden resumir en la siguiente tabla:
Herramienta de análisis Preguntas que contesta
Modelo conceptual
¿Cuáles son los conceptos, los términos del
dominio?
Diagramas de Actividades
¿Cómo se lleva a cabo cada proceso del
dominio?
Casos de uso ¿Cuáles son las tareas del dominio?
Diagramas de interacción
¿Cuáles son los eventos y las operac. del
sistema?
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 160
13/05/2021
g
g q
q
Diagrama de Actividades - Modelado del Negocio
•¿Qué es el modelado de negocio?
–El modelado de negocio es una técnica para modelar el
funcionamiento de una organización a través de sus procesos de
negocio.
•Técnicas habituales
–Casos de uso* de negocio: forma textual.
–Diagramas de actividades: forma diagramática.
•El concepto de actor
–Tanto en los casos de uso de negocio como en los diagramas de
actividades aparece el concepto de actor.
–En modelado de negocio, un actor es un rol o papel que juega
una persona u otro sistema en algún proceso de negocio de una
organización.
–La forma habitual de representar gráficamente a un actor es
mediante una especie de monigote.
*Los casos de uso se los verá en los próximos días.
Actor
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 161
13/05/2021
g
g q
q
• ¿Qué son los diagramas de actividad?
–Es una notación que forma parte de UML y que se utiliza
principalmente para modelar procesos de negocio, especificando:
9 La secuencia de actividades que componen los procesos de
negocio.
9 Los actores que realizan las actividades (opcional).
9 La información que fluye de unas actividades a otras
(opcional).
–Dentro del proceso de ingeniería de requisitos, se utilizarán para
modelar los procesos de negocio, tanto actuales como a
implantar, de la organización para la que se va a desarrollar el
sistema software.
–A partir del modelo del negocio al que el sistema software debe
dar soporte, se plantean los objetivos y requisitos del sistema a
desarrollar.
Diagrama de Actividades - Modelado del Negocio
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 162
13/05/2021
g
g q
q
Gestión de Pedidos
Ejemplo:
gestión
de
pedidos
Recibir Pedido
Enviar
Factura
Factura
Recibir
Pago
Satisfacer
Pedido
Pedido
Cerrar Pedido
Producción
Actividad inicial
Indica el comienzo del
proceso de negocio.
Actividad final
Indica el final del
proceso de negocio.
Calles
Permiten especificar qué
actividades hace cada actor.
Nodo de objeto
Representa información
o documentos (objetos)
que se generan en una
actividad y se
consumen en otra.
Comienzo de
paralelismo
Indica que a partir
de ahí se realizan
varias actividades en
paralelo.
Fin de paralelismo
Indica la terminación
de todas las
actividades que se
realizaban en
paralelo.
Transición
Indica que una
actividad ha
terminado y se pasa
a la siguiente.
Flujo de objeto
Representa un
flujo de
información
(objetos) entre
actividades.
Actividad compleja
Son actividades
complejas que
necesitan un
diagrama de
actividades propio
para ser descritas.
Facturación
Servicio al Cliente
Entregar
Pedido
Actividad
Representa un paso
en el proceso de
negocio.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 163
13/05/2021
g
g q
q
• Actividades
– Una actividad representa un paso dentro de
proceso de negocio.
• Su nombre, que debe ser siempre una forma
verbal, debe ser representativo y coherente
dentro del proceso de negocio.
• Si una actividad es compleja, puede ser necesario
mostrar su descomposición en actividades más
simples en otro diagrama.
• En cada diagrama de actividades, las actividades
deben tener un nivel de abstracción similar.
• Actividades iniciales y finales
– La actividad inicial, que debe ser única, indica dónde
comienza el proceso de negocio.
– Una actividad final, de las que puede haber varias o
ninguna (proceso sin fin), indica dónde puede
terminar el proceso
Diagrama de Actividades - Modelado del Negocio
Actividad
Actividad
compleja
Actividad
inicial
Actividad
final
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 164
13/05/2021
g
g q
q
• Transiciones
– Indican la secuencia de actividades que componen el proceso de
negocio.
– Cuando una actividad termina de realizarse se produce la
transición hacia la siguiente actividad.
• Transiciones condicionales
– Indican que la siguiente actividad a realizar depende de
cierta condición.
– Como mínimo y como máximo, sólo puede haber una opción
válida al evaluar la condición
Diagrama de Actividades - Modelado del Negocio
Actividad 1 Actividad 2
– El símbolo de
condición se puede
usar también para
unir varios caminos
condicionales
(opcional).
Entrega de pedido
[otro caso] [urgente]
Entrega
Ordinaria
Entrega
Urgente
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 165
13/05/2021
g
g q
q
• Paralelismo
– A veces, algunos pasos de un proceso de
negocio se realizan simultáneamente (en
paralelo) o sin un orden definido.
– Para indicar que comienzan varias actividades
a la vez se usa un símbolo de comienzo de
paralelismo (fork), al que llega una transición
y del que salen varias (al menos dos).
– Para indicar que todas las actividades que
se hacían en paralelo han terminado se usa
un símbolo de fin de paralelismo (join), al
que llegan varias transiciones (al menos
dos) y del que sale una sola transición.
– La transición de salida del join sólo se realiza
cuando han terminado todas las actividades
que se realizaban en paralelo.
Diagrama de Actividades - Modelado del Negocio
Realizar Práctica*
Seleccionar
Sistema
Presentar
Práctica
Estudiar
Negocio
Elaborar
Requisitos
Realizar
Modelos
*Proceso muy, muy simplificado.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 166
13/05/2021
g
g q
q
• Calles
– La división en calles permite asociar actividades con aquellos actores
que las realizan. Cada calle corresponde a un actor del proceso de
negocio.
Diagrama de Actividades - Modelado del Negocio
Gestión de fondosbibliotecarios
Director Bibliotecario Usuario
Catalogar
nuevo libro
Registrar
préstamo
Leer libro
Registrar
devolución
[libro OK]
Retirar
libro
[libro deteriorado]
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 167
13/05/2021
g
g q
q
• Flujos de objetos
– Lo normal es que fluya información entre las
actividades de un proceso de negocio.
– En el caso de que resulte interesante mostrar ese flujo (no
siempre lo es), se pueden usar flujos de objetos.
– Si la información de salida de una actividad es la entrada de
otra actividad, se asume que existe una transición implícita
entre ambas.
Diagrama de Actividades - Modelado del Negocio
Aseguramiento de la calidad de losrequisitos
Validación
Verificación
Requisitos
[borrador]
Requisitos
[analizados]
Requisitos
[verificados]
Requisitos
[validados]
Análisis
transiciones implícitas
(no es necesario dibujarlas)
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 168
13/05/2021
g
g q
q
Ejemplo:
venta
por
caja
Cliente Banco
Incluir compras
del carrito
Calcular tasas
y descuentos
Recibo
Caja
Carrito
Solicitar
Autorización
Pago
[pago al
contado] [otro caso]
Autorizar
pago
Emitir
Recibo
Comprar y
llenar carrito
Entregar
compras
Venta por caja
Cajero
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 169
13/05/2021
g
g q
q
Modelo de negocio
• Con la información obtenida, el equipo del
proyecto informático de la empresa,
consultores externos contratados por la
empresa, elaborarán el Modelo de Negocio
• Este modelo consiste en realizar un
documento entregable que contiene:
– Modelo de Actividades del Negocio
– Modelo de subsistemas del Negocio
– Modelo de casos de usos del Negocio
– Modelo del Dominio
– Modelo de Objetos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 170
13/05/2021
g
g q
q
1. Diagrama de los Subsistemas del
Negocio
• Este representa la visión general de la
organización donde se desarrolla el sistema.
• En el diagrama elaborado se muestra las
diferentes dependencias o departamentos
que se relacionan de alguna forma con el
sistema de estudio.
• Un ejemplo asociado al desarrollo de un
Sistema Académico se muestra a
continuación:
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 171
13/05/2021
g q
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 172
13/05/2021
g
g q
q
Modelo de negocio
• Con la información obtenida, el equipo del
proyecto informático de la empresa,
consultores externos contratados por la
empresa, elaborarán el Modelo de Negocio
• Este modelo consiste en realizar un
documento entregable que contiene:
– Modelo de Actividades del Negocio
– Modelo de subsistemas del Negocio
– Modelo de casos de usos del Negocio
– Modelo del Dominio
– Modelo de Objetos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 173
13/05/2021
g
g q
q
2. Modelo de casos de uso del Negocio
• Se modela utilizando los diagramas de caso de
usos que describen los procesos se ejecutan en
las diferencias dependencias y que se relacionan
con el sistema a desarrollar.
• Para ejemplificar tomemos uno de los procesos de
gestión de títulos
j p p
stión de títulos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 174
13/05/2021
g
g q
q
Modelo de negocio
• Con la información obtenida, el equipo del
proyecto informático de la empresa,
consultores externos contratados por la
empresa, elaborarán el Modelo de Negocio
• Este modelo consiste en realizar un
documento entregable que contiene:
– Modelo de Actividades del Negocio
– Modelo de subsistemas del Negocio
– Modelo de casos de usos del Negocio
– Modelo del Dominio
– Modelo de Objetos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 175
13/05/2021
g
g q
q
3. Modelo del Dominio
• Constituido por un diagrama de clases
conceptuales.
• Este diagrama está compuesto por las clases
que se han identificado en el análisis del negocio.
– Luego, en otra disciplina, y por tanto modelo, este
diagrama conceptual será traducido propiamente a
un diagrama de clases.
n Parrales 13/05/2021
diagrama de clases.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 176
13/05/2021
g
g q
q
Particionado del modelo del dominio
• Aunque es
conceptualmente
correcto, nadie
representaría
recuadros de
paquetes como
indica el ejemplo
• Una herramienta
CASE permitiría
desarrollar esta
tarea de forma
más eficaz
Conceptos del dominio
Núcleo/Misc. Pagos Productos Ventas
Núcleo/Misc.
...etc...
Productos
Película de
vídeo
...
Videojuego
...
Cinta de
audio
...
Obsérvese
cómo se pueden
relacionar tipos
procedentes de
otros paquetes
Vídeoclub
Gestionado por Persona
dirección
nombre
1 1
Producto
Núcleo:: Videoclub Alquila
descripción
...
1 1..*
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 177
13/05/2021
g
g q
q
Modelo de negocio
• Con la información obtenida, el equipo del
proyecto informático de la empresa,
consultores externos contratados por la
empresa, elaborarán el Modelo de Negocio
• Este modelo consiste en realizar un
documento entregable que contiene:
– Modelo de Actividades del Negocio
– Modelo de subsistemas del Negocio
– Modelo de casos de usos del Negocio
– Modelo del Dominio
– Modelo de Objetos
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 178
13/05/2021
g
g q
q
4. Modelo de Objetos
• Los modelos
de objetos
del dominio
están
asociados a
cada uno de
los casos de
uso del
negocio.
delo de Objetos
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 179
13/05/2021
g
g q
q
Contenido
• Importancia
• Modelos de análisis
• Casos de uso
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 180
13/05/2021
g
g q
q
Proceso de Requisitos
Artefactos
Análisis Especificación Validación
Actividades
Especificación
de Requisitos
Documento
de
Requisitos
Modelo del
Sistema
Planificación Obtención Verificación
Documento
de
Visión
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 181
13/05/2021
g
g q
q
Análisis y Diseño OO
Las herramientas usadas en la etapa de análisis (investigación del problema) se
pueden resumir en la siguiente tabla:
Herramienta de análisis Preguntas que contesta
Modelo conceptual
¿Cuáles son los conceptos, los términos del
dominio?
Diagramas de Actividades
¿Cómo se lleva a cabo cada proceso del
dominio?
Casos de uso ¿Cuáles son las tareas del dominio?
Diagramas de interacción
¿Cuáles son los eventos y las operac. del
sistema?
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 182
13/05/2021
g
g q
q
Casos de uso
• Casos de uso son ideados por Jacobson a
principios de los noventa.
• Inspirados en el concepto de escenario.
• Escenarios habían sido utilizados para describir
procesos.
Emisor Centralita Receptor
listo( )
tono
marcar_numero
tono_sonando
timbre_sonando
telefono_cogido
para_tono
para_timbre
Ejemplo
de
Escenario
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 183
13/05/2021
g
g q
q
Captura y Modelado de Requisitos
• El Modelo de Casos de Uso (MCU) establece los
requisitos funcionales del sistema de información.
• En el MCU se recoge la descripción externa y
observable de cómo se utiliza el sistema de
información:
– Descripción de CÓMO se utiliza el sistema:
• Funciones, Servicios y Procesos.
– Descripción EXTERNA del uso del sistema:
• Se identifican y describen funciones/servicios/procesos del
negocio que un usuario puede hacer con el soporte del sistema
de información.
– Descripción OBSERVABLE del uso del sistema:
• Es como si hubiera un observador externo que va anotando lo
que hace el usuario con el sistema y lo que el sistema responde
al usuario.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 184
13/05/2021
g
g q
q
Contenido
• Casos de uso
– Definición de caso de uso
– Conceptos
• Diagramas
• Actores
• Relaciones
• Diagrama de contexto
– Detalle de casos de uso
– Guiones
– Interacciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 185
13/05/2021
g
g q
q
Algunas definiciones de caso de uso
• “Describe un conjunto de interacciones entre actores externos y
el sistema en consideración orientadas a satisfacer un objetivo
de un actor”.
[D. Bredemeyer]
• “Es una colección de posibles secuencias de interacciones entre
el sistema en discusión y sus actores externos, relacionado con
un objetivo particular”.
[A. Cockburn]
• “Es una colección de escenarios de éxito y fracaso relacionados
que describe a un actor que usa un sistema para conseguir un
objetivo”
[C. Larman]
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 186
13/05/2021
g
g q
q
Definición de casos de uso
• Un caso de uso es la secuencia de transacciones
en un sistema cuya tarea es producir un resultado
con valor medible para un actor del sistema (I.
Jacobson)
– Secuencia de transacciones: Serie de interacciones
entre el sistema y el actor que lo usa.
– Sistema: Entidad encapsulada cuyos requerimientos
han sido descritos (programa, computador)
– Resultado con valor medible: objetivo logrado con
valor no trivial para el actor.
– Actor: Entidad fuera del sistema que interactúa con
este (usuario, otro sistema).
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 187
13/05/2021
g
g q
q
Definición de casos de uso
• Los casos de uso sirven para encontrar y capturar
los requerimientos (especialmente los funcionales)
• Son descripciones narrativas en lenguaje natural de
los procesos en un formato estructurado de prosa.
• Los casos de uso no son propiamente un elemento
del análisis y diseño orientado a objetos (pueden
ser utilizados en análisis no orientados a objetos).
• Tienen la gran virtud de mantener la información
descrita de forma simple y comprensible por ambas
partes
• Son denominados por un VERBO. Ejemplo:
“Comprar producto”.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 188
13/05/2021
g
g q
q
Casos de Uso
• El conjunto de casos de uso puede ser
utilizado para documentar los requerimientos
operacionales del sistema.
• Los casos de uso describen el
comportamiento del sistema bajo la forma de
acciones y reacciones desde el punto de
vista del usuario.
• Los casos de uso describen la funcionalidad
del sistema sin dar detalles de
implementación.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 189
13/05/2021
g
g q
q
Ejemplo: Jugar Binario
• Se tiene un juego de dados llamado
“Binario” en que un jugador lanza 2 dados.
Si el resultado suma 7 entonces Gana si
no Pierde.
• Jugar Binario:
– Este caso de uso comienza cuando el jugador
recoge y tira 2 dados.
– Si los puntos suman siete, gana y pierde si
suman cualquier otro número.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 190
13/05/2021
g
g q
q
Caso de uso, ejemplo corto
• Recibir pedido en restaurante:
– Un cliente solicita atención (ya leyó la carta).
– El mesero llega a la mesa y anota en su PDA
el número.
– El mesero responde consultas sobre el menú.
– El mesero anota el pedido.
– El Sistema toma razón del pedido final.
• Es una prosa descriptiva (en este ejemplo
faltó escribir el objetivo)
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 191
13/05/2021
g
g q
q
Casos de Uso
• Los casos de uso permiten que los
desarrolladores puedan comunicarse con
los usuarios del sistema.
• Los casos de uso bien estructurados
denotan comportamientos esenciales
solamente.
• Los casos de uso permiten definir:
– los límites de un sistema, y
– las relaciones entre el sistema y el entorno
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 192
13/05/2021
g
g q
q
Como detectar Casos de Uso
• Se debe focalizar la atención en buscar de
qué manera el sistema en cuestión logra
entregar un resultado observable de valor
para el usuario.
• Tratar de centrarse en la pregunta ¿cómo
puedo, utilizando el sistema…
– proporcionar un valor observable para el
usuario?, o
– cumplir con los objetivos del usuario?
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 193
13/05/2021
g
g q
q
Como detectar Casos de Uso
• Muchas veces un caso de uso puede
utilizar varias funcionalidades del sistema,
esta es una potencialidad importante que
debe notar
– Los casos de uso están pensados en los
objetivos de los actores y no en las
funciones
– Por tanto las funciones pueden ser ordenadas
de manera mas clara tanto para los Clientes
como para el equipo de desarrollo
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 194
13/05/2021
g
g q
q
Desarrollando Casos de Uso
• El proceso de desarrollar casos de uso
produce dos resultados.
1. Una lista de casos de uso
• Define los límites del sistema.
• Identifica los actores que interactúan con el sistema y
los objetivos de cada uno de ellos.
• Define los requerimientos funcionales de alto nivel del
sistema.
2. Un conjunto de escenarios por cada caso de
uso
• Describe el comportamiento de cada caso de uso en
un contexto en particular.
• Identifica los objetos participantes en cada contexto.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 195
13/05/2021
g
g q
q
1. Lista de Casos de Uso
• Una lista de casos de uso incluye:
– Lista de casos de uso utilizando el formato de
objetos.
– Descripción de cada caso de uso
– Descripción de cada actor
– Diagrama o tabla de relaciones entre casos
de uso y actores (opcional).
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 196
13/05/2021
g
g q
q
2. Conjunto de escenarios
• ¿Qué es un escenario?
– Un escenario es una secuencia específica de
acciones que ilustran comportamiento.
– Los escenarios son a los casos de uso, como las
instancias son a las clases.
• ¿Por qué necesitamos definir escenarios?
– Los casos de uso describen la funcionalidad del
sistema a alto nivel
– Los escenarios detallan esa funcionalidad.
– Los casos de uso describen la funcionalidad aplicable
en muchos contextos;
– Los escenarios definen cada contexto y el resultado
esperado.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 197
13/05/2021
g
g q
q
Descripción de casos de uso, actores y
escenarios
1. Caso de Uso A
2. Caso de Uso B
3. Caso de Uso C
………….
………….
………….
Lista de Casos de Uso
Identificador Unico: ________________
Nombre: _________________________
Asunciones:_____________________
________________________________
Salidas:__________________________
________________________________
________________________________
Escenarios
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 198
13/05/2021
g
g q
q
Descripción de casos de uso, actores y
escenarios
1. Caso de Uso A
2. Caso de Uso B
3. Caso de Uso C
………….
………….
………….
Lista de Casos de Uso
Nombre: _________________
Descripción: ______________
________________________
________________________
Notas:___________________
________________________
Descripción de Casos de Uso
Identificador Unico: ________________
Nombre: _________________________
Asunciones:_____________________
________________________________
Salidas:__________________________
________________________________
________________________________
Escenarios
Nombre: _________________
Descripción: ______________
________________________
________________________
Notas:___________________
________________________
Descripción de Actores
Diagrama de Casos de Uso
Caso de Uso A
Caso de Uso A
Caso de Uso B
Caso de Uso C
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 199
13/05/2021
g
g q
q
Contenido
• Casos de uso
– Definición de caso de uso
– Conceptos
• Diagramas
• Actores
• Relaciones
• Diagrama de contexto
– Detalle de casos de uso
– Guiones
– Interacciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 200
13/05/2021
g
g q
q
Contenido
• Casos de uso
– Definición de caso de uso
– Conceptos
• Diagramas
• Actores
• Relaciones
• Diagrama de contexto
– Detalle de casos de uso
– Guiones
– Interacciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 201
13/05/2021
g
g q
q
Diagramas de casos de uso
• Se utiliza durante la obtención
de requisitos para representar
el comportamiento externo.
• Actores: representan roles, es
decir, un tipo de usuario del
sistema
• Casos de uso: representan
una secuencia de interacción
para un tipo de funcionalidad
• El modelo de casos de uso es
el conjunto de todos los
casos de uso. Es una
descripción completa de la
funcionalidad del sistema y su
entorno.
Pasajero
Compra de pasaje
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 202
13/05/2021
g
g q
q
Diagramas Casos de Uso
• Es una colección de actores, casos de
uso y las relaciones entre estos.
• Los diagramas de casos de uso son útiles
para:
– Determinar los requerimientos
– Comunicación entre los desarrolladores y los
usuarios.
– Generación de casos de prueba.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 203
13/05/2021
g
g q
q
Actores
• Un actor modela una entidad externa que
se comunica con el sistema:
– Usuarios
– Sistema externo
– Entorno físico
• Un actor tiene un nombre único y una
descripción opcional (será obligatorio en
este curso).
• Ejemplos:
– Pasajero: una persona en el tren
– Satélite GPS: proporciona al sistema
coordenadas GPS
Pasajero
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 204
13/05/2021
g
g q
q
Caso de uso
Un caso de uso representa una clase
de funcionalidad proporcionada por
el sistema como un flujo de eventos.
Un caso de uso consta de:
• Nombre único
• Actores participantes
• Condiciones de entrada
• Flujo de eventos
• Condiciones de salida
• Requisitos especiales
Compra de
pasaje
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 205
13/05/2021
g
g q
q
Ejemplo de diagrama de caso de uso
Sistema
Caso de Uso
Serie de transacciones de valor para el actor
Entidad fuera del sistema
quien interactúa con este
Actor
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 206
13/05/2021
g
g q
q
Diagramas de Casos de Uso
• Notación
Caso de Uso
cliente
actor
Solicitar préstamo
Sistema
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 207
13/05/2021
g
g q
q
Diagramas de Casos de Uso
• Un caso de uso describe una interacción entre el sistema y un agente
externo que se denomina actor:
– Un caso de uso capta siempre una función visible para el usuario.
– Un caso de uso logra un objetivo concreto y específico para el
usuario.
– Un caso de uso puede ser algo simple o algo complejo, en este
caso se puede formular en función de otros casos de uso.
• Los diagramas de casos de uso son recursos UML destinados a:
– Delimitar que partes pertenecen al sistema y cuales son externas a él.
– Captura los elementos de funcionalidad del sistema.
– Identifica y clasifica los elementos externos que interaccionan con él.
– Formula los protocolos de interacción entre actores y sistema.
• Los diagramas de casos de uso hacen referencia a la funcionalidad del
sistema y no hacen referencia a la implementación.
• Los casos de uso constituyen una representación de la funcionalidad
que se utiliza como guía de las restantes fases (análisis, diseño,
codificación, prueba y despliegue)
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 208
13/05/2021
g
g q
q
Elementos de los diagramas de casos de uso UML
Actor_1
Actor_2
Actor_3
Actor_4
Use Case 2
uses
extends
specializes
Use Case 1
Use Case 3
Use Case 4
Use Case 5
System
Actor
Protocolo
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 209
13/05/2021
g
g q
q
Uso de paquetes para organizar los
casos de uso
• Si el diagrama de casos de uso que resulta es
demasiado grande y enmarañado, se pueden crear
diferentes diagramas de casos de uso y cada uno de
ellos representaría una vista del diagrama general.
• Cada diagrama puede representar un área de principal
de funcionalidad del sistema. O la funcionalidad relativa
a un actor, etc.
– Incluso puede ser conveniente que un mismo caso de uso
aparezca en diferentes diagramas. En estos casos la utilización
de una herramienta CASE es imprescindible para mantener la
coherencia del modelo.
• En sistema grandes puede ser útil organizar los
diagramas en paquetes, cada uno de ellos representa la
funcionalidad de un área o de un subsistema.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 210
13/05/2021
g
g q
q
Uso de paquetes para organizar los
casos de uso
Registro de pedidos Ejecución de pedidos
Cliente
Agente
Devuelve producto
Cancela pedido
Obtén catálogo
Estatus pedido
Realiza pedido
Registra
reclamación
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 211
13/05/2021
g
g q
q
Gestión de interacciones temporizadas
• Ciertas actividades tienen lugar en instantes determinados de
tiempo y son iniciadas desde el reloj interno.
• Hay dos formas de abordar esta situación:
– El tiempo puede ser tratado como un actor que inicia el caso de
uso.
– El tiempo se considera parte del sistema y el actor que se relaciona
con el caso de uso realiza la interacción motivado por ella.
• Es preferible la primera situación ya que mantiene el principio de
que los casos de uso se inician siempre por un actor.
Envía catálogo
Envía catálogo
Inicio cuatrimestre Cliente Cliente
El tiempo como actor El tiempo parte del sistema
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 212
13/05/2021
g
g q
q
Encontrando Casos de Uso
1) Identificar los usuarios del sistema.
2) Encontrar todos los roles que juegan los
usuarios y que son relevantes al sistema.
3) Para cada rol identificar todas las formas
(objetivos) de interactuar con el sistema.
4) Crea un caso de uso por cada objetivo.
5) Estructurar los casos de uso. (¡Cuidado!)
6) Revisar y validar con el usuario.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 213
13/05/2021
g
g q
q
Contenido
• Casos de uso
– Definición de caso de uso
– Conceptos
• Diagramas
• Actores
• Relaciones
• Diagrama de contexto
– Detalle de casos de uso
– Guiones
– Interacciones
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 214
13/05/2021
g
g q
q
¿Quiénes son los actores?
• Los actores son entidades activas. Su
comportamiento no es predefinido.
• Ellos son fuente de eventos a los cuales el
sistema debe reaccionar.
• Un actor es una entidad que interactúa con el
sistema.
• Ejemplos:
– Un usuario humano
– Otro sistema que requiere de servicios
– Otro sistema que provee servicios
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 215
13/05/2021
g
g q
q
¿Quiénes son los actores?
• El actor esta fuera de los límites del sistema.
No es un objeto dentro del sistema.
• Los actores inician y llevan a cabo los casos
de uso.
• Un actor es una abstracción de un rol - No es
una persona o el puesto que ocupa:
– Un usuario puede jugar múltiples roles.
– Dos personas diferentes podrían jugar el mismo
rol.
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 216
13/05/2021
g
g q
q
Tipos de Actores
• En un caso de uso pueden haber roles
primarios y secundarios
– Actor primario: Inicia el caso de uso.
– Actor secundario: Participa en el caso de uso
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 217
13/05/2021
g
g q
q
Ejemplo de Actores
Usuario
Usuario
Usuario
máquina
Otro sistema
Sistema
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 218
13/05/2021
g
g q
q
Ejemplo de actores de una Tienda Web
• Cliente: Persona que
realiza pedidos a Tienda
Web.
• Agente: Empleado de
Tienda Web que procesa los
pedidos.
• Empleado: Empleado de
Tienda Web que
empaqueta, etiqueta y
envía los pedidos.
• Mensajería: Empresa que
realiza los envíos.
• Gestor del inventario:
Gestor de la base de datos
de la empresa.
• Tesorería: Software que
lleva las cuentas de los
clientes y de la empresa.
Mensajería
Tesorería
Inventario
Empleado
Agente
Cliente
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 219
13/05/2021
g
g q
q
Diagrama de casos de uso de una
Tienda Web
Cliente
Agente
Empleado
Tesorería
Gestor Inventario
Devuelve producto
Cancela pedido
Obtén catálogo
Estatus pedido
Realiza pedido
Envía paquete
Información
producto
Actualiza
inventario
Registra
productos
Carga pago
Registra
descuento
Imprime
etiqueta
Calcula
costo envío
Registra
reclamación
Mensajería
Procesa
pedido
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 220
13/05/2021
g
g q
q
Identificación de actores
• ¿Quién va a hacer las funciones principales
del sistema?.
• ¿Quién necesitará soporte del sistema para
hacer su trabajo?.
• ¿Qué otros sistemas necesitará usar su
sistema?.
• Buscar por roles, no usuarios individuales o
títulos.
– Un usuario puede jugar múltiples roles
– Múltiples usuarios podrían jugar el mismo rol
Ingeniería de requerimientos Carrera de Software
Ph.D. Franklin Parrales 221
13/05/2021
g
g q
q
Descripción de actores
Número ACT.#
Actor Nombre del Actor
Descripción descripción del actor
Responabilidades •Responsabilidad 1
•Responsabilidad 2
Fuentes Stakeholders que identificaron y contribuyeron a
definir al actor
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos
Análisis y especificación de requerimientos

Más contenido relacionado

La actualidad más candente

Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
Sergio Sanchez
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
landeta_p
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De Sistemas
Sergio Sanchez
 

La actualidad más candente (20)

Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Cuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientadoCuadro comparativo de enfoque estructurado y enfoque orientado
Cuadro comparativo de enfoque estructurado y enfoque orientado
 
Modelo V
Modelo VModelo V
Modelo V
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
MOD Unidad 3: Modelado y verificación formal
MOD Unidad 3: Modelado y verificación formalMOD Unidad 3: Modelado y verificación formal
MOD Unidad 3: Modelado y verificación formal
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
PSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de softwarePSW Unidad 3: Implementación y seguridad del proceso de software
PSW Unidad 3: Implementación y seguridad del proceso de software
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitos
 
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWAREPSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
PSW Unidad 4 ESTIMACIÓN DE PROYECTOS DE SOFTWARE
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De Sistemas
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
Diagrama de Colaboración
Diagrama de ColaboraciónDiagrama de Colaboración
Diagrama de Colaboración
 
Rational rose
Rational roseRational rose
Rational rose
 
PRESENTACIÓN RUP
PRESENTACIÓN RUPPRESENTACIÓN RUP
PRESENTACIÓN RUP
 
Cocomo ii guía
Cocomo ii   guíaCocomo ii   guía
Cocomo ii guía
 
RUP - Fase de Elaboración
RUP - Fase de ElaboraciónRUP - Fase de Elaboración
RUP - Fase de Elaboración
 
Modelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiralModelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiral
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 

Similar a Análisis y especificación de requerimientos

Modelo top down
Modelo top downModelo top down
Modelo top down
niazuluaga
 
Requerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitarRequerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitar
Dharma Consulting
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
Carlis93
 

Similar a Análisis y especificación de requerimientos (20)

Unidad 3 elaboracion de un proyecto (2)
Unidad  3   elaboracion de un proyecto (2)Unidad  3   elaboracion de un proyecto (2)
Unidad 3 elaboracion de un proyecto (2)
 
Taller ingernieria de requerimientos
Taller ingernieria de requerimientosTaller ingernieria de requerimientos
Taller ingernieria de requerimientos
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
Modelo en cascada pemo
Modelo en cascada pemoModelo en cascada pemo
Modelo en cascada pemo
 
Comprensión de los requerimientos
Comprensión de los requerimientosComprensión de los requerimientos
Comprensión de los requerimientos
 
Comprension de los requerimientos
Comprension de los requerimientosComprension de los requerimientos
Comprension de los requerimientos
 
ASPgems 2018
ASPgems 2018 ASPgems 2018
ASPgems 2018
 
6.comprensión de los requerimientos
6.comprensión de los requerimientos6.comprensión de los requerimientos
6.comprensión de los requerimientos
 
Requisitos de software
Requisitos de softwareRequisitos de software
Requisitos de software
 
5.comprensión de los requerimientos
5.comprensión de los requerimientos5.comprensión de los requerimientos
5.comprensión de los requerimientos
 
El pato-volador
El pato-voladorEl pato-volador
El pato-volador
 
IIS Unidad 4 Proyecto de software
IIS Unidad 4 Proyecto de softwareIIS Unidad 4 Proyecto de software
IIS Unidad 4 Proyecto de software
 
Modelo top down
Modelo top downModelo top down
Modelo top down
 
Carlos leon
Carlos leonCarlos leon
Carlos leon
 
Prototipado iterativo-ixda-juan-manuel-carraro
Prototipado iterativo-ixda-juan-manuel-carraroPrototipado iterativo-ixda-juan-manuel-carraro
Prototipado iterativo-ixda-juan-manuel-carraro
 
Requerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitarRequerimientos del Software: 8 trampas a evitar
Requerimientos del Software: 8 trampas a evitar
 
Presentacion sistemas 2 analisis de requisitos
Presentacion sistemas 2 analisis de requisitosPresentacion sistemas 2 analisis de requisitos
Presentacion sistemas 2 analisis de requisitos
 
Frank estaba infografiae
Frank estaba infografiaeFrank estaba infografiae
Frank estaba infografiae
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 

Más de Franklin Parrales Bravo

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
 
RD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y RedesRD Unidad 1: Principios de Comunicación y Redes
RD Unidad 1: Principios de Comunicación y Redes
 

Último

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
evercoyla
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
nicolascastaneda8
 

Último (20)

Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfJM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
413924447-Clasificacion-de-Inventarios-ABC-ppt.ppt
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONCALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
Gestion de proyectos para el control y seguimiento
Gestion de proyectos para el control  y seguimientoGestion de proyectos para el control  y seguimiento
Gestion de proyectos para el control y seguimiento
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
Sesion 6 _ Curso Integrador II_TSZVQJ.pdf
Sesion 6 _ Curso Integrador II_TSZVQJ.pdfSesion 6 _ Curso Integrador II_TSZVQJ.pdf
Sesion 6 _ Curso Integrador II_TSZVQJ.pdf
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 

Análisis y especificación de requerimientos

  • 1. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 1 13/05/2021 g q Análisis y especificación de requerimientos Unidad 3 Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para uso de los cursos de Ingeniería de Requerimientos Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 2 13/05/2021 g g q q Objetivo general de la Unidad 3 Especificar las características operativas del software sobre los requerimientos básicos establecidos durante las tareas de concepción, indagación y negociación. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 3 13/05/2021 g g q q Contenido • Importancia • Modelos de análisis • Casos de uso Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 4 13/05/2021 g g q q Proceso de Requisitos Artefactos Análisis Especificación Validación Actividades Especificación de Requisitos Documento de Requisitos Modelo del Sistema Planificación Obtención Verificación Documento de Visión
  • 2. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 5 13/05/2021 g g q q Análisis de Requisitos “El análisis de requerimientos es una actividad intensiva de comunicación.” (Pressman, 1992) Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 6 13/05/2021 g g q q Análisis de Requisitos • El análisis es “descomponer” un problema o cosa para ver como trabaja. • El planteamiento del problema lleva al: – Análisis del negocio (contexto de la aplicación) – Ingeniería de Requerimientos – Construcción de la solución propuesta (diseño) X Diseño y arquitectura de Software Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 7 13/05/2021 g g q q Proceso de análisis de requisitos 1. Identificar al cliente. 2. Entrevistar al cliente. – Identificar deseos y necesidades. – Utilizar las herramientas de expresión de requisitos (las ofrecidas por UML). – Bosquejar las interfaces de usuario (protocolos y GUIs) – Identificar las plataformas hardware que debe soportar el software. 3. Elaborar un documento de los requisitos de usuario (Debe validarse con el cliente) 4. Inspeccionar los requisitos de usuario. 5. Elaborar los requisitos detallados mediante documentos gráficos y textuales. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 8 13/05/2021 g g q q Recursos para la especificación del sistema • Para la especificación del sistema se usan tres tipos de recursos: – Descripción del proyecto: Documento textual que describe de forma concisa el objetivo del sistema, su oportunidad de mercado y el análisis de riesgos. – Análisis del contexto: Modelo de objetos que identifica las interacciones externas y los mecanismos de interacción física entre los actores que constituyen el entorno y el propio sistema. – Casos de uso: Recursos UML para describir la funcionalidad del sistema. Identifican los límites del sistema a través de la captura de los tipos de usuario, de los elementos básicos de funcionalidad a través de casos de uso, y de los protocolos de interacción a través de diagramas de secuencia o de interacción.
  • 3. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 9 13/05/2021 g g q q Análisis de Requisitos • Analizar stakeholders / clientes / usuarios • Crear vistas • Detallar • Negociar prioridades • Buscar reqs. que faltan • Evaluar factibilidad técnica - Prototipos • Evaluar riesgos de requerimientos – En el Plan Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 10 13/05/2021 g g q q Stakeholders / Clientes / Usuarios • Clientes: – Definir responsable de: • resolución de conflictos • validación – Planificar reuniones de revisión de avance con el responsable. – Definir proceso de resolución de conflictos pe. en alcance. • Usuarios: ƒ dividirlos en clases ƒ definir representantes ƒ definir prototipos ƒ acordar responsabilidades y estrategias de colaboración con representantes Stakeholders Clientes Usuarios Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 11 13/05/2021 g g q q Ejemplo: perfiles de stakeholders para un sistema de trámites Stakeholder Rol Responsa- bilidad Intereses Criterios de éxito Preocupación Competencia s técnicas/ Relación de ambiente de trabajo Rector -Sponsor -Usuario indirecto Aprobar (proyecto) Construya un sistema de acuerdo a las normas de la universidad Satisfacer las necesidades de los estudiantes Tiempo de construcción de la aplicación N/A Coordinación Académica -Usuario directo -Product champion Aprobar proceso Perfeccionar y validar los procesos -Trámites registrados en cada centro. -Cada actor realiza las actividades. -Satisfacción de los estudiantes -Involucramien-to de los actores que intervienen en el proceso. -No se registre de forma apropiada la información Liberación del producto. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 12 13/05/2021 g g q q Análisis de Requisitos • Analizar stakeholders / clientes / usuarios • Crear vistas • Detallar • Negociar prioridades • Buscar reqs. que faltan • Evaluar factibilidad técnica - Prototipos • Evaluar riesgos de requerimientos – En el Plan
  • 4. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 13 13/05/2021 g g q q Negociación Evaluar Propuestas Analizar Conflictos Resolver Conflictos Decidir Propuestas Establecer Prioridades Conciliar Requisitos REQUISITOS ACORDADOS Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 14 13/05/2021 g g q q La negociación. • Esta bien, espíritu comercial, peligrosa si: – Se comienza a negociar sin tener claras las especificaciones del cliente. – El usuario con ligeras nociones de las técnicas de desarrollo actuales. – El usuario tiene la necesidad de disponer de la aplicación lo antes posible. – El director o jefe de proyecto tiene que negociar con un usuario de mayor nivel jerárquico. – El trabajo usual de muchos usuarios es el de contratar servicios a empresas externas y saben que siempre hay un margen que se puede disminuir. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 15 13/05/2021 g g q q La negociación de los plazos, lleva a: • Fuertes niveles de compromiso personal del jefe del proyecto, • Escasa participación en la fijación de plazos de los que van a desarrollar la aplicación. • El marco es el ideal para el fracaso: • El desconocimiento de las necesidades del usuario suele hacer que se subestimen • El compromiso unilateral del jefe, en estas condiciones, difícilmente será respaldado por sus subordinados. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 16 13/05/2021 g g q q Selección de una alternativa. • Quiero pasar una tarde divertida... • … Cada persona tiene sus gustos ...
  • 5. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 17 13/05/2021 g g q q Podemos ofrecer: • Distintos Diseños… • Distintas planificaciones para un diseño dado. • Distintos enfoques al desarrollo: – Desarrollo propio, – Outsourcing o subcontratación, – Compra de paquetes Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 18 13/05/2021 g g q q Análisis de Requisitos • Analizar stakeholders / clientes / usuarios • Crear vistas • Detallar • Negociar prioridades • Buscar reqs. que faltan • Evaluar factibilidad técnica - Prototipos • Evaluar riesgos de requerimientos – En el Plan Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 19 13/05/2021 g g q q Algunos riesgos y estrategias que comúnmente ocurren en los proyectos de desarrollo Riesgos comunes en los requerimientos Estrategias de mitigación Falta de participación del usuario • Identificar a los interesados del producto. • Crear un plan de participación de interesados. • Usar técnicas de elicitación que atraigan a los usuarios en el proceso Expectativaspocorealistas de los clientes. • Crear la visión del producto. • Desarrollar modelos de alcance del proyecto. • Validar requerimientos con prototipos operacionales. Desarrolladores agregan funcionalidades innecesarias . • Crear la visión del producto. • Priorizar requerimientos. Constante cambio de requerimientos. • Desarrollarmodelos dealcance. • Crear una línea base para requerimientos y establecer mecanismos de control de cambios. Pobre análisis del impacto cuando las necesidadescambiany evolucionan. • Crear una línea base y seguimiento de requerimientos. • Formalizar documentos de requerimientos. Uso de nuevas técnicas o herramientas de requerimientos. • Adaptar los procesos de requerimientos para el proyecto. • Conducir una retrospectiva de los requerimientos. Requisitospococlaros,ambiguos. • Desarrollar la visión del producto. • Desarrollar múltiples modelos de requerimientos. • Validar los requerimientos. Requisitos contradictorios (conflictivos). • Formalizar el documento de visión. • Validar los requerimientos con el modelo de validación. Falta de requisitos • Desarrollar múltiples modelos de requerimientos. • Verificar la falta de requerimientos con el modelo de validación. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 20 13/05/2021 g g q q Contenido • Importancia • Modelos de análisis • Casos de uso
  • 6. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 21 13/05/2021 g g q q Proceso de Requisitos Artefactos Análisis Especificación Validación Actividades Especificación de Requisitos Documento de Requisitos Modelo del Sistema Planificación Obtención Verificación Documento de Visión Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 22 13/05/2021 g g q q ¿Qué es un modelo? • Un modelo es una abstracción que se construye para entender y resolver problemas. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 23 13/05/2021 g g q q ¿Por qué se construyen modelos? • Reducir la complejidad del sistema. • Comunicar las ideas a otros. • Visualización. • Nos permite probar la entidad física antes de construirla. • Los modelos documentan las decisiones que tomamos. Nadie construye una casa sin un plano. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 24 13/05/2021 g g q q Modelamiento Orientado a Objetos • En este enfoque, el principal bloque de construcción de todos los sistemas software es el objeto. • Para realizar modelos de sistemas orientados a objetos se usa el Lenguaje Unificado de Modelamiento (UML).
  • 7. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 25 13/05/2021 g g q q UML • Unified Modeling Language • Objetivo: Proveer un lenguaje común que puede ser usado para el desarrollo de software • Lenguaje que permite: – Visualizar: La comunicación es a través de gráficos – Especificar: construyendo modelos para el análisis, diseño, implementación – Construir: Permite la generación de código a partir de un modelo UML, y la construcción de un modelo a partir del código (ingeniería reversa) – Documentar: Permite la documentación completa de todo el sistema • Aprobado como estándar por la OMG en 1997 • Actualmente se encuentra en la versión 2.4.1 (nov 2012) Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 26 13/05/2021 g g q q Unified Modeling Language • Diagramas: Disponen un conjunto de elementos, que representan el modelo desde distintas perspectivas. – Ingeniería directa: Es posible generar código a partir de un modelo UML. – Ingeniería inversa: Es posible generar un modelo UML a partir de la implementación. • En ambos casos se requiere mayor o menor supervisión, en función de lo buenas que sean las herramientas usadas. • UML tiene nueve diagramas fundamentales, clasificados en dos grupos, uno para modelar la estructura estática del sistema y otro para modelar el comportamiento dinámico. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 27 13/05/2021 g g q q Diagramas en UML Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 28 13/05/2021 g g q q Tipos de Diagramas • Modelo Estático – Construye y documenta los aspectos estáticos de un sistema. – Refleja la estructura básica y estable de un sistema software. – Crea una representación de los principales elementos del dominio del problema – Diagramas: Clases, Objetos, componentes y despliegue. • Modelo Dinámico – Crea los diagramas que muestran el comportamiento de un sistema – Diagramas: Casos de Uso, secuencia, colaboración, estados y actividades
  • 8. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 29 13/05/2021 g g q q Elección de una Técnica para Modelar Requisitos • Para modelar los requisitos se utilizan los siguientes diagramas: – Diagrama de Casos de Uso – Diagrama de Clases (Modelo Conceptual) – Diagrama de Actividad – Diagramas de Estados • No existe un único enfoque aplicable a todos los sistemas, depende de cada proyecto • Puede ser necesario combinar varios enfoques Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 30 13/05/2021 g g q q Análisis y Diseño OO Las herramientas usadas en la etapa de análisis (investigación del problema) se pueden resumir en la siguiente table: Herramienta de análisis Preguntas que contesta Modelo conceptual ¿Cuáles son los conceptos, los términos del dominio? Diagramas de Actividades ¿Cómo se lleva a cabo cada proceso del dominio? Casos de uso ¿Cuáles son las tareas del dominio? Diagramas de interacción ¿Cuáles son los eventos y las operac. del sistema? Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 31 13/05/2021 g g q q Captura y Modelado de Requisitos • El Análisis de Requisitos tiene por misión convertir el problema, expresado en términos del dominio del negocio, a soluciones descritas en el lenguaje del dominio de la Tecnología de Información. • El problema y su planteamiento pertenecen al Espacio del Problema: – Descripción concreta del negocio. – Dominio de los Objetos de Negocio (DON). • Las soluciones pertenecen al Espacio de la Solución: – Descripción concreta del sistema de información. – Dominio de los Objetos de Negocio. – Dominio de los Objetos de Infraestructura (DOI): • Subdominio de Objetos de Bases de Datos (SDOBD). • Subdominio de Objetos de Interfaz (SDOIZ). Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 32 13/05/2021 g g q q Captura y Modelado de Requisitos Espacio del Problema Espacio de la Solución de Usuario Análisis de Requisitos Espacio de la Solución Técnica Análisis OO Diseño OO Espacio de la Solución de Implementación Diseño 1 2 3
  • 9. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 33 13/05/2021 g g q q Análisis del problema: Análisis de Requisitos (Espacio del problema) • En esta fase se identifica, define y descompone el problema a tratar. • Se debe indicar cuales son las principales antecedentes, causales y efectos del problema. • Se deberá referenciar a fuentes que respalden las afirmaciones hechas. • Se debe establecer cuales son las justificaciones por las cuales este problema es escogido. 1 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 34 13/05/2021 g g q q Análisis del problema: Análisis de Requisitos (Espacio del problema) • Se debe investigar si ya existen soluciones al problema propuesto en otros ámbitos o utilizando otras tecnologías. • De existir otras soluciones, se debe dar una BREVE descripción de cada una, haciendo énfasis en sus ventajas y desventajas, con una referencia que brinde mayor información. 1 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 35 13/05/2021 g g q q Análisis del problema: Análisis de Requisitos (Espacio del problema) • El Análisis de Requisitos se realiza por medio de los flujos de trabajo: – Modelado del negocio. – Requisitos. • El resultado del Análisis de Requisitos es el siguiente: – Modelo del Negocio. – Modelo del Dominio. – Documento de Especificaciones Técnicas del Sistema (según norma IEEE-830/1998). 1 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 36 13/05/2021 g g q q Análisis del problema: Análisis de Requisitos (Espacio del problema) Flujos de trabajo del proceso Gestión del proyecto Flujos de trabajo de soporte Iniciación Elaboración Construcción Transición Iteraciones preliminares Iter #m+1 Modelado del negocio Pruebas Despliegue Gestión del cambio y configuraciones Entorno Implementación Requisitos Análisis y diseño Iter #2 Iter #n Iter #n+1 Iter #n+2 Iter #1 Iter #m Requisitos 1
  • 10. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 37 13/05/2021 g g q q Análisis de la solución: Análisis OO (Espacio de la Solución de Usuario) • En esta fase se deber responder la pregunta: ¿Qué se va a hacer para resolver el problema? • Se podrá utilizar cualquier metodología de análisis que se prefiera: Casos de Uso, Historias de Usuario, etc. • El reporte deberá incluir los diagramas o productos más importantes. • El resultado debe ser un texto fluido, más que un conjunto de diagramas o tablas. 2 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 38 13/05/2021 g g q q Análisis de la solución: Análisis OO (Espacio de la Solución de Usuario) • En esta fase también se presentará de manera estructurada, las diferentes herramientas/conocimientos que se pueden utilizar para la solución del problema. • Lo más importante de esta sub-fase no es solo conocer la existencia y descripción de las herramientas/conocimiento, sino organizarlas/clasificarlas lógicamente y comparar sus principales ventajas/desventajas en lo que concierne al problema a resolver. • Se debe incluir una BREVE descripción de cada herramienta/conocimiento, una referencia que provea más información y una sección donde se contraste su utilidad para diseñar/implementar la solución problema. 2 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 39 13/05/2021 g g q q Análisis de la solución: Análisis OO (Espacio de la Solución de Usuario) • Al final de este paso se procede a establecer cuál será el alcance de la solución que se elaborará. • El alcance significa que va ha hacer y que no va a hacer la solución. • Al final del proyecto se establecerá hasta que punto se cumplió este alcance. 2 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 40 13/05/2021 g g q q Diseño de la solución: Diseño OO (Espacio de la Solución Técnica) • Esta fase se deber responder la pregunta: ¿Cómo se va a resolver el problema? • Se deberá explicar la forma en que resolverá el problema. • Se puede utilizar cualquier metodología de soporte al diseño (OO, Modular, etc.) • Se deberá reportar, en forma de narrativa, el diseño propuesto. Se podrá utilizar diagramas, tablas o figuras, solamente cuando ayuden a esclarecer un pasaje del texto. • Cuando no estén vinculados a una sección del texto, los productos de la metodología de soporte al diseño (tablas, diagramas o figuras) podrán incluirse como anexos. 3
  • 11. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 41 13/05/2021 g g q q Diseño de la solución: Diseño OO (Espacio de la Solución Técnica) • En esta fase se debe evitar, en lo posible, cualquier referencia a detalles de implementación como lenguaje a utilizar, sistema de base de datos, especificaciones de hardware, entre otros. • El resultado del diseño debería, en principio, independiente de la plataforma sobre la cual se implemente. • Dada la importancia de la interfaz, esta se debe diseñar en esta fase. • Deben realizarse bosquejos de lo que será la interfaz final, así como de la interacción prevista con el usuario. 3 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 42 13/05/2021 g g q q Contenido • Importancia • Modelos de análisis – Modelo de dominio – Modelo de negocio • Casos de uso Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 43 13/05/2021 g g q q Análisis y Diseño OO Las herramientas usadas en la etapa de análisis (investigación del problema) se pueden resumir en la siguiente table: Herramienta de análisis Preguntas que contesta Modelo conceptual ¿Cuáles son los conceptos, los términos del dominio? Diagramas de Actividades ¿Cómo se lleva a cabo cada proceso del dominio? Casos de uso ¿Cuáles son las tareas del dominio? Diagramas de interacción ¿Cuáles son los eventos y las operac. del sistema? Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 44 13/05/2021 g g q q Modelo de dominio • Particiona y presenta los conceptos importantes relacionados con el dominio. • Una actividad clásica del análisis orientado a objetos. • ¿Cuáles son los objetos de interés en el dominio? – ¿Sus atributos? – ¿Sus relaciones? • ATENCIÓN: no son objetos software, sino un “diccionario visual” de conceptos del dominio.
  • 12. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 45 13/05/2021 g g q q Modelo de dominio • Un modelo de dominio es un modelo conceptual de todos los temas relacionados con un problema específico. • En él se describen las distintas entidades, sus atributos, papeles y relaciones, además de las restricciones que rigen el dominio del problema. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 46 13/05/2021 g g q q Modelo del Dominio (Conceptual) • Permite describir las entidades (conceptos) que conforman el dominio, sus relaciones y atributos • Se representan los conceptos del dominio • Muestra aspectos estáticos kli P l 13/05/2021 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 47 13/05/2021 g g q q Modelo de dominio • Un Modelo de Dominio es un artefacto de la disciplina de análisis , – construido con las reglas de UML durante la fase de concepción, en la tarea construcción del modelo de dominio, – presentado como uno o más diagramas de clases y – que contiene, no conceptos propios de un sistema de software sino de la propia realidad física. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 48 13/05/2021 g g q q Modelo de dominio • Un modelo de dominio que encapsula los métodos dentro de las entidades/conceptos se asocia más bien con modelos orientados a objetos. • El modelo de dominio proporciona una visión estructural del dominio que puede ser complementado con otros puntos de vista dinámicos, como el modelo de casos de uso.
  • 13. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 49 13/05/2021 g g q q Un modelo del dominio no representa objetos software • Un modelo de conceptos del dominio, no de objetos software: – Un “diccionario visual” de términos importantes en el dominio. • Utiliza la notación UML de diagrama de estructura estática: Cliente dirección nombre teléfono Videoclub dirección nombre teléfono Vídeo ID Alquila-de f Almacena f Alquila f 1 1..* * 1 * 1 Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 51 13/05/2021 g g q q Modelo de dominio • Diagrama de clases • Clases • Atributos • Métodos • Relaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 52 13/05/2021 g g q q Diagrama de Clases • Que es? – Presenta las clases del sistema con sus relaciones estructurales y de herencia. – En el caso del modelo conceptual, las clases se corresponderán con conceptos del dominio. • Objetivos – Representar los aspectos estáticos del sistema • Que no hace? – No representa la dinámica de los objetos Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 53 13/05/2021 g g q q Diagrama de Clases
  • 14. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 54 13/05/2021 g g q q UML – Diagrama de Clases • Parte central del diseño • Relación muy cercana con el código final – Herramientas que generan el esqueleto del código de forma automática • Se evitan defectos propios de la conversión manual • Se describen – Clases/Conceptos (nombre, atributos, métodos) – Asociaciones entre clases – Relaciones de herencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 55 13/05/2021 g g q q Diagrama de Clases • Muestra las clases e interfaces que componen el sistema y las relaciones que existen entre ellas • Muestra aspectos estáticos • Clase: conjunto de objetos que comparten: – Atributos – Operaciones – Relaciones – Semántica • Modelo de Dominio (Conceptual): ayudan a entender los conceptos del dominio del problema y el vocabulario del mismo. Se excluyen detalles referentes a la implementación o al lenguaje de programación. • Diagramas de clases de implementación: muestran todos los métodos y atributos necesarios para implementar cada clase. Es un diagrama dependiente de la implementación y del lenguaje. Nombre Clase Atributos Operaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 56 13/05/2021 g g q q Elementos de un Diagrama de Clases • Clases. Describen un conjunto de objetos con propiedades y comportamientos comunes. • Relaciones. Enlaces entre los distintos elementos de los diagramas. • Interfases. Conjunto de operaciones de una clase o paquete visibles desde otras clases o paquetes. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 57 13/05/2021 g g q q UML: diagramas de clases 1 2 push() release() 1 1 blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() LCDDisplay Battery load 1 2 1 Time now 1 Watch Clase Asociación Multiplicidad Atributo Operaciones Los diagramas de clases representan la estructura del sistema state PushButton
  • 15. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 58 13/05/2021 g g q q Modelo de dominio • Diagrama de clases • Clases • Atributos • Métodos • Relaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 59 13/05/2021 g g q q Clases • Una clase es la descripción de un conjunto de objetos con los mismos comportamientos y propiedades. • La estructura de una clase esta compuesta de: – Los atributos: • Datos asociados a los elementos y que toman valor al instanciar objetos de una clase. – Las operaciones (métodos): • Funciones o procesos propios de los objetos de una clase. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 60 13/05/2021 g g q q ™ ƒ clase ‡• —ƒ †‡•…”‹’…‹× †‡ — …‘Œ—–‘ †‡ ‘„Œ‡–‘• “—‡ …‘’ƒ”–‡ǣ ƒ–”‹„—–‘•ǡ ‘’‡”ƒ…‹‘‡•ǡ ”‡Žƒ…‹‘‡• › •‡ž–‹…ƒdzǤ ™ ƒ …Žƒ•‡ †‡ˆ‹‡ Ž‘• conceptos “—‡ ˆ‘”ƒ ’ƒ”–‡ †‡Ž †‘‹‹‘ †‡Ž ’”‘„Ž‡ƒ ‘ †‡ Žƒ •‘Ž—…‹×Ǥ ‘‹‹‘ †‡Ž’”‘„Ž‡ƒǣ Conceptos ‘‹‹‘†‡Žƒ•‘Ž—…‹×ǣ Clases Clases Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 61 13/05/2021 g g q q Clases (1,3) (2,2) (2,1) (5,2.5) Vehículo Punto Figura Animal
  • 16. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 62 13/05/2021 g g q q Notación UML para clases Identificador de la clase, si es abstracta va en cursiva atributos métodos Rectángulo longitud ancho crearRectangulo obtenerArea Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 63 13/05/2021 g g q q Clase Instancia 1 Instancia 2 Perro unPerro Fido Sultán unPerro nombre Clases Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 64 13/05/2021 g g q q Modelo de dominio • Diagrama de clases • Clases • Atributos • Métodos • Relaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 65 13/05/2021 g g q q Atributos • Un atributo representa una propiedad de una clase. – Ejemplo: Un persona tiene nombre, edad, etc. • Los nombres de atributos son únicos dentro de una misma clase. • Cada atributo tiene un valor para cada instancia • En UML: – La primera letra de un atributo se escribe con minúscula. – La sintaxis para los atributos en un diagrama UML de clases es la siguiente: • visibilidad nombre : tipo de dato • Ejemplo: + nombre : String
  • 17. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 66 13/05/2021 g g q q Clase Instancia 1 Instancia 2 atributo X valor x1 valor x2 Perro unPerro nombre peso Sultán 19 libras unPerro Fido 9 libras Atributos de Clases Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 67 13/05/2021 g g q q Perro nombre piel peso edad estátus Nombrar o identificar objetos Describir características Describir estados Atributos de Clases Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 68 13/05/2021 g g q q Atributos • Una entidad con estructura, comportamiento o identidad debe ser modelado como una clase, no como atributo de otra clase. • Sólo considere atributos que directamente estén relacionados a una aplicación particular. – Obtenga los atributos más importantes primero, se adicionarán detalles después. • Asegúrese de dar a cada atributo un nombre significativo. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 69 13/05/2021 g g q q Atributos • Mostrar sólo tipos primitivos relativamente “simples” como atributos. • Las conexiones a otros conceptos se representarán como asociaciones, no como atributos. Atributos Pago fecha : Fecha hora : Hora cantidad : Dinero
  • 18. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 70 13/05/2021 g g q q No utilizar atributos para relacionar conceptos • ¿Por qué? Peor Mejor Cliente … Video … Alquila f 1 1.. * Cliente Vídeos alquilados: Lista de Vídeos Vídeo alquilador : Cliente Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 71 13/05/2021 g g q q ¿Cómo encontrar atributos? • Para encontrar atributos de una clase preguntarse: – Qué información necesitamos conocer sobre ese objeto? – Qué características necesitamos recordar en el tiempo? – Qué dato es importante para soportar las responsabilidades de la clase en el sistema? – Algunos atributos podrían ser extraídos del análisis de los sustantivos y añadidos a la clase apropiada. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 72 13/05/2021 g g q q Modelo de dominio • Diagrama de clases • Clases • Atributos • Métodos • Relaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 73 13/05/2021 g g q q Métodos • Los métodos, son los procesos que una clase sabe cómo llevar a cabo. Ejemplo: cambiar- dirección. • Un objeto se caracteriza por el comportamiento que es capaz de mostrar, no solo por sus atributos. – En el modelo estático, únicamente se muestra los nombres de los métodos. – La información de las operaciones se muestra en el modelo dinámico. • Sinónimo de método: operación, responsabilidad, servicio, función
  • 19. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 74 13/05/2021 g g q q Clase Instancia 1 Instancia 2 Perro unPerro atributo X valor x1 valor x2 nombre peso Sultán 19 libras unPerro Fido 9 libras operación OPT OPT OPT sentarse girar operaciones de la clase operaciones de la clase Métodos Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 75 13/05/2021 g g q q Métodos • Puede ocurrir que una clase no tenga métodos. • En UML: – La primera letra de los nombres de los métodos se escribe con minúscula. – Los métodos pueden tener parámetros, y también pueden retornar valores. La sintaxis para los métodos en un diagrama UML de clases, es la siguiente: • visibilidad nombre (lista-de-parámetros): tipo-dato-a-retornar. • Ejemplo: #addMessage (m : Message, len : Integer): Status Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 76 13/05/2021 g g q q Modelo de dominio • Diagrama de clases • Clases • Atributos • Métodos • Relaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 77 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia
  • 20. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 78 13/05/2021 g g q q Modelamiento de Relaciones • Un objeto por si solo no presenta funcionalidad. Los objetos contribuyen al comportamiento de un sistema colaborando con otros. • Son necesarias las relaciones para dar significado y propósito a los objetos. • Las relaciones entre objetos pueden ser estáticas o dinámicas Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 79 13/05/2021 g g q q Centrarse en las asociaciones importantes Vídeo ... 1 1..* 1 Política de préstamos ... Cliente ... Asociación importante Necesito recordar Asociación de poco valor Es posible, pero ¿y qué? Alquila f Influido-por f 1..* Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 80 13/05/2021 g g q q Un ejemplo Catálogo Descripción del vídeo título Categoría artículo Alquiler de vídeo Hora límite 1..* Fecha de devolución Hora de devolución Pago en efectivo cantidad : Dinero Vídeo ID 1 Carnet de socio ID Fecha inicio 1 1 1 1..* 1 * 1 1 1 * 1 * Transacción de alquiler fecha Política de préstamos Cargo alquiler por día Cargo alquiler por día extra 1 1..* * 1..* 1 1 Videoclub dirección nombre teléfono Cliente dirección nombre teléfono 1 0..1 1 * 1 1 Pagos-por-retrasos f Pago-por f Inicia f Alquila f Alquila-de f Almacena f Posee-un f Mantiene T Define W Descrito-por T Determina-cargo-alquiler f Registra-alquiler-de T * Tiene T 1 1 1..* Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 81 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia
  • 21. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 82 13/05/2021 g g q q Relaciones Dinámicas • Los objetos están relacionados por sus interacciones. • Pertenecen a los modelos dinámicos. • También conocidas como: colaboraciones, interacciones. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 83 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 84 13/05/2021 g g q q Relaciones Estáticas • Las relaciones estáticas representan relaciones estructurales entre objetos de diferentes clases. • Las relaciones estáticas también se las conoce como asociaciones o enlaces. • Las asociaciones representan relaciones entre clases. Ejemplo: Persona trabaja en compañía. Persona Empresa trabaja en Asociación Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 85 13/05/2021 g g q q Relaciones Estáticas ƒ Abstracciones que actúan de unión entre los elementos. ƒ Formas de relación entre clases: – Asociación y Agregación (vista como un caso particular de asociación) – Generalización/Especialización – Dependencia y realización Dependencia Asociación Generalización Realización Es una relación entre dos elementos, tal que un cambio en uno puede afectar al otro. Es una relación estructural que resume un conjunto de enlaces que son conexiones entre objetos. Es una relación en la que el elemento generalizado puede ser substituido por cualquiera de los elementos hijos, ya que comparten su estructura y comportamiento. Es una relación que implica que la parte realizante cumple con una serie de especificaciones propuestas por la clase realizada (interfaces).
  • 22. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 86 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 87 13/05/2021 g g q q Enlaces y Asociaciones • Los enlaces y las asociaciones son lo más significativo para establecer relaciones entre objetos y clases. • Las relaciones son usualmente llamadas asociaciones cuando se aplican a clases, y enlaces cuando son aplicadas a objetos. • Un enlace es una conexión física o conceptual entre instancias de objetos. Un enlace es una instancia de una asociación. Un objeto colabora con otros objetos a través de sus enlaces con éstos. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 88 13/05/2021 g g q q Enlaces y Asociaciones • Una asociación describe un grupo de enlaces con estructura común y semántica común. Todos los enlaces en una asociación conectan objetos de la misma clase. • Las asociaciones son intrínsecamente bidireccionales. Por ejemplo: Una persona trabaja para una compañía, una compañía emplea a una persona. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 89 13/05/2021 g g q q Asociación asociación Clase Atributos Métodos Clase Atributos Métodos
  • 23. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 90 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 91 13/05/2021 g g q q Asociaciones • Las asociaciones tienen los siguientes componentes: – Nombre – Rol – Multiplicidad Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 92 13/05/2021 g g q q Asociaciones (Nombre) Trabaja para f Persona Compañía Persona Compañía Es empleado Es empleador nombre roles Una asociación tiene una etiqueta (nombre) que describe su significado. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 93 13/05/2021 g g q q Asociaciones (Roles) • Algunas veces se establecen roles en cada lado de la asociación. El uso de nombres de roles es opcional, pero es más fácil y menos confuso asignar nombres de roles en lugar de nombres de asociaciones. Por ejemplo: empleado y empleador. • Los nombres de roles son necesarios para asociaciones entre dos objetos de la misma clase. Por ejemplo: jefe y trabajador distinguen a los empleados participantes en la asociación administra.
  • 24. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 94 13/05/2021 g g q q Asociaciones (Multiplicidad) • La multiplicidad indica la cantidad de objetos que participarán en una relación dada. • Una asociación puede ser caracterizada por la multiplicidad en uno o en ambos lados de la relación. • La multiplicidad restringe el número de objetos relacionados. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 95 13/05/2021 g g q q Asociaciones (Multiplicidad) • Los tipos de multiplicidad son: – (1): Cada instancia de una clase está relacionada con exactamente una instancia de la otra clase. – (*): Cada instancia de una clase está relacionada con cero, una o con más instancias de la otra clase. – (0..1): Cada instancia de una clase está relacionada con 0 ó 1 instancia de la otra clase. – (1..*): Cada instancia de una clase está relacionada con una o más instancias de la otra clase. – Lista: 0..1, 3..4, 6..*: Cada instancia de una clase está relacionada con cualquier número de instancias de clase menos con 2 ó 5. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 96 13/05/2021 g g q q A B 1 Una A siempre se asocia con una B País Ciudad Capital 1 Vuelo Capitán Cheque Beneficiario 1 1 Ejemplo de Asociaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 97 13/05/2021 g g q q A B 1..* Una A siempre se asocia con una o más B Continente País 1..* Compañía Persona País Ciudad 1..* 1..* Ejemplo de Asociaciones
  • 25. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 98 13/05/2021 g g q q A B 0..1 Una A siempre se asocia con ninguna o con una B Escritor Agente 0..1 Ejemplo de Asociaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 99 13/05/2021 g g q q A B * Una A siempre se asocia con ninguna, con una o con más B Persona Compañía * Ejemplo de Asociaciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 100 13/05/2021 g g q q Asociación como una Clase • Las clases de asociación permiten añadir atributos, operaciones y otras características a las asociaciones. Persona Compañía Empleo salario, cargo Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 101 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia
  • 26. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 102 13/05/2021 g g q q Clase de Asociación • Algunas veces una clase está relacionada más cercanamente a la asociación entre otras dos clases que con cualquier otra clase. • Ejm: Una cuenta está relacionada a la asociación entre una persona y un banco. • Es ventajoso modelar una asociación como una clase cuando los enlaces pueden participar en asociaciones con otros objetos o cuando los enlaces están sujetos a operaciones. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 103 13/05/2021 g g q q Persona Banco Cuenta número de cuenta estatus balance calcular balance depósito retiro cliente de f Ejemplo de Clase de Asociación Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 104 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 105 13/05/2021 g g q q Asociaciones circulares • Una asociación podría ser circular si: – Una instancia de la clase esta relacionada con otra instancia(s) de la misma clase. • Esta asociación se modela como una asociación que apunta de regreso a la misma clase. • Nombre de roles son muy útiles para clarificar esta asociación. A
  • 27. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 106 13/05/2021 g g q q Ejemplo de Asociación circular Persona * 1 trabajador supervisor Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 107 13/05/2021 g g q q Asociaciones múltiples • Asociaciones múltiples (diferentes) podrían ser modeladas entre las mismas dos clases. • Cada asociación tiene su propio nombre, rol y multiplicidad. • Los roles son muy útiles para clarificar las asociaciones. – Ejm: Entre un cliente de un club de vídeo y un vídeo. pueden existir dos asociaciones: rentado y reservado. – Ejm: Entre la clase usuario y directorio, cada directorio tiene exactamente un usuario que es un propietario, y muchos usuarios quienes están autorizados a usar el directorio. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 108 13/05/2021 g g q q r1 * A B a3 a1 a2 a5 a4 b1 b2 b3 b4 b5 r2 r1 r1 r1 r1 r2 r2 0..1 Ejemplo de Asociación múltiple Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 109 13/05/2021 g g q q Vic Jones Tom Lee Dora Mesa Liz Taylor tiene rentado Joe Fernández María Nato The Wizard of OZ Guerra de las Galaxias Casa Blanca Gone with the wind Police Academy The Sound of Music Ben Hur tiene rentado tiene rentado tiene rentado tiene reservado Cliente club de vídeo Video tiene rentadof tiene reservadof 0..1 * * * Ejemplo de Asociación múltiple
  • 28. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 110 13/05/2021 g g q q Ejemplo de asociaciones múltiples Estudiante Seminario tomaf * 1..* ayudaf * 0..1 ayudante estudiante Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 111 13/05/2021 g g q q Ejemplo: Entre la clase usuario y directorio, cada directorio tiene exactamente un usuario que es un propietario, y muchos usuarios quienes están autorizados a usar el directorio. Usuario Directorio propietario usuario autorizado Luis Rossi José Mieles Fabián Aguirre Letty Medina C:TRABAJOS C:PRUEBASDIA1 * * * Ejemplo de asociaciones múltiples Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 112 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 113 13/05/2021 g g q q Restricciones en las asociaciones • Las restricciones son condiciones que especifican limitaciones en las asociaciones, es decir, limita la participación de los objetos, a aquellos que cumplen con la condición. • Con las restricciones se provee mayor precisión en la información del modelo. • Una restricción en una asociación entre la clase A y la clase B quiere decir que: Para cada enlace entre las instancias de A y B, la condición señalada por la restricción es verdadera.
  • 29. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 114 13/05/2021 g g q q Restricciones en las asociaciones • Las restricciones pueden ser implícitas o explícitas: • Implícitas: Las características de la notación en el modelo implican la restricción. La multiplicidad restringe una asociación. Esta restringe el número de objetos relacionados a un objeto dado. – Ejm: Los iconos que muestran multiplicidad en las asociaciones, especifican restricciones en el número de enlaces que podrían existir para las instancias de las clases relacionadas. – 0..1: cero o una instancia • Explícitas: Las restricciones explícitas en el modelo, generalmente se las especifican con llaves “{ }”. – Ejm: Restricción entre persona y licencia de conducir. – {edad del conductor no menor de 18} Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 115 13/05/2021 g g q q Restricción Implícita Por cada instancia de A, existen: 0, una, o muchas instancias de B y Por cada instancia de B, existen: una o más instancias de A A B r 1..* * Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 116 13/05/2021 g g q q Restricción Explícita Por cada enlace que exista entre una instancia de A y una instancia de B, la condición en la restricción es verdadera A B relación {restricción} Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 117 13/05/2021 g g q q Ejemplo de Restricciones Explícitas LicenciaConducir Persona nombre dirección edad edad mínima numero de licencia fecha de caducidad estatus {edad de persona no es menor que la edad mínima de la licencia de conducir} tiene f
  • 30. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 118 13/05/2021 g g q q Restricciones en las Asociaciones • {or}: Una clase tiene múltiples asociaciones con otra clase (o con otras dos clases), pero cada una de las instancias de la clase, participan en una cualquiera de las asociaciones, pero no en las dos • {subconjunto}: se dan cuando una clase tiene dos asociaciones con otra clase y los enlaces de una asociación son un subconjunto de los enlaces de la otra. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 119 13/05/2021 g g q q A B r1 r2 C {or} Ejemplo de Restricción OR {or} Cliente club de vídeo Video tiene rentadof tiene reservadof 0..1 * * * Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 120 13/05/2021 g g q q Restricción Subconjunto a3 a1 a2 a5 a4 b1 b2 b3 b4 b5 r1 r1 r1 r1 r2 r2 A B {subset} r1 r2 r1 * * Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 121 13/05/2021 g g q q es miembro def es director def Persona Comité {subset} 1..* Ejemplo de Restricción Subconjunto A B r1 r2 {subconjunto}
  • 31. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 122 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 123 13/05/2021 g g q q Agregación de Relaciones • Las agregaciones son un tipo especial de asociación, que describen una abstracción lógica de la relación “parte-todo” o “una-parte-de” en la cual los objetos que representan los componentes de algo son asociados con un objeto que representa el ensamblaje completo. Los componentes son parte del agregado • Se indican con frases como “tiene”, “contiene” o “es parte de”. – Una mano tiene 5 dedos – Un archivador contiene cajones – Un teclado es parte de una computadora • Pueden tener multiplicidad / condicionamiento en el lado de la parte. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 124 13/05/2021 g g q q A B agregado parte Agregación de Relaciones • La agregación puede o no denotar contención física. – La relación entre un aeroplano se compone de alas, motores, tren de aterrizaje, etc. denota contención física – La relación entre un accionista y sus acciones; no requiere contención física. • Puede tener un número arbitrario de niveles, esto es, una agregación con componentes (partes) y subcomponentes (subpartes). • La agregación es dibujada igual que la asociación, excepto por un pequeño diamante que indica el agregado al final de la relación. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 125 13/05/2021 g g q q Agregación de Relaciones • La agregación tiene algunas consideraciones: – La parte sólo puede existir si el agregado (el todo) existe. Cuando el todo es eliminado, son eliminadas también todas las partes. – Los clientes deben acceder o comunicarse con las partes a través del agregado. – El agregado debe proveer la interfase para permitir a un objeto cliente acceder o comunicarse con las partes. – Los clientes pueden tener relación con las partes. Sin embargo, estas relaciones deben ser establecidas y removidas a través del agregado.
  • 32. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 126 13/05/2021 g g q q Agregación de Relaciones • Para decidir entre asociación o agregación, responder las siguientes preguntas: – Usaría usted la frase parte de o está compuesto de? – Son algunas operaciones en el todo automáticamente aplicadas a sus partes? – Son algunos valores de atributos propagados desde el todo a todos o algunas partes? – El estado del todo cambia con el estado de su parte? Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 127 13/05/2021 g g q q B es parte de A o A tiene una B Modelamiento de Agregaciones A B C contiene cero o más instancias de D C D * Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 128 13/05/2021 g g q q Ejemplos de Agregación Mesa Pata Partes Agregado (el todo) 1..* Compañía Departamento * Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 129 13/05/2021 g g q q Ejemplos de Agregación Documento Párrafo Sentencia Computador Caja del Sist. Mouse Teclado Monitor Chasis CPU RAM 1..* 1..*
  • 33. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 130 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 131 13/05/2021 g g q q Composición • Es un tipo especial de agregación donde el todo es dueño de la parte, por todo el ciclo de vida de esta. • En una composición un objeto parte solamente puede pertenecer a un todo al mismo tiempo. • El todo es responsable de la creación y destrucción de sus partes. • La integridad del todo se ve afectada, cuando se elimina una de las partes. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 132 13/05/2021 g g q q Ejemplo de Composición Ventana Frame * Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 133 13/05/2021 g g q q Ejemplo de Agregación y Composición Polígono Punto Estilo color Círculo radio 3..*
  • 34. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 134 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 135 13/05/2021 g g q q Navegabilidad • La navegación dentro de una asociación es bidireccional a menos que se especifique lo contrario. • A veces es necesario limitar la navegación a una sola dirección. Usuario Clave dueño Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 136 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 137 13/05/2021 g g q q Generalización y Herencia • La generalización es un tipo de relación entre una clase general (superclase) y una clase más específica (subclase). • Este tipo de relación es jerárquica • Las clases más específicas (subclases) heredan los atributos y los métodos de las clases más generales. • Las subclases pueden añadir nuevas operaciones y nuevas variables de instancia.
  • 35. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 138 13/05/2021 g g q q Generalización y Herencia • La herencia define una relación entre clases, en la que una clase comparte la estructura de comportamiento definida en una o más clases. • Una misma operación de una superclase puede comportarse de forma distinta en las subclases. (Polimorfismo). • Una clase puede tener cero, uno o más padres. • Cuando una clase no tiene padres y tiene uno o más hijos, se la llama clase base. • Cuando una clase no tiene ningún hijo, se la llama clase hoja. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 139 13/05/2021 g g q q Generalización y Herencia • Semánticamente, la herencia denota una relación “es un o una” o “es un tipo de”. Por ejemplo: un oso “es un tipo de” mamífero, una casa “es un” tipo de bien mueble, una rosa “es una” flor, una motocicleta “es un tipo de” vehículo. • Se ha considerado a la herencia como sinónimo de rehúso de código. Sin embargo el más importante uso de herencia, es la simplificación conceptual que viene de reducir el número de características independientes en un sistema. • Cuando una clase tiene un solo padre, se dice que usa herencia simple. • Cuando una clase tiene varios padres se dice que usa herencia múltiple. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 140 13/05/2021 g g q q Notación UML para la Generalización A B Generalización Especialización B es un tipo de A Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 141 13/05/2021 g g q q Ejemplo de Generalización Rectángulo dibujar mover longitud ancho Circulo dibujar mover radio Figura Geométrica dibujar mover color posición
  • 36. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 142 13/05/2021 g g q q Ejemplo de Generalización Camión Conductor Auto Motocicleta Vehículo registrado a nombre de f * Pickup Trailer . . . 18 llantas Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 143 13/05/2021 g g q q unaCuentaBancaria calcularBalance deposito retiro unaCuentaDeAhorros unaCuentaCorriente emitirEstadoDeCuenta Banco calcularBalance calcularBalance Generalización y Herencia • Restricciones: – Desde el punto de vista del cliente de A, no hay diferencia entre utilizar una instancia de A o de B. – Sin embargo, instancias de la clase A no pueden ser sustituidas por instancias de la clase B. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 144 13/05/2021 g g q q unaCuentaBancaria calcularBalance deposito retiro unaCuentaDeAhorros unaCuentaCorriente emitirEstadoDeCuenta Banco emitirEstadoDeCuenta emitirEstadoDeCuenta Generalización y Herencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 145 13/05/2021 g g q q Herencia Múltiple • Se da cuando una clase tiene más de una clase padre. • Una subclase hereda los atributos y métodos de todas las clases padres. • Smalltalk y C++ soportan herencia múltiple, mientras que Java no.
  • 37. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 146 13/05/2021 g g q q Ejemplo de Herencia Múltiple RelojDigital RelojAnalógico RelojDisplayDoble Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 147 13/05/2021 g g q q Clases Abstractas • Una clase abstracta es una generalización que no tiene instancias directas, pero si sus especializaciones. • Una clase concreta es una clase que es instanciable; esto es, esta puede tener instancias directas. • Las clases abstractas organizan características comunes a algunas clases. • El uso de clases abstractas puede simplificar el modelamiento de las clases que participan en la misma relación con otras clases. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 148 13/05/2021 g g q q Notación de Clases Abstractas Ventana {abstracto} minimizar() maximizar() Ventana de Windows Ventana de Mac minimizar() maximizar() minimizar() maximizar() Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 149 13/05/2021 g g q q Jerarquías de Relaciones Avión militar Avión comercial Avión de carga Avión de pasajeros Motor Vendedor de billetes Avión 1..4 1 Piloto Reserva n 1 Línea aérea Vuelo n 1 1..2 n n 1 1 n n ƒ Las relaciones de Agregación y Generalización forman jerarquías de clases
  • 38. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 150 13/05/2021 g g q q Relaciones • Modelamiento de Relaciones – Dinámicas – Estáticas • Asociaciones – Nombre, Rol y Multiplicidad – Clase de Asociación – Asociaciones Circulares y Múltiples – Restricciones en las Asociaciones • Agregación de Relaciones • Composición • Navegabilidad • Generalización y herencia • Realización y dependencia Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 151 13/05/2021 g g q q Realización • Relación semántica entre clasificadores, donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá. • Se pueden encontrar en dos casos: • Clases o componentes que realizan interfaces. Es decir, implementan cada uno de los métodos especificados en dicha interfaz. • Colaboraciones que realizan casos de uso. Ventana +abrir() +cerrar() +mover() +dibujar() Interface IVentana Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 152 13/05/2021 g g q q Dependencia ➢ ƒ Dependencia ‘†‡Žƒ —ƒ ”‡Žƒ…‹× †‡ —•‘Ǥ ➢  —ƒ †‡’‡†‡…‹ƒ ‘ ‡• ‡…‡•ƒ”‹‘ ‡•’‡…‹ˆ‹…ƒ” — ‘„”‡Ǥ A Dependencia B bb1(a1:A) A Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 153 13/05/2021 g g q q Realización y dependencia ™ ƒ Realización •‡ †ƒ ‡–”‡ †‘• ‡Ž‡‡–‘• …—ƒ†‘ —‘ †‡ ‡ŽŽ‘• ‡•’‡…‹ˆ‹…ƒ — …‘–”ƒ–‘ › ‡Ž ‘–”‘ ‰ƒ”ƒ–‹œƒ “—‡ •‡ …—’Ž‡Ǥ ‘” ‡Œ‡’Ž‘ǣ ƒ ‹–‡”ˆƒœ ’”‡•‡–ƒ —ƒ relación de realización …‘ ŽƒȀ• …Žƒ•‡Ȁ• “—‡ Žƒ ‹’Ž‡‡–ƒȀǤ ™ ƒ Dependencia ‘†‡Žƒ —ƒ ”‡Žƒ…‹× †‡ —•‘Ǥ  —ƒ †‡’‡†‡…‹ƒ ‘ ‡• ‡…‡•ƒ”‹‘ ‡•’‡…‹ˆ‹…ƒ” — ‘„”‡Ǥ Collections Interface Collection .add() addAll() ... LinkedList Realización Dependencia
  • 39. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 154 13/05/2021 g g q q Contenido • Importancia • Modelos de análisis – Modelo de dominio – Modelo de negocio • Casos de uso Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 155 13/05/2021 g g q q Proceso de Requisitos Artefactos Análisis Especificación Validación Actividades Especificación de Requisitos Documento de Requisitos Modelo del Sistema Planificación Obtención Verificación Documento de Visión Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 156 13/05/2021 g g q q Modelo de negocio • El Modelado del Negocio consiste en expresar el conocimiento preciso de los procesos que lleva la organización y que pueden relacionarse con el sistema que se va a desarrollar. • El modelo de Negocios contempla: – Tener una visión general de la organización donde se desarrolla el sistema. – Identificación de… • los problemas actuales de la organización relacionados con el sistema a automatizar • las ventajas, desventajas y posibles mejoras que los usuarios responsables ven en los procesos actuales. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 157 13/05/2021 g g q q ¿Que se debe tener en cuenta para construir los modelos? 1. Objetivos del Negocio: Describe el valor deseado de una medida particular a futuro y se utiliza para planear y administrar las actividades asociadas al negocio. 2. Actores del negocio: son aquellos entes que interactúan con el entorno del sistema en relación al negocio. Las categorías de actores
  • 40. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 158 13/05/2021 g g q q Modelo de negocio • Con la información obtenida, el equipo del proyecto informático de la empresa, consultores externos contratados por la empresa, elaborarán el Modelo de Negocio • Este modelo consiste en realizar un documento entregable que contiene: – Modelo de Actividades del Negocio – Modelo de subsistemas del Negocio – Modelo de casos de usos del Negocio – Modelo del Dominio – Modelo de Objetos Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 159 13/05/2021 g g q q Análisis y Diseño OO Las herramientas usadas en la etapa de análisis (investigación del problema) se pueden resumir en la siguiente tabla: Herramienta de análisis Preguntas que contesta Modelo conceptual ¿Cuáles son los conceptos, los términos del dominio? Diagramas de Actividades ¿Cómo se lleva a cabo cada proceso del dominio? Casos de uso ¿Cuáles son las tareas del dominio? Diagramas de interacción ¿Cuáles son los eventos y las operac. del sistema? Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 160 13/05/2021 g g q q Diagrama de Actividades - Modelado del Negocio •¿Qué es el modelado de negocio? –El modelado de negocio es una técnica para modelar el funcionamiento de una organización a través de sus procesos de negocio. •Técnicas habituales –Casos de uso* de negocio: forma textual. –Diagramas de actividades: forma diagramática. •El concepto de actor –Tanto en los casos de uso de negocio como en los diagramas de actividades aparece el concepto de actor. –En modelado de negocio, un actor es un rol o papel que juega una persona u otro sistema en algún proceso de negocio de una organización. –La forma habitual de representar gráficamente a un actor es mediante una especie de monigote. *Los casos de uso se los verá en los próximos días. Actor Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 161 13/05/2021 g g q q • ¿Qué son los diagramas de actividad? –Es una notación que forma parte de UML y que se utiliza principalmente para modelar procesos de negocio, especificando: 9 La secuencia de actividades que componen los procesos de negocio. 9 Los actores que realizan las actividades (opcional). 9 La información que fluye de unas actividades a otras (opcional). –Dentro del proceso de ingeniería de requisitos, se utilizarán para modelar los procesos de negocio, tanto actuales como a implantar, de la organización para la que se va a desarrollar el sistema software. –A partir del modelo del negocio al que el sistema software debe dar soporte, se plantean los objetivos y requisitos del sistema a desarrollar. Diagrama de Actividades - Modelado del Negocio
  • 41. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 162 13/05/2021 g g q q Gestión de Pedidos Ejemplo: gestión de pedidos Recibir Pedido Enviar Factura Factura Recibir Pago Satisfacer Pedido Pedido Cerrar Pedido Producción Actividad inicial Indica el comienzo del proceso de negocio. Actividad final Indica el final del proceso de negocio. Calles Permiten especificar qué actividades hace cada actor. Nodo de objeto Representa información o documentos (objetos) que se generan en una actividad y se consumen en otra. Comienzo de paralelismo Indica que a partir de ahí se realizan varias actividades en paralelo. Fin de paralelismo Indica la terminación de todas las actividades que se realizaban en paralelo. Transición Indica que una actividad ha terminado y se pasa a la siguiente. Flujo de objeto Representa un flujo de información (objetos) entre actividades. Actividad compleja Son actividades complejas que necesitan un diagrama de actividades propio para ser descritas. Facturación Servicio al Cliente Entregar Pedido Actividad Representa un paso en el proceso de negocio. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 163 13/05/2021 g g q q • Actividades – Una actividad representa un paso dentro de proceso de negocio. • Su nombre, que debe ser siempre una forma verbal, debe ser representativo y coherente dentro del proceso de negocio. • Si una actividad es compleja, puede ser necesario mostrar su descomposición en actividades más simples en otro diagrama. • En cada diagrama de actividades, las actividades deben tener un nivel de abstracción similar. • Actividades iniciales y finales – La actividad inicial, que debe ser única, indica dónde comienza el proceso de negocio. – Una actividad final, de las que puede haber varias o ninguna (proceso sin fin), indica dónde puede terminar el proceso Diagrama de Actividades - Modelado del Negocio Actividad Actividad compleja Actividad inicial Actividad final Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 164 13/05/2021 g g q q • Transiciones – Indican la secuencia de actividades que componen el proceso de negocio. – Cuando una actividad termina de realizarse se produce la transición hacia la siguiente actividad. • Transiciones condicionales – Indican que la siguiente actividad a realizar depende de cierta condición. – Como mínimo y como máximo, sólo puede haber una opción válida al evaluar la condición Diagrama de Actividades - Modelado del Negocio Actividad 1 Actividad 2 – El símbolo de condición se puede usar también para unir varios caminos condicionales (opcional). Entrega de pedido [otro caso] [urgente] Entrega Ordinaria Entrega Urgente Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 165 13/05/2021 g g q q • Paralelismo – A veces, algunos pasos de un proceso de negocio se realizan simultáneamente (en paralelo) o sin un orden definido. – Para indicar que comienzan varias actividades a la vez se usa un símbolo de comienzo de paralelismo (fork), al que llega una transición y del que salen varias (al menos dos). – Para indicar que todas las actividades que se hacían en paralelo han terminado se usa un símbolo de fin de paralelismo (join), al que llegan varias transiciones (al menos dos) y del que sale una sola transición. – La transición de salida del join sólo se realiza cuando han terminado todas las actividades que se realizaban en paralelo. Diagrama de Actividades - Modelado del Negocio Realizar Práctica* Seleccionar Sistema Presentar Práctica Estudiar Negocio Elaborar Requisitos Realizar Modelos *Proceso muy, muy simplificado.
  • 42. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 166 13/05/2021 g g q q • Calles – La división en calles permite asociar actividades con aquellos actores que las realizan. Cada calle corresponde a un actor del proceso de negocio. Diagrama de Actividades - Modelado del Negocio Gestión de fondosbibliotecarios Director Bibliotecario Usuario Catalogar nuevo libro Registrar préstamo Leer libro Registrar devolución [libro OK] Retirar libro [libro deteriorado] Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 167 13/05/2021 g g q q • Flujos de objetos – Lo normal es que fluya información entre las actividades de un proceso de negocio. – En el caso de que resulte interesante mostrar ese flujo (no siempre lo es), se pueden usar flujos de objetos. – Si la información de salida de una actividad es la entrada de otra actividad, se asume que existe una transición implícita entre ambas. Diagrama de Actividades - Modelado del Negocio Aseguramiento de la calidad de losrequisitos Validación Verificación Requisitos [borrador] Requisitos [analizados] Requisitos [verificados] Requisitos [validados] Análisis transiciones implícitas (no es necesario dibujarlas) Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 168 13/05/2021 g g q q Ejemplo: venta por caja Cliente Banco Incluir compras del carrito Calcular tasas y descuentos Recibo Caja Carrito Solicitar Autorización Pago [pago al contado] [otro caso] Autorizar pago Emitir Recibo Comprar y llenar carrito Entregar compras Venta por caja Cajero Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 169 13/05/2021 g g q q Modelo de negocio • Con la información obtenida, el equipo del proyecto informático de la empresa, consultores externos contratados por la empresa, elaborarán el Modelo de Negocio • Este modelo consiste en realizar un documento entregable que contiene: – Modelo de Actividades del Negocio – Modelo de subsistemas del Negocio – Modelo de casos de usos del Negocio – Modelo del Dominio – Modelo de Objetos
  • 43. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 170 13/05/2021 g g q q 1. Diagrama de los Subsistemas del Negocio • Este representa la visión general de la organización donde se desarrolla el sistema. • En el diagrama elaborado se muestra las diferentes dependencias o departamentos que se relacionan de alguna forma con el sistema de estudio. • Un ejemplo asociado al desarrollo de un Sistema Académico se muestra a continuación: Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 171 13/05/2021 g q Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 172 13/05/2021 g g q q Modelo de negocio • Con la información obtenida, el equipo del proyecto informático de la empresa, consultores externos contratados por la empresa, elaborarán el Modelo de Negocio • Este modelo consiste en realizar un documento entregable que contiene: – Modelo de Actividades del Negocio – Modelo de subsistemas del Negocio – Modelo de casos de usos del Negocio – Modelo del Dominio – Modelo de Objetos Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 173 13/05/2021 g g q q 2. Modelo de casos de uso del Negocio • Se modela utilizando los diagramas de caso de usos que describen los procesos se ejecutan en las diferencias dependencias y que se relacionan con el sistema a desarrollar. • Para ejemplificar tomemos uno de los procesos de gestión de títulos j p p stión de títulos
  • 44. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 174 13/05/2021 g g q q Modelo de negocio • Con la información obtenida, el equipo del proyecto informático de la empresa, consultores externos contratados por la empresa, elaborarán el Modelo de Negocio • Este modelo consiste en realizar un documento entregable que contiene: – Modelo de Actividades del Negocio – Modelo de subsistemas del Negocio – Modelo de casos de usos del Negocio – Modelo del Dominio – Modelo de Objetos Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 175 13/05/2021 g g q q 3. Modelo del Dominio • Constituido por un diagrama de clases conceptuales. • Este diagrama está compuesto por las clases que se han identificado en el análisis del negocio. – Luego, en otra disciplina, y por tanto modelo, este diagrama conceptual será traducido propiamente a un diagrama de clases. n Parrales 13/05/2021 diagrama de clases. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 176 13/05/2021 g g q q Particionado del modelo del dominio • Aunque es conceptualmente correcto, nadie representaría recuadros de paquetes como indica el ejemplo • Una herramienta CASE permitiría desarrollar esta tarea de forma más eficaz Conceptos del dominio Núcleo/Misc. Pagos Productos Ventas Núcleo/Misc. ...etc... Productos Película de vídeo ... Videojuego ... Cinta de audio ... Obsérvese cómo se pueden relacionar tipos procedentes de otros paquetes Vídeoclub Gestionado por Persona dirección nombre 1 1 Producto Núcleo:: Videoclub Alquila descripción ... 1 1..* Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 177 13/05/2021 g g q q Modelo de negocio • Con la información obtenida, el equipo del proyecto informático de la empresa, consultores externos contratados por la empresa, elaborarán el Modelo de Negocio • Este modelo consiste en realizar un documento entregable que contiene: – Modelo de Actividades del Negocio – Modelo de subsistemas del Negocio – Modelo de casos de usos del Negocio – Modelo del Dominio – Modelo de Objetos
  • 45. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 178 13/05/2021 g g q q 4. Modelo de Objetos • Los modelos de objetos del dominio están asociados a cada uno de los casos de uso del negocio. delo de Objetos s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 179 13/05/2021 g g q q Contenido • Importancia • Modelos de análisis • Casos de uso Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 180 13/05/2021 g g q q Proceso de Requisitos Artefactos Análisis Especificación Validación Actividades Especificación de Requisitos Documento de Requisitos Modelo del Sistema Planificación Obtención Verificación Documento de Visión Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 181 13/05/2021 g g q q Análisis y Diseño OO Las herramientas usadas en la etapa de análisis (investigación del problema) se pueden resumir en la siguiente tabla: Herramienta de análisis Preguntas que contesta Modelo conceptual ¿Cuáles son los conceptos, los términos del dominio? Diagramas de Actividades ¿Cómo se lleva a cabo cada proceso del dominio? Casos de uso ¿Cuáles son las tareas del dominio? Diagramas de interacción ¿Cuáles son los eventos y las operac. del sistema?
  • 46. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 182 13/05/2021 g g q q Casos de uso • Casos de uso son ideados por Jacobson a principios de los noventa. • Inspirados en el concepto de escenario. • Escenarios habían sido utilizados para describir procesos. Emisor Centralita Receptor listo( ) tono marcar_numero tono_sonando timbre_sonando telefono_cogido para_tono para_timbre Ejemplo de Escenario Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 183 13/05/2021 g g q q Captura y Modelado de Requisitos • El Modelo de Casos de Uso (MCU) establece los requisitos funcionales del sistema de información. • En el MCU se recoge la descripción externa y observable de cómo se utiliza el sistema de información: – Descripción de CÓMO se utiliza el sistema: • Funciones, Servicios y Procesos. – Descripción EXTERNA del uso del sistema: • Se identifican y describen funciones/servicios/procesos del negocio que un usuario puede hacer con el soporte del sistema de información. – Descripción OBSERVABLE del uso del sistema: • Es como si hubiera un observador externo que va anotando lo que hace el usuario con el sistema y lo que el sistema responde al usuario. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 184 13/05/2021 g g q q Contenido • Casos de uso – Definición de caso de uso – Conceptos • Diagramas • Actores • Relaciones • Diagrama de contexto – Detalle de casos de uso – Guiones – Interacciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 185 13/05/2021 g g q q Algunas definiciones de caso de uso • “Describe un conjunto de interacciones entre actores externos y el sistema en consideración orientadas a satisfacer un objetivo de un actor”. [D. Bredemeyer] • “Es una colección de posibles secuencias de interacciones entre el sistema en discusión y sus actores externos, relacionado con un objetivo particular”. [A. Cockburn] • “Es una colección de escenarios de éxito y fracaso relacionados que describe a un actor que usa un sistema para conseguir un objetivo” [C. Larman]
  • 47. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 186 13/05/2021 g g q q Definición de casos de uso • Un caso de uso es la secuencia de transacciones en un sistema cuya tarea es producir un resultado con valor medible para un actor del sistema (I. Jacobson) – Secuencia de transacciones: Serie de interacciones entre el sistema y el actor que lo usa. – Sistema: Entidad encapsulada cuyos requerimientos han sido descritos (programa, computador) – Resultado con valor medible: objetivo logrado con valor no trivial para el actor. – Actor: Entidad fuera del sistema que interactúa con este (usuario, otro sistema). Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 187 13/05/2021 g g q q Definición de casos de uso • Los casos de uso sirven para encontrar y capturar los requerimientos (especialmente los funcionales) • Son descripciones narrativas en lenguaje natural de los procesos en un formato estructurado de prosa. • Los casos de uso no son propiamente un elemento del análisis y diseño orientado a objetos (pueden ser utilizados en análisis no orientados a objetos). • Tienen la gran virtud de mantener la información descrita de forma simple y comprensible por ambas partes • Son denominados por un VERBO. Ejemplo: “Comprar producto”. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 188 13/05/2021 g g q q Casos de Uso • El conjunto de casos de uso puede ser utilizado para documentar los requerimientos operacionales del sistema. • Los casos de uso describen el comportamiento del sistema bajo la forma de acciones y reacciones desde el punto de vista del usuario. • Los casos de uso describen la funcionalidad del sistema sin dar detalles de implementación. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 189 13/05/2021 g g q q Ejemplo: Jugar Binario • Se tiene un juego de dados llamado “Binario” en que un jugador lanza 2 dados. Si el resultado suma 7 entonces Gana si no Pierde. • Jugar Binario: – Este caso de uso comienza cuando el jugador recoge y tira 2 dados. – Si los puntos suman siete, gana y pierde si suman cualquier otro número.
  • 48. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 190 13/05/2021 g g q q Caso de uso, ejemplo corto • Recibir pedido en restaurante: – Un cliente solicita atención (ya leyó la carta). – El mesero llega a la mesa y anota en su PDA el número. – El mesero responde consultas sobre el menú. – El mesero anota el pedido. – El Sistema toma razón del pedido final. • Es una prosa descriptiva (en este ejemplo faltó escribir el objetivo) Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 191 13/05/2021 g g q q Casos de Uso • Los casos de uso permiten que los desarrolladores puedan comunicarse con los usuarios del sistema. • Los casos de uso bien estructurados denotan comportamientos esenciales solamente. • Los casos de uso permiten definir: – los límites de un sistema, y – las relaciones entre el sistema y el entorno Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 192 13/05/2021 g g q q Como detectar Casos de Uso • Se debe focalizar la atención en buscar de qué manera el sistema en cuestión logra entregar un resultado observable de valor para el usuario. • Tratar de centrarse en la pregunta ¿cómo puedo, utilizando el sistema… – proporcionar un valor observable para el usuario?, o – cumplir con los objetivos del usuario? Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 193 13/05/2021 g g q q Como detectar Casos de Uso • Muchas veces un caso de uso puede utilizar varias funcionalidades del sistema, esta es una potencialidad importante que debe notar – Los casos de uso están pensados en los objetivos de los actores y no en las funciones – Por tanto las funciones pueden ser ordenadas de manera mas clara tanto para los Clientes como para el equipo de desarrollo
  • 49. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 194 13/05/2021 g g q q Desarrollando Casos de Uso • El proceso de desarrollar casos de uso produce dos resultados. 1. Una lista de casos de uso • Define los límites del sistema. • Identifica los actores que interactúan con el sistema y los objetivos de cada uno de ellos. • Define los requerimientos funcionales de alto nivel del sistema. 2. Un conjunto de escenarios por cada caso de uso • Describe el comportamiento de cada caso de uso en un contexto en particular. • Identifica los objetos participantes en cada contexto. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 195 13/05/2021 g g q q 1. Lista de Casos de Uso • Una lista de casos de uso incluye: – Lista de casos de uso utilizando el formato de objetos. – Descripción de cada caso de uso – Descripción de cada actor – Diagrama o tabla de relaciones entre casos de uso y actores (opcional). Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 196 13/05/2021 g g q q 2. Conjunto de escenarios • ¿Qué es un escenario? – Un escenario es una secuencia específica de acciones que ilustran comportamiento. – Los escenarios son a los casos de uso, como las instancias son a las clases. • ¿Por qué necesitamos definir escenarios? – Los casos de uso describen la funcionalidad del sistema a alto nivel – Los escenarios detallan esa funcionalidad. – Los casos de uso describen la funcionalidad aplicable en muchos contextos; – Los escenarios definen cada contexto y el resultado esperado. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 197 13/05/2021 g g q q Descripción de casos de uso, actores y escenarios 1. Caso de Uso A 2. Caso de Uso B 3. Caso de Uso C …………. …………. …………. Lista de Casos de Uso Identificador Unico: ________________ Nombre: _________________________ Asunciones:_____________________ ________________________________ Salidas:__________________________ ________________________________ ________________________________ Escenarios
  • 50. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 198 13/05/2021 g g q q Descripción de casos de uso, actores y escenarios 1. Caso de Uso A 2. Caso de Uso B 3. Caso de Uso C …………. …………. …………. Lista de Casos de Uso Nombre: _________________ Descripción: ______________ ________________________ ________________________ Notas:___________________ ________________________ Descripción de Casos de Uso Identificador Unico: ________________ Nombre: _________________________ Asunciones:_____________________ ________________________________ Salidas:__________________________ ________________________________ ________________________________ Escenarios Nombre: _________________ Descripción: ______________ ________________________ ________________________ Notas:___________________ ________________________ Descripción de Actores Diagrama de Casos de Uso Caso de Uso A Caso de Uso A Caso de Uso B Caso de Uso C Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 199 13/05/2021 g g q q Contenido • Casos de uso – Definición de caso de uso – Conceptos • Diagramas • Actores • Relaciones • Diagrama de contexto – Detalle de casos de uso – Guiones – Interacciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 200 13/05/2021 g g q q Contenido • Casos de uso – Definición de caso de uso – Conceptos • Diagramas • Actores • Relaciones • Diagrama de contexto – Detalle de casos de uso – Guiones – Interacciones Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 201 13/05/2021 g g q q Diagramas de casos de uso • Se utiliza durante la obtención de requisitos para representar el comportamiento externo. • Actores: representan roles, es decir, un tipo de usuario del sistema • Casos de uso: representan una secuencia de interacción para un tipo de funcionalidad • El modelo de casos de uso es el conjunto de todos los casos de uso. Es una descripción completa de la funcionalidad del sistema y su entorno. Pasajero Compra de pasaje
  • 51. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 202 13/05/2021 g g q q Diagramas Casos de Uso • Es una colección de actores, casos de uso y las relaciones entre estos. • Los diagramas de casos de uso son útiles para: – Determinar los requerimientos – Comunicación entre los desarrolladores y los usuarios. – Generación de casos de prueba. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 203 13/05/2021 g g q q Actores • Un actor modela una entidad externa que se comunica con el sistema: – Usuarios – Sistema externo – Entorno físico • Un actor tiene un nombre único y una descripción opcional (será obligatorio en este curso). • Ejemplos: – Pasajero: una persona en el tren – Satélite GPS: proporciona al sistema coordenadas GPS Pasajero Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 204 13/05/2021 g g q q Caso de uso Un caso de uso representa una clase de funcionalidad proporcionada por el sistema como un flujo de eventos. Un caso de uso consta de: • Nombre único • Actores participantes • Condiciones de entrada • Flujo de eventos • Condiciones de salida • Requisitos especiales Compra de pasaje Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 205 13/05/2021 g g q q Ejemplo de diagrama de caso de uso Sistema Caso de Uso Serie de transacciones de valor para el actor Entidad fuera del sistema quien interactúa con este Actor
  • 52. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 206 13/05/2021 g g q q Diagramas de Casos de Uso • Notación Caso de Uso cliente actor Solicitar préstamo Sistema Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 207 13/05/2021 g g q q Diagramas de Casos de Uso • Un caso de uso describe una interacción entre el sistema y un agente externo que se denomina actor: – Un caso de uso capta siempre una función visible para el usuario. – Un caso de uso logra un objetivo concreto y específico para el usuario. – Un caso de uso puede ser algo simple o algo complejo, en este caso se puede formular en función de otros casos de uso. • Los diagramas de casos de uso son recursos UML destinados a: – Delimitar que partes pertenecen al sistema y cuales son externas a él. – Captura los elementos de funcionalidad del sistema. – Identifica y clasifica los elementos externos que interaccionan con él. – Formula los protocolos de interacción entre actores y sistema. • Los diagramas de casos de uso hacen referencia a la funcionalidad del sistema y no hacen referencia a la implementación. • Los casos de uso constituyen una representación de la funcionalidad que se utiliza como guía de las restantes fases (análisis, diseño, codificación, prueba y despliegue) Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 208 13/05/2021 g g q q Elementos de los diagramas de casos de uso UML Actor_1 Actor_2 Actor_3 Actor_4 Use Case 2 uses extends specializes Use Case 1 Use Case 3 Use Case 4 Use Case 5 System Actor Protocolo Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 209 13/05/2021 g g q q Uso de paquetes para organizar los casos de uso • Si el diagrama de casos de uso que resulta es demasiado grande y enmarañado, se pueden crear diferentes diagramas de casos de uso y cada uno de ellos representaría una vista del diagrama general. • Cada diagrama puede representar un área de principal de funcionalidad del sistema. O la funcionalidad relativa a un actor, etc. – Incluso puede ser conveniente que un mismo caso de uso aparezca en diferentes diagramas. En estos casos la utilización de una herramienta CASE es imprescindible para mantener la coherencia del modelo. • En sistema grandes puede ser útil organizar los diagramas en paquetes, cada uno de ellos representa la funcionalidad de un área o de un subsistema.
  • 53. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 210 13/05/2021 g g q q Uso de paquetes para organizar los casos de uso Registro de pedidos Ejecución de pedidos Cliente Agente Devuelve producto Cancela pedido Obtén catálogo Estatus pedido Realiza pedido Registra reclamación Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 211 13/05/2021 g g q q Gestión de interacciones temporizadas • Ciertas actividades tienen lugar en instantes determinados de tiempo y son iniciadas desde el reloj interno. • Hay dos formas de abordar esta situación: – El tiempo puede ser tratado como un actor que inicia el caso de uso. – El tiempo se considera parte del sistema y el actor que se relaciona con el caso de uso realiza la interacción motivado por ella. • Es preferible la primera situación ya que mantiene el principio de que los casos de uso se inician siempre por un actor. Envía catálogo Envía catálogo Inicio cuatrimestre Cliente Cliente El tiempo como actor El tiempo parte del sistema Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 212 13/05/2021 g g q q Encontrando Casos de Uso 1) Identificar los usuarios del sistema. 2) Encontrar todos los roles que juegan los usuarios y que son relevantes al sistema. 3) Para cada rol identificar todas las formas (objetivos) de interactuar con el sistema. 4) Crea un caso de uso por cada objetivo. 5) Estructurar los casos de uso. (¡Cuidado!) 6) Revisar y validar con el usuario. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 213 13/05/2021 g g q q Contenido • Casos de uso – Definición de caso de uso – Conceptos • Diagramas • Actores • Relaciones • Diagrama de contexto – Detalle de casos de uso – Guiones – Interacciones
  • 54. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 214 13/05/2021 g g q q ¿Quiénes son los actores? • Los actores son entidades activas. Su comportamiento no es predefinido. • Ellos son fuente de eventos a los cuales el sistema debe reaccionar. • Un actor es una entidad que interactúa con el sistema. • Ejemplos: – Un usuario humano – Otro sistema que requiere de servicios – Otro sistema que provee servicios Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 215 13/05/2021 g g q q ¿Quiénes son los actores? • El actor esta fuera de los límites del sistema. No es un objeto dentro del sistema. • Los actores inician y llevan a cabo los casos de uso. • Un actor es una abstracción de un rol - No es una persona o el puesto que ocupa: – Un usuario puede jugar múltiples roles. – Dos personas diferentes podrían jugar el mismo rol. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 216 13/05/2021 g g q q Tipos de Actores • En un caso de uso pueden haber roles primarios y secundarios – Actor primario: Inicia el caso de uso. – Actor secundario: Participa en el caso de uso Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 217 13/05/2021 g g q q Ejemplo de Actores Usuario Usuario Usuario máquina Otro sistema Sistema
  • 55. Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 218 13/05/2021 g g q q Ejemplo de actores de una Tienda Web • Cliente: Persona que realiza pedidos a Tienda Web. • Agente: Empleado de Tienda Web que procesa los pedidos. • Empleado: Empleado de Tienda Web que empaqueta, etiqueta y envía los pedidos. • Mensajería: Empresa que realiza los envíos. • Gestor del inventario: Gestor de la base de datos de la empresa. • Tesorería: Software que lleva las cuentas de los clientes y de la empresa. Mensajería Tesorería Inventario Empleado Agente Cliente Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 219 13/05/2021 g g q q Diagrama de casos de uso de una Tienda Web Cliente Agente Empleado Tesorería Gestor Inventario Devuelve producto Cancela pedido Obtén catálogo Estatus pedido Realiza pedido Envía paquete Información producto Actualiza inventario Registra productos Carga pago Registra descuento Imprime etiqueta Calcula costo envío Registra reclamación Mensajería Procesa pedido Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 220 13/05/2021 g g q q Identificación de actores • ¿Quién va a hacer las funciones principales del sistema?. • ¿Quién necesitará soporte del sistema para hacer su trabajo?. • ¿Qué otros sistemas necesitará usar su sistema?. • Buscar por roles, no usuarios individuales o títulos. – Un usuario puede jugar múltiples roles – Múltiples usuarios podrían jugar el mismo rol Ingeniería de requerimientos Carrera de Software Ph.D. Franklin Parrales 221 13/05/2021 g g q q Descripción de actores Número ACT.# Actor Nombre del Actor Descripción descripción del actor Responabilidades •Responsabilidad 1 •Responsabilidad 2 Fuentes Stakeholders que identificaron y contribuyeron a definir al actor