Rup Uml 4diapositivas

download Rup Uml 4diapositivas

of 130

Transcript of Rup Uml 4diapositivas

  • 11

    Dra. Lioubov Dombrovskaia 1

    Introduccin a la Ingeniera de SoftwareConceptos bsicos de Ingeniera de Software

    ? El trmino Ingeniera de Software surge a final de los a os 60 dentro de una conferencia dedicada a la crisis del software

    ? Ingeniera del Software es un conjunto de m todos, herramientas y procedimientos para producir software de gran calidad [R. Pressman]

    Dra. Lioubov Dombrovskaia 2

    Introduccin a la Ingeniera de SoftwareConceptos bsicos de Ingeniera de Software

    ? El objetivo de la Ingeniera de Software es producir productos software

    ? Productos software: sistemas de software junto a la documentacin que describe como instalar y usar el sistema

    ? Los productos software caen en dos categoras: ? Productos genricos: Desarrollados por una organizacin para un

    mercado abierto (Microsoft Office)? Productos a medida: Encargados por un cliente (Sistema

    Facturacin Energas)

    Dra. Lioubov Dombrovskaia 3

    Introduccin a la Ingeniera de SoftwareConceptos bsicos de Ingeniera de Software

    ? Los mtodos describen cmo construir tcnicamente el software? Comprende las actividades de:

    ? Planificacin y estimacin de proyectos? Anlisis de requisitos? Diseo? Codificacin? Prueba? Mantenimiento

    ? Las herramientas dan soporte automtico o semiautom tico a los mtodos

    ? Los procedimientos relacionan formalmente los mtodos y las herramientas

    Mtodos

    Herramientas Procedimientos

    IngenierIngeniera a de Softwarede Software

    Dra. Lioubov Dombrovskaia 4

    Introduccin a la Ingeniera de SoftwareFactores de calidad de Software

    ? La calidad de software puede ser descrita mediante una serie de factores:? Externos: observables por los usuarios del producto? Internos: observables por profesionales de la computaci n

  • 22

    Dra. Lioubov Dombrovskaia 5

    Introduccin a la Ingeniera de SoftwareFactores de calidad de Software

    ? Factores de calidad externos:? Correcci n: Capacidad de los productos software de ejecutar

    exactamente sus tareas tal cmo estn definidas en su especificaci n de requerimientos

    ? Robustez: Capacidad de un sistema software para funcionar en situaciones anormales

    ? Modificabilidad: Facilidad de un producto para adaptarse al cambio de especificaciones

    ? Reusabilidad: Facilidad para ser reutilizado en todo o en parte para nuevas aplicaciones

    Dra. Lioubov Dombrovskaia 6

    Introduccin a la Ingeniera de SoftwareFactores de calidad de Software

    ? Factores de calidad externos:? Compatibilidad: Facilidad de los productos software para

    combinarse unos con otros? Eficiencia: Buen uso de los recursos Software y Hardware

    disponibles? Portabilidad: Facilidad para adaptarse a otros entornos software o

    hardware? Verificabilidad: Facilidad para preparar procedimientos de

    aceptaci n, en particular datos de prueba, para detectar fallos durante las fases de validacin y operacin

    Dra. Lioubov Dombrovskaia 7

    Introduccin a la Ingeniera de SoftwareFactores de calidad de Software

    ? Factores de calidad externos:? Integridad: Capacidad de un sistema para proteger sus documentos

    (programas, datos) contra accesos y modificaciones no autorizados? Facilidad de uso: Capacidad de aprender a manejar un sistema

    software, operar con el, preparar datos de entrada, interpretar resultados, etc.

    ? Factores de calidad internos:? Modularidad: Independencia funcional de los componentes del

    programa? Legibilidad: Facilidad de lectura e interpretacin del cdigo del

    programa

    Dra. Lioubov Dombrovskaia 8

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Ciclo de vida: Sucesin de etapas por las que atraviesa un producto software a lo largo de su desarrollo y existencia

    ? Existen distintas formas o paradigmas de ciclo de vida:? Clsico? Clsico con prototipado? En espiral? Prototipado puro? Combinacin de estilos, etc.

  • 33

    Dra. Lioubov Dombrovskaia 9

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Ciclo de vida clsico ideal fue propuesto por W. Royce a principios de los aos 70? Aplicacin secuencial de una serie de pasos? Cada paso genera entradas y documentacin para el siguiente

    Anlisis Diseo Codificacin Integracin

    Dra. Lioubov Dombrovskaia 10

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? El ciclo de vida clsico real tiene la siguiente forma:

    Anlisis

    Diseo

    Codificacin

    Mantenimiento

    Pruebas Unitarias

    Pruebas de Integracin

    Pruebas de aceptacin

    A todas las fases

    Dra. Lioubov Dombrovskaia 11

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Crticas al ciclo de vida clsico:? Proyectos raramente siguen el flujo secuencial? Dificultad para establecer los requerimientos al principio del

    proceso? Errores detectados tard amente? Mantenimiento por parcheado

    ? Corregir segn se presenten los problemas

    Dra. Lioubov Dombrovskaia 12

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Prototipear consiste en construir una versin inicial de un producto sin implementar completamente la funcionalidad del sistema

    ? Clases de prototipos:? Vertical: desarrolla completamente algunas de las facetas del

    producto? Horizontal: desarrolla parcialmente todas las facetas del producto? Evolutivo: la versi n final es el producto ya construido? Desechable: se usa slo para la captacin de requerimientos y

    funcionalidad

  • 44

    Dra. Lioubov Dombrovskaia 13

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Utilidad del prototipo desechable:? Ayuda a los analistas a establecer

    las necesidades del cliente? Ayuda a los desarrolladores a

    mejorar los productos

    AnlisisConstruccin del Prototipo

    Diseo

    Validacin

    Especificacin

    Dra. Lioubov Dombrovskaia 14

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Observaciones sobre el prototipeado:? Facilita la captacin de los requerimientos del cliente? Reduce el riesgo de parcheado del producto final? La construcci n del prototipo supone una inversi n adicional? El cliente ve funcionando una versi n de lo que ser su programa

    sin asumir que dicha versi n no es robusta ni completa

    Dra. Lioubov Dombrovskaia 15

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Proceso evolutivo (espiral)Determinar

    objetivos, alternativas y restricciones

    Evaluar alternativas e identificar y resolver

    riesgos

    Planificar la siguiente fase

    Desarrollo, verificar producto del siguiente

    nivel

    Anlisis de riesgos

    Anlisis de riesgos

    Anlisis de riesgos

    Anlisis de

    riesgos

    Prototipo 3Prototipo

    2Proto-tipo 1

    Prototipo operacional

    Simulaciones, modelos, pruebas comparativasConcepto

    de operacin

    Validacin de requerimientos

    Requeri-mientos de software

    Diseo del producto

    Diseo de V&V

    Diseo detallado

    CdigoPrueba de unidades

    Prueba de integracinPrueba de

    aceptacinServicio

    REVISIN

    Plan de requerimientosPlan de ciclo de vida

    Plan de desarrollo

    Integracin y plan de prueba

    Dra. Lioubov Dombrovskaia 16

    Introduccin a la Ingeniera de SoftwareCiclo de vida de Software

    ? Sistemas OO tienden a evolucionar en el tiempo? Modelo evolutivo de proceso acoplado es el mejor

    paradigma para la Ingeniera del SW OO ? fomenta el ensamblaje (reutilizaci n) de componentes

  • 55

    Dra. Lioubov Dombrovskaia 17

    Introduccin a la Ingeniera de Software

    ? La Ingeniera de Software es la disciplina tecnolgica relacionada con la produccin sistem tica y el mantenimiento de productos software que son desarrollados y modificados en el tiempo previsto y dentro de los costos estimados? Por producto software se entiende:

    ? Documentacin de requerimientos? Documentacin de diseo? Cdigo fuente? Planes de pruebas del sistema? Principios de operacin? Instrucciones de instalacin? Procedimientos de mantenimiento? Manuales de usuario

    Dra. Lioubov Dombrovskaia 18

    Introduccin a la Ingeniera de Software

    ? Aunque los computadores han tenido mucho xito, la experiencia diaria de uso de computadores es asociada muchas veces con dificultad, pena y otras barreras para la mayora de la gente... La falta de usabilidad del software y un diseo pobre de los programas son una vergenza secreta de la industria.

    ? Mitchell Kapor, Software Design Manifesto, 1990

    Dra. Lioubov Dombrovskaia 19

    Introduccin a la Ingeniera de SoftwareQuiz

    ? Explique las causas del fenmeno definido en el dibujo

    Lo que el usuario pidi Lo que el analista vio Como el sistema fue diseado

    Como el programador lo escribi Lo que el usuario realmente quera Como realmente funciona

    Dra. Lioubov Dombrovskaia 20

    Introduccin a Orientacin a Objetos Conceptos

    ? Qu es un objeto?? El mundo est lleno de objetos:

    ? en la naturaleza? en entidades hechas por el hombre ? y en los productos que usamos

    ? Pueden ser clasificados, descritos, organizados, combinados, creados y manipulados

    ? Es por ello que se utiliza una visin Orientada a Objeto para la creacin de SW

  • 66

    Dra. Lioubov Dombrovskaia 21

    Introduccin a Orientacin a Objetos Conceptos

    ? Ejemplo del concepto de Orientacin a Objetos? Un objeto del mundo real: una silla ? La silla es un miembro (instancia) de una clase mucho ms grande

    de objetos que llamaremos mueble

    Dra. Lioubov Dombrovskaia 22

    Introduccin a Orientacin a Objetos Conceptos

    ? Un conjunto de atributos genricos pueden asociarse con cada objeto, en la clase mueble ? Por ejemplo, todo mueble tiene un costo,

    dimensiones, peso, localizacin y color, entre otros muchos posibles atributos

    ? Estos atributos tambin son aplicables a una mesa o silla, un sof o un armario

    ? Como silla es miembro de la clase mueble, silla hereda todos los atributos definidos para la clase

    Mueble

    CostoDimensionesPesoLocalizaci nColor

    Comprar VenderPesarMover

    silla:Mueble

    Costo: 30.000Dim: 100x60x40Peso: 5Loc.:A110Color: burdeoComprar VenderPesarMover

    Dra. Lioubov Dombrovskaia 23

    Introduccin a Orientacin a Objetos Conceptos

    ? Todo objeto de la clase mueble puede manipularse de varias maneras, comprarse y venderse, modificarse fsicamente o mover de un lugar a otro

    ? Cada una de estas operaciones (servicios o m todos) modificar uno o m s atributos del objeto. Por ejemplo, si el atributo localizacin es un dato compuesto definido como:

    localizacin = edificio + piso + habitacin? entonces una operacin denominada movermodificara uno o ms

    de los elementos que conforman el atributo

    Dra. Lioubov Dombrovskaia 24

    Introduccin a Orientacin a Objetos Principios

    ? En general, los objetos encapsulan datos, operaciones, otros objetos, constantes y otra informacin relacionada

    ? El encapsulamiento significa que toda la informacin se encuentra empaquetada en una entidad? Los datos pueden ser accesados exclusivamente por las

    operaciones definidas en el objeto quedando ocultos para las operaciones de otros objetos no pertenecientes a la misma clase (caja negra)

    ? Una definicin de Orientacin a Objetos es de la siguiente forma:

    Orientacin a Objetos = objetos + clasificacin + herencia + comunicacin

  • 77

    Dra. Lioubov Dombrovskaia 25

    Introduccin a Orientacin a Objetos Principios

    ? Un modelo OO de SW computacional debe exhibir abstracciones de datos y procedimientos que conducen a una modularidad eficaz

    ? Una clase es un concepto OO que encapsula las abstracciones de datos y procedimientos que se requieren para describir el contenido y comportamiento de alguna entidad del mundo real (y objetos derivados de una clase)

    Dra. Lioubov Dombrovskaia 26

    Introduccin a Orientacin a Objetos Principios

    ? Las abstracciones de datos (atributos) que describen la clase estn encerradas por una muralla de abstracciones procedimentales capaces de manipular los datos de alguna manera (encapsulamiento)

    Clase

    Atributos:

    Operaciones:

    Operaciones

    Atributos

    Dra. Lioubov Dombrovskaia 27

    Introduccin a Orientacin a Objetos Principios

    ? Encapsulamiento posibilita el ocultamiento de informacin y reduce el impacto asociado a cambios

    ? Como los mtodos manipulan un n mero limitado de atributos (alta cohesin) y como la comunicacin slo ocurre a travs de los m todos que encierra la muralla, la clase tiende a un bajo acoplamiento con otros elementos del sistema

    ? Todas estas caractersticas conducen a un SW de alta calidad

    Dra. Lioubov Dombrovskaia 28

    Introduccin a Orientacin a Objetos Jerarqua

    ? Clase: coleccin de objetos similares, los cuales heredan atributos y operaciones disponibles para la manipulacin de stos

    ? Superclase: coleccin de clases? Subclase: instancia de una clase

    ? Estas definiciones implican la existencia de una jerarqua de clases, en la cual los atributos y operaciones de la superclase son heredados por subclases que pueden aadir atributos privados y mtodos

  • 88

    Dra. Lioubov Dombrovskaia 29

    Introduccin a Orientacin a Objetos Jerarqua

    Mueble

    Mesa Silla Escritorio SillesaSubclases de la clase mueble

    Instancias de Silla

    Superclase

    Dra. Lioubov Dombrovskaia 30

    Introduccin a Orientacin a Objetos Atributos

    ? Los atributos estn asociados a clases y objetos, describindolos de alguna manera ? Un atributo puede tomar un valor definido por un dominio

    enumerado ? Una clase auto tiene atributo color. El domino de valores de color es

    {blanco, negro, azul, rojo, amarillo, verde}

    ? En situaciones ms complejas, el dominio puede ser un conjunto de clases ? La clase auto tambin tiene un atributo motor que abarca los siguientes

    valores de dominio: {valor 32 vlvulas opcin de lujo, valor 24 vlvulas opcin deportiva, valor 15 opcin econmica}

    ? Estas caractersticas se representan como asociaciones, no atributos

    Dra. Lioubov Dombrovskaia 31

    Introduccin a Orientacin a Objetos Operaciones, mtodos o servicios

    ? Un objeto encapsula datos y algoritmos que procesan estos datos? Convencionalmente, algoritmos pueden ser vistos como mdulos

    ? Cada operacin proporciona uno de los comportamientos del objeto ? Por ejemplo, la operaci n determinar color para el objeto automvil

    extraer el color almacenado en el atributo color ? La operacin se ejecuta en respuesta a un estmulo -

    mensaje ? Cada vez que un objeto recibe un estmulo se inicia un

    comportamiento, el cual puede ser simple o complejo, como la iniciaci n de una cadena de estmulos que pasan entre una variedad de objetos diferentes

    Dra. Lioubov Dombrovskaia 32

    Introduccin a Orientacin a Objetos Mensajes

    ? Mensaje es el medio a travs del cual los objetos interactan ? Un mensaje estimula la ocurrencia de cierto comportamiento en el

    objeto receptor, el cual comienza con la ejecuci n de una operacin

    ? Una operacin dentro de un objeto emisor genera un mensaje de la forma:

    ? mensaje:[destino, operacin, parmetros]? donde destino define el objeto receptor, operacin se refiere al mtodo

    que recibe el mensaje y parmetros proporciona informacin requerida para el xito de la operacin

  • 99

    Dra. Lioubov Dombrovskaia 33

    Introduccin a Orientacin a Objetos Mensajes

    A

    op1op2

    B

    op3op4op5

    D

    op10op11

    C

    op6op7op8op9 Valor de retorno

    Valor de retorno

    Mensaje

    Dra. Lioubov Dombrovskaia 34

    Introduccin a Orientacin a Objetos Mensajes

    ? Los cuatro objetos A,B,C y D se comunican unos con otros a travs del paso de mensajes ? Por ejemplo, si el objeto B requiere el proceso asociado con la

    operacin op10 del objeto D, el primero enviar a D un mensaje que contendra: mensaje: [D, op10,]

    ? Como parte de la ejecuci n de op10, el objeto D puede enviar un mensaje al objeto C de la forma: mensaje: [C, op08,]

    ? C encuentra op08, la ejecuta, y entonces enva un valor de retorno apropiado a D. La operacin op10 completa su ejecuci n y enva un valor de retorno a D

    Dra. Lioubov Dombrovskaia 35

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? Sistemas OO poseen tres caractersticas que los hacen nicos ? Ocultamiento de la Informacin

    ? Los detalles de implementacin interna de datos y procedimientos estn ocultos al mundo exterior

    ? Encapsulamiento? Las estructuras de datos y las operaciones que las manipulan estn

    mezcladas en una entidad sencilla: la clase, lo que facilita la reutilizacin de componentes

    ? Interfaces simples entre los objetos? Un objeto que env a un mensaje no debe preocuparse de los detalles

    de estructuras de datos internas del objeto receptor, lo que simplifica la interaccin y el acoplamiento del sistema tiende a reducirse

    Dra. Lioubov Dombrovskaia 36

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? Una de las diferencias claves entre sistemas OO y sistemas convencionales es la herencia ? Una subclase Y hereda todos los atributos y operaciones de su

    superclase X? Todas las estructuras de datos y algoritmos originalmente diseados e

    implementados para X estn inmediatamente disponibles para Y, realizndose la reutilizacin en forma directa

    ? Cualquier cambio dentro de una superclase se hereda inmediatamente por todas las subclases que derivan de ella

    ? En cada nivel de la jerarqua de clases pueden aadirse nuevos atributos y operaciones a aquellos que han sido heredados de niveles superiores de la jerarqua

  • 1010

    Dra. Lioubov Dombrovskaia 37

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? Cada vez que se debe crear una nueva clase se tienen varias opciones:? No utilizar la herencia, es decir, disear y construir la clase de la

    nada? Puede rastrear la jerarqua de clase para determinar si una clase

    ascendiente contiene la mayora de los atributos y operaciones requeridas

    ? Puede reestructurar la jerarqua de clases de tal manera que los atributos y operaciones requeridas puedan heredarse de la nueva clase

    ? Puede sobrescribir las caractersticas de una clase existente e implementar versiones privadas de atributos u operaciones para l a nueva clase

    Dra. Lioubov Dombrovskaia 38

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? La jerarqua de clases mostrada permite derivar las clases X3 y X4 con las caractersticas (atributos u operaciones) 1, 2, 3, 4, 5 y 6, y 1, 2, 3, 4, 5 y 7, respectivamente

    ? Ahora, suponga que se desea crear una nueva clase que tenga solamente caractersticas 1, 2, 3, 4 y 8

    +car4+car5

    +car7+car6

    X1

    car1car2car3

    X2

    car1car2car3car4car5

    X3

    car1car2car3car4car5car6

    X4

    car1car2car3car4car5car7

    Dra. Lioubov Dombrovskaia 39

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? Para derivar sta clase llamada X2b en el ejemplo, la jerarqua debe reestructurarse

    +car4

    +car7+car6

    X1

    car1car2car3

    X2

    car1car2car3car4

    X3

    car1car2car3car4car5car6

    X4

    car1car2car3car4car5car7

    X2a

    car1car2car3car4car5

    X2b

    car1car2car3car4car8

    +car5+car8

    Dra. Lioubov Dombrovskaia 40

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? A veces la reestructuracin de la jerarqua puede ser difcil, se usa la anulacin ? La anulaci n ocurre cuando los atributos u operaciones se heredan

    de forma normal, pero despus son modificados segn las necesidades especficas de la nueva clase

    ? A veces, es tentador heredar algunos atributos y operaciones de una clase y otros de otra clase, sta accin es conocida como herencia m ltiple, lo cual complica la jerarqua de clases y puede crear problemas potenciales en el control de la configuracin

  • 1111

    Dra. Lioubov Dombrovskaia 41

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? El polimorfismo es una caracterstica que reduce en gran medida el esfuerzo necesario para extender un sistema

    ? Considere una aplicacin convencional que debe dibujar cuatro tipos diferentes de grficos:

    ? grficos de lneas? grficos de tortas? histogramas? diagramas de Kiviat

    ? Idealmente una vez recogidos los datos para un grfico particular, ste debe dibujarse a s mismo

    Dra. Lioubov Dombrovskaia 42

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo? En una aplicacin convencional ser necesario desarrollar

    mdulos de dibujos para cada tipo de grficos y aadir una lgica de control semejante a la que sigue:

    case of tipo_grafico:If tipo_grafico = grafico_linea then DibujarLinea (datos);If tipo_grafico = grafico_torta then DibujarTortaLinea (datos);If tipo_grafico = grafico_histograma then DibujarHisto (datos);If tipo_grafico = grafico_kiviat then DibujarKiviat (datos);

    end case

    Dra. Lioubov Dombrovskaia 43

    Introduccin a Orientacin a Objetos Encapsulamiento, herencia y polimorfismo

    ? Para resolver este problema en un sistema OO, cada uno de los grficos mencionados se convierte en una subclase de una clase general llamada grfico ? Un objeto puede enviar un mensaje dibujar a cualquier objeto, el

    objeto receptor invocar su propia operaci n dibujar para crear el grfico apropiado:

    ? tipo_grafico.dibujar

    ? Si se debe aadir un nuevo tipo de grfico, slo se debe crear una subclase con su propia operacin dibujar

    ? Polimorfismopermite que un n mero de operaciones diferentes tengan el mismo nombre, haciendo que cada objeto sea ms independiente

    Dra. Lioubov Dombrovskaia 44

    Introduccin a UMLUML = Unified Modeling Language

    ? UML es un lenguaje de propsito general para el modelado orientado a objetos, que combina notaciones provenientes desde:? Modelado Orientado a Objetos ? Modelado de Datos? Modelado de Componentes ? Modelado de Flujos de Trabajo (Workflows)

    ? UML responde a la necesidad de una notacin estndar ? Diversos mtodos y tcnicas OO eran inconvenientes para el

    aprendizaje, aplicaci n, construccin y uso de herramientas, etc.

  • 1212

    Dra. Lioubov Dombrovskaia 45

    Introduccin a UMLHistoria

    ? UML comenz como el Mtodo Unificado, presentado en la OOPSLA95 por Grady Booch y Jim Rumbaugh

    ? El mismo ao se uni Ivar Jacobson, con lo cual los Tres Amigos son socios en la compaa Rational Software, que han desarrollado una herramienta CASE Rational Rose

    ? Noviembre de 1997 UML 1.3 es aprobado por el Object Managment Group (OMG)

    ? Junio de 2003 UML 2.0 es oficialmente adoptado por OMG

    Dra. Lioubov Dombrovskaia 46

    Introduccin a UMLUML incorpora diferentes enfoques

    UML

    RumbaughJacobson

    Meyer

    Harel

    Wirfs-BrockFusion

    Embly

    Gamma et. al.

    Shlaer-Mellor

    Odell

    Booch

    Pre- and Post-conditions

    State Charts

    Responsabilities

    Operation descriptions,message numbering

    Singleton classes

    Frameworks, patterns,notes

    Object life cycles

    Dra. Lioubov Dombrovskaia 47

    Introduccin a UMLPros y contras

    ? Aspectos Novedosos de UML? Definicin semi-formal del Meta-Modelo semntico asociado? Incluye estereotipos como mecanismo de extensibilidad.

    ? Un componente particular se adapta a las necesidades del contexto

    ? Incluye un lenguaje para expresar restricciones mediante frmulas bien formadas? OCL (Object Constraint Language) desarrollado por IBM

    ? Inconvenientes en UML? Definicin del proceso de desarrollo usando UML. UML no es una

    metodologa ? Falta integracin con respecto de otras tcnicas tales como

    patrones de diseo, interfaces de usuario, documentacin, etc.

    Dra. Lioubov Dombrovskaia 48

    Introduccin a UMLModelado Visual con UML y Rational Rose

    ? El objetivo de UML es describir cualquier tipo de sistema en trminos de diagramas orientados a objetos, o sea, es crear un modelo

    ? Un modelo es una descripcin completa de un sistema desde una perspectiva concreta

  • 1313

    Dra. Lioubov Dombrovskaia 49

    Introduccin a UMLModelado Visual con UML y Rational Rose

    Diagramas de Casos de Uso

    Diagramasde Clases

    Diagramasde Objetos

    Diagramas de Colaboracin

    Diagramas de Secuencia

    Diagramas de Estados

    Diagramas de Actividad

    Diagramas de Distribucin

    Diagramas de Componentes

    Modelo delSistema

    Dra. Lioubov Dombrovskaia 50

    Anlisis y diseo orientado a objetosMuestra

    ? El proverbio El hbito no hace el monje se aplica perfectamente a la tecnologa de objetos ? El hecho de conocer un lenguaje orientado a objetos (por ej. Java)

    y adems tener acceso a una rica biblioteca (como la de Java) es un primer paso necesario pero insuficiente para crear sistemas de objetos

    ? Se requiere adems analizar y disear un sistema desde la perspectiva de objetos

    Dra. Lioubov Dombrovskaia 51

    Anlisis y diseo orientado a objetos

    ? En conclusin, se ayudar a los ingenieros:? A aplicar los principios y patrones para aprender a desarrollar

    mejores diseos ? A efectuar varias actividades comunes en el anlisis y en el diseo ? A crear elementos tiles en la notacin de UML

    ? Todo lo anterior ser ejemplificado con un caso

    Dra. Lioubov Dombrovskaia 52

    Anlisis y diseo orientado a objetosQu son anlisis y diseo?

    ? El anlisis se centra en la investigacin del problema, no en la manera de definir la solucin ? Por ejemplo, si se necesita un nuevo sistema de biblioteca,

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

    ? El diseo pone de relieve una solucin lgica: cmo 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 solucin lgica dentro de la perspectiva de los objetos

  • 1414

    Dra. Lioubov Dombrovskaia 53

    Anlisis y diseo orientado a objetosQu son anlisis y diseo?

    ? Durante el anlisis orientado a objetos se procura ante todo identificar y describir los objetos o conceptos dentro del dominio del problema

    ? Durante el diseo orientado a objetos, se procura definir objetos lgicos del software

    ? Finalmente, durante la construccin o programacin orientada a objetos, se implementan los componentes de diseo

    Dra. Lioubov Dombrovskaia 54

    Anlisis y diseo orientado a objetosQu son anlisis y diseo?

    Concepto de Dominio

    Representacin en el diseo

    Representacin en programacin

    Libro

    ttulo

    public class Libro{ public void print();

    Private String titulo;}

    Anlisis Diseo Construccin

    Dra. Lioubov Dombrovskaia 55

    Anlisis y diseo 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

    Caso de uso es una descripcin narrativa del proceso de dominio en un formato estructurado de prosa

    Definici n de los Casos de Uso

    Definici n del Modelo

    del Dominio

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

    Dra. Lioubov Dombrovskaia 56

    Anlisis y diseo orientado a objetosEjemplo

    ? Por ejemplo, en el juego de los dados: Caso de uso: Juega un juegoParticipantes: JugadorDescripcin: 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

    del Dominio

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

  • 1515

    Dra. Lioubov Dombrovskaia 57

    Anlisis y diseo 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 del dominio, el cual muestra grficamente en un grupo de diagramas que describen los conceptos y objetos

    Definici n de los Casos de Uso

    Definici n del Modelo

    del Dominio

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

    Dra. Lioubov Dombrovskaia 58

    Anlisis y diseo orientado a objetosEjemplo

    ? Por ejemplo, una parte del modelo del dominio 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

    del Dominio

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

    Dra. Lioubov Dombrovskaia 59

    Anlisis y diseo orientado a objetosEjemplo

    ? El modelo del dominio no es una descripcin 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

    del Dominio

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

    Dra. Lioubov Dombrovskaia 60

    Anlisis y diseo orientado a objetosEjemplo

    ? El diseo orientado a objetos tiene por objetivo definir las especificaciones lgicas del software que cumplan con los requisitos funcionales

    ? Un paso esencial es asignar las responsabilidades entre los objetos y mostrar como interactan a travs de mensajes

    ? El diagrama de colaboracin presenta el flujo de mensajes entre las instancias y la invocacin de mtodos

    Definici n de los casos de uso

    Definici n del Modelo

    del Dominio

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

  • 1616

    Dra. Lioubov Dombrovskaia 61

    Anlisis y diseo orientado a objetosEjemplo

    ? Por ejemplo, la figura muestra grficamente el paso esencial del juego, enviando mensajes a las instancias de las clases Juego y Dado

    Definici n de los casos de uso

    Definici n del Modelo

    conceptual

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

    : Juego de Dados

    d1 : Dado d2 : Dado

    jugar()lanzar()

    v1:= valor()

    lanzar()

    v2:= valor()

    Dra. Lioubov Dombrovskaia 62

    Anlisis y diseo orientado a objetosEjemplo

    ? Para definir una clase es preciso contestar varias preguntas: ? Cmo se conectan unos objetos a otros? ? Cules son los mtodos de una clase?

    ? Por ejemplo, obtenemos que Jugador requiere de un mtodo 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

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

    Dra. Lioubov Dombrovskaia 63

    Anlisis y diseo orientado a objetosEjemplo

    ? A diferencia del modelo del dominio, el modelo de diseo no muestra grficamente conceptos del mundo real: describe nicamente los componentes del software

    Definici n de los casos de uso

    Definici n del Modelo

    conceptual

    Definici n de los Diagramas de

    Interaccin

    Definici n de los Diagramas de

    diseo de clases

    Dado

    valor_mostrado : Integer

    valor()lanzar()

    Juego de Dados

    d1 : Dadod2 : Dado

    jugar()

    21 21

    Dra. Lioubov Dombrovskaia 64

    Introduccin al proceso de desarrolloDefinicin

    ? Un proceso de desarrollo de software es un mtodo de organizar las actividades relacionadas con la creacin, presentacin y mantenimiento de los sistemas de software

    ? El lenguaje UML estandariza los artefactos y la notacin, pero no define un proceso oficial de desarrollo ? Aumentar las posibilidades de aceptacin generalizada de la

    notacin estndar del modelado, sin la obligaci n de adaptar el proceso oficial

    ? Un proceso apropiado admite mucha variaci n y depende de las habilidades del personal, de la naturaleza del problema, de las herramientas y muchos otros factores

  • 1717

    Dra. Lioubov Dombrovskaia 65

    Introduccin al proceso unificadoPasos de macronivel

    ? En un nivel alto, los pasos principales son los siguientes:? Inicio: visi n aproximada, caso de negocio, contexto, estimacin? Elaboracin: visin refinada, implementaci n iterativa de la

    arquitectura principal, soluci n de mayores riesgos, identificacin de la mayora de requerimientos y contexto, estimaci n realista

    ? Construccin: implementaci n iterativa de riesgos restantes y elementos ms simples, preparaci n para instalaci n

    ? Aplicacin: beta-tests, entrega

    Elaboraci n Construcci n Aplicaci nInicio

    RUP

    Dra. Lioubov Dombrovskaia 66

    Introduccin al proceso unificadoInicio

    ? Inicio es un paso corto que responde las siguientes preguntas: ? Cul es la visin o el negocio de este proyecto? ? Factible? ? Comprar o desarrollar? ? Estimacin de magnitud de costos: 10 millones o 100 millones?? Proceder o abortar?

    Dra. Lioubov Dombrovskaia 67

    Introduccin al proceso unificadoInicio

    ? Entre los artefactos que se preparan en esta fase se cuenta con: ? Visin y negocio: objetivos de alto nivel, restricciones, negocio y

    resumen? Modelo de casos de uso: requerimientos funcionales y no-

    funcionales ? Glosario: Terminologa del dominio ? Planificacin: muy aproximada

    Dra. Lioubov Dombrovskaia 68

    Introduccin al proceso unificadoEntendiendo los requerimientos

    ? Requerimientos son capacidades y condiciones que debe cumplir el sistema y el proyecto

    ? El proceso unificado promueve un enfoque sistemtico de descubrimiento, documentacin, organizacin y rastreo de los cambiantes requerimientos del sistema? Es difcil estabilizar los requerimientos antes de empezar con el

    diseo? Es ms fcil tratarlos como cambiantes en un proceso iterativo

  • 1818

    Dra. Lioubov Dombrovskaia 69

    Introduccin al proceso unificadoEntendiendo los requerimientos

    ? Tipos de requerimientos segn modelo FURPS+: ? Funcionales propiedades, capacidades, seguridad ? Facilidad de uso factores humanos, ayuda, documentacin? Confiabilidad frecuencia de fallas, predictabilidad? Desempeo tiempo de respuesta, precisin, disponibilidad, uso

    de recursos ? Soporte adaptabilidad, mantenci n, configuracin ? Implementacin limitaciones de recursos, lenguajes y

    herramientas, hardware ? Interfaz restricciones impuestas por comunicacin con otros

    sistemas ? Operacin administraci n del sistema funcionando

    Dra. Lioubov Dombrovskaia 70

    Introduccin al proceso unificadoCasos de Uso: requerimientos en el contexto

    ? Los clientes y usuarios finales tienen metas o necesidades que el sistema debe cumplir

    ? Existen muchas formas de capturarlos, las ms simples son las mejores, ya que dan la oportunidad a los usuarios a revisarlos

    ? Un caso de uso es un mecanismo simple y entendible para todos los involucrados? Informalmente, es una historia de uso del sistema para cumplir con

    una meta

    Dra. Lioubov Dombrovskaia 71

    Introduccin al proceso unificadoCasos de Uso: formato breve

    ? Ejemplo de un caso de uso en formato breve: ? Realizar Venta: el cliente llega a la caja con los productos que

    desea comprar. El cajero usa el sistema de caja para grabar cadaproducto comprado. El sistema presenta el total y el detalle delproducto actual. El cajero introduce la informacin de pago, que el sistema valida y graba. El sistema actualiza el inventario. El cliente recibe una boleta del sistema y despus se retira con los productos comprados.

    Dra. Lioubov Dombrovskaia 72

    Introduccin al proceso unificadoCasos de Uso: agregando valor

    ? Actor es algo o alguien con comportamiento: persona con un rol, sistema computacional u organizacin? Por ejemplo, Cajero

    ? Escenario es una secuencia especfica de acciones e interaccin entre actores y sistema en discusin? Tambin, un escenario es una instancia de un caso de uso

    ? Caso de uso es un conjunto de escenarios, en el cual cada escenario es una secuencia de las acciones en el sistema que lleva a un resultado observable de inters para un actor particular

  • 1919

    Dra. Lioubov Dombrovskaia 73

    Introduccin al proceso unificadoCasos de Uso: formato casual

    ? Caso de uso: Devolver productos ? Curso normal de eventos: El cliente se acerca a la caja con

    los artculos que desea devolver. El cajero usa el sistema para almacenar cada uno de los artculos devueltos

    ? ? Escenarios Alternativos:

    ? Si el pago ha sido realizado con la tarjeta de crdito y la transaccin de reembolso fall, informar al cliente y pagarle en efectivo

    ? Si la identificacin del artculo no ha sido encontrada, notificar al cajero y sugerir la entrada manual del cdigo

    ?

    Dra. Lioubov Dombrovskaia 74

    Introduccin al proceso unificadoCasos de Uso: agregando valor

    ? La actitud clave al momento de trabajar en un caso de uso es concentrarse en la pregunta Cmo el uso del sistema provee un valor observable para un usuario, o como satisface sus necesidades?, ms que pensar en una lista de funciones como la especificacin de los requerimientos del sistema

    ? La lista de atributos y funciones del sistema no contribuye a entender el contesto ms grande del uso del sistema para lograr ciertas metas

    ? Casos de uso representan la gran mayora de los requerimientos

    Dra. Lioubov Dombrovskaia 75

    Introduccin al proceso unificadoCasos de Uso: tipos y formatos

    ? Casos de uso de caja negra son los ms comunes y recomendados, los cuales no describen el funcionamiento interno del sistema, sus componentes o diseo

    ? El sistema se describe en trminos de responsabilidades ? O sea, lo que debe hacer el sistema, no como debe hacerlo

    Estilo de Caja Negra No lo es

    El sistema almacena la venta. El sistema escribe la venta en la base de datos.

    El sistema genera la sentencia SQL INSERT para la venta.

    Dra. Lioubov Dombrovskaia 76

    Introduccin al proceso unificadoCasos de Uso: tipos y formatos

    ? Varios grados de formalidad: ? Breve resumen de un parrafo,usualmente del escenario principal

    ? Ejemplo: el caso de uso Realizar Venta

    ? Casual formato informal, varios parrafos que cubren diferentes escenarios ? Ejemplo: el caso de uso Devolver Productos

    ? Completo todos los pasos y variaciones son descritos en detalle con secciones de pre y poscondiciones? Varios formatos estn disponibles, se usar el formato de

    www.usecases.org

  • 2020

    Dra. Lioubov Dombrovskaia 77

    Introduccin al proceso unificadoCasos de Uso: formato completo

    ? Caso de uso: Realizar Venta? Actor Primario: Cajero ? Participantes e intereses:

    ? Cajero: preciso y rpido ingreso, pagos sin errores, ya que estos se deducen de su salario

    ? Cliente: compra rpida con mnimo esfuerzo, boleta para eventuales devoluciones

    ? Compaa: almacenamiento preciso de las transacciones, satisfaccin del cliente

    ? Precondiciones: Cajero ha sido identificado y autentificado? Poscondiciones: Venta es almacenada, impuesto calculado

    correctamente, contabilidad e inventario actualizados

    Dra. Lioubov Dombrovskaia 78

    Introduccin al proceso unificadoCasos de Uso: formato completo

    ? Escenario principal (flujo bsico): 1. Cliente llega a la caja con productos o servicios que desea comprar.2. Cajero empieza una nueva venta.3. Cajero ingresa el identificador del artculo. 4. Sistema almacena la lnea de venta del artculo y presenta la descripcin

    y el precio del artculo, y el total actualizado de la compra. El precio es calculado de acuerdo a un conjunto de reglas de precio.Cajero repite pasos 3,4 hasta indicar el trmino.

    5. Sistema presenta el total.6. Cajero comunica al Cliente el total y solicita su pago. 7. Cliente paga y sistema maneja el pago.8. Sistema almacena la venta terminada y env a la venta y la informacin del

    pago al sistema externo de contabilidad y al sistema de inventario 9. El sistema genera recibo.10. Cliente se va con los productos y el recibo.

    Dra. Lioubov Dombrovskaia 79

    Introduccin al proceso unificadoCasos de Uso: formato completo

    ? Extensiones (o flujos alternativos): 3a: identificador invalido

    1. Sistema indica error y rechaza el ingreso.3b: Hay varios artculos del mismo producto (no existe una identificacin

    individual del artculo) 1. Cajero puede ingresar el identificador y la cantidad.

    3-6a: Cliente solicita al Cajero sacar un artculo de la compra1. Cajero ingresa el identificador del artculo para su eliminacin. 2. Sistema muestra el total actualizado.

    7a: Cliente paga en efectivo.1. Cajero ingresa el monto de efectivo entregado por el cliente.2. Sistema presenta el monto de vuelto y abre la caja de dinero.3. Cajero deposita el efectivo, extrae el vuelto y lo pasa al Cliente. 4. Sistema almacena el pago en efectivo

    7b: Cliente paga con Tarjeta de Crdito

    Dra. Lioubov Dombrovskaia 80

    Introduccin al proceso unificadoCasos de Uso: formato completo

    ? Requerimientos especiales: ? Interfaz usuaria desplegada en un pantalla de tacto grande. Texto

    debe ser visible a 1m de distancia.? Autorizaciones de tarjeta de crdito dentro de 30 seg. 90% de las

    veces.? Reglas de precios pueden ser cambiadas para los pasos 3 y 7. ? En caso de falla, el sistema debe recuperar su estado.

    ? Frecuencia de ocurrencia: Casi continuo ? Aspectos pendientes:

    ? Explorar la recuperacin de las fallas de servicios remotos (contabilidad, inventario, autorizacin de crdito)

    ? Deben los cajeros retirar su bandeja de dinero cuando terminan su turno?

    ?

  • 2121

    Dra. Lioubov Dombrovskaia 81

    Introduccin al proceso unificadoCasos de Uso: explicacin del formato completo

    ? Actor principal: El actor primario que requiere los servicios del sistema para cumplir con sus metas

    ? Participantes e intereses: ? El sistema opera como un contrato entre los participantes, los

    detalles del cual se definen en un caso de uso? El caso de uso captura nicamente los comportamientos

    relacionados con la satisfacci n de los intereses de los participantes

    ? Precondiciones: deben ser siempre ciertas antes de empezar con el escenario ? En general, implica la ejecucin de otro caso de uso

    Dra. Lioubov Dombrovskaia 82

    Introduccin al proceso unificadoCasos de Uso: explicacin del formato completo

    ? Poscondiciones: condiciones que deben ser ciertas despus de completado el caso de uso? Deben satisfacer las necesidades de todos los involucrados

    ? Escenario principal (flujo bsico) describe el tpico camino de sucesos sin incluir desviaciones poco frecuentes? Se incluyen 3 tipos de pasos:

    ? Interaccin entre actores ? Validacin (usualmente por el sistema) ? Estados cambiados por el sistema (almacenar o modificar algo)

    ? Los nombres de los actores empiezan con maysculas por convenci n

    Dra. Lioubov Dombrovskaia 83

    Introduccin al proceso unificadoCasos de Uso: explicacin del formato completo

    ? Extensiones (o flujos alternativos) indican todos los otros escenarios o desvos, tanto exitosos como fallidos? Puede ser ms complejas y largas que el escenario principal? Se relacionan con el escenario principal por el nmero de l nea en

    la cual ocurre una extensin ? 2 partes: condicin y respuesta ? Se recomienda escribir la condicin como algo detectado por el

    sistema o por el actor? La respuesta puede ser en varios pasos, o puede contener pasos

    alternativos, lo cual se denota en al numeracin

    ? Al final de una extensi n, el curso de eventos regresa al escenario principal, a no ser que se indique otra cosa

    Dra. Lioubov Dombrovskaia 84

    Introduccin al proceso unificadoCasos de Uso: explicacin del formato completo

    ? Requerimientos especiales: requerimientos no-funcionales, atributos de calidad o restricciones

    ? Tecnologa y Variaciones en los datos: describe cmo deben ser realizadas algunas cosas? Tpicamente, el uso de ciertos dispositivos de entrada y salida ? Por ejemplo:

    ? 3a: identificador del artculo se ingresa por el lector lser o teclado? 7a: informacin de tarjeta de crdito se ingresa por el lector

    magntico o teclado?

  • 2222

    Dra. Lioubov Dombrovskaia 85

    Introduccin al proceso unificadoIdentificacin de los Casos de Uso

    ? Cul de los siguientes sera un caso de uso vlido? ? Negociar un contrato con proveedores ? Devolver productos ? Ingresar al sistema

    ? Todos podran ser casos de uso en los diferentes niveles dependiendo de los limites del sistema, actores y sus metas

    ? Cul es el nivel til para anlisis de requerimientos? ? Proceso de negocio elemental es una tarea continua realizada por

    una persona en un lugar en respuesta a un evento de negocio, queagrega un valor medible para el negocio y deja los datos en un estado consistente

    ? No tomar esta definicin literalmente

    Dra. Lioubov Dombrovskaia 86

    Introduccin al proceso unificadoIdentificacin de los Casos de Uso

    ? Actores tienen necesidades los cuales deben ser satisfechas por el sistema? Por lo tanto, se deben descubrir las metas en las reuniones con

    los usuarios ? Capturar una venta es una meta ? Ingresar al sistema es un meta de muy bajo nivel, no agrega valor al

    sistema? Sera otro caso de uso, y una precondicin para el caso Realizar Venta

    ? Prevenir perdidas no es una meta del usuario, adem s escapa de los limites del sistema

    Dra. Lioubov Dombrovskaia 87

    Introduccin al proceso unificadoIdentificacin de los Casos de Uso

    1. Escoger limites del sistema: sistema u organizacin completa? Definir que es lo que quedara fuera de los limites del sistema

    2. Identificar actores primarios? Apartes de los actores obvios, pueden ser administradores, tiempo

    (bach), monitores, etc.3. Para cada uno de los actores primarios, identificar sus

    metas. Revisar que satisfagan la definicin del proceso de negocio elemental

    4. Definir casos de uso para satisfacer las metas, nombrarlo de acuerdo a la meta (con un verbo)? Normalmente, es un caso de uso por cada meta. Excepcin: caso

    de uso manejar: crear, eliminar, modificar, buscar

    Dra. Lioubov Dombrovskaia 88

    Introduccin al proceso unificadoCasos de Uso: otras consideraciones

    ? Se recomienda escribir los casos de uso en forma iterativa, refinando y adaptando los casos de uso en la medida que los nuevos requerimientos se descubren

    ? Los usuarios finales deben participar en este proceso, ojal teniendo un usuario en el proyecto a tiempo completo

    ? Se recomienda escribir los casos de uso, enfocndose en las metas del usuario y no en la interfaz

  • 2323

    Dra. Lioubov Dombrovskaia 89

    Introduccin al proceso unificadoDiagrama de Casos de Uso

    ? Diagrama de casos de uso muestra actores, casos de uso y relaciones entre ellos ? Es ms importante

    concentrarse en escribir los casos de uso en vez de dibujarlos en el diagrama

    Cajero

    Servicio Autorizacin

    Devolver Productos

    Sistema Contable

    Realizar Venta

    Manejar Seguridad

    Administrador Manejar Usuarios

    Dra. Lioubov Dombrovskaia 90

    Introduccin al proceso unificadoCasos de Uso y Lista de Funciones

    ? Largas listas de funciones no organizan los requerimientos en un contexto cohesivo, trate de reemplazarlas por casos de uso? Aunque son ms apropiadas para algunos sistemas, por ejemplo,

    servidores de aplicaciones

    ? Una lista de propiedades del sistema de alto nivel puede ser til (no ms de 2 hojas)

    ? Por ejemplo: ? Capturar ventas? Autorizar pagos con tarjetas de crdito y dbito ? Definir y aplicar las reglas de precios ?

    Dra. Lioubov Dombrovskaia 91

    Introduccin al proceso unificadoCasos de Uso y el proceso unificado

    ? Casos de uso son artefactos vitales y centrales en el proceso unificado, el desarrollo es dirigido por casos de uso ? Requerimientos son almacenados en los casos de uso

    primariamente ? Todo el desarrollo es planificado en iteraciones que se encargan de

    implementar uno o ms casos de uso? Casos de uso influyen en la organizaci n de los manuales de

    usuario

    Dra. Lioubov Dombrovskaia 92

    Introduccin al proceso unificadoCasos de Uso en la etapa de inicio

    ? Se recomienda que todo el equipo se rena para definir los actores, participantes y metas ? Se definen los casos de uso de acuerdo a las metas, y los ms

    interesantes se escriben en el formato breve? Los casos de uso que representan los complejos procesos clave se

    escriben en el formato completo ? La idea es entender en detalle de que se trata el proyecto

  • 2424

    Dra. Lioubov Dombrovskaia 93

    Introduccin al proceso unificadoCasos de Uso en la etapa de elaboracin

    ? Se realizan varias iteraciones, en las cuales se implementan los casos de uso m s importantes, ms riesgosos y que tienen un impacto significativo en la arquitectura del sistema

    ? El objetivo es retroalimentar la investigacin con lo descubierto en la programacin para refinar y adaptar los casos de uso

    ? Tambin, se escriben en detalle la gran mayora de los casos de uso priorizando por su complejidad

    Dra. Lioubov Dombrovskaia 94

    Introduccin al proceso unificadoCasos de Uso en la etapa de construccin

    ? Una vez que los requerimientos ya estn estables (resultado de elaboracin), se procede a completar el sistema

    ? Muy pocos casos de uso sern escritos durante la construccin, aunque pueden haber algunos refinamientos

    Dra. Lioubov Dombrovskaia 95

    Introduccin al proceso unificadoCasos de Uso en la etapa de construccin

    ? Una vez que los requerimientos ya estn estables (resultado de elaboracin), se procede a completar el sistema

    ? Muy pocos casos de uso sern escritos durante la construccin, aunque pueden haber algunos refinamientos

    Dra. Lioubov Dombrovskaia 96

    Etapa de ElaboracinActividades

    ? Elaboracin es una serie de iteraciones iniciales en las cuales se investigan los requerimientos, se implementa la arquitectura principal del sistema y se resuelven los aspectos de alto riesgo (se incluye, tambin, valor para el negocio)? Generalmente, no son ms de 2-4 iteraciones de 2-6 semanas

    cada una? No se crean prototipos desechables, se crea una parte del sistema

    final

  • 2525

    Dra. Lioubov Dombrovskaia 97

    Etapa de ElaboracinActividades

    ? Los requerimientos se organizan por riesgo, cobertura o criticalidad? Riesgo incluye tanto la complejidad tcnica, como otros factores,

    como una estimacin poco precisa de esfuerzo o facilidad de uso? Cobertura implica que todas las mayores partes del sistema son al

    menos tocados en las iteraciones tempranas ? Criticalidad se refiere al valor para el negocio del cliente

    ? Se planifica una iteracin a la vez

    Dra. Lioubov Dombrovskaia 98

    Etapa de ElaboracinArtefactos

    ? Durante esta fase se preparan los siguientes artefactos: ? Modelo del Dominio: visualiza los conceptos del dominio ? Modelo de diseo: es un conjunto de diagramas que muestran el

    diseo lgico de software? Diagramas de clases, de interaccin, de paquetes, etc.

    ? Modelo de Datos: describe el esquema de base de datos y el mapeo entre el diagrama de clases y base de datos

    ? Modelo de Testing? Modelo de Implementacin ? Prototipos de la Interfaz Usuaria

    Dra. Lioubov Dombrovskaia 99

    Etapa de ElaboracinIteracin 1

    ? Requerimientos para la primera iteracin ? Implementar slo el escenario principal del caso de uso Realizar

    Venta, ingreso de artculos y pago en efectivo ? Implementar el caos de uso Inicio como el soporte necesario para

    la inicializaci n? No hay colaboracin con contabilidad, ni con la base de datos de

    productos ? No se aplican las reglas de precios

    Dra. Lioubov Dombrovskaia 100

    Etapa de Elaboracin Caso de Uso: Realizar Venta ? Actor Primario: Cajero ? Escenario principal (flujo bsico):

    1. Cliente llega a la caja con productos que desea comprar.2. Cajero empieza una nueva venta.3. Cajero ingresa el identificador del artculo. 4. Sistema almacena la lnea de venta del artculo y presenta la descripcin y

    el precio del artculo, y el total actualizado de la compra. El precio es calculado de acuerdo a un conjunto de reglas de precio.Cajero repite pasos 3,4 hasta indicar el trmino.

    5. Sistema presenta el total.6. Cajero comunica al Cliente el total y solicita su pago. 7. Cliente paga y el sistema maneja el pago. 8. Sistema almacena la venta terminada y env a la venta y la informacin del

    pago al sistema externo de contabilidad y al sistema de inventario.9. El sistema genera recibo.10. Cliente se va con los productos y el recibo.

  • 2626

    Dra. Lioubov Dombrovskaia 101

    Etapa de Elaboracin Caso de Uso: Realizar Venta

    ? Extensiones (o flujos alternativos): 3a: identificador invalido

    1. Sistema indica error y rechaza el ingreso.

    3b: Hay varios artculos del mismo producto (no existe una identificaci n individual del art culo) 1. Cajero puede ingresar el identificador y la cantidad.

    7a: Cliente paga en efectivo.1. Cajero ingresa el monto de efectivo entregado por el cliente.2. Sistema presenta el monto de vuelto y abre la caja de dinero.3. Cajero deposita el efectivo, extrae el vuelto y lo pasa al Cliente. 4. Sistema almacena el pago en efectivo

    Dra. Lioubov Dombrovskaia 102

    Diagrama de Secuencia del Sistema

    ? Antes de iniciar el diseo lgico de cmo funcionar una aplicacin de software es necesario investigar y definir su comportamiento como una caja negra

    ? El comportamiento del sistema es una descripcin de lo que hace, sin explicar la manera en que lo hace

    ? Diagrama de secuencia del sistema se hace para el escenario principal y algunas veces para las extensiones ms frecuentes o complejas

    Dra. Lioubov Dombrovskaia 103

    Diagrama de Secuencia del Sistema

    ? Durante la interaccin un actor genera eventos dirigidos a un sistema, solicitando alguna operacin a cambio ? Por ejemplo, cuando un cajero introduce un cdigo universal de

    producto de un artculo, est pidiendo al sistema registrar el cdigo

    ? El diagrama de secuencia de un sistema es una representacin 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 debe seguir el orden indicado en el caso de uso

    Dra. Lioubov Dombrovskaia 104

    Diagrama de Secuencia del Sistema

    ? Para elaborar un diagrama de secuencia del sistema que describa el escenario principal en un caso de uso: ? Trace una lnea que represente el sistema como una caja negra ? Identifique los actores que operan directamente sobre el sistema.

    Trace una lnea 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. Mustrelos grficamente en el diagrama

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

  • 2727

    Dra. Lioubov Dombrovskaia 105

    Diagrama de Secuencia del Sistema

    ? Consideramos ahora el caso de uso Realizar Venta a fin de identificar los eventos del sistema ? Primero debemos determinar los actores que interactan

    directamente con el sistema de software ? El cliente interacta con el cajero, pero no directamente con el

    sistema; esto slo lo hace el cajero ? Por tanto, el cliente no es un generador de eventos del sistema,

    slo el cajero lo es

    Dra. Lioubov Dombrovskaia 106

    Diagrama de Secuencia del Sistema

    ? Los eventos de un sistema (y sus operaciones asociadas) deben expresarse en el nivel de propsito y no en el nivel el medio fsico de entrada o de elementos de la interfaz

    ? Tambin 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 estn orientados a comandos ? As, terminarVenta es preferible a IntroducirTeclaOprimida

    porque capta mejor el propsito de la operacin? mantiene un carcter abstracto y no se pronuncia respecto a las

    decisiones de diseo sobre cul interfaz sirve para capturar el evento del sistema

    Dra. Lioubov Dombrovskaia 107

    Diagrama de Secuencia del Sistema

    ? En cuanto a expresar las operaciones en el nivel de propsito, procure alcanzar el nivel m s alto o la meta final de asignar nombre a la operacin.

    ? Por ejemplo, respecto a la operacin que captura el pago: ? IntroducirImporteOfrecido(monto) deficiente? IntroducirPago(monto) mejor? Pagar(monto) quiz mejor an

    Dra. Lioubov Dombrovskaia 108

    Diagrama de Secuencia del Sistema

    : Cajero : Sistema

    Escenario principal (flujo bsico): 1. Cliente llega a la caja con productos o servicios que desea comprar.2. Cajero empieza una nueva venta.3. Cajero ingresa el identificador del artculo. 4. Sistema almacena la lnea de venta del artculo y presenta la descripcin y el precio del artculo, y el total actualizado de la compra. Cajero repite pasos 3,4 hasta indicar el trmino. 5. Sistema presenta el total.6. Cajero comunica al Cliente el total y solicita su pago. 7. Cliente paga y el sistema maneja el pago. ...

    crearNuevaVenta()

    IntroducirArticulo((ID_articulo, cantidad))

    TerminarVenta()

    Pagar()

    descripcin, precio

    total

    vuelto, recibo

    X

    X

    X

  • 2828

    Dra. Lioubov Dombrovskaia 109

    Diagrama de Secuencia del Sistema

    : Cajero : Sistema Escenario principal (flujo bsico): 1. Cliente llega a la caja con productos o servicios que desea comprar.2. Cajero empieza una nueva venta.3. Cajero ingresa el identificador del artculo. 4. Sistema almacena la lnea de venta del artculo y presenta la descripcin y el precio del artculo, y el total actualizado de la compra. Cajero repite pasos 3,4 hasta indicar el trmino. 5. Sistema presenta el total.6. Cajero comunica al Cliente el total y solicita su pago. 7. Cliente paga y el sistema maneja el pago. ...

    crearNuevaVenta()

    IntroducirArticulo((ID_articulo, cantidad))

    TerminarVenta()

    Pagar()

    Dra. Lioubov Dombrovskaia 110

    Diagrama de Secuencia del Sistema Eventos y operaciones del sistema

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

    ? La operacin de un sistema es una accin que ste ejecuta en respuesta a un evento del sistema ? Por ejemplo, cuando un cajero genera un evento introducirArticulo,

    causa la ejecuci n de la operaci n introducirArticulo? El nombre del evento y de la operacin son idnticos; la

    distincin reside en que el evento es el estmulo nombrado y la operacin es la respuesta (lo mismo sucede con los mensajes y los m todos)

    Dra. Lioubov Dombrovskaia 111

    Modelo del dominioVisualizando conceptos

    ? El modelo del dominio muestra las clases conceptuales significativas en el dominio del problema, no componentes del software? Tambin, se llama modelo del dominio y modelo de objetos del

    dominio

    ? Modelo del dominio utiliza la notacin de diagrama de clases en UML y representa ? Objetos del dominio o clases conceptuales ? Asociaciones entre clases conceptuales ? Atributos de las clases conceptuales

    Dra. Lioubov Dombrovskaia 112

    Modelo del Dominio

    ? Directriz bsica: Es mejor exagerar y especificar un modelo del dominio con muchos conceptos refinados que no especificarlo cabalmente ? Es frecuente omitir conceptos durante la fase inicial de

    identificaci n y descubrirlos ms tarde cuando se examinen los atributos o asociaciones o durante la fase de diseo. Cuando se detecten, habr que incorporarlos al modelo del dominio

    ? Un concepto no debe ser excluido simplemente porque los requerimientos no indican una necesidad evidente que permita recordar la informacin acerca de ella (criterio comn para disear los bases de datos), o porque el concepto carezca de atributos

  • 2929

    Dra. Lioubov Dombrovskaia 113

    Modelo del DominioLista de categoras comunes

    ? La creacin del modelo del dominio a partir de una lista de categoras se hace preparando una lista de conceptos idneos a partir de la lista de categoras comunes

    ? Categoras:? objetos fsicos o tangibles

    ? Caja? Avin

    ? especificaciones, diseo o descripciones de cosas? Especificacin de Producto? Descripcin de Vuelo

    Dra. Lioubov Dombrovskaia 114

    Modelo del DominioLista de categoras comunes? lugares

    ? Tienda ? Aeropuerto

    ? transacciones? Venta, Pago ? Reservacin

    ? lnea o rengln de elemento de transacciones ? Ventas Lnea de Producto

    ? papel de personas ? Cajero ? Piloto

    ? contenedores de otras cosas? Tienda, Cesto ? Avin

    ? conceptos de nombres abstractos? Hambre ? Acrofobia

    ? otros sistemas de computo o electromecnicas externos al sistema? Sistema de Autorizacin de Tarjeta

    de Crdito? Control de Trafico Areo

    ? organizaciones? Departamento de Ventas? Objeto Lnea Area

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

    ? procesos (a menudo no estn representados como conceptos, pero pueden estarlo)? Venta de Producto? Reservacin Asiento

    Dra. Lioubov Dombrovskaia 115

    Modelo del DominioLista de categoras comunes? reglas y polticas

    ? Poltica de Reembolso? Poltica de Cancelaciones

    ? catlogos? Catalogo de Producto? Catalogo de Partes

    ? Registro de finanzas, de trabajo, de contratos, de asuntos legales? Recibo, Contrato de Empleo? Bitcora de Mantenimiento

    ? instrumentos y servicios financieros? Lnea de Crdito? Existencia

    ? manuales, libros? Manual de Personal? Manual de Reparaciones

    Dra. Lioubov Dombrovskaia 116

    Modelo del DominioFrases nominales

    ? Otra tcnica muy til (por su simplicidad) consiste en identificar las frases nominales (sustantivos) en los descripciones textuales del dominio de un problema y considerarlas conceptos o atributos idneos

    ? Este m todo hay que usarlo con prudencia, ya que no es posible encontrar mecnicamente correspondencias entre sustantivo y concepto, y adems las palabras del lenguaje natural son ambiguas

    ? Pese a ello esta tcnica es muy til cuando se empieza a entender el enfoque de orientacin a objetos

  • 3030

    Dra. Lioubov Dombrovskaia 117

    Modelo del DominioObtencin de conceptos con Frases nominales? Caso de Uso: Realizar Venta ? Escenario principal (flujo bsico):

    1. Cliente llega a la cajacon productoso servicios que desea comprar.2. Cajero empieza una nueva venta.3. Cajero ingresa el identificador del artculo. 4. Sistema almacena la lnea de venta del artculo y presenta la descripci n

    y el precio del artculo, y el total actualizado de la venta. El precio es calculado de acuerdo a un conjunto de reglas de precio.

    Cajero repite pasos 3,4 hasta indicar el trmino. 5. Sistema presenta el total.6. Cajero comunica al Cliente el total y solicita su pago. 7. Cliente paga y el sistema maneja el pago. 8. Sistema almacena la venta terminada y env a la venta y la informacin del

    pago al sistema externo de contabilidad y al sistema de inventario9. El sistema genera recibo.10.Cliente se va con los productos y el recibo.

    Dra. Lioubov Dombrovskaia 118

    Modelo del DominioObtencin de conceptos con Frases nominales

    ? Extensiones (o flujos alternativos): 3a: identificador invalido

    1. Sistema indica error y rechaza el ingreso.

    3b: Hay varios artculos del mismo producto (no existe una identificaci n individual del art culo)

    1. Cajero puede ingresar el identificador y la cantidad.

    7a: Cliente paga en efectivo.1. Cajero ingresa el monto de efectivo entregado por el cliente. 2. Sistema presenta el monto de vuelto y abre la caja de dinero . 3. Cajero deposita el efectivo, extrae el vuelto y lo pasa al Cliente. 4. Sistema almacena el pago en efectivo

    Dra. Lioubov Dombrovskaia 119

    Modelo del DominioObtencin de conceptos

    ? Algunas de las frases marcadas son conceptos idneos, algunas pueden ser atributos de conceptos. El consejo es combinar este m todo con la lista de categoras

    ? Las lista se restringe tambin por los requerimientos investigados en el momento

    ? Conceptos Identificados: Caja Especificaci n de productoArtculo Lnea de Venta Tienda CajeroVenta ClientePago Gerente

    Catlogo de Productos

    Dra. Lioubov Dombrovskaia 120

    Modelo del DominioObtencin 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 informacin 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 razn para incluirlo en el modelo

    ? El recibo se excluir, porque las devoluciones de productos no estn incorporados en este momento

  • 3131

    Dra. Lioubov Dombrovskaia 121

    Modelo del DominioDirectrices para construir modelos del dominio

    ? Aplique los siguientes pasos para construir un modelo del dominio: 1. Liste los conceptos idneos usando la lista de categora de

    conceptos y la identificaci n de frases nominales relacionadas con los requerimientos en cuestin

    2. Dibjelos en el modelo del dominio3. Incorpore las asociaciones necesarias para registrar las relaciones

    entre los conceptos4. Agregue los atributos necesarios para cumplir con las necesidades

    de la informaci n

    Dra. Lioubov Dombrovskaia 122

    Modelo del DominioPrincipio del cartgrafo

    ? La estrategia del cartgrafo se aplica a los mapas y a los modelos conceptuales:? Utilice los nombres existentes en el dominio? Excluya las caractersticas irrelevantes? No agregue cosas que no existan

    Dra. Lioubov Dombrovskaia 123

    Modelo del DominioPrincipio del cartgrafo

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

    ? Un cartgrafo elimina cosas en el mapa en caso de que no las juzgue pertinentes para el propsito: por ejemplo, excluir la informaci n sobre la poblaci n. De modo similar, un modelo del dominio puede excluir los conceptos que no estn relacionados directamente con los requerimientos

    ? Un cartgrafo no muestra cosas en el mapa que no existan. En forma parecida, el modelo del dominio no debe mostrar las cosas que no se encuentren en el dominio del problema en cuestin

    Dra. Lioubov Dombrovskaia 124

    Modelo del DominioUn error frecuente al identificar conceptos

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

    ? Una regla prctica de no caer en l: ? Si en el mundo real no consideramos algn concepto X como

    nmero o texto, probablemente X sea un concepto y no un atributo ? Por ejemplo, en el dominio de reservaciones en lneas areas:

    debera el aeropuerto de destino ser atributo de vuelo o un concepto aparte? En el mundo real, un aeropuerto de destino no se considera ni nmero, ni texto, es una cosa que ocupa espacio. Por tanto, Aeropuerto debera ser un concepto

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

  • 3232

    Dra. Lioubov Dombrovskaia 125

    Modelo del DominioClases conceptuales de especificacin o descripcin? Considere lo siguiente:

    ? Una instancia del Articulo representa un artculo fsico en la tienda; incluso podra tener un nmero de serie. Un Artculo tiene precio, descripci n e identificador, que no se guardan en ningn otro lado

    ? Cuando todos los artculos fsicos han sido vendidos, todas las instancias lgicas del Artculo son borradas

    ? Alguien podra responder a la pregunta sobre el precio de este artculo?

    ? Para resolver el problema, se crea una clase conceptual de Especificacin de Producto ? No se borra, si el Producto se vende completamente ? Evita guardar la informaci n duplicada

    Dra. Lioubov Dombrovskaia 126

    Modelo del DominioModelo del Dominio del ejemplo? Las clases conceptuales identificadas se dibujan en el

    diagrama

    Cajero

    Caja

    LineaDeVenta

    Pago

    Articulo

    CatalogoProductos

    Tienda

    Cliente

    EspecificacinProducto

    Venta

    Gerente

    Dra. Lioubov Dombrovskaia 127

    Modelo del DominioAgregacin de las Asociaciones

    ? Es necesario identificar las asociaciones de los conceptos que se requieren para satisfacer los requerimientos de informacin de los casos de uso en cuestin y los que contribuyen a entender el modelo del dominio

    ? La asociacin es una relacin entre dos conceptos que indica alguna conexin significativa entre ellos

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

    Dra. Lioubov Dombrovskaia 128

    Modelo del DominioAgregacin de las Asociaciones: Criterios

    ? Examine la conveniencia de incluir las siguientes asociaciones en un modelo del dominio: ? Las asociaciones en que el conocimiento de la relacin ha de ser

    preservado durante algn tiempo (asociaciones que deben conocerse)

    ? Las asociaciones provenientes de la lista de asociaciones comunes

    Caja Venta

    11

    Registra_actual

    1 1

    Asociacin

  • 3333

    Dra. Lioubov Dombrovskaia 129

    Modelo del DominioAgregacin de las Asociaciones: Notacin

    ? Una asociacin se representa con una lnea entre los conceptos con el nombre de la asociacin ? Esta es intrnsecamente bidireccional: es un nexo entre objetos ? Los extremos de una asociacin pueden contener una expresin de

    multiplicidad que indique la relacin numrica entre las instancias o conceptos, que se llaman papeles

    Caja Venta

    11

    Registra_actual

    1 1

    Asociacin

    Dra. Lioubov Dombrovskaia 130

    Modelo del DominioLista de Asociaciones Comunes

    ? Comience agregar las asociaciones utilizando la lista de categoras comunes

    Venta CajaReservacion - ListaDePasajeros

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

    LineaDeVenta -VentaTrabajoDeManteniemiento-Mantenimiento

    A es un elemento de lnea en una transaccin o reporte B

    EspecificacinProducto ArticuloDescripcionDeVuelo - VueloA es una descripcin de B

    EspecificacinProducto CatlogoProductosVuelo - ProgramaDeVueloA est lgicamente contenido en B

    Caja-Tienda Producto-EstantePasajero -AvionA est fsicamente contenido en B

    LineaDeVenta-VentaTramoDeVuelo-RutaDeVueloA es una parte lgica de B

    Caja-TiendaAla-AvionA es una parte fsica de B

    EjemplosCategora

    Dra. Lioubov Dombrovskaia 131

    Modelo del DominioLista de Asociaciones Comunes

    Caja TiendaAvion LineaAereaA es propiedad de B

    Caja CajaCuidad CuidadA est contiguo a B

    Pago VentaReservacion Cancelacion

    A es una transaccin relacionada con otratransaccin B

    Pago ReciboPasajero BoletoA se relaciona con una transaccin B

    Cliente CajeroAgenteDeReservaciones - PasajeroA se comunica con B

    Cajero CajaPiloto AvionA usa o dirige a B

    Departamento TiendaMantenimiento - LineaAereaA es una subunidadorganizacional de B

    Cajero TiendaPiloto AvionA es miembro de B

    Dra. Lioubov Dombrovskaia 132

    Modelo del DominioLista de Asociaciones Comunes

    ? Las categoras de alta prioridad que siempre vale la pena incluir son las siguientes: ? A es una parte fsica o l gica de B? A est fsicamente o lgicamente contenido en B? A est registrado en B

    ? Es mucho ms importante identificar conceptos que asociaciones. El tiempo dedicado a la creacin del modelo del dominio debera destinarse a identificar los conceptos, no las asociaciones

  • 3434

    Dra. Lioubov Dombrovskaia 133

    Modelo del DominioDirectrices de las asociaciones

    ? Concentrarse en las asociaciones en que el conocimiento de la relacin ha de preservarse durante algn tiempo (asociaciones que es necesario conocer)

    ? Muchas asociaciones tienden a confundir el modelo del dominio 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

    Dra. Lioubov Dombrovskaia 134

    Modelo del DominioMultiplicidad de las asociaciones

    ? La multiplicidad define cuntas instancias de tipo A pueden asociarse a una instancia del tipo B en determinado momento

    ? Algunos ejemplos de multiplicidad:

    * cero o ms, muchos 1..40 de uno a 401..* uno o ms 5 exactamente 53,5,8 exactamente 3, 5 u 8

    Tienda Articulo

    n1

    Almacena

    1 n

    Multiplicidad del rol

    Dra. Lioubov Dombrovskaia 135

    Modelo del DominioMultiplicidad de las asociaciones

    ? El valor de multiplicidad depende del contexto, no hay soluciones prefabricadas ? Por ejemplo, asociaci n Trabaja-Para entre Persona y Compaa

    tendr diferencias en la multiplicidad dependiendo para quien se esta haciendo el sistema: servicio de impuestos internos (1 *) osindicato de trabajadores (1 1)

    Persona Compaa

    n1 n1

    Trabaja-Para

    Persona Compaa

    11 11

    Trabaja-Para

    Dra. Lioubov Dombrovskaia 136

    Modelo del DominioAsociaciones: Notacin

    ? Se asigna un nombre a una asociacin basndose 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 mayscula ? Una frase nominal (verbo) debe construirse con guiones ? La direccin de lectura es de izquierda a derecha y de arriba hacia

    abajo

  • 3535

    Dra. Lioubov Dombrovskaia 137

    Modelo del DominioEjemplos

    Aerolinea

    Persona

    1

    1..n

    1

    1..n

    Emplea

    1 n1 n

    Supervisa

    Vuelo

    n1 n1

    Asignado-aAvion

    1n

    Tiene-asignado

    n 1

    Caja

    Tienda

    11

    1

    1..nVenta

    11 11

    Registra_actualPago

    11

    1

    1..n

    Contiene

    Pagada-por

    1 1

    Dra. Lioubov Dombrovskaia 138

    Anlisis Orientado a Objetos Asociaciones mltiples entre dos conceptos

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

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

    que deben mostrarse por separado

    AeropuertoVuelo

    1n

    n 1Vuela-desde

    Vuela-hacia

    n 1

    n 1

    Dra. Lioubov Dombrovskaia 139

    Modelo del DominioAsociaciones y su implementacin

    ? Durante la fase de anlisis, una asociacin no es una proposicin sobre flujos de datos, variables de instancia, ni conexiones de objetos en una solucin de software; es una proposicin de que una relacin es significativa en un sentido puramente analtico: en el mundo real

    Una asociacin no necesariamente debe ser implementada durante la construccin

    Dra. Lioubov Dombrovskaia 140

    Modelo del DominioAsociaciones del dominio del punto de venta

    ? Deberamos 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 percepcin del dominio del problema

    ? Conceptos:? Caja, Artculo, Tienda, Venta, Pago ? Catalogo de Producto, Especificacin de Producto? Lnea de Venta? Cajero, Cliente, Gerente

  • 3636

    Dra. Lioubov Dombrovskaia 141

    Modelo del DominioAsociaciones del dominio del punto de venta

    ? Relaciones inolvidables en la Tienda

    Para recuperar la especificacin de producto con un cdigo universal de producto

    CatalogoProductos registra EspecificacionProducto

    Para saber si se pag la venta, relaciona la cantidad ofrecida con el total de la venta e imprime un recibo.

    Venta pagada por Pago

    Para conocer la venta actual generar un total e imprimir un recibo.

    Caja captura Venta

    Dra. Lioubov Dombrovskaia 142

    Modelo del DominioAsociaciones del dominio del punto de venta

    ? Recorreremos la lista de comprobaci n, basndonos en tipos anteriormente identificados y teniendo presentes los requerimientos actuales del caso de uso

    EspecificacionProducto ArticuloA es una descripcin de B

    EspecificacionProducto CatalogoProductosCatalogoProductos - TiendaA est contenido lgicamente en B

    Caja-Tienda Producto-Tienda

    A est contenido fsicamente en B

    LineaDeVenta-VentaA es una parte lgica de B

    no se aplicaA es una parte fsica de B

    Sistema Punto de VentaCategora

    Dra. Lioubov Dombrovskaia 143

    Modelo del DominioAsociaciones del dominio del punto de venta

    Caja TiendaA es propiedad de B

    Caja Caja, probablemente no aplicableA est contiguo a B

    Pago VentaA es una transaccin relacionada con otra transaccin B

    Cliente PagoCajero Pago

    A se relaciona con una transaccin B

    Cliente Cajero A se comunica con B

    Cajero Caja, Gerente CajaGerente Cajero, probablemente no aplicable

    A usa o dirige a B

    no aplicableA es una subunidadorganizacional de B

    Cajero TiendaA es miembro de B

    Venta (terminada) TiendaVenta (actual) Caja

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

    LineaDeVenta-VentaA es un elemento de lnea en una

    transaccin o reporte B

    Sistema Punto de VentaCategora

    Dra. Lioubov Dombrovskaia 144

    Pago Cliente Cajero

    Caja

    1

    1

    1

    1Registra-ventas-de

    Gerente

    11

    Iniciada-por

    11

    Venta1 11 1Capturada-en

    1

    1

    1

    1Pagada-por

    1

    1

    1

    1

    Iniciada-por

    1

    1

    1

    1

    Iniciada-por

    Tienda

    1

    1..n

    1

    1..n

    Contiene1

    n

    1

    n

    Terminadas

    CatalogoProductos

    1

    n

    1

    n

    Se-usa-por

    EspecificacinProducto

    n1 n1

    Contiene

    LineaDeVenta

    n

    1

    n

    1

    Contenidas-en

    1

    n

    1

    n

    Descrita-por

    Articulo

    n1 n1

    Almacena 1

    n

    1

    nDescribe

    1..n

    0..10..1

    1..n

    Es-de

  • 3737

    Dra. Lioubov Dombrovskaia 145

    Modelo del DominioModelo del dominio del punto de venta

    ? El conjunto de asociaciones que se incluye en el modelo se obtuvo de manera bastante mecnica a partir de la lista de comprobacin. Pero tal vez hay que ser ms restrictivos con las asociaciones

    ? Los requerimientos no indican la necesidad de conocer, ni de registrar lo siguiente: ? Venta Iniciada-por Cajero

    ? Adems, es derivable si existe la asociacin Caja Usada-por Cajero? Caja Usada-por Cajero? Caja Iniciado-por Gerente? Venta Iniciada-por Cliente? Tienda Almacena Artculo ? LneaDeVenta Es-de Art culo

    Dra. Lioubov Dombrovskaia 146

    Modelo del dominio del punto de venta

    Pago Cliente Cajero

    Caja GerenteVenta1 11 1Capturada-en

    1

    1

    1

    1Pagada-por

    Tienda

    1

    1..n

    1

    1..n

    Contiene1

    n

    1

    n

    Terminadas

    CatalogoProductos

    1

    n

    1

    n

    Se-usa-por

    EspecificacinProducto

    n1 n1

    Contiene

    LineaDeVenta

    n

    1

    n

    1

    Contenidas-en

    1

    n

    1

    n

    Articulo1

    n

    1

    nDescribe

    Dra. Lioubov Dombrovskaia 147

    Modelo del DominioRequerimientos

    ? Ntese que la capacidad de justificar una asociacin atendiendo a la necesidad de conocerla depende de los requerimientos; un cambio de ellos por ejemplo, exigir que la identificacin del cajero aparezca en el recibo altera la necesidad de recordar la relacin

    ? Enfatice las asociaciones que deben conocerse, pero incorpore tambin las opcionales que se requieran slo para la comprensin, con el fin de enriquecer el conocimiento bsico del dominio

    Dra. Lioubov Dombrovskaia 148

    Modelo del DominioAgregacin de los Atributos

    ? Recuerde que el modelo del dominio es una representacin de cosas reales, no de componentes de software

    ? Cualquier afirmacin concerniente a los atributos ha de interpretarse dentro del contexto de entidades del mundo real

    ? Un atributo es un valor lgico de un dato o de un objeto

  • 3838

    Dra. Lioubov Dombrovskaia 149

    Modelo del DominioAgregacin de los Atributos

    ? Incluya los siguientes atributos en el modelo del dominio: ? 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, es opcional indicar su tipo

    Atributos

    Venta

    fechahora

    Dra. Lioubov Dombrovskaia 150

    Modelo del DominioAgregacin de los Atributos

    ? Los tipos ms simples de atributos son los que, en la prctica, suelen considerarse los tipos primitivos de datos ? Por lo regular, el tipo de un atributo no debera ser un concepto

    complejo del dominio, como Venta o Aeropuerto. Por ejemplo, podramos poner un atributo Caja-Actual al concepto Cajero, que no es un tipo simple, pero la forma ms conveniente de expresarlo es a travs de la asociacin

    Cajero

    IdCajaActualnombre

    Caja

    1

    1

    Cajero

    nombre

    1

    1

    Usada-por

    Dra. Lioubov Dombrovskaia 151

    Modelo del DominioAgregacin de los Atributos

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

    ? Entre los tipos simples de atributos ms frecuentes figuran: ? Booleano, Fecha, Numero, Cadena (Texto), Hora? Direccion, Color, Geometria (punto, Rectangulo, ), Telefono,

    RUT, Codigo Universal de Producto (id), codigo postal, tipos numerados

    ? Una confusin frecuente consiste en modelar como atributo un concepto complejo del dominio. Por lo tanto, relacione conceptos a travs de una asociacin no con un atributo

    Dra. Lioubov Dombrovskaia 152

    Modelo del DominioAtributos del sistema de punto de venta

    ? Es necesario producir una lista de atributos para los conceptos del dominio de punto de venta. Debe estar reservada especficamente a los requerimientos a las simplificaciones en cuestin: Realizar Venta

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

  • 3939

    Dra. Lioubov Dombrovskaia 153

    Modelo del DominioAtributos del sistema de punto de venta

    Pago

    montoCliente

    GerenteVenta

    fechahora

    1

    1

    1

    1Pagada-por

    Tienda

    1

    n

    1

    n

    Terminadas

    CatalogoProductos

    1

    n

    1

    n

    Se-usa-por

    EspecificacinProductodescripcinprecioid

    n1 n1

    Contiene

    LineaDeVenta

    cantidadn

    1

    n

    1

    Contenidas-en

    1

    n

    1

    n

    Descrita-por

    Articulo1

    n

    1

    nDescribe

    Caja

    1

    1..n

    1

    1..n

    Contiene

    1 11 1Capturada-en

    Cajero

    nombre

    1

    1

    Usada-por

    1

    1

    Dra. Lioubov Dombrovskaia 154

    Modelo del DominioAtributos del sistema de punto de venta

    ? Es posible que el cajero reciba un grupo de productos afines (seis paquetes de pauelos desechables) y introduzca una sola vez el id y la cantidad (seis) ? En consecuencia, una instancia de LineaDeVenta puede estar

    asociada a ms de una instancia de cada producto ? La cantidad que introduce el cajero puede quedar registrada como

    atributo de LineaDeVenta

    Dra. Lioubov Dombrovskaia 155

    Modelo del DominioAtributos del sistema de punto de venta

    ? Sin embargo, tambin puede ser calculada a partir del valor real de multiplicidad de la relacin

    ? As, pasa a ser un atributo derivado, el cual puede ser deducido de otra informacin ? En UML, un atributo derivado se denota con el smbolo /

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

    LineaDeVenta

    /cantidad

    Producto

    Dra. Lioubov Dombrovskaia 156

    Modelo del DominioAtributos del sistema de punto de venta

    Pagomonto

    Venta

    fechahora

    1

    1

    1

    1

    Pagada-por

    Tienda

    1

    n

    1

    n

    Terminadas CatalogoProductos

    1n 1n

    Se-usa-por

    EspecificacinProducto

    descripcinprecioid

    n

    1

    n

    1

    Contenida-enLineaDeVenta

    / cantidadn

    1

    n

    1

    Contenidas-en

    1

    n

    1

    n

    Descrita-por

    Articulo1n 1n Describe

    Caja

    1

    1..n

    1

    1..n

    Contiene

    1 11 1Capturada-en Cajero

    nombre

    11

    Usada-por

    11

  • 4040

    Dra. Lioubov Dombrovskaia 157

    Modelo del DominioAtributos del sistema de punto de venta

    ? Se ha creado un modelo del dominio relativamente til del dominio del punto de venta

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

    ? Un buen modelo del dominio capta las abstracciones esenciales y la informacin indispensable para comprender el dominio dentro del contexto de los requerimientos actuales

    Dra. Lioubov Dombrovskaia 158

    Modelo de Casos de UsoContratos de Operaciones

    ? Contratos pueden ser escritos para las operaciones del sistema definidos en el diagrama de secuencia del sistema

    : Cajero : Sistema

    crearNuevaVenta()

    IntroducirArticulo((ID_articulo, cantidad))

    TerminarVenta()

    Pagar()

    Dra. Lioubov Dombrovskaia 159

    Modelo de Casos de UsoContratos de Operaciones

    Contrato: introducirArticulo (idArticulo, cantidad)Referencias: Caso de uso: Realizar VentaPrecondiciones : Venta esta en curso Poscondiciones:

    ? Se cre una instancia de LineaDeVenta li (creaci n de instancia) ? li se asoci con la Venta actual (asociacin formada) ? Se modific el atributo li.cantidad (modificacin de atributos) ? li se asoci con EspecificacinProducto basado en la

    correspondencia del id (asociacin formada)

    Dra. Lioubov Dombrovskaia 160

    Modelo de Casos de UsoContratos de Operaciones: formato

    Contrato: Nombre de la operacin, parmetros Referencias: (opcional) Casos de uso en las cuales aparece

    la operacinPrecondiciones : Suposiciones tiles sobre el estado del

    sistema o objetos del mod