53
1 Fundamentos de Ingeniería de SW 73 UTFSM Análisis y diseño orientado a objetos Contenido ? ¿Qué es análisis? ? ¿Qué es diseño? ? Análisis y diseño OO ? Uso de UML ? Introducción al proceso de desarrollo Fundamentos de Ingeniería de SW 74 UTFSM Análisis y diseño orientado a objetos Muestra ? El proverbio “El hábito no hace el monje” se aplica perfectamente a la tecnología de objetos. ? El hecho de conocer un lenguaje orientado a objetos (por ej. Java) y además tener acceso a una rica biblioteca (como la de Java) es un primer paso necesario pero insuficiente para crear sistemas de objetos. ? Se requiere además analizar y diseñar un sistema desde la perspectiva de objetos. Fundamentos de Ingeniería de SW 75 UTFSM Análisis y diseño orientado a objetos Muestra ? En conclusión, se ayudará a los ingenieros: ? A aplicar los principios y patrones para aprender a desarrollar mejores diseños. ? A efectuar varias actividades comunes en el análisis y en el diseño. ? A crear elementos útiles en la notación de UML. ? Todo lo anterior será ejemplificado con un caso. Fundamentos de Ingeniería de SW 76 UTFSM Análisis y diseño orientado a objetos ¿Qué son análisis y diseño? ? El análisis se centra en la investigación del problema, no en la manera de definir la solución. ? Por ejemplo, si se necesita un nuevo sistema de biblioteca, ¿Cuáles procesos de la institución se relacionan con su uso? ? El diseño pone de relieve una solución lógica: cómo el sistema cumple con los requerimientos. ? ¿De qué manera el sistema de la biblioteca capturará y registrará los prestamos de libros?. ? La esencia de estas actividades consiste en situar el dominio de un problema y su solución lógica dentro de la perspectiva de los objetos. Fundamentos de Ingeniería de SW 77 UTFSM Análisis y diseño orientado a objetos ¿Qué son análisis y diseño? ? Durante el análisis orientado a objetos se procura ante todo identificar y describir los objetos – o conceptos – dentro del dominio del problema. ? Durante el diseño orientado a objetos, se procura definir objetos lógicos del software. ? Finalmente, durante la construcción o programación orientada a objetos, se implementan los componentes de diseño. Análisis Diseño Construcción Investigación del problema Solución Lógica Código Fundamentos de Ingeniería de SW 78 UTFSM Análisis y diseño orientado a objetos ¿Qué son análisis y diseño? Concepto de Dominio Representación en el diseño Representación en programación Libro titulo public class Libro { public void print(); Private String titulo; } Análisis Diseño Construcción

Análisis y diseño orientado a objetos - inf.utfsm.clliuba/taller/ad_oo1.pdf · ?Uso de UML?Introducción al proceso de desarrollo Fundamentos de Ingeniería de SW 74 UTFSM EX UMBRA

  • Upload
    dodiep

  • View
    232

  • Download
    1

Embed Size (px)

Citation preview

11

Fundamentos de Ingeniería de SW 73UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosContenido

? ¿Qué es análisis?? ¿Qué es diseño?

? Análisis y diseño OO? Uso de UML

? Introducción al proceso de desarrollo

Fundamentos de Ingeniería de SW 74UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosMuestra

? El proverbio “El hábito no hace el monje” se aplica perfectamente a la tecnología de objetos. ? El hecho de conocer un lenguaje orientado a objetos (por ej. Java)

y además tener acceso a una rica biblioteca (como la de Java) esun primer paso necesario pero insuficiente para crear sistemas de objetos.

? Se requiere además analizar y diseñar un sistema desde la perspectiva de objetos.

Fundamentos de Ingeniería de SW 75UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosMuestra

? En conclusión, se ayudará a los ingenieros:? A aplicar los principios y patrones para aprender a desarrollar

mejores diseños. ? A efectuar varias actividades comunes en el análisis y en el diseño. ? A crear elementos útiles en la notación de UML.

? Todo lo anterior será ejemplificado con un caso.

Fundamentos de Ingeniería de SW 76UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetos¿Qué son análisis y diseño?

? El análisis se centra en la investigación del problema, no en la manera de definir la solución. ? Por ejemplo, si se necesita un nuevo sistema de biblioteca, ¿Cuáles

procesos de la institución se relacionan con su uso?

? El diseño pone de relieve una solución lógica: cómo el sistema cumple con los requerimientos. ? ¿De qué manera el sistema de la biblioteca capturará y registrará

los prestamos de libros?.

? La esencia de estas actividades consiste en situar el dominio de un problema y su solución lógica dentro de la perspectiva de los objetos.

Fundamentos de Ingeniería de SW 77UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetos¿Qué son análisis y diseño?

? Durante el análisis orientado a objetos se procura ante todo identificar y describir los objetos – o conceptos –dentro del dominio del problema.

? Durante el diseño orientado a objetos, se procura definir objetos lógicos del software.

? Finalmente, durante la construcción o programación orientada a objetos, se implementan los componentes de diseño.

Análisis Diseño Construcción

Investigación del problema

Solución Lógica Código

Fundamentos de Ingeniería de SW 78UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetos¿Qué son análisis y diseño?

Concepto de Dominio

Representación en el diseño

Representación en programación

Libro

titulo

public class Libro{ public void print();

Private String titulo;}

Análisis Diseño Construcción

22

Fundamentos de Ingeniería de SW 79UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? Para entender los requerimientos se necesita, en parte, conocer los procesos de dominio y el ambiente externo, o sea los factores externos que participan en los procesos.

? Dichos procesos se pueden expresar en forma de casos de uso, los cuales son una descripción narrativa del proceso de dominio en un formato estructurado de prosa.

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 80UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? Por ejemplo, en el juego de los dados: ? Caso de uso: Juega un juego? Participantes: Jugador?Descripción: Este caso de uso comienza cuando el jugador

recoge y hace rodar los dados. Si los puntos suman siete, gana ypierde si suman cualquier otro numero.

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 81UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? Para descomponer el dominio del problema hay que identificar los conceptos, los atributos y las asociaciones del dominio que se juzgan importantes.

? El resultado puede expresarse en un modelo conceptual, el cual se muestra gráficamente en un grupo de diagramas que describen los conceptos (objetos).

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 82UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? Por ejemplo, una parte del modelo conceptual muestra los conceptos de Jugador, Dados y Juego de dados, sus asociaciones y atributos.

Jugador

nombre

Juego de dados

Dado

valorMostrado

1Juega1

1 Incluye

1 Lanza 2

2

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 83UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? El modelo conceptual no es una descripción de los componentes de software; representa conceptos en el dominio del problema del mundo real.

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 84UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? El diseño orientado a objetos tiene por objetivo definir las especificaciones lógicas del software que cumplan con los requisitos funcionales.

? Un paso esencial en esta fase es la asignación de los responsabilidades entre los objetos y mostrar como interactúan a través de mensajes.

? El diagrama de colaboración presenta el flujo de mensajes entre las instancias y la invocación de métodos.

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

33

Fundamentos de Ingeniería de SW 85UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? Por ejemplo, la figura muestra gráficamente el paso esencial del juego, enviando mensajes a las instancias de las clases Jugador y Dado.

:Jugador d1:Dadojugar() 1:r1:= lanzar()

d2:Dado2:r2:= lanzar()

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 86UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? Para definir una clase es preciso contestar varias preguntas: ? ¿Cómo se conectan unos objetos a otros? ? ¿Cuáles son los métodos de una clase?

? Por ejemplo, obtenemos que Jugador requiere de un método jugar, mientras que el Dado requiere de un método lanzar.

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 87UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosEjemplo

? A diferencia del modelo conceptual, el modelo de diseño no muestra gráficamente conceptos del mundo real: describe únicamente los componentes del software.

Jugador

nombre

jugar()

Juego de dados

inicializar()

Dado

valorMostrado

lanzar()

1Juega1

1 Incluye

1 Lanza 2

2

Definición de los casos de uso

Definición del Modelo

conceptual

Definición de los Diagramas de colaboración

Definición de los Diagramas de

diseño de clases

Fundamentos de Ingeniería de SW 88UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosComparación con AD estructurado

? Los proyectos de software son complejos, y la estrategia primaria para superar la complejidad es la descomposición (divide y vencerás): dividir el problema en unidades manejables.

? En el análisis y diseño estructurado, la dimensión de descomposición es fundamentalmente por función o proceso.

? En el análisis y diseño orientado a objetos buscan ante todo descomponer el espacio del problema por objetos.

Fundamentos de Ingeniería de SW 89UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosComparación con AD estructurado

Sistema de la biblioteca

Catálogo Bibliotecario

BibliotecaLibro

Sistema

Registrar Préstamos

Agregar Recursos

Reportar Multas

A/D OODescomposición por objetos o conceptos

A/D estructuradosDescomposición por funciones o procesos

Fundamentos de Ingeniería de SW 90UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloDefinición

? Un proceso de desarrollo de software es un método de organizar las actividades relacionadas con la creación, presentación y mantenimiento de los sistemas de software.

? El lenguaje UML estandariza los artefactos y la notación, pero no define un proceso oficial de desarrollo. ? Aumentar las posibilidades de aceptación generalizada de la

notación estándar del modelado, sin la obligación de adaptar el proceso oficial.

? La esencia de un proceso apropiado admite mucha variación y depende de las habilidades del personal, de la naturaleza del problema, de las herramientas y muchos otro factores.

44

Fundamentos de Ingeniería de SW 91UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloPasos de macronivel

? En un nivel alto, los pasos principales de la presentación de una aplicación son los siguientes:

? Planificación y elaboración: planificar, definir los requerimientos, construir prototipos, etc.

? Construcción: la creación del sistema.? Aplicación: la transición de la implementación del sistema a

su uso.

Fundamentos de Ingeniería de SW 92UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloDesarrollo Iterativo

? Un ciclo de vida iterativo se basa en el agrandamiento y perfeccionamiento secuencial de un sistema a través de múltiples ciclos de desarrollo de análisis, diseño, implementación y pruebas.? Tras una fase preliminar de planificación y especificación, el

desarrollo pasa a la fase de construcción a través de una serie de ciclos de desarrollo.

Planificación y Elaboración Construcción Aplicación

Ciclo de desarrollo 1

Ciclo de desarrollo 2

Ciclo de desarrollo 3

Fundamentos de Ingeniería de SW 93UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloDesarrollo Iterativo

? En cada ciclo se aborda un conjunto relativamente pequeño de requerimientos, pasando por el análisis, el diseño, la construcción y las pruebas. ? El sistema va creciendo con cada ciclo que se concluye.

? Entre las ventajas de un ciclo iterativo figuran: ? La complejidad nunca resulta abrumadora.? Se produce retroalimentación en una etapa temprana, porque la

implementación se efectúa rápidamente con una parte pequeña del sistema.

Fundamentos de Ingeniería de SW 94UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloDesarrollo Iterativo

Planificación y Elaboración Construcción Aplicación

Ciclo de desarrollo 1

Ciclo de desarrollo 2

Ciclo de desarrollo 3

Perfeccionar el plan

Sincronización de artefactos

Análisis Diseño Construcción Prueba

Fundamentos de Ingeniería de SW 95UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFijación de un ciclo de desarrollo

? Una estrategia muy útil consiste en limitar el ciclo de desarrollo a un marco temporal, un lapso rígidamente fijo. ? Todo el trabajo ha de concluirse en ese lapso. ? Un período entre dos y cuatro semanas suele ser conveniente.

? Para tener éxito con un programa de duración fija es necesario escoger los requerimientos con mucho cuidado y asignarle la selección al equipo de desarrollo.

Perfeccionar el plan

Sincronización de artefactos

Análisis Diseño Construcción Prueba

de 2 semanas a 2 meses

Fundamentos de Ingeniería de SW 96UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloCasos de uso y los ciclos de desarrollo iterativos

? Un caso de uso es una descripción narrativa de un proceso de dominio.? Por ejemplo: Obtener libros de una biblioteca. ? Los ciclos iterativos de desarrollo se organizan a partir de los

requerimientos del caso de uso. ? Se asigna un ciclo de desarrollo para implementar uno o más casos

de uso o bien sus versiones simplificadas (si el caso es muy complejo como para ser abordado en un sólo ciclo).

? Los casos de uso deberían clasificarse, y los que ocupen los niveles más altos han de abordarse en los ciclos iniciales de desarrollo.

55

Fundamentos de Ingeniería de SW 97UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFase de planificación y elaboración

? Esta fase incluye la concepción inicial, la investigación de alternativas, la planificación, la especificación de requerimientos y otras actividades:

?Definir un plan preliminar ?Elaborar un informe preliminar de investigación

?Definir los requerimientos ?Registrar los términos en el glosario (constante)?Implementar el prototipo (opcional y aplazable) ?Definir los casos de uso (de alto nivel y esenciales) ?Definir el modelo conceptual preliminar (aplazable)?Definir la arquitectura preliminar del sistema (constante, opcional y

aplazable)?Perfeccionar el plan.

Fundamentos de Ingeniería de SW 98UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFase de planificación y elaboración

? Entre los artefactos generados en esta fase se pueden mencionar los siguientes: ? Plan: programa, presupuesto, etc.? Informe preliminar de la investigación: motivos, alternativas,

necesidades de la empresa. ? Especificación de los requerimientos: declaración de los

requerimientos. ? Glosario: diccionario (nombres de conceptos, pro ejemplo) y toda

la información afín, como las restricciones y reglas. ? Prototipo: sistema de prototipos cuyo fin es facilitar la comprensión

del problema, los problemas de alto riesgo y los requerimientos.

Fundamentos de Ingeniería de SW 99UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFase de planificación y elaboración

? Entre los artefactos generados en esta fase se pueden mencionar los siguientes: ? Casos de uso: descripciones narrativas de los procesos de dominio.

? Diagramas de casos de uso: descripción gráfica de todos los casos de uso y sus relaciones.

? Bosquejo del modelo conceptual: modelo conceptual preliminar cuya finalidad es facilitar el conocimiento del vocabulario del dominio, especialmente en su relación con los casos de uso y conlas especificaciones de los requerimientos.

Fundamentos de Ingeniería de SW 100UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFase de planificación y elaboración

? El orden de la creación de artefactos no es necesariamente lineal como puede sugerir la lista anterior. ? Podemos preparar en paralelo algunos de ellos. Esto se aplica

especialmente al modelo conceptual, al glosario, a los casos de uso y a los diagramas de los casos.

? Los casos de uso son sometidos a un examen y, en cambio, el resto de los artefactos tienen por objeto reflejar la información proveniente de los casos.

Fundamentos de Ingeniería de SW 101UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFase de construcción: ciclos de desarrollo

? La fase de construcción de un proyecto requiere varios ciclos de desarrollo a lo largo de los cuales se extiende el sistema. ? El objetivo final es obtener un sistema funcional que atienda

debidamente los requerimientos.

? En un ciclo individual de desarrollo, los principales pasos se analizan y diseñan, como se señala en la figura siguiente.

Fundamentos de Ingeniería de SW 102UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFase de construcción: ciclos de desarrollo

Ciclo de desarrollo 1

Ciclo de desarrollo 2

Ciclo de desarrollo 3

Perfeccionamiento del plan

Sincronización de artefactos

Análisis Diseño Construcción Prueba

1. Definir casos esenciales de

uso

5. Definir diagramas de

secuencia

2. Perfeccionar el diagrama de

casos

6. Definir los contratos de operaciones

3. Perfeccionar el modelo

conceptual

7. Definir diagramas de

estado

4. Perfeccionar el glosario

66

Fundamentos de Ingeniería de SW 103UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloFase de construcción: ciclos de desarrollo

? Como en el caso de los artefactos de la fase de requerimientos, algunos artefactos pueden ser creados en paralelo, por ejemplo:

?Modelo conceptual y glosario.? Diagramas de interacción y diagramas de diseño de clases.

Fundamentos de Ingeniería de SW 104UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloCuando crear el modelo conceptual

? El modelo conceptual es una representación de conceptos u objetos en el dominio del problema, como Libro y Biblioteca.

? Debe limitarse el esfuerzo aplicado a la creación de un modelo conceptual preliminar en la fase de planificación y elaboración, ya que en los dominios de problemas amplios, el modelo conceptual puede tornarse muy complejo.

Fundamentos de Ingeniería de SW 105UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloCuando crear el modelo conceptual

? La estrategia recomendada es generar rápidamente un modelo conceptual que se centre en identificar los conceptos obvios expresados en los requerimientos y posponer hasta más tarde una investigación con detenimiento.

? Otra estrategia es suspender la creación de un modelo conceptual hasta el inicio de los ciclos de desarrollo, lo cual tiene la desventaja de aplazar la complejidad.

Fundamentos de Ingeniería de SW 106UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloCuando crear los casos expandidos de uso

? Durante la fase de planificación y elaboración, se aconseja crear todos los casos de uso de alto nivel, pero describir los más importantes en el formato expandido, posponiendo el resto hasta el ciclo de desarrollo en que se estudian.

? Por lo tanto se recomienda estudiar detenidamente, durante la fase de planificación y elaboración sólo los casos de uso más importantes.

Fundamentos de Ingeniería de SW 107UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloDefinición de modelos y artefactos

? UML describe modelos de sistema basado en los conceptos de objetos.

? Todos los diagramas de UML pueden ser divididos en dos tipos. ? Un modelo estáticodel sistema describe las propiedades

estructurales del sistema.? Un modelo dinámicodescribe las propiedades del comportamiento

del sistema.

Fundamentos de Ingeniería de SW 108UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloModelo del sistema

? El modelo global del sistema esta constituido por:

? Modelo de análisis: el que se relaciona con una investigación de dominio y del ámbito del problema, pero no con la solución.

? Modelo de diseño: el que se relaciona con la solución lógica.

77

Fundamentos de Ingeniería de SW 109UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloRelación entre los artefactos

? Sin importar como los artefactos se organicen para construir los modelos, se dan dependencias muy importantes entre ellos. ? Por ejemplo, un diagrama de casos de uso depende de las

definiciones de los casos de uso.

? Si se crea un artefacto que no tenga otros dependientes y si no se usa como entrada de otra cosa, habrá que poner en tela de juicio su valor y el tiempo que se dedicó a su creación.

Fundamentos de Ingeniería de SW 110UTFSM

EX UMBRA SOLEMIN

Introducción al proceso de desarrolloRelación entre los artefactos

Informe preliminar de investigación

Prototipos

Presupuesto, programa de actividades

Especificación de requerimientos

Casos de uso:a)de alto nivel todos

b) algunos esenciales expandidos

Diagramas de casos de uso

Modelo conceptual preliminar

Glosario

Fundamentos de Ingeniería de SW 111UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosResumen

? ¿Qué es análisis?? ¿Qué es diseño?

? Análisis y diseño OO? Uso de UML

? Introducción al proceso de desarrollo

Fundamentos de Ingeniería de SW 112UTFSM

EX UMBRA SOLEMIN

Análisis y diseño orientado a objetosQuiz

? ¿Cuál es la diferencia entre análisis y diseño OO?? ¿Porqué UML tiene tantos diagramas?

? ¿De qué sirve el “divide y vencerás” en OO?? ¿Qué es un proceso de desarrollo?

? ¿Qué pasa dentro de un ciclo de desarrollo?

Fundamentos de Ingeniería de SW 113UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónContenido

? Especificación de Requerimientos? Casos de Uso: Descripción de Proceso

? Clasificación de los casos de uso? Inicio de un ciclo de desarrollo

Fundamentos de Ingeniería de SW 114UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónEspecificación de requerimientos

? Con esta actividad se quieren lograr los siguientes objetivos: ? Crear los artefactos de la fase de requerimientos, por ejemplo, las

especificaciones de funciones.? Identificar y clasificar las funciones del sistema.? Identificar y crear los atributos del sistema y relacionarlos con las

funciones.

88

Fundamentos de Ingeniería de SW 115UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónCaptura de Requerimientos

? Requerimientos son una descripción de necesidades o deseos para un producto.

?El reto consiste en definirlos de manera inequívoca, de modo que se detecten los riesgos y no se presenten sorpresas al momento de entregar el producto.

? Los siguientes tópicos son recomendados a ser desarrollados en esta fase:

? declaración general ? clientes ? objetivos? funciones del sistema ? atributos del sistema

Fundamentos de Ingeniería de SW 116UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónEjemplo: Punto de venta

? Declaración general: el propósito de este proyecto es crear un sistema de punto de venta para ser usada en locales de venta.

? Clientes : Placeres Terrenales, Ltda, vendedor multinacional de objetos de relajación

? Objetivos : En general, la meta es hacer más rápido el procedimiento de pago de productos, para apoyar en forma mejor, más rápida y barata los procesos de servicios y negocios. Más específicamente esto incluye? Rápido pago y entrega de comprobante a los compradores

? Rápido y preciso análisis de ventas

? Control del inventario automático

Fundamentos de Ingeniería de SW 117UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? Funciones del sistema son aquellas que el sistema se supone que tiene que hacer, tales como autorizar el pago con las tarjetas de crédito. ? Estas deben ser identificadas y anotadas en grupos lógicos y

cohesivos.

? Con el objeto de verificar que algún X es de verdad una función del sistema, la siguiente oración deberá tener sentido: ? El sistema deberá hacer <X>.? Por ejemplo: El sistema deberá autorizar los pagos con tarjetas de

crédito.

Fundamentos de Ingeniería de SW 118UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? En cambio, los atributos del sistema son cualidades no-funcionales del sistema, como por ejemplo, la facilidad de uso, que a menudo se confunden con las funciones del sistema.

? Nótese que facilidad de uso no encaja en la oración de verificac ión: El sistema deberá hacer la facilidad de uso.

? Los atributos no deben formar parte de las especificaciones funcionales del sistema, sino de un documento independiente que especifica sus atributos.

Fundamentos de Ingeniería de SW 119UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? Las funciones deben ser clasificadas en categorías para poder priorizarlas.

? Las categorías incluyen: ? Funciones Evidentes - Debe realizarse, el usuario esta consciente

que se ha realizado.? Funciones Ocultas - Debe realizar, pero no debe ser visible a los

usuarios.? Funciones Superfluas - Opcionales; su agregación no afecta

significativamente en el costo o en otras funciones.

Fundamentos de Ingeniería de SW 120UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? Las siguientes funciones básicas del sistemas en la aplicación del punto de venta son una muestra significativa; no pretenden en absoluto ser exhaustivas.

Ref # Función CategoríaR1.1 Registrar la venta en proceso (actual): la lista de los artículos

compradosEvidente

R1.2 Calcular el total de la venta actual, incluyendo impuestos y descuentos Evidente…

R1.5 Registrar las ventas completadas Oculta…

R1.9 Mostrar la descripción y el precio del item Evidente

99

Fundamentos de Ingeniería de SW 121UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? Sería mejor agrupar funciones en un orden lógico, por ejemplo, todas las funciones de pago.

Ref # Función CategoríaR2.1 Manejar los pagos con efectivo, capturando la cantidad entregada y

entregando el monto de vueltoEvidente

R2.2 Manejar los pagos con las tarjetas de crédito, capturando lainformación de la tarjeta tanto por el lector como manualmente

Evidente

…R2.4 Registrar los pagos con la tarjeta de crédito en el sistema de

contabilidad, para cobrarlos después a los bancos.Oculta

Fundamentos de Ingeniería de SW 122UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? Los atributos del sistema son características o dimensiones del mismo: no son funciones. ? Por ejemplo, facilidad de uso, tolerancia a fallas, plataformas,

tiempo de respuesta, etc.

? Los atributos tienen un posible conjunto de detalles de atributos, los cuales tienden a ser valores discretos, confusos o simbólicos, por ejemplo:

?Tiempo de respuesta = (psicológicamente correcto) ?Facilidad de Uso =(¿???)

Fundamentos de Ingeniería de SW 123UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? Algunos atributos del sistema también pueden tener restricciones de frontera del atributo, que son condiciones obligatorias, generalmente dentro de un rango numérico de los valores de un atributo, por ejemplo:

?Tiempo de respuesta = (5 segundos cómo máximo)

Atributo Detalle y limitaciónTiempo de respuesta (restricción de frontera) La descripción y el

precio aparecerán en menos de 5 segundos.Sistema Operativo (detalle) Microsoft Windows 95 y NT

Fundamentos de Ingeniería de SW 124UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónFunciones y atributos del sistema

? Atributos del sistema en especificaciones de las funciones relacionan los atributos con las funciones que son afectados por ellos, además de definir el atributo obligatorio u opcional.? Una restricción de frontera suele ser obligatoria, pues de lo

contrario significaría que no era sólida.

Ref# Función Categ. Atributo Detalles yLimitaciones

Categ.

R1.9 Mostrar ladescripción y elprecio del item

Evidente Tiempo de respuesta La descripción y elprecio aparecerán enmenos de 5 segundos.

Requerido

Fundamentos de Ingeniería de SW 125UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónCasos de uso: Descripción de procesos

? Objetivos:

? Identificar y escribir casos de uso? Diseñar diagramas de casos de uso.? Contrastar los casos de uso de alto nivel, tanto como expandidos.

? Contrastar los casos de uso esenciales con los reales.

Fundamentos de Ingeniería de SW 126UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónCasos de uso: Descripción de procesos

? La técnica de casos de uso se puede aplicar tanto al análisis estructurado, como al análisis orientado a objetos.

? Un caso de uso es un documento narrativo que describe la secuencia de eventos de un actor (agente externo) que utiliza un sistema para completar un proceso. ? Los casos de uso son historias o casos de utilización de un sistema. ? No son exactamente los requerimientos ni las especificaciones

funcionales, sino que ejemplifican e incluyen tácitamente los requerimientos en las historias que narran.

1010

Fundamentos de Ingeniería de SW 127UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónCasos de uso: Descripción de procesos

? Notación en UML

? El siguiente caso de uso de alto nivel describe clara y concisamente el proceso de comprar artículos en una tienda cuando se emplea una terminal en el punto de venta.

Comprar productos

Caso de uso: Comprar productosActores: Cliente, CajeroTipo: PrimarioDescripción: Un cliente llega a la caja registradora con los artículos que comprará.

El Cajero registra los artículos y cobra el importe. Al terminar laoperación, el Cliente se marcha con los artículos comprados.

Fundamentos de Ingeniería de SW 128UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónCasos de uso: Descripción de procesos

? Un caso de uso expandido muestra más detalles que uno de alto nivel? este tipo de casos suelen ser útiles para alcanzar el conocimiento

más profundo de los procesos y de los requerimientos.

Caso de uso: Comprar productos en efectivoActores: Cliente (iniciador), CajeroPropósito: Capturar una venta y su pago en efectivo.Resumen: Un cliente llega a la caja registradora con los artículos que co mprará.

El Cajero registra los artículos y recibe un pago en efectivo. Alterminar la operación, el Cliente se marcha con los artículoscomprados.

Tipo: PrimarioReferenciasCruzadas:

Funciones: R1.1, R1.2, R1.3, R1.7, R2.1

Fundamentos de Ingeniería de SW 129UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónEjemplo: Punto de venta Curso Normal de Eventos

Acción de los actores Respuesta del sistema1. Este caso de uso comienza cuando unCliente llega a una caja de TPDV (Terminalde Punto de Ventas) con productos quedesea comprar.2. El Cajero registra la identificación de cadaproducto.Si hay varios productos de una mismacategoría, el Cajero también puede introducirla cantidad.

3. Determina el precio del producto eincorpora a la transacción actual lainformación correspondiente.Se presentan la descripción y el precio delproducto actual.

4. Al terminar de introducir el producto, elCajero indica a TPDV que se concluyo lacaptura del producto.

5. Calcula y presenta el total de la venta.

6. El Cajero indica el total al Cliente.

Fundamentos de Ingeniería de SW 130UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónEjemplo: Punto de venta Curso Normal de Eventos

7. El Cliente efectúa el pago en efectivo – el“efectivo ofrecido” – posiblemente mayorque el total de la venta.8. El Cajero registra la cantidad de efectivorecibida.

9. Muestra al cliente la diferencia. Genera unrecibo.

10. El Cajero deposita el efectivo recibido yextrae el cambio de pago.El Cajero le da al Cliente el cambio y elrecibo impreso.

11. Registra la venta concluida.

12. El Cliente se marcha con los artículoscomprados.

Cursos alternativos? Línea 2: introducción del identificador inválido. Indicar error.? Línea 7: el cliente no tenía suficiente dinero. Cancelar la transacción de venta.

Fundamentos de Ingeniería de SW 131UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónExplicación del formato expandido

Caso de uso: Nombre del caso de usoActores: Lista de actores (agentes externos), en la cual se indica quien inicia el

caso de uso.Propósito: Intención de caso de usoResumen: Repetición del resumen de alto nivel o alguna síntesis similar.Tipo: 1. Primario, secundario u opcional

2. Esencial o realReferenciasCruzadas:

Casos relacionados de uso y funciones también relacionadas delsistema.

Fundamentos de Ingeniería de SW 132UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónExplicación del formato expandido

? La sección intermedia, curso normal de eventos, es la parte medular del formato expandido? Se describe en detalles la conversación interactiva entre los ac tores

y el sistema. ? Un aspecto esencial de la sección es que explica la secuencia más

común de los eventos; no incluye situaciones alternativas.

Acción del actor Respuesta del sistemaAcciones numeradas de los actores Descripciones numeradas de las respuestas

del sistema.

1111

Fundamentos de Ingeniería de SW 133UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónExplicación del formato expandido

? La última sección, curso alternativo de los eventos, describe importantes opciones o excepciones que pueden presentarse en relación con el curso normal. ? Si son complejas, se pueden expandir y convertirlas en otros casos

de uso.

Cursos alternativosAlternativas que pueden ocurrir en el número de línea. Descripción de

excepciones.

Fundamentos de Ingeniería de SW 134UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónActores

? El actor es una entidad externa del sistema que de alguna manera participa en la historia del caso de uso. ? Por lo regular estimula el sistema con eventos de entrada o recibe

algo de él. ? Los actores están representados por papel que desempeñan en el

caso: Cliente, Cajero, u otro.

? Notación en UML

Cajero

Fundamentos de Ingeniería de SW 135UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónActores

? En un caso de uso hay un actor iniciador que produce la estimulación inicial y, posiblemente, otros actores participantes; tal vez convenga especificar quien es el iniciador. ? Los actores suelen ser los papeles representados por las personas,

pero también puede ser cualquier tipo de sistema externo. ? Algunos tipos de actores: ?Papeles que desempeñan las personas.

?Sistemas de computo.?Aparatos electrónicos o mecánicos.

Fundamentos de Ingeniería de SW 136UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónErrores comunes con los casos de uso

? Un error común en la identificación de los casos de uso consiste en representar los pasos, las operaciones o las transacciones individuales como casos. ? Por ejemplo, podemos definir (incorrectamente) un caso

denominado "imprimir recibo", cuando en realidad esta operación no es más que un paso de un proceso más amplio del caso "comprar productos".

? Un caso de uso es una descripción de un proceso de principio a fin relativamente amplia, descripción que suele abarcar muchos pasos o transacciones; normalmente no es un paso o una actividad individual del proceso.

Fundamentos de Ingeniería de SW 137UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónIdentificación de casos de uso

? Los siguientes pasos de la identificación de los casos de uso requieren de una lluvia de ideas y revisión exhaustiva de los documentos actuales sobre la especificación de requerimientos. ? Un método de identificación de los casos de uso se basa en

actores.?1. Se identifican los actores relacionados con un sistema o empresa. ?2. Para cada actor se identifican los procesos que inician o en los

cuales participan. ? Otro método de identificación de casos de uso se basa en eventos.?1. Se identifican los eventos externos a los que un sistema ha de

responder. ?2. Se relacionan los eventos con los actores y con los casos de uso.

Fundamentos de Ingeniería de SW 138UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónIdentificación de casos de uso

? En la aplicación de punto de venta, algunos actores posiblemente relevantes y los procesos que inician son: ? Cajero ?registra?entrega el efectivo

? Cliente ?compra productos?paga productos

1212

Fundamentos de Ingeniería de SW 139UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónCasos de uso, funciones del sistema y trazabilidad

? Las funciones del sistema identificadas durante la especificación previa de requerimientos deben asignarse a los casos de uso.

? Además, debe ser posible verificar, mediante la sección de referencias cruzadas, que todas las funciones hayan sido asignadas.

Fundamentos de Ingeniería de SW 140UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónDiagramas de casos de uso

? Un diagrama de casos de uso explica gráficamente un conjunto de casos de uso de un sistema, los actores y la relación entre estos y los casos de uso. ? Diagrama parcial del ejemplo

Cliente

Comprar productos

Cajero

Fundamentos de Ingeniería de SW 141UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación de casos de uso

? Los casos de uso deberían clasificarse en primarios, secundarios y opcionales para asignarles la prioridad de desarrollo. ? Los casos de uso primarios representan los procesos comunes más

importantes, como Comprar productos. ? Los casos secundarios de uso representan procesos menores o

raros; por ejemplo, Solicitud de surtir un nuevo producto. ? Los casos opcionales de uso representan procesos que pueden no

abordarse.

Fundamentos de Ingeniería de SW 142UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación de casos de uso

? Los casos esenciales de uso son casos expandidos de que se expresan en una forma teórica que contiene poca tecnología y pocos detalles de implementación; las decisiones de diseño se posponen y se abstraen de la realidad, especialmente en lo concerniente a la interfaz usuaria. ? Retiro de efectivo es un ejemplo de caso de uso esencial.

Acción de los actores Respuesta del sistema1. El cliente se identifica. 2. Presenta opciones.3. ….. 4. …

Fundamentos de Ingeniería de SW 143UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación de casos de uso

? En cambio un caso de uso real describe concretamente el proceso a partir de su diseño concreto actual, sujeto a las tecnologías especificas de entrada y salida, etc. ? Cuando se trata de la interfaz usuaria a menudo ofrece

presentaciones de pantalla y explica la interacción con los artefactos.

Acción de los actores Respuesta del sistema1. El cliente introduce su tarjeta. 2. Pide la clave personal (CP).3. Introduce la clave con un tecladonumérico.

4. Muestra menú de opciones.

5. … 6. …

Fundamentos de Ingeniería de SW 144UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónSobre la notación

? Al caso de uso se le asigna un nombre que comience con un verbo para subrayar que se trata de un proceso. Por ejemplo, “Comprar productos”, “Introducir pedidos”.

? Comience un caso de uso expandido con la siguiente oración: 1. Este caso de uso comienza cuando <Actor> <inicia un evento>

? De este modo se estimula una identificación clara del actor y del evento iniciadores.

1313

Fundamentos de Ingeniería de SW 145UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónSobre la notación

? Un caso de uso puede contener puntos de decisión. ? Por ejemplo, en Comprar productos, el cliente puede optar al pago

en efectivo, a crédito o con cheque al momento de pago.

? Si una de estas trayectorias es un caso significativo y si las otras alternativas son raras, inusuales o excepcionales, el caso típico deberá ser el único acerca del cual se escribe el curso normal de eventos y las opciones han de escribirse en la sección titulada Alternativas.

Fundamentos de Ingeniería de SW 146UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónSobre la notación

? Pero en ocasiones el punto de decisión representa opciones cuya probabilidad es relativamente igual y normal; en este caso se utiliza la siguiente estructura notacional:1. En la sección curso normal de eventos, indique las ramas de las

subsecciones.2. Escriba una subsección en cada rama, utilizando otra vez el curso

normal de eventos. Inicie el evento numerando en 1 en cada sección.

3. Si las subsecciones tienen opciones, escríbalas en una sección de alternativas de cada subsección.

Fundamentos de Ingeniería de SW 147UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónEjemplo de Punto de Ventas

Puntos de decisión

Sección: principal.Curso normal de eventosAcción de los actores Respuesta del sistema1. Este caso de uso comienza cuando unCliente llega a una caja de TPDV (Terminalde Punto de Ventas) con productos quedesea comprar.2. El Cajero registra la identificación de cadaproducto.Si hay varios productos de una mismacategoría, el Cajero también puede introducirla cantidad.

3. Determina el precio del producto eincorpora a la transacción actual lainformación correspondiente.Se presentan la descripción y el precio delproducto actual.

4. Al terminar de introducir el producto, elCajero indica a TPDV que se concluyó lacaptura del producto.

5. Calcula y presenta el total de la venta.

Fundamentos de Ingeniería de SW 148UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónEjemplo de Punto de Ventas

Puntos de decisión6. El cliente escoge el tipo de pagoa. Si paga en efectivo, consúltese la sección

de Pago en efectivo.b. Si paga a crédito, consúltese la sección

Pago con tarjeta de crédito.c. Si paga con cheque, consúltese la

sección Pago con cheque.7. Registra la venta terminada8. Imprime un recibo.

9. El Cajero le entrega al Cliente el reciboimpreso.10. El Cliente se marcha con los artículoscomprados.

Cursos alternativos? Línea 2: introducción del identificador inválido. Indicar error.

Fundamentos de Ingeniería de SW 149UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónEjemplo de Punto de VentasPuntos de decisión

Sección: Pago en efectivoCurso normal de eventosAcción del actor Respuesta del sistema1. El Cliente efectúa el pago en efectivo – el“efectivo ofrecido” – posiblemente mayorque el total de la venta.2. El Cajero registra la cantidad de efectivorecibida.

3. Muestra al cliente la diferencia.

4. El Cajero deposita el efectivo recibido yextrae el cambio de pago.El Cajero le da al Cliente el cambio.

Cursos alternativos? Línea 7: el cliente no tenía suficiente dinero. Cancelar la tran sacción de venta.

Sección: Pago con tarjeta de créditoCursos normales y alternativos de la historia de pago con la tarjeta de crédito.

Sección: Pago con chequeCursos normales y alternativos de la historia de pago cheque.

Fundamentos de Ingeniería de SW 150UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónPasos de especificación de casos de uso

1. Después de haber listado las funciones del sistema, identifique los actores y los casos de uso.

2. Escriba todos los casos de uso de alto nivel. Clasifíquelos en primarios, secundarios u opcionales.

3. Dibuje un diagrama de caso de uso.4. Escriba en el formato esencial expandido los casos de uso más

importantes, influyentes y riesgosos, a fin de entender y estimar mejor la naturaleza y las dimensiones del problema. Para evitar casos complejos posponga la escritura de la forma esencial expandida de los casos de uso menos importantes hasta los ciclos de desarrollo futuros.

1414

Fundamentos de Ingeniería de SW 151UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónPasos de especificación de casos de uso

5. En teoría, los casos reales deberían posponerse hasta una fas e de diseño en el ciclo de desarrollo, porque su creación conlleva muchas decisiones de diseño. Pese a ello, a veces es necesario crear casos reales de uso durante la etapa inicial de los requerimientos en el caso de que las descripciones concretas facilitan notablemente la comprensión; los clientes exigen especificar los procesos de este forma.

6. Clasifique los casos de uso.

Fundamentos de Ingeniería de SW 152UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación y programación de los casos de uso

? Suponiendo que todos los artefactos deseados hayan sido generados (por ejemplo, la especificación de los requerimientos y los casos de uso), el siguiente paso es iniciar la fase de construcción en el ciclo de desarrollo iterativo y comenzar a implementar el sistema.

? En un ciclo de desarrollo iterativo, la tarea de llenar los casos de uso se distribuye entre varios ciclos.

Fundamentos de Ingeniería de SW 153UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónResumen

? Especificación de Requerimientos? Casos de Uso: Descripción de Proceso

? Clasificación de los casos de uso? Inicio de un ciclo de desarrollo

Fundamentos de Ingeniería de SW 154UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónQuiz

? ¿Qué son los requerimientos?? ¿Qué relación tienen los requerimientos con las funciones y

los atributos del sistema?

? ¿Porqué las funciones se organizan en orden lógico?? ¿Para qué definir la relación entre atributos y funciones?

? ¿Qué es un caso de uso?? ¿Qué representa un diagrama de casos de uso?

? ¿Qué relación tienen los casos de uso con las funciones del sistema?

Fundamentos de Ingeniería de SW 155UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónQuiz

? Interprete el siguiente diagrama de casos de uso.

Estudiante

seleccionar cursos a impartir

Profesor

crear lista de cursos

mantener infestudiante

crear catalogo curso

mantener infcurso

Secretario

mantener infprofesor

registrarse en cursos

S. Facturación

<<se comunica con>>

Valida usuario

<<usa>>

<<usa>>

Fundamentos de Ingeniería de SW 156UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónContenido

? Dependencia de los artefactos? Técnicas de clasificación de casos de uso

? Formato extendido de los casos de uso? Análisis Orientado a Objetos ?Modelo conceptual? Formas de determinar conceptos

1515

Fundamentos de Ingeniería de SW 157UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación y programación de los casos de uso

? La estrategia general consiste en escoger primero los casos que influyen profundamente en la arquitectura básica. Las cualidades de un caso de uso así son los siguientes: ? Tener una fuerte repercusión en el diseño arquitectónico; por

ejemplo, incorporar muchas clases a la capa del dominio o requerir servicios de persistencia.

? Con relativamente poco esfuerzo obtener información e ideas importantes sobre el diseño.

? Incluir funciones riesgosas, urgentes o complejas. ? Requerir una investigación a fondo o tecnología nueva o riesgosa. ? Representar los procesos primarios de la línea de negocios.? Apoyar directamente el aumento de ingresos o la reducción de

costos.

Fundamentos de Ingeniería de SW 158UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación y programación de los casos de uso

? Un sistema simple y poco riguroso puede servir para realizar la clasificación: alto-mediano-bajo.

? Otro sistema es asignar un puntaje y sumar (posiblemente con ponderación) para obtener una calificación.

Caso de uso a b c d e f SumaComprar productos 5 3 2 0 5 3 18Y así sucesivamente

Fundamentos de Ingeniería de SW 159UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación y programación de los casos de uso

? Con base a los criterios expuestos anteriormente, he aquí un ejemplo de clasificación de algunos casos de uso en la aplicación de punto de venta.

Clasificación Caso de uso JustificaciónAlto Comprar productos Corresponde a los criterios de calificación más

altos.Mediano Incorpora usuarios

Registra los productos compradosPaga los productos comprados

Afecta el subdominio de seguridad.Afecta el subdominio de seguridad.Proceso importante, afecta a contabilidad.

Bajo PagarIniciarCerrar

Efecto mínimo en la arquitectura.La definición depende de los otros casos de uso.Efecto mínimo en la arquitectura

Fundamentos de Ingeniería de SW 160UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación y programación de los casos de uso

? Prácticamente todos los sistemas cuentan con un caso de arranque o inicio. ? Aunque este no ocupe un nivel alto conforme a otros criterios, es

preciso estudiar al menos una versión simplificada de él al comienzo del ciclo de desarrollo para presentar la inicialización supuesta en otros casos.

Fundamentos de Ingeniería de SW 161UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación y programación de los casos de uso

? A partir de la clasificación, el Caso de uso Comprar productos debería incluirse en el primer ciclo de desarrollo, también puede abordarse una versión simple de Inicio para soportar los otros casos de uso.

? Siempre que se asigne un caso de uso, es necesario estimar si es posible resolverlo íntegramente en el lapso limitado de un ciclo (cuatro semanas, por ejemplo) o si el trabajo ha de ser distribuido en varios ciclos.

Fundamentos de Ingeniería de SW 162UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónClasificación y programación de los casos de uso

? En esta situación, el caso de uso se redefine, como por ejemplo: ? Comprar productos versión 1 (pagos en efectivo, sin

actualizaciones de inventario, …) ? Comprar productos versión 2 (permitir cualquier tipo de pago)? Comprar productos versión 3 (completa, con actualizaciones del

inventario, etc.)

? Las versiones anteriores se distribuyen después a lo largo de una serie de ciclos de desarrollo junto con otros casos de uso.

1616

Fundamentos de Ingeniería de SW 163UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónAsignación de casos de uso a ciclos de desarrollo

? Si nos basamos en la clasificación de los casos y de varias versiones de Comprar productos, podríamos asignar algunos ciclos al ciclo de desarrollo:

? Ciclo de desarrollo 1: Comprar productos versión 1, …? Ciclo de desarrollo 2: Comprar productos versión 2, …? Ciclo de desarrollo 3: Comprar productos versión 3, …? Ciclo de desarrollo 4: Registrar productos comprados, …, Pagar los

productos comprados, …

Fundamentos de Ingeniería de SW 164UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónVersiones de caso de uso Comprar Productos

? Una vez que se ha decidido simplificar los casos de uso y expresarlo, hay que escribir versiones cada vez más complejas.

? También hay que especificar las simplificaciones, las metas y las suposiciones de cada versión.

Fundamentos de Ingeniería de SW 165UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónVersión 1 de Comprar Productos

? Simplificaciones, metas y suposiciones ? Pagos en efectivo exclusivamente ? Sin mantenimiento de inventario? Es una tienda independiente, que no forma parte de ninguna

organización más grande.? Captura manual del código universal de producto (CUP); sin lector

de código de barras.? No se calculan los impuestos.? Sin cupones de descuento.? El cajero no tiene que registrar las ventas; no se controla el

acceso.? No se lleva un registro de los clientes individuales ni de sus hábitos

de compra.

Fundamentos de Ingeniería de SW 166UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónVersión 1 de Comprar Productos

? Simplificaciones, metas y suposiciones ? No se controla la caja de efectivo.? En el recibo aparecen el nombre y la dirección de la tienda, la

fecha y la hora de la venta.? Ni la identificación del cajero, ni la de TPDV aparecen en el recibo.? Las ventas se registran en un documento histórico.

Fundamentos de Ingeniería de SW 167UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónVersión 1 de Comprar Productos

Caso de uso: Comprar productos, versión 1Actores: Cliente (iniciador), CajeroPropósito: Capturar una venta y su pago en efectivo.Resumen: Un Cliente llega a la caja registradora con los artículos que co mprará.

El Cajero registra los artículos y recibe una pago en efectivo. Alterminar la operación, el Cliente se marcha con los artículoscomprados.

Tipo: PrimarioReferenciasCruzadas:

Funciones: R1.1, R1.2, R1.3, R1.7, R2.1

Fundamentos de Ingeniería de SW 168UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónVersión 1 de Comprar Productos

Curso normal de eventos:Acción de los actores Respuesta del sistema1. Este caso de uso comienza cuando unCliente llega a una caja de TPDV conproductos que desea comprar.2. El Cajero registra el código universal deproducto (CUP) en cada producto.Si un producto se repite, el Cajero tambiénpuede introducir la cantidad.

3. Determina el precio del producto eincorpora a la transacción actual lainformación correspondiente.Presenta la descripción y el precio delproducto en cuestión.

4. Al terminar de introducir el producto, elCajero indica a TPDV que se concluyó lacaptura del producto.

5. Calcula y presenta el total de la venta.

6. El Cajero indica el total al Cliente.

1717

Fundamentos de Ingeniería de SW 169UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónVersión 1 de Comprar Productos

7. El Cliente da un pago en efectivo – el“efectivo ofrecido” – posiblemente mayorque el total de la venta.8. El Cajero registra la cantidad de efectivorecibida.

6. Muestra al cliente la diferencia.Genera un recibo.

10. El Cajero deposita el efectivo recibidoy extrae la diferencia.El Cajero le entrega al Cliente el cambio yel recibo impreso.

11. Registra la venta concluida.

12. El Cliente se marcha con los artículoscomprados.

Cursos alternativos? Línea 2: introducción del identificador inválido. Indicar error.? Línea 7: el cliente no tenía suficiente dinero. Cancelar la tran sacción de venta.

Fundamentos de Ingeniería de SW 170UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónComprar Productos: versión 2

? Simplificaciones, metas y suposiciones? Las simplificaciones de la versión 1 se aplican también en esta

versión salvo que el pago puede efectuarse en efectivo, con tarjeta de crédito o con cheque. Las dos últimas formas de pago requieren autorización.

Caso de uso: Comprar productos, versión 2Actores: Cliente (iniciador), CajeroPropósito: Capturar una venta y su pago.Resumen: Un Cliente llega a la caja registradora con los artículos que co mprará.

El Cajero registra los artículos y recibe un pago, que puede req ueriruna autorización. Al terminar la operación, el Cliente se marcha conlos artículos comprados.

Fundamentos de Ingeniería de SW 171UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosInicio de un ciclo de desarrollo

? Suponga que la fase de planificación y elaboración ha concluido y que los casos de uso han sido identificados, clasificados y programados, por lo menos en los primeros dos ciclos.

? Se presenta, entonces, una transición muy importante: comienza la fase de construcción en la cual se cumplen los ciclos de desarrollo iterativo.

Fundamentos de Ingeniería de SW 172UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosInicio de un ciclo de desarrollo

? Las actividades iniciales del ciclo se relacionan con la administración del proyecto. ? En el caso general, viene después (o, más probablemente, ocurre

en paralelo) una sincronización de la documentación a partir delúltimo ciclo con el estado real del código, porque los artefactos de diseño y los códigos difieren invariablemente durante la fase decodificación del último ciclo.

? Entonces empieza la fase de análisis, en la cual se investiga a fondo los problemas del ciclo actual. En esta fase, una de las actividades consiste en desarrollar el modelo conceptual.

Fundamentos de Ingeniería de SW 173UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosActividades

Perfeccionamiento del plan

Sincronización de artefactos

Análisis Diseño Construcción Prueba

1. Definir los casos

esenciales

5. Definir diagramas de

secuencia

2. Perfeccionar el diagrama de

casos

6. Definir los contratos de operaciones

3. Perfeccionar el modelo

conceptual

7. Definir diagramas de

estado

4. Perfeccionar el glosario

Fundamentos de Ingeniería de SW 174UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosArtefactos

Casos de uso reales

Ventanas y reportes

Diagramas de secuencia del

sistema

Casos de uso:esenciales expandidos

Diagramas de casos de uso

Modelo conceptual

Glosario

dependencia respecto aContratos de operación

Diagramas de estado

Diagramas de interacción

Diagramas de clase de diseño

Diagrama de paquete de arquitectura

Esquema de base de

datos

Métodos

Definiciones de clase y de interfaz

SQL

Casos de prueba

1818

Fundamentos de Ingeniería de SW 175UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosConstrucción de un modelo conceptual

? Un modelo conceptual explica (a sus creadores) los conceptos significativos en un dominio del problema, es el artefacto más importante a crear durante el análisis orientado a objetos ? los casos de uso son artefactos importantes pero no son realmente

orientados a objetos

Fundamentos de Ingeniería de SW 176UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosConstrucción de un modelo conceptual

? Identificar muchos objetos o conceptos constituye la esencia del análisis orientado a los objetos, y el esfuerzo se compensa con los resultados conseguidos durante la fase de diseño e implementación.

? Una cualidad esencial que debe ofrecer un modelo conceptual es que representa cosas del mundo real, no componentes del software.

Fundamentos de Ingeniería de SW 177UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosFundamentos

? Los modelos conceptuales se representan en UML con un grupo de diagramas de estructura estática donde no se define ninguna operación.

? El modelo conceptual puede mostrarnos: ? conceptos? asociaciones entre ellos? atributos de conceptos

? Por ello los artefactos de software, como una ventana o una base de datos, no forman parte del modelo conceptual, salvo que el dominio a modelar se refiera a conceptos de software; por ejemplo, un modelo de interfaces gráficas.

Fundamentos de Ingeniería de SW 178UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosFundamentos

? En términos informales el concepto es una idea, cosa u objeto. En un lenguaje más formal podemos considerarlo a partir de su símbolo, intensión y extensión: ? Símbolo: palabras o imágenes que representan un concepto.? Intensión: la definición de un concepto.? Extensión: el conjunto de ejemplos a que se aplica el concepto.

? Concepto del evento de una transacción de compra? Podemos optar por designarlo con el símbolo Venta. ? La intensión de Venta puede afirmar que “representa el evento de

una transacción de compra y tiene fecha y hora”. ? La extensión de Venta son todos los ejemplos de venta; en otras

palabras, el conjunto de todas las ventas.

Fundamentos de Ingeniería de SW 179UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosFundamentos

? Modelos conceptuales y la descomposición? Los problemas de software a veces son complejos; la

descomposición – divide y vencerás – es una estrategia que suele utilizarse para resolver el problema de complejidad dividiendo el espacio del problema en unidades comprensibles.

? Por tanto, la tarea primordial de análisis consiste en identificar los conceptos en el dominio del problema y documentar los resultados en un modelo conceptual.

Fundamentos de Ingeniería de SW 180UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosFundamentos

? Por ejemplo, en el dominio del problema real en una tienda con un terminal de punto de venta intervienen los conceptos de:? Tienda? TPDV? Venta

? Por tanto, el modelo conceptual debe incluir estos conceptos.

1919

Fundamentos de Ingeniería de SW 181UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosEstrategias para identificar los conceptos

? Objetivo: crear un modelo conceptual de objetos representativos del dominio del problema.

? Directrices básicas: ? Es mejor exagerar y especificar un modelo conceptual con muchos

conceptos refinados que no especificarlo cabalmente. ?Es frecuente omitir conceptos durante la fase inicial de identificación y

descubrirlos más tarde cuando se examinen los atributos o asociaciones o durante la fase de diseño. Cuando se detecten, habrá que incorporarlos al modelo conceptual.

? Un concepto no debe ser excluido simplemente porque los requerimientos no indican una necesidad evidente que permita recordar la información acerca de ella (criterio común para diseñar los bases de datos), o porque el concepto carezca de atributos.

Fundamentos de Ingeniería de SW 182UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosEstrategias para identificar conceptos: Lista de categorías

? La creación del modelo conceptual a partir de una lista de categorías se comienza preparando una lista de conceptos idóneos a partir de la siguiente lista. Contiene muchas categorías comunes que vale la pena tener en cuenta, sin que importe el orden de importancia.

? Categorías:? objetos físicos o tangibles ?TPDV

?Avión ? especificaciones, diseño o descripciones de cosas?Especificación De Producto?Descripción De Vuelo

Fundamentos de Ingeniería de SW 183UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosEstrategias para identificar conceptos: Lista de categorías

? Categorías:? lugares?Tienda ?Aeropuerto

? transacciones?Venta, Pago ?Reservación

? línea o renglón de elemento de transacciones ?Ventas Línea De Producto

? papel de personas ?Cajero ?Piloto

? contenedores de otras cosas?Tienda, Cesto ?Avión

Fundamentos de Ingeniería de SW 184UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosEstrategias para identificar conceptos: Lista de categorías

? Categorías:? otros sistemas de computo o electromecánicas externos al sistema?Sistema De Autorización De Tarjeta De Crédito?Control De Trafico Aéreo

? conceptos de nombres abstractos?Hambre ?Acrofobia

? organizaciones?Departamento De Ventas?Objeto Línea Aérea

? eventos?Venta, Robo, Junta ?Vuelo, Accidente, Aterrizaje

? procesos (a menudo no están representados como conceptos, pero pueden estarlo)?Venta De Producto?Reservación Asiento

Fundamentos de Ingeniería de SW 185UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosEstrategias para identificar conceptos: Lista de categorías

? Categorías:? reglas y políticas?Política De Reembolso?Política De Cancelaciones

? catálogos?Catalogo De Producto?Catalogo De Partes

? Registro de finanzas, de trabajo, de contratos, de asuntos legales?Recibo, Contrato De Empleo?Bitácora De Mantenimiento

? instrumentos y servicios financieros?Línea De Crédito?Existencia

?manuales, libros?Manual De Personal?Manual De Reparaciones

Fundamentos de Ingeniería de SW 186UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosObtención de conceptos a partir de frases nominales

? Otra técnica muy útil (por su simplicidad) consiste en identificar las frases nominales (sustantivos) en las descripciones textuales del dominio de un problema y considerarlas conceptos o atributos idóneos.

? Este método hay que usarlo con prudencia, ya que no es posible encontrar mecánicamente correspondencias entre sustantivo y concepto, y además las palabras del lenguaje natural son ambiguas.

? Pese a ello esta técnica es muy útil cuando se empieza a entender el enfoque de orientación a objetos.

2020

Fundamentos de Ingeniería de SW 187UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosObtención de conceptos a partir de frases nominales

Acción de los actores Respuesta del sistema1. Este caso de uso comienza cuando unCliente llega a una caja de TPDV conproductos que desea comprar.2. El Cajero registra el código universalde producto (CUP) en cada producto .Si un producto se repite, el Cajerotambién puede introducir la cantidad.

3. Determina el precio del producto eincorpora a la transacciónactual lainformación correspondiente.Presenta la descripción y el precio delproducto en cuestión.

Fundamentos de Ingeniería de SW 188UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a ObjetosObtención de conceptos a partir de frases nominales

? Algunas de las frases marcadas son conceptos idóneos, algunas pueden ser atributos de conceptos. El consejo es combinar este método con la lista de categorías.

Fundamentos de Ingeniería de SW 189UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónResumen

? Dependencia de los artefactos? Técnicas de clasificación de casos de uso

? Formato extendido de los casos de uso? Análisis Orientado a Objetos ?Modelo conceptual? Formas de determinar conceptos

Fundamentos de Ingeniería de SW 190UTFSM

EX UMBRA SOLEMIN

Fase de planificación y elaboraciónResumen

? ¿Porqué se clasifican los casos de uso?? ¿Qué es un caso de uso inicio?

? ¿Porqué es necesario simplificar un caso de uso?? ¿Qué significaría que un artefacto no dependa de otros?

? ¿Qué representa el modelo conceptual y cómo se obtiene?

Fundamentos de Ingeniería de SW 191UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Contenido

? Identificación de conceptos? Ejemplo

? Principio del cartógrafo

? Asociaciones de conceptos? Identificación de atributos

? Construcción del modelo conceptual

Fundamentos de Ingeniería de SW 192UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Ejemplo: Obtención de conceptos

? En el caso de punto de venta, los conceptos identificados son los siguientes:? TPDV, Producto, Tienda, Venta, Pago ? Catalogo De Productos, Especificación De Producto? Ventas Línea De Productos? Cajero, Cliente, Gerente

? ¿Se debe o no incluir el recibo?

2121

Fundamentos de Ingeniería de SW 193UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Obtención de conceptos

? El recibo es un registro de venta y de un pago, así como el concepto relativamente prominente en el dominio de ventas: ¿debe entonces, mostrarse en el modelo? ? El recibo es un informe de venta, toda su información proviene de

otra parte. Este es un buen motivo para excluirlo. ? El recibo cumple un papel esencial respecto a las reglas de la

empresa: el portador le confiere el derecho de devolver los productos adquiridos. Esta es la razón para incluirlo en el modelo.

? El recibo se excluirá por el momento, porque las devoluciones de productos no están incorporados en este ciclo de desarrollo.

Fundamentos de Ingeniería de SW 194UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Directrices para construir modelos conceptuales

? Aplique los siguientes pasos para construir un modelo conceptual: ? Liste los conceptos idóneos usando la lista de categoría de

conceptos y la identificación de frases nominales relacionadas con los requerimientos en cuestión.

? Dibújelos en el modelo conceptual.? Incorpore las asociaciones necesarias para registrar las relaciones

entre los conceptos.? Agregue los atributos necesarios para cumplir con las necesidades

de la información.

Fundamentos de Ingeniería de SW 195UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Directrices: El cartógrafo

? La estrategia del cartógrafo se aplica a los mapas y a los modelos conceptuales:? Utilice los nombres existentes en el dominio.? Excluya las características irrelevantes.? No agregue cosas que no existan.

Fundamentos de Ingeniería de SW 196UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Directrices: El cartógrafo

? Los cartógrafos se sirven de los nombres del territorio – no cambian los nombres de ciudades en sus mapas. En el caso de un modelo conceptual ello significa utilizar el vocabulario del dominio cuando se asignan nombres a los conceptos y a los atributos.

? Un cartógrafo elimina cosas en el mapa en caso de que no las juzgue pertinentes para el propósito: por ejemplo, excluir la información sobre la población. De modo similar, un modelo conceptual puede excluir los conceptos que no estén relacionados directamente con los requerimientos.

? Un cartógrafo no muestra cosas en el mapa que no existan. En forma parecida, el modelo conceptual no debe mostrar las cosas que no se encuentren en el dominio del problema en cuestión.

Fundamentos de Ingeniería de SW 197UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Un error frecuente al identificar conceptos

? Tal vez, el error más frecuente cuando se crea el modelo conceptual es el de representar algo como atributo, cuando debió haber sido un concepto.

? Una regla práctica de no caer en él: ? Si en el mundo real no consideramos algún concepto X como

número o texto, probablemente X sea un concepto y no un atributo.?Por ejemplo, en el dominio de reservaciones en líneas aéreas:

¿debería el aeropueto de destino ser atributo de vuelo o un concepto aparte? En el mundo real, un aeropuerto de destino no se considera ni número, ni texto, es una cosa que ocupa espacio. Por tanto, Aeropuerto debería ser un concepto.

? En caso de duda, convierta un atributo en un concepto.

Fundamentos de Ingeniería de SW 198UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de las Asociaciones

? Es necesario identificar las asociaciones de los conceptos que se requieren para satisfacer los requerimientos de información de los casos de uso en cuestión y los que contribuyen a entender el modelo conceptual.

? La asociación es una relación entre dos conceptos que indica alguna conexión significativa entre ellos.

? En el lenguaje UML se describen como relaciones estructurales entre los objetos de diferentes tipos.

2222

Fundamentos de Ingeniería de SW 199UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de Asociaciones : Criterios

? Las asociaciones que vale la pena mencionar suelen incluir el conocimiento de una relación que ha de preservarse durante algún tiempo: puede tratarse de milisegundos o años según el contexto.

TPDV Venta actual

1 Registra 1

Asociación

Fundamentos de Ingeniería de SW 200UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de las Asociaciones : Criterios

? Examine la conveniencia de incluir las siguientes asociaciones en un modelo conceptual: ? Las asociaciones en que el conocimiento de la relación ha de ser

preservado durante algún tiempo (asociaciones que deben “conocerse”)

? Las asociaciones provenientes de la lista de asociaciones comunes.?Por ejemplo, las instancias de VentaLineaDeProducto deben ir

asociadas a la instancia Venta, sin esto sería imposible imprimi r un recibo, calcular el total, etc. ?En cambio, no necesitamos una relación entre Gerente y Venta.

Fundamentos de Ingeniería de SW 201UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de las Asociaciones: Notación

? Una asociación se representa como una línea entre los conceptos con el nombre de la asociación. ? Esta es intrínsecamente bidireccional: es un nexo entre objetos. ? Los extremos de una asociación pueden contener una expresión de

multiplicidad que indique la relación numérica entre las instancias o conceptos, que se llaman papeles.

Fundamentos de Ingeniería de SW 202UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Identificación de asociaciones: lista de asociaciones comunes

? Comience agregar las asociaciones utilizando la lista de anexa. ? Categorías comunes que normalmente vale la pena incluir.

Categoría Ejemplos

A es una parte física de B Caja-TPDVAla-Avión

A es una parte lógica de B VentasLineaDeProducto -VentaTramoDeVuelo-RutaDeVuelo

A está físicamente contenido en B TPDV-Tienda Producto -EstantePasajero - Avión

A está lógicamente contenido en B DescripcionDeProducto – CatálogoVuelo - ProgramaDeVuelo

Fundamentos de Ingeniería de SW 203UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Identificación de asociaciones: lista de asociaciones comunes

A es una descripción de B DescripcionDeProducto – ProductoDescripcionDeVuelo - Vuelo

A es un elemento de línea en unatransacción o reporte B

VentasLineaDeProducto -VentaTrabajoDeManteniemiento-Mantenimiento

A se conoce/ introduce/ registra/ presenta/captura en B

Venta – TPDVReservacion - ListaDePasajeros

A es miembro de B Cajero – TiendaPiloto – Avion

A es una subunidad organizacional de B Departamento – TiendaMantenimiento - LineaAerea

A usa o dirige a B Cajero – TPDVPiloto – Avion

A se comunica con B Cliente – CajeroAgenteDeReservaciones -Pasajero

Fundamentos de Ingeniería de SW 204UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Identificación de las asociaciones: lista de asociaciones comunes

A se relaciona con una transacción B Pago – BoletaPasajero – Boleto

A es una transacción relacionada con otratransacción B

Pago – VentaReservacion –Cancelacion

A está contiguo a B TPDV – TPDVCuidad – Cuidad

A es propiedad de B TPDV – TiendaAvion– LineaAerea

2323

Fundamentos de Ingeniería de SW 205UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Identificación de las asociaciones: lista de asociaciones comunes

? Las categorías de alta prioridad que siempre vale la pena incluir son las siguientes: ? A es una parte física o lógica de B? A está físicamente o lógicamente contenido en B? A está registrado en B

? Las asociaciones son importantes, pero la falla habitual al crear los modelos conceptuales es el excesivo tiempo que se dedica al intento de descubrirlas. ? Es mucho más importante identificar conceptos que asociaciones.

El tiempo consagrado a la creación del modelo conceptual deberíadestinarse a identificar los conceptos, no las asociaciones.

Fundamentos de Ingeniería de SW 206UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Directrices de las asociaciones

? Concentrarse en las asociaciones en que el conocimiento de la relación ha de preservarse durante algún tiempo (asociaciones que “es necesario conocer”).

? Muchas asociaciones tienden a confundir el modelo conceptual en vez de aclararlo. A veces se requiere mucho tiempo para descubrirlas, y los beneficios son escasos.

? No incluir las asociaciones redundantes, ni las derivables.

Fundamentos de Ingeniería de SW 207UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Multiplicidad

? La multiplicidad define cuántas instancias de tipo A pueden asociarse a una instancia del tipo B en determinado momento.

Tienda Producto

1 Almacena *

Multiplicidad del papel

Fundamentos de Ingeniería de SW 208UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Multiplicidad

? Algunos ejemplos de multiplicidad:

? En UML, el valor de multiplicidad depende del contexto, no hay soluciones prefabricadas. ? Por ejemplo, asociación Trabaja-Para entre Persona y Compañía

tendrá diferencias en la multiplicidad dependiendo para quien seesta haciendo el sistema: departamento de impuestos (1..*)o sindicato de trabajadores (1..1).

* cero o más, “muchos” 1..40 de uno a 401..* uno o más 5 exactamente 53,5,8 exactamente 3, 5 u 8

Fundamentos de Ingeniería de SW 209UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Notación

? Se asigna un nombre a una asociación basándose en el formato NombreDeTipo-FraseNominal-NombreDeTipo, ? donde la frase nominal genera una secuencia que es legible y

significativa dentro del contexto del modelo. ? Los nombres de las asociaciones comienzan con una mayúscula. ? Una frase nominal (verbo) debe construirse con guiones. ? La dirección de lectura es de izquierda a derecha y de arriba hacia

abajo.

Fundamentos de Ingeniería de SW 210UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Notación

Linea Aerea

Avión1 Asignada-a *

Persona Vuelo* Asignado-a 1

1

Emplea

1..*

1 *

Supervisa

Tienda

Pago1 Captura 1..*

TPDV Venta1 Pagada-por 1

1

Contiene 1..*

2424

Fundamentos de Ingeniería de SW 211UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Asociaciones múltiples entre dos conceptos

? Dos conceptos pueden tener varias asociaciones entre ellos; sucede con frecuencia. ? Por ejemplo, en el dominio de la línea aérea encontramos varias

relaciones entre Vuelo y Aeropuerto. ? Las asociaciones volar-hacia y volar-de son netamente diferentes

que deben mostrarse por separado. ? Adiviértase asimismo que no se garantiza que todos los vuelos

aterricen en un aeropuerto.

Vuelo Aeropuerto

* Vuela-hacia 0..1

* Vuela-de 1

Fundamentos de Ingeniería de SW 212UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Asociaciones y su implementación

? Durante la fase de análisis, una asociación no es una proposición sobre flujos de datos, variables de instancia, ni conexiones de objetos en una solución de software; es una proposición de que una relación es significativa en un sentido puramente analítico: en el mundo real.

? “Una asociación no necesariamente debe ser implementada durante la construcción”

Fundamentos de Ingeniería de SW 213UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Asociaciones del dominio del punto de venta

? Deberíamos incorporar las asociaciones que indican los requerimientos (los casos de uso, por ejemplo), las que conllevan la necesidad de recordar o que de alguna otra forma nos sugiere nuestra percepción del dominio del problema.

? Conceptos:? TPDV, Producto, Tienda, Venta, Pago ? Catalogo De Producto, Especificación De Producto? Ventas Línea De Productos? Cajero, Cliente, Gerente

Fundamentos de Ingeniería de SW 214UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Asociaciones del dominio del punto de venta

? Relaciones inolvidables en la Tienda

TPDV captura Venta Para conocer la venta actual genera un total eimprime un recibo.

Venta pagada en efectivo Para saber si se pagó la venta, relaciona lacantidad ofrecida con el total de la venta eimprime un recibo.

CatalogoDeProductos registraEspecificacionDeProducto

Para recuperar la especificación de producto conun código universal de producto

Fundamentos de Ingeniería de SW 215UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Asociaciones del dominio del punto de venta

? Recorreremos la lista de comprobación, basándonos en tipos anteriormente identificados y teniendo presentes los requerimientos actuales del caso de uso.

Categoría Sistema TPDVA es una parte física de B no se aplicaA es una parte lógica de B VentasLineaDeProducto-Venta

A está contenido físicamente en B TPDV-TiendaProducto-Tienda

A está contenido lógicamente en BEspecificacionDeProducto –CatalogodeProductosCatalogodeProductos -Tienda

A es una descripción de B EspecificacionDeProducto – ProductoA es un elemento de línea en unatransacción o reporte B VentasLineaDeProducto-Venta

Fundamentos de Ingeniería de SW 216UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Asociaciones del dominio del punto de venta

A se conoce/ introduce/ registra/ presenta/captura en B

Venta (terminada) – TiendaVenta (actual) – TPDV

A es miembro de B Cajero – TiendaA es una subunidad organizacional de B no aplicable

A usa o dirige a B

Cajero – TPDVGerente – TPDVGerente – Cajero, probablemente noaplicable

A se comunica con B Cliente – Cajero

A se relaciona con una transacción B Cliente – PagoCajero – Pago

A es una transacción relacionada con otratransacción B Pago – Venta

A está contiguo a B TPDV – TPDV, probablemente no aplicableA es propiedad de B TPDV – Tienda

2525

Fundamentos de Ingeniería de SW 217UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo Conceptual del punto de venta

1Pago

1

1

Cliente

11

Gerente

11 Cajero1

1

*

1

1..*

1

10..1

1

Venta

Pagado-porIniciado-por 1..*

TPDV

Iniciado-por

Registra-Ventas-en

1

1

Capturadas-en

1

*

1

*

VentasLineaDeProducto

Contenidas-en

1

*Producto

Registra-Venta-de

1

*

Tienda

1

Capturas-Terminada

Aloja

Almacena

1

1..*

EspecificaciondeProducto

*

1

Descrita-por

Describe

1CatalogoDeProductos

Usado-por

1..*1

Contiene

Fundamentos de Ingeniería de SW 218UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo Conceptual del punto de venta

? El conjunto de asociaciones que se incluye en el modelo se obtuvo de manera bastante mecánica a partir de la lista de comprobación. Pero tal vez hay que ser más restrictivos con las asociaciones.

? Venta Capturada por Cajero ? Los requerimientos no indican la necesidad de conocer, ni de

registrar al cajero actual. Además es derivable si existe la asociación TPDV usado-por Cajero.

? TPDV Usado-por Cajero? Los requerimientos no indican la necesidad de conocer, ni de

registrar al cajero actual.

Fundamentos de Ingeniería de SW 219UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo Conceptual del punto de venta

? TPDV Iniciado-por Gerente? Los requerimientos no indican la necesidad de conocer, ni de

registrar al gerente que inició un TPDV.

? Venta Iniciada por Cliente? Los requerimientos no indican la necesidad de conocer, ni de

registrar al cliente actual.

? Tienda Almacena Producto? Los requerimientos no indican la necesidad de conocer o mantener

la información del inventario.

? Ventas Línea De Producto Registra -venta-de Producto? Los requerimientos no indican la necesidad de mantener la

información del inventario.

Fundamentos de Ingeniería de SW 220UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo Conceptual del punto de venta

1Pago

1

Cliente

Gerente

Cajero

1

*

1

1..*

1 1

Venta

Pagado-por

1..*

TPDV

1

1

Capturadas-en

1

*

VentasLineaDeProducto

Contenidas-en

1

*

Producto

1

*

Tienda

1

Capturas-Terminada

Aloja

1

1..*

EspecificaciondeProducto

*

1

Descrita-por

Describe1

CatalogoDeProductos

Usado-por

1..*1

Contiene

Fundamentos de Ingeniería de SW 221UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo Conceptual del punto de venta

? Nótese que la capacidad de justificar una asociación atendiendo a la necesidad de conocerla depende de los requerimientos; un cambio de ellos – por ejemplo, exigir que la identificación del cajero aparezca en el recibo –altera la necesidad de recordar la relación.

? Enfatice las asociaciones que deben conocerse, pero incorpore también las opcionales que se requieran sólo para la comprensión, con el fin de enriquecer el conocimiento básico del dominio.

Fundamentos de Ingeniería de SW 222UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de los Atributos

? Recuerde que el modelo conceptual es una representación de cosas reales, no de componentes de software. Cualquier afirmación concerniente a los atributos ha de interpretarse dentro del contexto de entidades del mundo real.

? Un atributo es una valor lógico de un dato o de un objeto.

2626

Fundamentos de Ingeniería de SW 223UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de los Atributos

? Incluya los siguientes atributos en el modelo conceptual: ? Aquellos en que los requerimientos (por ejemplo, casos de uso)

indican o conllevan la necesidad de recordar información. ?Por ejemplo, un recibo de ventas normalmente incluye fecha y hora.

En consecuencia, el concepto venta requiere dos atributos: fecha y hora.

? Los atributos se muestran en la segunda sección de conceptos, esopcional indicar su tipo.

Venta

fechaHoraDeInicio: hora

Atributos

Fundamentos de Ingeniería de SW 224UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de los Atributos

? Los tipos más simples de atributos son los que, en la práctica, suelen considerarse los tipos primitivos de datos. ? Por lo regular, el tipo de un atributo no debería ser un concepto

complejo del dominio, como Venta o Aeropuerto. Por ejemplo, podríamos poner un atributo TPDV-Actual al concepto Cajero, que no es un tipo simple, pero la forma más conveniente de expresarlo es a través de la asociación.

1 Usa 1

Cajero

nombreTPDVactual

Cajero

nombre

TPDV

numero

Fundamentos de Ingeniería de SW 225UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Agregación de los Atributos

? En un modelo conceptual es preferible que los atributos sean atributos simples o valores puros de datos.

? Entre los tipos comunes de atributos simples más frecuentes figuran: ? Booleano, Fecha, Numero, Cadena (Texto), Hora? Direccion, Color, Geometria (punto, Rectangulo, …), Telefono, RUT,

Codigo Universal de Producto (CUP), codigo postal, tipos numerados

? Una confusión frecuente consiste en modelar como atributo un concepto complejo del dominio. Por lo tanto, relacione conceptos a través de una asociación no con un atributo.

Fundamentos de Ingeniería de SW 226UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Atributos del sistema de punto de venta

? Es necesario producir una lista de atributos para los conceptos del dominio de punto de venta. Debería estar reservada específicamente a los requerimientos a las simplificaciones en cuestión: Comprar productos versión 1.

? Para eso habrá que leer los siguientes documentos: ? especificación de requerimientos? casos de uso en cuestión? documentos de simplificaciones, clarificaciones y suposiciones

Fundamentos de Ingeniería de SW 227UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Atributos del sistema de punto de venta

? Por ejemplo, podemos identificar los atributos:? Tienda: dirección, nombre? Venta: fecha, hora? VentasLineaDeProducto: cantidad? Pago: monto? EspecificacionDeProducto: decripcion, precio, cup

Fundamentos de Ingeniería de SW 228UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Atributos del sistema de punto de venta

? Es posible que el cajero reciba un grupo de productos afines (seis paquetes de pañuelos desechables) y introduzca una sóla vez el CUP y la cantidad (seis). ? En consecuencia una instancia de VentasLineaDeProducto puede

estar asociada a más de una instancia de cada producto. ? La cantidad que introduce el cajero puede quedar registrada como

atributo de VentasLineaDeProducto.

? Sin embargo, también puede ser calculada a partir del valor real de multiplicidad de la relación; así puede caracterizarse como atributo derivado, el cual puede ser deducido de otra información. ? En UML, un atributo derivado se denota con el símbolo “/”.

2727

Fundamentos de Ingeniería de SW 229UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Atributos del sistema de punto de venta

0..1 Registra-venta -de 1..*

VentasLineaDeProducto

/cantidad

Producto

Fundamentos de Ingeniería de SW 230UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo Conceptual del punto de venta

1Pago

11

*

1

1..*

1 1Venta

fechahora

Pagado-por

1..*TPDV

1

1

Capturadas-en1

*

VentasLineaDeProductocantidad

Contenidas-en

1

*

Producto

1

*

Tiendadireccion1

Capturas-Terminada

Aloja

1

1..*

EspecificaciondeProducto

*

1

Descrita-por

Describe

1

CatalogoDeProductosdescr ipcionprecioC U P

Usado-por

1..*1

Contiene

Fundamentos de Ingeniería de SW 231UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo Conceptual del punto de venta

? Hemos creado un modelo conceptual relativamente útil del dominio del punto de venta.

? No existe un modelo apropiado para todos los casos y circunstancias, todos ellos no son más que aproximaciones al dominio que queremos entender.

? Un buen modelo conceptual capta las abstracciones esenciales y la información indispensable para comprender el dominio dentro del contexto de los requerimientos actuales.

Fundamentos de Ingeniería de SW 232UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Resumen

? Identificación de conceptos? Ejemplo

? Principio del cartógrafo

? Asociaciones de conceptos? Identificación de atributos

? Construcción del modelo conceptual

Fundamentos de Ingeniería de SW 233UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Quiz

? ¿Qué es lo que aparece en el modelo conceptual?? ¿Qué es el principio del cartógrafo?

? ¿Qué representa una asociación?? ¿Todas las asociaciones son importantes?

? ¿Qué representa la multiplicidad?? ¿Porqué son tan importantes los nombres en el modelo?

Fundamentos de Ingeniería de SW 234UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Quiz

? ¿Cómo se interpreta este diagrama?

OfertaCursos<<entidad>>

Cursos<<entidad>>

1

1..*

0. .*0. .*

prerrequisitos

0..*0. .*

1

1..*

OpcionesCursoProfesor<<entorno>>

AñadirOfertaCurso<<entorno>>

1 11 1

GestorCursosProfesor<<control>>

1..*0. .*

1. .*0. .*

maneja

1

1

1

1

2828

Fundamentos de Ingeniería de SW 235UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Contenido

? Comportamiento de los sistemas? Diagrama de secuencia del sistema

? Contratos? Precondiciones? Postcondiciones

Fundamentos de Ingeniería de SW 236UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los Sistemas

Perfeccionamiento del plan

Sincronización de artefactos

Análisis Diseño Construcción Prueba

1. Definir casos esenciales de

uso

5. Definir diagramas de

secuencia

2. Perfeccionar el diagrama de

casos

6. Definir los contratos de operaciones

3. Perfeccionar el modelo conceptual

7. Definir diagramas de

estado

4. Perfeccionar el glosario

Fundamentos de Ingeniería de SW 237UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? Antes de iniciar el diseño lógico de cómo funcionará una aplicación de software es necesario investigar y definir su comportamiento como una “caja negra”.

? El comportamiento del sistema es una descripción de lo que hace, sin explicar la manera en que lo hace. Una parte de esa descripción es un diagrama de secuencia del sistema.

Fundamentos de Ingeniería de SW 238UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? Los casos de uso indican cómo los actores interactúan con el sistema de software que es lo que realmente queremos crear.

? Durante la interacción un actor genera eventos dirigidos a un sistema, solicitando alguna operación a cambio. ? Por ejemplo, cuando un cajero introduce un código universal de

producto de un artículo, está pidiendo al sistema TPDV registrar el código.

Fundamentos de Ingeniería de SW 239UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? El diagrama de secuencia de un sistema es una representación que muestra, en un determinado escenario, los eventos generados por actores externos, su orden y los eventos externos del sistema. ? A todos los sistemas se les trata como caja negra; los diagramas se

centran en los eventos que fluyen de los actores a los sistemas.? En el diagrama el tiempo avanza hacia abajo, y el ordenamiento de

los eventos debería seguir el orden indicado en el caso de uso. ? Los eventos del sistema pueden incluir parámetros.

:Sistema

Sistema como caja negraActor

Fundamentos de Ingeniería de SW 240UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? Curso normal de los eventos en el caso Comprar Productos.

: Cajero

:Sistema

1: introducir Producto(CUP, cantidad)

2: terminarVenta ()

3: efectuarPago(monto )

Sistema como caja negra

Evento del sistemaInicia una operación de sistema

Actor

2929

Fundamentos de Ingeniería de SW 241UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Eventos y operaciones del sistema

? El evento de un sistema es un hecho externo de entrada que un actor produce en un sistema.

? La operación de un sistema es una acción que éste ejecuta en respuesta a una evento del sistema. ? Por ejemplo, cuando un cajero genera un evento

introducirProducto, causa la ejecución de la operación introducirProducto;

? El nombre del evento y de la operación son idénticos; la distinción reside en que el evento es el estímulo nombrado y la operación es la repuesta (lo mismo sucede con los mensajes y los métodos).

Fundamentos de Ingeniería de SW 242UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Registro de las operaciones de un sistema

? Para determinar el conjunto de las operaciones requeridas del sistema se identifican sus eventos. Cuando se utilizan los parámetros, las operaciones son las siguientes: ? EfectuarPago(CUP, Cantidad) ? TerminarVenta()? EfectuarPago(monto)

? ¿Donde deberían registrarse estas operaciones?. En UML se pueden agruparse las operaciones como operaciones de tipo Sistema. Los parámetros son opcionales.

Sistema

terminarVenta ( )introducirProducto ( )efectuarPago( )

Fundamentos de Ingeniería de SW 243UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Registro de las operaciones de un sistema

? Observe que la representación del tipo Sistema es muy diferente a lo que se expresó en el modelo conceptual.

? Los elementos de éste representan conceptos del mundo real; en cambio, el tipo Sistema es un concepto artificial. ? Ello se debe a la naturaleza de la información que estamos

representando: mientras el modelo conceptual es la información estática, el tipo Sistema representa el comportamiento de sistema, el cual es la información dinámica.

Fundamentos de Ingeniería de SW 244UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? Para elaborar un diagrama de secuencia del sistema que describa el curso normal de los eventos en un caso de uso: ? Trace una línea que represente el sistema como una caja negra. ? Identifique los actores que operan directamente sobre el sistema.

Trace una linea para cada uno de ellos. ? A partir del curso normal de los eventos del caso de uso identifique

los eventos (“externos”) del sistema que son generados por los actores. Muéstrelos gráficamente en el diagrama.

? A la izquierda del diagrama puede incluir o no el texto del caso de uso.

Fundamentos de Ingeniería de SW 245UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? Consideramos ahora el caso de uso Comprar Productos a fin de identificar los eventos del sistema. ? Primero debemos determinar los actores que interactúan

directamente con el sistema de software. ? El cliente interactúa con el cajero, pero no directamente con el

sistema TPDV; esto sólo lo hace el cajero. ? Por tanto, el cliente no es un generador de eventos del sistema,

sólo el cajero lo es.

Fundamentos de Ingeniería de SW 246UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? Los eventos de un sistema (y sus operaciones asociadas) deben expresarse en el nivel de propósito y no en el nivel el medio físico de entrada o de elementos de la interfaz.

? También mejora la claridad, si el nombre de un evento del sistema comienza con un verbo (agregar, introducir, terminar, efectuar), ya que recalca que los eventos están orientados a comandos. ? Así, “terminarVenta” es preferible a “IntroducirTeclaOprimida”

porque capta mejor el propósito de la operación: mantiene un carácter abstracto y no se pronuncia respecto a las decisiones de diseño sobre cuál interfaz sirve para capturar el evento del sistema.

3030

Fundamentos de Ingeniería de SW 247UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Diagrama de Secuencia del Sistema

? En cuanto a expresar las operaciones en el nivel de propósito, procure alcanzar el nivel más alto o la meta final de asignar nombre a la operación. Por ejemplo, respecto a la operación que captura el pago:

? IntroducirImporteOfrecido(monto) – deficiente? IntroducirPago(monto) – mejor? EfectuarPago – quizá mejor aún

Fundamentos de Ingeniería de SW 248UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Modelo de análisis

? Los diagramas de la secuencia de un sistema forman parte del modelo de comportamiento del sistema.

? El modelo de análisis se compone de: ?Modelo de casos de uso de análisis (modelo dinámico)?Casos de uso de alto nivel o esenciales ?Diagramas de casos de uso

?Modelo conceptual (modelo estático)?Diagramas de estructura estática para los conceptos de dominio

?Modelo de comportamiento (modelo dinámico)?Diagramas de secuencia del sistema?Contratos para las operaciones de sistema

?Modelo de estado del análisis (modelo dinámico)?Diagramas de estado para conceptos y casos de uso

Fundamentos de Ingeniería de SW 249UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los sistemas: contratos

? Los contratos contribuyen a definir el comportamiento de un sistema; describen el efecto de las operaciones sobre el sistema. ? El lenguaje UML (pero no el Rational Rose) ofrece un soporte para

definir las precondiciones y las poscondiciones de las operaciones.

? Los contratos de operación de sistema se elaboran durante la fase de análisis en un ciclo de desarrollo.

? Su desarrollo depende del desarrollo previo del modelo conceptual, de los diagramas de secuencia de sistema y la identificación de sus operaciones.

Fundamentos de Ingeniería de SW 250UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los sistemas: contratos

1Pago

11

*

1

1..*

1 1Venta

fechahora

Pagado-por

1..*TPDV

1

1

Capturadas-en

1

*

VentasLineaDeProductocantidad

Contenidas-en

1

*Producto

1

*Tienda

direccion

1

Capturas-Terminada

Aloja

1

1..*

EspecificaciondeProducto

*

1

Descrita-por

Describe

1CatalogoDeProductosdescripcionprecioC U P

Usado-por

1..*1

Contiene

Fundamentos de Ingeniería de SW 251UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los sistemas: contratos

? En términos generales, un contrato es un documento que describe lo que una operación se propone lograr.? Suele redactarse en un estilo declarativo, enfatizando lo que

sucederá y no cómo se conseguirá. ? Los contratos suelen expresarse a partir de los cambios de estado

de las precondiciones y de las poscondiciones. ? Puede elaborarse un contrato tanto para un método de una clase,

como para una operación más global del sistema, aunque por ahora nos concentramos en su uso para las operaciones globales del sistema.

? El contrato de operación del sistema describe cambios del estado del sistema total cuando se llama una de sus operaciones.

Fundamentos de Ingeniería de SW 252UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los sistemas: contratos

? El siguiente ejemplo describe un contrato de la operación introducirProducto del sistema:

ContratoNombre: IntroducirProducto (cup:numero, cantidad:entero )Responsabilidades: Capturar (registrar) la venta de un producto y agregarla a la venta. Desplegar

la descripción y el precio del producto.Tipo: SistemaReferencias cruzadas: Funciones del sistema: R1.1, R1.3, R1.6

Casos de uso: Comprar productosNotas: Utilizar el acceso superrápido a la base de datos.Excepciones: Si el CUP no es válido, indicar que se cometió.Salida:Precondiciones: El sistema conoce el CUP.

3131

Fundamentos de Ingeniería de SW 253UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los sistemas: contratos

? No todas las secciones del contrato son necesarias; se recomienda llenar Responsabilidades y Poscondiciones.

Poscondiciones:Si se trata de una nueva venta, se creó una Venta (creación de instancia ).Si se trata de una nueva venta, la nueva Venta fue asociada a un TPDV ( asociaciónformada).Se creó una instancia VentasLineadeProducto (creación de instancia ).Se asoció una instancia de VentasLineadeProducto a la Venta (asociación formada ).Se asignó una cantidad a VentasLineadeProducto.cantidad (modificación de atributo ).Se asoció una instancia VentasLineadeProducto a la instancia EspecificaciondeProducto ,basado en la correspondencia del CUP ( asociación formada ).

Fundamentos de Ingeniería de SW 254UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los sistemas: contratos

ContratoNombre: Nombre de la operación y sus parámetros.Responsabilidades: Descripción informal de las responsabilidades que debe cumplir la operación.Tipo: Nombre del tipo (concepto, clase de software, interfaz).Referencias cruzadas: Números de referencia de las funciones del sistema, casos de uso, etc.Notas: Declaraciones del diseño referentes a la operación. Por ejemplo, si se sabe

que se prefiere un algoritmo particular para manejar la operación, esa secciónes el sitio indicado.

Excepciones: Casos excepcionales.Salida: Sólo dentro del sistema, no incorpore salidas de interfaz de usuario, mensajes

o registros que se envían fuera del sistema.Precondiciones: Suposiciones acerca del estado del sistema antes de ejecutar la operación.Poscondiciones: El estado del sistema después de la operación.

Fundamentos de Ingeniería de SW 255UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Comportamiento de los sistemas: contratos

? Aplique la siguiente sugerencia para elaborar contratos.? Identifique las operaciones del sistema a partir de los diagramas de

secuencia. ? Elabore un contrato en cada operación del sistema. ? Comience redactando la sección Responsabilidades; después

describa informalmente el propósito de la operación.? Complete la sección de Postcondiciones, describiendo en forma

declarativa los cambios de estado de los objetos en el modelo conceptual.

? Para describir las postcondiciones utilice las siguientes categorías: ? Creación y eliminación de instancias.? Modificación de atributos. ? Asociaciones formadas y canceladas.

Fundamentos de Ingeniería de SW 256UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Poscondiciones

? Después de la sección de Responsabilidades, la parte más importante del contrato son las poscondiciones, que estipulan cómo cambió el sistema tras la operación.

? Las poscondiciones se expresan dentro del modelo conceptual. ? ¿Qué instancias es posible crear? La repuesta es: las provenientes

del modelo conceptual. ? ¿Qué asociaciones es posible formar? La repuesta es: las que están

en el modelo conceptual.

Fundamentos de Ingeniería de SW 257UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Poscondiciones

? Cuando se formulan contratos, en general se agregarán al modelo conceptual nuevos conceptos, atributos y asociaciones. ?Mejore el modelo conforme a los nuevos descubrimientos, mientras

reflexiona sobre los contratos de las operaciones.

? Las poscondiciones deberían expresar el estado de un sistema, no las acciones a realizar. ? Expréselas en tiempo pasado para enfatizar que se trata de

declaraciones sobre un cambio pretérito de estado. Por ejemplo: ?Se creó una instancia VentasLineadeProducto (mejor)

? En lugar de ?Crear una instancia VentasLineadeProducto (peor)

Fundamentos de Ingeniería de SW 258UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Poscondiciones

? Entonces, mire el contrato desde la perspectiva de un escenario y un telón.? Tome una fotografía de escenario antes de la operación? Corra el telón y aplique la operación del sistema (ruido de fondo

con sonidos).? Corra el telón y tome una segunda fotografía. ? Compare las fotografías de antes y después, y exprese como

poscondiciones los cambios del estado del escenario (se creó la instancia VentasLineadeProducto…).

3232

Fundamentos de Ingeniería de SW 259UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Ejemplo

? Poscondiciones:? Si se trata de una nueva venta, se creó una Venta (creación de instancia).? Si se trata de una nueva venta, la nueva Venta fue asociada a un TPDV (asociación

formada).? Se creó una instancia VentasLineadeProducto (creación de instancia ).? Se asoció una instancia de VentasLineadeProducto a la Venta (asociación

formada).

? Se asignó una cantidad a VentasLineadeProducto.cantidad (modificación de atributo).

? Se asoció una instancia VentasLineadeProducto a la instancia EspecificaciondeProducto, basado en la correspondencia del CUP (asociación formada).

Fundamentos de Ingeniería de SW 260UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Ejemplo

? Una vez que el cajero capturó el CUP y la cantidad del producto, ¿Qué ha de crearse?.

? Si se trata de una nueva venta, habría que crear una instancia para una nueva Venta. Una instancia VentasLineadeProducto debería ser creada de modo incondicional. ? Si se trata de una nueva venta, se creó una Venta (creación de

instancia).? Se creó una instancia VentasLineadeProducto (creación de

instancia).

Fundamentos de Ingeniería de SW 261UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Ejemplo

? Una vez que el cajero capturó el CUP y la cantidad del producto, ¿qué atributos de los objetos nuevos o actuales deberían ser modificados?. Habría que establecer la cantidad de VentasLineadeProducto.? Se asignó una cantidad a VentasLineadeProducto.cantidad

(modificación de atributo).

Fundamentos de Ingeniería de SW 262UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Ejemplo

? Una vez que el cajero capturó el CUP y la cantidad del producto, ¿qué asociaciones entre los objetos nuevos y actuales debieron haber sido formadas o canceladas?.

? Habría que relacionar la nueva instancia de VentasLineadeProductocon sus Ventas y con su Producto. Si se trataba de una nueva Venta debió haber sido relacionada con la TPDV dentro del cual es registrada. ? Se asoció una instancia de VentasLineadeProducto a la Venta (asociación

formada).? Si se trata de una nueva venta, la nueva Venta fue asociada a un TPDV

(asociación formada).? Se asoció una instancia VentasLineadeProducto a la instancia

EspecificaciondeProducto , basado en la correspondencia del CUP (asociación formada).

Fundamentos de Ingeniería de SW 263UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Precondiciones

? Las precondiciones definen las suposiciones sobre el estado del sistema al iniciarse la operación.

? Hay muchas precondiciones que pueden declararse en una operación, pero la experiencia revela que vale la pena mencionar las siguientes: ? Cosas que son importantes de probar en el software en algún

momento de la ejecución de la operación.? Cosas que serán sometidas a prueba, pero de las cuales depende

el éxito para subrayar la importancia y para hacer notarlas a los otros lectores.

Fundamentos de Ingeniería de SW 264UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Contratos

? El problema más común consiste en olvidar incluir la formación de asociaciones. Sobre todo cuando se crean nuevas instancias, muy probablemente será necesario haber establecido las asociaciones a varios objetos.

3333

Fundamentos de Ingeniería de SW 265UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Contrato para introducirProducto

ContratoNombre: IntroducirProducto (cup:numero, cantidad:entero )Responsabilidades: Capturar (registrar) la venta de un producto y agregarla a la venta. Desplegar

la descripción y el precio del producto.Tipo: SistemaReferencias cruzadas: Funciones del sistema: R1.1, R1.3, R1.6

Casos de uso: Comprar productosNotas: Utilizar el acceso superrápido a la base de datos.Excepciones: Si el CUP no es válido, indicar que se cometió un error.Salida:Precondiciones: El sistema conoce el CUP.Poscondiciones:? Si se trata de una nueva venta, fue creada una Venta.? Si se trata de una nueva venta, la nueva Venta fue asociada a un TPDV.? Se creó una instancia VentasLineadeProducto.? Se asoció una instancia de VentasLineadeProductoa la Venta.? Se asignó una cantidad a VentasLineadeProducto.cantidad.? Se asoció una instancia VentasLineadeProductoa la instancia

EspecificaciondeProducto, basado en la correspondencia del CUP.Fundamentos de Ingeniería de SW 266

UTFSMEX UMBRA SOLEM

IN

Análisis Orientado a Objetos Contrato para terminarVenta

ContratoNombre: terminarVenta()Responsabilidades: Registrar que es el final de la captura de los productos de la venta y desplegar

el total de la venta.Tipo: SistemaReferencias cruzadas: Funciones del sistema: R1.2

Casos de uso: Comprar productosNotas:Excepciones: Si no esta realizándose una venta, indicar que se cometió un error.Salida:Precondiciones:Poscondiciones:Estableció Venta.estaTerminada en verdadero .

Fundamentos de Ingeniería de SW 267UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Contrato para efectuarPago

ContratoNombre: efectuarPago(monto: número)Responsabilidades: Registrar el pago, calcular el saldo e imprimir el recibo.Tipo: Sistema.Referencias cruzadas: Funciones del sistema: R2.1

Casos de uso: Comprar productosNotas:Excepciones: Si la venta no está concluida, indicar que se cometió un error.Salida:Precondiciones: La venta esta terminada.Poscondiciones:Se creó una instancia Pago .Se asoció el Pago a una Venta.Se asignó el valor del monto a Pago.MontoOfrecido .Se asoció la Venta a la Tienda para agregarla al registro histórico de las ventas terminadas.

Fundamentos de Ingeniería de SW 268UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Contrato para Inicio

ContratoNombre: Inicio()Responsabilidades: Inicializar el sistemaTipo: Sistema.Referencias cruzadas:Notas:Excepciones:Salida:Precondiciones:Poscondiciones:Se creó una instancia Tienda, TPDV, CatalogodeProductosy EspecificacionesdeProducto.Se asoció CatalogodeProductosa EspecificacionesdeProducto .Se asoció Tienda a CatalogodeProductos.Se asoció Tienda a TPDV.Se asoció TPDVa CatalogodeProductos.

Fundamentos de Ingeniería de SW 269UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Cambios en el modelo conceptual

? Estos contratos sugieren la existencia de un dato que todavía no ha figurado en el modelo conceptual: la terminación de la captura de los productos en la venta. Lo modifica la operación terminarVenta y la especificación efectuarPago lo toma como precondición.

? Una forma de representar esta información es a través de un atributo estaTerminada de la Venta, por medio de un valor booleano.

Venta

estaTerminada: booleanfechahora

Fundamentos de Ingeniería de SW 270UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Resumen

? Comportamiento de los sistemas? Diagrama de secuencia del sistema

? Contratos? Precondiciones? Postcondiciones

3434

Fundamentos de Ingeniería de SW 271UTFSM

EX UMBRA SOLEMIN

Análisis Orientado a Objetos Quiz

? ¿Qué es el comportamiento de un sistema?? ¿Qué representa el diagrama de secuencia del sistema?

? ¿Cuál es la diferencia entre evento y operación?? ¿Porqué se crea el concepto sistema?

? ¿Cuál es el nombre correcto para una operación?? ¿Cuál es la diferencia entre lo estático y lo dinámico?

? ¿Porqué son necesarios los contratos y cuantos son para un caso de uso?

? ¿Cuales son los condiciones para elaborar un contrato?

? ¿Cuales son las partes más importantes del contrato?

Fundamentos de Ingeniería de SW 272UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Contenido

? Fase de Diseño ? Artefactos ? Actividades

? Casos Reales de Uso? Diagramas de Interacción

Fundamentos de Ingeniería de SW 273UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Fase de Diseño

? En la fase de análisis del desarrollo se da prioridad al conocimiento de los requerimientos, los conceptos y las operaciones relacionadas con el sistema.

? Análisis se caracteriza por centrarse en cuestiones concernientes al qué, mientras que el diseño se concentra en cómo.

Fundamentos de Ingeniería de SW 274UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Fase de Diseño

? El siguiente grupo mínimo de artefactos sirven para capturar losresultados de una investigación: ? Casos de uso

? ¿Cuáles son los procesos del dominio?

? Modelo Conceptual? ¿Cuáles son los conceptos, los términos?

? Diagramas de la secuencia de un sistema? ¿Cuáles son los eventos y las operaciones del sistema?

? Contratos? ¿Qué hacen las operaciones del sistema?

? Durante el ciclo de desarrollo iterativo es posible pasar a la fase de diseño una vez terminados estos documentos de análisis.

Fundamentos de Ingeniería de SW 275UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Fase de Diseño

? Durante la fase de diseño se logra una solución lógica que se fundamenta en el paradigma orientado a objetos.

? Su esencia es la elaboración de diagramas de interacción, que muestran gráficamente cómo los objetos se comunicarán entre ellos a fin de cumplir con los requerimientos.

? La definición de los diagramas de interacción nos permite dibujar los diagramas de diseño de clases que resumen la definición de las clases (e interfaces) implementables en el software.

Fundamentos de Ingeniería de SW 276UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Actividades

Perfeccionamientodel plan

Sincronización deartefactos

Análisis Diseño Construcción Prueba

1. Definir los casosreales de uso

4. Definir losdiagramas deinteracción

2. Definir reportes,interfaz de usuario

y storyboards

5. Definir losdiagramas de

clases de diseño

3. Perfeccionar laarquitectura del

sistema

6. Definir elesquema de labase de datos

3535

Fundamentos de Ingeniería de SW 277UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Descripción de los casos reales de uso

? Un caso real de uso describe el diseño concreto del caso de uso a partir de una tecnología particular de entrada y salida, así como de su implementación global. ? Por ejemplo, si interviene una interfaz gráfica de usuario, el caso

real de uso incluirá los diagramas de las ventanas en cuestión yuna explicación de la interacción de bajo nivel con los artefactos de la interfaz.

? Tal vez no sea necesario generarlos. Una alternativa podría ser diseñar los storyboards o secuencias de pantallas de la interfaz de usuario y ampliarlos con más detalles durante la implementación.

Fundamentos de Ingeniería de SW 278UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Ejemplo: Comprar Productos Versión 1

Caso de uso: Comprar productos, versión 1Actores: Cliente (iniciador), CajeroPropósito: Capturar una venta y su pago en efectivo.Resumen: Un Cliente llega a la caja registradora con los artículos que comprará.

El Cajero registra los artículos y recibe una pago en efectivo. Alterminar la operación, el Cliente se marcha con los artículoscomprados.

Tipo: Primario y realReferenciasCruzadas:

Funciones: R1.1, R1.2, R1.3, R1.7, R2.1

Tienda de Objetos

CUP

Precio

Total

Ofrecido

Cantidad

Desc.

Saldo

IntroducirProducto

TerminarVenta

EfectuarPago

A

B

C

D

E

F

G

H I J

Fundamentos de Ingeniería de SW 279UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Ejemplo: Comprar Productos Versión 1

Curso normal de eventos:Acción de los actores Respuesta del sistema1. Este caso de uso comienza cuando unCliente llega a una caja de TPDV conproductos que desea comprar.2. Con cada producto, el Cajero teclea elcódigo universal de producto (CUP) en Ade la Ventana 1. Si un producto se repite, elCajero también puede introducir lacantidad en E. Se oprime botón H despuésde capturar cada producto

3. Agrega la información sobre el productoa la actual transacción de ventas.El precio del producto y la descripción delproducto actual aparecen en el recuadro By F respectivamente de la Ventana 1.

4. Al terminar de capturar los productos, elCajero oprime el botón I para indicarle alTPDV que se concluyó la captura deproductos.

5. Calcula y presenta en el recuadro C eltotal de la venta.

6. …

Tienda de Objetos

CUP

Precio

Total

Ofrecido

Cantidad

Desc.

Saldo

IntroducirProducto

TerminarVenta

EfectuarPago

A

B

C

D

E

F

G

H I J Fundamentos de Ingeniería de SW 280UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Diagramas de interacción

? Los diagramas de interacción no se pueden preparar si antes no se generan los siguientes artefactos: ? Un modelo conceptual a partir del cual el diseñador podrá definir

las clases de software correspondientes a los conceptos. Los objetos de las clases participan en las interacciones que se describen gráficamente en los diagramas.

? Contratos de la operación del sistema: a partir de ellos el diseñador identifica las responsabilidades y las poscondiciones que han decumplir los diagramas de interacción.

? Casos de uso reales (o esenciales): a partir de ellos el diseñador recaba la información sobre las tareas que realizan los diagramas de interacción, además de los estipulado en los contratos.

Fundamentos de Ingeniería de SW 281UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Diagramas de interacción

? Un diagrama de interacción explica gráficamente las interacciones existentes entre las instancias (y las clases). ? El punto de partida de las interacciones es el cumplimiento de las

poscondiciones de los contratos de operación.

? El UML define dos tipos de estos diagramas; ambos sirven para expresar interacciones semejantes o idénticas al mensaje.

Fundamentos de Ingeniería de SW 282UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Diagramas de interacción

? Los diagramas de colaboración describen las interacciones entre los objetos en un formato de grafo o red:

? Los diagramas de secuencia describen las interacciones en una especie de formato de cerca o muro:

Instancia1 : ClaseA Instancia2 : ClaseB

1: mensaje2() 2: mensaje3()mensaje1()

Instancia1 :ClaseA

Instancia2 :ClaseB

mensaje2()

mensaje3()

mensaje1()

3636

Fundamentos de Ingeniería de SW 283UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Ejemplo de un diagrama de colaboración: efectuarPago

: TPDV : Venta

: Pago

1: efectuarPago (efectivoOfrecido)

2: crear(efectivoOfrecido)

Dirección delmensaje

primermensaje

Primer mensajeinterno

Línea deenlace

Instancia

Parametro

efectuarPago( efectivoOfrecido)

Fundamentos de Ingeniería de SW 284UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Preparación de un diagrama de colaboración

? Elabore un diagrama por cada operación del sistema durante el ciclo actual de desarrollo. ? En cada mensaje del sistema, dibuje un diagrama incluyéndolo

como mensaje inicial. ? Si el diagrama se torna complejo (por ejemplo), si no cabe

holgadamente en una hoja de papel carta, divídalo en diagramas más pequeños.

? Diseñe un sistema de objetos interactivos que realicen las tareas, usando como punto de partida las responsabilidades del contrato de operación, las poscondiciones y la descripción de casos de uso.

? Aplique el GRASP y otros patrones para desarrollar un buen diseño

Fundamentos de Ingeniería de SW 285UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Relación entre los artefactos

: Cajero

:Sistema

introducir Producto(CUP, cantidad)

terminarVenta ()

efectuarPago(EfectivoOfrecido )

: TPDV

efectuarPago(efectivoOfrecido)

: TPDV

introducirProducto(CUP,cantidad)Contrato IntroducirProducto

Poscondiciones:1. Si se trata de una nueva ventase creo una nueva venta…

Contrato EfectuarPago

Poscondiciones:…

Diagrama de secuencia del sistema Contratos Diagrama de colaboración

Fundamentos de Ingeniería de SW 286UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Relación entre los artefactos

? Los casos de uso indican los eventos del sistema que se muestran explícitamente en los diagramas de secuencia.

? En los contratos se describe la mejor conjetura inicial sobre las operaciones del sistema.

? Las operaciones del sistema representan mensajes y éstos originan diagramas que explican gráficamente cómo los objetos interactúan para llevar a cabo las funciones requeridas.

Fundamentos de Ingeniería de SW 287UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? El UML ha adoptado un método simple y uniforme de distinguirlas visualmente las instancias de acuerdo a tipo: ? Con cada tipo de elemento del UML (clase, actor, ...), una insta ncia utiliza

el mismo símbolo gráfico usado para representar el tipo, pero se subraya el texto.

? El vínculo (o enlace) es una trayectoria de conexión entre dos instancias, indica la forma de navegación y visibilidad que es posible entre las instancias. ? En un lenguaje más formal, el vínculo es una instancia de una asociación.

Venta

Clase Instancia connombre

Instancia

: Venta s1: Venta

Fundamentos de Ingeniería de SW 288UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? Si vemos dos instancias en una relación de cliente -servidor, una trayectoria de navegación del cliente alservidor significa que los mensajes pueden enviarse del primero al segundo. ? Así, existe un vínculo o trayectoria de navegación entre TPDV y

una Venta, a lo largo del cual pueden fluir los mensajes; por ejemplo, el mensaje agregarPago.

:TPDV :Venta

2: agregarPago(monto: Numero)mens1()

Parámetros

Todos los mensajes fluyen porel mismo vínculo .

3737

Fundamentos de Ingeniería de SW 289UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? Los mensajes entre objetos pueden representarse por medio de una flecha con un nombre y situada sobre una línea del vínculo.? Se agrega un número de secuencia que indique el orden consecutivo de

los mensajes en la serie actual de control.

? Los parámetros de un mensaje pueden anotarse dentro de paréntesi s después del nombre del mensaje. Es opcional incluir o no el tipo de parámetro en cuestión

? El lenguaje UML cuenta con una sintaxis estándar para los mensajes: ? retorno : mensaje(parametro: tipoParametro) : tipoRetorno

? No obstante, es legal servirse de otra sintaxis como la de Java o la de Smalltalk. Recomendamos emplear la sintaxis estándar de UML a fin de que los diagramas de colaboración sigan siendo un lenguaje relativamente independiente

Fundamentos de Ingeniería de SW 290UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? Un objeto puede enviarse un mensaje de a sí mismo: esto lo muestra gráficamente un vínculo consigo mismo, donde el mensaje fluye a lo largo del vínculo.

:TPDV

1: limpiar ()

mens1()

Fundamentos de Ingeniería de SW 291UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? La iteración se indica posponiendo un asterisco (*) al número de secuencia. Ese símbolo significa que, dentro de un ciclo, el mensaje va a ser enviado repetidamente al receptor. También es posible incluir una cláusula de iteración que indique los valores de recurrencia.

:TPDV :Venta

1*: [i :=1..10] li:=siguienteLineadeProducto ( ) :VentasLineadeProductomens1()

Fundamentos de Ingeniería de SW 292UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? El mensaje de creación independiente del lenguaje es crear, que se muestra en el momento de ser enviado a la instancia que vamos a generar.

? El mensaje crear puede contener parámetros, lo cual indica la transferencia de los valores iniciales.

:TPDV :Venta

1:crear(cajero)mens1()

Fundamentos de Ingeniería de SW 293UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? El orden de los mensajes se indica con un número de secuencia, como se aprecia en la figura. El esquema de la numeración es:? El primer mensaje no se numera. Así, mens1() no lleva número. ? El orden y el anidamiento de los mensajes siguientes se indican

con un esquema legal de numeración, donde a los mensajes anidados se les ha antepuesto un número. La anidación se denota anteponiendo el número del mensaje de entrada al del mensaje de salida.

:TPDV :Venta

1:crear(cajero)mens1()

Fundamentos de Ingeniería de SW 294UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Numeración compleja de secuencias

: ClaseA : ClaseB

: ClaseC

: ClaseD

primero segundo

tercero

cuarto

quinto

sexto

1: mens2()

2: mens4()1.1: mens3()

2.1: mens5()

2.2: mens6()

3838

Fundamentos de Ingeniería de SW 295UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? Un mensaje condicional se indica posponiendo al número de la secuencia una cláusula condicional entre corchetes, en forma parecida a como se hace con una cláusula de iteración. El mensaje se envía sólo si la cláusula se evalúa como verdadera.

:TPDV :Venta

1:[nueva venta]crear()mens1()

Fundamentos de Ingeniería de SW 296UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? Un multiobjeto, o conjunto de instancias, puede dibujarse como un icono de pila según se observa en la figura.

? Un multiobjeto suele implementarse como un grupo de instancias guardadas en un contenedor u objeto colección; ? por ejemplo, un vector de la STL de C++, un Vector de Java o una

ColeccionOrdenada (OrderedCollection) de Smalltalk.

? Pero no necesariamente se implementa así; representa tan sólo un conjunto lógico de instancias.

Ventas : Venta

Multiobjeto

Fundamentos de Ingeniería de SW 297UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? Un mensaje dirigido a un icono de multiobjeto indica que se envía al objeto colección. ? Así, en la figura el mensaje tamaño está siendo enviado a la

instancia VentasLineadeProducto.

? En el lenguaje UML los mensajes dirigidos a un multiobjetono se trasmiten a todos los elementos (como sucedía en las versiones anteriores del UML).

: VentasLineaDeProducto

mensaje enviado alobjeto colección

: Venta

1: s := tamaño(): entero

Fundamentos de Ingeniería de SW 298UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Notación de los diagramas de interacción

? Los mensajes pueden ser dirigidos a la propia clase y no a una instancia, con el fin de llamar los métodos de la clase. ? Por ejemplo, en Java éstos se implementan como métodos

estáticos; en Smalltalk son métodos de clases.

? En consecuencia, es importante ser consistente en subrayar los nombres de las instancias cuando se desea denotar una instancia? De lo contrario pueden interpretarse erróneamente los mensajes

dirigidos a las instancias y los dirigidos a las clases.

: Venta Fecha

1: d1 :=hoy(): Fecha

no subrayada,por tanto una clase

Fundamentos de Ingeniería de SW 299UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Responsabilidades y métodos

? Booch y Rumbaugh definen la responsabilidad como “un contrato u obligación de un tipo o clase”. ? Las responsabilidades se relacionan con las obligaciones de un

objeto respecto a su comportamiento.

? Esas responsabilidades pertenecen, esencialmente, a las dos categorías siguientes: conocer o hacer

? Las responsabilidades se asignan a los objetos durante el diseño orientado a objetos. ? Por ejemplo, puede declararse que una Venta es responsable de

“imprimirse ella misma” (un hacer) o que “una Venta tiene la obligación de conocer su fecha” (un conocer).

Fundamentos de Ingeniería de SW 300UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Responsabilidades y métodos

? Entre las responsabilidades de un objeto relacionadas con hacer se encuentran: ? hacer algo en uno mismo ? iniciar una acción en otros objetos? controlar y coordinar actividades en otros objetos

? Entre las responsabilidades de un objeto relacionadas con conocer se encuentran: ? estar enterado de los datos privados encapsulados ? estar enterado de la existencia de objetos conexos ? estar enterado de cosas que se puede derivar o calcular

? Las responsabilidades relacionadas con “conocer” a menudo pueden inferirse del modelo conceptual por los atributos y asociaciones explicadas en él.

3939

Fundamentos de Ingeniería de SW 301UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Responsabilidades y métodos

? Responsabilidad no es lo mismo que método: los métodos se ponen en práctica para cumplir con las responsabilidades. ? Éstas se implementan usando métodos que operen solos o en

colaboración con otros métodos y objetos.

: Venta

significa que los objetosVenta tienen laresponsabilidad de imprimirse

: VentasLineaDeProducto

vli : VentasLineaDeProducto

1: [en cada] vli :=siguiente()

2: imprimir()

imprimir()

Fundamentos de Ingeniería de SW 302UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Responsabilidades y métodos

? La figura indica que a los objetos Venta se les ha asignado la responsabilidad de imprimirse ellos mismos, la cual se llama con un mensaje imprimir y se cumple con el método correspondiente imprimir.

? Más aún, para atender esta responsabilidad hay que colaborar con los objetos VentasLineadeProducto, pidiéndoles que se impriman.

Fundamentos de Ingeniería de SW 303UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Responsabilidades y métodos

? En resumen, los diagramas de interacción muestran las decisiones referentes a la asignación de responsabilidades entre los objetos.

? Cuando se preparan, se toman decisiones sobre la asignación que se reflejan en los mensajes que son enviados a varias clases de objetos.

? Los patrones GRASP guían las decisiones sobre la asignación de responsabilidades. Esas decisiones se reflejan después en los diagramas de interacción.

Fundamentos de Ingeniería de SW 304UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Resumen

? Fase de Diseño ? Artefactos ? Actividades

? Casos Reales de Uso? Diagramas de Interacción

Fundamentos de Ingeniería de SW 305UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a Objetos Quiz

? ¿Qué artefactos se preparan durante diseño OO? ? ¿Cuál es la diferencia entre análisis y diseño OO?

? ¿Qué es un caso de uso real?? ¿Qué representa un diagrama de interacción?

? ¿Cómo se trasmite el retorno de un mensaje?? ¿Porqué los objetos deben interactuar entre sí?

? ¿Cómo se interpreta el mensaje a multiobjeto? ? ¿Qué es la responsabilidad de una clase?

Fundamentos de Ingeniería de SW 306UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoContenido

? Patrones GRASP? Experto? Creador? Bajo Acoplamiento? Alta Cohesión? Controlador

4040

Fundamentos de Ingeniería de SW 307UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoGRASP: Patrones para Asignar Responsabilidades

? Un sistema orientado a objetos se compone de objetos que envían mensajes a otros objetos para que lleven a cabo las operaciones.

? En los contratos se incluye una conjetura inicial sobre las responsabilidades y las poscondiciones de las operaciones inicio, introducirProducto, terminarVenta y efectuarPago.

? Los diagramas de interacción describen gráficamente la solución -a partir de los objetos en interacción- que satisfacen estas responsabilidades y poscondiciones.

Fundamentos de Ingeniería de SW 308UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoGRASP: Patrones para Asignar Responsabilidades

? La calidad de diseño de la interacción de los objetos y la asignación de responsabilidades presentan gran variación. ? Las decisiones poco acertadas dan origen a sistemas y

componentes frágiles y difíciles de mantener, entender, reutilizar o extender.

? Una implementación hábil se funda en los principios cardinales que rigen un buen diseño orientado a objetos.

? En los patrones GRASP se codifican algunos de los principios, que se aplican al preparar los diagramas de interacción.

Fundamentos de Ingeniería de SW 309UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoGRASP: Patrones para Asignar Responsabilidades

? Los diagramas de interacción son algunos de los artefactos más importantes que se preparan en el análisis y diseño orientados a objetos.

? Es muy importante asignar acertadamente las responsabilidades almomento de elaborar ¡os diagramas de interacción.

? El tiempo y el esfuerzo que se dedican a su elaboración, así com o un examen riguroso de la asignación de responsabilidades, deberían absorber parte considerable de la fase de diseño de un proyecto.

? Los patrones, principios y expresiones especializadas codificados sirven para mejorar la calidad del diseño.

Fundamentos de Ingeniería de SW 310UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoGRASP: Patrones para Asignar Responsabilidades

? Los diseñadores expertos en orientación a objetos (y también otros diseñadores de software) van formando un amplio repertorio de principios generales y de expresiones que los guían al crear software.

? Muchos patrones ofrecen orientación sobre cómo asignar las responsabilidades a los objetos ante determinada categoría de problemas.

Fundamentos de Ingeniería de SW 311UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoGRASP: Patrones para Asignar Responsabilidades

? En la terminología de objetos, el patrón es una descripción de un problema y su solución, que recibe un nombre y que puede emplearse en otros contextos.

? En teoría, todos los patrones poseen nombres muy sugestivos. El asignar nombre a un patrón, a un método o a un principio ofrece las siguientes ventajas: ? Apoya el agrupamiento y la incorporación del concepto a nuestro sistema

cognitivo y a la memoria. ? Facilita la comunicación.

Nombre del Patrón ExpertoSolución Asignar una responsabilidad a la clase que tiene la

información necesaria para cumplirla.Problema que resuelve ¿Cuál es el principio fundamental en virtud del cual

asignaremos las responsabilidades a los objetos?

Fundamentos de Ingeniería de SW 312UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoGRASP: Patrones para Asignar Responsabilidades

? Los patrones GRASP son parejas de problema solución con un nombre, que codifican buenos principios y sugerencias relacionados frecuentemente con la asignación de responsabilidades.

Pregunta: ¿Qué son los patrones GRASP?Respuesta: Los patrones GRASP describen los principios

fundamentales de la asignación de responsabilidades aobjetos, expresados en forma de patrones.

4141

Fundamentos de Ingeniería de SW 313UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoGRASP: Patrones para Asignar Responsabilidades

? GRASP es un acrónimo que significa General ResponsibilityA signment Software Patterns (patrones generales de software para asignar responsabilidades).

? El nombre se eligió para indicar la importancia de captar (grasping) estos principios, si se quiere diseñar eficazmente el software orientado a objetos.

Fundamentos de Ingeniería de SW 314UTFSM

EX UMBRA SOLEMIN

Diseño Orientado a ObjetosNotación del UML para los diagramas de clase

? Los diagramas de clase en UML presentan las clases de software en contraste con los conceptos de dominio. La casilla de clase consta de tres secciones, la tercera contiene los métodos de la clase, como se aprecia en la figura.

NombredeClase

atributos

metodos( )

La tercerasección esta

destinada a losmétodos

Fundamentos de Ingeniería de SW 315UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoExperto

? Problema? ¿Cuál es el principio fundamental en virtud del cual se asignan las

responsabilidades en el diseño orientado a objetos?

? Un modelo de clase puede definir docenas y hasta cientos de clases de software, y una aplicación tal vez requiera el cumplimiento de cientos o miles de responsabilidades.

? Si estas se asignan en forma adecuada, los sistemas tienden a ser más fáciles de entender, mantener y ampliar, y se nos presenta la oportunidad de reutilizar los componentes en futuras aplicaciones.

? Solución? Asignar una responsabilidad al experto en información: la clase que cuenta

con la información necesaria para cumplir la responsabilidad.

Fundamentos de Ingeniería de SW 316UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoExperto

? Ejemplo

? En la aplicación del punto de venta, alguna clase necesita conocer el gran total de la venta. Comience asignando las responsabilidades con una definición clara de ellas. A partir de esta recomendación se plantea la pregunta:

?¿Quién es el responsable de conocer el gran total de la venta? ?Desde el punto de vista del patrón Experto, deberíamos buscar la

clase de objetos que posee la información necesaria para calcula r el total.

Fundamentos de Ingeniería de SW 317UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoExperto

*

1..*

1

Ventafechahora

EspecificaciondeProductosVentasLineaDeProductocantidad *

Descritas-por

Contenidas-en

Fundamentos de Ingeniería de SW 318UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoExperto

? En conclusión, para cumplir con la responsabilidad de conocer y dar el total de la venta, se asignaron tres responsabilidades a las tres clases de objeto así:

Clase ResponsabilidadVenta conoce el total de la ventaVentasLineadeProducto conoce el subtotal de la línea de productoEspecificaciondeProducto conoce el precio del producto

4242

Fundamentos de Ingeniería de SW 319UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoExperto

: Venta : VentasLineaDeProducto

vli : VentasLineaDeProducto

1: [en cada] vli :=siguiente()

2: s t :=subtotal()

: EspecificaciondeProductos

3: p:= precio()

t :=total()

Fundamentos de Ingeniería de SW 320UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoExperto

? Experto es un patrón que se usa más que cualquier otro al asignar responsabilidades; es un principio básico que suele útil en el diseño orientado a objetos.

? Nótese, que el cumplimiento de una responsabilidad requiere a menudo información distribuida en varias clases de objetos.

Fundamentos de Ingeniería de SW 321UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoExperto

? Beneficios? Se conserva el encapsulamiento, ya que los objetos se valen de su

propia información para hacer lo que se les pide. Esto soporta un bajo acoplamiento, lo que favorece al hecho de tener sistemas más robustos y de fácil mantenimiento.

? El comportamiento se distribuye entre las clases que cuentan conla información requerida, alentando con ello definiciones de clase “sencillas” y más cohesivas que son más fáciles de comprender y de mantener. Así se brinda soporte a una alta cohesión.

Fundamentos de Ingeniería de SW 322UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

? Problema

? ¿Quién debería ser responsable de crear una nueva instancia de alguna clase? ? La creación de objetos es una de las actividades más frecuentes en

un sistema orientado a objetos. ? En consecuencia, conviene contar con un principio general para

asignar las responsabilidades concernientes a ella. ? El diseño, bien asignado, puede soportar un bajo acoplamiento,

una mayor claridad, el encapsulamiento y la reutilizabilidad.

Fundamentos de Ingeniería de SW 323UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

? El patrón Creador guía la asignación de responsabilidades relacionadas con la creación de objetos, tarea muy frecuente en los sistemas orientados a objetos.

? El propósito fundamental de este patrón es encontrar un creador que debemos conectar con el objeto producido en cualquier evento.

? Al escogerlo como creador, se da soporte al bajo acoplamiento.

Fundamentos de Ingeniería de SW 324UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

? Solución

? Asignarle a la clase B la responsabilidad de crear una instancia de clase A en uno de los siguientes casos: ? B agrega los objetos A.? B contiene los objetos A. ? B registra las instancias de los objetos A o ? B utiliza especialmente los objetos A ? B tiene los datos de inicialización que serán transmitidos a A cuando este

objeto sea creado (así que B es un Experto respecto a la creación de A). B es un creador de los objetos A.

? Si existe más de una opción, prefiera la clase B que agregue o contenga la clase A.

4343

Fundamentos de Ingeniería de SW 325UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

? Ejemplo

? En la aplicación del punto de venta, ¿quién debería encargarse de crear una instancia VentasLineadeProducto?

?Desde el punto de vista del patrón Creador, deberíamos buscar una clase que agregue, contenga y realice otras operaciones sobre este tipo de instancias

Fundamentos de Ingeniería de SW 326UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

*

1..*

1

Venta

fechahora

EspecificaciondeProductosVentasLineaDeProducto

cantidad *

Descritas-por

Contenidas-en

Fundamentos de Ingeniería de SW 327UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

? Una Venta contiene (en realidad, agrega) muchos objetos VentasLineadeProducto; ? por ello, el patrón Creador sugiere que Venta es idónea para

asumir la responsabilidad de crear las instancias VentasLineadeProducto.

? Esta asignación de responsabilidades requiere definir en Venta un método de hacer-LineadeProducto.

Fundamentos de Ingeniería de SW 328UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

: Venta : TPDV

: VentasLineaDeProducto

1: [ nueva venta] crear()

2: crear()

introducirProducto(cup, cantidad)

SegúnControlador

SegúnCreador

Según Creador

Fundamentos de Ingeniería de SW 329UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoCreador

? En ocasiones encontramos un patrón creador buscando la clase con los datos de inicialización que serán transferidos durante la creación.

? Éste es en realidad un ejemplo del patrón Experto. ? Los datos de inicialización se transmiten durante la creación a

través de algún método de inicialización, como un constructor enjava que cuenta con parámetros.

Fundamentos de Ingeniería de SW 330UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoBajo Acoplamiento

? Problema? ¿Como dar soporte a una dependencia escasa y a un aumento de

la reutilización?

? El acoplamiento es una medida de la fuerza con que una clase está conectada a otras clases, con que las conoce y con que recurre aellas .? Acoplamiento bajo significa que una clase no depende de muchas

clases.? Acoplamiento altosignifica que una clase recurre a muchas otras

clases. Esto presenta los siguientes problemas:?Los cambios de las clases afines ocasionan cambios locales

?Difíciles de entender cuando están aisladas?Difíciles de reutilizar puesto que dependen de otras clases

4444

Fundamentos de Ingeniería de SW 331UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoBajo acoplamiento

? Solución? Asignar una responsabilidad para mantener bajo acoplamiento.

? Ejemplo: En el caso del punto de ventas se tienen tres clases Pago, TPDV y Venta y se quiere crear una instancia de Pago y asociarla a Venta. ¿Que clase es la responsable de realizarlo?

? Según el patrón experto la Clase TPDV deberá hacerlo

:TPDV P:Pago

:Venta

EfectuarPago( ) 1:Crea()

2:AgregarPago(p)

Fundamentos de Ingeniería de SW 332UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoBajo acoplamiento

? Según el patrón de Bajo Acoplamiento la relación debería ser de la siguiente manera:

? Esta última asociación es mejor dado que Venta realiza la creación del Pago y no TPDV por lo tanto se reduce la dependencia de este último con el resto de las clases.

? El grado de acoplamiento no puede considerarse aisladamente de otros principios como Experto y Alta Cohesión. Sin embargo, es un factor a considerar cuando se intente mejorar el diseño.

:TPDV :Venta

:Pago

EfectuarPago( ) 1:EfectuarPago ()

1.1:Crear()

Fundamentos de Ingeniería de SW 333UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoBajo acoplamiento

? En los lenguajes OO como C++ y JAVA las formas comunes de acoplamiento de TipoX a TipoY son las siguientes:

? TipoX posee un atributo (miembro de datos o variable de instancia) que se refiere a una instancia TipoY o al propio TipoY.

? TipoX tiene un método que a toda costa referencia una instancia de TipoYo incluso el propio TipoY. Suele incluirse un parámetro o una variable local de TipoY o bien el objeto devuelto de un mensaje es una instancia de TipoY.

? TipoX es una subclase directa o indirecta del TipoY.

? TipoY es una interfaz y TipoX la implementa.

Fundamentos de Ingeniería de SW 334UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoBajo acoplamiento

?Beneficios:

? No se afectan por cambios de otros componentes? Fáciles de entender por separado

? Fáciles de reutilizar

Fundamentos de Ingeniería de SW 335UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoAlta Cohesión

? Problema? ¿Cómo mantener la complejidad dentro de límites menejables?

? La cohesión es una medida de cuán relacionadas y enfocadas están las responsabilidades de una clase.

? Una alta cohesión caracteriza a las clases con responsabilidades estrechamente relacionadas que no realicen un trabajo enorme.

? Una baja cohesión hace muchas cosas no afines o realiza trabajo excesivo. Esto presenta los siguientes problemas:? Son difíciles de comprender? Difíciles de reutilizar? Difíciles de conservar? Las afectan constantemente los cambios.

Fundamentos de Ingeniería de SW 336UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoAlta Cohesión

? Solución? Asignar una responsabilidad de modo que la cohesión siga siendo

alta

? Ejemplo: En el caso del punto de ventas se tienen tres clases Pago, TPDV y Venta y se quiere crear una instancia de Pago y asociarla a Venta. Según el principio del patrón Creador la clase TPDV debe ser la encargada de realizar el pago.

:TPDV P:Pago

:Venta

EfectuarPago( ) 1:Crea()

2:AgregarPago(p)

4545

Fundamentos de Ingeniería de SW 337UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoAlta Cohesión

? ¿Qué pasa si el sistema tiene 50 operaciones, todas recibidas por la clase TPDV ?? La clase se iría saturando con tareas y terminaría perdiendo la

cohesión

? Un mejor diseño de lo anterior sería:

:TPDV :Venta

:Pago

EfectuarPago( ) 1:EfectuarPago ()

1.1:Crear()

Fundamentos de Ingeniería de SW 338UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoAlta Cohesión

? Este diseño delega a Venta la responsabilidad de crear el pago.

? Este diseño es conveniente ya que da soporte a una alta cohesión y a un bajo acoplamiento.

? En la práctica, el nivel de cohesión no puede ser considerado independiente de los otros patrones y principios (e.g. Patrones “Experto” y “Bajo Acoplamiento”)

? Beneficios:? Mejoran la claridad y facilidad con que se entiende el diseño? Se simplifica el mantenimiento y las mejoras de funcionalidad? A menudo se genera un bajo acoplamiento? Soporta mayor capacidad de reutilización.

Fundamentos de Ingeniería de SW 339UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoAlta Cohesión

? Algunos escenarios:

? Muy baja cohesión:Una clase es la única responsable de muchas cosas en áreas funcionales heterogéneas.

? Baja cohesión: Una clase tiene la responsabilidad exclusiva de una tarea compleja dentro de un área funcional.

? Alta cohesión: Una clase tiene responsabilidades moderadas en un área funcional y colabora con las otras para llevar a cabo las tareas.

? Cohesión moderada:Una clase tiene peso ligero y responsabilidades exclusivas en unas cuántas áreas que están relacionadas lógicamente con el concepto de clase pero no entre ellas.

Fundamentos de Ingeniería de SW 340UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Problema: ? ¿Quién deber ía encargarse de atender un evento del sistema?

? Un evento del sistema es un evento de alto nivel generado por un actor externo; es un evento de entrada externa. Se asocia a operaciones del sistema: las que emite en respuesta a los eventos del sistema. ? Por ejemplo, cuando un cajero que usa un sistema de terminal en el punto

de venta oprime el botón "Terminar Venta ”, está generando un evento sistémico que indica que “la venta ha terminado”.

? Un Controlador es un objeto de interfaz no destinada al usuario que se encarga de manejar un evento del sistema. Define además el método de su operación.

Fundamentos de Ingeniería de SW 341UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Solución

? Asignar la responsabilidad del manejo de un mensaje de los eventosde un sistema a una claseque represente una de las siguientesopciones:

? el “sistema” global ( controlador de fachada).

? la empresa u organización global ( controlador de fachada). ? algo en el mundo real que es activo (por ejemplo, el papel de una

persona) y que pueda participar en la tarea (controlador de tareas). ? un manejador artificial de todos los eventos del sistema de un caso de

uso, generalmente denominados “Manejador<NombreCasodeUso>” (controlador de casos de uso).

Fundamentos de Ingeniería de SW 342UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Ejemplo:? En la aplicación del punto de ventase dan varias

operaciones del sistema, comose advierte en la figura.

? ¿Quién debería ser el controlador de eventos sistémicos como introducirProducto yterminarVenta?

Sistema

terminarVenta( )introducirProducto( )efectuarPago( )

: ???

introducirProducto(CUP, cantidad)¿Qué clase debe encargarse de manejar este mensaje de eventos de sistema?

Un controlador

4646

Fundamentos de Ingeniería de SW 343UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? De acuerdo con el patrón Controlador, disponemos de las siguientes opciones:

representa el “sistema” global TPDV

representa la empresa u organizaci ón global Tienda

representa algo en el mundo real que est á activo (por ejemplo, el papel de una persona) y que puede intervenir en la tarea

Cajero

representa un manejador artificial de todas las operaciones del sistema de un caso de uso.

ManejadordeComprarProductos

Fundamentos de Ingeniería de SW 344UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? En la decisión de cuál de las cuatro clases es el controlador más apropiado influyen también otros factores como la cohesión y el acoplamiento.

asignación de lasoperaciones del sistemadurante su diseño, medianteel patrón Controlador

operaciones delsistema descubiertasdurante el análisis desu comportamiento

TPDV

terminarVenta( )introducirProducto( )efectuarPago( )

Sistema

terminarVenta( )introducirProducto( )efectuarPago( )

Fundamentos de Ingeniería de SW 345UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Explicación: La mayor parte de los sistemas reciben eventos de entrada externa, los cuales generalmente incluyen una interfaz gráfica para el usuario (IGU) operado por una persona.

? La misma clase controlador debería utilizarse con todos los eventos sistémicos de un caso de uso, de modo que podamos conservar la información referente al estado del caso. ? Esta información será útil - por ejemplo - para identificar los

eventos del sistema fuera de secuencia (entre ellos, una operación efectuarPago antes de terminarVenta). Pueden emplearse varios controladores en los casos de uso.

Fundamentos de Ingeniería de SW 346UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Un defecto frecuente al diseñar controladores consiste en asignarles demasiada responsabilidad. Normalmente un controlador debería delegar a otros objetos el trabajo que ha de realizarse mientras coordina la actividad.

Fundamentos de Ingeniería de SW 347UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? “Manejador artificial de casos de uso” - un controlador para cada caso. ? Adviértase que éste no es un objeto del dominio, es un concepto

artificial, cuyo fin es dar soporte al sistema (una fabricación pura, en términos de los patrones de GRASP).

? Por ejemplo, si la aplicación del punto de venta contiene casos de uso como “Comprar Productos” y “Devolver Productos”, habrá una clase ManejadordeComprarProductos y una clase ManejadordeDevolverProductos .

? Es una alternativa que debe tenerse en cuenta, si el hecho de asignar las responsabilidades en cualquiera de las otras opciones de controlador genera diseños de baja cohesión o alto acoplamiento. Esto ocurre generalmente cuando un controlador empieza a “saturarse” con demasiadas responsabilidades.

Fundamentos de Ingeniería de SW 348UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Beneficios

? Mayor potencial de los componentes reutilizables. Garantiza que la empresa o los procesos de dominio sean manejados por la capa de los objetos del dominio y no por la de la interfaz.

? Reflexionar sobre el estado del caso de uso. A veces es necesario asegurarse de que las operaciones del sistema sigan una secuencia legal o poder razonar sobre el estado actual de la actividad y las operaciones en el caso de uso subyacente. ? Por ejemplo, tal vez deba garantizarse que la operaci ón efectuarPago no

ocurra mientras no se concluya la operaci ón terminarVenta . De ser así, esta informaci ón sobre el estado ha de capturarse en alguna parte; el controlador es una buena opción, sobre todo si se emplea a lo largo de todo el caso.

4747

Fundamentos de Ingeniería de SW 349UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Un corolario importante del patrón Controlador es que los objetos de la interfaz (por ejemplo, objetos de ventanas, applets) y la capa de presentación no deberían encargarse de manejar los eventos del sistema.

Fundamentos de Ingeniería de SW 350UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoControlador

? Nótese que la clase TPDVApplet - parte de la capa de presentaci ón -transmite un mensaje introducirProducto al objeto TPDV.

? No intervino en el proceso de la operación, ni la decisi ón de cómo manejarla, el applet se limitó a delegarla a la capa del dominio.

Tienda de Objetos

CUP

Precio

Total

Ofrecido

Cantidad

Desc.

Saldo

IntroducirProducto

TerminarVenta

EfectuarPago

enIntroducirProducto()

: TPDVApplet

: TPDV : Venta

1: introducirProducto(cup, cantidad)

2: hacerLineadeProducto(cup,cantidad)

Controlador

mensaje de eventosdel sistema

Oprime botón

Cajero

Capa de presentaciónApplet en Java

Capa del Dominio

Fundamentos de Ingeniería de SW 351UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoResumen

? Patrones GRASP? Experto? Creador? Bajo Acoplamiento? Alta Cohesión? Controlador

Fundamentos de Ingeniería de SW 352UTFSM

EX UMBRA SOLEMIN

Patrones de DiseñoResumen

? ¿Qué define un patrón? ? ¿Porqué se le asigna un nombre?

? ¿Qué significa GRASP?? ¿Existen casos cuando dos o más patrones se aplican

juntos?

? Describa brevemente cada uno de estos patrones: ? Experto? Creador? Controlador? Alta Cohesión ? Bajo Acoplamiento

Fundamentos de Ingeniería de SW 353UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Contenido

? Aplicación de los patrones GRASP para asignar responsabilidades a las clases.

? Uso de la notación de UML en los diagramas de colaboración para describir gráficamente el diseño de la interacción de objetos.

Fundamentos de Ingeniería de SW 354UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Introducción

? En la práctica, los diseñadores se percatan de que lapreparación de los diagramas de interacción es uno de los pasos más lentos.

? La asignación de responsabilidades y la elaboración de los diagramas de interacción representan uno de los pasos más importantes en la fase de diseño.

4848

Fundamentos de Ingeniería de SW 355UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Relación entre artefactos

: Cajero

:Sistema

introducir Producto(CUP, cantidad)

terminarVenta ()

efectuarPago(EfectivoOfrecido )

: TPDV

efectuarPago(efectivoOfrecido)

: TPDV

introducirProducto(CUP,cantidad)Contrato IntroducirProducto

Poscondiciones:1. Si se trata de una nueva ventase creo una nueva venta…

Contrato EfectuarPago

Poscondiciones:…

Diagrama de secuencia del sistema Contratos Diagrama de colaboración

Fundamentos de Ingeniería de SW 356UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagramas de interacción y eventos del sistema

? En la iteración actual de la aplicación del punto de venta estamos considerando dos casos de uso y sus eventos sistemáticos asociados: ? Comprar Productos: introducirProducto terminarVenta

efectuarPago? Inicio: inicio

? Por cada evento del sistema se construye un diagrama de colaboración cuyo mensaje inicial sea el de sus eventos. ? Habrá, pues, cuatro diagramas de interacción por lo menos: uno

por cada evento del sistema.

Fundamentos de Ingeniería de SW 357UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagramas de interacción y eventos del sistema

: TPDV

introducirProducto () 1 :???()

: TPDV

terminarVenta () 1 :???()

: TPDV

efectuarPago() 1 :???()

: TPDV

iniciar() 1 :???()

Fundamentos de Ingeniería de SW 358UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagramas de interacción y contratos

? En cada contrato revisamos los cambios de estado de los objetos responsables y las poscondiciones asociadas.? Nótese que, en caso de omitir la preparación del contrato, de todos

modos deberíamos elaborar los diagramas de interacción retornando a los casos de uso y reflexionando sobre lo que debemos lograr.

? No obstante, los contratos organizan y aíslan la información en un formato funcional, al mismo tiempo que estimulan la investigación en la fase de análisis y no en la de diseño.

Fundamentos de Ingeniería de SW 359UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagramas de interacción y contratos

? Por ejemplo, en esta operación parcial del sistema introducirProducto, en la figura incluimos un diagrama parcial de colaboración que satisface el cambio de estado de la creación de Venta.

:TPDV :Venta

1:[ nueva venta] crear() introducirProducto(cup, cantidad)

Fundamentos de Ingeniería de SW 360UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagramas de interacción y contratos

? Los Diagramas deben prepararse con el propósito de cumplir las poscondiciones del contrato. ? Poscondiciones definidas de antemano no son sino una excelente

conjetura o estimación inicial de lo que se pretende alcanzar. ? En los contratos debemos ver un mero punto de partida para

establecer lo que se hará, pero sin sentirnos obligados por ellos.

? Una ventaja del desarrollo iterativo radica en que brinda un soporte espontáneo a la detección de nuevos resultados del análisis y del diseño durante las fases de solución y de construcción

4949

Fundamentos de Ingeniería de SW 361UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagramas de interacción y modelo conceptual

? Algunos de los objetos que interactúan a través de mensajes en los diagramas de colaboración provienen del modelo conceptual.

? En parte, la elección de la asignación acertada de las responsabilidades mediante los patrones GRASP se funda en la información contenida en el modelo conceptual.

Fundamentos de Ingeniería de SW 362UTFSM

EX UMBRA SOLEMIN

1Pago

11

*

1

1..*

1 1Venta

fechahora

Pagado-por

1..*TPDV

1

1

Capturadas-en

1

*

VentasLineaDeProductocantidad

Contenidas-en

1

*Producto

1

*Tienda

direccion

1

Capturas-Terminada

Aloja

1

1..*

EspecificaciondeProducto

*

1

Descrita-por

Describe

1CatalogoDeProductosdescripcionprecioC U P

Usado-por

1..*1

Contiene

Diseño de una Solución Diagramas de interacción y modelo conceptual

Fundamentos de Ingeniería de SW 363UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: introducirProducto

ContratoNombre: IntroducirProducto ( cup:numero, cantidad:entero)Responsabilidades: Capturar (registrar) la venta de un producto y agregarla a la venta. Desplegar

la descripción y el precio del producto.Tipo: SistemaReferencias cruzadas: Funciones del sistema: R1.1, R1.3, R1.6

Casos de uso: Comprar productosNotas: Utilizar el acceso superrápido a la base de datos.Excepciones: Si el CUP no es válido, indicar que se cometió un error.Salida:Precondiciones: El sistema conoce el CUP.Poscondiciones:? Si se trata de una nueva venta, se creó una Venta (creación de instancia).? Si se trata de una nueva venta, la nueva Venta fue asociada a un TPDV ( asociación

formada ).? Se creó una instancia VentasLineadeProducto (creación de instancia).? Se asoció una instancia de VentasLineadeProducto a la Venta (asociación formada ).? Se asignó una cantidad a VentasLineadeProducto.cantidad (modificación de atributo).? Se asoció una instancia VentasLineadeProducto a la instancia

EspecificaciondeProducto, basado en la correspondencia del CUP ( asociaciónformada ).

Fundamentos de Ingeniería de SW 364UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Selección de la clase Controlador

? En la elección del controlador que se encargue del mensaje de las operaciones del sistema introducirProducto, disponemos de las siguientes opciones:

? Representa el "sistema" global? TPDV

? Representa la empresa u organización global? Tienda

? Representa algo en el mundo real que está activo (por ejemplo, e l papel de una persona) y que puede intervenir en la tarea? Cajero

? Representa un manejador artificial de todas las operaciones del sistema de un caso de uso.? ManejadordeComprarProductos

Fundamentos de Ingeniería de SW 365UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Selección de la clase Controlador

? Un controlador de fachada como TPDV es adecuado? si el sistema ofrece pocas operaciones y si ese controlador no

asume demasiadas responsabilidades (en otras palabras, si empieza a perder cohesión).

? Un controlador de papeles o de casos de uso será una decisión acertada? cuando el sistema tiene demasiadas operaciones y queremos

distribuir las responsabilidades para que las clases controlador no se atiborren, ni pierdan su orientación central (o sea, que seancohesivas).

? En este caso, TPDV será suficiente porque el sistema tiene pocas operaciones.

Fundamentos de Ingeniería de SW 366UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Selección de la clase Controlador

? Es importante darse cuenta que “TPDV” es una instancia de un objeto en el “territorio del software”.

? No es un terminal real de punto de venta, sino una abstracción de software que representa el registro

:TPDV

introducirProducto(cup, cantidad)

5050

Fundamentos de Ingeniería de SW 367UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Presentación visual de la descripción y del precio

? En virtud de un principio del diseño denominado separación de modelo - vista (Controlador), no compete a los objetos del dominio (como TPDV o Venta) comunicarse con la capa de interfaz para el usuario (las ventanas gráficas, por ejemplo).

? Lo único que se requiere en lo tocante a las responsabilidades del despliegue de la información es conocer los datos, como se verá en este caso.

Fundamentos de Ingeniería de SW 368UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Realización de una nueva venta

? Poscondiciones contractuales establecen lo siguiente:

? Si se trata de una nueva venta, se creó una Venta (creación de instancia).

? Si se trata de una nueva venta, se asoció la nueva Venta a TPDV (asociación formada).

? Además, cuando se crea la Venta, hay que generar una colección vacía para que registre todas las instancias futuras VentasLineadeProducto.

Fundamentos de Ingeniería de SW 369UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Realización de una nueva venta

: Venta: TPDV

: VentasLineaDeProducto

1: [nueva venta ] crear()

2: crear()

introducirProducto(cup, cantidad)

SegúnControlador

SegúnCreador

Según Creador

Fundamentos de Ingeniería de SW 370UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Creación de una instancia VentasLineadeProducto

? Algunas otras poscondiciones contractuales de introducirProducto establecen lo siguiente:

? Se creó una instancia VentasLineadeProducto (creación de instancia).

? Se asocióVentasLineadeProducto a la Venta (asociación formada). ? Se asignó el valor a VentasLineadeProducto.cantidad de cantidad

(modificación de atributo).? Se asoció la instancia VentasLineadeProducto con una

EspecificaciondeProducto a partir de la correspondencia en el CUP (asociación formada).

Fundamentos de Ingeniería de SW 371UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Obtención de instancia EspecifícaciondeProducto

? Necesitamos asociar la instancia VentasLineadeProducto aEspecificaciondeproducto que concuerde con el CUP que se recibe. Ello significa que se requiere recuperar una EspecificaciondeProducto basada en la correspondencia del CUP.

? Un primer paso de gran utilidad es el siguiente:

Comience asignando las responsabilidades definiéndolas con claridad.

Fundamentos de Ingeniería de SW 372UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Obtención de instancia EspecifícaciondeProducto

? ¿Quién debería asumir la responsabilidad de conocer una instancia EspecificaciondeProducto basado en que coincida el valor del CUP? ? En la generalidad de los casos, el patrón Experto de GRASP es el

principio que ha de aplicarse en primer lugar.

? ¿Quién está enterado de todo lo concerniente a EspecificaciondeProducto? ? El análisis del modelo conceptual revela que CatalogodeProductos

contiene lógicamente todas las especificaciones de productos y así, de acuerdo con el patrón Experto, CatalogodeProductos es idóneo para asumir esta responsabilidad de consulta.

5151

Fundamentos de Ingeniería de SW 373UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Visibilidad ante un CatalogodeProductos

? ¿Quién debería enviar el mensaje especificación al CatalogodeProductos para solicitar una EspecificaciondeProducto? ? Es razonable suponer que una instancia TPDV y una de

CatalogodeProductos fueron creadas durante el caso inicial de uso Inicio y que existe una conexión permanente entre el objeto TPDVy el objeto CatalogodeProductos .

? Esta suposición nos permitirá concluir que TPDV puede enviar el mensaje especificación a Catálogo de productos.

Fundamentos de Ingeniería de SW 374UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Visibilidad ante un CatalogodeProductos

? Ello significa la existencia de otro concepto en el diseño orientado a objetos: el de visibilidad.

? La visibilidad es la capacidad de un objeto para 'ver' o tener una referencia a otro. Para que un objeto envíe a otro un mensaje, debe ser visible al segundo. ? Supondremos que TPDV tiene una conexión o referencia

permanente a CatalogodeProductos; por tanto, es visible para esta instancia y de ahí que pueda enviarle Mensajes como especificación

Fundamentos de Ingeniería de SW 375UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Recuperación de EspecificaciondeProducto

? En la versión final de una aplicación real al punto de venta, difícilmente todas las EspecificaciondeProducto estarán en la memoria. ? Lo más probable es que se encuentren almacenadas en una base

de datos relacional o de objetos y que sean recuperadas previa solicitud.

? No obstante, para no hacer compleja la exposición pospondremos el estudio de los problemas concernientes a la recuperación partiendo de una base de datos.

? Supondremos que todas las EspecificaciondeProducto se hallan en la memoria. Más tarde se tratará el tema del acceso a la base de datos de objetos persistentes.

Fundamentos de Ingeniería de SW 376UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración introducirProducto

? El diagrama de colaboración de la figura refleja las decisiones sobre la asignación de responsabilidades y sobre la manera en que los objetos deberían interactuar.

? Observe que se reflexionó detenidamente para llegar a él, con base en los patrones GRASP.

? El diseño de las interacciones de los objetos y la asignación de responsabilidades requieren una seria deliberación.

Fundamentos de Ingeniería de SW 377UTFSM

EX UMBRA SOLEMIN

: Venta: TPDV

vli : VentasLineaDeProducto

SegúnControlador Según

Creador

: EspecificaciondeProductos

: CatalogoDeProductos

: VentasLineaDeProducto

6: crear(especif,cant)

4: crear()

7: agregar(vli)

1: [nueva venta ] crear()

5: hacerLineadeProducto(especif,cant)

2: especif :=especificacion(cup)

3: especif :=encontrar(cup)

introducirProducto(cup, cant)

Según Experto

Diseño de una Solución Diagrama de colaboración introducirProducto

Fundamentos de Ingeniería de SW 378UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Mensajes a multiobjetos

? La interpretación predeterminada de un mensaje enviado a un multiobjeto es que se envía implícitamente a todos los elementos de la colección/contenedor, pero también puede interpretarse como un mensaje dirigido al propio objeto colección.

5252

Fundamentos de Ingeniería de SW 379UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Mensajes a multiobjetos

? Por ejemplo, en el Diagrama de colaboración introducirProducto:

? El mensaje encontrar (3) enviado al multiobjetoEspecificaciondeProducto se dirige una vez a la estructura de datos colección representada por el multiobjeto.

? El mensaje crear (4) enviado al multiobjetoVentasLineadeProductotiene por objeto generar la estructura de datos colección representada por el multiobjeto; su finalidad no es crear una instancia de la clase VentasLineadeProducto.

? El mensaje agregar (7) enviado al multiobjetoVentasLineadeProducto tiene por objeto incorporar un elemento a la estructura de datos colección representada por el multiobjeto.

Fundamentos de Ingeniería de SW 380UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración terminarVenta

? Ejercicio:

Desarollar el Diagrama de colaboración para el caso de término de una venta.

ContratoNombre: terminarVenta()Responsabilidades: Registrar que se terminó de capturar los artículos de la venta ypresentar

visualmente el total de la venta.Tipo: SistemaReferencias cruzadas: Funciones del sistema: R1.2.

Casos de uso: Comprar Productos.Notas: Utilizar el acceso superrápido a la base de datos.Excepciones: Si está efectuándose una venta, indicar que se cometió un error.Salida:Precondiciones: El sistema conoce el CUP.Poscondiciones:Se asignó a Venta.estaTerminada el valor verdadero (modificación de atributo).

Fundamentos de Ingeniería de SW 381UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Cálculo del total de la venta: Solución

: Venta

: VentasLineaDeProducto

vli : VentasLineaDeProducto

EspecifPro : EspecificaciondeProductos

Venta - total{tot:= 0para cada VentasLineadeProducto , vli

tot:= tot+vli.subtotal()devolver tot}

SegúnExperto

VentasLineadeProducto - subtotal(){devolver cantidad*EspecifPro.precio()}

Según Experto

1: * [para cada]vli: =siguiente ()

2: s t :=sutotal()tot:=total()

3: pre:=prec()

Fundamentos de Ingeniería de SW 382UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: Iniciar

? ¿Cuándo crear el diagrama de colaboración Iniciar? ? La mayoría de los sistemas, si no es que todos, tienen un caso de

uso Iniciar y alguna operación inicial relacionada con el comienzo de la aplicación. Aunque es la primera en ser ejecutada, se ha considerado la conveniencia de posponer la preparación del respectivo diagrama de colaboración hasta después de considerar el resto de las operaciones del sistema.

? Prepare al final el diagrama de colaboración Iniciar.

Fundamentos de Ingeniería de SW 383UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: Iniciar

? El diagrama de colaboración de la operación Iniciardescribe lo que sucede cuando se crea el objeto inicial del dominio del problema y, opcionalmente, lo que sucede si asume el control.

? No incluye ninguna actividad anterior ni subsecuente en la capa de objetos destinada a la interfaz gráfica para el usuario, si es que existe.

Fundamentos de Ingeniería de SW 384UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: Iniciar

? Por tanto la operación Iniciar puede interpretarse así:

? En un diagrama de colaboración, envíe un mensaje crear() para producir el objeto inicial del dominio.

? (opcional) Si el objeto inicial va a asumir el control del proceso, en un segundo diagrama de colaboración envíele un mensaje ejecutar (u otro equivalente).

5353

Fundamentos de Ingeniería de SW 385UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: Iniciar

? ¿Cuál debería ser la clase del objeto inicial del dominio? ? Escoja como objeto inicial del dominio:

? Una clase que represente todo el sistema de información lógico.? Una clase que represente íntegramente el negocio u organización.

? En la selección de estas opciones pueden influir consideracionesreferentes a los patrones Alta Cohesión y Bajo Acoplamiento.

? Todo el Sistema de información lógico: TPDV, SistemaInformacionalmenudeo

? Negocio u organización global: Tienda

? En esta aplicación se escogió la Tienda como objeto inicial.

Fundamentos de Ingeniería de SW 386UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: Iniciar

ContratoNombre: IniciarO.Responsabilidades: Inicializar el sistema.Tipo: SistemaReferencias cruzadas:Notas:Excepciones:Salida:Precondiciones:Poscondiciones:? Se crearon Tienda , TPDV , CatalogodeProductos y EspecificaciondeProducto (creación

de instancia).? Se asoció CatalogodeProductos a EspecificaciondeProducto (asociación formada).? Se asoció Tienda a CatalogodeProductos (asociación formada)? Se asoció Tienda a TPDV (asociación formada).? Se asoció TPDV a CatalogodeProductos (asociación formada).

Fundamentos de Ingeniería de SW 387UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: Iniciar

: Tienda : TPDV

cp : CatalogoDeProductos

: EspecificaciondeProducto

ep : EspecificaciondeProducto

1: crear()2: * crear()

3: cargarEspecifPro()

4: * crear(cup, precio, descripcion)

5: agregar(ep)

6: crear(cp)crear()

Transmite una referencia a Catalogo deProductos de modo que seapermanentemente visible a TPDV

* indica que le mensajeocurre en la sección demanera repetida o iterativa

Fundamentos de Ingeniería de SW 388UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Diagrama de colaboración: Iniciar

? Una discrepancia interesante entre el análisis y el diseño se ejemplifica en el hecho de que la Tienda sólo crea unobjeto TPDV.

? Desde el punto de vista analítico, una tienda real puede albergar muchas terminales en el punto de venta. Pero ahora estamos considerando un diseño de software, no lo que ocurre en el mundo real.

? La Tienda y TPDV representada en un diagrama de colaboración no es una tienda real; es un objeto de software.

? En nuestros requerimientos actuales, el objeto de SW Tienda no necesita crear más que una sola instancia del objeto de SWTPDV.

Fundamentos de Ingeniería de SW 389UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Resumen

? Aplicación de los patrones GRASP para asignar responsabilidades a las clases.

? Uso de la notación de UML en los diagramas de colaboración para describir gráficamente el diseño de la interacción de objetos.

Fundamentos de Ingeniería de SW 390UTFSM

EX UMBRA SOLEMIN

Diseño de una Solución Quiz

? ¿Cuál es la utilidad del contrato para diagramas de interacción?

? ¿Cuál es la utilidad del modelo conceptual para diagramas de interacción?

? ¿Cuando se prepara el contrato para el caso de uso Iniciar?

? ¿En qué ayudan los patrones?? ¿Cual es el orden de aplicación de los patrones vistos?