Gestion informatica i

155

Transcript of Gestion informatica i

Page 1: Gestion informatica i

1

Page 2: Gestion informatica i

2

Page 3: Gestion informatica i

3

Page 4: Gestion informatica i

4

TABLA DE CONVERSIONES

UNIVERSIDAD PERUANA LOS ANDES

Educación a Distancia.

Huancayo.

Impresión Digital

SOLUCIONES GRAFICAS SAC

Jr. Puno 564 - Hyo.

Telf. 214433

Page 5: Gestion informatica i

5

INDICE

PRESENTACION 9

UNIDAD TEMÁTICA I

INTRODUCCIÓN AL UML 11 INTRODUCCIÓN. 11

El Lenguaje de Modelado Unificado 12 Beneficios del UML 13 Lo que UML no intenta 15

Lenguajes de programación 15 Herramientas 16

Origen de UML y como se convirtió en un estándar 16 UML presente y futuro 18 La importancia de Modelar 19

Vistas de un Modelo 20 Diagramas UML 21

UNIDAD TEMÁTICA II MODELAMIENTO DE PROCESOS 23

Terminologías Básicas 23 Esquema de dato e información 24

¿Qué es un modelo? 24 Proceso 25 Beneficios de tener modelos de los procesos 25

Abstracción 26 Importancia del proceso de abstracción. 26

Usuarios 26 Los usuarios primarios

Los Usuarios finales Sistemas 27

Características importantes de los Sistemas 27

Sistemas de Información (SI) 28 Tecnología de Información (TI) 29

Tecnología de Información versus Sistemas de Información 29 Procesos 29

Información de los Procesos

Diferencia entre Proceso y Procesamiento Pasos para Analizar Procesos de Negocios 31

Identificar los Procesos Identificar a los propietarios de los procesos Mantener la relación entre cada uno de los procesos

Documentar Crear diagramas de procesos de primer nivel

Crear diagramas de procesos de 2do. Nivel Entrega de diagramas a los propietarios de cada uno de los procesos para su revisión.

Concientizar explicando los procesos Características de los procesos 34

Page 6: Gestion informatica i

6

Los procesos y las organizaciones 35 Orientación de las Organizaciones 35

Calidad del requerimiento 36 Definición de IDEF 36

Tipos de diagramas IDEF 37

IDEFO (Modelamiento de procesos) IDEF3 (Diagrama de flujos de trabajos WorkFlow)

DFD (Diagrama do Flujo de Dalos) Tipos de Modelos 42

Modelo AS-IS (como es).

Modelo TO-BE (va a ser). Esquema de análisis y diseño de sistemas 42

Árbol De Nodos 43 Diagrama de Descomposición Funcional 44

UNIDAD TEMÁTICA III ANALISIS

DIAGRAMA DE CASOS DE USO 47 INTRODUCCIÓN 47

Diagramas de Casos de Uso 48 Casos de Uso 48 Representación gráfica de los Casos de Uso 49

Nomenclatura de los casos de Uso 50 Representación gráfica de un actor 50

Nomenclatura de un Actor 51 Relaciones en los diagramas de casos de uso 51 Representación gráfica de una asociación 52

Relación <<include>> 52 Representación gráfica de una relación «include» 53

Nomenclatura de una relación «include» 53 Casos Típicos 53

Relación «Extend» 54

Representación gráfica de una relación «extend» 55 Nomenclatura de una relación «extend» 55

Casos típicos 55 Puntos de extensión en un caso de uso 56 Cuándo usar «include» y «extend» 57

Representación gráfica de los diagramas de casos de uso 57 Documentación de los diagramas de casos de uso 58

Documentación de un caso de uso con relación «extend» 60

Paquetes de casos de uso 61

Cómo construir los diagramas de caso de uso 62 Cómo encontrar los Actores 62

Cómo encontrar los casos de uso 62 Cómo encontrar las relaciones entre actores y casos de uso 63 Describir el flujo de eventos 63

EJEMPLOS VARIOS 63

Page 7: Gestion informatica i

7

UNIDAD TEMÁTICA IV

DISEÑO

DIAGRAMA DE SECUENCIA, COLABORACIÓN, ESTADO Y ACTIVIDADES

Diagrama de Secuencia 77 Tipos de Línea de Mensaje 79 Simple:

Síncrono: Asíncrono:

Foco de Control Visión del Diagrama de Secuencia 81

Casuísticas de Diagramas de secuencia. 82 Mensajes síncronos: Mensaje Recursivo:

Iteración de Mensajes: Bifurcación de Mensajes

Diagrama de Colaboración 84 Diagrama de Estado 86

¿Qué es un Diagrama de Estados? 87

Representación de acciones 88 Sub-Estados.-

Sub Estados Secuénciales.- El Sub Estado Concurrentes.- Estados Históricos.-

Diagrama de actividades 94 Transición de actividad a otra 95

Decisiones 96 Envío de Señal 97 Creadores de Patrones 98

¿Qué es un contrato? 98 Patrones GRASP 99

Patrón Creador 100 Patrón Agente Dispositivo (Pandilla de los Cuatro) 101 Patrón Comando (Pandilla de los Cuatro) 101

UNIDAD TEMÁTICA V

DIAGRAMA DE CLASES 103 INTRODUCCIÓN 103 Diagrama de Clases 104

Diagrama de Objetos 104 Clase 105

Representación Gráfica 105 PRIMER COMPARTIMIENTO 106 Nombre 106

Multiplicidad de la Clase 107 SEGUNDO COMPARTIMIENTO 107

Atributos 107

Page 8: Gestion informatica i

8

Especificando atributos 108 Visibilidad de los atributos 108

Multiplicidad (multiplicity) de los atributos 109 El tipo (type) de los atributos 109 Valor inicial de un atributo 110

Cadena de propiedades (property string) 110 Alcance de los atributos 111

TERCER COMPARTIMIENTO 112 Operaciones 112 Visibilidad de las Operaciones 113

Lista de parámetros (parameters list) 114 El tipo de retorno (return-type) de las operaciones 115

Alcance de las Operaciones 116 Polimorfismo y operaciones polimórficas 116

Responsabilidades de las clases 118 Casos Particulares de clases 119 Clase Abstracta: 120

Clase Parametrizada 121 Clase Asociación 123

Clase Activa 123 Clase Utilidad (Utility Class) 124 Clase Interfaz (Interfaz Class) 124

Clase Hoja (Leaf Class) 125 Clase Raíz (Root Class) 125

Metaclase (metaclass) 126 Relaciones entre Clases 126 Relación de Dependencia 126

Relación de Generalización 129 Relación de Asociación 129

Extremo de la Asociación (Association End) 131 Detallando una Asociación 131 Clasificación de una Relación de Asociación 133

Clasificación según el número de clases participantes 133 Asociación binaria 133

Asociación N-aria 133 Clasificación según como se unen para formar otra clase 135

Asociación AND (And Association) 135

Asociación de Agregación 135 Asociación de Composición 136

Asociación XOR (Xor Association) 136 Estrategias para la creación de Diagrama de Clases 138 EJERCICIOS RESUELTOS 138

BIBLIOGRAFIA 155

Page 9: Gestion informatica i

9

PRESENTACION

La Gestión Informática está orientada al análisis y representación

de modelos especialmente intensivos en el uso y desarrollo de la

gestión administrativa y contable, utiliza diversos métodos pero se

obtiene mayor provecho cuando se utiliza con el Proceso Unificado de

Desarrollo.

Existen diferentes textos sobre el tema de Proceso Unificado que

les podrá ayudar si desean tener un enfoque amplio sobre el UML, que

en combinaciones con los patrones de software a esto podemos

considerar las herramientas CASE, el Lenguaje Visual.

También podemos considerar el manual oficial de UML o buscar

por internet páginas sobre el tema para una mayor consistencia en

nuestros conocimientos.

Dentro de la asignatura de Gestión Informática no se puede

enseñar todo al mismo tiempo, por lo que el libro se ha dividido en 5

capítulos en donde considero en el capítulo I el UML como herramienta

primordial como una unificación del desarrollo y diseño de modelos, el

capítulo II contempla el Modelamiento de Procesos, nos ayuda a

entender y a modelar procesos bajo un esquema fácil a través de

ejemplos, el capítulo III contempla el análisis ya en sí dentro del campo

de la Gestión por lo que recurre al Análisis para luego en el capítulo IV

considerar los diagramas de secuencia, colaboración, estado y

actividades que son parte del análisis y diseño, finalmente en el

capítulo V determinamos nuestros diagramas de clases producto de los

análisis desarrollados en los capítulos anteriores.

Page 10: Gestion informatica i

10

Page 11: Gestion informatica i

11

INTRODUCCIÓN AL UML

OBJETIVOS GENERALES

- Analizar y Diseñar el modelado de procesos de negocios a través

de la representación gráfica de un sistema.

OBJETIVOS ESPECIFICOS

- Visualizar de una forma gráfica un sistema de forma que otro lo pueda

entender.

- Especificar cuáles son las características de un sistema antes de su

construcción.

- Construir sistemas a través de modelos especificados.

- Documentar los elementos que sirven para el modelamiento para su futura

revisión.

INTRODUCCIÓN.

Cuando la "Orientación a objetos empieza a ponerse de moda, surgen

diversos estudiosos cada uno con su propia metodología y símbolos

para representar sus ideas. Hacia 1994, existan más de 50 métodos de

desarrollo de software orientado a objeto, cada uno con su respectivo

lenguaje de modelado. Cada metodólogo defendía su método

provocando la llamada “Guerra de los Métodos”. Esto ocasiono un

panorama desalentador para las personas que deseaban aprender a

modelar bajo el paradigma orientado a objetos, que ofrecía la mejor

manera de desarrollar software superado las limitaciones del pasado;

pues se debía de aprender muchos métodos y su simbología, así como

conceptos en algunos casos contradictorios.

Page 12: Gestion informatica i

12

Bajo este panorama surge la necesidad de unificar la metodología de

desarrollo de software orientado a objetos, pero ella era una empresa

demasiado ambiciosa y fue mucho más fácil proponer primero un

lenguaje común de modelado orientado a objetos: el UML, y luego

proponer una metodología unificada para el desarrollo de software: el

Proceso Unificado.

Así, el UML satisface esta necesidad y, apoyado poi las más

importantes empresas de tecnologías de información, se convierte en

un estándar mundialmente aceptado, facilitándonos el aprendizaje y

aplicación del paradigma orientado a objetos.

El Lenguaje de Modelado Unificado

El UML (Unified Modeling Languaje o Lenguaje Unificado de

Modelado) es un lenguaje gráfico para la especificación, visualización,

construcción y documentación de piezas de información usadas o

producidas durante el proceso de desarrollo de software. A estas piezas

de información se les conoce como Artefactos. El UML provee un

marco arquitectónico de diagramas para trabajar sobre análisis y

diseño orientado a objetos, así como también el modelamiento de

negocios y otros sistemas que no son software. El UML es pues un

lenguaje simbólico para expresar modelos orientados a objetos y no

una metodología para desarrollarlos.

Este lenguaje es el resultado de la convergencia de las mejores

prácticas en la industria de tecnología de software orientado a objetos,

en especial de la simbología utilizada por tres de los principales

métodos de análisis y diseño orientado a objetos como son Booch

(Booch), OMT (Rumbaugh), y OOSE (Jacobson)-cuyos autores se

agruparon en Rational Software para desarrollarlo. El UML surge

pues como la unión de la simbología utilizada por estos métodos, pero

Page 13: Gestion informatica i

13

es mucho más, puesto que Incluye formas adicionales para manejar

problemas que el modelado con estos métodos no abarcaba

completamente.

Muchas compañías están incorporando el UML como estándar en sus

procesos y productos, que cubren disciplinas tales como

modelamiento del negocio, requisitos de gerencia, análisis y

diseño.

Beneficios del UML

Los beneficios aportados por el UML son:

1) Provee a los desabolladores un lenguaje de modelamiento visual

listo para utilizar, es así como nosotros podemos desarrollar e

intercambiar modelos orientados a objetos significativos. El UML

consolida un conjunto de conceptos que son generalmente

aceptados por muchos métodos y herramientas de modelado y

necesarios en una amplia gama de aplicaciones. Este es uno de los

principales beneficios aportados por el UML, permitiendo el avance

de la industria del software para construir modelos que puedan ser

utilizados por diferentes herramientas, debido a su aceptación como

un estándar de modelado.

2) Proporciona mecanismos de extensión y de especialización para

ampliar los conceptos básicos. El UML puede ser ampliado para

nuevas necesidades en un dominio especifico. Los conceptos no

pueden ser cambiados mas de lo necesario, pues los usuarios

necesitan construir modelos usando conceptos fundamentales para

las aplicaciones más comunes, sin necesidad de usar los

mecanismos de extensión; pero, pueden añadir nuevos conceptos y

notaciones para usos no cubiertos por sus definiciones, escoger

entre interpretaciones variables de conceptos existentes cuando no

existe un claro consenso y, especializar conceptos, notaciones y

restricciones de un particular dominio de la aplicación.

Page 14: Gestion informatica i

14

3) Proporciona una base formal para entender el lenguaje de

modelado. Los usuarios usan la formalidad para ayudarse a

comprender el sistema, pero el formalismo no debe requerir muchos

niveles o capas y uso excesivo de matemáticas. UML provee de una

definición formal del modelo estático usando el Diagrama de Clase.

Este diagrama es muy popular y ampliamente aceptado como

aproximación formal de un modelo y del intercambio de

información, pero además, el UML expresa las restricciones en OCL

(Object Constraint Languaje) y las operaciones en un lenguaje

natural muy preciso.

4) Anima el crecimiento del mercado de las herramientas de

Orientación a Objetos, porque permite a los vendedores soportar un

lenguaje estándar de modelado usado por muchas herramientas, en

beneficio de la industria. La interoperatibilidad requiere que los

modelos puedan ser cambiados entre usuarios y herramientas sin

perder información. Esto solo es posible cuando las herramientas

manejan un conjunto de conceptos relevantes y ampliamente

aceptados por la industria del software.

5) Utiliza conceptos de alto nivel de desarrollo tales como

colaboraciones, armazones, modelos y componentes, definiendo

claramente la semántica de estos conceptos lo cual es esencial para

obtener los beneficios de la orientación de objetos, colocando

dentro de un contexto completo un lenguaje de modelado único.

6) Integra las mejores prácticas de desarrollo de software. La

motivación clave para el desarrollo del UML es la integración de las

mejores prácticas de la industria, acompañados de variedades

amplias de vistas en niveles de abstracción, dominios,

arquitecturas, ciclos de vida, tecnologías de implementación, etc.

Page 15: Gestion informatica i

15

Primero, unifica los conceptos de los métodos Booch, OMT y OOSE. El

resultado es un simple, común y ampliamente utilizable lenguaje para

usuarios de estos y otros métodos.

Segundo, UML pone sobre el tapete lo que pueden hacer los métodos

existentes. Por ejemplo, los autores de UML modelaron sistemas

distribuidos para asegurar que el UML trate adecuadamente estos

dominios.

Tercero, UML se centra en unificar el lenguaje de modelado, y no un

proceso de desarrollo estándar. Aunque la experiencia demuestra que

las diversas organizaciones y dominios del problema requieren diversos

procesos de desarrollo UML puede ser utilizado en esos procesos. Sin

embargo, el UML promueve el desarrollo de procesos manejados por

casos de uso, centrado en arquitectura, iterativos e increméntales. Es

por olio que los esfuerzos se centraron primero en crear un

metamodelo común y luego en una notación común.

Lo que UML no intenta

El UML se centra en simplificar y estandarizar modelos, dando la

flexibilidad necesaria para ser utilizado en el diseño de una variedad de

sistemas en una amplia gama de industrias. Sin embargo, no puede

abarcarlo todo, algunas áreas importantes fuera del alcance del UML

incluyen:

Lenguajes de programación

El UML es un lenguaje de modelamiento visual, en el sentido del tener

toda la ayuda visual y semántica necesaria para substituir lenguajes de

programación, sin embargo, no está pensado para ser un Lenguaje

de Programación Visual. El UML es un lenguaje para visualizar,

especificar, construir, y documentar los artefactos de un sistema

Page 16: Gestion informatica i

16

orientado a objetos donde se hará uso intensivo del software, y solo le

indica el camino cuando usted tenga que implementar el código. El

UML especifica mediante gráficos lo que una familia de lenguajes

Orientados a Objetos debe hacer.

Herramientas

Estandarizar un lenguaje es necesariamente definir los fundamentos

para las herramientas y el proceso. La meta fundamental del OMG era

permitir interoperabilidad entre las diferentes herramientas. Sin

embargo, las herramientas y su interoperabilidad son muy

dependientes de una sólida semántica y la definición de una notación,

tal como el UML proporciona. El UML define un meta modelo

semántico, no una interfaz de la herramienta, almacenaje, o modelo

runtime, aunque éstos deben estar bastante cerca de uno otro.

Origen de UML y como se convirtió en un estándar

Los lenguajes de modelado orientados al objeto identificabas

comenzaron a aparecer a mediados de la década de 70 y al final de los

'80, en donde varios metodólogos experimentaron con diversos

acercamientos al análisis y al diseño orientados al objeto. El número de

lenguajes que modelaban objetos aumentó de menos de 10 a más de

50 durante el período entre 1989-1994. Muchos de los que utilizaban

estos métodos no encontraban satisfacción completa en alguno de los

lenguajes de modelado propuestos, esto motivo la llamada "Guerras

de los Métodos". Hacia mediados de 1990, estos métodos

comenzaron a madurar y las nuevas iteraciones aparecieron

incorporando otras técnicas, haciendo que algunos de estos métodos

prevalecieran sobre otros.

El desarrollo de UML comenzó hacia finales de 1994 en que Grady

Booch y Jim Rumbaugh de Rational Software Corporation,

comenzaron su trabajo sobre la unificación de sus propios métodcs:

Page 17: Gestion informatica i

17

Booch y OMT (Object Modeling Techniqué). A finales de 1995,

Ivar Jacobson y su compañía de Objectory se unieron a Rational y

combinaron sus métodos.

Los autores de los métodos OMT, Booch y OOSE, Jim Rumbaugh,

Grady Booch e Ivar Jacobson (conocidos en el medio como los tres

amigos) fueron motivados para crear un lenguaje unificado de

modelado por tres razones:

Primero, estos métodos se desarrollaban uno independientemente de

los otros. Tuvo sentido continuar esta evolución juntos en vez de

separados, eliminando cualquier diferencia innecesaria y gratuita que

confundiera más a los usuarios de sus métodos. Segundo, unificando

la semántica y la notación de sus métodos, traerían cierta estabilidad

al mercado orientado al objeto. Al permitir la creación de un lenguaje

de modelamiento maduro, le deja a los constructores de herramientas

la implementación de características más útiles en su software, en vez

de distraer este esfuerzo en varios lenguajes de modelamiento.

Tercero, contaban con que su trabajo conjunto rindiera mejoras en los

tres métodos anteriores, ayudándose con las lecciones aprendidas a

resolver los problemas que ninguno de sus métodos manejaba bien.

Los "tres amigos" al unificar la simbología de sus métodos enfocaron

sus esfuerzos en:

Permitir modelar los sistemas, no necesariamente software, que

usan conceptos orientados a objetos.

Establecer un lenguaje que acople conceptos orientados a objetos

y permita su intercambio, así como también de sus artefactos.

Tratar las aplicaciones de sistemas complejos y misión-críticos en

la escala adecuada.

Crear un lenguaje de modelado utilizable por los hombres

y las máquinas.

Page 18: Gestion informatica i

18

Los esfuerzos de Booch, Rumbaugh, y Jacobson, dieron frutos al

liberar los documentos de UML 0,9 y 0,91 en junio y octubre de

1996. Durante 1996, los autores de UML y la empresa

Rational Software

invitaron a la comunidad de desarrolladores a realizar sus

aportes, incorporando esta retroalimentación pero aun faltaba

más por hacer. Mientras esto ocurría, los esfuerzos de la industria

del software eran hechos con la meta más amplia de definir un

lenguaje de modelamiento estándar. En junio de 1995, el OMG

reunió a todos metodólogos importantes, dando lugar al primer

acuerdo mundial para buscar estándares bajo la batuta del OMG.

Este pedido del OMG proporcionó al catalizador para estas

organizaciones para unir fuerzas alrededor de un lenguaje

unificado. Durante 1996, varias organizaciones consideraron UML

como estratégico a su negocio.

UML no garantiza éxito del proyecto sino que mejora muchas cosas.

Por ejemplo, baja perceptiblemente el coste continuo de entrenamiento

y del uso de herramientas cuando se cambia de proyecto u

organización y proporciona la oportunidad para !a nueva integración

entre las herramientas, procesos y dominios.

UML presente y futuro

El UML no es propiedad de ninguna empresa es decir está abierto a

todos. Trata de resolver las necesidades de los desarrolladores de

software y creadores de herramientas así como de comunidades

científicas, según lo establecido por la experiencia con los métodos

subyacentes en los cuales se basa. Muchos metodólogos,

organizaciones, y vendedores de herramientas han confiado en él para

utilizarlo. Puesto que las estructuras de UML se basan sobre la

semántica y notación de Booch, OMT, OOSE y de otros métodos, han

Page 19: Gestion informatica i

19

incorporado el aporte de los socios de UML y del público en general, la

adopción del UML como estándar está garantizada. Hay dos aspectos

que el UML alcanza:

Primero, termina con eficacia muchas de las diferencias, a menudo

inconsecuentes, entre los lenguajes de modelado de métodos

anteriores.

Segundo, y quizás más importante, unifica las perspectivas entre

muchas diversas clases de los sistemas (negocio y lógica de software),

de fases del desarrollo (análisis, diseño y puesta en práctica), y de

conceptos internos relativos a la tecnología orientada a objetos y al

desarrollo de software.

Aunque el UML se define como un lenguaje exacto, no es una barrera

para mejoras futuras. El UML puede ser extendido sin la redefinición de

sus fundamentos. Se espera que el UML en su forma actual, sea la

base para la creación de muchas herramientas, incluyendo los

ambientes visuales de modelado, de simulación y de desarrollo.

Puesto que se están desarrollando integraciones interesantes

entre las herramientas, los estándares basados en el UML llegarán a

ser cada vez más utilizadas.

La importancia de Modelar

Desarrollar un modelo para un sistema de software antes de su

construcción o renovación es tan esencial como tener un modelo para

un edificio antes de levantarlo. Los buenos modelos son esenciales para

la comunicación entre equipos de proyecto y asegurar validez

arquitectónica. Mientras que la complejidad de los sistemas aumenta se

hace más importante las buenas técnicas de modelado. Hay muchos

factores adicionales para el éxito de un proyecto, pero tener un

lenguaje estándar riguroso de modelamiento es esencial.

Un lenguaje de modelamiento debe incluir:

• Elementos fundamentales que modelan conceptos y la semántica

Page 20: Gestion informatica i

20

• Notación para la representación visual de los elementos del

modelo.

• Guías de consulta para el uso de los desarrolladores, vendedores y

la enseñanza.

Mientras que el valor estratégico del software aumenta, la industria

busca técnicas para automatizar la producción del software, mejorar la

calidad, reducir los costos y el tiempo necesario para poner un producto

en el mercado. Estas técnicas incluyen tecnología de componentes, la

programación visual, modelos y marcos de trabajo. Los negocios

también intentan técnicas para manejar la. complejidad de sus

sistemas mientras que aumentan de alcance y tamaño, reconociendo

la necesidad de solucionar problemas arquitectónicos que se repiten,

tales como distribución física, ejecución simultánea, réplica, seguridad,

balance de carga y tolerancia de tallos. Además, el desarrollo del

World Wide Web, hace algunas cosas más simples, pero ha

aumentado tremendamente estos problemas arquitectónicos. El

Lenguaje Unificado de Modelado (UML) fue diseñado para responder a

estas necesidades, y es la respuesta bien definida y extensamente

validada a la necesidad de modelar visualmente sistemas cada vez más

complejos.

Vistas de un Modelo

Para desarrollar un sistema es necesario verlo desde diferentes

perspectivas, lo que da lugar a diferentes vistas del sistema,

dependiendo de lo que deseamos mostrar en un instante determinado.

Vista de Diseño

Vista de

Procesos

Vista de

Implementación

Vista de

Despliegue

Vista de los

Casos de Uso

Page 21: Gestion informatica i

21

La vista de Casos de Uso, muestra la descripción del comportamiento

del sistema tal como lo observan los usuarios finales.

La Vista de Diseño, muestra los servicios que nuestro sistema debe

proporcionar y como lo hará. Comprende las clases, interfaces y

colaboraciones.

La vista de Procesos, comprende los hilos y procesos que forman

mecanismos de sincronización y concurrencia del Sistema.

La Vista de Implementación, comprende los componentes que pn

sistema-^- disponte e, sistema físico.

La Vista de despliegue, contiene los nodos que forman la topología

del hardware sobre la que se ejecuta el sistema.

Cada una de estas vistas se puede representar mediante los diagramas

UML.

Diagramas UML

El UML puede describir cualquier tipo de sistema en términos de

diagramas orientados a objetos. Entre los diferentes tipos

tenemos de sistemas de información, sistemas de tiempo real, sistemas

embebidos, sistemas distribuidos, software de sistemas, sistemas de

negocios.

Los diagramas se utilizan para dar diferentes perspectivas del problema

según lo que nos interese representar en un determinado momento.

Los diagramas que UML define son:

1.- Diagramas de Casos de Uso

2.- Diagramas de Clases

3.- Diagramas de Objetos

4.- Diagramas de Secuencia

5.- Diagramas de Colaboración

6.- Diagramas de Estado

7.- Diagramas de Actividad

8.- Diagramas de Componente

9.- Diagramas de Despliegue

Page 22: Gestion informatica i

22

Estos diagramas proveen múltiples perspectivas del sistema bajo el

análisis y desarrollo: además, estos diagramas soportan una adecuada

documentación y algunas herramientas de software, pueden mostrar

diferentes vistas a partir de estos diagramas. Este libro cubre la

descripción de estos diagramas mediante ejemplos que le permitirán

adiestrarse en su construcción, y capacitarlo para poder enfrentar al

mundo real construyendo sus propios modelos.

Page 23: Gestion informatica i

23

MODELAMIENTO DE PROCESOS

OBJETIVOS GENERALES

- Identificar el área correcta para cambiar y mejorar los procesos

como parte integral para el éxito total de la organización

considerando el modelamiento.

OBJETIVOS ESPECÍFICOS

- Proporcionar maneras de expresar procesos de negocio o estrategias en

términos de negocios de actividades económicas y comportamiento

colaborativo.

- Aumentar la velocidad del cambio en los negocios.

Terminologías Básicas

Dato

Es cualquier hecho que ocurre en el universo y que tiene una

representación almacenable.

Información

Datos procesados que son utilizados en un contexto y transmiten un

significado a los individuos. Las computadoras procesan los datos sin

tener constancia de lo que éstos representan en realidad.

Page 24: Gestion informatica i

24

Esquema de dato e información

El presente gráfico nos da una idea de cómo podemos diferenciar el

concepto de dato e información. Si un periodista recolecta datos (notas

de expresiones, graba declaraciones, toma fotos) de un hecho; en este

caso una huelga; ha capturado datos, que luego los llevará a un

proceso donde intervienen las actividades: separar, clasificar, sacar

resumen entre otros; para luego producir información: artículo

periodístico, nota televisiva.

¿Qué es un modelo?

Cada vez que queremos construir una casa o edificio, lo primero que se

debe hacer es dibujar un plano y crear maquetas de la edificación;

igual sucede para construir un sistema. Se deberán crear los modelos

que son como los planos que servirán para identificar procesos,

construir base de dalos entre otros; estando estos procesos

identificados podemos construir sistemas de acuerdo a los

requerimientos de los usuarios.

Un modelo es la visión de lo que se diagnóstica o se desea construir.

UNIVERSO

DATO

PROCESO

Separar, Clasificar,

Ordenar, Calcular,

Insertar, Consultar,

Actualizar, Eliminar

INFORMACION

Page 25: Gestion informatica i

25

Proceso

Los procesos están conformados o integrados por grandes conjuntos de

actividades, funciones o tareas que existen debido a un negocio. Estos

forman la gran estructura del negocio para la acción, es decir toma de

decisiones. A todo proceso se le deberá identificar sus entradas y

salidas; porque, siempre tendrán un comienzo y un final.

Beneficios de tener modelos de los procesos

Uno de los beneficios es conocer las actividades más importantes

que interactúan en el negocio con la finalidad que se pueda lograr

una documentación clara, precisa y gráfica de los procesos; para

que de esa manera puedan ser analizados y diseñados

efectivamente. Esto permitirá diagnosticar y plantear soluciones o

reestructurar problemas en el enlomo del negocio.

Otro beneficio de modelar procesos, es acceder a una certificación

ISO (Organización de Estándares Internacionales), tales como:

ISO 9000, ISO 2000. Los ISO están conformados por un conjunto

de propiedades o características de un producto o servicio en el

desenvolvimiento del mismo dentro de una organización, la cual

permite asegurar la calidad para quienes adquieren o hacen uso

de los productos o servicios. Para ello se obtiene una certificación

ISO.

VENDER

PRODUCTOS PEDIDO

DOCUMENTO

DE VENTAS

SUMAR

CALCULAR TOTAL

EMITIR DOCUMENTO

ENTRADA PROCESO SALIDA

Page 26: Gestion informatica i

26

Abstracción

Se refiere a quitar las propiedades y acciones de un objeto para dejar

sólo aquellas que sean necesarias.

De acuerdo con los objetos mostrados, aplicando abstracción hemos

identificado tres atributos para cada objeto, sería innecesario identificar

quien se sentará o en que lugar se deba colocar etc.

Importancia del proceso de abstracción.

Es la capacidad humana que tenemos de poder discernir y obtener las

propiedades y acciones necesarias de los objetos para los modelos a

construir, porque de no tener claro este concepto llenaríamos de

objetos con acciones innecesarias a la lógica del negocio de estudio,

dificultando la identificación de los objetivos.

Usuarios

Los usuarios son los que interactúan con el sistema o se benefician de

los resultados de los mismos.

• Los usuarios primarios, son los que interactúan con el sistema.

Ellos lo alimentan (entradas) o reciben salidas, quizá por medio de

un terminal.

• Los Usuarios finales, para este grupo se considera aquellos que

usan los resultados para la toma de decisiones como son los

gerentes administrativos y asesores. Dentro de este grupo

tendríamos los usuarios externos de la organización, recibiendo la

información, como los recibos e informes de estado.

Por ejemplo, si analizamos el sistema de información de una empresa

de telefonía: los usuarios primarios serían los operadores que

manipulan las interfaces de pagos, consultas, entre otros; mientras,

que los usuarios finales serían los gerentes que esperan los gráficos

estadísticos de ventas o servicios para tomar una decisión.

Hoy en día los usuarios externos que adquieren los recibos de servicios

para la mayoría de los sistemas Web, estos hasta cierto punto son

Page 27: Gestion informatica i

27

primarios, porque pueden hacer transacciones desde cualquier lugar del

mundo.

Sistemas

Es un conjunto de componentes que interactúan entre sí para lograr un

objetivo común.

Ejemplo:

Sistema contable

Sistema nervioso

Sistema de gobierno

Sistema educativo

Sistema contable

Sistema digestivo

Características importantes de los Sistemas

Todo sistema tiene una razón o fin de existencia.

Los sistemas interactúan con el medio ambiente.

Los componentes que forman un sistema pueden ser a su vez

sistemas más pequeños; es decir, los sistemas pueden estar

formados por varios niveles de sistemas o subsistemas. El cuerpo

humano, por ejemplo, contiene subsistemas tales como los

sistemas respiratorio y circulatorio. Un automóvil tiene sistemas

de combustión, eléctricos y de control de emisiones. En general,

en situaciones de sistemas, es común tener vanos niveles de

sistemas interactuando entre sí.

Ejemplos de sistemas

Sistema de Tienda

Subsistema de

Compras

Subsistema de

Almacén

Subsistema de Ventas

Facturación

Page 28: Gestion informatica i

28

Sistema de gobierno

Sistema de banco

Sistemas de Información (SI)

Basándonos en la definición propuesta por Andreu, Ricart y Valor

(1991), entendemos por Sistema de Información a:

Conjunto integrado de procesos, principalmente formales;

desarrollados en un entorno usuario-ordenador, que operando sobre un

conjunto de datos estructurado (base de datos) de una organización,

recopilan, procesan y distribuyen selectivamente la información

necesaria para la operatividad habitual de la organización y las

actividades propias de la dirección de la misma.

Poder Ejecutivo

Poder

Legislativo

Poder Judicial

Jurado nacional

de Elecciones

Subsistema

Ahorros

Subsistema

Prestamos

Subsistema

Cuenta

Corrientes

Subsistema

Publicidad

Subsistema

Finanzas

Page 29: Gestion informatica i

29

Tecnología de Información (TI)

Conjunto de tecnologías que proporciona soluciones claras a

determinados problemas. Considera a la informática,

telecomunicaciones. Ejerce un papel de capacitador, catalizador y

apoyo para los sistemas de información.

[GIL IGNACIO "Sistemas y Tecnología de información para la Gestión.

Editorial MCGRAWHILL. España 97]

Tecnología de Información versus Sistemas de Información

Hoy en día no existe un matrimonio armonioso entre los sistemas y

tecnologías de información, debido a que los usuarios no están

capacitados en el conocimiento de tecnologías y en contraparte los

desarrolladores no logran aprender los procesos de negocios por no

manejar un lenguaje común entre usuarios y desarrolladores. En

consecuencia, se crean sistemas de información con tecnologías que no

se adaptan a las necesidades de los usuarios. Cuando no existe una

sincronización entre los procesos reales, sistemas y Tecnologías de

información, muchos usuarios de los que se resisten al cambio, creen

que la forma en que llevan en la actualidad sus procesos es

conveniente y más segura, dando por conclusión la no adaptación a los

avances tecnológicos. Quedando rezagados de los beneficios del mundo

informático.

Procesos

Información de los Procesos

Cuando se inicia el estudio de una organización lo primero que

debemos hacer es identificar los procesos: que son como piezas

de rompecabezas que tenemos que armar para interpretar los

negocios y de esta manera poderlos diagnosticar y después

reestructurar.

Page 30: Gestion informatica i

30

Diferencia entre Proceso y Procesamiento

Proceso.- Es el conjunto de actividades de trabajo

interrelacionadas que se caracterizan por requerir ciertos insumos

(inputs, productos o servicios obtenidos de otros proveedores) y

tareas que implican valor añadido, con miras a obtener ciertos

resultados.

Procedimiento.- Es un conjunto de reglas o instrucciones que

determinan la manera de proceder o de obrar para conseguir un

resultado.

Pasos para Analizar Procesos de Negocios

1. Identificar los Procesos

En la mayoría de nuestras organizaciones tienen el modelo

jerárquico en su administración; por lo tanto tenemos que

empezar a identificar a los procesos unidepartamentales, y en

esta parte iremos aprendiendo las actividades de cada uno de

ellos. Aquí se deberá tener cuidado con la revisión de

documentos oficiales de la empresa ya que no siempre se

sincronizan las funciones definidas con las del desempeño de

cada uno de los procesos. A continuación, se deben identificar

los procesos multidepartamentales que son los que enlazan la

tela de araña de los flujos de cada uno de los procesos en la

organización.

Dirección

Dpto_1 Dpto_2 Dpto_3

Ofici_1 Ofici_2

Procesos

Unidepartamentales

Procesos

Multidepartamentales

Page 31: Gestion informatica i

31

2. Identificar a los propietarios de los procesos

Una vez identificados los procesos, se deberá identificar

quienes son propietarios de cada uno de ellos, porque

conociendo al experto podremos programar sesiones de

aprendizaje de las actividades.

3. Mantener la relación entre cada uno de los procesos

Cuando ya conocemos a los propietarios y tenemos toda una

tormenta de procesos y actividades, debemos mantener una

relación entre los procesos identificados para no malversar la

visión general de los procesos del negocio.

4. Documentar

No basta con solo identificar y sincronizar, sino documentar

los procesos diagnosticados para poderlos modelar y de esa

manera tener una referencia de lo que estamos aprendiendo.

Cuando los procesos están documentados, los encargados de

dirigir el negocio pueden administrar

y reestructurar; para de esta manera

seguir el ciclo.

Page 32: Gestion informatica i

32

5. Crear diagramas de procesos de primer nivel

Para comenzar a crear los diagramas del primer nivel, suelen

ser por lo general complicado armarlos, ya que no siempre los

usuarios te proporcionan el conocimiento del negocio con

flexibilidad. Lo importante es que logremos involucrar al

cliente en el levantamiento de información. Si el nivel cultural

de los propietarios de los procesos es bajo, se recomiendo

usar mapas mentales como herramientas iniciales para el

levantamiento de datos, ya que iremos diagramando con

dibujos naturalmente entendibles la lectura de los procesos,

reinando para ello un lenguaje de comunicación entre el

desabollador y cliente.

Si los propietarios de los procesos tienen un nivel cultural

adecuado al aprendizaje de los modelos técnicos, se

recomiendo usar la metodología IDEFO (Integración y

Definición de Funciones Organizacionales), ya que permitirá

descomponer los procesos de arriba hacia abajo, identificando

las entradas, salidas, mecanismos (son los autores y/o

elementos que transforman el proceso), así como también los

controles (reglas, políticas), que se definen para cada uno de

los procesos en todos sus niveles.

Una vez identificados los procesos, se constituirán en la

antesala para la construcción de los casos de uso que están

orientados a los escenarios, teniendo la particularidad de

crear subprocesos reutilizables con los conceptos de

<<extend>>, proceso extendido y «Include», proceso

incluido.

Page 33: Gestion informatica i

33

6. Crear diagramas de procesos de 2do. Nivel

Una vez identificados cada uno de los procesos se debe

descomponer en niveles, y cuando ya se desintegró en un

nivel considerable de jerarquización para cada uno de los

procesos, se deben desmenuzar en actividades.

Este criterio de descomposición en niveles, es relativo; porque

hoy en día con los casos de uso, se recomienda dividirlo por

conjunto de procesos en función a la administración del

negocio y no crear una escalera de niveles de procesos, que

en muchos casos hace perder la visión holística de lo que se

diagnóstica o desea construir.

7. Entrega de diagramas a los propietarios de cada uno de

los procesos para su revisión.

Una vez construido los diagramas en cada uno de los niveles,

deberán ser entregados a los propietarios de cada uno de los

procesos para su revisión, nunca los analistas deberán

subestimar el conocimiento del negocio; porque, por muy

similares que puedan ser los negocios siempre cada negocio

tiene sus características peculiares.

Page 34: Gestion informatica i

34

8. Concientizar explicando los procesos

Aquí es donde se pone a prueba la capacidad del Analista, con

respecto a ser un Diplomático, Pedagogo, Psicólogo y Líder.

En función de llevar al grupo de desarrollo y los clientes a una

comunión entre las partes, tanto para vender su producto y

hacer que ese producto satisfaga los requerimientos de los

clientes. Para que de esa manera el sistema de información no

fracase.

Características de los procesos

Una vez diagnosticados cada uno de los procesos se debe

tener en cuenta, qué es lo que hacemos con los procesos

identificados, para tal caso tenemos que evaluar si los

modelos son de transición o transformación.

Si se encuentra en el criterio de someter a una transición,

deberá diseñar la manera de manejar los procesos con el

sistema de información computarizado.

En caso de tener el considerar o aplicar la transformación de

los modelos de los procesos, deberá reestructurarlos o en

todo caso aplicar reingeniería, que consiste en hacer una

revisión fundamental y rediseño de forma radical de los

procesos con el objetivo de tener grandes mejoras.

MODELO DE

PROCESOS

DIAGNOSTICADOS

MODELO DE

PROCESOS

SISTEMATIZADOS

Page 35: Gestion informatica i

35

Los procesos y las organizaciones

Orientación de las Organizaciones

Debe tener orientación al cliente

Toda organización que desee estar en la vanguardia de este mundo

globalizado, deberá tener sus procesos correctamente modelados en

función al cliente, teniendo como secuencia indicar "que es lo que

necesita el cliente del negocio proveedor"; para ello deberá haber

definido correctamente la misión del negocio. A continuación se debe

tener en claro COMO y CUANDO necesita el servicio o producto, para

luego definir los procesos con el fin de indicar la organización funcional

que administrara los mismos. No sólo basta tener correctamente

definido el proceso para estar a la vanguardia, sino definir la gestión

que permitirá administrar el proceso modificado, rediseñado o definido

para que cumpla su fin. Seguidamente buscar y liderar los equipos

humanos que serán los actores o el cumplimiento de los objetivos

establecidos. Si descuidamos al factor humano no motivando ni

liderando, por más que tenga sofisticados modelos de procesos, estos

fracasarán y fenecerán en muy corto tiempo.

Organización ¿Qué necesita?

¿Cómo?

¿Cuándo?

Definición de procesos

Organización

Gestión

Equipos Humanos

Page 36: Gestion informatica i

36

Calidad del requerimiento

Para definir correctamente los requerimientos se tiene que integrar tres

criterios; necesidades del cliente, expectativas y posibilidades

del proveedor del servicio o producto.

El primer criterio tiene que ver con lo explicado en el gráfico anterior,

sobre tener claro las necesidades del cliente, para luego medir las

expectativas con respecto al servicio o producto; y después, integrar

las posibilidades del proveedor que tienen que estar correctamente

ensambladas y comunicadas. Que pasaría si un cliente "A", tiene una

gran expectativa de lo que recibirá; pero, el proveedor no puede

proporcionarlo, entonces todo nuestro esquema de procesos no tendría

sentido de existencia, porque el negocio no sería rentable.

Toda organización estructurada jerárquicamente, tendrá dificultad para

integrarse a la lógica de los negocios globalizados; mientras, que las

estructuradas con procesos se integrarán sin dificultad.

Definición de IDEF

Es una técnica de análisis y diseño de sistemas que es utilizada para la

definición de sistemas, análisis de requisitos y diseño de software.

Consiste en un conjunto de procedimientos, que permiten al analista de

sistemas descomponer y comprender mejor las interrelaciones del

sistema y sub-sistemas de los procesos de negocio paso a paso para

explicar el proceso total. Cada actividad es administrada como una

Necesidades del

Cliente

Expectativas Posibilidades del

Proveedor

Page 37: Gestion informatica i

37

transformación de entradas en salidas, tomando control sobre las

restricciones y mecanismos o factores de producción consumidos por la

actividad, bajo el modelo ICOM Input Control Output Mecanismo).

También es una técnica de modelamiento de datos que permite graficar

los objetos que intervienen en el proceso de investigación de un

negocio. IDEF fue creado por la Fuerza Aérea de los EEUU, que deriva

de la metodología SADT (Structured Analisys and Design Tecnique)

utilizada para la modelización funcional de actividades y que ha

alcanzado la categoría de estándar en EEUU.

Tipos de diagramas IDEF

IDEFO (Modelamiento de procesos)

Representan el Modelamiento de actividades IDEFO o procesos de

negocio, es una técnica para realizar el sistema total de estudio

como un conjunto de actividades o funciones interrelacionadas

entre si. Las actividades que son las acciones del sistema en

estudio, son analizadas independientemente del o de los objetos

que intervienen en el proceso de negocio.

IDEF3 (Diagrama de flujos de trabajos WorkFlow)

Representan redes de flujo procesos, algunas veces referidos

como diagramas workflow, es una metodología de modelamiento

cuya meta primaria es proveer un método estructurado que

describa una situación como una secuencia ordenada de eventos,

igualmente describe cualquier objeto participante y las reglas

asociadas.

La diagramación workflow, es una técnica bien adaptada para

reunir datos como parte del análisis y diseño estructurado.

Page 38: Gestion informatica i

38

DFD (Diagrama do Flujo de Dalos)

Los diagramas de flujo de dalos modelan los sistemas como una

red do actividades que procesan datos para y desde almacenes

que so encuentran dentro o fuera de los límites del sistema

estudiado.

Simbología Gráfica ICOM

Descripción De Elementos

INPUT Son elementos o ítems que van a sufrir una

transformación o cambio de estado al someterse al proceso, tal

como: un pedido, capital, solicitud.

En la mayoría de los casos cada entrada va a estar asociada a

una entidad y dicha entidad contendrá a un grupo de atributos.

Ejemplo: El flujo de entrada "ficha de datos" tendrá la

entidad FICHA y la misma contendrá los atributos de

CÓDIGO, APELLIDO PATERNO, APELLIDO MATERNO,

NOMBRES, FECHA DE NACIMIENTO.

ACTIVIDAD

CONTROL

OUTPUT INPUT

MECANISMO

Pedido

Solicitud

Ficha de Datos

Page 39: Gestion informatica i

39

CONTROLES. Son las restricciones o reglas de gobierno del

proceso, por tal sentido intervienen las reglas de negocio,

políticas, etc.

Los controles se representan por un flujo, para que más

adelante sean ilustrados por cuadros, o idioma estructurado.

Aumentos

X fiestas Lista de

Precios

Tipos de

servicios

Page 40: Gestion informatica i

40

Reglas de negocio.

Ilustración Del Control "Lista De Precios"

DESTINO

ORIGEN TUMBES TALARA SULLANA TRUJILLO LIMA

TUMBES XXXXXX S/. 7.5

S/. 5

S/. 7.7

S/. 8

S/. .21

S/. 20

TALARA XXXXXX XXXXXX S/. 3

S/. 3

S/. 12

S/. 14

SULLANA XXXXXX XXXXXX XXXXXX S/. 13

S/. 13

TRUJILLO XXXXXX XXXXXX XXXXXX XXXXXX

LIMA 80

90

70

80

60

70

40

50 XXXXXX

Nota: El precio del pasaje de Lima a Sullana cuesta 70

soles y de Sullana a Lima cuesta 60 Soles.

Ilustración de aumentos por lista de pasajes

Días de Viaje Tasa de

aumentos

26 Julio al 29 Julio 50%

20 Diciembre al 2

Enero

50%

2/sem Abril(semana

santa)

20%

OUTPUTS. Viene a ser el resultado del proceso, es una entrada

transformada, ejemplo: Pedido aceptado, Solicitud aceptada,

Factura cancelada, etc.

Page 41: Gestion informatica i

41

Al igual que los flujos de entrada, los flujos de salida también

tienen entidades a las cuales se le debe asociar.

MECANISMO. Son los recursos utilizados para transformar las

entradas hacia las salidas.

Ejemplos: personas, equipos, sistemas, etc.

Ejemplo:

Proceso: Compra al crédito un Televisor. En Sagafallabela

Punto de Vista: Empresa de crédito.

Nivel: 0

Factura Cancelada

Recibo sellado

Guía verificada

SECRETARIA

VENDEDOR TELEFONO

GERENTE

COMPRA AL

CRÉDITO

Línea de Crédito

Estado de Cuenta

Plazo de Pago

Tasa de Interés

Solicitud de compra

Aceptada

Artículo

Tarjeta CMR

Solicitud de Compra

Vendedor

Cliente

Personal de Crédito

Page 42: Gestion informatica i

42

Tipos de Modelos

El objetivo es descomponer los procesos de negocio, paso a paso para

explicar el proceso total. Cada actividad es administrada como una

transformación de entradas en salidas, tomando control sobre las

restricciones y mecanismos o factores de producción consumidos por la

actividad. Para ello se tiene 2 tipos de diagramas que se subdividen en:

• MODELO AS-IS (como es)

• MODELO TO-BE (va a ser).

• Modelo AS-IS (como es). Es aquel que va a graficar, cómo los

procesos de negocio se encuentran desempeñándose en la

actualizada, explicando en forma encapsulada la descripción de

procesos y subprocesos. Es como sacar una radiografía del

proceso.

• Modelo TO-BE (va a ser). Permite graficar como va a ser el

sistema; después de haber sido analizado, hay que considerar

dos cosas importantes: si el sistema será de transición o de

transformación, para este segundo caso se deberá aplicar los

principios de reingeniería para posteriormente graficar el sistema

propuesto.

Esquema de análisis y diseño de sistemas

Organigrama: determinar la unidad orgánica de estudio, unidades

relacionadas y límites.

Punto de partida

Para empezar el proceso de descomposición se tiene que basar en la

estructura organizacional de la empresa, la que nos dará una idea de

cuáles son las unidades organizacionales a estudiar y cuáles son las

Page 43: Gestion informatica i

43

relacionadas, para nuestro caso estudiaremos la Empresa de

Transportes UNIDOS S.A., quien tiene la siguiente estructura.

De hecho que al pasar a construir el árbol de nodos se debe haber

interpretado, los procesos de las unidades orgánicas en mención.

Árbol De Nodos

El árbol de nodos es un esquema que grafica de qué manera se están

desarrollando las actividades del proceso. Estudiado en forma de rama,

para que usted tenga facilidades en la construcción de estas, tendrá

que tener práctica de abstracción de procesos.

Ejemplo de árbol de nodos de la empresa de transporte

GERENCIA

Áreas de Estudio

DEPARTAMENTO

GIROS/ENCOMIENDAS

DEPARTAMENTO

CONTROL DE

UNIDADES

DEPARTAMENTO

PASAJES

Emp. Transportes Unidos (AO)

Sub-Sistema de

Pasajes (A1)

Sub-Sistema de

Giros/Encomiendas (A2)

(A.1.1)

Registrar

Viaje

(A.1.2)

Atención

de Pasajes

(A.1.3)

Preparar

Liq. Diaria

(A.2.1)

Recepcionar

Giros/Encom

(A.2.2)

Entregar

Giros/Encom

Page 44: Gestion informatica i

44

Diagrama de Descomposición Funcional

Es un diagrama que cumple el mismo objetivo que el árbol de nodos,

con la diferencia que aquí se plasma hasta el mínimo nivel de

abstracción estudiado.

EMPRESA DE TRANSPORTES UNIDOS S.A.

SUB-SISTEMA DE VIAJES

Registrar Viaje

Atención de Pasajes

Preparar Liquidación Diaria

SUB-SISTEMA DE GIROS/ENCOMIENDAS

Recepcionar Giros/Encomiendas

Consultar Flete

Crear Boleta

Elaborar Lista Giros/Encomiendas

Elaborar Informe de Ingresos

Entregar Giros/Encomiendas

Registrar Giros/Encomiendas

Buscar Datos de Destinatario

Page 45: Gestion informatica i

45

Diagrama IDEF – Nivel 0 (Diagrama de Contexto)

Page 46: Gestion informatica i

46

Page 47: Gestion informatica i

47

ANALISIS

DIAGRAMA DE CASOS DE USO

OBJETIVOS GENERALES

- Determinar los requisitos funcionales de un sistema en estudio

documentando el comportamiento del mismo desde el punto de

vista del usuario.

OBJETIVOS ESPECIFICOS

- Determinar los requisitos previos en base a encuestas,

entrevistas para determinar los requerimientos del usuario.

- Planificar la iteración de desarrollo del sistema en estudio.

- Validar el sistema.

INTRODUCCIÓN

Cuando obtenemos los requerimientos de un nuevo sistema,

necesitamos una forma de documentar dichos requerimientos y aun

mas, debido a que el sistema debe cumplirlos, el desarrollo del sistema

debe girar en tomo a ellos. Durante mucho tiempo, tanto en el

desarrollo de Sistemas tradicionales como en los primeros desarrollos

orientados a objeto, los desarrolladores de software se ayudaban de los

escenarios para comprender los requerimientos de un sistema, pero sin

documentarlos debidamente y más bien se llevaba a cabo de manera

informal.

Ivar Jacobson se da cuenta de este detalle y le dio la importancia que

merece. Hacia 1994 propuso los Casos de Uso (Use Cases) como una

técnica formal para capturar requerimientos, que luego se constituyo

Page 48: Gestion informatica i

48

en un elemento fundamental en la elaboración de requerimientos y Ia

planificación de proyectos. Los Casos de Uso son considerados por

muchos especialistas como una excelente forma de especifica el

comportamiento externo de un sistema, esto es su comportamiento con

el mundo real.

Diagramas de Casos de Uso

Un Diagrama de Casos de Uso representa lo que hace el sistema y

como se relaciona con su entorno, representa los distintos

requerimientos que le hacen los usuarios al sistema, especificando las

características de funcionalidad y comportamiento durante su

interacción con los usuarios u otros sistemas. A dichas funcionalidades

se le conocen como Casos de Uso propiamente dichos, mientras que a

los que provocan su ejecución se les conoce como Actores. Los Casos

de Uso y Actores interactúan produciendo Relaciones.

Debemos hacer notar que los Diagramas de Casos de Uso se basan

en la idea de que la mejor manera de comprender un sistema es

mediante su descomposición funcional, independientemente de los

objetos participantes. En ese sentido los Diagramas de Casos de Uso

se acerca más al análisis estructurado y poco tienen que ver con

entender cómo un conjunto de objetos interactúan. De lo anterior

deducimos que los Casos de Uso son independientes del paradigma de

construcción de software y por lo tanto del lenguaje de programación,

pudiendo utilizarse como punto de partida para diseñar un sistema con

un enfoque estructurado o un sistema con un enfoque orientado a

objetos. Esto le da mayor flexibilidad y es sin duda una de las razones

fundamentales para su amplia aceptación.

Casos de Uso

Un Caso de Uso (Use Case) es una secuencia de acciones

realizadas por el sistema que producen un resultado

observable y valioso para alguien en particular. Todo sistema

Page 49: Gestion informatica i

49

ofrece a sus usuarios una serie de servicios. Un caso de uso es

justamente una forma de representar como alguien (persona u

otro sistema) usa nuestro sistema.

El Caso de Uso al dar una respuesta a un evento que inicia un

agente externo (llamado actor), debe ser desarrollado en

función a lo que los usuarios necesitan. Un caso de uso es

pues en esencia una interacción típica entre el usuario y el

sistema, aunque un caso de uso también puede ser invocado por

otro caso de uso.

La idea fundamental en los Casos de Uso es definir los

requerimientos desde el punto de vista de quien usa el sistema y

no de quien lo construye. De esta manera, nos aseguramos que

los Casos de

Uso permita conocer los requerimientos del usuario para poder

construir el software y denotan una operación completa

desarrollada por el sistema. Debemos mencionar que se puede

aplicar la técnica de los Casos de Uso a todo el sistema, a partes

del sistema incluyendo a sus subsistemas, o a un elemento

individual como pueden ser las clases e interfaces.

Representación gráfica de los Casos de Uso

Los casos de uso se representan mediante elipses en cuyo interior

se encuentra su nombre.

Representación gráfica de un caso de uso

Nombre

Page 50: Gestion informatica i

50

Nomenclatura de los casos de Uso

Los casos de uso son acciones que debe realizar el sistema, es

por ello que debe nombrárseles mediante un verbo seguido

por el principal objeto que es afectado por la acción. A

veces es conveniente utilizar un prefijo delante del nombre de

caso de uso, el cual debe indicar el paquete en el que se ubica

(un paquete es un elemento para agrupar a otros), este nombre

es llamado path name, mientras que si solo se muestra el

nombre del caso de uso se le llamará simple name.

Ejemplos de casos de uso con simple name son: colocar

orden, validar usuario, etc., y de casos de uso con path name

serán ventas::ingresar pedido, almacén::despachar

producto, etc., donde ventas y almacén son los nombre dados

a los paquetes que agrupan a los casos de uso ingresar pedido

y despachar producto respectivamente.

Representación gráfica de un actor

Los actores se representan mediante "hombres de palo" (stick

man) tal como se muestra más adelante. Usted puede utilizar los

mecanismos de extensión previstos en el UML para estereotipar

un Actor proveyendo un icono diferente que pueda ofrecer mejor

visibilidad para su propósito. Por ejemplo puede representar un

Actor mediante un rectángulo con el estereotipo «actor».

Recuerde que un actor también es un clasificador y por lo tanto

puede representarse como una clase. Cada tipo actor tiene un

conjunto de especificaciones idénticas a la especificación de una

clase esto es un conjunto de compartimentos, pero con el campo

adicional del estereotipo «actor».

Page 51: Gestion informatica i

51

Cuando el Actor resulta ser un Sistema se suele representar

mediante una computadora, para resaltar este hecho.

Posibles representaciones de un Actor. El "hombre de palo" es la

más utilizada. La última representación es utilizada solo cuando

se trata de sistemas.

Nomenclatura de un Actor

Ya que para cada caso de uso, pueden existir diversos Actores a

cada uno de ellos se le tiene que asignar un nombre. El nombre

del Actor se escribe debajo del icono que representa a dicho

Actor.

Relaciones en los diagramas de casos de uso

Un diagrama de casos de uso muestra las relaciones entre los

Actores y los Casos de Uso dentro de un sistema. Estas relaciones

pueden ser de los siguientes tipos:

Relaciones de asociación entre actores y casos de uso.

Relaciones de generalización entre actores.

Relaciones de generalización entre casos de uso.

Relaciones incluye (include) entre casos de uso.

Relaciones extiende (extend) entre casos de uso.

Estas relaciones son fuente de confusión así que preste especial

atención a su explicación. ,

En los Diagramas de Casos de Uso, una Relación de

Asociación representa la participación de un Actor en un Caso

de Uso.

<<actor>>

Page 52: Gestion informatica i

52

Es la más general de las relaciones y la relación semántica más

débil, siempre parte de los actores y viajan en una sola dirección.

A esta relación también se le conoce como relación de

comunicación y suele estereotiparse como <<comunicates>>

aunque esto no es indispensable pues es la única posible entre un

actor y un caso de uso.

Representación gráfica de una asociación

Se representa mediante una línea sólida; como siempre parten de

los Actores hacia los Casos de Uso no necesita colocarse una

cabeza de flecha que indique la dirección.

Relación <<include>>

Al desarrollar un Diagrama de Casos de Uso a menudo nos

encontramos con casos de uso que son incluidos como parte de

otro u otros Casos de Uso, y es que algunos casos de uso pueden

compartir un comportamiento común. Este comportamiento

común es “factorizado” en versiones de casos de uso

especializados.

Una Relación «include» entre casos de uso significa que el caso

de uso base incorpora explícitamente el comportamiento de otro

caso de uso. El caso de uso base siempre utiliza al caso de uso

incluido. El objetivo de la relación «include» es permitir invocar

el mismo comportamiento muchas veces, colocando el

comportamiento común en un caso de uso que puede ser

invocado por otro u otros casos de uso.

De manera general una relación «include», es una relación de

dependencia, puesto que su ejecución depende siempre del caso

de uso; base, pues es este el que invoca. El caso de uso

incluide no puede ejecutarse sin el caso de uso que lo

incluye.

Page 53: Gestion informatica i

53

La relación «include» es también un ejemplo de delegación,

pues tomamos un grupo de responsabilidades del sistema y los

ubicamos en un lugar (el caso de uso incluido), el cual es

"invocado" por otro caso de uso cuando necesitamos usar esa

funcionalidad.

Observe que la utilización de la relación «include», esta más

ligada al concepto de descomposición funcional (muy común en

los modelos estructurados) que a los conceptos orientados a

objetos. Esto es así, porque los casos de uso solamente nos

sirven para averiguar lo que el usuario necesita del sistema y

no cómo lo hace. Cuando necesitemos conocer más detalles

acerca del caso de uso recurrimos a otros tipos di diagramas que

estén más relacionados con el enfoque orientado a objetos.

Representación gráfica de una relación «include»

Se representa mediante una línea discontinua con una cabeza de

flecha abierta, desde el case de uso base hacia el caso de uso

incluido. La dirección de la flecha significa que "el caso de uso

base incluye al caso de uso incluido".

Nomenclatura de una relación «include»

La flecha es nombrada con la palabra clave «include» y no es

necesario colocarle algún otro nombre.

Casos Típicos

Una Relación «Include» desde una Caso de Uso A hacia

un Caso de Uso B, indica que una instancia de A debe

también incluir el comportamiento especificado por B.

«include»

Representación de una Relación include

Page 54: Gestion informatica i

54

El comportamiento es incluido junto a la ubicación en la

cual está definida A. Esto significa que cada vez que se

utilice el caso de uso A, siempre se utilizará el caso de uso

B.

Es posible que el caso de uso B, pueda ser invocado por

varios casos de uso, tal como se muestra en el diagrama

adjunto. Esto nos indica que B, es un comportamiento

común a A y C, que ha sido "factorizado" para evitar

definirlo nuevamente, permitiendo su reutilización.

Relación «Extend»

Una relación «extend» entre casos de uso significa que se

ejecuta el caso de uso base pero, bajo ciertas condiciones,

este caso de uso llama a otro caso de uso que extiende el

comportamiento del primero. Esto significa que el caso de

caso de uso base implícitamente incorpora el comportamiento de

otro caso de uso.

Se debe utilizar para modelar la parte del caso de uso que tiene

un comportamiento opcional, así podemos separar el

comportamiento que siempre ocurrirá del comportamiento que

ocurrirá bajo ciertas condiciones.

Para encontrar las relaciones «extend», debemos observar los

casos de uso similares, pero que contengan alguna diferencia en

cómo realizan las operaciones y qué casos de uso redefinen la

A

B «include»

C

«include»

A

B «include»

Page 55: Gestion informatica i

55

forma de realizar éstas operaciones dentro de otro caso de uso.

Se debe pensar en la conducta normal en un caso y la

conducta inusual en otro caso, unidos por la relación

«extend».

De manera general una relación «extend», es también una

relación de dependencia, puesto que el caso de uso extendido

entra en acción dependiendo de las condiciones que se den al

efectuarse el case de uso base. Recuerde que el caso de uso

extendido, sólo se utilizará bajo ciertas condiciones.

Representación gráfica de una relación «extend»

Se representa mediante una línea discontinua con una cabeza de

flecha abierta, desde el use case extendido hacia el use case

base. La dirección de la relación significa que el caso de uso

extendido extiende al caso de uso base".

Nomenclatura de una relación «extend»

La flecha es nombrada con el estereotipo «extend». La condición

de la extensión es opcionalmente presentada después de la

palabra clave.

Casos típicos

Una relación «extend» desde un Caso de Uso A hacia

un Caso de Uso B indica que una instancia de B puede ser

extendida por el comportamiento especificado por A. El

caso de uso A, será ejecutado cuando al ser ejecutado B, se

den las condiciones que activen a A.

«extend»

Representación de una Relación extend

Page 56: Gestion informatica i

56

Esta relación está sujeta a las condiciones especificadas en

la extensión. El comportamiento es insertado en la

ubicación definida en el punto de extensión de B, el cual

es referenciado por la relación «extend».

Puntos de extensión en un caso de uso

Una forma de extender la especificación de un caso de uso dentro

de la misma elipse que lo representa mediante una cabecera

denominada Extensión Point. Un caso de uso puede tener más

de un punto de extensión. Dentro de las elipses también se puede

mostrar cornpartimientos presentando atributos, operaciones y

por supuesto puntos de extensión. La descripción de la extensión

normalmente se realizan en texto ordinario, pero también se

puede especificar en otras formas, como un diagrama de estados,

o mediante pre o postcondiciones.

El diagrama adjunto muestra la representación de un caso de uso

extendido y la especificación de las condiciones para que el caso

de uso base sea extendida.

A

B «extend»

Descripción de la Condición

Caso de uso base

Extension points

Descripción de

cuando se

extiende el caso

Caso de

uso

extendido

«extend»

Page 57: Gestion informatica i

57

Cuándo usar «include» y «extend»

Ambos tipos de relación implican la factorización de

comportamientos comunes de varios casos de uso; sin embargo,

en la relación «include» se trata de factorizar

comportamiento comunes para no repetir la definición y los

casos de uso factorizados pueden ser utilizados por otros casos

de uso; mientras que en la relación «extend» se tienen en

cuenta los factores variantes, esto es casos que ocurren bajo

ciertas circunstancias, poniendo este comportamiento en otro

caso de uso extendiendo al caso base. Se debe organizar los

casos de uso extrayendo el comportamiento común mediante

relaciones «include» y distinguiendo las variaciones mediante

relaciones «extend», con el objetivo de crear un simple,

balanceado y comprensible conjunto de casos de uso para su

sistema.

En la relación «extend» los Actores siguen "conectados" con

los casos de uso extendidos. En la relación «include», es el

caso de uso base el que se "conecta" con el caso de uso incluido

al invocarlo.

Sugerencia:

Utilice «extend» cuando describa una variación de la conducta

normal.

Utilice «include» cuando un caso de uso siempre es usado por

otro ü otros casos de uso y desee evitar repeticiones.

Representación gráfica de los diagramas de casos de uso

Un diagrama de casos de uso muestra el conjunto de actores

externos y los casos de uso del sistema en los cuales esos actores

participan. Los diagramas de casos de uso, contienen iconos

representando actores, casos de uso, asociaciones,

relaciones de generalización, include o extend, y

Page 58: Gestion informatica i

58

posiblemente elementos de notación (notas o comentarios) y

de agrupación (paquetes). Usted puede crear un nivel superior

de diagrama de casos de uso para visualizar el contexto de un

sistema y el limite del comportamiento del sistema, o crear uno o

más diagramas de casos de uso para describir una parte del

sistema, los casos de uso pueden pues, incluir otros casos de uso

y parte de su comportamiento.

Una especificación de casos de uso permite mostrar y modificar

las propiedades de un caso de uso. Los casos de uso mostrados

en un diagrama de casos de uso se pueden opcionalmente

encerrar dentro de un rectángulo que representa los límites del

sistema.

Documentación de los diagramas de casos de uso

Un diagrama de caso de uso describe lo que hace el sistema,

pero no describe cómo lo hace, al construir los diagramas de

casos de uso se debe tener bien en claro esta separación.

El comportamiento de un caso de uso, puede ser descrito de

muchas maneras dependiendo de la conveniencia, a veces

podemos usar pseudocódigo; sin embargo, comúnmente un caso

<<extend>>

<<include>>

Nombre del Caso de Uso

Page 59: Gestion informatica i

59

de uso se documenta de manera informal mediante una lista de

pasos que sigue el Actor durante su interacción con el sistema. A

esta lista se le denomina Flujo de Eventos (Flow of Events).

En muchas ocasiones no existe una única vía de ejecución de los

casos de uso pues hay alternativas, aparecen errores o

excepciones. Por ejemplo cuando se desea comprar un producto

que no existe o esta descontinuado, o tal vez cuando el

comprador desea pagar con tarjeta de crédito, efectivo o cheque.

Estas desviaciones al curso normal de los casos de uso se

denominan alternativas, las cuales cuentan con algunas

características que no permiten definirlas como casos de uso,

tales como:

o Representan un error o excepción en el curso normal del caso

de uso.

o No tienen sentido por si mismas fuera del contexto del caso

de uso en el que ocurren.

Una forma de describir el flujo de eventos, es mediante el

siguiente cuadro.

Flujo de Eventos del Caso de Uso:

Actor:

Curso Normal: Alternativas:

Un caso de uso se documenta generalmente con texto informal,

por lo tanto si tenemos que especificar formalmente un

algoritmo, los casos de uso no son los más adecuados, en su

tugar, debemos usar los diagramas de actividad, el moderno

Page 60: Gestion informatica i

60

heredero de los diagramas de flujo. También podemos utilizar

los diagramas de colaboración y los diagramas de estado.

Dado que los casos de uso son un elemento poderoso durante la

etapa de requerimientos, esto es qué es lo que hace o debe

hacer el sistema, debe tener siempre presente que durante esta

etapa no debería indicar cómo lo hace, para que el análisis no

sea influenciado por la implementación.

Documentación de un caso de uso con la relación

«include»

Para especificar la ubicación en el Flujo de Eventos en el

cual el caso de uso incluye el comportamiento de otro,

usted simplemente debe escribir include seguido del

nombre del caso de uso a incluir, tal como se muestra.

Flujo de Eventos del Caso de Uso:

Actor:

Curso Normal: Alternativas:

……

Include (......)

……

……

Dentro del paréntesis deberá escribir el nombre del caso de

uso a incluir, el cual será documentado con un Flujo de

Eventos propio en una tabla adicional.

Documentación de un caso de uso con relación

Page 61: Gestion informatica i

61

«extend»

Para documentar el Flujo de Eventos de un caso de uso

que contiene una relación extend, se puede hacer tal

como se muestra:

Flujo de Eventos del Caso de

uso:

Actor:

Curso Normal: Alternativas:

……

(punto de extensión) Si condición entonces

extend(...)

……

……

Debe indicar el punto de extensión tal como se muestra,

mientras que dentro del paréntesis que sigue a extend,

deberá escribir el nombre del caso de uso que extiende la

conducta del caso de uso base. El caso de uso extendido

será documentado con un Flujo de Eventos propio en una

tabla adicional.

Paquetes de casos de uso

Podemos organizar los casos de uso agrupándolos en paquetes de la

misma manera que organizamos otros elementos (como las clases),

pues no es conveniente, atiborrar el diagrama con demasiados casos de

uso, solo debe mostrar la cantidad que el usuario pueda distinguir

rápidamente, recuerde la regla 7+2 clásica de los Diagramas de Flujo

de Datos, la cual nos dice que el hombre puede distinguir desde 5

hasta 9 elementos en cualquier diagrama, esto por supuesto, no debe

Page 62: Gestion informatica i

62

ser tomado al pie de la letra; sin embargo, no conviene colocar muchos

casos de uso en un mismo diagrama.

Cómo construir los diagramas de caso de uso

Los casos de uso se obtienen hablando con los usuarios y

analizando sus necesidades. Debemos centrarnos primero en los

objetivos de usuario y luego ver que casos de uso los pueden

cumplir. Se recomienda identificar primero a los actores, luego

los casos de uso y finalmente sus relaciones, retinándolas luego

como include, extend, o como de generalización, para

finalmente describir el flujo de eventos de cada caso de uso.

Cómo encontrar los Actores

Para encontrar los actores, debemos realizar los siguientes pasos:

Identificar los usuarios del sistema.

Identificar los roles que realizan estos usuarios desde el

punto de vista del sistema.

Identificar otros sistemas con los cuales exista

comunicación.

Cómo encontrar los casos de uso

Para encontrar los casos de uso, debemos hacernos las siguientes

preguntas:

Cuáles son las principales tareas de un actor.

Que información tiene el actor que consultar, actualizar,

modificar y cómo.

Que cambios del exterior deben, informar los actores

a nuestro sistema.

Qué información debe dar el sistema al actor:

Piense en los eventos ante los cuales el actor debe

reaccionar.

Page 63: Gestion informatica i

63

Cómo encontrar las relaciones entre actores y casos de uso

Identifique los casos de uso en los cuales se ve implicado un

actor y luego establezca las relaciones entre ellos, este paso debe

ser refinado para encontrar relaciones de generalización, include

y extend.

Describir el flujo de eventos

Debemos describir cada caso de uso, mediante su flujo de

eventos. Recuerde que hay más de una manera de llevar a cabo

un caso de uso, esto es un caso de uso puede tener muchas

realizaciones. Una realización es cada uno de los posibles

modelos que podemos tener para representar los casos de uso.

En muchas ocasiones es conveniente incluir un diccionario con los

términos del dominio del problema, para evitar confusiones

acerca del significado de los términos empleados.

Para sistemas grandes es aconsejable describir el por qué se

desecho una realización para evitar discusiones futuras durante

la revisión de los casos de uso.

EJEMPLOS CASOS DE USO

Ejemplo 3.1:

En un procesador de textos, ¿qué caso de uso sería más adecuado

modelar?

a) Dar estilo al párrafo

b) Dar formato al documento.

Solución:

Dado que el verdadero objetivo para el usuario se cumple cuando

se da formato a! documento, este debería ser e! caso de uso

recomendado. Tal vez cuando se profundice en su detalle sea necesario

Page 64: Gestion informatica i

64

especificar luego dar estilo al párrafo. Cuando creamos los casos de

uso es mejor centrarnos en los objetivos de usuario más que en la

interacción del usuario con el sistema.

Ejemplo 3.2:

Considere un procesador de palabras. Indique 5 casos de uso típicos y

represéntelos gráficamente.

Solución:

Podemos mencionar los siguientes: crear índice, imprimir documento,

elaborar vista previa, formatear documento, configurar página, entre

muchos otros posibles.

Algunos casos de uso de un procesador de texto

En cada caso de uso se observa que realiza una función visible para el

usuario, cumplen un objetivo puntual, y además puede ser simple o

complejo.

Ejemplo 3.3.

Identifique los Actores en un Sistema de Ventas de un Supermercado.

Solución:

Los compradores, vendedores y cajeros serán actores.

Comprador Vendedor Cajero

Formatear

Documento Configurar

Página

Imprimir

Documento

Elaborar

Vista Previa Crear Índice

Page 65: Gestion informatica i

65

Ejemplo 3.4:

Suponga que usted es Empleado de un Banco y al mismo tiempo

tuviera una cuenta en dicho Banco. Identifique los actores y diga qué

Actor es usted.

Solución:

Aquí una misma persona puede ser Empleado y Cliente del Banco; así,

podemos observar al menos dos Actores: Empleado y Cliente, usted

será ambos pero dependerá del rol que asuma en un determinado

momento, a veces se comportará como Empleado y otras como

Cliente. Recuerde que un Actor tiene un único rol para cada caso

de uso que se comunica con él, pero un mismo usuario puede jugar

el rol de diferentes Actores.

Ejemplo 3.5:

Si se sabe que un Sistema de Venías provee información al Sistema

Contable, ¿cuál es el Actor y cuál el Sistema?

Solución:

En realidad depende de lo que nos interese modelar en un determinado

momento Si deseamos modelar el Sistema Contable entonces el

Sistema de Ventas será un Actor; mientras que si deseamos modelar

el Sistema de Ventas entonces el Sistema Contable será un Actor.

En ambos casos el actor puede representarse mediante un hombre de

palo mediante el estereotipo de una computadora que representa

un sistema en si, o estereotipada como una Clase, tal como se

muestra en los diagramas adjuntos. Observe que un Actor no

Page 66: Gestion informatica i

66

necesariamente debe ser un humano, siendo en este ejemplo un

sistema externo al que modelamos.

Ejemplo 3.6:

En una empresa de servicio público se identifica el caso de uso "enviar

factura". ¿Cuál es la implementación que usted escogería y porqué?

Solución:

El Actor debe ser quien obtenga un valor del caso de uso, en

nuestro ejemplo el Departamento de Facturación será el interesado

puesto que el Cliente no se molestaría si no le llega la factura. Por lo

tanto se escoge la implementación B.

Cliente

Enviar

Factura

A

Dpto. de

Facturación

Enviar

Factura

B

Page 67: Gestion informatica i

67

Ejemplo 3.7:

En una empresa comercial, el Supervisor de Ventas realiza las

funciones de cualquier Vendedor pero además supervisa a otros

vendedores. Muestre los actores y la relación entre ellos.

Solución:

Este es un ejemplo de generalización entre actores. Según el enunciado

el Supervisor de Ventas tiene todo el comportamiento del Vendedor

pero hace algo más, por lo tanto se da una Relación de

Generalización entre ambos, la cual se muestre en la figura adjunta.

Note que el hijo puede remplazar eventualmente al padre.

Ejemplo 3.8:

En un Banco se necesita verificar la identidad de una persona. El caso

general es Validar Usuario, pero esto se puede realizar de diferentes

maneras: comprobando el password, comprobando la huella digital o

tal vez comprobando la retina, todos verifican la identidad pero de

diferentes maneras. Muestre la relación entre estos casos de uso.

Solución:

En este ejemplo se trata de una relación de generalización entre casos

de uso.

Page 68: Gestion informatica i

68

Validar usuario es el caso de uso general el cual es especializado por

cualquiera de los tres casos de uso mostrados. Debe tener en cuenta

que comprobar retina, comprobar huella o comprobar password,

son formas distintas de validar usuario. No se podría validar usuario

a menos que se ejecute cualquiera de sus formas. Cuando se tiene una

relación de generalización entre casos de uso solo se producirá una de

sus formas.

Ejemplos 3.9:

Una compañía desea vender un activo al crédito. Para ello se debe

analizar el riesgo asociado con el cliente y negociar el precio. En ambos

casos se requiere valorar el activo. Muestre los casos de uso.

Solución:

Se tiene tres casos de uso: Analizar Riesgo, Negociar Precio y

Valorar Activo. Cuando analizamos el riesgo de vender el activo a

un cliente, se debe tomar en cuenta, entre otros factores, el costo del

activo (valorar e activo), por lo tanto Analizar Riesgo incluirá

Valorar Activo.

Cuando negociamos el precio también se necesita conocer i valor del

activo, esto es Negociar Precio incluirá Valorar Activo.

Como podemos observar tanto para analizar el riesgo como para

negociar precio se incluirá Valorar Activo por lo tanto los tres casos

de uso se pueden representar tal como se muestra en el siguiente

diagrama

Vender Activo

Page 69: Gestion informatica i

69

Note como la relación «include» permite la reutilización de caso de

uso; esto es Valorar Activo se define una sola vez, pero puede ser

utilizado por varios casos de uso, además el caso de uso incluido usa

de todas maneras.

Ejemplo 3.10:

Un sistema típico de ventas puede tener los siguientes casos de uso.

Colocar orden, Preguntar por estado de Orden (para que el cliente

sepa en qué situación se encuentra la misma) y Enviar Orden

(debemos comprobar que el cliente sea quien reciba la orden). Para

cualquiera de los casos de uso indicados, se hace necesario Validar

Cliente, mientras que para Enviar Orden se podrá Enviar Orden -

Parcial, cuando no se puede atender el pedido completo. Muestre estos

casos de uso y las relaciones entre ellos.

Solución:

El siguiente diagrama muestra las condiciones planteadas en el

enunciado.

Observe como un mismo caso de uso (Enviar Orden) puede tener al

mismo tiempo relaciones «include» y «extend». Recuerde la relación

«include» siempre es incluida en el caso de uso base, mientras

que la relación «extend»; ocurre cuando se da una condición para

extender el caso de uso base.

Page 70: Gestion informatica i

70

Ejemplo 3.11:

Un caso de uso para un sistema de ventas de un centro comercial, será

realizar cobranza. Sin embargo, existen muchas formas de Realizar;

Cobranza, entre ellas realizar cobranza en efectivo, realizar

cobranza con tarjeta de crédito y realizar cobranza con cheque.

Cada una de estas formas de realizar cobranza es un caso especializado

del caso de uso más general. Muestre los casos de uso involucrados y

sus relaciones.

Solución:

Dado que son cada una de las formas particulares de realizar cobranza

se trata de una relación de generalización, tal como se muestra en

el diagrama adjunto. Al realizar cobranza necesariamente se

efectuará una cualquiera de las tres formas.

Una de las alternativas de implementación analizadas, es tratar 3 los

casos de uso del enunciado como relaciones extend, sin embargo

nosotros preferimos la implementación anterior, pues el caso descrito

se ajusta mas al concepto de generalización. Podemos pensar acerca

Realizar

Cobranza

Cobranza con

Cheque

Cobranza en

Efectivo

Cobranza con

Tarjeta de Crédito

Page 71: Gestion informatica i

71

del por qué no es muy conveniente modelar los casos de uso para este

ejemplo tal como se muestra en el siguiente diagrama.

Ejemplo 3.12:

Existe una diferencia entre escenarios y casos de uso: los casos de

uso muestran los diversos escenarios que pueden ocurrir. Por

ejemplo en un sistema de ventas se pueden presentar dos escenarios:

Que se reciba una orden de compra y que no existan artículos.

Que se reciba una orden de compra y que el crédito sea

rechazado.

Muestre los distintos escenarios para este sistema, utilizando un

diagrama de casos de uso.

Solución:

Un escenario es una secuencia específica de acciones que ilustran un

comportamiento particular de un caso de uso. En otras palabras los

escenarios son los caminos alternativos que puede seguir él flujo de

eventos de un caso de uso. Los escenarios son a los casos de uso lo

que las instancias son a las clases. Esto significa que un escenario es

básicamente una instancia de un caso de uso.

Realizar Cobranza

Punto de Extensión:

Cuando Cliente Paga

Cobrar en

Efectivo

Cobrar con

Tarjeta de

Crédito

Cobrar con

Cheque

<<extend>>

Si efectivo

<<extend>>

Si tarjeta

<<extend>>

Si cheque

Page 72: Gestion informatica i

72

Los escenarios de un caso de uso pueden representarse en un mismo

diagrama, tal como se muestra.

Observe como un mismo caso de uso puede tener dos o más puntos de

extensión.

Ejemplo 3.13: -

Modele el comportamiento de un teléfono celular que cuenta con las

siguientes características:

Colocar llamadas. Esto incluye llamadas multiusuarios mediante

el servicio de llamadas conferencia.

Recibir llamadas. Considere que puede recibir una segunda

llamada se encuentra ocupado.

El teléfono cuenta con una agenda telefónica.

Solución:

El siguiente diagrama de casos de uso muestra el comportamiento del

teléfono celular. Observe como se ha modelado la Red Celular como

un actor que participa junto con el Cliente en colocar y recibir llamada.

Cliente

Page 73: Gestion informatica i

73

En este diagrama no se indican los puntos de extensión y su

condiciones con el fin de hacerlo más claro y; además, porqué en este

caso particular, no son del todo indispensables.

Ejemplo 3.14:

Se tiene un sistema de pedidos por teléfono. El Cliente realiza una

llamada comunicándose con el vendedor, el cual verifica su identidad.

Posteriormente, el cliente coloca un pedido de compra con el vendedor.

Dado su naturaleza de venta al crédito, este pedido debe ser aprobado

por el supervisor, el cual también puede actuar como vendedor. Si no

existe inconveniente el despachador, programa la entrega. Construya

un diagrama de casos de uso que represente este proceso.

Solución:

El diagrama del caso de uso Pedidos Telefónicos, muestra las

condiciones dadas por el enunciado.

En el diagrama anterior observe la presencia de la relación de

generalización entre el supervisor y el vendedor.

Ejemplo 3.15:

Se tiene una máquina lavadora de botellas, tarros y bidones. Muestre

los siguientes requerimientos mediante un diagrama de casos de uso.

El cliente deposita los ítems y automáticamente se le entrega un vale.

Page 74: Gestion informatica i

74

El cliente puede imprimir en cualquier momento un recibo que indique

el ítem depositado y la cantidad.

El operador presiona el botón de comienzo para iniciar el lavado.

El operador desea saber cuántos ítems han sido procesados en el día.

Al final de cada día el operador solicita un resumen de todo lo

depositado en el día.

El operador debe además poder cambiar la información asociada a los

ítems y dar una alarma en caso de eventualidad.

Solución:

A continuación se describe la construcción del diagrama de casos de

uso paso a paso.

Paso 1: Los Actores

Como una primera aprobación identificamos a los actores que

interactúan con el sistema: el Cliente y el Operador.

Paso 2: Relaciones de Asociación

Luego tenemos que un Cliente puede Depositar ítems e imprimir su

vale, y un Operador puede cambiar la información de un Item, iniciar el

lavado, sonar la alarma, imprimir el vale para el cliente o generar un

reporte diario.

Paso 3: Relaciones de Generalización

La máquina lavadora debe saber lavar para tres tipos de ítems: lavar

botellas, lavar tarros o lavar bidones.

Paso 4: Relaciones include

Siempre que el cliente deposite items se imprimirá un vale. El operador

al final del día genera un reporte el cual siempre debe ser impreso.

Paso 5: Relacíones-extend

Cuando se esta lavando el Ítem, y éste atora se genera, una alarma.

También se genera una alarma cuando estamos imprimiendo y falta

papel.

Page 75: Gestion informatica i

75

Paso 6: Juntando las piezas

Entonces, el diagrama de casos de uso completo es:

Cliente Operador

Page 76: Gestion informatica i

76

Page 77: Gestion informatica i

77

DISEÑO

DIAGRAMA DE SECUENCIA, COLABORACIÓN, ESTADO Y

ACTIVIDADES

OBJETIVOS GENERALES

- Ilustrar la interacción entre objetos y el orden secuencial en el

que ocurren determinando la comunicación entre los objetos

- Mostrar las interacciones organizadas alrededor de los roles.

- Establecer la secuencialización entre los modelos e integrar la

información con nuestros sistemas.

DIAGRAMA DE SECUENCIA

Concepto.- Los Diagramas de Secuencia permiten graficar los

mensajes que interactúan los objetos para un determinado flujo de una

tarea. Generalmente son utilizados para explicar la secuencia de pasos

que están comprendidos en un caso de uso.

No siempre son usados para la descripción de un caso de uso, se

pueden usar de forma independiente para ir recogiendo la descripción

aislada de los procesos; para después juntar las partes que simulan

armar el rompecabezas, que para nuestro caso sería el modelo.

Nota: Usaremos un ejemplo, ingerir gaseosa por una persona.

Simbología:

Para graficar un diagrama de secuencia, se coloca en la parte superior

a los objetos que estarán involucrados en la secuencia, como por

ejemplo:

: Bebedor : Botella : Vaso

Page 78: Gestion informatica i

78

Los elementos mostrados, representan a las

instancias u objetos de un grupo, por ejemplo:

Julio y Pedro pertenecen a la clase bebedor, ellos

ingieren la gaseosa. Para representar a Pedro como

instancia de la clase, se representa de la siguiente forma.

Si queremos generalizar, se podría usar:

Tal como se definió en la parte superior.

Luego, se debe graficar la línea de vida para cada uno de los objetos:

Una vez que ya definimos la línea de vida, se debe listar los mensajes

que interactúan, para nuestro caso tenemos:

Coger

Vaciar líquido

Coger Vaso

Ingerir Líquido

Pedro : Bebedor

:Bebedor

: Bebedor : Botella : Vaso

Línea de Vida

Page 79: Gestion informatica i

79

Colocar los mensajes entre los objetos.

Tipos de Línea de Mensaje

Simple:

Representa al envío de un mensaje sencillo de un objeto a otro,

dentro de la secuencia

Síncrono:

Envío de mensaje de un objeto a otro, pero el objeto que envía el

mensaje espera la respuesta para seguir su flujo.

Asíncrono:

Envío de mensaje de un objeto a otro, no importando que el

objeto emisor tenga que esperar la respuesta para continuar su

flujo.

a:aa b:bb

a:aa b:bb

a:aa b:bb

:Bebedor

Coger

:Botella :Vaso

Vaciar Líquido

Coger Vaso

Levantar e Ingerir Líquido

Page 80: Gestion informatica i

80

Foco de Control

Es la barra que se ubica sobre la línea de vida de los objetos que

intervienen en la secuencia, donde representa al foco de control

para indicar e! desplazamiento en el tiempo.

Mensaje recursivo, cuando un mensaje recae sobre el mismo

objeto.

Simbología de creación de un objeto y en la parte final se elimina

o destruye.

Bifurcación de mensajes, se desencadena de acuerdo a la

evaluación del criterio o condición.

Inicio de tiempo

Fin de tiempo

a:aa

X

creat

e

a:aa

[ X >= 0 ]

[ X <= 0 ]

Page 81: Gestion informatica i

81

Iteración de mensajes, indica la forma cómo expresar la

repetición de un mensaje y la condición se coloca dentro de los

corchetes, anteponiendo un *.

Tiempos de transición, se coloca delante de cada mensaje, para

poder expresar los tiempos, cuando los mensajes son

concurrentes.

Visión del Diagrama de Secuencia

a:aa

[Para cada i]

b:bb

t1: Pedir ()

T2: Pedir ()

:a :b

Lapso de

Tiempo

Disposición de

los Objetos

Page 82: Gestion informatica i

82

Los diagramas de secuencia, manejan 2 dimensiones:

Verticalmente manejan el lapso en que transcurren las

actividades y Horizontalmente se expresan la disposición de los

objetos.

Casuísticas de Diagramas de secuencia.

Mensajes síncronos: El mensaje entre el Pasajero y Vendedora

se expresa como "Solicitar Pasaje", se tiene que dar como

requisito, para luego enviar el mensaje de registro de datos hacia

la hoja de viaje y luego enviar datos de viaje al objeto pasaje.

Mensaje Recursivo: El operador envía el mensaje de marcar

número y el operador tiene que hacer un mensaje recursivo con

la marca de cada uno de los dígitos.

:Operador :Teléfono

Marcar Dígito Marcar Número

:Pasajero

Solicitar Pasaje

:Vendedora :Hoja de Viaje :Pasaje

Registro de Datos Enviar Datos de Viaje

Recoger Pasaje

Page 83: Gestion informatica i

83

Iteración de Mensajes: El juez envía hasta 3 notificaciones al

implicado.

Bifurcación de Mensajes: El vendedor determina si el diento es

persona natural, le emite una boleta. Si el cliente es una persona

jurídica, le emite una factura.

:juez :implicado

[Envío de Notifica<= 3]

:Vendedora

[Cliente = Persona Natural] Emitir

:Boleta :Factura

[Cliente = Persona Jurídica] Emitir

:Usuario

Ingresa Login

:Interfaz acceso :Tabla

Ingresa

Consulta ()

[login y clave = ok] dar acceso

[login y clave = incorrecto] negar acceso

Page 84: Gestion informatica i

84

El usuario tendrá que ingresar el login y clave, para después

consultar a la tabla de registro de usuarios, el resultado de la

evaluación se desencadena, la acción de dar o negar acceso

según condición.

DIAGRAMA DE COLABORACIÓN

Definición: Los Diagramas de Colaboración van a mostrar la forma en

que los objetos colaboran para cumplir sus responsabilidades y tienen

la misma función que los diagramas de secuencia.

Entonces, se debe plantear algunas interrogantes: ¿Por qué el UML

necesita de otro diagrama para cumplir la misma función?, ¿no son lo

mismo?, la respuesta es que los dos van a representar interacciones,

con la diferencia que el diagrama de secuencia va a mostrar las

interacciones con la dimensión del tiempo, mientras que el diagrama de

colaboración va a mostrar interacciones de un contexto y organización

general de cómo los objetos interactúan desde el punto de vista del

espacio. Aquí podemos identificar en cada una de las asociaciones la

cantidad de mensajes que interactúan de ida y vuelta entre los objetos,

así como también del tiempo en que se desencadenan, porque cada

uno de los mensajes tiene un número que significa el orden en que

cumple su función.

Simbología

Las instancias de las clases se deben unir con una línea de asociación.

Para nuestro caso tenemos ai "radio escucha" que se asocia con el

receptor.

: Radioescucha : Receptor

Page 85: Gestion informatica i

85

Luego, se debe ir trabajando graficando los mensajes, siempre

numerados y con las flechas que toman la misma notación o

características de los diagramas de secuencia y se gráfica como sigue:

Se puede enviar varios mensajes de un objeto a otro.

Envío de mensajes a múltiples objetos

Representación de mensajes para devolver valor.

En este tipo de mensaje se expresa la forma cómo interactúan con

parámetros, y en ese mismo mensaje recoger la respuesta con una

variable contenida en el mensaje.

: Radioescucha : Receptor

1: Encender

2: Envío Señal

: Radioescucha : Receptor

1: Encender

2: Cambiar Emisora

3: Apagar

1: Sueldo=CalculoSueldo(idtrabajador) single

: trabajador : planilla

Page 86: Gestion informatica i

86

Ejemplos:

El ejemplo que presentamos, es la lectura de un libro por parte de un

lector que envía el mensaje de "abrir", para luego leer y extraer el

conocimiento que llegará al lector, luego interpretar párrafo y hacerlo

tantas veces para pasar a sacar resumen y enviar los resúmenes a la

instancia "hoja de resumen", para después enviar el mensaje de cerrar.

DIAGRAMA DE ESTADO

Definición.- Ningún objeto que se interrelaciona en un mundo real se

mantiene estático, un estado representa la característica del objeto en

el tiempo; ¿quién hace cambiar de estado a los objetos?, son los

sucesos o eventos. Por ejemplo, usted como objeto se encuentra

leyendo la presente publicación en su oficina, tiene el estado de

"leyendo'1, pero llega la hora de salida, esto implica que cambiará al

estado "caminando" para salir. Si tiene que viajar a su casa y posee

movilidad, se optará por e! estado de "conduciendo" y/o viajando";

pueden ser ambos estados, entonces aquí habrá estados simultáneos o

concurrentes.

1: Abrir

2: Leer

3: Cerrar

4: Conocimiento

: lector : libro

: Hoja Resumen

5: Resumen

Interpretar Párrafo

Page 87: Gestion informatica i

87

¿Qué es un Diagrama de Estados?

Tienen la visión de modificación de estados de los objetos en respuesta

a los sucesos en el tiempo. Generalmente un diagrama de estados

muestra las condiciones de un solo objeto.

Simbología

Estado

Se representa por un rectángulo de vértices redondeados.

El símbolo de una línea continua y una punta de flecha con un

círculo relleno, se interpreta como el inicio y una diana representa

el punto final del diagrama. Por lo general se muestra solo el

nombre de estado, ocasionalmente se incluyen las acciones y

eventualmente se incluyen a las variables de estado.

Por ejemplo un estado se puede representar de la siguiente

manera:

El objeto adquiere el

estado de desaprobado,

tiene la variable promedio menor o igual a diez, que es aquella

Nombre

Variables de

estado

Acciones

Desaprobado

Promedio <= 10

Entra : Programar Sustitutorio

Mientras: no Promover Grado

Salir : Crear acta de

Recuperación

Page 88: Gestion informatica i

88

que toma al encontrarse en el estado, y en la parte inferior se

considera a las acciones a seguir. Cuando entra: Programar

Examen Sustitutorio. Al salir: Crear acta de recuperación y

mientras tiene el estado no podrá promoverse de grado.

Otro ejemplo de elementos de estado.

Analizamos el estado de un aportador a una entidad de seguro.

Un aportador ingresa al estado de jubilado, para nuestro caso lo

rotulamos en la primera parte. En el área de variables debe

cumplirse que el objeto aportante tendrá la edad de mayor o

igual a 60 años y las acciones a seguir son:

Al entrar: Calcular Monto de cobertura, mientras tiene el

estado, dar mensualidad; cuando sale del estado asignar

beneficios de cobertura de seguro.

Representación de acciones

Las acciones que se disparan cuando se toma, un estado están

comprendidas por:

Entrada.- Indicar qué es lo que pasa cuando el objeto entra al estado.

Mientras.- hacen referencia a lo que pase mientras se tiene el estado.

Salida. ¿Qué acciones se siguen cuando se sale del estado?

Jubilado

Edad >= 60

Entra : Calcular Monto de

Cobertura

Mientras: Dar Mensualidad

Salir : Asignar Beneficios de

Cobertura

Page 89: Gestion informatica i

89

Ejemplo:

Para explicar el ejemplo de los estados que tomará un cliente dentro

del universo de una empresa de telefonía. En primer lugar tendrá el

estado de habilitado, al no pagar el recibo de servicio, adquiere el

estado de moroso y dentro de éste se desencadenan las acciones de:

Cortar línea, cuando entra al estado y mientras tiene el estado se le

niega el servicio telefónico, cuando sale del estado con el suceso de

pago d& recibo, se le activa la línea telefónica.

Sub-Estados.- Vienen a sor las transiciones internas que tienen

los objetos mientras adquieren un estado y se clasifican en sub-

estados secuénciales y concurrentes.

Sub Estados Secuénciales.- Se dan uno después del otro y lo

explicamos con un ejemplo:

Me he ubicado solo en dos estados de lo que obtendrá un

empleado en su centro de labores. Inicialmente e identificado el

estado "trabajando" y el suceso de inicio de tiempo de descanso,

Moroso

Entra : Cortar Línea

Mientras: Negar Servicio

Telefónico

Salir : Actuar Línea

Habilitado No Paga

Recibo

Efectúa Pago

Recibo

Trabajando Almorzando Inicio de

Tiempo de

Descanso

Término de

Tiempo de

Descanso

Page 90: Gestion informatica i

90

quien origina el estado de almorzando, el cual comprende tres

sub estados que les muestro a continuación.

El sub estado de solicitante, se da cuando el empleado está

pidiendo en el comedor sus alimentos; luego el obtiene el sub

estado de comiendo al recibir los alimentos, para cuando termina

pasará al estado de "en reposo". Todos estos sub estados

representan a la transición del objeto dentro del estado

almorzando.

El Sub Estado Concurrentes.- Son aquellos que representan al

comportamiento del objeto dentro del estado cuando se manejan

estados internos que se desencadenan en forma simultánea. Se

grafican en la parte inferior del área de estado debajo de una

línea media discontinua.

Como puede observar, los sub estados concurrentes se realizan al

mismo tiempo, porque para nuestro caso, mientras el empleado

almuerza puede estar escuchando música y al mismo tiempo

puede estar pensando una solución.

Solicitante Comiendo Sirven

Alimentos En Reposo Termina

de Ingerir

Alimentos

Solicitante Comiendo Sirven

Alimentos En Reposo Termina

de Ingerir

Alimentos

Escuchar

Música

Pensando

Solución

Page 91: Gestion informatica i

91

Estados Históricos.- Permiten retomar un sub estado, cuando

se haya salido por alguna situación y se simbolizan con la "H"

dentro de un circulo y muestra que un estado recuerda el sub

estado activo de donde salió para poderlo retomar.

Quiere decir que el estado histórico de solicitante lo podrá

retomar después de haber obtenido el incidente que se originó en

la empresa.

Ejemplos:

1. Caso de Libro do Biblioteca

El objeto libro inicialmente se ubica en el estado de estar "En

estante", para después desencadenar el suceso de solicitar

préstamo y entra al estado de "En sala". Se desencadenan las

Solicitante Comiendo Sirven

Alimentos En Reposo Termina

de Ingerir

Alimentos

Oyendo

Música

Pensando

Solución Lapso de

Estado

Lapso de

Transición

Llamada por

Incidente en

la Empresa

H

En Estante

En Sala

Entra: Presentar Carné Lector

Mientras: No Admitir Préstamo

Salir: Entregar Carné Lector

Devuelto

Solución Préstamo

Fin

Inicio

Requerimiento de

Ordenar Libro

Cumple Tiempo

de Lectura

Page 92: Gestion informatica i

92

acciones al entrar se retiene carné de lector, mientras se tiene el

estado no admitir préstamo, al salir se entrega el carné de lector.

2. Situaciones de estados de un trabajador

EI objeto se encuentra inicialmente en el estado "trabajando", el

suceso de cumplir 1 año de servicio entra al estado de

"vacaciones", cuando cumple el tiempo de vacaciones retorna el

estado de "trabajando". Si pide una dispensa obtiene el estado de

"permiso", cuando cumple el tiempo de dispensa retoma el

estado de "trabajando". Si se le asigna una tarea extra entra al

estado de "comisionado", cuando cumple la tarea extra vuelve al

estado de "trabajando"; por último cumple con tiempo de

servicio, entra al estado de "jubilado".

Jubilado

Trabajando

Permiso

Cumple

Tiempo

Servicio

Comisionado

Vacaciones

Cumple

Tarea Extra

Asigna Tarea Extra

Cumple Tiempo de Vacaciones

Cumple Año de Servicio

Solicitud

Dispensa

Cumple tiempo de

Dispensa

Page 93: Gestion informatica i

93

Ejemplo sub estados de un paciente

El presente diagrama del paciente se inicia en el estado

"esperando", que se da cuando el paciente espera cupo o cama

para ser alojado en el hospital. Cuando entra al estado de

"hospitalizado" se desencadenan 3 sub estados secuenciales que

son: "observado" que consiste en tomar las pruebas, cuando

ejecutan intervención pasa al sub estado de "operando", luego

que termina la intervención entra al sub estado de "recuperación"

pudiendo retroalimentarse con el sub estado de "observado", al

salir de este estado pasa al estado de "alta".

Esperando Hospitalizado Obtiene

Disponibilidad

Cupo

Alta Sin Riesgo

Observando Operando

Ejecutan

Intervención

Recuperación

Término de

Intervención

Page 94: Gestion informatica i

94

DIAGRAMA DE ACTIVIDADES

Definición.- Al mirar los diagramas de actividades le traerá a la

memoria los diagramas de flujo, que sirven para poder gradear la

lógica de cómo se daría solución a un problema de programación.

El presente diagrama nos permitirá explicar las actividades que

describen a los procesos para que sean atendidos por los propietarios

de los mismos, así como también los implementadores de software, los

diagramas de actividades contienen bifurcaciones, así como también

barras de sincronización y las actividades propiamente dichas.

Las barras de sincronización, indican que las actividades que se

encuentran comprendidas, se estarán dando al mismo tiempo

Señal de envío de mensaje hacia un objeto representada por un

pentágono convexo que apunta al objeto

Actividad

Bifurcación

Inicio y fin

Simbología

Señal Objeto

Page 95: Gestion informatica i

95

Señal que permite recepcionar la señal del objeto y está representado

por un pentágono cóncavo.

Los diagramas de actividades han sido creados para poder presentar

una visión de las tareas que se desarrollan en un determinado proceso,

generalmente van a permite escribir las actividades que se disparan en

la transición de un estado a otro. Lo que se representa por una flecha

en el diagrama de estado, tendrá su descomposición con el diagrama

de actividades.

No solo se usa en esta situación, sino tiene usted la libertad de

poderlos usar en el modelado de un determinado flujo. Si usted ha

realizado análisis estructurado, estos diagramas son los equivalentes al

flujo-grama. Existen clientes que se familiarizan con estos diagramas y

en algunos casos, yo particularmente los uso como principales paro

luego, ir armando el rompecabezas del modelo.

Transición de actividad a otra

Después de ejecutar una actividad se conlleva a una siguiente.

Señal Objeto

Actividad 1

Actividad 2

Actividad 3

Después de Ejecutar una

Actividad se conlleva a una

siguiente

Page 96: Gestion informatica i

96

Decisiones

El símbolo de decisión, le permite bifurcar la secuencia del diagrama

de acuerdo a las condiciones planteadas

Representación de actividades que se realizan al mismo tiempo.

El símbolo de

decisión nos

permite bifurcar

la secuencia del

diagrama de

acuerdo a las

condiciones

planteadas

Adquisición de

Software

Gestionar

Adquisición

Dar

Mantenimiento

Convocar a Grupo

de Proyecto

Planificar

Ejecutar Proyecto

[Desarrollo]

[Compra]

Comprar

Entradas

Comprar

Golosinas

Ingerir

Golosinas Ver Película

Ingerir

Golosinas

Page 97: Gestion informatica i

97

Las actividades Ver Película e Ingerir golosinas se realizan al mismo

tiempo Ias actividades de produciendo ítem y promocionando se

realizan en forma simultánea.

' .

Envío de Señal

El presente diagrama de actividades explica los pasos a seguir para

tomar una fotografía; permitiendo enviar un mensaje al objeto cámara

cuando se dispara el botón y la cámara tiene que capturar la imagen.

Comprar

Insumos

Promocionando Produciendo

Elementos

Vender

Page 98: Gestion informatica i

98

Creadores de Patrones

Cuando se inició la oleada del UML, participaron varios expertos, cada

uno con proyectos de metodología de desarrollo, liderando como es

conocido los "tres amigos", pero dentro de estos participantes

estuvieron: Erich Gamma, Richard Helm, Ralph Johnson y John

Vlissides que aportaron las Reglas o Patrones para UML; a estos

señores se les conoce como la Pandilla de los Cuatro(Gang of Four -

conocidos por "GoF"), quienes publicaron su libro Design Patterns en el

año de 1995 difundiendo 23 patrones.

¿Qué es un contrato?

Booch y Rumbaugh definen la responsabilidad como "Un contrato u

obligación de un tipo o Clase".

Es aquí donde se documentarán las operaciones asignadas a cada una

de las clases, las cuales servirán como herramientas para la

construcción, del sistema orientado a objetos.

Formato del Contrato

Nombre Se coloca el nombre de la

operación con sus parámetros,

si lo tuviera.

Responsabilidades Se definen las

responsabilidades que tendrá

la operación.

Tipo Podrá ser de sistema/usuario.

Referencias

Cruzadas

Aquí colocará las referencias

de los diagramas de donde

viene la responsabilidad y

adonde va.

Notas

Page 99: Gestion informatica i

99

Excepciones

Salida Datos de salida.

Precondiciones Condiciones antes de la

operación.

Poscondiciones Condiciones después de la

operación.

Patrones GRASP

General Responsability Assignments Software Patterns (Patrones

Generales de Software para Asignar Responsabilidades)

Patrón Experto

Solución

Asignar una responsabilidad al experto en información

necesaria para cumplir la responsabilidad.

Problema

¿Cuál es el principio fundamental en virtud del cual se

asigna las responsabilidades en el diseño orientado a

objetos?

Ejemplo

Calcular gran total de la Boleta

1. Total("NumeroBoleta")

Boleta

NumeroBol

Fecha

Total()

DetaBol

NumeroBol

CodProd

Cant

PuVenta

Importe

SubTotal()

Boleta DetaBol

Page 100: Gestion informatica i

100

Ejemplo de Contrato Para Total

Nombre

Responsabilida

des

: Total("NumeroBoleta")

: Hallar el total de la Boleta, para, tal caso

deberá sumar los importes de la clase

"Detabol".

Tipo

Referencias

Cruzada

: Sistema 3: Caso de Uso Comprar

Producto.

Notas

Excepciones

: Si el número de boleta, no Existe;

entonces, presentar un mensaje de error.

Salida

Precondiciones

: La Boleta deberá contener al menos un

producto y deberá estar activa.

Poscondiciones

Es la responsabilidad so la asignamos a la clase Boleta, porque

esta delegará sub-operaciones a las clases acopladas para que

cumplan el fin propuesto.

Patrón Creador

Solución

Asignarle a la clase B la responsabilidad de crear una instancia de

clase A en uno de los siguientes casos:

B agrega los objetos A

B Contiene los objetos A

Problema

¿Quién debería ser responsable de crear una nueva instancia a la

clase? El ejemplo explica quien tiene la responsabilidad de

ingresar una instancia a la clase DetaBol, aplicando este patrón la

tendrá la clase Boleta.

Page 101: Gestion informatica i

101

Ejemplo de Patrón Creador

Patrón Agente Dispositivo (Pandilla de los Cuatro)

Solución

Definir una clase que representa al dispositivo y asignarle la

responsabilidad de interactuar con él.

Problema

Se requiere interactuar con un dispositivo electromecánico. ¿Qué

hacer?

Para el caso se implementa la clase Lector de Tarjeta

"LectorDeTarjeta", porque existe un dispositivo que se acoplará al

sistema y es en esta clase donde se deben manejar las

operaciones para la manipulación del dispositivo que interactuará

con el sistema.

Patrón Comando (Pandilla de los Cuatro)

Solución

En cada comando, definir una clase que lo represente y asignarle

la responsabilidad de ejecutarse él mismo.

Boleta

DetaBol Boleta

Numero Bol

Fecha

Total()

InsertaProductoDetaBo

l

Se hace uso del

concepto de

Agregación

InsertarProductoDetabo(numeroBoleta,CodPro,Cantidad)

LectorDeTarjeta

LeerNumero

DispositivoLectordeTarjeta

Page 102: Gestion informatica i

102

Problema

Un objeto o sistema puede recibir varias peticiones o comandos.

Reducir la responsabilidad del receptor en el manejo de los

comandos, aumenta la facilidad con que pueden agregarse otros

comandos y ofrece las bases para registrar los comandos, para

formar colas de espera con ellos y para cancelarlos (deshacerlos).

Es una combinación del patrón Experto con Polimorfismo.

Hagamos un ejemplo de cómo funciona este patrón con respecto

al uso de una aplicación en Windows; por ejemplo usted puede

tener abierta la aplicación de Word varias veces, pero ¿Cuántos

archivos ejecutables de la aplicación tiene? Sólo uno, para este

caso se instancia la aplicación varias veces con todas sus

operaciones, para no congestionar el sistema.

aplicacionWord

abrirDocumento()

aplicacionWord

abrirDocumento()

cerrarDocumento()

aplicacionWord

abrirDocumento()

cerrarDocumento()

aplicacionWord

abrirDocumento()

cerrarDocumento()

Page 103: Gestion informatica i

103

DIAGRAMA DE CLASES

OBJETIVOS GENERALES

- Construir un conjunto de clases a partir de los objetos

determinados dentro de los procesos considernado sus

características y comportamientos así como sus relaciones.

OBJETIVOS ESPECIFICOS

- Cubrir la vista estática de un sistema tomando en cuenta la

estructura estática y el conjunto de clases y objetos de clases

que conforman un sistema

- Determinar las relaciones existentes entre los objetos

determinados, sin considerar su actuación ni los mensajes que se

envían.

INTRODUCCIÓN

La Clase es el elemento de más amplia aceptación en la comunidad de

desarrolladores de software orientado a objetos. Una Clase es un

conjunto de cosas que tienen los mismos atributos y comportamiento.

Representan aquello que siempre está presente y que en su ausencia

nuestro sistema difícilmente funcionaría. Cada una de las ocurrencias

de una clase constituye un Objeto. Las clases poseen atributos y

comportamiento y cada objeto perteneciente a una clase tiene atributos

con valores conocidos.

El conjunto de clases y sus relaciones forman los Diagramas de

Clase, el diagrama más importante y más común de todas las

metodologías de desarrollo, incluyendo la Metodología Estructurada,

Page 104: Gestion informatica i

104

pues un Diagrama de Clases es básicamente un modelo

Entidad/Relación evolucionado.

Los Diagramas de Clases muestran la Vista Estática del sistema e

indican las Clases que intervienen en él y como se relacionan con otras

clases para cumplir los objetivos del sistema.

Las clases se irán descubriendo a medida que avance en la

comprensión del sistema y, el Diagrama de Clases se irá construyendo

paulatinamente conforme identificamos las clases y sus relaciones.

Diagrama de Clases

Muestran un conjunto de clases (grupos de objetos que tienen las

mismas características y comportamiento), así como sus relaciones.

Estos diagramas son los más comunes en el modelado de sistemas

orientado a objetos y cubren la vista estática de un sistema. Un

diagrama de estructura estática muestra el conjunto de clases y

objetos de clases y objetos importantes, que conforman un sistema,

junto con las relaciones existentes entre los mismos, pero no como

actúan unos con otros, ni que mensajes se envían.

Un diagrama de clases está compuesto por los siguientes elementos:

Clases: Las cuales contienen atributos y operaciones.

Relaciones: Que pueden ser dependencia, generalización y asociación.

Diagrama de Objetos

Dado que las Clases son agrupaciones de cosas necesitamos un

diagrama que nos muestra las ocurrencias de cada elemento que

constituye la clase, a cada uno de estos elementos se les llama

Objetos.

Un Objeto se define como una instancia de una clase. Así, estas

ocurrencias se representan mediante un Diagrama de Objetos.

Los diagramas de objetos muestran un conjunto de objetos y sus

relaciones, son como fotos instantáneas de los diagramas de clase y

Page 105: Gestion informatica i

105

también cubren la vista de procesos estática desde la perspectiva de

ocurrencias reales o prototípicas.

Clase

Una Clase es un conjunto de objetos que comparten los mismos

atributos, operaciones y semántica. En otras palabras una clase

describe un conjunto de objetos con características y

comportamiento idéntico, se puede decir que las clases son como

una plantilla para formar objetos. Las clases sirven para abstraer

objetos del mundo real y a través de ella podemos modelar el entorno

en estudio. La Clase es un concepto similar a Entidad en un modelo

entidad/relación esto es "un conjunto de objetos que tienen las

mismas características". Sin embargo, al concepto de Clase a

diferencia del concepto de Entidad, se le ha agregado el

comportamiento, incluyendo las operaciones que puede realizar a

través de sus métodos.

En realidad, las clases que seleccionemos corresponden al dominio del

problema que deseamos resolver. Debemos enfocar nuestra atención

sólo a las clases, sus atributos y comportamiento que nos permitan

resolver el problema. Cualquier conjunto de objetes presentes en

nuestro sistema constituyen una clase. También debemos mencionar

que estas clases no existen aisladas sino que se relacionan entre ellas.

Representación Gráfica

En UML, una clase es representada mediante un rectángulo por lo

general con tres divisiones internas llamadas compartimientos, en

los cuales se indica el nombre de la clase, sus atributos y operaciones,

tal como se muestra en el diagrama y en donde:

Page 106: Gestion informatica i

106

NombreClase

atributoUno

atributoDos

….

operaciónUno

operaciónDos

….

Compartimiento Superior: Contiene el nombre de la Clase

Compartimiento Intermedio: Contiene los atributos que caracterizan

a la Clase.

Compartimiento Inferior: Contiene las operaciones, los cuales son la

forma cómo interactúan un objeto de la clase con su entorno

Adicionalmente, podemos colocar otros compartimientos en los cuales

se pueden describir, en texto libre, otras características de las clases

como pueden ser sus responsabilidades, esto es, los objetivos que

persigue la clase. No es necesario mostrar todos los compartimentos a

la vez, sino que más bien depende de lo que queramos visualizar en un

momento determinado, dejando a la herramienta de software que nos

muestre u oculte las partes según nuestra conveniencia.

A continuación describiremos cada uno de los tres compartimientos

estándar:

PRIMER COMPARTIMIENTO

Contiene el nombre de la Clase y opcionalmente su multiplicidad.

Nombre

A cada clase debemos asignarle un nombre que nos de una idea de lo

que representa. Se acostumbra a escribir la primara letra del nombre

de la clase en mayúsculas.

Page 107: Gestion informatica i

107

Un nombre es solo una cadena de caracteres que puede ser escrito de

dos formas: como simple name, que muestra solo el nombre de la

clase; o como path name o class path name, en donde se

muestra además del nombre del paquete al cual pertenece la clase

(los paquetes sirven para agrupar objetos según conveniencia).

Multiplicidad de la Clase

Sirven para indicar la cantidad de objetos que puedo tener una clase.

La multiplicidad de clases se indica mediante un número en la esquina

superior derecha del rectángulo que representa la clase y por lo general

no suele indicarse

SEGUNDO COMPARTIMIENTO

Contiene los atributos de la clase, mostrando su visibilidad, nombre

mutiplicidad, tipo de dato, valor inicial, etc.

Atributos

Un atributo representa alguna propiedad de los objetos que estamos

modelando, y que son compartidos por todos los objetos de una clase.

Los atributos se representan en un compartimiento debajo del nombre.

Los atributos pueden ser representados solo mostrando su nombre.

Se acostumbra a colocar en mayúscula la primera letra de cada palabra

en el nombre del atributo a excepción de la primera letra.

NombreClase

NombrePaquete::NombreClase

simple name

Path name

NombreClase

Nro

Page 108: Gestion informatica i

108

NombreClase

atributoUno

atributoDos

….

Especificando atributos

Podemos mencionar solo el nombre del atributo o especificarlo al nivel

de detalle que necesitemos. Así, para cada atributo además del

nombre, podemos indicar la visibilidad, la multiplicidad, el tipo, el valor

inicial, la cambiabilidad de cada atributo y el alcance, según la siguiente

sintaxis:

Sintaxis:

[visibility] name [multiplicity]: [type] [= initial-value] [{property-

string}]

Visibilidad de los atributos

Los Atributos de una Clase pueden ser accesibles por:

Todas las clases.

Las clases en las que son definidas

Las clases en las que son definidas y por sus descendientes

A esta característica se le llama visibilidad (visibility). Hay tres tipos de

visibilidad:

public (+): Indica que el atributo será visible tanto dentro como fuera

de la clase, es decir, será accesible desde todos lados. Para indicar que

un atributo es público se coloca el signo + delante del nombre del

atributo.

private (-): Indica que el atributo sólo será accesible desde dentro de

la clase, esto significa que sólo sus métodos lo pueden accesar. Para

indica que un atributo es privado se coloca el signo - delante del

nombre de atributo.

Page 109: Gestion informatica i

109

protected (#): Indica que el atributo será accesible por métodos de I

clase en la que se define, además de las subclases que se deriven de

ella. Para indicar que un atributo es protegido se coloca el signo #

delante d nombre del atributo.

Cuando la visibilidad no está especificada se asume que public, pero

siempre es mejor indicarla pues las herramientas de software a

menudo permiten ocultar algunos detalles, como la visibilidad, dando

lugar a posibles confusiones.

En el diagrama adjunto seobserva que atributoUno y atributoDos

son públicos, mientras que atributoTres es privado y atributoCuatro

es protegido.

NombreClase

+atributoUno

+atributoDos

-atributoTres

#atributoCuatro

Multiplicidad (multiplicity) de los atributos

Muestra la cantidad de veces que el atributo se repite. Se coloca

inmediatamente después del nombre del atributo encerrado entre

corchetes.

En el diagrama adjunto se muestra que atributoTres es privado y

tiene una multiplicidad de 0, 1, 2 ó 3.

NombreClase

+atributoUno

+atributoDos

-atributoTres

[0…3]

Page 110: Gestion informatica i

110

El tipo (type) de los atributos

Es el tipo de dato que tiene el atributo. Los tipos de datos

realmente dependen del lenguaje de programación; sin embargo,

se pueden indicar cualquiera de los tipos de uso común, tales como int,

char, float, double, date, string, etc.

Si el atributoUno fuera string,el atributoDos int y el atributoTres

date, entonces los atributos y sus tipos de datos se representarán como

se muestra en el diagrama adjunto.

Valor inicial de un atributo

En muchos casos es útil especificar el atributo con un valor inicial, el

cual se utilizará por defecto si es que no se le indica un valor al operar

con él. Con esto, se podrá evitar problemas de inconsistencia de datos

cuando no se conoce el valor y por defecto haremos que asuma un

valor. Por ejemplo, podemos utilizarlo cuando deseamos que un

atributo asuma la fecha actual, o tal vez el código de usuario, o tal vez

una cantidad de artículos por defecto, o un número correlativo de

transacción, entre muchos otros posibles.

En el diagrama adjunto se muestra que atributoUno de tipo cadena,

asumirá el valor del nro de movimiento, atributoDos de tipo entero

será 1 unidad, atributoTres podrá tener hasta tres valores cada uno

inicializado en su debida oportunidad con la fecha actual.

Cadena de propiedades (property string)

Es un conjunto de propiedades que indican el grado de cambio que

pueden sufrir los atributos. Estos son:

Changeable, se utiliza para indicar que no existen restricciones para

modificar los valores de los atributos.

AddOnly se usa cuando los atributos tienen una multiplicidad mayor

que 1, y significa que pueden añadirse mas valores, pero una vez

creados los valores no pueden ser removidos ni alterados.

Page 111: Gestion informatica i

111

Frozen, los valores de los atributos no pueden ser cambiados después

que el objeto fue inicializado. Se usa para definir constantes o cuando

se graba un valor por una sola vez. Por ejemplo, cuando grabamos la

fecha y hora de una transacción.

En caso de no especificarse ningún tipo, el atributo se considera

Changeable.

Si por ejemplo el atributoUno es la clave primaria, la cual, viene dada

por un número correlativo (en formato cadena) que el sistema genera,

entonces podrá modelarse como {frozen}. Si el atributoDos puede

ser modificado sin restricciones entonces será {changeable}. Si el

atributoTres tiene multiplicidad mayor que uno (por ejemplo 0..3) y

se desea guardar todos los valores ingresados, entonces será

{addonly}. Esto se muestra en el diagrama adjunto:

En la mayoría de casos no se acostumbra a utilizar esta especificación,

así que usted es libre de hacerlo.

Alcance de los atributos

Es otro importante detalle que podemos especificar en los atributos ral

de una clase. En UML podemos especificar dos tipos de alcances:

De Clase.- El valor que toma el atributo tiene alcance de clase

cuando existe un único valor que es válido para todas las instancias de

NombreCIase

+ atributoUno : string =

nromvmto(frozen)

+ atributoDos : int =l

(changeable)

- atributoTres [0..3]: date-=Fecha

(addonly)

Page 112: Gestion informatica i

112

la clase. El ámbito de clase se representa subrayando la definición del

atributo.

De Instancia.- El valor que toma el atributo tiene el alcance de

instancia cuando sólo es válido para dicha instancia. Si el atributo no

está subrayado significa que tiene alcance de instancia.

El uso más común del Alcance es para atributos privados que deben ser

compartidos entre un conjunto de instancias; esto es, todas las

ocurrencias de este conjunto tienen el mismo valor de atributo y

garantiza que otras instancias no tienen acceso a este atributo.

En el diagrama adjunto el atributoTres tiene ámbito de clase.

TERCER COMPARTIMIENTO

Contiene las operaciones que pueden realizar los objetos de una clase,

mostrando su visibilidad, nombre, lista de parámetros, tipo de dato

retornado, valores por defecto y el alcance de las operaciones.

Operaciones

El conjunto de operaciones describen el comportamiento de los objetos

de una clase; es decir, cómo una clase interactúa con su entorno.

Se representa en el tercer compartimiento del rectángulo que identifica

a la clase.

NombreClase

operacionUno

operacionDos

operacionTres

….

NombreCIase

+ atributoUno : string =

nromvmto(frozen)

+ atributoDos : int =l

(changeable)

- atributoTres [0..3]: date-=Fecha

(addonly)

Page 113: Gestion informatica i

113

Es conveniente hacer la distinción provista por UML respecto a

operaciones y métodos. Una operación representa el servicio que

puede ser requerido por una instancia de la clase y que afecta su

comportamiento. Un método es la implementación de una operación,

esto es la forma específica de cómo lleva a cabo la operación.

Todas las operaciones que no sean abstractas (aquellas que solo se

definen su nombre pero que no se implementan) deben tener un

método. Cuando entra en acción la herencia pueden haber muchos

métodos para la misma operación, esto se conoce como polimorfismo.

El mecanismo de herencia selecciona el método adecuado para la

operación escogida de la subclase que lo requirió.

La sintaxis de las operaciones en UML es similar a la de los

atributos, tal como se muestra:

[visibility] name [(parameter-list)]: [return-type] [{propety-string}]

Visibilidad de las Operaciones

Una Clase tienen un conjunto de operaciones que pueden ser invocados

por todas las clases del sistema, solamente por ella misma, ó por ella

misma y sus clases descendientes. Para esto se debe especificar la

visibilidad de las operaciones, las cuales pueden ser:

public (+): Indica que la operación será visible tanto dentro como

fuera de la clase, es decir, pueden ser invocados desde todos lados.

private (-): Indica que la operación sólo será accesible desde dentro

de la clase. Solamente la clase en la que está definida la operación

puede Invocarla.

protected (#): Indica que la operación no será accesible desde fuera

de la clase, pero podrá ser invocada por la clase en la que se define, y

además por las subclases que se deriven de ella.

Page 114: Gestion informatica i

114

El diagrama muestra qué operación puede ser invocada por todas las

clases, operación2 solo puede ser invocada por Clase1, mientras que

operación3 podrá ser invocada por Clase1, C!ase2 y Clase3, pero no

por Clase4 ni por Clase5.

Lista de parámetros (parameters list)

Normalmente cada operación necesita utilizar parámetros y/ó devolver

valores después de haber realizado la tarea encomendada. Los

parámetros van separados por comas y cada parámetro tiene la

siguiente sintaxis:

[direction] name: type [=default-value]

La dirección (direction) puede ser cualquiera de los siguientes valores:

in.- Cuando se trata de un parámetro de ingreso a la operación, el cual

no puede ser modificado por ella.

out.- Cuando la operación modifica el valor del parámetro para

comunicar alguna información al programa que lo invocó.

inout.- Cuando el valor del parámetro de entrada puedo ser modificado

(durante la ejecución de la operación.

En la siguiente expresión se muestra la operación1 de visibilidad

pública con 3 parámetros, par1 de ingreso, y que no puede ser

modificado par2 de salida y que puede cambiar de valor y ser

Clase 1

+ Operación1

- Operación2

# Operación3

Clase 4

Clase 5

Clase 2

Clase 3

Page 115: Gestion informatica i

115

reconocido fuera de operación1 y, par3 un parámetro de entrada que

puede ser modificado:

+operación1 (in par1, out par2, inout par3)

El tipo (type) indica el tipo de dato del parámetro, el cual puede ser

cualquiera de los tipos estándar conocidos. En la siguiente expresión se

indica que par1 será tipo int, par2 tipo date y par3 tipo char.

+operación1 (in par1: int, out par2: date, inout par3: char)

El valor por defecto (default valué) indica el valor que asumirá el

parámetro cuando al invocar la función, no se indica su valor. A

continuación se muestra una expresión en donde par1 asumirá el valor

de 5 y par3 el valor de '0', siempre que no se indiquen los valores

respectivos al invocar la operación.

+operación1 (in par1: int=5, out par2:date, inout par3:char='0’)

El tipo de retorno (return-type) de las operaciones

La operación puede o no retornar valores, el tipo de retorno es

justamente el tipo de dato del valor retornado.

Observe con atención la siguiente expresión:

+operación1 (in par1: int=5, out par2:date, inout

par3:char='0’): string

Aquí, operación1 con visibilidad pública (+), tiene tres parámetros, .

par1 de ingreso y tipo entero que será inicializada a 5 si es que no se le

indica el valor en la llamada a la operación; par2 de salida esto es, un

parámetro cuyo valor será modificado al ejecutarse operación1

Page 116: Gestion informatica i

116

pudiendo ser utilizado por el programa que lo invocó y es del tipo date

y; par3 es un parámetro cuyo valor puede ser modificado por

operación1, es del tipo char y tomará el valor de '0' cuando no se le

indique un valor al invocar a la operación: Finalmente, el tipo de dato

del valor retornado es un string.

El valor por defecto (default value) de las operaciones

[=default value] indica el valor por defecto que asumirá la operación, si

es que no se le indica el valor que debe retornar.

En la siguiente expresión operación1 retornará por defecto la cadena

"hola", a menos que durante la ejecución de la operación se le indique

que retorne otro valor para la cadena.

+ operaciónl( ) : string = '"hola"

Alcance de las Operaciones

En UML podemos especificar dos tipos de alcances o ámbito para las

operaciones:

De Clase.- Son aquellas que sirven para toda la clase, tales como las

que crean las instancias de clase (constructor). El ámbito de clase se

representa subrayando la definición de la operación.

De Instancia.- Las operaciones tienen alcance de instancia cuando son

válidas sólo para las instancias. Si la operación no está subrayada

significa que tiene alcance de instancia.

En el diagrama adjunto la operacionDos tiene ámbito de clase, mientras

que las otras dos tienen alcance de instancia.

Polimorfismo y operaciones polimórficas

En muchas ocasiones, debido a su naturaleza, es necesario que las

clases respondan de manera distinta ante el mismo mensaje. Por

ejemplo, el mensaje abrir puede enviarse a la clase regalo, a la clase

Page 117: Gestion informatica i

117

cuenta bancaria, a la clase ventana, a la clase puerta, o alguna otra;

pero, cada clase ejecutará su propia versión de abrir, en respuesta al

mensaje respectivo. La operación abrir es implementada de diversas

formas, una para cada clase. Al hecho de que una misma operación

tome diversas formas de implementación, se le conoce como

polimorfismo.

En el diagrama anterior se observa que abrir regalo, abrir cuenta

bancaria, abrir ventana de software, abrir ventana común (como la de

nuestras casas u oficinas), tienen sus propias implementaciones cada

una diferente de las otras. En el caso de abrir puerta nos encontramos

con una jerarquía de clases, en donde la clase raíz muestra una

operación abstracta (una operación que se identifica pero que no se

implementa), en donde cada uno de sus descendientes tiene su propia

versión de abrir Puerta.

Observe que VentanaSoftware y VentanaComun se refieren a clases

completamente diferentes por lo que no es conveniente crear una

jerarquía de clases para ellas. Sin embargo, es posible modelar

diversas subclases para cada una de ellas por ejemplo; para ventanas

de software, existen, ventana de dialogo, ventana de error, ventana

principal, ventana hija, ventana emergente, ventana MDI (interfaz de

múltiples documentos)entre algunas otras; mientras que para ventana

Puerta

abrir()

PuertaCorrediza

abrir()

PuertaGiratoria

abrir()

Regalo

abrir()

CuentaBancaria

abrir()

VentanaSoftware

abrir()

VentanaComun

abrir()

Page 118: Gestion informatica i

118

común, como aquellas que encontramos en nuestras casas, pueden ser

corredizas, giratorias, con huecos, etc. Las clases escogidas

dependerán de las necesidades del sistema que estemos modelando.

Para algunos casos la operación abrir será la misma, mientras que en

otros, cada clase tendrá su propia versión de abrir.

Se pueden especificar en la jerarquía de clases operaciones con el

mismo nombre en diferentes clases. Las operaciones de las clases hijas

redefinen la operación a ser ejecutada, la cual se determina en tiempo

de ejecución. Una operación polimórfica, es justamente la misma

operación implementada de manera distinta por dos o más clases.

Responsabilidades de las clases

Todas las clases deben cumplir una labor. En el argot de la orientación

a objetos, a dicha labor se le conoce como responsabilidad. Una

responsabilidad es un contrato u obligación que la clase debe

cumplir, pues viene a ser el fin para la cual fue creada. Los atributos y

comportamiento son las características de la clase que le permiten

cumplir con esas responsabilidades.

Una buena manera de iniciar el modelado orientado a objetos, es

identificar las clases con sus respectivas responsabilidades; cuando se

va refinando el modelo, las responsabilidades se traducen en atributos

y operaciones que permiten cumplirlas, esto significa que las

responsabilidades tienen un nivel de abstracción superior a los

atributos y operaciones.

Las responsabilidades se colocan en un cuarto compartimiento, del

rectángulo que representa a la clase.

Page 119: Gestion informatica i

119

Las responsabilidades se indican con frases cortas en texto libre.

NombreClase

Responsabilidades

……………………….

……………………….

A menudo, un comportamiento deseado es distribuido entre varias

clases que colaboran entre sí, se asignan responsabilidades para cada

clase cuidando de no asignar demasiadas responsabilidades a una sola

clase, ni tener clases con pocas responsabilidades. Esto permite pensar

en distribuir las responsabilidades entre otras clases o unirlas en una

sola cuando sean necesarias.

Casos Particulares de clases

Cuando trabajamos con clases se presentan casos particulares de

éstas, cuyos conceptos debemos conocer para poder aplicarlos en el

momento adecuado. No todos los tipos de clases se utilizarán en

nuestros diagramas; sin embargo, es necesaria su distinción. Así

tenemos:

• Clase Abstracta

• Clase Parametrizada

• Clase Asociación

• Clase Activa

• Clase Utilidad (utility class)

• Clase Interfaz (interface class)

• Clase Hoja (leaf class)

• Clase Raíz (root class)

• Metaclase (metaclass)

Page 120: Gestion informatica i

120

Clase Abstracta:

Las Clases "Abstractas son aquellas que no tienen instancias y sirven

para definir otras subclases las cuales sí podrán ser instanciadas. La

única forma de utilizar clases abstractas, es definiendo subclases que

hereden los atributos y operaciones abstractas definidos y en las cuales

recién éstos serán implementados. Una operación abstracta es aquella,

que se declara en una clase abstracta pero que no se implementa.

Una clase abstracta se denota con el nombre de la clase y las

(operaciones con letra "itálica" y opcionalmente colocando la etiqueta

{abstract} debajo del nombre de la clase; Cualquier clase que no sea

abstracta será una Clase Concreta o simplemente Clase.

Recuerde siempre el siguiente enunciado: "Si todos los miembros de

una clase T, han de pertenecer a una subclase de T, entonces la

clase T es abstracta". La clase T no tendrá ocurrencias pero sus

clases descendientes si.

ClaseAbstracta

(abstract)

atributoUno

atributoDos

operaciónUno

operaciónDos

Clase1

OperaciónUno

OperaciónDos

Clase2

OperaciónUno

OperaciónDos

Page 121: Gestion informatica i

121

Las operaciones OperaciónUno y OperaciónDos, pertenecientes a

claseAbstracta, solo se declaran más no se implementan (no poseen

métodos). Sin embargo, estas operaciones también están declaradas

en Clase1 y Clase2, y cada una tiene una versión propia de las

operaciones (esta situación como ya vimos se conoce como

polimorfismo: una operación con el mismo nombre pero con

diferentes implementaciones).

Una clase Abstracta solo sirve para dar a conocer la existencia de esa

clase con operaciones y atributos pero nunca habrá una instancia real

de la misma y por lo tanto no existirá una implementación real do su:;

operaciones. Una Clase Abstracta sirve para factorizar las

propiedades comunes a diversas clases, pero es demasiado genérica

para instanciar objetos, una Clase Abstracta no tiene pues ninguna

instancia, porque no tiene las suficientes propiedades para precisar

claramente a sus instancias.

Clase Parametrizada

Anteriormente mencionamos que una clase es como una plantilla para

generar objetos, así un objeto es la instancia de una clase. El UML

nos proporciona un mecanismo para crear clases de mañera similar a

como creamos objetos. Esto se logra mediante la Clase Paramétrica o

Parametrizada, que viene a ser una clase que puede instanciar a otra

clase según sea el parámetro que se le envíe. Las clases

parametrizadas permiten escribir una plantilla de clases, que se

puede aplicar a varios casos que se diferencian solo mediante los tipos

de parámetros enviados. Esto significa que las clases parametrizadas

definen en realidad una familia de clases. Se podrá generar una clase

concreta enviándole parámetros a una clase parametrizada. Las

variables locales dentro de la : operación tienen un tipo de datos

Page 122: Gestion informatica i

122

genérico que depende del tipo de la instancia, es decir del parámetro

utilizado en la clase.

Una plantilla de clases no se puede utilizar directamente sino que

primero debe instanciarse. La instanciación enlaza los parámetros

formales de la plantilla hacia la clase instanciada. A la instancia de una

dase con parámetro, se le llama elemento enlazado

(bound). La instanciación de una clase parametrizada da como

resultado una clase concreta que puede ser usada como una clase

cualquiera. Típicamente los parámetros representan los tipos de

atributos, y aún más, ellos también pueden representar operaciones.

La clase parametrizada corresponden al concepto de clase genérica en

los conceptos básicos orientados a objetos o al concepto de plantilla

(template) en C++. Así, para implementar clases parametrizadas se

puede usar los templates del C++ o bien de alguna estructura

predefinida de especialización a través de clases. El uso común de las

témplate class es especificar contenedores que pueden ser instanciados

para elementos específicos, construyendo tipos seguros.

En UML las clases parametrizadas se representan como una clase

acompañada de un rectángulo de líneas discontinuas en la esquina

superior derecha, en dicho rectángulo se especifican los parámetros

que deben ser pasados a la clase para que esta pueda ser instanciada.

Los parámetros deben escribirse separados por comas o uno por línea,

con la siguiente sintaxis:

name: type [= default-value]

NombreClase Parámetros

Page 123: Gestion informatica i

123

Donde:

name: es el identificador del parámetro cuyo ámbito de existencia es

solo, dentro de la plantilla

type: indica el tipo de dato del parámetro.

default-value: es el valor que es usado cuando el correspondiente

valor del parámetro no se indica al instanciar la clase.

Clase Asociación

Una Clase Asociación modela las propiedades de una Relación de

Asociación, considerándolas como un tipo particular de clase. Las

propiedades son almacenadas en una clase, y enlazadas a la relación

de asociación. Para poder crear una Clase Asociación, necesitamos

tener primero una Relación de Asociación entre dos clases

(trataremos esto más adelante), luego definimos la clase asociación y

la unimos mediante una línea discontinua con la asociación.

En el diagrama adjunto se muestra una Clase Asociación, en ella

debemos indicar los atributos y operaciones que surgen como

consecuencia de la relación entre las clases Clase1 y Clase2.

Clase Activa

Una Clase Activa es una clase cuyos objetos son Objetos Activos.

Un Objeto Activo es el que contiene su propio flujo de control, a

diferencia de un Objeto Pasivo que encapsula datos y solo reacciona al

enviarle un mensaje.

En otras palabras, una Clase Activa es una clase cuyos objetos tienen

uno o más procesos de ejecución; esto es, tienen comportamiento

Clase1 Clase2

ClaseAsociacion

Page 124: Gestion informatica i

124

concurrente con otros elementos y, por tanto, pueden dar lugar a

actividades de control. Una Clase Activa modela una familia de

procesos o hilos de ejecución.

Las clases activas, se representan igual que las clases comunes, pero

con un rectángulo de bordes más grueso. Los mensajes entre los

objetos pasivos se representan mediante una flecha completa mientras

que los mensajes de los objetos activos mediante una flecha

incompleta

Clase Utilidad (Utility Class)

Es una agrupación de variables globales y procedimientos públicos

declarados en forma de una clase. No es una construcción fundamental,

pero es muy conveniente usarla durante la programación.

Una Clase Utilidad es representada como una clase con el

estereotipo utilidad.

<<utility>>

Clase Interfaz (Interfaz Class)

Es una clase particular que consta solo de operaciones. Las clases

interfaz o simplemente interfaces suelen definir comportamientos

genéricos que no pueden encapsularse en clases propiamente dichas,

porque no forman parte de la semántica de los objetos. Las clases

interfaz son muy útiles, puesto que los paquetes y clases comunes

pueden tener interfaces para ser utilizadas por otras clases. De esta

manera, basta con que una clase o paquete se conecte a otra por

Clase Activa

Mensajes enviados por

Objeto pasivo

Objeto activo

Page 125: Gestion informatica i

125

medio de su interfaz para : solicitar algún servicio, permitiendo menor

acoplamiento entre clases y/o j _ paquetes y por lo tanto mejora el

mantenimiento ante posibles cambios. En i C++ las interfaces pueden

implementarse como clases abstractas que sólo contienen funciones

virtuales puras. En Java la noción de interfaz está integrada al

lenguaje.

Una Clase Interfaz es representada como una clase con el estereotipo

«interface»

<<interface>>

Clase Hoja (Leaf Class)

Es una clase que no tiene descendientes. Es una clase como cualquier

otra, pero se encuentra en el último nivel de descendencia en la

jerarquía de clases.

Clase Raíz (Root Class)

Es una clase que no tiene padres. Es una clase como cualquier otra

pero que se encuentra en el nivel más superior dentro de la jerarquía

de clases.

(leaf)

ClaseHoja

(root)

ClaseRaiz

Page 126: Gestion informatica i

126

Metaclase (metaclass)

Es una clase cuyas instancias son clases. Se representan como clases

con el estereotipo «metaclass».

Relaciones entre Clases

Comprendido el concepto de Clase, es necesario explicar cómo se

pueden interrelacionar dos o más clases que buscan cumplir un

objetivo común.

Existen tres tipos de relaciones entre las clases, las cuales son:

Relación de Dependencia

Relación de Generalización

Relación de Asociación la que a su vez se puede dividir de dos

formas, según el criterio adoptado:

o Según el número de clases participantes: Binaria y N-aria.

o Según como contribuyan a formar la clase, se dividen a su

vez en:

AND que puede ser Agregación y Composición, y

XOR

Esto se representa en el siguiente cuadro:

<<metaclass>>

Tipos de

Relaciones

entre Clases

Dependencia

Generalización

Asociación

Según el número

de Clases

participantes

Según como se

unan las Clases

Binaria

N-aria

AND

XOR

Agregación

Composición

Page 127: Gestion informatica i

127

A continuación explicaremos detenidamente cada una de ellas:

Relación de Dependencia

Es, una relación semántica entre, dos elementos en la cual un cambio

en un elemento (el elemento independiente) puede afectar a la

semántica del otro elemento (elemento dependiente). El elemento

dependiente es aquel que necesita de otro (el independiente), para

poder cumplir su responsabilidad. Este tipo de relación denota pues, la

dependencia que tiene una clase respecto a otra.

Se representa con una línea discontinua, dirigida según el sentido de la

dependencia y que a veces incluye una etiqueta y un estereotipo, que

dan una explicación del tipo de dependencia presentada.

Una relación de dependencia va dirigida desde la clase dependiente

(también llamada origen) hacia la clase independiente (también

llamada destino).

Aunque no es indispensable aplicar estereotipos a la relación de

dependencia, se han reconocido 8 estereotipos de uso común entre las

clases y objetos, los cuales son:

Relación de Dependencia

ClaseDependiente

ClaseIndependiente

Page 128: Gestion informatica i

128

Bind.- Se utiliza cuando se desea detallar que la clase

dependiente es la instancia de una clase parametrizada, la

relación de dependencia estereotipada con Bind incluye una lista

de los actuales argumentos que vienen de los argumentos de la

plantilla.

Derive.- Se utiliza cuando se desea modelar la relación entre dos

atributos o dos asociaciones, en donde una de ellas puede ser

obtenida a partir de la otra (es derivada de la otra). Esto significa

que en realidad un elemento es concreto, mientras que el otro es

puramente conceptual.

Friend.- Este estereotipo se utiliza cuando se desea" modelar el

concepto Clases Amigas muy popular en C++. Especifica que la .

Clase Amiga puede utilizar los métodos de otra clase.

InstanceOf.- Se utiliza cuando deseamos mostrar en un mismo

diagrama la relación entre una clase y ún objeto, o entre una

clase y su metaclase. Especifica que el objeto origen es una

instancia de la clase clasificador.

Instantiate.- Especifica que la clase origen crea instancias de la

clase destino. Se utiliza cuando deseamos especificar cuáles

elementos crean instancias de otros. La clase origen tiene la

responsabilidad de crear objetos de la clase destino.

Powertype- Indica que la clase destino es un powertype de la

clase origen. Un powertype es un clasificador cuyos objetos son

todos hijos de un padre dado. Se-usa para modelar clases que

cubren otras clases como cuando se modelan bases de datos.

Refine.- Especifica que la clase fuente es un grado más fino de

abstracción que el destino. Se utiliza cuando deseamos modelar

clases que son esencialmente las mismas, pero que tienen

diferentes niveles de abstracción.

Page 129: Gestion informatica i

129

Use:- Especifica que una clase utiliza a otra. Esto es la semántica

de la clase origen (dependiente) depende de la parte pública de

la clase destino (independiente).

El diagrama adjunto muestra una relación de dependencia

estereotipada como Bind. Esta relación se da entre una Clase

Parametrizada (independiente) y la clase instanciada (dependiente).

El siguiente diagrama muestra dos clases amigas. Las operaciones

operación1 y operación2 pueden ser usadas por ClaseFuente.

ClaseFuente obtiene una visibilidad especial de ClaseDestino.

Relación de Generalización

Es una relación entre dos clases en donde una de ellas, llamada

subclase o clase hija (subclass o child), hereda los atributos y el

comportamiento de otra, llamada superclase o clase padre

(superclass o parent)

En esta relación, está involucrado el mecanismo de herencia por el

cual el hijo comparte la estructura y el comportamiento visibles

del padre, esto es, aquellos atributos y operaciones de la Clase Padre

ClaseDependiente

ClaseIndependiente

Parámetros

<<Bind>>

ClaseDependiente ClaseIndependiente <<friend>>

Page 130: Gestion informatica i

130

que tengan visibilidad public o protected, pero a la vez puede definir

o redefinir nuevos atributos y operaciones que son propias de la

subclase. . Esto significa que el hijo puede sustituir al padre, pues

contiene todos sus atributos y operaciones. A esta relación también se

le conoce como "es un tipo de" porque el hijo es un tipo de la clase

padre.

En la gran mayoría de casos se puede establecer una relación de

generalización donde cada hijo tenga un solo padre, en este caso se

llama herencia simple; mientras que, en ocasiones se presenta el

caso de que un hijo puede tener múltiples padres, llamándose a este

caso herencia múltiple. En realidad hay que tener cuidado al utilizar

herencia múltiple pues los atributos y comportamientos podría

sobreponerse o el lenguaje de programación a utilizar podría no

soportarla. En este case, se heredaría solo de un padre y el

comportamiento adicional se modelaría como una agregación para

obtener la estructura y el comportamiento requerido.

Se representa mediante una línea continúa con punta de flecha

hueca dirigida desde la Clase Child hacia la Clase parent.

El diagrama siguiente muestra a Clase2 que es un hijo de Clase1 y

por tanto hereda atributo1 y atributo3, así como operación1 y

operación3 pues tienen visibilidad pública y protegida. Lo mismo

ocurre con Clase3. El atributo2 y la operación2 no se heredan pues

estar definidos como privados.

Relación de Asociación

Es una relación estructural que describe un conjunto de enlaces o

conexiones entre dos o más clases, permitiendo asociar objetos de las

Relación de Generalización

Page 131: Gestion informatica i

131

clases que colaboran entre sí para llevar a cabo un comportamiento

deseado.

Extremo de la Asociación (Association End)

Una Asociation End es simplemente un extremo de una Relación

Asociación, la cual se conecta a la clase. La Association End es parte

de la relación por lo que no puede separarse de ella.

Detallando una Asociación

Una Relación de Asociación puede presentar algunos

elementos adicionales que la detallan, tales como:

Name: Toda relación debe llevar un nombre la cual consta de

una cadena de caracteres que sirve para identificar a la relación.

Rolename: Describe el significado de la relación en cada uno de

sus extremos y se identifican con nombres en cada extremo de la

línea de la relación.

Clase1 Clase2

Relación de Asociación

Clase1 Clase2

Extremos de la Asociación

Clase1 Clase2 Nombre

Clase1 Clase2

Rol1 Rol2

Page 132: Gestion informatica i

132

Multiplicity. Indican cuantos elementos de un clase se conectan

con .la otra clase. Se escriben en cada extremo de la relación y

éstas pueden ser:

1 a muchos : 1..*

0 a muchos : 0..*

un número fijo: M

Ordering: Si la multiplicidad es más que uno, entonces los

elementos pueden estar ordenados o desordenados. Esto se

puede especificar escribiendo las palabras {ordered},

{unordered}, o {sorted} pero no se especifica cómo se mantiene

los elementos ordenados. Si no se especifica ningún tipo se

asume qué están desordenados: Si las clases se detallan a nivel

de implementación es posible especificar el uso de índices

mediante la palabra {sorted} la cual no añade ninguna

información adicional sino que expresa una decisión de diseño.

Qualifier. Es un atributo o lista de atributos cuyos valores sirven

para particionar el conjunto de instancias asociadas con una

instancia a través de una asociación. Los cualificadores (o

calificadores) son atributos de la asociación. Se representa

mediante un pequeño rectángulo unido al extremo de la

asociación junto a la clase conectada, los atributos del

cualificador se escriben dentro del rectángulo correspondiente al

cualificador, el cualificador es un atributo de la asociación,

no parte de la clase. Una instancia de la clase junto con un

valor del cualificador seleccionan únicamente una partición en el

conjunto de la clase destino. Los atributos del cualificador tienen

la misma notación que los atributos de la clase, excepto que el

Clase1 Clase2

1…* M

Clase1 Clase2 1…* M

Page 133: Gestion informatica i

133

valor inicial no tiene significado. Es raro encontrar cualificadores

en cada extremo de la asociación. Una asociación que contenga

un cualificar se le llama comúnmente Asociación Cualificada o

Asociación Calificada.

Navegability. Una flecha puede colocarse al extremo de la

asociación para indicar el sentido de la navegación hacia la clase

junto a la flecha, la navegabilidad puede tener cero, uno o dos

cabezas de flechas. A menudo la navegabilidad solo será en

ambos sentidos, pero algunas veces solo tendrá un único sentido,

esto ocurre cuando deseamos ir de un objeto a otro, pero no de

manera inversa.

Agregation indicator. El Indicador de agregación, muestra dos

formas de asociación. Una de ellas llamada Asociación de

Agregación y otra llamada Asociación de Composición, ambas se

explicará, más adelante.

Clasificación de una Relación de Asociación

Las asociaciones las podemos subdividir según el número de clases que

participen en: Asociación Binaria y Asociación N-aria; y según

como, contribuyen ahormar una clase en: Asociación de Agregación

y Asociación de Composición.

Clase1 Clase2

Cualificador

Clase1 Clase2

Navegabilidad

Page 134: Gestion informatica i

134

Clasificación según el número de clases participantes

Asociación binaria

Es una asociación exactamente entre dos clases, incluyendo el

Caso de una asociación reflexiva de una clase consigo misma.

Una Asociación reflexiva significa que un objeto de una clase se

puede conectar con otros objetos de la misma clase. La

asociación binaria se representa mediante una línea sólida que

une dos clases.

Asociación N-aria

Es una forma de expresar una relación entre tres o más clases.

Se representa mediante un rombo o diamante, del cual salen

líneas de asociación a las clases. El nombre de la asociación se

escribe dentro del rombo. Se pueden incluir roles en cada camino

al igual que en una relación binaria, así como la multiplicidad,

pero los cualificadores, e indicadores de agregación y

composición no son permitidos.

Una Clase Asociación puede ser enlazada hacia el rombo

mediante una línea discontinua. Esto indica una Asociación N-

aria que tiene atributos, operaciones y asociaciones.

Clase1 Clase2 Clase

Asociación Binaria

Asociación Binaria Reflexiva

Clase 1

Clase 2 Clase 3 Clase 2 Clase 3

Clase 1

Clase Asociación Relación N-aria

Page 135: Gestion informatica i

135

El diagrama anterior muestra en su lado izquierdo una Asociación N-

aria, y en su lado derecho una Asociación N-aria con una Clase

Asociación que describe los atributos de la asociación y su

comportamiento.

Clasificación según como se unen para formar otra clase

Cuando agrupamos objetos, puede ocurrir que un objeto puede estar

formado por varios otros (Asociación AND) o podrán estar formados

por cualquier objeto de un conjunto dado (Asociación XOR)

Asociación AND (And Association)

Si un objeto (al que llamaremos objeto base) está formado por

otros objetos, entonces tendremos una Asociación AND entre

las clases correspondientes. Sin embargo, las partes constitutivas

del Objeto Base pueden tener existencia por sí mismas, con lo

cual dan lugar a un tipo especial de relación denominada

Relación de Agregación, o en case contrario las partes

constitutivas del Objeto Base dejarán de existir, al dejar de existir

este, con lo cual dan lugar a una relación denominada Relación

de Composición. Ambas relaciones se explican a continuación.

Asociación de Agregación

La Agregación es un tipo especial de asociación e indica que el

objeto base solo utiliza al objeto incluido para poder funcionar. Si

el objeto base desaparece no desaparecen los objetos incluidos.

El objeto incluido existe por sí mismo, el objeto base lo usa. Este

tipo de asociación tiene tres características:

Primero, sus elementos no tienen dependencia existencial, el

elemento incluido no desaparece al destruirse el elemento que

lo contiene.

Page 136: Gestion informatica i

136

Segundo, pertenencia fuerte, el objeto contenido es parte

constitutiva, pero no vital del que lo contiene.

Tercero, se permite compartir los objetos contenidos.

Se representa mediante un rombo transparente ubicado al lado

de la clase base.

Cuando desaparece el objeto perteneciente a ClaseBase, los

objetos de Clase1, Clase2 y Clase3 que lo componen no

desaparecen pues tienen existencia propia.

Asociación de Composición

La Composición es un tipo especial de asociación, en donde el

tiempo de vida del objeto incluido está condicionado por el tiempo

de vida del que lo incluye. El objeto incluido solo existe mientras

exista el objeto base. El objeto base se construye a partir de los

objetos incluidos pero no podría existir sin ellos y viceversa, los

objetos incluidos no pueden existir sin la existencia del objeto que

los incluye.

Este tipo de asociación tiene tres características:

Primero, dependencia existencial, el elemento incluido

desaparece al destruirse el elemento que lo contiene y, si es

de cardinalidad 1, el objeto incluido es creado al mismo tiempo

que el objeto base.

Segundo, pertenencia fuerte, el objeto contenido es partía

constitutiva y vital del que lo contiene.

Tercero, los objetos contenidos no son compartidos esto es

no forman parte de otro objeto.

ClaseBase

Clase1 Clase2 Clase3

Page 137: Gestion informatica i

137

Se representa mediante un rombo relleno al lado de la clase1

contenedora.

El objeto de ClaseBase está formado por objetos de Clase1,

Clase2 y Clase3. Al destruirse el objeto de ClaseBase, los objetos

de las otras clases dejan de existir.

Asociación XOR (Xor Association)

Es un tipo de asociación en donde una instancia de una clase (un

objeto), solo puede formar una única asociación de un conjunto

posible de asociaciones. Esto significa que solo una de las

asociaciones mostradas puede ocurrir en un momento

determinado.

Se representa mediante una línea discontinua etiquetada con

{xor} y conectada a dos o más asociaciones, las cuales deben

tener una clase común (ClaseBase).

Un objete de ClaseBase solo podrá asociarse con un objeto de la Clase1

o bien con un objeto de la Clase2, pero no ambos.

ClaseBase

Clase1 Clase2 Clase3

ClaseBase

Clase1

Clase2

{xor}

Page 138: Gestion informatica i

138

Estrategias para la creación de Diagrama de Clases

1. Identificar las clases que participan en el sistema

2. Dibujarlas en un diagrama de clases

3. Asignar sus responsabilidades

4. Agregar a las clases todos los atributos que se identificaron

5. Agregar las operaciones necesarias para cumplir sus

responsabilidades

6. Especificar los detalles de tipos de datos, visibilidad, etc.. a las

operaciones y atributos de cada clase.

7. Agregar las asociaciones necesarias.

8. Especificar la navegabilidad de las asociaciones, creando flechas

en los extremos de ellas según sea necesario.

9. Detallar las relaciones distinguiendo dependencia, generalización

y asociación en cualquiera de sus formas.

10. Validar el modelo

EJEMPLOS CLASES

Ejemplo 5.1

Muestre Las posibles clases que puede encontrar en una casa.

Solución:

Siendo las clases un conjunto de objetos que tienen características y

comportamiento común, en una casa podemos distinguir:

Pared.- Todas poseen características comunes como alto, ancho,

color habitaciones que conecta y comportamiento común

(operaciones) por ejemplo pueden ser pintadas.

Piso.- Ya que poseen características como acabado, color, estado de

conservación y operaciones que les podemos hacer como barrer,

encerar.

Page 139: Gestion informatica i

139

Ventana.- Podemos mencionar características como alto, ancho,

material y operaciones como limpiar, abrir, cerrar entre otras. .

Puerta.- Algunas de sus características son alto, ancho, material,

color, y podemos mencionar operaciones como pintar, cerrar, abrir.

Tubería.- Que tienen como características el tipo de tubería

(agua, desagüe), el diámetro, etc.

Cada Clase tiene los mismos atributos, esto no significa que el valor de

cada atributo tenga "que ser el mismo, pero tampoco lo prohíbe. Así,

una pared puede medir 3m de alto, 4m de largo y color verde, mientras

que otra puede tener 3m de alto, 3m de largo y color azul. Ambas

paredes pertenecen a la Clase Pared, pero son objetos diferentes.

Debemos mencionar que en el paradigma orientado a objetos, aún si

dos objetos tienen las mismas características serán objetos diferentes.

Así si dos paredes tienen el mismo alto, largo y color serán objetos

diferentes pues cada uno tiene existencia propia.

Observe que el atributo estConservacion se nombra con In primera

letra de cada palabra en mayúsculas a excepción de la primera letra.

Para nombrar la Clase Tubería se usó el path name, es decir se

indica en qué paquete se encuentra la clase, mientras que para las

Clases Pared, Piso, Ventana y Puerta se hace uso del simple hame.

Esto significa que si mostramos los paquetes y si agrupamos las clases

Pared, Piso, Ventana y Puerta en el Paquete Estructura tendríamos lo

siguiente:

Pared

alto

ancho

color

Piso

acabado

color

estConservacion

Ventana

alto

ancho

material

Puerta

alto

ancho

color

materia

AguaDesague::Tuberia

tipo

diametro

Pared

alto

ancho

color

Piso

acabado

color

estConservacion

Ventana

alto

ancho

material

Puerta

alto

ancho

color

materia

Tuberia

tipo

diametro

Estructura AguaDesague

Page 140: Gestion informatica i

140

Podemos imaginarnos otros tipos de paquetes que pueden agrupar a

los objetos que normalmente se encuentran en una casa, como por

ejemplo el paquete Muebles que podría contener las clases sillón,

mesa, ropero, vitrinas, etc., o tal vez el Paquete Utensilios de

Cocina que contendrá a las clases cucharas, tenedores, cucharones,

etc. Las clases y paquetes que representemos dependen del problema

que deseamos resolver; así, en muchos casos no serán necesarios

algunos de éstos paquetes, mientras que en otros casos sí.

Ejemplo 5.2:

Muestre la complejidad y el tipo de cada atributo

De la Clase Pared, si se sabe que ésta puede tener hasta 3 colores

diferentes.

Solución:

El diagrama muestra lo pedido. La visibilidad de los atributos es

protegida pues cualquier tipo de pared siempre tendrá los atributos

alto, ancho y color.

Imagínese que se le ocurra modelar dos subclases: Pared Fija y Pared

Movible. Ambas subclases tienen comportamientos diferentes y por lo

tanto serán clases diferentes, sin embargo mantienen los atributos alto,

ancho y color, por ello es que son atributos protegidos (#), es decir

accesibles desde la clase en la qué están definidas y sus descendientes.

Además, observe que cuando la multiplicidad es 1, no es necesario

especificarla, mientras que la multiplicidad del atributo color puede ser

Pared

# alto : float

# ancho : float

# color[0…3] : int

Page 141: Gestion informatica i

141

0, tienen el tipo int, mientras que el alto y el ancho son siempre valores

reales con punto decimal, esto es el tipo float (valores almacenados en

punto flotante).

Ejemplo 5.3:

Se diseña una casa para contener un máximo de 5 pisos. Muestre la

multiplicidad de la Clase Pisos, la cual tiene los atributos área

techada, área total y el número del piso. Asimismo, el número del piso

es un atributo que no puede cambiar puesto que el primer piso siempre

será el primer piso; indique que este atributo no cambia mediante la

cadena de propiedades de los atributos.

Solución:

Por el mismo diseño de la casa, ésta sólo podrá tener hasta 5 pisos, por

lo que la multiplicidad de la Clase (que no es lo mismo que la

multiplicidad de los atributos) se representa tal como se muestra en el

diagrama adjunto. La cadena de propiedades contiene la cadena

{frozen} que indica que dicho valor nunca puede cambiar.

Ejemplo 5.4:

En una casa se sabe que el techo se ubicará a 2.5 m. del piso, entonces

las paredes por defecto medirán 2.5m. Cuando las paredes' son

construidas se les pinta con pintura Base lo que podemos deducir es

que el valor inicial del color sea Blanco y se muestra esto haciendo la

especificación del valor inicial.

Solución:

Tomando como base la descripción de los atributos de la Clase Pared

del Ejercicio 5.2 y añadiéndole los valores iníciales tendremos el

diagrama adjunto.

Visibilidad, nombre, multiplicidad, tipo y valores iniciales de los

atributos de la clase Pared

Page 142: Gestion informatica i

142

Ejemplo 5.5:

En una casa muestre la relación entre la Clase Pared y la Clase

Ventana.

Solución:

Las ventanas se ubican en las paredes, por lo tanto existe una

Relación de Asociación entre las clases Pared y Ventana. Esta

relación necesita la posición de la ventana respecto a la pared. La

posición está dada por los atributos posx y posy de la relación, los

cuales no pueden tomarse como atributos de Pared o Ventana, ya que

el contexto de su existencia está dado precisamente por la relación

entre las dos clases. Por lo tanto debemos modelarla como una Clase

Asociación a la cual llamamos Ubicación con dos atributos que

indiquen la posición de la ventana en la pared.

Se desea implementar un conjunto de funciones matemáticas tales

como generar números aleatorios, resolver ecuaciones simultáneas y

calcular la inversa de una matriz, etc. Modele una clase que permita

agrupar estas funciones.

Solución:

class: tal como se muestra en el diagrama adjunto. Las clases utilidad

se indican mediante el estereotipo «utility» y solo sirven como un

agrupamiento por conveniencia, más que por la existencia real de la

clase con sus atributos y operaciones.

Pared Ventana

Ubicación

Posx

Posy

Page 143: Gestion informatica i

143

Ejemplo 5.6:

Se tiene un sistema que implementa una interfaz gráfica en base a

ventanas. La Clase Aplicación es capaz de crear instancias de la

ventana pero ambas son clases diferentes. Modele este hecho. Observe

que se trata de una alta relación de dependencia en donde una clase

crea instancias de otra

Solución:

Dado que la Clase Ventana depende siempre de la aplicación que la

crea, la creación del Objeto Ventana está condicionado a la

instanciación proveniente desde el objeto Aplicación, por lo tanto existe

una relación de dependencia entre ambas. Debemos destacar que el

objeto creado (la Clase Ventana gráfica) no se almacena dentro del

objeto que lo crea (la Clase Aplicación) pues son clases diferentes. Por

lo tanto, tenemos dos clases, la Clase Aplicación crea una instancia de

la clase ventana, por lo que debe haber una relación de dependencia

que puede ser estereotipada como «instantiate».

Ejemplo 5.7:

Se desea modelar un sistema comercial para una empresa, después de

arduas discusiones el personal desabollador identificó la Clase

Persona, en la cual algunas instancias de la ClasePersona eran

Persona Natural (cualquier persona individual) mientras que otras

resultaban ser "Persona jurídica" (cualquier empresa o razón social).

Muestre estas clases mediante un diaqrama.

Solución:

Veamos, tenemos la Clase Persona con dos especializaciones: las

subclases Persona Natural y la subclase Persona Jurídica.

Sea el objeto de cualquiera de las subclases nunca dejará de ser

persona, por lo tanto se presenta el mecanismo de herencia que se

manifiesta mediante la relación de generalización; además, no existe

ninguna ocurrencia de Persona, pues cualquier ocurrencia siempre

Page 144: Gestion informatica i

144

será Natural o Jurídica, por lo que se trata de una Clase Abstracta.

Note que a la clase Persona le falta algunos atributos para poder

valerse por sí misma, y por ende no tiene ninguna instancia.

Ejemplo 5.8:

Una Cuenta Bancaria puede ser solamente Cuenta de Ahorros y Cuenta

Corriente. Muestre la Clase Cuenta si posee atributos como

NroCuenta, propietario, Saldo Neto, Fecha de Apertura, entre

otras, y si pueden realizar las siguientes operaciones: depósito, retiro,

anulación y calcular saldo.

Solución:

La Clase Cuenta no tiene ninguna ocurrencia cualquiera; Cuenta

siempre será Cuenta de Ahorros o Cuenta Corriente por lo que Cuenta

será una Clase Abstracta. Asimismo, todos sus atributos y operaciones

serán abstractos.

Persona

direccion

telefono

Natural

nombre

FechaNacim

Juridica

razonSocial

fechaConst

Cuenta

NroCuenta

idPropietario

saldoNeto

fechaApertura

deposito( )

retiro( )

anulacion( )

calculaSaldo( )

CuentaCorriente CuentaAhorros

Page 145: Gestion informatica i

145

Ejemplo 5.9:

Se desea implementar un software que permita jugar ajedrez,

identifiquen una clase abstracta que resulte conveniente modelar:

Solución:

Veamos, todas las piezas de ajedrez tiene un color, una imagen, un

estado y cuentan con algunas operaciones como obtener posición,

mover pieza, etc. Si modelamos una clase PiezaAjedrez con estos

atributos y operaciones, esta clase no tendrá ninguna ocurrencia, pues

las piezas de ajedrez reales estarán formando parte de las subclases de

PiezaAjedrez, tal como la subclase Peón, Torre, Alfil, etc. Por lo

tanto la clase PiezaAjedrez será una clase, abstracta, lo cual se

representa en el siguiente diagrama:

Observe que las clases abstractas contienen atributos y operaciones

abstractas que serán implementadas en las subclases, y que son

representadas con letras itálicas.

Ejemplo 5.10:

Un vehículo puede ser automóvil, camión, barco o avión. Muestre clase

vehículo con sus respectivos atributos y visibilidad y las relaciones de

generalización entre los subclases.

PiezaAjedrez

(abstract)

Color

Imagen

Estado

ObtenPosición( )

MoverPieza( )

Peón Torre Alfil Caballo Rey Reina

Page 146: Gestion informatica i

146

Solución:

Veamos los vehículos tiene uno o más dueños, una fecha de

fabricación, los automóviles y camiones tienen un número de puertas,

una determinada cantidad de ruedas, un número de placa, los barcos y

camiones una capacidad de carga.

El atributo dueño lo tienen todos los vehículos así como también las

subclases barco y avión, por lo tanto es un atributo protegido (#

dueño), pues es una característica de la clase vehículo y sus

descendientes: las subclases automóvil, barco y avión. El atributo

número de puertas parece ser exclusivo de los automóviles y de los

camiones por lo tanto será protegido a la subclase automóvil (#

nroPuertas). Lo mismo ocurre con el atributo ruedas, también será

protegido a la subclase automóvil (#nroRuedas). Por lo tanto se podrán

representar como:

Puede usted añadir otros atributos mediante un mayor análisis y tal vez

podría preferir dividir la Clase Vehículos en subclases vehículos

Terrestres, Aéreos, Marítimos y Anfibios. Esto dependerá de sus

necesidades particulares.

Vehículo

#Dueño

#fechaFabric

Automóvil

#Placa

#nroPuertas

#nroRuedas

Camión

#Placa

#nroPuertas

#nroRuedas

#CapCarga

Barco

#capCarga

Avión

#capCarga

Page 147: Gestion informatica i

147

Ejemplo 5.11:

Se desea modelar un conjunto de compañías cada una dejas cuales

tiene un conjunto de empleados. Se pide mostrar las clases

involucradas, así como el nombre de la asociación, los roles, y la

multiplicidad.

Solución:

Se tiene dos Clases: Compañía y Personar, la relación recibe el nombre

de "Trabaja Para", cuyo sentido va desde la Clase Persona hacia la

Clase Compañía (pudo escogerse el nombre "Emplea a y el sentido

seria el inverso). El rol que cumple la Clase Compañía es de

"empleador", mientras que la Clase Persona cumple el rol de

"empleado". La multiplicidad se obtiene razonando de la siguiente

manera "una compañía emplea a uno o más empleados (1..*),

mientras que una persona trabaja para ninguna o muchas compañías

(0..*)", (siempre se toma un objeto de una clase y se pregunta con

cuantos objetos de la otra clase se relaciona).

Ejemplo 5.12:

En cada Temporada de un Torneo de Fútbol participan Equipos los

cuales juegan Partidos. Como consecuencia de esto se obtiene el

Record que indica los goles a favor, goles en contra, partidos ganados,

perdidos y empatados. Modele esta situación haciendo uso de una

Clase Asociación.

Solución:

El siguiente diagrama muestra el modelo pedido.

Observe que se trata de una asociación ternaria con atributos propios

por lo que fue modelada como una clase asociación. Este diagrama

representa solo un nivel lógico, cuando quiera implementarlo

Temporada

Compañía Persona

1…* 0…*

Trabaja para

empleador empleado

Page 148: Gestion informatica i

148

físicamente, deberá transformar la asociación ternaria en asociaciones

binarias.

Ejemplo 5.13:

Modele la Clase Polígono, Recuerde que un polígono queda

completamente definido cuando se conocen sus vértices, que al menos

deben ser 3.

Solución:

Identificamos la Clase Polígono y la Clase Puntos, (que hace las veces

de vértices). Un polígono queda definido al conocerse 3 o más puntos

que se unen, por lo que la multiplicidad se obtendrá así: "un polígono

se asocia con 3 o más puntos (3., ), mientras que un punto pertenece a

cero o muchos polígonos (0..*)".

La relación se llama "Es definido por", pues representa justamente la

razón de la relación y su direccionalidad es desde la Clase Polígono

hacia la Clase Punto. Se muestra {ordered} pues los puntos guardan

un orden para poder formar el polígono (los puntos no pueden unirse

por rectas de cualquier manera, pues aunque sean los mismos puntos,

algunas combinaciones dan diferentes polígonos). Polígono y Punto se

relacionan mediante una Asociación de Agregación que es representada

mediante el rombo junto, a la Clase Polígono, pues los puntos definen

al polígono y éstos siguen existiendo aunque el polígono deje de existir.

Ejemplo 5.14:

Modele una computadora personal mostrando sus componentes.

Solución:

La relación de una computadora personal con sus partes es un típico

ejemplo de Asociación de Agregación. La PC está formada por CPU,

Teclado, Monitor y Mouse. Si desaparece la PC como un todo, sus

partes constitutivas aun tienen existencia. A su vez la CPU está

Polígono Punto 3…* 0…* Es definido por

Page 149: Gestion informatica i

149

formada por microprocesador, disco duro, disquetera para discos

flexibles, CD ROM, memorias, etc., manteniendo también una

Asociación de Agregación con dichas partes, pues si la CPU deja de

existir su partes seguirán existiendo.

EJEMPLO 5.15:

Una factura puede modelarse mediante dos clases la Cabecera de

factura que indica aquellos datos que son únicos para toda la factura y

el detalle de las facturas que son aquellos renglones que indican la

cantidad y el ítem adquirido. Modele la Clase Factura.

Solución:

Conociendo que Facturas está formada por las Clases Cabecera y

Detalle, y si la Factura deja de existir su cabecera y detalle no tendrían

sentido, por lo tanto se trata de una Asociación de Composición

Ejemplo 5.17:

Se tiene una Cuenta Bancaria que puede ser Cuenta Corriente, Cuenta

de Ahorros, a su vez una Cuenta pertenece a una Persona que puede

ser Persona Natural o Persona Jurídica. Modele este caso utilizando la

Factura

Detalle Cabecera

1…* 1…*

Page 150: Gestion informatica i

150

Relación de Generalización y la Asociación XOR. Distinga ambas

relaciones claramente y reflexione sobre su diferencia.

Solución:

Tal como vimos en el Ejemplo 3.9 la Clase Cuenta es una clase

abstracta de la cual se heredan las clases Cuenta Corriente y Cuenta de

Ahorro. Mientras que en el Ejemplo 3.8 la Clase Persona también era

una clase abstracta de la cual se heredan las Clases Natural y Jurídica

(empresa). Ahora bien cada Cuenta se debe asociar con una Persona

que puede ser Natural o Jurídica. Note que cada subclase involucrada

en la Relación de Generalización es un tipo de la clase madre (Cuenta

Corriente y Cuenta de Ahorro son cada una un tipo de Cuenta),

mientras que las clases que se relacionan en una Asociación XOR, son

distintas (la Clase Cuenta se asocia con la Clase Natural o con la

Jurídica). Este hecho se modela en el siguiente diagrama:

Ejemplo 5.18:

Se desea implementar una Lista de Elementos, estos elementos

pueden ser de cualquier tipo tales como pares de coordenadas,

números enteros, números reales, números complejos, cadenas de

caracteres (como nombres de invitados a una cena), etc. Defina una

Clase Parametrizada: que permita recibir el parámetro tipo y que

pueda instanciar las que requeriría.

Solución:

Veamos, una lista debe tener las operaciones siguientes: insertar

elemento, modificar elemento, eliminar elemento, mostrar lista, buscar

Cuenta

Natural

Jurídica

{xor}

Corriente Ahorro

Ahorro

Page 151: Gestion informatica i

151

elemento, ordenar lista, entre otras (como por ejemplo eliminar lista).

Pero, ésta puede ser una lista de números enteros, una lista de

números reales, una lista de números complejos, una lista de invitados

a un evento, una lista de animales en un zoológico, una lista de cosas,

una lista de tareas a ejecutar, entre muchas otras posibles. Cada una

de ellas tendrá sus propios atributos que dependen justamente' del tipo

de lista implementada.

Una forma de modelar una lista sería crear una clase para cada tipo de

lista y definir las operaciones respectivas. Así, tendríamos que definir

todos los atributos y operaciones para cada una de las clases creadas.

Una forma más general sería definir una Clase parametrizada que,

según sean los parámetros enviados, cree una clase particular de lista.

La representación gráfica de esta clase se muestra en el diagrama

adjunto.

Podemos usar esta Clase Parametrizada para instanciar varias otras

clases. Así si deseamos una Clase Lista que gestione números enteros

tendríamos:

Si deseamos una lista de cosas tendríamos:

De manera similar se puede obtener las otras clases, enviándole los

parámetros apropiados, que incluso pueden corresponder a los

atributos propios de cada clase.

Page 152: Gestion informatica i

152

Ejemplo 5.19:

Modele la relación entre un ómnibus y sus asientos como una

asociación calificada

Solución:

Recordemos que un calificador divide el conjunto de instancias de una

clase, permitiendo reducir su multiplicidad. Es como un índice que nos

facilita ubicar los elementos, además el calificador sugiere las claves en

el modelo de base de datos. Cada uno de los grupos en que se ha

dividido las instancias se llaman partición. Una partición es la

descomposición de un conjunto en subconjuntos, en donde ningún

elemento puede pertenecer a dos subconjuntos (son disjuntos) y cuya

unión forma la totalidad de las instancias.

En nuestro ejemplo tenemos la clase ómnibus, relacionada con la clase

Asiento, para cada ómnibus tenemos muchos asientos, pero cada

asiento sólo está en un único ómnibus. Por lo que podemos

representarla como:

Observe que tenemos una relación 1 a muchos, si deseamos reducir

esta multiplicidad necesitamos un calificador. Busquemos uno

adecuado.

Veamos, los asientos para venta al público en un ómnibus tienen la

disposición mostrada en la figura adjunta.

Podemos dividir a estos asientos en grupos según diversos criterios: la

fila, la columna, si están junto el pasillo, si están junto a la ventana, o

según el número de asiento.

Analicemos detenidamente cada una de las alternativas para luego

escoger el calificador adecuado.

omnibus asiento 1 *

Page 153: Gestion informatica i

153

Si utilizamos el criterio del número de fila para dividir a las instancias

de la clase " asientos, tendremos que "para un ómnibus y dada una fila

obtendremos 4 asientos"

Si utilizamos el criterio del número de columna para dividir a las

instancias de la clase asientos, tendremos que "para un ómnibus y

dada una columna obtendremos N asientos".

El criterio de si está junto al pasillo no es aplicable, puesto que los que

están en el pasillo son solo una parte del total, por lo que no se

formará particiones, y por lo tanto, este criterio no puede utilizarse

como calificador.

De manera similar, el criterio de si está junto a la ventana no es

aplicable, puesto que los que están en la ventana son solo una parte

del total, por lo que no se formará particiones, y por lo tanto, este

criterio no puede utilizarse como calificador.

ómnibus fila

asiento 1 4

ómnibus col

asiento 1 N

Page 154: Gestion informatica i

154

Si utilizamos el criterio del número de asiento para dividir a las

instancias de la clase asientos, tendremos que "para un ómnibus y un

número de asiento tendremos un único asiento".

Este último criterio permite reducir la multiplicidad que antes era de uno a muchos a otra que es de uno a uno, además suma de los

subconjuntos da el todo, por lo tanto es el calificador escogido.

ómnibus num

asiento 1 1

Page 155: Gestion informatica i

155

- BOOCH, Grady – JACOBSON, Ivar – RUMBAUGH, James

El Lenguaje Unificado de Modelado, Manual de Referencia

Addison Wesley Iberoamericana, Madrid 2000 - MARTIN, James – ODELL, James J.

Análisis y diseño orientado a objetos Prentice Hall Hispanoamericana, México

- LIZA AVILA, César Modelando con UML – Principios y Aplicaciones

Grupo Creadores, Primera Edición, Agosto 2001 - TABOADA JIMENEZ, Alberto

Análisis de Procesos y Datos usando UML Instituto Peruano de Ciencias de la Información E.I.R.L.

Direcciones Web - http://sigifredo.laengle.googlepages.com/20071002-

Presentacion-AM.pdf - http://es.wikipedia.org/wiki/Modelado_de_procesos

- http://www.osmosislatina.com/lenguajes/uml/casos.htm - http://www.osmosislatina.com/lenguajes/uml/clasesob.htm

- http://www.scribd.com/doc/2458886/Uso-Diagrama-de-

actividades-Negocio