rup uml 4diapositivas
TRANSCRIPT
-
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