Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez [email protected] Escuela de...

37
Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez [email protected] Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín Actores y sus roles Modelo del dominio

Transcript of Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez [email protected] Escuela de...

Page 1: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Ingeniería de SoftwareClase 5

Gloria Lucia Giraldo Gó[email protected] de SistemasUniversidad Nacional de Colombia – Sede Medellín

Actores y sus rolesModelo del dominio

Page 2: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Contenido

Repaso Actores y sus roles Modelo del dominio Actividad (taller)

Page 3: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

REPASOCiclo de vida clásico del software:

•Definición•Análisis•Diseño•Desarrollo•Pruebas•Mantenimiento

CONOCER Y ENTENDER

Captura de los Captura de los requerimientos (elicitación requerimientos (elicitación de requisitos) utilizando la de requisitos) utilizando la propuesta metodológica propuesta metodológica “UN-METODO”“UN-METODO”

Page 4: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

REPASOCiclo de vida clásico del software:

•Definición•Analisis•Diseño•Desarrollo•Pruebas•Mantenimiento

CONOCER Y ENTENDER

¿QUÉ ?¿POR QUÉ ? ¿CÓMO ?¿DÓNDE ?¿CUÁNDO? ¿QUIÉN ?

?

Page 5: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

REPASO

Ciclo de vida clásico del software:

•Definición•Analisis•Diseño•Desarrollo•Pruebas•Mantenimiento

UN-METODO

• Modelo verbal• Esquema preconceptual

Page 6: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

REPASOModelo Verbal: descripción en lenguaje natural del sistema, el cual permite identificar

actores, procesos, objetivos y datos para cumplir esos objetivos

Esquema Preconceptual:

Relación dinámica

concepto condición precondiciónconexión

Relaciónestructural

Page 7: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Esquema PreconceptualSintaxis

concepto1 concepto2relación

condición relaciónsícondición relaciónsí

relación

no

relación relación concepto relación relación

concepto1 relación

Page 8: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Cuando un cliente de RAPIZZA Ltda. tiene necesidad de una pizza realiza una llamada a la pizzería en la cual es atendido por el despachador, quien toma el pedido de los productos requeridos; cada producto posee un código y su valor unitario se encuentra en una lista de precios. Del cliente, el despachador solicita la cédula, el nombre, teléfono y dirección. Dependiendo de la dirección, el cliente se ubica en una zona de cobertura. Además, del pedido el despachador registra el número, la fecha, la hora de salida y la hora de entrega, además del detalle de los productos a enviar, incluyendo la cantidad y una observación (si la hay).

Extracto del caso RAPIZZA

Page 9: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Extracto del caso RAPIZZA

1. Cuando un cliente de RAPIZZA Ltda. tiene necesidad de una pizza realiza una llamada a la pizzería en la cual es atendido por el despachador.2. El despachador toma el pedido de los productos requeridos3. Cada producto posee un código y su valor unitario se encuentra en una lista de precios. 4. Del cliente, el despachador solicita la cédula, el nombre, teléfono y dirección. 5. Dependiendo de la dirección, el cliente se ubica en una zona de cobertura. 6. Además, del pedido el despachador registra el número, la fecha, la hora de salida y la hora de entrega, además del detalle de los productos a enviar, incluyendo la cantidad y una observación (si la hay).

Page 10: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Extracto de RAPIZZA

CLIENTE

REALIZA

PEDIDO

LLAMA DESPACHADOR

REGISTRA

SE UBICAZONA

DEPENDE

TIENE

CÉDULA

DIRECCIÓN

TELÉFONONOMBRE

TIENE

CANTIDAD OBSERVACIÓNPRODUCTO

CÓDIGO

PRECIOTIENE

Page 11: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

CONOCER Y ENTENDER

¿Cómo proceden los diferentes actores?

¿Cuáles son las relaciones entre ellos?

¿Cuáles son sus objetivos?UN-METODO no parte de la solución sino que inicialmente se focaliza en conocer la organización, sus funciones y razón de ser, sus problemas y objetivos

Page 12: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

CONOCER Y ENTENDERSe debe determinar: El marco organizacional Los objetivos propios del área de la

aplicación La organización propia del área Los actores e interesados en las funciones

del área Los roles e intereses de los actores e

interesados frente a las funciones que les compete

El vocabulario propio del área.

Page 13: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Estructura de la organización Organigrama: representación de las

relaciones de poder entre los diferentes actores. Existen múltiples paradigmas para su representación, uno de ellos es el jerárquico

Responsabilidades generales de las áreas: descripción de los objetivos generales de la organización

Page 14: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Organigrama de RAPIZZA Ltda.

PROPIETARIO

REPARTIDOR

CHEFDESPACHADOR CONTADOR

Page 15: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

RAPIZZA Ltda. Responsabilidades generales de las áreas

• Es una entidad con ánimo de lucro• La actividad de la pizzería debe ser suficiente para asegurar que se mantenga la venta del producto y que se conserven los precios a un nivel competitivo. Para ello, es necesario que la compra se incentive mediante promociones y publicidad, pero también ofreciendo un servicio de calidad que permita el retorno de los clientes a realizar nuevos pedidos.• Se debe garantizar el acceso de los clientes a los diferentes productos de la pizzería, conservando las políticas necesarias de envío de productos y realizar estudios de sus necesidades con el fin de ofrecer nuevos productos.• También, se debe garantizar el recaudo del dinero, ya sea por pago directo del cliente, o por recuperación de pagos mediante las cuentas de cobro a los repartidores.

Page 16: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Área del problema

Objetivos y responsabilidades propias del área del problema. Ej: Garantizar la recuperación del dinero de las ventas, asegurar el registro de la información de los pedidos, asegurar la entrega a tiempo de los productos

Organigrama detallado del área del problema

Responsabilidades de las componentes del área

Page 17: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Actores y roles

Se identifican a través del análisis del modelo verbal Respondiendo a las preguntas: para qué fue diseñado el sistema o a quiénes va a ayudar el sistema?Hay que definir cómo es la relación entre los actores y entre ellos con el sistemaNo siempre los actores son seres humanos, pueden ser máquinas o procesos

Page 18: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Actores y roles

Se distinguen tres grupos:

principales: interactúan directamente con el sistema

secundarios: mantienen o supervisan el sistema

pasivos: no son ni principales ni secundarios pero están interesados en el sistema

Page 19: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

El caso de RAPIZZA Ltda.

¿Quiénes son los actores?

Cliente Despachador Chef Repartidor

¿Cuáles son los roles de los diferentes actores?

Page 20: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

El caso de RAPIZZA Ltda.Una primera aproximación a la definición

del rol del DESPACHADOR

Toma los pedidos telefónicos y garantiza el envío de los productos

Recibe las llamadas de los clientes Solicita al cliente información personal: cédula, el nombre,

teléfono y dirección Registra numero de pedido, fecha, hora de salida, hora de

entrega, detalle de los productos, incluyendo cantidad y observaciones (opcionales)

Si hay un repartidor disponible le asigna un pedido y lo despacha

Recibe el dinero y los pedidos firmados por el cliente que el repartidor le entrega

Guarda el dinero en la caja Elabora cuentas de cobro al repartidor por cada pedido

firmado y no pagado por el cliente Recupera el dinero de las ventas

Page 21: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

El caso de RAPIZZA Ltda.

Registra y despacha el pedidoAsigna el repartidor para un determinado conjunto de pedidosRegistra la hora de entrega de los pedidos (cuando el repartidor regresa) Registra el pago que realiza el clienteElabora las cuentas de cobro que permiten cancelar los pedidos

Una definición “mejorada” del rol del DESPACHADOR

Page 22: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

El caso de RAPIZZA Ltda.

Los actores y sus funciones son : Cliente: Llama a la pizzería para realizar los pedidos,

brinda información del pedido e información personal, recibe los productos del pedido, realiza el pago del pedido y firma el pedido.

Despachador: Registra y despacha el pedido, asigna el repartidor para un determinado conjunto de pedidos, registra la hora de entrega de los pedidos (cuando el repartidor regresa), registra el pago que realiza el cliente y elabora las cuentas de cobro que permiten cancelar los pedidos.

Chef: Prepara los productos de los pedidos. Repartidor: Entrega los pedidos a los clientes y paga

las cuentas de cobro cuando no se cumple a tiempo con la entrega

Page 23: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

El modelo del dominio

Page 24: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

...pero qué significa “dominio”?

Matemáticas: se llama “dominio de definición” de una función al conjunto de valores para los cuales la función esta definida.

Por ejemplo: f(x) = 1/x

el dominio de esta función es el conjunto de los reales menos el cero

Page 25: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

...pero qué significa “dominio”?Internet: se habla de “nombre de dominio” al conjunto de caracteres que identifican un sitio de internet accesible por un usuario. Por ejemplo: .com (comercial-empresas) .edu (educación, centros docentes), .org (organización sin fines de lucro), .net (operación de la red), .gov (Gobierno USA) .mil (ejército USA).

Page 26: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

...pero qué significa “dominio”?

Ingenieria de software : se llama “modelo del dominio” a la representación visual de los conceptos u objetos del mundo real en un dominio de interés. Este modelo agrupa los conceptos de un dominio.Mecanismo fundamental para comprender el dominio del problema y para establecer conceptos comunes

Page 27: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Modelo del dominio

En él se representan los conceptos del dominio que nos interesa, sus características y las relaciones entre dichos conceptosEs un diccionario visual del dominio del problema

Qué es un concepto ? Una idea Es el elemento básico del pensamiento Conocimiento propio sobre una

categoría de objetos o acontecimientos

Page 28: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Modelo del dominio

Las ONTOLOGIAS son herramientas que sirven para esquematizar el modelo del dominio de un sistema particular

Page 29: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

¿Qué es una ontología?

Es un término prestado de la filosofía Etimológicamente: ontos=ser logo=tratado En informática fue introducido por la comunidad

“Inteligencia artificial” y redefinida como “una especificación explícita y formal de una conceptualización compartida” (Gruber, 1993)(Borst, 1997)

Actualmente muy de “moda” (recuperación de información de la Web) Por qué? Porque en este momento existen problemas semánticos en la información de la Web y las ontologías ayudan a dar semántica a la información

Page 30: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

¿Qué es una ontología?

Las ontologías catalogan y definen los tipos de cosas que existen en un cierto dominio, así como sus relaciones y propiedades.

Ejemplo: una ontología del mundo empresarial usará conceptos como Venta, Compra, Transferencia, Pago, etc.; y relaciones como “Una Transferencia corresponde a una Venta o a una Compra”, “Un Pago corresponde a una o varias Transferencias”, etc.

Page 31: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Las ontologías en la ingeniería del software

Ayudan a la especificación de los sistemas de software

La falta de un entendimiento común conduce a dificultades en identificar los requisitos y especificaciones del sistema que se busca desarrollar, las ontologías facilitan el acuerdo entre desarrolladores y usuarios (Términos comunes)

una ontología define los términos que se usan para describir y representar un cierto dominio

Page 32: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Modelo del dominio

Simbología básica

Nombre del concepto Nombre del concepto

Caracterís

ticas

Caracterís

ticasNombre relación

Page 33: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Reglas1. Los Actores del área del problema deben estar

representados como conceptos del Esquema Preconceptual y como conceptos del Modelo del Dominio.

2. El modelo verbal del problema suministra pistas en relación con los elementos que harán parte de los Esquemas Preconceptuales y los Modelos del Dominio. [ZAPATA Y GÓMEZ, 2006]

3. Los conceptos del Esquema Preconceptual deben estar contenidos en el modelo del dominio como conceptos o características.

4. Las relaciones del Esquema Preconceptual deben corresponder a relaciones de asociación en el Modelo del Dominio.

Page 34: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Esquema PreconceptualEjemplo

Planilla

tiene

Reservacióncomputador

tiene EstudianteComputador

Fecha-Hora

AuxiliarAdministrativo

solicita

registra

registra

Lista de Espera

Computador(x).disponible

no

si

tiene

Nombre Carné

Page 35: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Modelo del dominioEjemplo

ComputadorCódigo

Planilla

Mes

Estudiante

NombreCarné

registra reservaciónLista de Espera

NombreFecha

ReservaciónComputador

FechaHora

solicita

tienetiene

registra reservación

tiene

Auxiliaradministrativo

Nombre

Page 36: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

RAPIZZA Ltda. lleva ya cerca de un año de actividad y hasta ahora no se ha conseguido ganar tanto dinero como se había esperado. Esta pizzería ofrece a los clientes diversos tipos y tamaños de pizza, además de la posibilidad de ordenar aditivos. Su estructura no es muy grande pues cuenta con un despachador, tres chef y siete repartidores que realizan las diferentes funciones necesarias para la satisfacción de las necesidades de los clientes en relación con los productos de la pizzería. Así, el despachador se debe encargar de tomar los pedidos telefónicos y garantizar el envío de los productos, los chef preparan las pizzas de los pedidos y los repartidores las entregan. La pizzería tiene una zona de cobertura determinada y con el fin de competir frente a otras pizzerías existentes en la zona se ha estado ofreciendo al cliente una promoción que consiste en entregarle el pedido totalmente gratis si éste tarda en ser entregado más de 30 minutos. Esta promoción ha atraído una buena cantidad de clientes al negocio, pero también se ha convertido en una de las principales fuentes de pérdida de dinero, puesto que muy a menudo los repartidores no consiguen llevar todas las pizzas a tiempo. A inconformidad de los repartidores, se ha impuesto en el reglamento que cada pedido entregado tarde, deberá ser pagado por el repartidor responsable, con el fin de evitar tanta pérdida de dinero y conseguir que los repartidores se esfuercen más en su trabajo.

Modelo Verbal RAPIZZA

Page 37: Ingeniería de Software Clase 5 Gloria Lucia Giraldo Gómez glgiraldog@unalmed.edu.co Escuela de Sistemas Universidad Nacional de Colombia – Sede Medellín.

Cuando un cliente de RAPIZZA Ltda. tiene necesidad de una pizza realiza una llamada a la pizzería en la cual es atendido por el despachador, quien toma el pedido de los productos requeridos; cada producto posee un código y su valor unitario se encuentra en una lista de precios. Del cliente, el despachador solicita la cédula, el nombre, teléfono y dirección. Dependiendo de la dirección, el cliente se ubica en una zona de cobertura. Además, del pedido el despachador registra el número, la fecha, la hora de salida y la hora de entrega, además del detalle de los productos a enviar, incluyendo la cantidad y una observación (si la hay).

Luego, el pedido pasa al chef, quien prepara los productos allí incluidos. Una vez los productos se han preparado y en cuanto uno de los repartidores se encuentre disponible, el despachador asigna un repartidor y despacha el pedido; el repartidor toma los pedidos preparados y se traslada a la dirección de destino del pedido para realizar la entrega.

Cuando llega el repartidor, el cliente recibe las pizzas y realiza el pago, siempre y cuando el tiempo de entrega sea inferior a 30 minutos; en caso contrario, únicamente firma el pedido sin realizar el pago. Una vez entregados todos los pedidos que lleva el repartidor, éste regresa a la pizzería y entrega el dinero y los pedidos firmados al despachador. El despachador, entonces, guarda el dinero en la caja y elabora cuentas de cobro al repartidor por cada pedido firmado que el cliente no haya pagado. Tanto los pagos como las cuentas de cobro cancelan los pedidos.

Uno de los principales problemas de la pizzería es la recuperación del dinero de las ventas por parte del despachador, ya que se requiere asegurar el envío del producto al cliente y la entrega a tiempo de los pedidos a cargo de los repartidores. Esto es sumamente importante para RAPIZZA Ltda., ya que de ello depende el éxito de las ventas y la satisfacción al cliente, medio por el cual se espera conseguir reconocimiento y un incremento en la clientela.