P. 1
uml768

uml768

|Views: 43|Likes:
Published by Claudia

More info:

Published by: Claudia on Mar 05, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

11/09/2012

pdf

text

original

Análisis y Diseño de Sistemas de Información

Temario

• • •

• • • • •

Estructuras de Objetos Diagramas Estáticos • Diagramas de Clases • Diagramas de Casos de Uso Diagramas Dinámicos • Diagramas de Estado • Diagramas de Actividades • Diagramas de Secuencias • Diagramas de Colaboración Diagramas de Implementación • Diagramas de Componentes • Diagramas de Distribución Casos de estudio Patrones de Diseño Metodologías Ing. y M.A. Francisco Javier Mariscal Flores fmarisc@uach.mx

Instructor

Tomado de http://comunidad.uach.mx/fmarisc/analisis/Analisis.ppt Pag. 1

Ingeniería de Software

Proceso de desarrollo (cont.)

Procesos donde utilizar UML. • Los procesos iterativos deberán tener un plan de que serán las
iteraciones y que será cubierto por cada una de ellas. • En la fase de construcción: • El comienzo proporciona el compromiso del patrocinador del proyecto de seguir adelante se conoce el caso de negocios y su factibilidad y alcance básicos. • La elaboración da la arquitectura básica de el sistema, un plan para el acuerdo de construcción, identifica todos los riesgos significantes, entendimiento cabal de los mayores riesgos para no estar preocupados. • La construcción termina con una versión beta del sistema. • Transición es el proceso de introducir el sistema a sus usuarios. • Otros procesos han adoptado UML como su lenguaje de modelación: Catalysis, Rational Unified Process, etc.

Pag. 2

Diagramas Estáticos

Casos de Uso

• •

Es una colección de situaciones que ocurren cuando un actor usa un sistema para completar un proceso. Normalmente un caso de uso es un proceso relativamente largo, no un paso individual o transacción. Cada caso de uso necesita representar una tarea, o una unidad coherente de funcionalidad, la cuál necesita ser soportada por el sistema. Una vez identificado los casos de uso se pueden crear diagramas de casos de uso para colocar el caso de uso en contexto. Involucrando las fronteras del sistema para un conjunto de casos de uso y definiendo las líneas de comunicación entre un actor particular y el caso de uso.

Sist. de Información de Biblioteca

Recursos para Prestamo Agregar recursos Regresar Recursos

Bibliotecario

Usuario

• •

En las etapas iniciales de desarrollo del proyecto, los diagramas de casos de uso describen las actividades del mundo real y las motivaciones. Se puede afinar los diagramas en etapas posteriores para reflejar las interfases de usuario y los detalles de diseño. Cuando se tienen varios subsistemas es común dibujar la frontera del sistema, pero generalmente se omite.
Pag. 3

Diagramas Estáticos

Casos de Uso (cont.)

Interacciones con sistemas externos: • Las opiniones de incluir a los sistemas externos como casos de uso o no, varían:

1.- Algunos sienten que todas las interacciones con sistemas remotos deben aparecer en el diagrama. Si requiere acceso a Reuters se debería indicar. 2.- Algunas personas consideran que sólo se deben mostrar los casos de uso con una interacción externa, cuando quien inicia el contacto es otro sistema. Contabilidad solo se mostraría si dicho sistema invocara algún proceso que le dijera al sistema fuente que lo hiciera. 3.- Algunas personas consideran que solo se deben mostrar los actores del sistema cuando ellos sean los que necesiten el caso de uso. Si se genera un archivo cada noche que después es recogido por el sistema de contabilidad, entonces éste es el actor que corresponde, por necesitar de dicho archivo. 4.- Otros más sienten que constituye un enfoque equivocado considerar que un sistema es un actor.

Pag. 4

como otros a sistemas o en algunos casos se pueden identificar diferentes dispositivos externos al sistema. Una relación de comunicación entre un actor y un caso de uso no significa que alguien en ése rol necesariamente tenga que estar involucrado en sacar la tarea adelante. El beneficiario de un caso de uso es un actor para el que el caso de uso tiene algún valor. en vez de representar a alguien en individual. Pag. Se puede diferenciar entre quienes necesitan el caso de uso y quienes están involucrados con él sin obtener ningún beneficio.Diagramas Estáticos • Casos de Uso (cont. solo significa que puede estarlo. 5 . Actores no humanos.) • • • • Un actor en un caso de uso representa un rol que alguien debe jugar. dependiendo de las circunstancias.

• Planeación. Debemos poder demostrar que el sistema hace algo útil primeramente para la gente más influyente.) • Utilización de los casos de uso. • Aspectos políticos. • Conocer cuál caso de uso acarrea más riesgo • Un plan de que tanto tomará implementar cada caso de uso. Casos de uso a través del desarrollo. Antes de que se haga un proceso de estimación y planeación para el proyecto completo. es necesario hacer una lista de los casos de uso del sistema. • Aspectos técnicos. para eliminar el riesgo más grande aún cuando tengamos contingencias para poderlas eliminar y no que quedemos atorados en un diseño que no nos permita manejar los casos de uso más riesgoso. junto con: • Una buena idea de lo que significa cada uno • Entender quién quiere cada uno y qué tanto lo desea. • Los casos de uso sirven a capturar los requerimientos al proporcionar una forma • estructurada de: • Identificar a los actores • Para cada actor encontrar qué necesitan del sistema (qué casos de uso tienen valor para ellos) y encontrar cualquier otra interacción que esperen tener con el sistema. Recuerde que el 25% de los sistemas nunca se terminan. Debemos sacar adelante primero los casos de uso con mayor riesgo. Pag.Diagramas Estáticos • Casos de Uso (cont. 6 . Tomar cada caso de uso y verificar que el diseño permitirá completarlo. • Validación del Sistema. igualmente se deben diseñar pruebas para cada caso de uso.

7 . • Peligro de construir sistemas no orientados a objetos. si la etapa previa dejó alguna situación insatisfactoria deberá volverse a producir.) • Posibles problemas con los casos de uso. Se puede minimizar el error al hacer paralelamente el análisis de casos de uso y el modelado conceptual de clases. podemos perder de vista la arquitectura del sistema y la estructura de objetos estáticos. podemos terminar desarrollando sistemas top-down orientados a funciones. • Perder requerimientos si se pone mucha confianza en el proceso sugerido de encontrar los actores y luego encontrar los casos de uso que necesita cada actor. Al enfocarnos en casos de uso. Para evitarlo debemos administrar correctamente el inicio de cada etapa. difíciles de mantener e inflexibles.Diagramas Estáticos • Casos de Uso (cont. Es importante que los desarrolladores distingan entre requerimientos de diseño y candidatos. Por ejemplo al equivocar el involucramiento de actores en casos de uso que no los benefician. • Peligro de equivocar el diseño de los requerimientos. Pag.

• Sin embargo se tienen las siguientes desventajas: • Peligro de buscar funcionalidad y al hallarla fomentar la elaboración de un sistema basado en funciones. 8 • Buena forma de registrar la conveniencia de se usara un componente . • Es difícil para alguien no adiestrado en UML entender la notación de «incluir» Pag. • Al hacer en forma externa partes del caso de uso puede hacerlo más corto y fácil de entender • Al identificar funcionalidad en común entre los casos de uso al principio puede ser una forma de descubrir la posibilidad de reusar un componente que implemente la funcionalidad compartida.Diagramas Estáticos • Casos de Uso (cont.) • Relaciones entre casos de uso. • La inclusión permite volver a utilizar los pasos de un caso de uso dentro de otro Recolectar dinero «incluir» Exhibir el interior «incluir» Cubrir el interior • Al reusar los casos de uso se tienen las siguientes ventajas: o evitar duplicidades. top-down con sistemas inflexibles.

Comprar gaseosa Comprar un vaso de gaseosa Pag. Un caso de uso secundario hereda las acciones y significado del primario y además agrega sus propias acciones.) • Relaciones entre casos de uso. Reabastecer Punto de extensión llenar los compartimientos «incluir» Exhibir el interior «incluir» «extender» (llenar los Compartimientos) Reabastecer de Acuerdo a las ventas Cubrir el interior • Generalización. que se conoce como el caso de uso base. permite crear un caso mediante la adición de pasos a uno existente.) • La extensión. Se dice que el nuevo caso de uso extiende al original dado que agrega otros pasos a la secuencia del caso de uso original.(cont. 9 .Diagramas Estáticos • Casos de Uso (cont.

) • Relaciones entre casos de uso.Diagramas Estáticos • Casos de Uso (cont.(cont. Pag. La mayoría se generan durante la captura de requerimientos. la palabra escenario se refiere a una sola ruta a través de un caso de uso. pero en el contexto de UML. es necesario estar siempre pendiente de ellos. pero se irán descubriendo otros conforme se avance en el proyecto.) • Las reglas para aplicar «incluir» o «extender» son: • Utilice extender cuando describa una variación de conducta normal. • Cuando emplear los casos de uso • Todo caso de uso es un requerimiento potencial y hasta que no haya sido capturado. no se podrá planear como manejarlo en el proyecto. por ejemplo para un proyecto de 10 personas-año se esperarían 20 casos de uso ó 100 casos dependiendo del nivel de detalle. • Se puede tener diferente grado de granularidad. • El modelado conceptual junto con los usuarios ayuda a descubrir los casos de uso. 10 . una ruta que muestra una particular combinación de condiciones dentro de dicho caso de uso. • Emplee incluir para repetir cuando se trate de uno o varios casos de uso y desee evitar repeticiones • Algunas veces el termino escenario es usado como sinónimo de casos de uso.

Direccion:String . El estado de un objeto se representa mediante los datos almacenados en el mismo. El comportamiento de un objeto es lo que éste puede hacer y se encuentra contenido en métodos. Representación UML de un objeto (Diagrama de Clase): Empleado .Sexo:Boolean . los cuales son llamados atributos.RFC:String + TomarNombre:String + TomarRFC:String + TomarDireccion:String Pag.Nombre:String . un objeto es una cosa con la que se puede interactuar: Se le pueden mandar varios mensajes y reaccionará. El como se comporte dependerá del estado interno actual del objeto. Un objeto tiene una identidad la cual lo distingue de todos los demás objetos. los cuáles se invocan enviándoles mensajes. 11 .Estructuras de Objetos • ¿Qué es un objeto? • • • • Conceptualmente.

actualizar y borrar (Que se correspondería con las estructuras de datos tradicionales). • Un objeto sin métodos. 12 . con solo operaciones del tipo crear. • • Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos. “Las aplicaciones de gestión están constituidas mayoritariamente por objetos degenerados” Pag. recuperar. Que sería lo mismo que una biblioteca de funciones.Estructuras de Objetos • Problemas con la definición de objetos • Se pueden crear objetos degenerados como: • Un objeto sin datos.

el cual describe un conjunto de objetos que tienen un rol equivalente en un sistema. Cuando se manda un mensaje a un objeto se le esta ordenando que ejecute un método y generalmente se desconoce el código que ejecutará porque está encapsulado. Atributos • Métodos • Mensajes • Interfases • Pag. 13 . Son los datos que están encapsulados dentro del objeto y determinan su estado. otros son inmutables y deben conservar el mismo valor durante la vida del objeto (p. Podrán ser llamados por otros objetos o internamente. Para crear una instancia de un objeto se usa la clase como la base para determinar como formar el objeto.ej: un empleado puede cambiar de dirección).Estructuras de Objetos • • • • • Clases • Es un tipo (o plantilla) de objeto. cada instancia de objeto proveniente de la clase tendrá éstos métodos. La interfase describe completamente cómo van a interactuar con la clase los usuarios de la clase.ej: el RFC de un empleado) Son una implementación del comportamiento requerido por una clase. La interfase pública de un objeto define cuáles mensajes aceptará sin importar de donde provengan. Algunos pueden cambiar (p. Es el medio fundamental de comunicación entre los objetos. Los objetos responden o actúan en función a los mensajes que reciben y el estado actual de sus atributos.

Estructuras de Objetos • Herencia • Permite a una clase heredar los atributos y métodos de otra clase.colorOjos: int + TomarColorOjos: int Superclase Perro -frecuenciaLadrido: int + Ladrar: int gato -frecuenciaMaullido:int + Maullar: int Subclases • • Las clases Perro y Gato heredan de la clase Mamíferos. esto significa que la clase Perro tiene los siguientes atributos: Heredada de la clase Mamíferos • colorOjos Definida solo para la clase Perro • frecuenciaLadrido y los siguientes métodos: Heredada de la clase Mamíferos • tomarColorOjos Definida solo para la clase Perro • Ladrar Pag. Mamíferos . 14 . facilitando de esta forma la reutilización del código y permitiendo crear nuevas clases mediante la abstracción de los atributos y métodos comunes.

Las subclases pueden hacer caso omiso de los métodos o atributos de las superclases y definir los suyos propios. 15 . La asignación dinámica permitirá que al mandar un mensaje a un objeto se asignará dinámicamente dependiendo del código del método que haya definido la instancia de dicho objeto que puede ser uno propio o heredado. Un objeto puede estar relacionado con uno o más objetos La agregación de objetos permite definir composiciones. Polimorfismo • • • • Encapsulamiento • • • Asociaciones Composiciones Pag. Significa tener muchas formas. En lenguajes de programación significa que una entidad puede tener uno de muchos tipos. en las que cada componente se considera como tal sólo como parte del objeto compuesto. evitando que otros objetos o el mundo exterior puedan ver sus operaciones internas. En orientación a objetos una variable polimórfica puede referirse a diferentes objetos en diferentes tiempos.Estructuras de Objetos • • Abstracción • • Quitar las propiedades y acciones de un objeto para dejar sólo aquellas que sean necesarias. Se oculta la funcionalidad de los objetos.

16 . Los modelos de diagramas a considerar son: • El modelo de casos de uso que describe el sistema requerido desde el punto de vista de los usuarios. porque la experiencia nos ha mostrado que es así como pensamos en los sistemas. • El modelo dinámico que describe el comportamiento del sistema a través del tiempo. el lenguaje que usemos debe estar basado en diagramas. • El modelo estático que describe los elementos de el sistema y sus relaciones. que captura un aspecto de el diseño de una forma que puede ser discutida. No es el diseño. como el desempeño y la disponibilidad.Cuales partes correrán en la misma computadora? Pag. sino una representación de un modelo de el diseño.Estructuras de Objetos • Diagramas • • • Para describir el diseño de un sistema. Cuáles necesidades de control hay? Qué actividades pueden ser concurrentes? Qué sincronización debe haber? • Vista de desarrollo ayuda a administrar el proyecto. haciendo una vista más concreta que la de proceso. Cuál parte hará cada elemento del equipo de gente? Que partes pueden reusarse? • Vista física ayuda a alcanzar los requerimientos no-funcionales. • podremos tomar una: • Vista lógica nos permitirá alcanzar los requerimientos funcionales. Cuáles partes van juntas? Cuáles son las clases y sus relaciones? • Vista de proceso ayuda a lograr los requerimientos no-funcionales.

Estructuras de Objetos • Diagramas UML • La relación existente entre los diversos diagramas de UML se muestra a continuación: Diagrama de Diagrama de Clases Clases Casos de Casos de Uso Uso Diagrama de Diagrama de Secuencias Secuencias Diagrama de Diagrama de Estados Estados Diagrama de Diagrama de Distribución Distribución Diagrama de Diagrama de Colaboración Colaboración Diagrama de Diagrama de Componentes Componentes Diagrama de Diagrama de Actividad Actividad Pag. 17 CODIGO CODIGO .

• Construir rápidamente y lo más barato posible el sistema que alcance nuestros requerimientos. los cuales no dependen de la funcionalidad particular requerida actualmente Una técnica es la identificación de sustantivos. 18 . por los objetos de las clases que elijamos. Un buen modelo de clases consiste de clases de los objetos principales. renombrando las clases restantes si es necesario Pueden descartar candidatos por: redundancia. es la parte mas grande del trabajo de diseñar sistemas orientados a objetos. están fuera del alcance del sistema. Pag. • Construir un sistema que sea fácil de mantener y adaptar para los requerimientos futuros. Descarte los candidatos que sean inapropiados por alguna razón.Diagramas Estáticos • Objetos y Clases • Identificar las clases que deben existir en nuestro sistema. son un evento o una operación. • • • • Cada pieza de comportamiento requerida por el sistema deberá ser proporcionada de una manera sensible. son un atributo. son meta-lenguaje. vaguedad.

ContratodeEmpleo LineadeCredito. Reservacion. roles (estudiante. eventos (llegada. ReservacionAsiento A menudo no están representados como conceptos. Accidente.) • Las cosas que pueden ser clases se refieren a: cosas tangibles (libro. maestro. de asuntos legales Instrumentos y servicios financieros Manuales y libros PoliticadeReembolso. ManualdeReparaciones Pag. Mayor. Biblioteca Producto. Interacciones (reunión. ReglasdeJuego Tienda. MesadeJuego Venta. Junta. Libro SistemaAutorizacionTarjetasdeCredito Hambre. Pago. PoliticadeCancelaciones CatalogodeProductos. curso). Vuelo. intersección) Categoría del concepto Ejemplos TDPV. 19 . Gerente. Robo. partida. Apuesta VentasLineadeProducto Cajero. CatalogodeLibros Recibo. LineaAerea Venta. Existencia ManualdePersonal. solicitud). bibliotecario). Suerte DepartamentodeVentas. diseño o descripciones de cosas Lugares Transacciones Línea o renglón de un elemento de transacciones Rol de las personas Contenedores de otras cosas Cosas dentro de un contenedor Otros sistemas de cómputo o electromecánicos externos al sistema Conceptos de nombres abstractos Organizaciones Eventos Procesos VentaUnProducto. Cesto. Jugador Tienda. de contratos. Dado EspecicacióndeProducto. de trabajo. RodarDados Objetos físicos o tangibles Especificaciones.Diagramas Estáticos • Objetos y Clases (cont. copia. pero pueden estarlo) Reglas y políticas Catálogos Registros de finanzas.

20 .Diagramas Estáticos • Objetos y Clases (cont. Operaciones . Es visible si puede ser referenciado desde otras clases diferentes a donde esta definido. Existe el OCL que define de manera formal las restricciones en UML. Pag..) • Diagramas de clases • Describe la vista estática de un sistema en términos de clases y relaciones entre las clases. se indica mediante un texto libre encerrado entre llaves {}. Automóvil + Placa:String -Datos:DatosAutomóvil + Velocidad:Integer + Dirección: Dirección +Manejar(vel:Integer.privados(-) ó protegidos (#) • Una restricción es un texto que especifica una o varias reglas que sigue la clase. Le esta pidiendo que ejecute una operación • Los atributos y las operaciones pueden tener diferente visibilidad. se definen como públicos(+) . Cuando un objeto manda un mensaje a otro. • Las propiedades se indican mediante llaves. la representación de una clase es con: Nombre • ejemplo: Atributos . dando propiedades a los elementos donde se haya n incluido estas... dir:Dirección) + tomarDatos(): DatosAutomóvil Nombre de la clase Atributos de la clase: son los datos contenidos en un objeto de la clase Operaciones de la clase: definen la forma en La cual los objetos pueden interactuar..

Pag. La post-condición debe ser cierta después de que la operación sea ejecutada. Estas especificaciones son como propiedades para una operación. 21 . • Se conoce como la firma de la operación a el nombre de la operación su tipo de valor que regresa y los parámetros que utiliza. Una de las violaciones más comunes a esta regla consiste en agregar atributos como llaves foráneas. • Un constructor es una operación que comparte el mismo nombre que la clase y no tiene tipo definido de retorno. se utilizan generalmente para inicializar la memoria requerida por el objeto y para colocarlo en un estado inicial estable. post-condición algoritmo y el efecto que tiene sobre un objeto.) • Diagramas de clases (cont. • Una clase persistente es aquella cuyos objetos existen aún después de que el programa que los creó ha salido. solamente para describir estos conceptos. pero están dentro de una clase y pueden aplicarse solo a objetos de esa clase. Se describe la persistencia poniendo la propiedad de “persistent ” dentro del compartimiento del nombre.) • Los atributos no deberían usarse para relacionar conceptos en el modelo conceptual. • Un objeto se especifica con una firma o con precondición.Diagramas Estáticos • Objetos y Clases (cont. Algunos lenguajes proveen un constructor default para las clases en caso de que no se proporcione. • • • La precondición debe ser cierta antes de que la operación pueda ejecutarse. • Las operaciones son utilizadas para manipular los atributos o realizar otras acciones. Normalmente son llamadas funciones. Las propiedades usualmente no se muestran directamente en los diagramas de clases.

lo que significa que si un objeto está asociado con otro objeto. pero cada cliente es atendido en el orden en que se encuentre en la formación Pag. 22 .Diagramas Estáticos • Relaciones entre clases. es una conexión entre clases. una asociación es una relación que describe un conjunto de ligas. • Corresponden a los verbos. lo que significa que también es una conexión entre los objetos de esas clases. ambos objetos se conocen uno al otro. • Asociación normal: Usa Autor Computadora Un autor usa una computadora • Las restricciones en las asociaciones. En UML. permiten que se siga cierta regla: Cajero Atiende {Ordenado} Cliente Un cajero atiende a un cliente. • Normalmente una asociación es bidireccional. Existen instancias de asociación. que están definidas como una conexión semántica entre un conjunto de objetos. • Asociación.

) • Hay asociaciones que establecen una relación en ambas direcciones • La multiplicidad es la cantidad de objetos de una clase que se relacionan con un objeto de la clase asociada: 1. una conexión entre objetos de la misma clase * conecta Nodo Un nodo se conecta a muchos nodos y estos a su vez se conectan con varios mas.* Carro Un carro puede tener uno o mas dueños. (en una red de cómputo * Pag. una persona puede tener cero o más carros • La asociación recursiva es una asociación de una clase a sí misma... 23 .* Persona Posee Poseído por 0.Diagramas Estáticos • Relaciones entre clases (cont.

Póliza de Seguros 0.Diagramas Estáticos • Relaciones entre clases (cont.) • Los roles en una asociación especifican el papel que juega un objeto en una relación..1 Refiere a Compañía Aseguradora 1 Asegurador Está expresado 1 en un tiene Refiere a 0..* esposa Asegurado Persona esposo casado con Pag.* tiene 1.* Contrato de Seguros 0. se indica con un string colocado cerca de la terminal de la asociación siguiente a la clase a la cual se aplica. 24 ...

Diagramas Estáticos • Relaciones entre clases (cont. 25 Ejemplos . Producto-Estante DescripcióndeProducto -Catálogo DescripcióndeProducto -Producto VentasLíneadeProducto -Venta Venta-TPDV Cajero-Tienda Departamento-Tienda Cajero-TPDV Cliente-Cajero Pago-Venta Pago-Venta TPDV-Tienda Pag.) Categoría de la asociación A es una parte física de B A es una parte lógica de B A está físicamente contenido en B A está contenido lógicamente en B A es una descripción de B A es un elemento de línea (o renglón) en una transacción o reporte B A se conoce/ introduce/ registra/ presenta/ captura en B A es miembro de B A es una unidad organizacional de B A usa o dirige a B A se comunica con B A se relaciona con una transacción B A es una transacción relacionada con otra transacción B A es propiedad de B Caja-TPDV VentasLíneadeProducto -Venta TPDV-Tienda.

Representa la información de identidad y reduce la multiplicidad de uno a muchos por una de uno a uno.3} columna:{1.3} 1 1 Tablero Cuadro • Asociación Or {or}.2.2.Diagramas Estáticos • Tipos de asociaciones • Asociación calificada (Qualified association). Cuando los enlaces entre objetos pueden tener un orden implícito {ordered} {ordenadas por incremento de tiempo}. 26 . renglón:{1. En algunos modelos no todas las combinaciones de asociación son válidas Elige Estudiante de {Or} Educación Media Superior Académico Elige Comercial • Asociación Ordenada {ordered}. Pag.

la asociación ternaria asocia tres clases..* 0. el tiempo en que el link fue creado.Diagramas Estáticos • Tipos de asociaciones • Clase de Asociación. Cada enlace está asociado a un objeto de la clase de asociación..1 1. por ejemplo..* Contrato de Seguros 0.. Compañía Aseguradora 1 Asegurador 0. Jugador Participa en Equipo Negociado por Contrato Director General • Asociación ternaria (Ternary association). Una clase puede estar unida a una asociación. Más de dos clases pueden asociarse con otra. Se usa para agregar información extra sobre un enlace.* Asegurado Póliza de Seguros Persona Pag. 27 .

) • Una agregación. Tablero 1 9 Cuadros • En un juego del gato. Se describen diferentes niveles de abstracción. es un caso especial de asociación. 28 . Se indica con rombo en blanco en el lado de la clase que agrupa a las demás. los cuadros solo tienen sentido si están formando parte del tablero Pag. indica que la relación entre las clases es de alguna forma parte de un “todo”.Diagramas Estáticos • Tipos de asociaciones (cont. como en la relación {O} que se indica con línea punteada Comida 1 1 {O} 1 1 1 Comida Ensalada PlatoFuerte Postre • Una composición es una agregación donde cada componente puede pertenecer tan solo a un todo. • Se puede tener una restricción en una agregación. Se representa con diamante sólido.

operaciones y todas las asociaciones son heredadas. pero un objeto no puede heredar otro objeto). nunca sobre instancias (una clase puede heredar otra clase. Se utiliza sobre tipos. En gráficas de jerarquía. hereda todo de la clase general. llamada superclase. 29 . Los atributos. Vehículo Carro Bote Camión Pag.Diagramas Estáticos • Tipos de asociaciones (cont. vía relaciones de generalización. • La clase específica o subclase.) • La generalización es una relación entre un elemento más general y uno más específico. El elemento más específico puede tener solo información adicional. Una clase puede ser superclase y subclase si esta en una jerarquía de clases. las clases están conectadas unas con otras.

Diagramas Estáticos • Interfaces y realizaciones • Una interfaz es un conjunto de operaciones que especifica cierto aspecto de la funcionalidad de una clase. y es un conjunto de operaciones que una clase presenta a otras. «interfaz» MaquinaDeEscribir Teclazo() • Adicionalmente la interfaz puede ser representada como un circulo MaquinaDeEscribir conectado con una línea a la clase Teclado Pag.. Se usa el símbolo de clase pero sin atributos.. 30 . solamente con las operaciones: Teclado marca cantidadDeteclas Ctrl() Alt() RePag() AvPag() .

ya que los objetos solo son instancias de la misma clase.* Usa 1.Diagramas Estáticos • Diagrama de objetos • Un diagrama de objetos en UML usa la misma notación que los diagramas de clases. 31 .” edad = 33 Bob1:Computadora nombre=“IBM 128” Memoria=128 Pag..* Computadora nombre: String memoria: Integer Juan: Autor Objetos: nombre= “Juan P. Autor Clases: nombre: String edad: Integer 0..

1 VentasLinea deProducto cantidad 1...Diagramas Estáticos • Diagrama de Clases • Modelo Conceptual de Punto de Venta Registra-venta-de Descritas-por 1 Catalogo deProducto * 1 * 1 Contiene 1.* Describe Producto Contenidas-en 1 * 1 Capturas terminadas 1 1 Contiene 1 TPDV Venta Fecha Hora Pagado-por 1 1 1 Iniciado-por 1 Capturadas-en 1 Gerente Registra-ventas-en 1 Iniciado-por 1 Pago Monto Cliente Cajero Pag. 32 .* Usado-por Almacena 1 * Tienda Dirección Nombre 1 1...* Especificacion deProducto Descripcion Precio Codigode barras 1 * 0.

33 . Los símbolos UML en un diagrama de estados son: Estado Nombre Inicio Transición Evento que dispara Variables de estado Actividades Fin Transición • Las actividades cuentan con sucesos y acciones de entrada (qué sucede cuando el sistema entra al estado). salida (Qué pasa cuando el sistema sale del estado) y de hacer (que sucede cuando el sistema está en el estado) Pag.Diagramas Dinámicos • Diagramas de estados • • Presenta los estados en los que puede encontrarse un objeto junto con las transiciones entre los estados. y muestra los puntos inicial y final de una secuencia de cambios de estado.

Diagramas Dinámicos • Diagramas de estados (cont.) • Se puede agregar ciertos detalles a las líneas de transición. Operación Apagado Apagar Inicialización Hacer/Arrancar [lapso transcurrido] Teclazo o movimiento del ratón Protector De pantalla Pag. Encender la PC Inicialización Operación Apagado Apagar Hacer/Arrancar • Las condiciones de seguridad permiten establecer una relación entre Encender la PC estados que dependen de que se cumpla dicha condición. para indicar un suceso que provoca una transición (la que desencadena un suceso) y la actividad de cómputo que se ejecute y haga que suceda la modificación de estado. 34 .

Diagramas Dinámicos • Diagramas de estados (cont. • Se dice que pueden suceder en forma secuencial cuando suceden uno tras de otro y se representan dentro del cuadro de estado original. • También has subestados concurrentes cuando pueden ocurrir al mismo tiempo. separados por línea punteada. ligados secuencialmente. Operación A la espera de acción del usuario Registro de una acción del usuario Representación de la acción del usuario Verificar el conómetro del sistema [lapso transcurrido] Actualizar despliegue Pag. Cuando un estado se encuentra dentro de otro estado. se conocen como subestados.) • Subestados. Se representan dentro del estado original. 35 .

• Se representa con una H y en caso de subestados anidados se dice que es histórico profundo cuando alcanza a recordar varios niveles (H*) en caso contrario se dice que es superficial • H A la espera de acción del usuario Operación Registro de una acción del usuario Representación de la acción del usuario Verificar el conómetro del sistema [lapso transcurrido] Actualizar despliegue [lapso transcurrido] Teclazo o movimiento del ratón Pag. Se dice de los estados compuestos que pueden recordar su subestado activo cuando el objeto trasciende fuera de tal estado compuesto.Diagramas Dinámicos • Diagramas de estados (cont.) • Estados históricos. 36 .

) • Cuando utilizar los diagramas de estados: • Se tendría que hacer uno por cada clase del sistema. 37 . • En caso de que se desee representar las secuencias general de acciones de vario objetos y casos de uso. pero se sugiere hacerlos solo para aquellos que presenten un estado interesante y cuando la construcción de tales diagramas ayude a aclarar lo que sucede. • Algunos sugieren usarlos en los objetos de interfaz de usuario y de control. es mejor utilizar el diagrama de actividades.Diagramas Dinámicos • Diagramas de estados (cont. Pag. debido a que tienen el tipo de comportamiento que es útil describir mediante diagramas de estado.

Elementos de un diagrama de actividades: • La actividad se muestra como una caja con nombre con las esquinas muy redondeadas. a menos que se tenga una condición. muestran como puede ser implementada una operación que debe realizar muchas tareas diferentes y se desea mostrar cuales son las dependencias esenciales entre ellas.Diagramas Dinámicos • Diagramas de actividades • • Describen como se coordinan las actividades. representa cuando la actividad ha terminado Actividad • La transición se muestra como una flecha. 38 . normalmente no se les pone etiqueta. Actividad 1 Actividad 2 Pag.

Fin de la jornada Baño Descanso Pag. Se utilizan para la ejecución de actividades en paralelo. indica coordinación de actividades y no se puede pasar de la barra hasta que todas las actividades previas a la barra han sido terminadas.) • Barras de sincronización.Diagramas Dinámicos • Diagramas de actividades (cont. 39 .

Diagramas Dinámicos • Diagramas de actividades (cont.) • Las indicaciones. usando un pentágono convexo para el envío del un evento y uno cóncavo para la recepción del evento. 40 .Tecleo (canal) Oprimir numero de canal Fin de la jornada Cambiar(canal) Cambiar(canal) Oprimir numero de canal Pag. permiten que se ejecuten otras actividades. Televisión Remoto.

Al poner muchas actividades relacionadas entre sí. 41 . • Particiones y líneas de responsabilidad.Diagramas Dinámicos • Diagramas de actividades (cont. o a cuál caso de uso pertenecen • Las principales diferencias entre los diagramas de estado y los diagramas de actividades son: • Los diagramas de actividades normalmente NO incluyen eventos. • Marcas de inicio y fin se usan para indicar donde empieza el diagrama y donde termina.) • Diamantes de decisión se usan para mostrar decisiones como una alternativa a las condiciones. se pueden colocar de acuerdo al objeto o al actor que las ejecuta. Pag. • Las actividades se pretende que se continúen a lo largo del diagrama sin quedarse estancadas. porque los únicos eventos de interés es la terminación de las actividades. para separar transiciones dejando el mismo estado.

42 .) • Ejemplo de un diagrama de actividades en una biblioteca.Diagramas Dinámicos • Diagramas de actividades (cont. miembro [prestatario] [regresador] bibliotecario Encontrar libro en gaveta Esperar en la fila [obteniendo prestado] [regresando] Registrar el regreso Poner el libro de Regreso en gaveta Registrar el préstamo Preparar para el siguiente miembro Pag.

Son adecuados en éste uso • No sirven para: • Tratar de ver como colaboran los objetos.Diagramas Dinámicos • Diagramas de actividades (cont. 43 . son una herramienta muy útil para el modelado de flujo de trabajo y para la programación multihilos. Para comprender qué acciones deben ocurrir y cuáles son las dependencias de comportamiento. • La comprensión del flujo de trabajo. • Se recomienda usarlos para: • El análisis de un caso de uso. Para representar y entender el comportamiento de las interacciones entre los casos de uso. Pag. • Para tratar de ver como se comporta un objeto durante su período de vida. Ayuda a aclarar situaciones dominadas por flujo de trabajo. Asignando posteriormente los métodos a los objetos y mostrando tales asignaciones mediante diagramas de secuencia o colaboración. • Cuando se trata de aplicaciones multihilos. a través de numerosos casos de uso. Usar mejor diagramas de secuencia o colaboración.) • Cuando utilizar diagramas de actividades: • Debido a que manejan y promueven el comportamiento en paralelo. Es mejor usar un diagrama de estados.

Pueden ser simples (transfieren control). sincrónicos (esperan respuesta) o asincrónicos (no espera respuesta) :Objeto 1 :Objeto 2 Pag. 44 . Los mensajes van de un objeto a otro se representan con líneas. se indican las operaciones que ejecuta el objeto o activación se representan mediante un rectángulo cuya altura va en relación a la duración de la operación. • • Muestra la forma en que los objetos se comunican entre sí al transcurrir el tiempo. Constan de objetos y representando en una línea vertical el tiempo.Diagramas Dinámicos • Diagrama de secuencias.

que según Fowler. Pag.Diagramas Dinámicos • Diagrama de secuencias.) • Para ilustrar los diagramas de secuencia se usará el siguiente caso de uso: • La ventana Entrada de pedido envía un mensaje “prepara” a Pedido. • En el diagrama siguiente se muestra el diagrama de secuencia omitiendo las activaciones. la Línea de pedido descuenta la cantidad apropiada de Artículo de inventario del almacén.Si esta revisión devuelve “verdadero”. 45 . • Si no sucede así. no aportan mucho a la ejecución de procedimientos y solamente sugiere usarlas en situaciones concurrentes. • . (cont. quiere decir que la cantidad del Artículo de inventario ha caído más abajo del nivel de reorden y entonces dicho Artículo de inventario solicita una nueva entrega. • El Pedido envía entonces un mensaje “prepara” a cada línea de pedido dentro del Pedido. • Cada Línea de pedido revisa el Artículo de inventario correspondiente.

Diagramas Dinámicos • Diagrama de secuencias.) • El siguiente ejemplo muestra unPedido Una Línea de Pedido Un artículo de inventario Ventana de Entrada de Pedidos prepara() Objeto Iteración *[para cada línea de pedido] prepara() Mensaje Condición hayExistencia:= revisa() [hayExistencia] descuenta() necesitaReorden:= necesitareordenar() Autodelegación [necesitaReorden] nuevo Un Artículo de reorden Regreso Creación [hayExistencia] nuevo() Un Artículo para entrega Pag. (cont. 46 .

Una iteración muestra cuando un mensaje se envía varias veces a varios objetos receptores. Fowler recomienda usarlo solamente cuando ayuden a aumentar la claridad. como sucedería cuando se itera sobre una colección. (cont. no un nuevo mensaje. 47 .Diagramas Dinámicos • Diagrama de secuencias.) • • • • • • De el objeto se desprende una línea vertical conocida como línea de vida del objeto y representa el tiempo de duración del objeto durante la interacción. Los mensajes representados por líneas están en orden de arriba hacia abajo. el cual se enviará solo si la condición es verdadera. Los regresos SATURAN los diagramas y tienden a oscurecer el flujo. Los objetos pueden autodestruirse o pueden ser destruidos mediante otro mensaje. La autodelegación es un mensaje que un objeto se manda a sí mismo. El regreso indica el regreso de un mensaje. Una condición indica cuándo se envía un mensaje. Pag. El borrado de un objeto se muestra con una X grande.

Ejemplo de una transacción bancaria: • Cuando se crea una Transacción. dos) de objetos Revisor de Transacción. de no ser así. Si todos han respondido indicando terminaciones exitosas.) • • Otra ilustración adicional nos permitirá visualizar las activaciones y la creación de objetos. Este proceso permitirá añadir con facilidad otros proceso de revisión. porque cada registro es llamado asincrónicamente y opera en paralelo. • Cuando termina un revisor de transacción. no hace nada. entonces el coordinador notifica a la Transacción que todo está bien. Pag. El coordinador comprueba si todos los revisores respondieron. cada uno de los cuales es responsable de una revisión particular. 48 . Este coordinador crea una cantidad (en el ejemplo. (cont. se le notifica al coordinador de transacción. como en este ejemplo. ésta crea un Coordinador de transacción que coordina el trámite de la transacción.Diagramas Dinámicos • Diagrama de secuencias.

) nuevo Una Transacción nuevo unCoordinador de transacciones nuevo Activación un primer Revisor de transacción nuevo un segundo Revisor de transacción Mensaje asíncrono bien se suprimen las demás transacciones ¿todo terminado? bien el objeto se borra a sí mismo es Válido ¿todo terminado? Autodelegación Pag. (cont. 49 .Diagramas Dinámicos • Diagrama de secuencias.

Diagramas Dinámicos • Diagramas de secuencias. • Cuando se desee ver el comportamiento de varios objetos en un caso de uso y la secuencia de los mensajes. • No se sugieren para: • No son convenientes para representar el comportamiento condicional. debido a que son para mostrar un comportamiento simple. debido a que pone énfasis en la secuencia y es fácil apreciar el orden en el que ocurren las cosas. 50 .) • Cuando utilizar los diagramas de secuencias. (cont. Pag. se sugieren para: • Son útiles para ver la interacción entre los objetos. se sugiere usar mejor diagramas separados para cada una de las condiciones • No sirve para ver el comportamiento de un solo objeto a través de muchos casos de uso (usar mejor un diagrama de estados) • Si quiere ver el comportamiento a través de muchos casos de uso o muchos proceso mejor utilice un diagrama de actividad.

:Nombre1 1:Agregar() 3:Actualizar() :Nombre2 :Nombre3 2:Modificar() Pag. • Muestra los objetos. 51 . • El mensaje le indicará al objeto receptor que ejecute una de sus operaciones. • Se agregará una cifra al mensaje para indicar la secuencia propia del mensaje. los mensajes que se envían los objetos entre sí.las relaciones entre ellos. • Un diagrama de secuencias puede ser convertido en uno de colaboraciones y viceversa. • El mensaje se representa como una flecha cerca de la línea de asociación entre dos objetos. Esta flecha apunta al objeto receptor. El tipo de mensaje se mostrará en una etiqueta cerca de la flecha.Diagramas Dinámicos • Diagramas de colaboraciones.

52 . se inicia la siguiente secuencia: • • • • • • La GUI notifica al sistema operativo que se oprimió la tecla El sistema operativo le notifica a la CPU El sistema operativo actualiza la GUI La CPU notifica a la tarjeta de video La tarjeta de video envía un mensaje al monitor El monitor presenta el carácter alfanumérico en la pantalla. con lo que se hará evidente al usuario. Tecleo :GUI 6:respuesta() 1:notificar(tecleo) 3:actualizar(tecleo) :Sistema operativo 2:actualizar(tecleo) :Monitor 5:mostrar(tecleo) :CPU 4:notificar(tecleo) :Tarjeta de video Pag.) • Ejemplo de un diagrama de colaboraciones: • El actor es el usuario quien inicia la interacción al oprimir una tecla.Diagramas Dinámicos • Diagramas de colaboraciones. (cont.

debido a que son para mostrar un comportamiento simple.Diagramas Dinámicos • Diagramas de colaboraciones. • Cuando se desee ver el comportamiento de varios objetos en un caso de uso. 53 . Pag. (cont. • Sirven para mostrar la colaboración entre los objetos. no sirven tan bien para la definición precisa del comportamiento • No se sugieren para: • No son convenientes para representar el comportamiento condicional. sin embargo.) • Cuando utilizar los diagramas de colaboración. se sugiere usar mejor diagramas separados para cada una de las condiciones • No sirve para ver el comportamiento de un solo objeto a través de muchos casos de uso (usar mejor un diagrama de estados) • Si quiere ver el comportamiento a través de muchos casos de uso o muchos proceso mejor utilice un diagrama de actividad. se sugieren para: • Es la mejor forma si se quiere mostrar los objetos y mostrar como se reconectan estáticamente unos con otros.

(biblioteca de clases) que depende de cualquier código objeto al cuál se ligara desde un programa ejecutable. «biblioteca» . igualmente se pueden usar estereotipos para diferenciar los diferentes tipos de componentes. se pueden usar estereotipos como «compilar» ó «ligar». 54 .Diagramas de Implementación • Diagramas de componentes • Un componente es la implementación de un subsistema. • Los detalles dependen del lenguaje de programación usado. «tabla».java • Hay diferentes tipos de componentes y cada uno con diferentes tipos de dependencia . el cual depende de que otros componentes estén disponibles al momento de compilación. Su representación es: calculadora. Clasificándolos en relación con el proceso de compilación un componente podría ser: • Código fuente. • Una aplicación ejecutable. la cuál puede depender de otros programas ejecutables al tiempo de ejecución. la cual da las especificaciones (en términos de casos de uso) y una estructura de clases que lleva a cabo la especificación. por ejemplo: «archivo» . • Código objeto binario. «documento» Pag. «ejecutable» .

Son paquetes estereotipados en «subsistemas» para incorporar la noción de biblioteca de compilación y de gestión de configuración.Diagramas de Implementación • Diagramas de componentes (cont. En el caso de clases parametrizables se puede dar una especificación genérica. Pag. La especificación contiene la interfaz de la clase mientras que el cuerpo contiene la realización de la clase. 55 .) • • • • • Cada clase del modelo lógico se realiza en dos componentes: la especificación y el cuerpo. Los distintos componentes pueden agruparse en paquetes según un criterio lógico y con vistas a simplificar la implementación. Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente se refiere a los servicios ofrecidos por otro.

o «biblioteca» MiEntradaSalida «compilar» MiAplicación «ejecutable» • La interfaz se puede representar por una línea con un círculo Programa de búsqueda Resultado de la búsqueda Pag.Diagramas de Implementación • Diagramas de componentes (cont. 56 .) • Un diagrama de componentes mostrando las dependencias de tiempo de compilación: «ligar» streams.

57 .exe ProcesadorTextos VerificadorOrtografico ContadorPalabras Pag.Diagramas de Implementación • Diagramas de componentes (cont.) • Si un componente implementa clases se puede establecer la relación entre el componente y las clases como sigue: ProcesadorTextos.exe Clases: ProcesadorTextos VerificadorOrtografico ContadorPalabras ó ProcesadorTextos.

al que proporciona el servicio se dice que provee una interfaz de exportación.Diagramas de Implementación • Diagramas de componentes (cont. Se puede reutilizar un componente en otro sistema si éste puede acceder al componente reutilizado mediante sus interfases. «Interfaz» ElementoDeEscucha cambioAlEstadoDelElemento() AWTEventMulticaster • Se puede sustituir un componente por otro si el nuevo contiene las mismas interfases que el anterior.) • Solo se podrán ejecutar las operaciones dentro de un componente a través de su interfase. La relación entre un componente y su interfase se conoce como realización. al que accede a un servicio se dice que utiliza una interfaz de importación. Pag. 58 . Un componente puede acceder a los servicios de otro componente mediante el uso de su interfase.

) • Página Web con controles ActiveX. Animacion.htm VBScript «ActiveX» DisposicionAnimacion.gif «ActiveX» CuadroCombCronometro «ActiveX» CuadroCombDistancia Pag.alx «ActiveX» BotonEjecutar «ActiveX» ImagenEsfera «ActiveX» BotonDetener «ActiveX» CronometroEsfera «ActiveX» BotonReinicar Esfera.Diagramas de Implementación • Diagramas de componentes (cont. 59 .

• • Los diagramas de distribución muestran la disposición física de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos. Un nodo representa todo tipo de equipo de cómputo y se representa por un cubo: Nodo • Los estereotipos permiten precisar la naturaleza del equipo: • Dispositivos • Procesadores • Memoria • Etc. 60 .Diagramas de Implementación • Diagramas de distribución. Pag.

Diagramas de Implementación • Diagramas de distribución. • • Los nodos se interconectan mediante soportes bidireccionales (en principio) que puede a su vez estereotiparse. Se pueden mostrar los componentes en relaciones de dependencia con un nodo: Servidor Directorio telefónico corporativo Programa de búsqueda Resultado de la búsqueda Pag. 61 .

(cont.Diagramas de Implementación • Diagramas de distribución.) • Las conexiones entre nodos se puede poner mediante una relación Servidor Directorio telefónico corporativo Programa de búsqueda Resultado de la búsqueda «Comunicación» Cliente Programa de Presentación Pag. 62 .

) • Aplicación de los diagramas de distribución.Diagramas de Implementación • Diagramas de distribución. 63 . • Un equipo de cómputo casero podría ser como sigue: «Dispositivo» Monitor Daewoo CMC-1505 «Dispositivo» Impresora HP Deskjet 610L «Dispositivo» Impresora HP Lasejet 5L «Dispositivo» Camara Digital Polaroid Flash640 «Dispositivo» Scanner Microtek SlimScanC3 PC Pentium 300Mhz Windows 95 PC Pentium 300Mhz Windows 95 Office 2000 Internet Explorer Office 2000 Visio 5Enterprise «Dispositivo» Modem ESS 336V «Dispositivo» Conector T «Dispositivo» Conector T «Dispositivo» Monitor PackardBell Internet «Procesador» ISP Infosel.net «Dispositivo» Terminador «Dispositivo» Terminador Pag. (cont.

Un DdE se asigna a un estudiante en su primer año de estudios y permanece con ésa función hasta que termina. y cada eCS4 es inscrito en un numero razonable de módulos. Cada estudiante es avisado por un miembro del cuerpo de maestros que actúa como Director de Estudios (DdE). Esto es. Estas listas no pueden llegarles a los adjuntos antes de la semana 3. ya sea que este o no inscrito para un grado en ciencias computacionales.Caso de Estudio (CS4) • Presentación del caso. Pag. muy tarde para que los adjuntos puedan saber cuántas copias deben preparar de su material. el Comité Académico de el Departamento de Ciencias Computacionales determina qué módulos estarán disponibles para los eCS4 en el siguiente año. Los estudiantes se inscriben en forma provisional en los módulos llenando una forma y entregándola en la Oficina de Enseñanza Profesional . Los apuntes de los módulos están escritos en el lenguaje de formato LATEX. El OEP produce luego las listas para los adjuntos de los estudiantes que tomarán sus módulos. la cual se conoce por la dirección de correo cs4class. Al final de cada año el Jefe del Departamento fija actividades para los miembros del cuerpo de maestros y otros. se consulta al DdE del estudiante y se puede tener una plática con el estudiante. esté listado como un eCS4. Alguien en la Oficina de Enseñanza Profesional (OEP) produce la versión en papel de cada manual de curso. El CCS3 proporciona una lista de los estudiantes entrando a CS4 provenientes de CS3 al CCS4 y al OEP. El CCS4 le dice al OEP acerca de cualquier otro estudiante que provenga de de otros cursos que no sean CS3. en particular a una persona es asignada para enseñar cada uno de los módulos que se supone van a estar disponibles para el próximo año (adjunto) Cada profesor adjunto actualiza los apuntes en el manual del curso de su módulo. El coordinador CS4 (CCS4) actualiza otras partes de cada manual y checa los apuntes producidos por los profesores adjuntos. El OEP verifica que cada estudiante que se inscriba. el CCS4 produce la versión HTML ejecutando la aplicación latex2html sobre la fuente LATEX. Al final de cada año académico. En caso de duda. El OEP mantiene la lista maestra de todos los eCS4 y actualiza las listas de correo de los estudiantes tomando cursos CS4. 64 . • • • • • • • • • • Administración CS4 Un estudiante CS4 (eCS4). es cualquier estudiante que esta tomando cualquier módulo de cuarto año en el departamento de ciencias computacionales.

son diferentes para cada grado. Sin embargo. Cada estudiante se inscribe para un curso de grado y recibe el manual de curso apropiado. etc. cuales cursos de grado esta llevando un eCS4. muchos módulos se aceptan en varios diferentes cursos de grado. 65 . o cuál miembro del staff es el DdE de un eCS4. qué módulos está tomando el estudiante. Permitir a los estudiantes inscribirse en los módulos en línea. automatizando su producción. Ciencias Computacionales e Inteligencia Artificial. debido a que los otros departamentos producen sus propios manuales) Se pide desarrollar un sistema que permita: • • • • • Disminuir la cantidad de trabajo rutinario para todo el staff. Que el OEP pueda obtener fácilmente información actualizada y confiable. • Deberá poder dar información sobre los módulos.Caso de Estudio (CS4) • Administración CS4 (cont. Ciencias Computacionales y la Ingeniería Electrónica. los principales cursos existentes son: Ciencias Computacionales. quiénes los imparten. Mejorar el seguimiento de dicha información. El CCS4 de producir todos los manuales de cursos (en los casos de alumnos adjuntos que lleven los cursos es posible que reciban duplicado el manual. de que curso forman parte y que estudiantes los están tomando. y en cada caso la descripción de cada curso es igual en cada manual. especialmente el CCS4. • El sistema de administración CS4 deberá poder producir un informe sobre cada eCS4 indicando si es de 4to año o aún no se gradúa. Pag. igualmente hay manuales separados para cada uno de ellos. Los detalles de la asesoría y las reglas acerca de cuáles combinaciones de módulos son aceptables. Hacer que la información tal como los manuales de cursos y las listas de los estudiantes que toman los cursos estén disponibles cuanto antes.) • • • • • • Cada uno de los cursos de grado tiene su propio manual de curso.

Y se dejará fuera de la respuesta. quedando pues los siguientes casos de uso: • Producir el manual del curso • Producir la lista CS4 • Inscribir en los módulos.Caso de Estudio (CS4) • Diagrama de casos de uso (CS4) • Las consultas pueden ser realizadas mediante una base de datos y usando técnicas estándar para hacer objetos persistentes. 66 . Producir la lista CS4 Organizador Cursos CS3 CCS4 Producir el manual del curso OEP Adjunto CS4 Inscribir en los Módulos eCS4 Director de estudios CS4 Pag.

el cual imprime y actualiza la pagina Web del mismo. actualiza la descripción del módulo tomándolo del sistema. el sistema envía el texto completo del manual por correo electrónico al OEP. modificándolo y regresándolo modificado al sistema. actualizándolo y regresándolo al sistema. • Estas actualizaciones pueden suceder en cualquier orden. Pag.Caso de Estudio (CS4) • Diagrama de casos de uso (CS4) • Descripción de caso de uso: Producir el manual del curso • Este caso de uso se puede usarse solamente cuando el comité académico ha determinado el conjunto de módulos que estarán disponibles y que el jefe de departamento ha asignado los adjuntos. • Desarrolle las descripciones de los casos de uso para: • Producir la lista CS4 • Inscribir en los módulos. • El adjunto de cada módulo. El sistema conserva el registro de cuáles cambios se han hecho. • El organizador de CS4 actualiza las secciones principales de cada manual de curso obteniendo el texto actual del sistema. Una vez que se hicieron todas las actualizaciones. 67 .

* Módulo 6 toma 6.Caso de Estudio (CS4) • Diagrama de clases (CS4) • Un diagrama de clases a nivel conceptual..* 0. sin incluir actividades y operaciones: Adjunto 1 Imparte 0.* Estudiante Cursos Grado esta en 1 Estudiante otros años Estudiante 4to año 0... 68 .* 1..* Director de Estudios 1 dirige 1..* Pag..

quien los imparte.Caso de Estudio (CS4) • Diagrama de actividad (CS4) • El siguiente diagrama muestra el flujo de trabajo requerido para determinar qué cursos hay. 69 . generar los manuales de los cursos: Jefe de Departamento Adjunto OEP CCS4 Actualizar secciones principales Comité Académico Determinar los módulos Asignar Adjuntos Actualizar registro de módulo Imprimir manual Generar versión HTML Pag.

Si no hay reservación deja su nombre y puede ir al bar a tomar algo antes de comer o esperar sentado en área de espera. • • • Entrevista de Análisis ¿Qué sucede cuando un cliente entra al restaurante? R: Si el cliente tiene un abrigo. Y deciden construir el restaurante del futuro. que deje a la gente darse el gusto y que mejore los resultados para el cliente. se forma? R: Se le pregunta si hizo reservación.le ayudamos a quitárselo. lo almacenamos en el guardarropa y le damos un boleto para solicitarlo posteriormente.S. • Las empresa Restaurantes. pero no disfruta algunos momentos de ésa experiencia. 70 . Lo mismo hacemos con el sombrero. en cuyo caso lo pasamos lo más pronto posible. ¿Y si hay línea de espera. Entra el cliente [Tiene abrigo y/o sombrero] Ayudar a quitárselo [Prefiere el bar] Espera en el bar Guardarlo [Lista de espera] [No hizo reservación] Dejar su nombre [Prefiere el área de espera] Aguarda en el Área de espera Pag.Caso de Estudio (Restaurante) • Presentación del caso.A. ha hecho una encuesta sobre el mundo de los restaurantes y ha llegado a sorprendentes conclusiones: a la gente le gusta comer fuera.

la elección y la hora.) ¿Cuando le llega el turno al cliente.) • • Entrevista de Análisis (cont. Luego llama a un “asistente” quién coloca una charola con pan y mantequilla. Si alguien ha pedido una bebida el mesero la traerá. ¿Qué contiene la comanda? R: La mesa. Cuando esta lista el capitán de meseros lleva al cliente a su mesa y luego llama a un mesero. para ello. 71 .Caso de Estudio (Restaurante) • Presentación del caso. A la mayoría de la gente le gusta comer el plato fuerte caliente. ¿Cómo deciden los clientes qué van a consumir? R: El mesero propone siempre a los clientes la sugerencia del día y les da de 5 a 10 minutos para que decidan. el chef prepara el entremés y el mesero se lo lleva al cliente. Un mozo de piso debe cambiar el mantel usado por el cliente anterior y acomodar la mesa. si el cliente estaba bebiendo en el bar. caliente a todos los comensales en la mesa al mismo tiempo. éste regresa a tomarle su orden. deberá ser limpiada. llamado comanda. es hora de sentarlo? R: La mesa deberá estar lista. Mediante la transcripción de la elección en un formulario. Cuando el cliente llama la atención del mesero. ¿Por qué es tan importante la prioridad? R: La mayoría de las comidas incluyen un entremés antes del plato fuerte. (cont. Los meseros tienen asignadas sus áreas de servicio y saben cuando está lista una mesa. ¿Luego que ocurre? R: El mesero llega a la mesa. se podrá llevar su bebida. Debido a que generalmente la cocina está muy ocupada y el chef tiene que dar prioridad a las comandas en el orden que hayan llegado. • • • • Pag. entrega un menú a cada comensal y les pregunta si desean alguna bebida mientras deciden. El reto está en llevar el plato fuerte. Y luego lo notifica al chef.

Caso de Estudio (Restaurante)

Diagrama: “Servir a un cliente”
Entra el cliente
[Tiene abrigo y/o sombrero]

Ayudar a quitárselo

Guardarlo

[Lista de [No hizo espera] reservación]

[Prefiere el bar]

Espera en el bar Aguarda en el Área de espera

Dejar su nombre

[Prefiere el área de espera]

Sentar al cliente

Alistar la mesa
[Desea bebida]

Llamar al mesero

Mostrar el menú Llamar al asistente

Tomar un pedido de bebidas

Servir Pan y agua Traer bebida

Ir por las bebidas

Sugerir platillo

Leer Menú

Elegir

Notificar al chef

Traer entremes

Preparar platillo

Modelado en un diagrama Por separado Pag. 72

Caso de Estudio (Restaurante)

Entrevista de Análisis (cont.)
• •
¿Cómo le sirven al cliente? R: El chef preparará el plato fuerte y el mesero lo recogerá cuando se dé cuenta de que los comensales han terminado con el entremés; después el mesero lleva el plato fuerte a la mesa. Los comensales ingerirán sus alimentos, y el mesero regresará al menos una vez para verificar si todo está bien. ¿Qué sucede cuando los clientes terminan de comer? R: El mesero regresa y pregunta si desean postre, en cuyo caso el mesero dará el menú de postres y tomará las órdenes. En caso de no desearlo pregunta si desean café, en caso de aceptarlo, traerá el café, tazas y les servirá. Si no desean nada, traerá la cuenta. Luego regresará y obtendrá el pago en efectivo o en tarjeta de crédito. Luego traerá el cambio o los vouchers, los clientes dejarán una propina, recogerán sus abrigos y se irán. ¿Qué debe hacer el mesero cuando el cliente salga? R: Llamar al mozo de piso para limpiar la mesa, la preparará y estará lista para los siguientes comensales.

Pag. 73

Caso de Estudio (Restaurante)

Diagrama de “Servir a un cliente” (cont.)
Traer entremés Ingerir entremés Traer el plato fuerte Preparar platillo
Modelado en un diagrama Por separado

[Desea café]

Servir café

Ingerir plato fuerte

Beber café

[Desea postre]

Traer el menú de postres Traer postres Ingerir postres
[Guardar abrigo/sombrero]

Trae la cuenta

Salir

Recoger abrigo o sombrero

Liquidar cuenta Dejar propina

Pag. 74

Caso de Estudio (Restaurante)

Preparación de platillos

¿Cómo se coordina el chef para tener los platillos a tiempo? R: La gente en una mesa casi siempre termina sus entremeses, en momentos distintos. Entre el mesero y el chef se coordinan para traerles a todos los platos fuertes al mismo tiempo. El chef recibe la comanda y empieza a preparar los entremeses y el plato fuerte, cuando esta terminado el entremés, el mesero va a la cocina, los toma y los lleva a la mesa. ¿Cómo se entera el mesero que ya están listos los entremeses? R: El mesero va a la cocina de vez en cuando. El chef luego de dar el entremés al mesero, espera que este le avise cuando la mayoría de los comensales ya casi ha terminado con sus entremeses para poderle dar el toque final a cada plato fuerte. El mesero va a la cocina, y le avisa al chef que ya casi están listos para el plato fuerte, el chef termina su preparación. El mesero los toma y los lleva a la mesa

Pag. 75

76 .Caso de Estudio (Restaurante) • Preparación de platillos Recibir comanda Preparar entremeses Iniciar la preparación Del plato fuerte Coordinar la preparación de otros pedidos Recibir la notificación de que los Entremeses casi se han consumido Llevar entremeses Ingerir entremeses Finaliza la preparación de plato fuete Tomar el plato fuerte Llevar Plato fuerte Pag.

..* Abrigo Elige del 1 Menú Alimento Menú del postre Orden Pag.* 1 1 1 1 1 Da a guardar 1 Encargado del Guardarropa Elige del Ingiere Hace 1 1 1 0.Caso de Estudio (Restaurante) • Clases y asociaciones • El cliente se asocia con una gran cantidad de clases.. como muestran las asociaciones a continuación: Postre 1 Cuenta 1 Propina 1 Reservación 1 Ingiere Liquida 1 1 1 Deja 1 1.* 1 1 Hace Es atendido por Da a guardar 1 Cliente Mesero Sombrero 0. 77 .

sus atributos serían: Cliente nombre horallegada orden horaservicio ingerir() beber() ordenar() pagar() Pag. 78 .Caso de Estudio (Restaurante) • Detalle de las clases • Cliente.

se pueden tener Mesero. 79 . Chef.Caso de Estudio (Restaurante) • Detalle de las clases • Empleado es una clase abstracta que puede contener la información de los empleados y como clases secundarias. Asistente. Gerente. Empleado nombre domicilio RFC añosExperiencia fechaContratación salario Asistente trabajaCon preparar() cocinar() servirPan() servirAgua() Mesero Chef Gerente llevar() servir() recoger( llamar() verificarEstado() DeLaOrden() preparar() cocinar() darPrioridad() crearReceta() monitor() operaRestaurante() asignar() rotar() Pag.

La cocina tendrá una terminal de escritorio y una o varias pantallas. Restaurante • Los meseros contarán con una computadora palmtop y la utilizarán para comunicarse con la cocina y con los mozos de piso.Caso de Estudio (Restaurante) • Diagrama de distribución. «Dispositivo» Computadora palmtop Inalámbrico «Dispositivo» Red «Dispositivo» PC de la cocina «Dispositivo» PC del gerente Pag. 80 . El gerente tendrá una en su oficina. Estos últimos también tendrán palmtops para comunicarse.

81 .Caso de Estudio (Restaurante) • Casos de uso • El paquete mesero Mesero Totalizar Una cuenta Transmitir una Orden al bar Notificar al chef del progreso de los clientes En sus alimentos Obtener un acuse De recibo Sondear el progreso De la orden Tomar una orden Tomar una orden De bebida Incluir Transmitir la orden a la cocina Recibir una notificación de la cocina Llamar a un mozo de piso Imprimir una cuenta Cambiar una orden Incluir Llamar a un Asistente Recibir una notificación del bar Pag.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->